PRESENCE-RemoteFritzbox

Begonnen von erwin, 27 Dezember 2013, 21:39:11

Vorheriges Thema - Nächstes Thema

caldir65

Hallo Erwin,

ich habe jetzt mal etwas experimentiert - zunächst habe ich dabei etwas gestutzt, da in der Fritzbox2 die WLAN-Devices alle mit PC_<MAC> als Name abgelegt sind, dieser sich aber - im Gegensatz zur Haupt-FB - hier nicht anpassen ließ.

Darauf hin habe ich mal mit der Haupt-FB experimentiert, und siehe, mein Smartphone z.B., welches gerade an der zweiten FB eingebucht war (in der Haupt-FB steht es dann als LAN-Device!), wird als "anwesend" zurück geliefert.

Also benötigen wir für eine Repeater-Installation mit zweiter FB keine zusätzliche Presence-RemoteFB-Installation, auf der Haupt-Box genügt. Somit dürfte es auch kein Problem sein, wenn ein "normaler" WLan-Repeater zum Einsatz kommt. (Hat jemand einen AVM- oder Fremd-Repeater an der FB, der dieses evtl. evaluieren könnte?)

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

erwin

Hi Christof,

na prima, dann kanns ja losgehen....

eines ist mir noch eingefallen - in Zusammenhang mit der Repeater Funktion:
fall es Probleme gibt mit der Erkennung von An/Ab-wesenheit wenn das Gerät am repeater eingeloggt ist, kann du folgendes versucchen:
in Rpresence.sh Zeile 3 (auf der Haupt-Fritzbox) ändern von:
check_command="speed"
in
check_command="active"

Das entspricht auch dem, was das Presence Modul macht - Beschreibung siehe: PRESENCE - Attribut fritzbox_repeater
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

caldir65

Hall Erwin,

so richtig funktioniert es dann leider doch nicht - ich hab es jetzt in der fhem.cfg definiert:


define ANW_Christoph PRESENCE function {RemoteFritzBox("GalaxyS3Christoph")} 120 120
define ANW_Meike PRESENCE function {RemoteFritzBox("Meike-S3m")} 120 120
#debug
define RemoteFritzBox dummy
attr RemoteFritzBox verbose 5


im Log erscheint einmalig folgendes:

2014.01.23 22:14:57 5: RemoteFritzBox Server-Task-status= 1
2014.01.23 22:14:57 5: RemoteFritzBox Server-Task-status= 1
2014.01.23 22:14:57 5: RemoteFritzBox connected: localhost:7777
2014.01.23 22:14:57 5: RemoteFritzBox connected: localhost:7777
2014.01.23 22:14:57 5: RemoteFritzBox sending request: GalaxyS3Christoph
2014.01.23 22:14:57 5: RemoteFritzBox sending request: Meike-S3m
2014.01.23 22:14:57 5: RemoteFritzBox receiving response: upnpd
2014.01.23 22:14:57 1: CallBlockingFn: Can't connect to localhost:

2014.01.23 22:14:58 5: RemoteFritzBox receiving response: 1
2014.01.23 22:14:58 1: CallBlockingFn: Can't connect to localhost:

2014.01.23 22:14:59 3: Device GWC ...


Es kommt danach weder ein weitere Meldung oder Fehler, noch ändert sich etwas im Status.

Im Test auf der onsole des fhem-Raspi war alles ok, der Status wurde erwartungsgemäß angezeigt, je nach Zustand des Smartphone-WLans.

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

erwin

Hi Christof,

dein Log schaut ok aus, bis zu dem Punkt, wo das Ergebnis an FHEM (genauer gesagt an PRESENCE) zurückgegeben wird.
die meldung: CallBlockingFn: Can't connect to localhost: sagt mir, dass bei CallBlocking was schief gegangen ist, und das ist lange nachdem meine Utility die Daten zurückgeliefert hat.
Zwei Dinge fallen mir ein:
1) überprüfe ob nur eine instanz von RFritzBoxScan.pl am RPI läuft. - mit  ps -ef | grep RFritzB
kille alle instanzen mit sudo killall  RFritzBoxScan.pl (alles auf der Raspi-Konsole)
2) restart FHEM - dass sollte das Blocking Problem beheben.

l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

caldir65

Hallo Erwin,

ja, es waren tatsächlich zwei Instanzen, aber nach Deiner Anleitung funktionierte es wieder - bis ich erneut die fhem.cfg via Webfrontend bearmeitet habe. Nach dem Speichern war es nämlich wieder soweit, offenbar wurde eine neue Instanz gestartet...

Müßte fhem da dann nicht die Instanz beenden, wenn die Konfiguration neu eingelesen wird, oder muß das in Deinem Modul erledigt werden?

