Aktion auslösen bei Reading Change

Begonnen von Hopfenmann, 16 Juli 2017, 19:31:01

Vorheriges Thema - Nächstes Thema

Hopfenmann

Guten Tag,
ich habe vor 2 Tagen mit meinem eigenen kleinen Heimautomatisierungsprojekt begonnen.
Bis jetzt bin ich recht gut klargekommen.
-FHEM Server auf RaspberryPi Zero W
- ESP Easy auf Sonoff Smart Switches geflashed, sowie in FHEM eingebunden und Buttons zum schalten eingerichtet.
- Erste schritte mit Floorplans

Jetzt bin ich aber an einem Punkt wo ich nicht weiter komme.
Die Sonoff SMart switches haben zusätzlich zum Relay einen Taster. Ich habe diesen Taster zusätzlich im FHEM als Gerät eingebunden. Jedes mal wenn ich den Taster drücke ändert sich dort ein Reading welches in meinem Fall "Key" heißt.

Ich möchte jetzt mit diesem Taster andere eingerichtete Geräte schalten. Aber das FUnktioniert nicht so ganz.
Probiert habe ich es mit folgendem:
define btn_fhem2_press_on notify ESPEasy_fhem2_key:key:on set WohnzimmerLED off
attr btn_fhem2_press_on addStateEvent 1
define btn_fhem2_press_off notify ESPEasy_fhem2_key:key:off set WohnzimmerLED on
attr btn_fhem2_press_off addStateEvent 1

Dabei WOllte ich eigentlich das wenn Key auf Off steht die LED angeschaltet wird, und umgekehrt. Funktioniert aber auch nicht wirklich.

Viel lieber würde ich aber die schaltung abhängig vom aktuellen status der lampe machen. Heißt wenn ich den Taster drücke und die Lampe aus ist, soll sie eingeschaltet werden.
Wie kann ich das am besten realisieren.

Ich bedanke mich jetzt schonmal für alle hilfe im vorraus,
euer Marcel :)

Hopfenmann

Könnte man dann nicht einfach sagen, das jedes mal wenn das reading sich ändert, mit einer if abfrage der status von der lampe geholt wird und dann enstprechend diese geschaltet wird? Leider bekomm ich den Code dafür nicht zusammen :(

roedert

Zitat von: Hopfenmann am 16 Juli 2017, 19:31:01
Heißt wenn ich den Taster drücke und die Lampe aus ist, soll sie eingeschaltet werden.

Da sollte doch mit
set WohnzimmerLED toggle
funktionieren.
Falls dein Schalter-Device toggle nicht unterstützt eben mit einer if-Abfrage.

DeeSPe

Dein notify Trigger ist falsch und kann so nicht funktionieren.
Probiere es mal so:
define btn_fhem2_press_on notify ESPEasy_fhem2_key:key:.on set WohnzimmerLED off

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Otto123

Guten Abend,

ich empfehle immer Eventmonitor aufmachen, Gerät im Filter eintragen: ESPEasy_fhem2_key.* dann den Event auslösen: Taster drücken.
Jetzt kann man die Zeile markieren und ein notify erzeugen lassen.  8)

Man auch sein eigenes regEx im Eventmonitor testen und sieht warum es nicht geht.  ;)

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