Moin,
was muss ich wo einstellen, damit ich einen Lampe mit nur einem Befehl aus bzw einschalten kann?
Hintergrund:
Ich habe zu Testzwecken eine RGB WLAN LD686 eingerichtet, dieser funktioniert problemlos per on / off
Jetzt habe ich die Sprachsteuerung von Snowboy implementiert. Wenn das Hotword erkannt wurde setzt Snowboy per Shell einen Befehl zu FHEM ab, der die Lampe einschaltet. (perl /opt/fhem/fhem.pl 7072 "set TVLight on")
Jetzt möchte ich mit dem gleichen Befehl die Lampe wieder ausschalten. Ich habe irgendwas von set toggle gelesen, das bietet der LD686 aber nicht an.
Jemand eine Idee?
Zitat von: sek_is_back am 05 März 2017, 20:06:50Jemand eine Idee?
Ja, liefere erst einmal ein list von dem Device, um das es geht.
Gruß,
Thorsten
Hi,
und wenn Du Dir einfach ein toggle baust?
Also ein notify auf "toggle" und dann ein: wenn an dann aus und wenn aus dann an? Ist doch ziemlich simpel.
Gruß Otto
Zitat von: Thorsten Pferdekaemper am 06 März 2017, 15:44:33
Ja, liefere erst einmal ein list von dem Device, um das es geht.
oder zumindest den Namen des Moduls, mit dem Du den LD686 eingebunden hast.
Moin,
also die LED Stripe (TVLight) habe ich mit WifiLight RGBWW LD686:192.168.0.46 als Actor definiert, diesen kann ich per App von allen mobilen Geräten und der Weboberfläche problemlos an und ausschalten.
Ich habe mir jetzt einen Dummy Schalter wie folgt angelegt:
define TVSwitch dummy
define m-TV notify TVLight {UntoggleDirect("TVLight")}
attr TVSwitch comment Untoggle
define n_1Untoggle notify .*:toggle {UntoggleDirect("$NAME") if( AttrVal($NAME, "comment", "") eq "Untoggle" )}
wenn ich jetzt das WebCommand perl opt/fhem/fhem.pl 7072 "set TVSwitch toggle" absetzte wird der TVSwitch geschaltet
Readings state bleibt auf toggle aber die Uhrzeit ändert sich 2017-03-07 14:13:05
dann habe ich den noch unter notify eingebunden
TVSwitch { if ("%" eq "toggle") {if ($value{TVLight} eq "off") {fhem "set TVLight on"} else {fhem "set TVLight off"}}}
wenn der Befehl zum Schalten kommt, wird nur der TVSwitch geschaltet, aber nicht der Aktor TVLight.
Stehe gerade etwas auf dem Schlauch
Hi,
zunächst mal brauchst Du Code tags -> Die # Taste über :-X
Dieser Code funktioniert:
defmod nty_TVSwitch notify TVSwitch { if ($EVENT eq "toggle") {if (Value("TVLight") eq "off") {fhem"set TVLight on"} else {fhem"set TVLight off"}}}
Wie und wo du versucht hast deinen Code einzugeben ist mir völlig schleierhaft, da muss es doch vor Fehlern nur so geregnet haben?
Gruß Otto
defmod nty_TVSwitch notify TVSwitch { if ($EVENT eq "toggle") {if (Value("TVLight") eq "off") {fhem"set TVLight on"} else {fhem"set TVLight off"}}}
Damit hat es dann funktioniert, vielen Dank