Probleme mit notify bei devlisten

Begonnen von Elektrolurch, 03 Juli 2013, 12:13:42

Vorheriges Thema - Nächstes Thema

Elektrolurch

Hallo zusammen,

ich habe da ein (Verständnis)problem mit notify.

AlleGeraete ist eine struct, zusammengefasst aus den Geräten der einzelnen Besitzer.
AlleGeraete ist immer dann present, wenn mindestens eins der Geräte present ist.
Das funktioniert auch einwandfrei, ich habe dazu eine Übersicht im room "Haus" angelegt.
Nur die notifys funktionieren nicht richtig.
Das notify " JemandzuHause3" sendet immer dann eine Mail, wenn mindestens eins der Geräte auf "present" geht.
Dasist soweit auch korrekt.
Aber das notify " JemandzuHause" wird nie angesprungen. Hier habe ich eine Liste von Geräten im notify drin:
AlleGeraete,Harald,Marina...
Ich wollte dann mit @ und % in die Mail mit übernehmen, wer explizit das notify getriggert hat. Die Bedingung im notify (:.*) hatte ich testweise so reingeschrieben, mit ":present" geht es aber auch nicht.
Eigentlich müsste das notify doch auch getriggert werden, wenn eine der Komponenten (und durch die Verknüpfung) immer auch "AlleGeraete getriggert wird. Geht aber nicht. Wo liegt der Denkfehler?

Code: (Auszug)



#Gesamtstruktur definieren

define AlleGeraete structure HandyHarald HandyMarina HandyTatjana HandyRaimund \
LaptopHarald LaptopMarina LaptopTatjana TVMarina TVWohnzimmer \
Superkiste Repeater
attr AlleGeraete clientstate_behavior relative
attr AlleGeraete clientstate_priority present absent
attr AlleGeraete event-on-change-reading .*
attr AlleGeraete room Haus

#######################################
# Notifies definieren

# Notifies definieren

define JemandzuHause notify AlleGeraete,Marina,Harald,Tatjana,Raimund:.* { \
            FB_mail ($main::MailAdresse,'Jemand zu Hause','@ %');;}

define NiemandzuHause notify AlleGeraete:absent {\
            my $bodytext = "Keiner mehr zu Hause: ".$hour.":".$min." Uhr";;\
     FB_mail ($main::MailAdresse,'Niemand zu Hause',$bodytext);;}

define JemandzuHause3 notify AlleGeraete:present {\
            FB_mail ($main::MailAdresse,'Jemand zu Hause (3)','@ %');;}

Elektrolurch


 
configDB und Windows befreite Zone!

justme1968

wenn du ein notify durch mehr als ein device triggern willst musst du den regulären ausdruck so bauen das er auch matched.

versuch es mal so define JemandzuHause notify (AlleGeraete|Marina|Harald|Tatjana|Raimund) ...
dein notify matched für ein device das 'AlleGeraete,Marina,Harald,Tatjana,Raimund' heisst.

statt @ und % solltest du $NAME und $EVENT bzw $EVENTPART0,  $EVENTPART1, ... verwenden. die alte version ist deprecated.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Elektrolurch

Hallo Andre,
danke für den Tipp. Dann ist ja alles klar. Ich bin vom set - Befehl ausgegangen. Da geht ja doch sowas: set Lampe.*, Leuchter.* on

Ich dachte, beim notify wäre das auch so.
Elektrolurch
configDB und Windows befreite Zone!