Gruß, Christoph

Gesendet von meinem Transformer TF101 mit Tapatalk

Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

erwin

Hallo Christof,

von deiner Antwort schließe ich, dass du die fhem.cfg übers WEBFRONTEND editierst......(menue-editfiles)
ich kann dazu zwar technisch nix dazu sagen, weil ich die interne Logik, wie fhem das macht nicht durchschaue, aber es gibt einige threads zu Problemen mit diesem Thema, z.b: http://forum.fhem.de/index.php/topic,18732.0.html.
Wenn ich das richtig verfolgt habe, passieren da momentan etliche Änderungen im Bereich BlockingCall, Config neu einlesen... usw....

Hab bitte etwas Geduld, ich möchte ein paar Tage was ausprobieren... und melde mich dann, wenns (hoffentlich) eine Lösung gibt.
PS: Nach meinem Verständins müsste FHEM die noch laufenden Blockingcalls killen, bevor neue gestartet werden... aber: das könnte an anderer Stelle Probleme machen.
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

caldir65

Hallo Erwin,

ja, zum Teil editiere ich die cfg's mittel dem Webfrontend, mitunter aber auch schon mal mit einem Editor ausserhalb ...

Da es jetzt ja prinzipiell funktioniert, bzw. ich weiß wie ich es wieder zum Laufen bekomme, ist es nicht wirklich eilig ;)
Ich muß mich jetzt eh daran setzen, die Anwesenheit als Aktionen in mein System mehr einzubinden als nur eine simple Anzeige, ob jemand zu Hause ist (oder das Telefon liegen gelassen hat :D)

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

det-box

Hallo,
habe gerade alles in Betrieb genommen, klappt wunderbar.
Der Status wird in absent/present angezeigt,
kann man diese Anzeige auf deutsch umstellen in Abwesend/Anwesend ?

Danke

erwin

Hallo det-box,

super, dass es klappt!

ZitatDer Status wird in absent/present angezeigt,
kann man diese Anzeige auf deutsch umstellen in Abwesend/Anwesend ?

Man kann, z.B. so:

attrib <devicename> stateFormat {(ReadingsVal("<devicename>","state","error") eq "present")?"Anwesend":"Abwesend"}


Man könnte auch ein icon definieren für den jeweiligen status. Wie? steht in der commandref.

l.g. erwiin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

det-box


Ma_Bo

Hallo Erwin,

erstmal ein dickes Lob, für die Arbeit !

Jetzt zu meiner Frage, ich möchte alle 60 Sekunden oder alle 100 Sekunden abfragen und habe deine Variante 2 asu dem Wiki gewählt.
Mir stellt sich die Frage, warum sind am Ende des Einzeilers 2x die 120 aufgeführt ?
Sorry für die evtl dumme Frage, aber arbeite mich z.Z. immer nur ab und an in FHEM ein und habe noch nicht so viel Erfahrung mit Linux, FHEM usw.

define <myName> PRESENCE function {RemoteFritzBoxWeb("<FBdevicename>")} 120 120  <------- warum sind hier 2x 120 eingetragen ?

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

erwin

Hi Marcel,

erstmal danke für das Lob, immer gut zu wissen das auch andere ein paar Funktionen brauchen können, und noch besser, wenn's auch funktioniert!

Zu deiner Frage: ... die Antwort findest du in der commandreference :
ZitatEach mode can be optionally configured with a specific check interval and a present check interval.
    check-interval - The interval in seconds between each presence check. Default value: 30 seconds
    present-check-interval - The interval in seconds between each presence check in case the device is present. Otherwise the normal check-interval will be used.
...Soll heissen: Bei nicht-anwesend wird im check-interval Rhytmus abgefragt (1.wert) - Bei anwesend im  present-check-interval (2.wert). wobei der zweite wert optional ist.

l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Ma_Bo

Vielen Dank für die rasche Antwort.
Ich muss gestehen, die commandrefernce hab ich überlesen.

Deine Funktion funktioniert SUPER , habe schon viele Sachen probiert um mein Iphone und ein Android Handy zu "überwachen", mit Android ist es weniger schwierig, doch ein Iphone macht nicht immer das was ich will.

Teste deine Funktion jetzt erstmal ausgiebig und ein paar Woche, damit ich auch weiss, ob es stabil läuft, aber seit gestern, macht es genau das, was ich brauche.

Das einzige was mir noch fehlt ist, dass sich mein Iphone automatisch ins WLAN einwählt, auch wenn es in der Tasche ist und nicht über den Homebutton oder so aktiviert wird, aber das ist keine Sache, die hier diskutiert werden soll/muss, dafür muss ich selber mal suchen.

