NEWS
Fritz!Dect 200 Steckdose mit Node Red schalten
-
Hallo,
ich habe einen Flow erstellt, mit dem ich über einen Alexa Sprachbefehl eine Fritz!Dect 200 Steckdose ein- bzw. ausschalten kann.
Dazu habe ich ein Alexa Virtual Device als Switch erstellt und darin in deren Topic die AID(Aktor Identifikationsnummer) der Fritz!Dect Steckdose an ein Outlet des node-red-contrib-fritzapi Nodes übergeben. Um die Steckdose zu schalten, muss im Outlet als Action toggle angegeben werde.
Soweit so gut, die Steckdose schaltet ein, wenn ich als Sprachbefehl "Alexa Steckdose ein" angebe.
Da es sich aber nur um ein togglen handelt, kann ich mit demselben Sprachbefehl die Steckdose auch wieder ausschalten.
Aus ästhetischen Gründen hätte ich es lieber, wenn mit "Steckdose ein" die Fritz!Dect auch nur eingeschaltet wird und mit "Steckdose aus" die Fritz!Dect auch eben wieder aus.
Ist sowas in dieser Konstellation überhaupt möglich?Gruß Kymchy
-
@kymchy sagte in Fritz!Dect 200 Steckdose mit Node Red schalten:
red-contrib-fritzapi Node
Also ich verstehe nicht, warum man das auf toggle einstellen muss. Ich kenne die Nodes nicht, aber in meinen Augen kann man die normal mit booleans true und false aus- und einschalten.
Sowie ich das verstanden konfigurierst Du die Outlet Node nicht als:
setSwitchToggleKann aber auch sein, dass man mit on, off schaltet. Ganz klar ist mir das im moment auch nicht. Würde es halt mal mit beidem versuchen true/false oder on/off
so interpretiere ich den Code der Node:
switch(action) { case 'setSwitchState': const cmd = msg.payload ? "setSwitchOn" : "setSwitchOff"; node.connection.fritz("getSwitchState", msg.ain || msg.topic).then(function(t) { if (t != msg.payload) { node.connection.fritz(cmd, msg.ain || msg.topic).then(function() { node.log(`${msg.ain || msg.topic} switched ${msg.payload ? 'on' : 'off'}`); node.send(msg); }); } else { node.send(msg); } }); break; case 'setSwitchToggle': case 'getSwitchState': case 'getSwitchPower': case 'getSwitchEnergy': case 'getSwitchPresence': case 'getTemperature': node.connection.fritz(action, msg.ain || msg.topic).then(function(t) { msg.payload = (+t === 0) ? 0 : (+t || t); node.send(msg); }); break; default: node.error("Unknown action: " + (action || '-undefined-')); return; } });
Zum Status abholen konfiguriest Du eine Node als getSwitchState, um die Alexa Node mit dem aktuellen Status zu versorgen.
-
@mickym du meinst, anstatt als Action toggle anzugeben, sollte ich set state nehmen und es dann mit 0 oder 1 bzw. on oder off bzw. true oder false versuchen?
-
@kymchy Ja !
-
@mickym ok, werde ich mal versuchen, danke!
Der Debug Node für den Outlet schmeißt zumindest nach einer Schaltung 0 bzw. 1 raus... -
@kymchy Na und damit kannst ja schon mal Deine Alexa Node über den Status informieren.
-
@mickym das ist richtig.
-
@mickym für das Hue Wandschalter Modul sollte toggle aber ausreichen...
-
@kymchy Du kannst togglen oder schalten. Das liegt doch bei Dir was Du haben willst. Wenn Du togglest und Du brauchst den Status dann must Du den halt mit einer Node abfragen, mit Action Get Status. Ein toggle würde ich grundsätzlich dann nehmen, wenn ich nur etwas triggern will - der Status aber egal ist.
-
@mickym für den Alexa Node klappt das ja problemlos mit dem Set State.
Die Steckdose soll aber über Alexa und einem Hue Wandschalter geschaltet werden können.
Das Hue Wandschalter Modul liefert mir bei einmaligem Schalten aber nur folgende 2 Objekte:{"reachable":true,
"connectionStatus":"connected",
"button":2,"action":"initial_press",
"updated":"2022-01-17T10:05:47+01:00"}{"reachable":true,
"connectionStatus":"connected",
"button":2,"action":"short_release",
"updated":"2022-01-17T10:05:48+01:00"}Deshalb wäre da togglen einfacher. Aber ich kann wohl nicht den Fritz!Dect Node zweimal im selben Flow benutzen, oder?
-
@mickym das Ganze hat sich im Grunde erledigt. Ich habe es jetzt zwar hinbekommen, die Steckdose so zu schalten, wie ich es möchte.
ABER: das Hue Wandschalter Modul schaltet nur, wenn ihm auch ein erreichbares Hue Gerät zugeordnet ist.
Würde bedeuten, ich kann die Fritz!Dect nur mit dem Wandschalter Modul schalten, wenn ich gleichzeitig irgendeine Hue Lampe mitschalte. Und das ist ziemlich sinnfrei... -
@kymchy Also - soweit ich das sehe kann man die Nodes mehrfach einsetzen.
Meines Erachtens kannst Du eine toggle und eine setstate für die gleiche Steckdose verwenden und sogar noch eine 3.Node mit getstate - also mit der Du den Status abfrägst, um die Alexa Node zu füttern - also nicht direkt den Output nutzt.
-
@mickym ja, so hatte ich es auch gemacht. Nur ist, wie gesagt, der Hue Wandschalter zu doof...
Ein get state brauche ich gar nicht unbedingt, ich leite den Output der Steckdose einfach nach einer Umwandlung wieder zurück zum Alexa Node. Vielleicht sollte ich mir noch ein Shelly zulegen. Aber dann muss ich die Unterputzdose nach hinten vergrößern... -
@kymchy Ja aber du kannst doch die Steckdose einmal mit der setState Aktion aus Alexa und der Toogle Methode aus dem HUE Wandschalter ansteuern?
Das ist doch völlig egal. IN den Nodes gibst Du ja mit der ID an, welches Gerät Du in der FritzBox ansteuern willst.
-
@mickym ja sicher. Funzt ja auch. Aber der Wandschalter schaltet nicht, wenn kein erreichbares Hue Gerät dranhängt. Und die Steckdose ist kein Hue Gerät.
Das würde nur gehen, wenn man auf der Hue Bridge virtuelle Geräte einrichten könnte aber das gibt's nicht. -
@kymchy Gibt es da nicht diese HUE Nodes?
-
@mickym jap, habe ich auch genutzt dafür.
Man muss in der Hue App dem Wandschalter ein Gerät zuordnen. Anders geht es nicht. Er lässt sich nicht anders einrichten. Und das Gerät muss erreichbar sein, sonst schaltet der Wandschalter nicht. -
@kymchy Ja dann verstehe ich es nicht:
Du kannst doch dann mit so einem HUE Button die FB Node ansteuern.
Und selbst der kann wenn ich das richtig sehe, sogar zwischen states unterscheiden:
-
@mickym genau. Und der Wandschalter ist connected to the Bridge. Und wenn ich irgendeine beispielsweise Lampe dranhänge bzw. dem Wandschalter zuordne, kann ich diese Lampe damit ein und ausschalten. Dann kann ich den Wandschalter auch mit Node Red schalten. Aber auch nur dann. Der Wandschalter funktioniert schlicht nicht, wenn kein erreichbares Hue Gerät dranhängt. Das ist kein Problem von Node Red, sondern von Philips.
-
@kymchy Kannst Du denn mit dem Wandschalter verschiedene Szenen zuordnen und schalten - oder einen Szene an und ausschalten auch wenn nichts dran hängt und dann über die Szene Node triggern?