FHEM Forum

FHEM => Automatisierung => Thema gestartet von: aramis am 18 Januar 2017, 07:53:14

Titel: eher doif oder notify
Beitrag von: aramis am 18 Januar 2017, 07:53:14
Hallo zusammen,

Ich habe ein kleines Problem bei dem ich hoffe dass ihr mir helfne könnt.

Ich habe eine Anwesenheitsabfrage mit meiner Fritzbox implementiert. Diese funktioniert auch wunderbar.
Die Fritzbox zeigt das Handy mit den WLAN Geschwindigkeiten sauber und fehlerfrei an.

Nun möchte ich dass wenn ich nach Hause komme möchte ich eine Aktion Willkommen ausführen. Diese bedeutet dass eine Steckdose aktiv gesetzt wird. Dann über die dort angeschlossene SONOS ein mp3-File abgespielt wird. Nach Beendigung des Files soll die Steckdose wirder ausgeschalten werden.

Was funktioniert?
- Abfrage ob das Handy im WLAN ist.
- Schalten der Steckdose, Abspielen des mp3 files und das Ausschalten

Was funkioniert nicht?
- die Steckdose bleibt nicht aus sonder schaltet wieder ein.

Ursache:
Sobald mein Handy im WLAN ist wird nicht nur ein einfaches ist online ist abwesend gesetzt sondern immer auch die Verbindungsgeschwindigkeit im WLAN. Und diese ist nicht immer genau gleich und schwankt je nach dem wo ich mich aufhalten im Gebäude. Dadurch wird jedes mal ein neuer Log-Eintrag erzeugt und somit das notify ausgeführt.

Möglich Lösung:
Arbeiten mit einer Hilfsvariable bzw einem dummy

Pseudo-Code:

WENN handy_im_wlan = anwesend & hilfsvariable = 1
DANN führe Aktion Willkommen aus;
UND set hilfsvariable = 0;

WENN handy_im_wlan = abwesend
DANN set hilfsvariable = 1;

Was bewirkt das?
Wenn ich mich im WLAN befinde wird geschaut ob die Hilfsvariable positiv ist.
Ist das der Fall wird die Aktion willkommen ausgeführt und die Hilfsvariable negativ gesetzt. Dies verhindert solange die Wiederausführung bis zu dem Zeitpunkt wenn dass Handy aus dem WLAN verschwindet.
Den sobald das Handy nicht mehr mit dem WLAN verbunden ist, wird die Hilfsvariable wieder positiv gesetzt und die Aktion Willkommen ist wieder scharf.

Nun meine Frage:
Bietet sich  hier eher ein DOIF oder eher ein notify an?

Danke für euren super Support

Viele Grüße

aramis
Titel: Antw:eher doif oder notify
Beitrag von: marvin78 am 18 Januar 2017, 08:00:22
Hilfreich wäre es gewesen, wenn du ein list von deiner Lösung gemacht hättest (alle beteiligen Devices + ggf. Code aus der myUtils). So weiß man nichts von deiner Lösung.

Eigentlich ist das einfach mit notify zu lösen, wenn du nur auf das richtige Event reagierst und die Anwesenheitserkennung zuverlässig ist.
Titel: Antw:eher doif oder notify
Beitrag von: aramis am 18 Januar 2017, 09:21:11
Wie gesagt die einzelnen Parts funkionieren problemlos.
Das Problem ist eben die wechselnde WLAN Geschwindigkeit die zum auslösen des "alten" notify führt.
Titel: Antw:eher doif oder notify
Beitrag von: Amenophis86 am 18 Januar 2017, 09:25:51
Zitat von: marvin78 am 18 Januar 2017, 08:00:22
Hilfreich wäre es gewesen, wenn du ein list von deiner Lösung gemacht hättest (alle beteiligen Devices + ggf. Code aus der myUtils)
Zitat von: aramis am 18 Januar 2017, 09:21:11
Wie gesagt die einzelnen Parts funkionieren problemlos.
Das mag sein, aber es hilft uns den Fehler zu finden. Ich schätze mal das du ein Event-on-Change einbauen musst. Aber mehr kann ich aus meiner Glaskugel gerade nicht rausholen ohne deine Konfiguration zu kennen.
Titel: Antw:eher doif oder notify
Beitrag von: aramis am 18 Januar 2017, 09:36:09
ich werde die konfig heute abend mal rein stellen.
:D

Ich hatte beiden event-on's ausprobiert. Also event-on-change-reading und .event-on-update-reading.

Beim event-on-update-reading wird ja jedes mal wenn ich die Fritzbox Abfrage ein Event erzeugt

Beim event-on-change-reading wird ja das Event erzeugt wenn die WLAN Werte sich ändern. ( dies geschieht aus dem Bauch heraus bei jeder zweiten bis dritten Abfrage weil der Handyempfang nicht an jedem Ort im Gebäude gleich ist)

Die event-on habe ich doch so richtig verstanden,oder?
Titel: Antw:eher doif oder notify
Beitrag von: CoolTux am 18 Januar 2017, 10:14:02
Eine Konfig einstellen hilft hier nicht. Du möchtest ein list der Devices machen.
Wie genau setzt Du presence um. Aus Deinen Worten rate ich das Du das MAC Reading aus der FRITZBOX Instanz aus liest, das Reading enthält die Signalstärke und die ändert sich dauernd daher wird immer wieder getriggert.
Wenn dem so ist 2 Möglichkeiten
Deine Regex für den Event enger setzen, oder einen Dummy schalten und ein zweites Notify auf den Dummy. Beim Dummy dann event-on-change-reading setzen.
Titel: Antw:eher doif oder notify
Beitrag von: aramis am 18 Januar 2017, 10:57:38
bekommt ihr :)
Titel: Antw:eher doif oder notify
Beitrag von: aramis am 19 Januar 2017, 09:31:43
Ich habe es leider gestern nicht mehr geschafft euch die Infos abzuziehen.
Ich hoffe ich komme heute dazu....

Warum hat ein tag auch nur 24 Stunden?!  ;D