NEWS
[gelöst] Jarvis - Wert setzen StateList Widget?
-
Mir fällt es schwer zu beschreiben, daher muss ich ein bisschen ausholen.
Ich habe ein Nuki Schloss.
Dieser liefert mir verschiedene state-Werte per mqtt. Diese lasse ich mir korrekt anzeigen - so weit so gut.
Jetzt würde ich das Schloss gerne auch verriegeln können. Anfangs dachte ich, ich nehme ein Dropdown-Feld im Widget. Das geht, allerdings bekomme ich als Auswahl dann die ganzen states, die ich definiert habe. Das will ich aber nicht, eigentlich möchte ich ja nur entriegeln und verriegeln haben. Einen state für blockierten Motor will ich ja nicht setzen.
Und das weiß ich nicht, wie ich das anstellen kann. Kann man die Dropdown Liste beschränken? Das alle states angezeigt werden aber nur ausgeählte gesetzt werden?
Ich habe auch versucht einen ButtonAction im Widget zu setzen, aber auch da verstehe ich nicht wie ich Werte eintragen kann, dass die korrekt zu dem Triggerdatenpunkt gegeben werden.
Dadurch das ich zwei verschiedene Datenpunkte habe, einen zum anzeigen und einen Triggerdatenpunkt weiß ich nicht weiter.
-
@bigchris
Bist du sicher das der Zielstate beim Nuki überhaupt beschreibbar ist? Die Werte klingen eher nicht nach einem "Command"-State. -
Ja - da bin ich mir sicher.
mqtt.0.nuki.x.state ist zur Anzeige. Das kann nur visualisieren.
Schalten kann ich mqtt.0.nuki.x.lockAction.
Daher fällt es mir ja so schwer. Ich möchte den mqtt.0.nuki.x.state anzeigen und daneben einen Schalter haben, der einen Wert an mqtt.0.nuki.x.lockAction übergibt. Das soll halt in einer Zeile erscheinen in der Visualisierung. -
@bigchris Soll nur ein Wert an
mqtt.0.nuki.x.lockAction
übergeben werden oder unterschiedliche (false/true).
Wenn man nur einen Wert (true) übergebn muss, kann man es mit Deiner Konstellation machen, ansonsten muss man mehrere Geräte-DPs nutzen. -
@mcu
Wenn es einfacher wäre, würde mir ein Wert reichen. Es müsste eine 1 sein.
Eigentlich würde mir reichen, wenn das Schloß über das Tablet verriegelt werden würde. (Mit dem Wert 1).
Wo müsste ich das dann wie eintragen damit rs mit einem Schalter übergeben wird? -
Einstellungen im Geräte-DP
mqtt.0.nuki.x.lockAction
eintragen
mqtt.0.nuki.x.state
eintragen
oder dies löschen
-
@mcu
Vielen Dank, schaut nicht ganz aus wie ich dachte, ist aber auch gutJetzt verstehe ich auch, dass die Werte einfach unterschiedlich sind.
Gibt es eigentlich auch einen Taster? Der ActionSwitch schaltet ja optisch hin und her. Die Anzeige geht aber nicht mit, wenn das Nuki manuell oder an der App geändert wird.
Gibt es einfach einen Taster, der beim drücken immer den gleichen Wert übergibt? Natürlich könnte ich auch beim Switch zwei mal den gleichen Wert übergeben, das sieht aber nicht so schön aus. -
@mcu
Ich denke ich habe es gefunden, vielen Dank.
Man kann den ButtonAction als Taster definieren und dann entprechend die Daten übergeben und die Label benennen. Klasse.
Ich mag Jarvis -
@mcu
Eine Frage habe ich aber jetzt doch noch.
Ich hatte ja das Icon so definiert, dass es sich ja nach Status ändert auf der Anzeige. Das passiert nur ja leider nicht mehr.
Bekommt man das wieder hin? Das das Icon vorne auf den "State" reagiert und nicht auf den lockAction? -
@bigchris Zeig mal die Zeile aus dem Layout
-
@mcu
meinst du wie es im View aussieht?
oder dies hier:
-
@bigchris Das untere, aber ist doch der status als Body State.
das steht doch noch im status, oder?
Scheint noch ein Fehler zu sein. -
@mcu
ja, das steht da noch drin.
Sobald aber bei actionState das lockAction eingetragen wird mit dem Trigger Element ändert sich das Icon vorne nicht mehr wie es bei state definiert ist. Es scheint dann auf dem Gewerk icon zu bleiben -
@bigchris Ok, du musst dann im Geräte-DP
lockaction
alle Werte für das Icon von state eintragen{ "{0_userdata.0.DP.dp2}= 12345": "mdi:door-closed-lock" }
Ist der state ein string?
Gib mir mal den Icon JSON -
@mcu
Ja, das sollte ein String sein{ "0": "mdi:tool-time", "1": "mdi:door-closed-lock", "2": "mdi:car-engine-start", "3": "mdi:door", "4": "mdi:car-engine-start", "253": "mdi:error", "254": "mdi:error" }
So funktioniert es nicht bei lockAction
{ "{mqtt.0.nuki.37BBFFDD.state}= 1": "mdi:door-closed-lock" }
Ich denke ich habe es, hinter dem = darf kein Leerzeichen stehen, also so:
{ "{mqtt.0.nuki.37BBFFDD.state}=1": "mdi:door-closed-lock" }
-
@BigChris So funktioniert es?
{ "{mqtt.0.nuki.37BBFFDD.state}=0": "mdi:tool-time", "{mqtt.0.nuki.37BBFFDD.state}=1": "mdi:door-closed-lock", "{mqtt.0.nuki.37BBFFDD.state}=2": "mdi:car-engine-start", "{mqtt.0.nuki.37BBFFDD.state}=3": "mdi:door", "{mqtt.0.nuki.37BBFFDD.state}=4": "mdi:car-engine-start", "{mqtt.0.nuki.37BBFFDD.state}=253": "mdi:error", "{mqtt.0.nuki.37BBFFDD.state}=254": "mdi:error" }
Sonst so.
{ "'{mqtt.0.nuki.37BBFFDD.state}'='0'": "mdi:tool-time", "'{mqtt.0.nuki.37BBFFDD.state}'='1'": "mdi:door-closed-lock", "'{mqtt.0.nuki.37BBFFDD.state}'='2'": "mdi:car-engine-start", "'{mqtt.0.nuki.37BBFFDD.state}'='3'": "mdi:door", "'{mqtt.0.nuki.37BBFFDD.state}'='4'": "mdi:car-engine-start", "'{mqtt.0.nuki.37BBFFDD.state}'='253'": "mdi:error", "'{mqtt.0.nuki.37BBFFDD.state}'='254'": "mdi:error" }
-
@mcu
Ja - super!
Vielen Dank für Deine unermüdlichen Einsatz!