FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Achim_T am 18 Juli 2018, 22:10:14

Titel: notify und userattr
Beitrag von: Achim_T am 18 Juli 2018, 22:10:14
Hallo,
ich benutze folgendes notify um über 'result-rfreceived-data' die userattr 'bridgeOff' und 'bridgeOn' abzufragen wenn ein passsender Wert an einem Device gefunden wird.

define n_SonoffBridgeCode notify BridgeSonoff:result-rfreceived-data:.* {}
{
    fhem("setstate a:bridgeOff=" . $EVTPART1 . ":FILTER=STATE=on off");
    fhem("setstate a:bridgeOn=" . $EVTPART1 . ":FILTER=STATE=off on");
}


Ein entsprechendes Device sieht bsp so aus:
define WZ_SchrankLichtProxy dummy
attr WZ_SchrankLichtProxy userattr bridgeOn bridgeOff
attr WZ_SchrankLichtProxy bridgeOff 501014
attr WZ_SchrankLichtProxy bridgeOn 501015
attr WZ_SchrankLichtProxy setList on:noArg off:noArg
attr WZ_SchrankLichtProxy webCmd on:off


Mein Problem ist, das ich gerne das entsprechende 'reading state' mit aktualisieren würde, weil nur STATE gesetzt wird. Ich hoffe ich habe mich verständlich ausgedrückt und jemand kann mir helfen.
Titel: Antw:notify und userattr
Beitrag von: Achim_T am 19 Juli 2018, 19:53:05
Hallo,
ich wollte meine Frage noch weiter eingrenzen.
Mit dem notify ändere ich ja den  (Internals) "STATE" des entsprechenden Device, kann ich das soweit abändern (vor allem wie) um das automatisch angelegte reading "state" mit zu aktualisieren?
Titel: Antw:notify und userattr
Beitrag von: Achim_T am 20 Juli 2018, 18:46:05
Ich melde mich nochmal, weil ich immer noch nicht so recht weiter komme.
Was ich nachlesen konnte ist, "setstate ändert nur das reading und erzeugt kein event".
Meine Frage dazu ist, könnte ich bei den entsprechenden Devices nicht  auf eine Änderungs des STATE reagieren also einen Vergleich machen und mit "setreading" den state aktualisieren?
Meine PERL kenntnisse sind da nicht ausreichend beziehungsweise nicht vorhanden. Grüße
Titel: Antw:notify und userattr
Beitrag von: Achim_T am 20 Juli 2018, 19:14:26
jetzt habe ich für mich eine Lösung gefunden, ganz einfach...
ich habe das notify dahingehend erweitert, so kann ich das für jedes DEvice übernehmen wo ich es benötige.

Sonoff_Bridge:result-rfreceived-data:..* {
fhem("setstate a:bridgeOff=" . $EVTPART1 . ":FILTER=STATE=on off");
fhem("setstate a:bridgeOn=" . $EVTPART1 . ":FILTER=STATE=off on");
if ($EVTPART1 == "D34D8E") {
fhem('set Sonoff_BM1 on');
}
}