Hallo zusammen,
ich habe Sonoff's S20 mit meiner IT-Steckdosen FB per Notify verknüpft.
Zitat
Internals:
DEF FB_IT_3:.* set Lampe2_WZ $EVENT
NAME FB_IT_Three
NOTIFYDEV FB_IT_3
NR 110
NTFY_ORDER 50-FB_IT_Three
REGEXP FB_IT_3:.*
STATE 2018-01-14 11:18:37
TYPE notify
READINGS:
2018-01-14 11:16:11 state active
Attributes:
room 6. Notify
Schalte ich den IT trigger schaltet auch die S20.
Jetzt hab ich 2 Probleme.
Wird die S20 direkt am Button der Steckdose geschaltet, ändert sich natürlich nicht der Status des IT Devices. Gleiches gilt für andFhem,
dort nutze ich Widgets mit Verknüpfung zum IT Devices, um zu triggern. Leider scheint andFhem mit dem heutigen Update bei mir defekt zu
sein. Ich wollte gerade schauen ob ich die S20 so anpassen kann, das ich sie in andFhem auf ein Widget legen kann. Dann würde aber immer
noch das Problem bestehen, wenn die S20 direkt am Gerätebutton geschaltet wird.
edit:
Schön wäre, wenn das Notify auf beide Events reagiert und jeweils den anderen Status setzt. Oder besser als DOIF mhh.
suche dir die eindeutigen events auf dem eventmonitor und passe die regex an.
vom prinzip etwa so:
(event1|event2)
Ich bin noch nicht so bewandert in Perl, glaube aber, das ist nicht das, was ich suche. Es ist doch so, das wenn (event1|event2) abgefragt werden, führt dieses dazu,
das ein dritter Event ausgelöst wird. Bei mir geht es aber nur um 2 Devices, die wenn einer eingeschaltet ist, dem anderen sagen muss, schalte dich auch ein.
Quasi ein double toggle ohne das eine Endlosschleife entsteht.
edit:
Ich denke zu kompliziert? Besser ein Dummy mit 2 Notifys als Schalter verwenden, der dann beide triggert?
die regex eines notify löst kein event aus, sondern filtert events, die das notify triggern.
einsteiger.pdf ruhig öfter mal durcharbeiten.
Ok,
verstanden.
Zum $EVENT,da besteht ein Problem. Wie ich oben angegeben habe, nutzte ich folgendes zum triggern:
ZitatFB_IT_3:.* set Lampe2_WZ $EVENT
Drehe ich den Spieß einfach mal um, nur zum testen passiert nichts.
Lampe2_WZ :.* set FB_IT_3 $EVENT
Hier ein List der beiden Devices mit EventMonitor
Internals:
DEF 00000FF0FF 0F F0
IODev myCUL433
NAME FB_IT_3
NR 101
STATE off
TYPE IT
XMIT 00000ff0ff
XMITdimdown 00
XMITdimup 00
XMIToff f0
XMITon 0f
CODE:
1 00000ff0ff
READINGS:
2018-01-04 19:43:28 protocol V1
2018-01-14 18:57:09 state off
Attributes:
IODev myCUL433
icon light_light
room IT
subType switch
2018-01-14 18:57:04 IT FB_IT_3 on
2018-01-14 18:57:04 CUL myCUL433 raw: is00000FF0FF0F
2018-01-14 18:57:09 IT FB_IT_3 off
2018-01-14 18:57:09 CUL myCUL433 raw: is00000FF0FFF0
Internals:
IODev myBroker
NAME Lampe2_WZ
NR 87
STATE ON
TYPE MQTT_DEVICE
qos *:1
retain *:1
READINGS:
2018-01-14 19:02:03 presence Online
2018-01-14 19:01:19 state ON
2018-01-14 19:02:03 transmission-state incoming publish received
message_ids:
publishSets:
:
topic cmnd/Schreibtisch/POWER
values:
On
Off
sets:
Off
On
subscribe:
tele/Schreibtisch/LWT
stat/Schreibtisch/POWER
subscribeExpr:
^tele\/Schreibtisch\/LWT$
^stat\/Schreibtisch\/POWER$
subscribeReadings:
stat/Schreibtisch/POWER:
cmd
name state
tele/Schreibtisch/LWT:
cmd
name presence
Attributes:
IODev myBroker
devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON Offline:rc_BLUE:OFF
icon message_socket
publishSet On Off cmnd/Schreibtisch/POWER
qos at-least-once
retain 1
room 3. Wohnzimmer,MQTT
stateFormat {ReadingsVal($name,"presence","") eq "Offline" ? "Offline" : ReadingsVal($name,"state","")}
subscribeReading_presence tele/Schreibtisch/LWT
subscribeReading_state stat/Schreibtisch/POWER
webCmd On:Off
2018-01-14 19:03:03 MQTT myBroker connection: active
2018-01-14 19:03:04 MQTT_DEVICE Lampe2_WZ ON
2018-01-14 19:03:04 MQTT_DEVICE Lampe2_WZ transmission-state: outgoing publish sent
2018-01-14 19:03:04 MQTT_DEVICE Lampe2_WZ transmission-state: outgoing publish acknowledged
2018-01-14 19:03:04 MQTT_DEVICE Lampe2_WZ transmission-state: incoming publish received
2018-01-14 19:03:04 MQTT_DEVICE Lampe2_WZ ON
2018-01-14 19:03:14 MQTT_DEVICE Lampe2_WZ OFF
2018-01-14 19:03:14 MQTT_DEVICE Lampe2_WZ transmission-state: outgoing publish sent
2018-01-14 19:03:14 MQTT_DEVICE Lampe2_WZ transmission-state: outgoing publish acknowledged
2018-01-14 19:03:14 MQTT_DEVICE Lampe2_WZ transmission-state: incoming publish received
2018-01-14 19:03:14 MQTT_DEVICE Lampe2_WZ OFF
So, erstmal konnte ich mein Problem lösen. Das mit dem $EVENT beschäftigt mich aber noch immer. Was übersehe ich?
Damit es funktioniert, habe ich als erstes wie oben erwähnt ein simples Notify erstellt, um mit der IT-FB die Sonoff S20 zu triggern.
ZitatFB_IT_3 set Lampe2_WZ $EVENT
Damit der Status auch in umgekehrter Weise funktioniert, wenn der Button der Sonoff S20 gedrückt wird, oder im Webinterface geschaltet wird,
habe ich es mit einem DOIF geschafft.
Zitat([Lampe2_WZ:"^OFF$"]) (set FB_IT_3:FILTER=STATE=on off) DOELSEIF ([Lampe2_WZ:"^ON$"]) (set FB_IT_3:FILTER=STATE=off on)
Gibt es noch einen eleganteren Weg?