Hi @ll,
habe nach dem wiki versucht eine Anwesenheitserkennung über ping zu realisieren
aber es will nicht richtig, kann mir einer bitte helfen
define Handy1 PRESENCE lan-ping 192.168.0.129 30
attr Handy1 event-on-change-reading state
define watchdog_Abwesenheit watchdog Handy1:absent 00:02 Handy1:present set Sonos StopAll
attr watchdog_Abwesenheit regexp1WontReactivate 1
define watchdog_Anwesenheit watchdog Handy1:pesent 00:01 Handy1:absent set Sonos_Flur Play
attr watchdog_Anwesenheit regexp1WontReactivate 1
das Handy1 steht die ganze Zeit auf present obwohl das Handy1 weg ist :o
mfg. m311331
Ich habe das gleiche Problem. Ohne die watchdog Geschichte wird bei mir alles korrekt erkannt, aber wenn ich einen watchdog verwede, so wird der Zustand beim Zuschlagen des watchdogs umgeschaltet (von present -> absent -> watchdog schlägt zu -> present).
Versuche mal ob das bei dir auch nur funktioniert, wenn der watchdog nicht definiert ist.
ihr habt vermutlich einfach das setstate noch nicht eingebaut...
vom prinzip her muss der watchdog wenn er ausgelöst hat wieder zurückgesetzt werden...
im code beispiel oben hat es ausserdem noch einen tippfehler "pesent"
meine definition als beispiel...
define wd_z1compact_away watchdog z1compact:absent 00:05 z1compact:present setstate wd_z1compact_here defined
define wd_z1compact_here watchdog z1compact:present 00:00 z1compact:absent setstate wd_z1compact_away defined
Hi @ll,
habs mal abgeänder
define Handy PRESENCE lan-ping 192.168.0.129 60
attr Handy event-on-change-reading state
attr Handy room Anwesenheit
define watchdog_Abwesenheit watchdog Handy:absent 00:02 Handy:present setstate Sonos StopAll
attr watchdog_Abwesenheit regexp1WontReactivate 1
define watchdog_Anwesenheit watchdog Handy:present 00:01 Handy:absent setstate Sonos_Flur Play
attr watchdog_Anwesenheit regexp1WontReactivate 1
geht leider nicht :-\
mfg. m311331
War es schon etwas spät für dich? wo nimmst du nun her das du ein setstate auf dein Sonos loslassen sollst?
Seh es wie eine wechselschaltung - du schaltest zwischen den beiden watchdogs hin und her...
Dein sonos zu schalten ist dann der zweite befehl den du anhängst...
wenn der watchdog ausgelöst hat steht in dessen state triggered - wenn er wieder aufpassen soll muss du den state des watchdogs auf defines setzen.
Quasi wieder scharf schalten.
Hi der-Lolo,
ZitatWar es schon etwas spät für dich?
;D
ja genau
habs jetzt ohne watchdog gelöst
trotzdem danke für die Hilfe
mfg. m311331
wäre toll wenn du jetzt - wo schon gelöst dran steht entweder schreibst wie du es gelöst hast oder meine version versuchst und bestätigst das diese funktioniert. Es gab schliesslich noch jemanden der dieses problem hier hatte - und auch später folgende werden dankbar sein.
Zitat von: der-Lolo am 18 Dezember 2014, 17:14:29
wäre toll wenn du jetzt - wo schon gelöst dran steht entweder schreibst wie du es gelöst hast oder meine version versuchst und bestätigst das diese funktioniert. Es gab schliesslich noch jemanden der dieses problem hier hatte - und auch später folgende werden dankbar sein.
*vote*
ich hab das Thema auch auf meiner ToDo Liste und wäre fürs Coding mehr als dankbar :-)
Hallo PichlAlex,
ich habe die besten erfahrungen mit der Anwesenheitserkennung über Bluetooth 4.0 gemacht -
an unseren Handys ist Bluetooth wegen dieser geschichte und unseren kfz freisprechanlagen immer aktiv, ein bluetooth 4.0 Handy veträgt das auch recht gut in hinsicht auf akku verbrauch.
Einen Bluetooth stick kannst du problemlos an deiner Fhem Serverhardware anschliessen - falls du ncht auf der fritzbox installiert hast.
Dann richtest Du ein PRESENCE Device mithilfe der Bluetooth Mac-Adresse deines Mobiltelefones ein.
etwa so.
define z1compact PRESENCE local-bluetooth 68:xx:xx:xx:xx:11 10 60
attr z1compact alias Michael
attr z1compact event-on-change-reading state
attr z1compact room Residents
Die beiden zahlen hinter der Mac Adresse des Handys geben an das wenn das gerät absent ist im 10 sekunden rhytmus gescannt wird. Wenn das gerät present ist wird im 60 sekunden rhytmus gescannt.
Wenn Du das eingerichtet hast reagiert das Presence Device schon auf den Zustand deines Handys.
Bluetooth aus = absent
Bluetooth an = present
Das alleine ist aber noch zu ungenau, um kurzzeitiges verschwinden der Devices zu unterdrücken brauchst du zwei Watchdogs.
etwa so
define wd_z1compact_away watchdog z1compact:absent 00:05 z1compact:present setstate wd_z1compact_here defined ; set rr_Michael absent
attr wd_z1compact_away regexp1WontReactivate 1
attr wd_z1compact_away room Residents
define wd_z1compact_here watchdog z1compact:present 00:00 z1compact:absent setstate wd_z1compact_away defined ; set rr_Michael home
attr wd_z1compact_here regexp1WontReactivate 1
attr wd_z1compact_here room Residents
im erstem watchdog wird festgelegt das wenn die meldung z1compact:absent fünf minuten ohne änderung anliegt der state des zweiten watchdogs auf defined gesetzt wird. Bei mir wird ausserdem rr_Michael auf absent gesetzt - das setzen des state vom zweitem watchdog sorgt dafür das der zweite watchdog scharfgeschaltet wird. Dieser schaut nun wann sein trigger z1compact:present auftaucht. In meinem Fall wird dann ohne verzögerung der erste watchdog scharfgeschaltet und rr_Michael auf home gesetzt.
rr_Michael ist ein "bewohner" im Residents Modul. Jegliche weitere beschaltungen nehme ich über das Residents Modul vor - dort kann ich auf einzelne bewohner reagieren oder eben auf alle.
Z.b. Heizung und Steckdosen aus wenn kein bewohner mehr zuhause ist.
Musik an wenn ich heim komme aber die Frau nicht da ist...
HUELampe auf rot wenn ich zuhause bin und die Frau heimkommt ;-)
Es gibt ausserdem die möglichkeit watchdogs mithilfe des DOIF moduls zu bauen, ich vermute das das nun die lösung von m311331 ist. Vielleicht teilt er uns seine lösung ja noch mit.
In meinem erstem Beispiel ist noch ein lan-bluetooth anstelle des local-bluetooth verankert, ich vermute das m311331 deswegen nicht klarkam - ich habe einen cubietruck in der einen ecke der wohnung. In der gegenüberliegenden ecke gibt es noch einen BeagleBone der auch per Bluetooth nach geräten scannt, beide zusammen ergeben einen collectcord welcher dann mit lan-bluetooth angesprochen wird.
Ich hoffe hiermit kannst du dein ToDo abarbeiten...
Servus, vielen Dank für den Codeschnippsel, der hat mir ein gutes Stück geholfen.
Leider funktioniert der set rr_Michael xyz Befehl nach dem ; nicht - wenn ich den in der Eingabebox benutze schneidet
fhem das komplett ab dem ";" ab und wenn ich das direkt in die Config paste bleibt er stehen. Ich verstehe einfach nicht
warum, laut doku kann man doch mit ";" ein weiteres kommando anfügen.
Hat vielleicht jemand eine Idee was da falsch ist?
Zitat von: der-Lolo am 22 Dezember 2014, 17:21:52
define wd_z1compact_away watchdog z1compact:absent 00:05 z1compact:present setstate wd_z1compact_here defined ; set rr_Michael absent
attr wd_z1compact_away regexp1WontReactivate 1
attr wd_z1compact_away room Residents
define wd_z1compact_here watchdog z1compact:present 00:00 z1compact:absent setstate wd_z1compact_away defined ; set rr_Michael home
attr wd_z1compact_here regexp1WontReactivate 1
attr wd_z1compact_here room Residents
Ich benutze das Residents Modul - rr_Michael ist ein Bewohner, wenn Du das Residents Modul nicht benutzt brauchst du ein Device oder einen Dummy der den state auch aufnimmt.
define rr_Beispiel Dummy
set rr_Beispiel home
Les mal ein wenig zum Residents Modul und definier es in deiner config. Ich denke das ist genau was Du suchst.
define meinHaus RESIDENTS
define rr_Michael ROOMMATE meinHaus
wenn Du direkt in die Config schreibst musst Du 2 Semikolon setzen - ;; - Aber in die Config schreibt man eigentlich nicht von Hand, gewöhn Dir das gar nicht erst an - das macht nur ärger.
Hab ich ja - es gibt bei mir einen rr_Oliver aber FHEM mag das Semikolon nicht, ohne
funktioniert der Watchdog, setzt nur leider den RESIDENT Status nicht.
Macht es Sinn das auf Loglevel 4 oder 5 zu debuggen?
Ich glaube Du bearbeitest falsch...
klicke bitte auf den wd_z1compact_here sodass Du in die Detail Seite kommst, dort steht unter Internals DEF - da kann man raufklicken. In dieses Feld kannst du das hier per Paste einfügen
z1compact:present 00:00 z1compact:absent setstate wd_z1compact_away defined ; set rr_Michael home ; set .*Events add Michael ist nach Hause gekommen...
.*Events ist eine definition aus dem readingsHistory Modul - kannst Du löschen.
Zitat von: der-Lolo am 27 Dezember 2014, 21:18:37
Ich glaube Du bearbeitest falsch...
klicke bitte auf den wd_z1compact_here sodass Du in die Detail Seite kommst, dort steht unter Internals DEF - da kann man raufklicken. In dieses Feld kannst du das hier per Paste einfügen
z1compact:present 00:00 z1compact:absent setstate wd_z1compact_away defined ; set rr_Michael home ; set .*Events add Michael ist nach Hause gekommen...
.*Events ist eine definition aus dem readingsHistory Modul - kannst Du löschen.
Danke für die Hilfe - ich musste ";; set rr_XYZ state home" benutzen damit ging es.
Gruß
Oliver
Das verstehe ich nicht, ich hoffe auch das es kein problem in der Zukunft bedeutet, das Internals STATE hat andere Eigenschaften (Events - auslösen) als das Reading state.
Versuch es bitte nochmal mit meinem Schnipsel - das muss gehen.
Geht - die ganze Teil per cut und paste oben in die Fhem Eingabezeile ging nur bis zum ;
Danach in der Def hat er auch gemeckert. Scheint ein Cut & Paste Problem gewesen zu sein.
Vielen Dank für die Hilfe!
Hi
@der-Lolo
bin leider etwas spät dran , sorry
mit Bluetooth komme ich bei mir nicht weiter (Reichweite)
ich möchte auch nicht überall einen Bluetooth-dongel oder Rpi aufstellen
gehe nur über's W-LAN 60sec ping time reichen mir.
ZitatLes mal ein wenig zum Residents Modul und definier es in deiner config.
das schaue ich mir auch mal an
den watchdog verwendest du um schneller den status zu bekommen oder um fehler
zu vermeiden ? absent/present ?
mfg. m311331
Der watchdog dient nur der falschmeldungsvermeidung...