NEWS
NSPanel - Hardwarebuttons und MQTT Problem (gelöst)
-
@dark-angel Wenn du auf die Tasten drückst bekommst du doch auf dem MQTT die Meldung Power1 on /off bzw. Power2 on/off. Diese kannst du doch auswerten
mqtt.x.SmartHome.NSPanelBüro.stat.POWER1
-
@dark-angel es gibt jetzt eine Erweiterung mit der Version 4.0.4.1 und höher. Dazu musst du aber bitte mal ein Test für mich machen. Da ich die Kiste mit den Relais nicht hinten dran habe. kann ich das jetzt nicht testen. in den Service Seiten unter Einstellung / Relais solltest du die Relais schalten können, bitte mal testen.
Dann gibt es eine Möglichkeit über das Script zu steuern.
-
@tt-tom sagte in NSPanel - Hardwarebuttons und MQTT Problem:
@dark-angel Wenn du auf die Tasten drückst bekommst du doch auf dem MQTT die Meldung Power1 on /off bzw. Power2 on/off. Diese kannst du doch auswerten
mqtt.x.SmartHome.NSPanelBüro.stat.POWER1
Da muss ich wohl noch etwas basteln um den Wert als Alias abzulegen in der Hoffnung, dass es dann in Jarvis klappt (und auch in dem TrueScript für den NSPanel).
@tt-tom sagte in NSPanel - Hardwarebuttons und MQTT Problem:
@dark-angel es gibt jetzt eine Erweiterung mit der Version 4.0.4.1 und höher. Dazu musst du aber bitte mal ein Test für mich machen. Da ich die Kiste mit den Relais nicht hinten dran habe. kann ich das jetzt nicht testen. in den Service Seiten unter Einstellung / Relais solltest du die Relais schalten können, bitte mal testen.
Dann gibt es eine Möglichkeit über das Script zu steuern.
Ich habe schon die 4.0.4.2 "am laufen".
Wenn ich in den Einstellungen > Relais schalte, dann.. Ja dann wird der Wert auch ordentlich an ioBroker übermittelt und dem entsprechend auch in Jarvis angezeigt, sowie auch in den oberen Screensaver Ecken am NSPanel.
Umgekehrt ist es auch so, dass wenn ich das Licht per Jarvis einschalte, auch die Werte richtig in den Screensaver Ecken und unter Einstellungen > Relais angezeigt werden.Es ist tatsächlich nur die fehlende Kommunikation zw. den Hardwarebuttons und ioBroker.
-
@dark-angel Dann aktiviere nochmal die Rule2 und im Script musst du dann für die Button folgende Einstellung machen. Beispiel für Button 1
button1: { mode: 'toggle', // Mögliche Werte wenn Rule2 definiert: page, toggle, set - Wenn nicht definiert --> mode: null page: null, // Zielpage - Verwendet wenn mode = page (bisher button1Page) entity: '0_userdata.0.NSPanel.Büro.Relay.1', // Zielentity - Verwendet wenn mode = set oder toggle setValue: null // Zielwert - Verwendet wenn mode = set }
-
@TT-Tom
anhand meiner MQTT Konfig auf dem NSPanel, welcher wäre eigentlich der richtige Befehl?Rule2 on Button1#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon
oder
Rule2 on Button1#state do Publish SmartHome/%topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish SmartHome/%topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon
-
@dark-angel der zweite
-
@tt-tom
Danke.
Funktioniert leider trotzdem nicht:State "mqtt.0.SmartHome.NSPanel.%prefix%.RESULT" has no existing object, this might lead to an error in future versions
-
@dark-angel Wo kommt die Meldung den jetzt her?
-
@tt-tom aus dem ioBroker Protokol.
Anscheinend sendet das NSPanel schon "irgendwas", sobald man auf dem Button klickt, aber das ist nicht das richtige.
Das steht dann in der Tasmota Console auf dem NSPanel:16:42:15.477 RUL: BUTTON1#STATE performs "Publish SmartHome/NSPanel/%prefix%/RESULT {"CustomRecv":"event,button1"}" 16:42:15.485 MQT: SmartHome/NSPanel/%prefix%/RESULT = {"CustomRecv":"event,button1"} 16:42:17.078 RUL: BUTTON1#STATE performs "Publish SmartHome/NSPanel/%prefix%/RESULT {"CustomRecv":"event,button1"}" 16:42:17.085 MQT: SmartHome/NSPanel/%prefix%/RESULT = {"CustomRecv":"event,button1"}
-
@dark-angel sorry da habe ich mich getäuscht. du hast doch oben schon die richtige Rule angelegt
bitte das noch einmal anlegen.
-
Tasmota:
16:57:00.259 RUL: BUTTON1#STATE performs "Publish NSPanel/%prefix%/RESULT {"CustomRecv":"event,button1"}" 16:57:00.267 MQT: NSPanel/%prefix%/RESULT = {"CustomRecv":"event,button1"} 16:57:01.909 RUL: BUTTON1#STATE performs "Publish NSPanel/%prefix%/RESULT {"CustomRecv":"event,button1"}" 16:57:01.918 MQT: NSPanel/%prefix%/RESULT = {"CustomRecv":"event,button1"}
ioBroker:
State "mqtt.0.NSPanel.%prefix%.RESULT" has no existing object, this might lead to an error in future versions
Ich hoffe nur, dass es bei mir ein Einzellfall ist und nicht ein generelles Problem, denn: Wenn die Lösung darin besteht die Hardwarebuttons von ihre eigentliche Funktion (Licht Ein/Aus schalten) zu entkoppeln, wird der "Lichtschalter" praktisch ohne Funktion sein, solange kein Steuerungsscript im Hintergrund läuft.
Mit der Einstellung "Rule2 0" kann man nach wie vor das Licht schalten, selbst wenn das Display noch Runden dreht und auf Daten von ioBroker wartet.
Wie schon gesagt: bis vor kurzem hat es noch funktioniert... -
@dark-angel Ja mit Rule2 0 verbindest du Relais und Button direkt über Tasmota.
Wenn du die Sicherheit haben möchtest das es immer funktioniert dann ist es mMn nicht anders möglich. Die Relais bringen keinen Status
Wenn du es doch über das Script probieren möchtest, dann gib in der Console noch einmal die richtige Rule-Definition ein.
Rule2 on Button1#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon
dann Rule2 1
-
@tt-tom sagte in NSPanel - Hardwarebuttons und MQTT Problem:
Rule2 1
Also... Hirn eingeschalten, nachgeschaut und schon hat es funktioniert:
Rule2 on Button1#state do Publish SmartHome/%topic%/tele/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish SmartHome/%topic%/tele/RESULT {"CustomRecv":"event,button2"} endon Rule2 1
Jetzt bleibt nur noch (zumindest für mich) die Frage zu klären, wieso der NSPanel in der Konsole nichts mit %prefix% anzufangen weiß.
P.S. Hätte mir viel Nachdenken erspart, hätte ich in dem Kapitel etwas besser aufgepasst: NSPanel-Tasmota-FAQ#1-hardware-buttons
Dort wird nirgends der %prefix% erwähnt.
Ich glaube, die Kurze Info im TrueScript sollte dahingehend überarbeitet werden.
Zeile 130:129 Tasmota Konsole: 130 Rule2 on Button1#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon 131 Rule2 1 (Rule aktivieren) 132 Rule2 0 (Rule deaktivieren)
An dieser Stelle möchte ich mich recht herzlich bei @TT-Tom für die Unterstützung bedanken.
-
@dark-angel sagte in NSPanel - Hardwarebuttons und MQTT Problem (gelöst):
Ich glaube, die Kurze Info im TrueScript sollte dahingehend überarbeitet werden.
Zeile 130:Danke für die Rückinfo, wir werden es mit aufnehmen. Viel Spass weiterhin.