Coder Social home page Coder Social logo

Comments (5)

Pix--- avatar Pix--- commented on August 24, 2024

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.

xbow42 avatar xbow42 commented on August 24, 2024

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.

Pix--- avatar Pix--- commented on August 24, 2024

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.

xbow42 avatar xbow42 commented on August 24, 2024

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.
tanker_blockly
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.

Pix--- avatar Pix--- commented on August 24, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.