NEWS
Widget für verschiedene states gesucht
-
Hallo,
ich bin neu in Sachen vis und habe schon ein paar Dinge umgesetzt aber aktuell weis ich nicht weiter obwohl es warscheinlich sehr einfach wäre
Habe gestern etliche Stunden mit googeln und ausprobieren verbracht aber ohne Erfolg.
Was hätte ich gerne:
ich habe einen Datenpunkt mit mehrerern states im iobroker: absent, home, asleep, work… und diesen state würde ich nun gerne im vis wie folgt integrieren. Je nach state soll ein Wort in einer anderen Farbe an der selben Stelle eingeblendet werden. Beispiel bei home soll das Wort "in" in grün angezeigt werden, wechselt der state nun auf asleep soll sich das Wort in "sleep" ändern und blau werden.
Habe gestern mit metro valuelist, valuelist und vielen anderen rum probiert aber eigtl die Widgets erwarten immer eine Zahl, 0,1,2...
Denke für euch ist dies einfach umzusetzen und wäre nett wenn mir da jemand helfen könnte
-
Das geht bei mir so:
HTML bei 'false':
Achim nicht zu Hause
HTML bei 'true':
Achim zu Hause
-
Danke für deine Antwort mein Datenpunkt liefert mir aber nicht false/true sondern eben absent, home, asleep, work. Bitte bei Vorschlägen auch dazu schreiben um welches Widget es sich handelt da ich wie gesagt neu im Thema VIS bin.
-
Hallo,
ich habe einen Datenpunkt mit mehrerern states im iobroker: absent, home, asleep, work `
wenn das wirklich eine Werteliste mit States ist, dann kann das o.g. Widget mit der Ansteuerung 0,1,2,3 die vier verschiedenen Zustände darstellen.Gehe doch mal in Admin in den Objekte Reiter, suchen Datenpunkt raus und poste hier den Inhalt nach dem Auswählen von Editieren (der schräge Stift) und dem Reiter RAW.
Falls es keine Werteliste sein soll, kann man mit einem kleinen Skript ein Steuerobjekt anlegen, das zB die Zahlen 0 bis 3 bekommt, wenn sich der Inhalt der Quelle ändert.
Gruß
Pix
-
Hallo Pix,
danke für deine Antwort und nein es ist keine Werteliste sondern vom Datentyp eine Zeichenkette und je nach Anwesenheit wird das Feld mit einem der Statuse gesetzt. Mittels Blockly, tr64 und geofancy. Sprich der State von "flo" = "home" und wird bei Änderung überschrieben mit z.B. "absent".
Ich denke ich benötige hier ein Script und bin denke ich schon auf dem richtigen weg, als Vorlage habe ich dies verwendet: viewtopic.php?t=7178
Mein Script habe ich angehängt aber leider ändert sich der Wert nicht und es steht immer "white" als state drin. Denke es liegt an meinem Programmier-skill ^^
Kann aber auch sein das ich auf dem total falschen Weg bin
Danke und Grüße
9376_vis-present.png -
es steht immer "white" als state drin. `
if(data.state.val === 'home') setState(idFarbe, 'green', true);
usw.
-
Danke Paul somit funktioniert schon mal der erste Teil
var idFarbe = "javascript.0.VIS.present-flo"; var idAktor = "javascript.0.Present.state.flo"; createState(idFarbe, 'white', { def: 'white', type: 'string', role: 'text' }); on(idAktor, function (data) { if (data.state.val === 'home') setState(idFarbe, 'green', true); else if (data.state.val === 'absent') setState(idFarbe, 'red', true); else if (data.state.val === 'asleep') setState(idFarbe, 'blue', true); else if (data.state.val === 'work') setState(idFarbe, 'orange', true); });
Mit welchen Widget schaffe ich es jetzt wenn der Status "home" ist ein Text z.b. "zuHause" in "green" angezeigt wird und wenn der selbe Status auf "absent" wechelt der Text sich in "Abwesend" ändert und rot wird?
Die Farben für die Werte haben wir ja jetzt durch das Script.
Danke
-
hab es mittlerweile anders gelöst. Habe das Script umgebaut damit es mir nicht die Farbe sondern eine Nummer einträgt und mit 0-3 konnte ihn nun alles abbilden.
Danke für die Denkanstöße
-
Vielleicht noch ein weiterer Denkanstoß:
Ich löse so etwas immer unkonventionell, indem ich mir zu jedem Status ein passendes HTML-Widget erzeuge (Textinhalt und Farbe) und bei Sichtbarkeit den jeweiligen Wert eintrage. Dann lege ich alle Widgets übereinander und in der fertigen Vis ist dann immer nur das passende sichtbar.
Gesendet von meinem ONEPLUS A5010 mit Tapatalk