Comments (5)
Hallo xbow42,
danke für die Anregung. Ich habe eine neue Version 1.2.0 erstellt, die jetzt neben dem Namen einer Station auch deren StationID speichert.
Ich musste eh die readme neu strukturieren und habe deine gute Idee gleich umgesetzt.
Bitte installiere direkt von hier aus Github und gib mir Feedback.
Gruß
Pix
from iobroker.tankerkoenig.
Hallo Pix,
das ging ja fix, danke! Nur hatte ich mir das etwas anders gedacht.
sorry ID war wohl das falsche Stichwort, damit kann ich in VIS nichts anfangen.
Das widget "Image 8" wertet eine Zahl aus um den Index für das jeweilige Bild festzulegen.
Index müsste also die Zahl vom Datenkanal sein, die dann nach tankerkoenig.0.stations.cheapest.diesel.station_index geschrieben wird.
Bsp für meine 8 Stationen
tankerkoenig.0.stations.0 ... tankerkoenig.0.stations.7 müsste dann eine Zahl [0-7] nach
tankerkoenig.0.stations.cheapest.SPRITSORTE.station_index geschrieben werden.
Dann ist mir gerade noch etwas aufgefallen:
in tankerkoenig.0.stations.cheapest.diesel.status steht jetzt nicht mehr "open" oder "closed" sondern der Wert der station_id. Somit hat es leider meine geöffnet/geschlossen-Anzeige im VIS zerschossen.
Gruß xbow42
from iobroker.tankerkoenig.
Hallo,
ich habe den Fehler station_id
in status
jetzt behoben. Neue Version 1.2.1
Zum ersten Punkt:
So wie du es beschreibst, möchte ich es nicht lösen. Der Umbau wäre zu sehr der Nutzung des image-8-stateful
Widgets geschuldet. Da kann man jetzt auch ein separates Javascript bauen, das einfach den tankerkoenig.0.stations.cheapest.diesel.station_id
überwacht und den entsprechenden Link zur Grafik in einen neuen Datenpunkt schreibt. Den Datenpunkt kannst du per vis-binding in die View einbauen.
Da ich den Adapter für material anpassen muss, kann ich bei der Gelegenheit natürlich auch gleich weitere Funktionen einbauen, die allen Nutzern helfen. Ich müsste mich nur zum einen oder anderen Thema erst schlau machen.
Ideen:
- zu jeder Station manuell auszufüllende Felder mit Geodaten zufügen. Die könnten später in VIS verwendet werden
- o.g. Felder ggf. durch eine innerhalb der Einstellungen manuelle ausgelöste Abfrage der Tankerkönig
detail.php
mit weiteren Inforamtionen füllen, die über die standardmäßig vom Adapter genutzte Abfrage nicht kommen. Diese brauchen ja nur für die Einrichtung einmal vom tankerkönig - Server geladen werden. - zu jeder Station ein Feld für ein Logo
- eine frei definierbare Pausenzeit, in der keine Abfragen gemacht werden
- Zufallsgenerator für die Startminute zwischen 1 und 4 bei Adapterstart (
schedule("1 * * * *")
)
Allerdings sollte klar sein, dass mehr Funktionen auch erstmal eine längere Bauzeit brauchen.
Gruß
Pix
from iobroker.tankerkoenig.
Hallo Pix,
wieder schnell repariert super!
Ich bin da leider noch nicht fit in iobroker und der Javascriptsyntax, darum hab mal mit Bockly was zusammen geschuppst.
Es scheint aber keinen Block zu geben wo ich meinen "Objektname"-string als ObjektID einklicken kann.
Code Kopiert , in Javascript eingefügt und bereinigt dann so:
`var objekt_id, i;
// meine 8 Dieseltanken abklappern und Index finden
on({id: "tankerkoenig.0.stations.cheapest.diesel.station_id", change: "ne"}, function (obj) {
for (i = 0; i <= 7; i++) {
objekt_id = 'tankerkoenig.0.stations.' + i + '.station_id';
if (getState("tankerkoenig.0.stations.cheapest.diesel.station_id").val == getState(objekt_id).val) {
setState("tankerkoenig.0.stations.cheapest.diesel.station_index", i);
break;
}
}
});`
Das mit dem "Datenpunkt kannst du per vis-binding in die View einbauen" habe ich nicht kapiert.
vermutlich geht das alles viel einfacher als ich das mit dem station_index und dem Image8-widget umsetze. Vielleicht baust du in die Doku mal ein Beispiel ein.
bez Doku: da muss es heißen
"Ausserdem werden noch DREI Datenpunkte gespeichert:"
Tolle Ideen die du da hast.
Aktuell wüsste ich nicht was ich mit den Geodaten in Vis anstellen sollte.
zu "eine frei definierbare Pausenzeit, in der keine Abfragen gemacht werden"
Wie wäre es mit einem boolenDatenpunkt( den man von seiner Homesteuerung setzen kann) der an gibt ob die Spritpreise abgerufen werden sollen oder eben nicht.
Mögliche Trigger für den Datenpunkt könnte dann sein An/Abwesenheit;Tag/Nachmodus;Vis-Zugriff(wobei ich nicht weiß ob/wie man das irgenwie erfassen kann).
Wobei, wenn man die Spritpreise für Flotanzeige aufzeichnet will man ja alle Werte sehen...
Für sowas wäre eine rrd-Datenbank am besten damit man mal nach ein paar Jahren sehen kann wie sich der Spritpreis gesteigert haben ohne 1million-Daten zu haben.
es braucht alles seine Zeit und Ideen müssen reifen.
Gruß xbow42
from iobroker.tankerkoenig.
Hallo,
danke für den Hinweis für die Readme. Ist erledigt.
Nun zu deinem Problem. Der ganze Aufwand, das Icon abhängig von der Position der Station im Einstellungsbereich zu machen, ist ja wieder zunichte, wenn man eine andere Station an die Position schreibt oder ähnlich.
Du solltest das Icon davon abhängig machen, was tatsächlich für eine Station gerade gezeigt wird bzw. im Datenpunkt steht. Das geht meistens ganz gut mit dem Namen, da man ja sowas wie "ARAL Bahnhofstraße" oder "ESSO Minidorf" im Namen hat. Man kann den Namen ja selbst vergeben.
Du müsstest dann ein Objekt anlegen, das passend zum Namen den richtigen Pfad zum Icon ausgibt.
Neues Javascript:
createState("TankerkoenigCheapestIconHTML", "");
var icons = {
Name1 : "<img src=\"pfad/zum/icon/station1\">",
Name2 : "<img src=\"pfad/zum/icon/station2\">",
Name3 : "<img src=\"pfad/zum/icon/station3\">",
Name4 : "<img src=\"pfad/zum/icon/station4\">",
}
on("tankerkoenig.0.stations.cheapest.diesel.name", function(obj) {
setState(idNeuerDatenpunkt, icons[obj.state.val]);
});
Damit erhält der neue Datenpunkt immer den Pfad zum Logo der aktuell billigsten Tankstelle.
Es ist vielleicht wirklich einfacher, wenn ich in einer zukünftigen Version den User auch Pfade zum Icon jeder Station hinterlegen lasse.
from iobroker.tankerkoenig.
Related Issues (20)
- [Bug]: Object tankerkoenig.0.stations.cheapest.diesel.postCode is invalid: Default value has to be type "number" but received type "string" HOT 9
- type error HOT 2
- [Bug]: error: TypeError: Cannot read properties of undefined HOT 5
- [Bug]: V3.3.0:Hausnummer wird nicht im Hausnummer-Feld eingetragen HOT 12
- [Bug]: axios HOT 1
- [Bug]: Wrong type “postCode” HOT 4
- [Feature]: Cheapest Station Boolean HOT 5
- error [ Adapter V:3.3.2 createObjects ] Error creating all states: TypeError: Cannot read property 'length' of undefined[Bug]: HOT 3
- [Bug]: Cheapest Station Boolean true even if not cheapest HOT 13
- [Bug]: [ Adapter V:3.3.2 createObjects ] Error creating all states: TypeError: Cannot read properties of null (reading 'length') HOT 9
- [Bug]: post code starting with 0 shown wrong HOT 3
- wrong object value tankerkoenig.0.stations.*.status resp. no updates for fuel prices until station shop opens, although 24/7 tank automate exists HOT 6
- Update stable version in repo from 3.1.0 to 3.3.5 HOT 1
- [Feature]: Preisdifferenz in Json Tabelle HOT 7
- Hoher Speicher Verbrauch HOT 7
- requestData axios response not ok HOT 3
- [Feature]: Grafana Dashboard link in Doku HOT 1
- Anzahl der Stationen erhöhen
- Abfragezeit von 10 auf 5Minuten ändern.[Feature]:
- [Feature]: Tankstelle geöffnet text ändern
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from iobroker.tankerkoenig.