Mal wieder ein Notify Problem

Begonnen von ulli, 11 Oktober 2020, 15:45:01

Vorheriges Thema - Nächstes Thema

ulli

Hallo zusammen,

ich bin schonwieder am verzweifeln mit dem notify.
Situation ist folgende:
Ich setzte mit dem set Kommando eines Dummys "smartConditions" einen Wert. (Set Kommando ist in setList definiert -> setTemp)
Mit Hilfe eines notifys "notify_smartConditions" erkenne ich den set Befehl des Dummys und setzte dann in der notify Function zusätzlich ein paar Readings (z.B. update=true).
Nun  möchte ich auf Basis der zusätzlichen Readings "update" ein anderes notify "notify_Heizungssteuerung" triggern.
Nur leider triggert das zweite notify nicht. Obwohl ich im Event Manager das Event "2020-10-11 15:43:15 dummy smartConditions update: true" sehe.

Was mache ich falsch?

Hier meine Defines:

defmod smartConditions dummy
attr smartConditions event-on-change-reading .*
attr smartConditions event-on-update-reading state,update
attr smartConditions room Conditions
attr smartConditions setList setTemp

defmod notify_smartConditions notify (smartConditions:setTemp.*)

defmod notify_Heizungssteuerung notify (Heizungssteuerung|smartConditions:update:.true)


Viele Grüße,
  Ulli

Otto123

Hi,

aus meiner Sicht falsche Klammern:
Im ersten notify sind die Klammern obsolete solltest Du einfach weglassen!

Im zweiten eigentlich auch. (Heizungssteuerung|smartConditions:update:.true) -> Heizungssteuerung|smartConditions:update:.true

Allerdings triggert das auf alles von Heizungssteuerung!

Würde bedeuten
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

ulli

Hab es gerade ohne Klammer getestet. Funktioniert auch nicht.
Kann es sein das wenn ich innerhalb eines notify ein reading setzte das dies dann kein anderes notify auslösen kann? Ist das ein FHEM Bug?

Otto123

#3
eher ein Feature :)
Du kannst zum Test ein sleep 0.1; davor setzen - ich dachte das ist nur innerhalb eines Devices relevant. Auszug C-Ref
ZitatAchtung: setreading generiert kein Event für ein Gerät X, falls es aus einem notify für Gerät X aufgerufen wurde. In so einem Fall könnte man auf "sleep 0.1; setreading X Y Z" ausweichen.
Ansonsten lass ein notify zum Test durch den Eventmonitor erzeugen, da siehst Du ob dein Trigger richtig ist. Danach kannst Du ja den Trigger erweitern.

Ich finde das Konstrukt
attr smartConditions event-on-change-reading .*
attr smartConditions event-on-update-reading state,update
hier "komisch" kann sein das Du eigentlich nur das wolltest?:
attr smartConditions event-on-change-reading state,update
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

ulli

Es scheint wirklich ein Bug zu sein.
Ich setzte die Readings eigentlich mit

readingsBeginUpdate($hash);
readingsBulkUpdate($hash,"update", "true");
readingsEndUpdate($hash,1);

--> das triggert aber das notify nicht

Wenn ich es jetzt so mache wie von dir vorgeschlagen Otto
fhem("sleep 0.1;setreading smartConditions update true;");

--> dann wird das notify getriggert

Otto123

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

ulli

HA! tatsächlich ein Feature! Das ist aber ein tolles Feature :)
Danke dir Otto!