einfacher Taster für set "on" und set "off"

Begonnen von Haus-Andi, 26 September 2020, 16:22:36

Vorheriges Thema - Nächstes Thema

Haus-Andi

Hallo Profis

Nach vielem lesen und immer weniger verstehen, versuche ich mein Problem rasch in Worte zu fassen, vieleicht kann mir da jemand ja einen Tip geben was ich falsch mache?

Ich habe einen 4fach Enocean-Taster der via fhem einen Shelly rgbw2 schalten soll. Bissher hatte ich Enocean-Schaltaktor eingebaut und den mittels 2stk "notify" mit den Befehlen "set on, set off" versehen. Nun möchte ich aber das jeder Taster quasi ein "toggle" macht, aber dem Shelly dann eben doch "set .... on" und "set ... off" sendet.

Dazu habe ich mir ein notify definiert und folgende Regel versucht:
IF (EnO_0015C4C0:B0.* and ([Ursin_LED_Shelly:state] eq "on")) (set Ursin_LED_Shelly off) else (set Ursin_LED_Shelly on)

Aber das geht irgendwie nicht.

Ich möchte nachher zusätzlich zum einschalten eben noch ein weiteres "set ..... rgb ffffff" mitgeben. Darum eben die Taster sowohl als toggle verwenden.

Internals:
   CFGFN     
   DEF        IF (EnO_0015C4C0:B0.* and ([Ursin_LED_Shelly:state] eq "on")) (set Ursin_LED_Shelly off) else (set Ursin_LED_Shelly on)
   FUUID      5f6f3322-f33f-fbd2-bcce-5597c7f6d2623429
   NAME       LED_Ursin_Shelly
   NR         89359
   NTFY_ORDER 50-Deckenlicht_Ursin_off
   REGEXP     IF
   STATE      active
   TRIGGERTIME 1601125029.56027
   TYPE       notify
   Helper:
     DBLOG:
       state:
         DBLogging:
           TIME       1601125530.1469
           VALUE      active
   READINGS:
     2020-09-26 15:05:30   state           active
Attributes:
   room       5_ZiUrsin


Raspberry Pi+Enocen Pi
Thermokon SR04
Micropelt
USB to 1-Wire

Otto123

Hi,

das ist kein wirkliches notify! Das ist nur ein Ausführungsteil, das Wesentliche, der Trigger, fehlt! :)

Was Du wirklich machen willst ist mir noch nicht klar.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz


Haus-Andi

Ich möchte eigentlich mit dem betätigen des Tasters (ist eine Enoceantaster mit 4 einzlnen Taster) den LED Streifen am Shelly rgbw2 einschalten und auf eine vordefinierte farbe stellen. Beim nächsten betätigen soll dann einfach ein "....off" gesendet werden usw. Das möchte ich für jeden der 4 Taster einzeln machen, wobei einer das normale Deckenlicht mit dem Enocean-Aktor ist, der bereits eine Schrittschalterfunktion integriert hat.

Ich muss mir die Beschreibung im wiki morgen durchlesen uns ausprobieren, so fürs erste scheint es genau das richtige zu sein.

Vielen Dank
Andi
Raspberry Pi+Enocen Pi
Thermokon SR04
Micropelt
USB to 1-Wire

Otto123

schwer zu verstehen, aber was Du Dir ausgedacht hast sollte eventuell so aussehen?
EnO_0015C4C0:B0.* IF ([Ursin_LED_Shelly:state] eq "on") (set Ursin_LED_Shelly off) else (set Ursin_LED_Shelly on)Eventuell hast Du deine vorhandenen notifys ähnlich gemacht?
So wie oben umgestellt, wird bei allen Events die dem regExp EnO_0015C4C0:B0.* entsprechen deine Logik aufgerufen. Ob das gut ist kann ich nicht abschätzen. Das musst Du im Eventmonitor prüfen.

Auf alle Fälle entspricht dies Deiner falsch geschriebenen UND Verknüpfung.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Haus-Andi

#5
Hallo Otto

Zitat von: Otto123 am 26 September 2020, 20:18:05
schwer zu verstehen, aber was Du Dir ausgedacht hast sollte eventuell so aussehen?

Eigentlich ist es ganz einfach, ganz losgelöst von meinen Gedanken mit dem "IF", möchte ich einfach einen Stromstossschalter, Schrittschalter, Flipflop oder wie man es auch nennen will, realisieren.
Aktuell versuche ich gerade die Funktion aus dem wiki zu verstehen, denn ich habe die Variante der indirekten Koppelung (Taster->fhem->Shelly) und eben auch keine Dimmfunktion (ist mit EnoceanTaster auch etwas heikel).

Gruss Andi

Nachtrag: mit dieser Zeile funktioniert es nun
EnO_FEFE1F96:A0.*  IF ([EnO_FEFE1F96:channelA] eq "A0" && [Ursin_LED_Shelly:state] eq "off") (set Ursin_LED_Shelly on) ELSE (set Ursin_LED_Shelly off)

Was das gross und kleinschreiben des "ELSE" ausmacht, verstehe ich zwar nicht ganz, aber wichtig ist das es nun geht.
Vielen Dank
Andi
Raspberry Pi+Enocen Pi
Thermokon SR04
Micropelt
USB to 1-Wire

Otto123

Wenn (Bedingung ist wahr) dann - wird weggelassen (mach das) Alternativ (mach das, also wenn Bedingung nicht wahr ist)
IF()()ELSE() ist FHEM Code - aber analog zum Perlsyntax
{if (){}else{}} ist Perl Code.

Ergo: IF()()else() ist eigentlich falsch, wird aber eventuell vom FHEM Parser ignoriert.  ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz