FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: DeeSPe am 07 März 2016, 11:48:44

Titel: HM-SEC-SCO Problem mit zu vielen yowsup Benachrichtigungen
Beitrag von: DeeSPe am 07 März 2016, 11:48:44
Ich habe schon hier im Forum eine Weile gesucht, aber keine Lösung für mein Problem gefunden.

Ich nutze in meiner Wohnung mehrere HM-SEC-SCO zum Einstellen der HM-CC-RT-DN bei offenen Fenstern.
Nun möchte ich die HM-SEC-SCOs auch als Alarmanlage benutzen wenn ich nicht zu hause bin.
Dazu habe ich mir ein Notify in dieser Art erstellt:
define wz_Balkontuer_Alarm notify wz_Balkontuer { if (Value("rr_Residents") ne "home") { if (($EVENT) eq "open") { fhem "wa_Dan send Balkontür wurde geöffnet" } else { fhem "wa_Dan send Balkontür wurde geschlossen" } } }
Kann sein dass der Code nicht 100% stimmt, habe gerade meine cfg nicht vor mir und habe das notify schnell aus dem Kopf geschrieben.

Jedenfalls funktioniert das auch, allerdings mit der kleinen Einschränkung dass die WhatsApp Nachrichten pro Schaltvorgang ca. 10x-15x kommen und irgendwann scheinen es wohl zu viele Nachrichten zu werden und es kommen gar keinen Nachrichten mehr bei mir an.

Mir reicht pro Schaltvorgang eine Nachricht.
Gibt es dafür eine Lösung?

Vielen Dank im Voraus.

Gruß
Dan
Titel: Antw:HM-SEC-SCO Problem mit zu vielen yowsup Benachrichtigungen
Beitrag von: frank am 07 März 2016, 11:57:21
ich würde die regex vom notify spezieller machen, zb auf das contact reading. schau auf den eventmonitor welche events kommen. event-on-change ist natürlich auch hilfreich.
Titel: Antw:HM-SEC-SCO Problem mit zu vielen yowsup Benachrichtigungen
Beitrag von: DeeSPe am 07 März 2016, 13:26:52
Danke frank für die schnelle Antwort.
Werde mir das heute Abend noch einmal mit deinen Tipps genauer ansehen.

Gruß
Dan
Titel: Antw:HM-SEC-SCO Problem mit zu vielen yowsup Benachrichtigungen
Beitrag von: DeeSPe am 07 März 2016, 19:40:31
Vielen Dank, habe es mit genauerem RegEx hinbekommen.
Hier meine Lösung falls es jemand brauchen kann:
wz_Balkontuer:closed.*|wz_Balkontuer:open.* {
if ((Value("rgr_Residents") eq "absent") || (Value("rgr_Residents") eq "gone"))
{
if (Value("wz_Balkontuer") eq "open")
{
fhem ("set wa_Dan send Balkontür wurde geöffnet!!!");
}
elsif (Value("wz_Balkontuer") eq "closed")
{
fhem ("set wa_Dan send Balkontür wurde geschlossen!!!");
}
else
{
fhem ("set wa_Dan send Ein Fehler am Kontakt Balkontür ist aufgetreten!!!");
}
}
}


Gruß
Dan
Titel: Antw:HM-SEC-SCO Problem mit zu vielen yowsup Benachrichtigungen
Beitrag von: DeeSPe am 08 März 2016, 14:09:52
So ganz ideal scheint das noch nicht zu laufen.
Obwohl garantiert niemand gerade bei mir die Fenster/Türen öffnet/schließt bekomme ich regelmäßig Nachrichten dass das  xxxFenster geschlossen wurde.
Woran könnte das liegen?
Manchmal zeigen meine HM-SEC-SCOs "IOErr" an. Ich nehme an dass die Nachricht genau dann versendet wird wenn der Status wieder von IOErr auf closed springt.
Leider habe ich noch nicht herausgefunden warum die manchmal IOErr anzeigen. Passt wohl nur nicht hier in das Thema.

Gruß
Dan
Titel: Antw:HM-SEC-SCO Problem mit zu vielen yowsup Benachrichtigungen
Beitrag von: justme1968 am 08 März 2016, 14:18:00
mindestens drei dinge:

- deine regex verhält sich vermutlich nicht so wie du es erwartest. wenn du mit | arbeitest musst du passende klammern setzen.
  es ist auch besser sich auf einen : zu beschränken und entweder nur im device teil oder nur im reading teil | zu verwenden.

- du solltest nicht state sondern das contact reading verwenden. das ist eindeutiger und auch leichter zu filtern.

- du solltest event-on-change-reading passend setzen.

gruss
  andre
Titel: Antw:HM-SEC-SCO Problem mit zu vielen yowsup Benachrichtigungen
Beitrag von: DeeSPe am 08 März 2016, 15:09:17
Mensch Andre, schon wieder Du. ;)
Ich dachte Du bist der Homebridge Profi und jetzt das....
Danke Dir auf jeden Fall, werde das heute Abend testen.

Dachtest Du etwas so?
wz_Balkontuer:contact:*. {
if ((Value("rgr_Residents") eq "absent") || (Value("rgr_Residents") eq "gone"))
{
if ($EVENT eq "open")
{
fhem ("set wa_Dan send Balkontür wurde geöffnet!!!");
}
else
{
fhem ("set wa_Dan send Balkontür wurde geschlossen!!!");
}
}
}


Und dann noch:
attr wz_Balkontuer event-on-change-reading contact

Danke im Voraus.

Gruß
Dan
Titel: Antw:HM-SEC-SCO Problem mit zu vielen yowsup Benachrichtigungen
Beitrag von: justme1968 am 08 März 2016, 15:13:14
in etwa so. aber du musst $EVTPART1 verwenden. in $EVENT steckt noch der reading name.

gruss
  andre
Titel: Antw:HM-SEC-SCO Problem mit zu vielen yowsup Benachrichtigungen
Beitrag von: DeeSPe am 08 März 2016, 15:32:31
Zitat von: justme1968 am 08 März 2016, 15:13:14
in etwa so. aber du musst $EVTPART1 verwenden. in $EVENT steckt noch der reading name.

gruss
  andre

Danke, damit fehlt mir noch die Erfahrung...
Werde wieder berichten wie es dann läuft...
Titel: Antw:HM-SEC-SCO Problem mit zu vielen yowsup Benachrichtigungen
Beitrag von: DeeSPe am 08 März 2016, 19:02:07
So sieht jetzt mein notify aus, leider wird es so nicht einmal mehr ausgelöst:
wz_Balkontuer:contact:*.
{
if ((Value("rgr_Residents") eq "absent") || (Value("rgr_Residents") eq "gone"))
{
if ($EVTPART1 eq "open")
{
fhem ("set wa_Dan send Balkontür wurde geöffnet!!!");
}
else
{
fhem ("set wa_Dan send Balkontür wurde geschlossen!!!");
}
}
}


Was mache ich falsch?
Habe gerade noch entdeckt dass mein HMLAN ständig auf overload steht obwohl ich nichts wirklich schalte. Dabei scheint es dann auch zu dem IOerr zu kommen und die Kontakte quittieren mit rotem leuchten statt grünem leuchten.


Gruß
Dan
Titel: Antw:HM-SEC-SCO Problem mit zu vielen yowsup Benachrichtigungen
Beitrag von: justme1968 am 08 März 2016, 21:32:51
deine regex passt noch nicht. es muss .* statt *. sein. den zweiten : kannst du dann auch weg lassen.

mit verbose 5 solltest du sehen ob das notify getriggert wird, mit Log 3, "text" kannst du log meldungen einbauen und schauen ob es am if liegt.

zum overload kann ich dir nichts sagen.

gruss
  andre
Titel: Antw:HM-SEC-SCO Problem mit zu vielen yowsup Benachrichtigungen
Beitrag von: DeeSPe am 09 März 2016, 14:11:48
Zitat von: justme1968 am 08 März 2016, 21:32:51
deine regex passt noch nicht. es muss .* statt *. sein. den zweiten : kannst du dann auch weg lassen.

Genau so klappt es. Und auch jetzt wo ich außer Haus bin wurden bisher keine unnötigen Nachrichten verschickt.

Vielen Dank.

Gruß
Dan