FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Depechem am 12 April 2017, 08:56:45

Titel: notify auslösen wenn 2 verschiedene Readings passen
Beitrag von: Depechem am 12 April 2017, 08:56:45
Hi,
ich habe eine Anfängerfrage...  ???
Das notify soll auslösen wenn:
Device1:reading:.1.* und
Device2:reading:.2.* gleichzeitig diese Readings gesetzt haben.

wie müsste das notify genau aussehen?

define notify_1 notify Device1:reading:.1.*[code]...... set lamp on[/code]

Danke euch
Titel: Antw:notify auslösen wenn 2 verschiedene Readings passen
Beitrag von: marvin78 am 12 April 2017, 08:57:59
Einfach das notify auf beide Readings reagieren lassen (Regex) und dann im Ausführungsteil überprüfen, ob die Werte passen.
Titel: Antw:notify auslösen wenn 2 verschiedene Readings passen
Beitrag von: Depechem am 12 April 2017, 09:23:51
schön blöd, vielen Dank ;-)

define notify_Channel_09_Multiroomradio_Wohnzimmer_IMG notify DENON4300h:input:.OnlineMusic.*|HEOSPlayer1772574848:channel:.9.* setreading Multiroomradio_Wohnzimmer_IMG_dummy now_playing_img ./images/JUMP.png

so muss es in der cfg aussehen
Titel: Antw:notify auslösen wenn 2 verschiedene Readings passen
Beitrag von: Depechem am 12 April 2017, 10:13:26
nein leider funtioniert

DENON4300h_Zone_2:power:.on.*|DENON4300h_Zone_2:input:.OnlineMusic.* setreading Multiroomradio_Terrasse_IMG_dummy now_playing_img ./images/MDR.png
doch nicht wie es soll !

einzeln lößt das notify genau so aus wie
DENON4300h_Zone_2:power:.on.* setreading Multiroomradio_Terrasse_IMG_dummy now_playing_img ./images/MDR.png
DENON4300h_Zone_2:input:.OnlineMusic.* setreading Multiroomradio_Terrasse_IMG_dummy now_playing_img ./images/MDR.png
zusammen.
DENON4300h_Zone_2:power:.on.*|DENON4300h_Zone_2:input:.OnlineMusic.* setreading Multiroomradio_Terrasse_IMG_dummy now_playing_img ./images/MDR.png

scheinbar bedeutet | das eins von beiden nur aktiv sein muss.
ich möchte aber das beide readings aktiv sein müssen damit das notify erst schaltet.

könnt ihr bitte noch mal helfen


Titel: Antw:notify auslösen wenn 2 verschiedene Readings passen
Beitrag von: marvin78 am 12 April 2017, 10:19:15
Nochmal: Durch beide readings/Devices auslösen lassen (Regex-Beispiel)

(Device1:reading:.1.*|Device1:reading:.1.*)

und dann im Ausführungsteil prüfen ob beide wirklich den gewünschten Wert haben (Perl-Beispiel / Pseudocode)

if (ReadingsVal("Device1","reading",undef)=~1.* && ReadingsVal("Device2","reading",undef)=~1.*) {
    Mache, was ich will
}


Titel: Antw:notify auslösen wenn 2 verschiedene Readings passen
Beitrag von: Depechem am 12 April 2017, 10:40:00
Zitat von: marvin78 am 12 April 2017, 10:19:15
Nochmal: Durch beide readings/Devices auslösen lassen (Regex-Beispiel)

(Device1:reading:.1.*|Device1:reading:.1.*)

und dann im Ausführungsteil prüfen ob beide wirklich den gewünschten Wert haben (Perl-Beispiel / Pseudocode)

if (ReadingsVal("Device1","reading",undef)=~1.* && ReadingsVal("Device2","reading",undef)=~1.*) {
    Mache, was ich will
}




tut mir leid aber ich bekomme es nicht hin...

wenn ich folgendes im DEF eingebe geht es nicht.
Bin kein PERL Experte


DENON4300h_Zone_2:input:.OnlineMusic.*|DENON4300h_Zone_2:power:.on.* if (ReadingsVal("DENON4300h_Zone_2","power",undef)=~on.* && ReadingsVal("DENON4300h_Zone_2","input",undef)=~OnlineMusic.*) {set Buero on}
Titel: Antw:notify auslösen wenn 2 verschiedene Readings passen
Beitrag von: marvin78 am 12 April 2017, 10:48:28
Musst du auch nicht. Wenn du die Schritte machst, die ein Anfänger machen sollte (Einsteiger-PDF lesen und alles weitere, das hier und im Wiki empfohlen wird) sollte das kein Problem sein.

Man schaut zunächst mal ins Log, welches Fehler es gibt, dann korrigiert man diese oder postet das Log hier.


DENON4300h_Zone_2:input:.OnlineMusic.*|DENON4300h_Zone_2:power:.on.* {if (ReadingsVal("DENON4300h_Zone_2","power",undef)=~on.* && ReadingsVal("DENON4300h_Zone_2","input",undef)=~OnlineMusic.*) {fhem("set Buero on")}}


Das kann funktionieren, muss aber nicht. Ich weiß nicht einmal ob dein notify auslöst, weil ich die Events nicht kenne.

Bitte mit den Grundlagen von FHEM beschäftigen, denn du scheiterst gerade an tiefen basics.
Titel: Antw:notify auslösen wenn 2 verschiedene Readings passen
Beitrag von: Depechem am 12 April 2017, 11:11:40
für alle anderen:

DENON4300h_Zone_2:input:.OnlineMusic.*|DENON4300h_Zone_2:power:.on.* { if(ReadingsVal('DENON4300h_Zone_2','power','') eq "on" && ReadingsVal('DENON4300h_Zone_2','input','') eq "OnlineMusic") { fhem("set Buero on")} }

so muss es aussehen
Titel: Antw:notify auslösen wenn 2 verschiedene Readings passen
Beitrag von: automatisierer am 12 April 2017, 11:28:55
define testdoif DOIF ([DENON4300h_Zone_2:input] eq "OnlineMusic" and [DENON4300h_Zone_2:power] eq "on") (set Buero on)
attr testdoif do always


... oder so mit DOIF...  ;D