Hi
ich hab ein Problem mit einem Notify. Die Idee ist, das wenn ich nicht Zuhause bin, bei einem ANruf auf meiner Leitung eine Nachricht auf mein Handy geschickt wird. Das gleiche soll bei meiner Frau ebenfalls passieren. Das DOIF dazu sieht wie folgt aus:
([Anrufmonitor:internal_number] =~'^207335' and [Anrufmonitor:direction] eq 'incoming' and [MarcosHandy] eq 'absent')
(set Pushover msg 'FHEM' 'Anruf in Abwesenheit von [Anrufmonitor:external_number] ([Anrufmonitor:external_name])' 'marcoshandy' 0 '')
DOELSEIF
([Anrufmonitor:internal_number] eq'207349' and [Anrufmonitor:direction] eq 'incoming' and [SarahsHandy] eq 'absent')
(set Pushover msg 'FHEM' 'Anruf in Abwesenheit von [Anrufmonitor:external_number] ([Anrufmonitor:external_name])' 'sarahshandy' 0 '')
Das Problem ist, dass die absent checks jedes mal aufs neue die Nachricht auslösen, wenn sich dieser Status ändert. Dabei gab es überhaupt keinen Anruf. Normal müsste die Prüfung innerhalb des Kommandos ausgeführt werden weis aber nicht wie das gehen soll.
Außerdem ist das zweite Problem, wenn die gleiche Person nochmal anruft, kein Benachrichtigung raus geht, da sich Anrufmonitor:internal_number und Anrufmonitor:direction nicht geändert habt. (meistens :D)
Hat jemand einen Tipp/Lösung für mich wie ich das hinbekommen kann.
EDIT:
Der Anrufmonitor ist ein FB_CALLMONITOR.
Ich hab doch noch etwas in der Doku gefunden. Wenn ich das richtig verstanden habe muss ich bei der dritten Prüfung nur ein ? mit in die [] schreiben oder?
Ich vermute du meinst DOIF und nicht notify - das DOELSEIF lässt auf DOIF schliessen.
Das sind 2 verschiedene Paar Schuhe.
Edith: Sorry aber bei DOIF kann ich dir nicht helfen.
Es wäre aber gut die Dinge richtig beim Namen zu nennen um unnötige Nachfragen zu vermeiden ;)
Sorry stimmt - für mich als Entwickler ist das immer ein Notify (Programmlogik). Aber klar es gibt das notify und das doif Command.
Aber ich habe ja extra geschrieben:
ZitatDas DOIF dazu sieht wie folgt aus:
Ich habe es aber nun selber hinbekommen:
([Anrufmonitor:missed_call_line] =~'^207335' and [?MarcosHandy] eq 'absent')
(set Pushover msg 'FHEM' 'Anruf in Abwesenheit von [Anrufmonitor:missed_call]' 'marcoshandy' 0 '')
DOELSEIF
([Anrufmonitor:missed_call_line] eq'207349' and [?SarahsHandy] eq 'absent')
(set Pushover msg 'FHEM' 'Anruf in Abwesenheit von [Anrufmonitor:missed_call]' 'sarahshandy' 0 '')
Das Reading missed_call_line und missed_call wird immer bei jedem verpassten Anruf ausgelöst. Somit haben sich die anderen Problem auch gelöst. Und mit dem ? wird der absent check sauber ignoriert bei der Eventauswertung.
Du hast auch geschrieben:
Zitat von: traxanos am 21 Juli 2015, 21:08:38
Hi
ich hab ein Problem mit einem Notify.
Aber stimmt.
Du hast DOIF dann noch erwähnt - das hab ich übersehen.
Edith: Aber es klappt ja jetzt und evtl. findet Damian ja noch "Potential".
Zitat von: Puschel74 am 21 Juli 2015, 21:39:36
Du hast auch geschrieben:Aber stimmt.
Du hast DOIF dann noch erwähnt - das hab ich übersehen.
Edith: Aber es klappt ja jetzt und evtl. findet Damian ja noch "Potential".
Wenn etwas bei DOIF nicht triggern soll, dann muss man das Fragezeichen bei der Abfrage setzen und das hat traxanos richtig selbst erkannt.
Gruß
Damian
wie sieht bitte dein notify aus ?
mfg harway
Der DEF des DOIF sieht so aus:
([Anrufmonitor:missed_call_line] =~'207335' and [?MarcosHandy] eq 'absent')
(set Pushover msg 'FHEM' 'Anruf in Abwesenheit von [Anrufmonitor:missed_call]' 'marcoshandy' 0 '')
DOELSEIF
([Anrufmonitor:missed_call_line] eq '207349' and [?SarahsHandy] eq 'absent')
(set Pushover msg 'FHEM' 'Anruf in Abwesenheit von [Anrufmonitor:missed_call]' 'sarahshandy' 0 '')