FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: sek_is_back am 05 März 2017, 20:06:50

Titel: Aktor mit nur einem Befehl on/off schalten
Beitrag von: sek_is_back am 05 März 2017, 20:06:50
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?
Titel: Antw:Aktor mit nur einem Befehl on/off schalten
Beitrag von: Thorsten Pferdekaemper am 06 März 2017, 15:44:33
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
Titel: Antw:Aktor mit nur einem Befehl on/off schalten
Beitrag von: Otto123 am 06 März 2017, 16:21:21
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
Titel: Antw:Aktor mit nur einem Befehl on/off schalten
Beitrag von: betateilchen am 06 März 2017, 16:28:13
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.
Titel: Antw:Aktor mit nur einem Befehl on/off schalten
Beitrag von: sek_is_back am 07 März 2017, 15:17:55
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
Titel: Antw:Aktor mit nur einem Befehl on/off schalten
Beitrag von: Otto123 am 07 März 2017, 15:42:22
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
Titel: Antw:Aktor mit nur einem Befehl on/off schalten
Beitrag von: sek_is_back am 07 März 2017, 16:54:29
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