NEWS
Jarvis - Mehrere Datenpunkte in einem Dropdown Menü
-
@damrak2022 Verschieben auf November. Pro?
-
@mcu Okay, dann melde ich mich nochmal, wenn ich es nicht hinbekomme.
-
@mcu Noch eine Frage am Rande: Wie kann ich 2 Widgets auf einen anderen Tab verschieben, da mir hier ansonsten etwas der Platz ausgeht?
-
-
@mcu Guten Morgen, ich versuche schon die ganze Zeit 4 unterschiedliche Szenen, von denen jede in einem einzelnen Datenpunkt gespeichert ist in einem Dropdownfeld auswählbar zu machen. Aber irgendwie bekomme ich das nicht hin und bräuchte mal einen Tipp von Dir.
-
@damrak2022 Was sind das für DPs mit ObjectId?
-
@mcu Das sind mal als Beispiel 4 Datenpunkte und so heißt auch die Objekt ID
hue.0.lightScenes.scene_yellow
hue.0.lightScenes.scene_smooth_
hue.0.lightScenes.scene_lesezeit
hue.0.lightScenes.scene_red_light -
@damrak2022 Das sind boolean DPs als Button?
-
@mcu Ja, boolean
-
-
@mcu Ich hatte das gestern den ganzen Tag versucht, aber ich steige nicht dahinter wie ich den Code z.B. für mein Schlafzimmer anpassen müsste:
Hier gibt es folgende 4 Datenpunkte, für jede Szene einen Datenpunkt:
hue.0.lightScenes.scene_yellow
hue.0.lightScenes.scene_smooth_
hue.0.lightScenes.scene_red_light
hue.0.lightScenes.scene_lesezeitDie Object Id der Datenpunkte ist identisch.
Könntest Du mir bitte mal anhand dieser Datenpunkte zeigen wie der Code exakt aussehen müsste, damit ich diese 4 Szenen über ein Dropdown Feld steuern könnte.Das würde mir massiv weiterhelfen.
-
@damrak2022 Datenpunkt-Eigenschaften
{ "value": "val => {/* console.log(val); */ if(val == 1){ window.Socket.setState('hue.0.lightScenes.scene_yellow',true);}else if(val == 2){ window.Socket.setState('hue.0.lightScenes.scene_smooth_',true);}else if(val == 3){window.Socket.setState('hue.0.lightScenes.scene_red_light',true);}else if(val == 4){window.Socket.setState('hue.0.lightScenes.scene_lesezeit',true);} return val;}" }
-
@mcu Irgendwie stellt sich das für mich komplizierter da als ich gedacht habe:
Mein Dropdown sieht momentan so aus:
Wenn ich allerdings "Smooth" einschalte steht das nicht oben im Dropdown Feld.Den Code habe ich bei allen 4 Datenpunkten eingefügt:
Und ach der Wechsel zwischen den einzelnen Szenen klappt noch nicht. Die Lampe hatte ich die Dropdown mit "Yellow" eingeschaltet und so bleibt sie momentan auch. Ein umschalten auf z.B. "Lesezeit" klappt nicht.
Da scheint wohl noch was wichtiges falsch zu sein, aber ich komme hier auch mit der Doku nicht weiter.
-
@damrak2022 In der Doku steht zu dem Beispiel DropDownAction und nicht ButtonGroupAction
Du hast auch kein dummyDP angelegt -
@mcu Ich gebe es zu, ich tue mich schwer. So ich habe jetzt alle auf "Dropdown Action geändert. Einen dummy Datenpunkt habe ich auch angelegt:
Und diesen bei mir hinzugefügt:
Muss ich die Datenpunkt Eigenschaften hier genauso setzen wie bei den real vorhandenen Datenpunkten? Und was muss ich noch einstellen? Wenn ich es einmal habe, kann ch es mir notieren um es für die anderen Zimmer dann genauso umzusetzen.
-
@damrak2022 Der Dummy muss ein Number oder string DP sein.
Wie merkt denn HUE dass man in einem anderem Raum ist? -
@mcu Ich will Dich ja nicht ärgern, aber anscheinend bin ich zu dämlich um das richtig zu verstehen. Deswegen poste ich Dir mal was ich wo, bis jetzt eingerichtet habe. Irgendwo musst' ja noch ein dicker Fehler drin sein.
Als Gerät habe ich diese 5 Datenpunkte angelegt:
Den "dummy" Datenpunkt habe ich so konfiguriert.
Anzeigeveariante (JSON Format){ "0": "Keine Auswahl", "1": "Yellow", "2": "Smooth", "3": "Red Light", "4": "Lesezeit" }
Datenpunkt Eigenschaften (JSON Format)
{ "value": "val => {/* console.log(val); */ if(val == 1){ window.Socket.setState('0_userdata.0.Jarvis.Schlafzimmer.dummy',true);}else if(val == 2){ window.Socket.setState('0_userdata.0.Jarvis.Schlafzimmer.dummy',true');}else if(val == 3){window.Socket.setState('0_userdata.0.Jarvis.Schlafzimmer.dummy',true');}else if(val == 4){window.Socket.setState('0_userdata.0.Jarvis.Schlafzimmer.dummy',true');} return val;}" }
Die sonstigen Einstellungen im "dummy Datenpunkt sehen so aus:
Bei den Datenpunkten "yellow, smooth, Red Light und Lesezeit" ist die Anzeigevariante (JSON Format) so konfiguriert:
{ "hue.0.lightScenes.scene_yellow": "Yellow" }
Die Datenpunkt Eigenschaften (JSON Format) sind so konfiguriert:
{ "value": "val => {/* console.log(val); */ if(val == 1){ window.Socket.setState('0_userdata.0.Jarvis.Schlafzimmer.dummy',true);}else if(val == 2){ window.Socket.setState('0_userdata.0.Jarvis.Schlafzimmer.dummy',true');}else if(val == 3){window.Socket.setState('0_userdata.0.Jarvis.Schlafzimmer.dummy',true');}else if(val == 4){window.Socket.setState('0_userdata.0.Jarvis.Schlafzimmer.dummy',true');} return val;}" }
Bei "Smooth" sieht die Anzeigevariante (JSON Format) so aus:
{"hue.0.lightScenes.scene_smooth_":"Smooth"}
Unter Layout sieht es im Moment so aus, was aber falsch ist, denn die 4 Szenen sollen ja über 1 Dropdown Menü zu steuern sein
Den dummy Datenpunkt habe ich auf String geändert
Das alles bezieht sich nur auf das Schlafzimmer und wenn ich das endlich mal begriffen habe, kann ich mir das für die anderen Zimmer genauso anlegen.
-
@damrak2022 Die Datenpunkt-Eigenschaften dürfen nur im dummy-Geräte-Schlüssel sein. In keinem der anderen Geräte-Schlüssel darf dieser Eintrag sein.
Auch das Layout löschen für yellow.
-
@mcu Dank Deiner Hilfe bin ich ja nun ein ganzes Stück weitergekommen.
Im Schlafzimmer funktioniert der Wechsel von einer Szene zur anderen. Dafür habe ich folgende Codes verwendet:Anzeigevariante (JSON Format)
{ "1": "Yellow", "2": "Smooth", "3": "Red Light", "4": "Lesezeit" }
Bei den Datenpunkt Eigenschaften (JSON Format) diesen:
{ "value": "val => {/* console.log(val); */ if(val == 1){ window.Socket.setState('hue.0.lightScenes.scene_yellow',true);}else if(val == 2){ window.Socket.setState('hue.0.lightScenes.scene_smooth_',true);}else if(val == 3){window.Socket.setState('hue.0.lightScenes.scene_red_light',true);}else if(val == 4){window.Socket.setState('hue.0.lightScenes.scene_lesezeit',true);} return val;}" }
Soweit so schön. Das Ganze habe ich dann über weitere "string" dummy Datenpunkte auch für den Flur und das Bad gemacht, hier kann ich aber seltsamerweise die Szenen nicht wechseln.
Hier mal der Code vom Flur:
Datenpunkt Eigenschaften:
{ "value": "val => {/* console.log(val); */ if(val == 1){ window.Socket.setState('hue.0.lightScenes.scene_cool_light',true);}else if(val == 2){ window.Socket.setState('hue.0.lightScenes.scene_green_light',true);}else if(val == 3){window.Socket.setState('hue.0.lightScenes.scene_ganz_hell',true);}else if(val == 4){window.Socket.setState('hue.0.lightScenes.scene_light_orange',true);} ;} return val;}" }
Anzeigevariante:
{ "1": "Cool Light", "2": "Green Light", "3": "Ganz hell", "4": "Light Orange" }
Hast Du eine Idee, warum es bei dem einen Zimmer geht und bei den anderen nicht?
-
@damrak2022 Du hast den HUE-Adapter im Einsatz? Soweit ich es beurteilen kann, hat der nicht die Möglichkeit die Szenen der einzelnen Räume / Lichter zu starten. Man kann nur die Lichtszenen starten, die er angibt.
In den Datenpunkten bei mir sind keine Lichtszenen dem Licht zugeordnet.
Evtl muss man diese übercommands
ansteuern?Im Adapter-readme https://github.com/iobroker-community-adapters/ioBroker.hue steht z.B.
setState('hue.0.All.Wohnzimmer', { "scene": "hell", "transitiontime": 30 }, false);