Hast du Erfahrung damit gemacht, bei welchem minimalsten Abfrage Rhytmus noch alles stabil läuft ?
Sprich so 30sec oder kleiner, evtl im Sekundentakt, wobei, das eigentlich unnötig ist, aber nur vom Interesse her. ;)
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

erwin

Hi,
ZitatHast du Erfahrung damit gemacht, bei welchem minimalsten Abfrage Rhytmus noch alles stabil läuft ?

Ich hab das nicht wirklich ausgereizt, aus mehreren Gründen...
1) Die Fritzbox braucht selbst schon etliche Sekunden, bis sie den Status ändert.
2) Das shellscript kann schon 10-15 Sekunden laufen, wenn die FB etwas mehr beschäftigt ist. - Ganz schlecht ist, wenn sich mehrere Anfragen/Antorten "überholen"....
3) Der vorgegebene default im PRESENCE Modul ist 30 Sekunden, das würde ich auch als sinnvolles minimum ansehen... - Man kann die FB mit exzessiven Anfragen schon bis zum reboot treiben..... (Mir passiert mit einer 7270, bisher noch nicht auf 7390)

l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

dennis87

Hallo zusammen,
erst mal vielen Dank für dein Modul, das ist genau was ich gesucht habe :).


Ich habe jedoch noch ein paar Probleme bzw. Startschwierigkeiten.

Ich bin die ganze Woche nicht zuhause, also bin ich als absent gemeldet, das funktioniert auch soweit ohne irgendwelche Fehler.

Meine Frau kommt ganz normal nach hause und verlässt das Haus wieder, bei ihr kommt es jedoch öfter vor, dass mir ein falscher Status gemeldet wird (zur Zeit lasse ich mich per Push-Nachricht über einen Watchdog informieren wenn eine Statusänderung stattfindet).

In dem Moment, wo ein falscher Status gemeldet wird, habe ich im Log folgendes stehen:

2014.08.21 21:09:20 5: RemoteFritzBox sending request: Elisabeths-4S for socket 51570
2014.08.21 21:09:20 5: RemoteFritzBox Server-running with pid 2347
2014.08.21 21:09:20 5: RemoteFritzBox connected: localhost:7777 on socket 51571 pid=27349
2014.08.21 21:09:20 5: RemoteFritzBox receiving response: 1 for socket 51570
2014.08.21 21:09:20 5: in ack loop
2014.08.21 21:09:21 5: RemoteFritzBox sending request: Dennis-5S for socket 51571
2014.08.21 21:09:21 5: RemoteFritzBox receiving response: 0 for socket 51571
2014.08.21 21:11:21 5: RemoteFritzBox Server-running with pid 2347
2014.08.21 21:11:21 5: RemoteFritzBox connected: localhost:7777 on socket 51578 pid=27405
2014.08.21 21:11:21 5: in ack loop
2014.08.21 21:11:21 5: RemoteFritzBox sending request: Elisabeths-4S for socket 51578
2014.08.21 21:11:21 5: RemoteFritzBox Server-running with pid 2347
2014.08.21 21:11:21 5: RemoteFritzBox connected: localhost:7777 on socket 51579 pid=27407
2014.08.21 21:11:21 5: in ack loop
2014.08.21 21:11:21 5: RemoteFritzBox receiving response:  for socket 51578
2014.08.21 21:11:21 5: RemoteFritzBox sending request: Dennis-5S for socket 51579
2014.08.21 21:11:21 2: PRESENCE (ElisabethPresent) - error while processing check: unexpected function output (expected 0 or 1):
2014.08.21 21:11:21 5: RemoteFritzBox receiving response: 0 for socket 51579
2014.08.21 21:13:21 5: RemoteFritzBox Server-running with pid 2347
2014.08.21 21:13:21 5: RemoteFritzBox connected: localhost:7777 on socket 51586 pid=27463
2014.08.21 21:13:21 5: in ack loop
2014.08.21 21:13:21 5: RemoteFritzBox sending request: Elisabeths-4S for socket 51586
2014.08.21 21:13:21 5: RemoteFritzBox Server-running with pid 2347
2014.08.21 21:13:21 5: RemoteFritzBox connected: localhost:7777 on socket 51587 pid=27465
2014.08.21 21:13:21 5: in ack loop
2014.08.21 21:13:21 5: RemoteFritzBox receiving response: 1 for socket 51586
2014.08.21 21:13:21 5: RemoteFritzBox sending request: Dennis-5S for socket 51587
2014.08.21 21:13:21 5: RemoteFritzBox receiving response: 0 for socket 51587
2014.08.21 21:13:26 3: Watchdog watchdog_ElisabethAbsent triggered


Habt ihr eine Ahnung, was da falsch läuft, bzw. ist das ein bekannter Fehler?

Vielen Dank!