NEWS
Tasmota Taster und NSPanel Relais
-
Ich würde gerne mit einem (externen) Taster das Relais am NSPanel schalten. Der Code unten funktioniert leider nicht gewünscht,. Wo mache ich da den Fehler?
on({ id: [].concat(['mqtt.0.stat.tasmota_Dxxxxx.POWER1']), change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; let newState = !getState('alias.0.NSPanel.1.Licht.WZ.Decke_Schreibtisch.ON_ACTUAL').val; setState('alias.0.NSPanel.1.Licht.WZ.Decke_Schreibtisch.SET', newState); console.log(newState); });
Anm: im LOG taucht ein "true" auf
-
Wo zeigt den dieser Alias hin
'alias.0.NSPanel.1.Licht.WZ.Decke_Schreibtisch.SET'
oder nutzt du vielleicht sogar dieses Script hier.
Wenn ja, dann stell deine Frage in diesem Thread. -
@podex
Weshalb sind unter "alias.0" unterschiedliche Datenpunkte für Lesen und Schreiben vorhanden? Man verwendet Alias auch, um das zu vermeiden.
Ist "POWER1" ein Schalter oder ein Taster? -
Das kommt, wie ich vermute aus dem Script welches ich verlinkt habe. Des Weiteren ist es auch der Geräte (device) Adapter der die Geräte so anlegt.
-
@paul53 Ich verwende als Vorlage das Skript hier: https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts
POWER1 ist das Relais (das schaltet derzeit "leer", d.h. es ist dort nichts angeschlossen -
@podex Also ich habe das Problem gelöst, aber ich denke nicht, dass das nachhaltig ist.
Code:
on({ id: [].concat(['mqtt.0.stat.tasmota_Dxxxxx.POWER1']), change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; let newState; if (getState('alias.0.NSPanel.1.Licht.WZ.Decke_Sofa.ON_ACTUAL').val) {newState=0;} else {newState=1;} console.log(newState); setState('alias.0.NSPanel.1.Licht.WZ.Decke_Sofa.SET' /* SET */, newState); });
Also ich schicke "1" bzw. "0" statt "true" bzw. "false". Das führt dann aber zu diesen Einträgen im LOG:
You are assigning a number to the state "alias.0.NSPanel.1.Licht.WZ.Decke_Sofa.SET" which expects a boolean. Please fix your code to use a boolean or change the state type to number. This warning might become an error in future versions.
-
@podex probiere mal das
ggf. Power1 bzw. Power2 nutzen
-
@tt-tom
Hi,ich klinke mich mal kurz hier ein. Bei mir klappt das Schalten so wie von dir beschrieben.
Aber nur das als "POWER 1" deklariertes Relais.setState ("mqtt.0.cmnd.NSPANEL_KUECHE_899ED8.POWER", 1); setState ("mqtt.0.cmnd.NSPANEL_KUECHE_899ED8.POWER", 0);
Schaltet das Relais 1 an/aus. Der Rückgabewert dafür heißt "mqtt.0.stat.NSPANEL_KUECHE_899ED8.POWER1" und bewegt sich auch genau wie gedacht.
Nun die Frage: Wie kann ich denn POWER2, also das andere Relais schalten? Bekomme ich irgendwie nicht hin. Hat jemand eine Idee?
Danke,
Gruß Andy -
@volleyhomer sagte in Tasmota Taster und NSPanel Relais:
Nun die Frage: Wie kann ich denn POWER2, also das andere Relais schalten? Bekomme ich irgendwie nicht hin. Hat jemand eine Idee?
Du darfst nicht "POWER" nutzen, sondern "POWER1" und "POWER2".
mqtt.0.cmnd.NSPANEL_KUECHE_899ED8.POWER1 mqtt.0.cmnd.NSPANEL_KUECHE_899ED8.POWER2
Wenn die DP nicht existieren, müssen sie angelegt werden.
-
Irgendwie hätte ich da auch selber drauf kommen können. Es funktioniert.
Vielen lieben Dank und schönen Wochenanfang an dich!
Gruß Andy