PRESENCE-RemoteFritzbox

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

Vorheriges Thema - Nächstes Thema

erwin

Hi Dirk,

ZitatRFritzBoxScan: server waiting for client connection on port 7777

... das ist noch kein Fehler, heisst:
1) Das login zur Fritzbox hat schon mal geklappt.
2) das Programm wartet auf einen request von FHEM - sprich eine PRESENCE Definition, wie im wiki angegeben.

Ich gehe jetzt mal davon aus, das RFritzBoxScan.pl und FHEM auf der gleichen Maschine laufen, oder ?
Weitere Schritte:
1) PRESENCE definition erstellen, lt. wiki,
2) Dummy definiton erstellen, lt. wiki:
define RemoteFritzBox dummy
attr RemoteFritzBox verbose 5

3) 2 Minuten warten bzw. mit set xxx statusRequest einen Scan anstossen -
    nun sollte sofort die messages: RFritzBoxScan: connection from 127.0.0.1:57595 ... usw,, kommen...
4) Im FHEM log nach Meldungen suchen, die mit RemoteFritzBox beginnen.

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,...

hyper2910

Hallo zusammen,

es hat alles geklappt, fhem erkennt ob ein Mobile da ist, bzw. ein anderes Gerät an ist.

Jedoch habe ich ab und an noch diesen Fehler im Log:

PERL WARNING: Use of uninitialized value $sid in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 181.
2014.12.08 00:22:16 1: Login to Fritzbox failed
2014.12.08 00:22:16 2: PRESENCE (ToshibaAnwesend) - error while processing check: unexpected function output (expected 0 or 1): Fritzbox login failed

PRESENCE (ToshibaAnwesend) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb error http://192.168.178.1/wlan/wlan_settings.lua?sid=d66dcddaeff7aaf3: Select timeout/error:  during Web query
Cubietruck mit FHEM, CUL V3 443MHz, 2 x CULV3 868MHz, Milights, Max Heizungssteuerung, Homematic, IT,

ulli

#47
Warum wird das Modul denn nicht in das svn eingepflegt? Darüber bekomme ich dann auch die Updates :)

Was mich aber noch stört ist das für jedes Precence Device ich nur ein Gerät abfragen kann.
D.h. wenn ich 5 Geräte habe wird das Skript 5 mal ausgeführt obwohl bei einem Einzelabruf alle Informationen vorhanden sind.
Könnte man nicht ein Precence Device definieren und in den Readings den Status aller Geräte aktualisieren?

KNUT345

Hallo Erwin,
bin erst seit kurzem mit FHEM unterwegs.
Mitunter versuche ich eine stabile Anwesenheitserkennung über WLAN hinzubekommen.
Leider scheitert das an den Teilnehmern, denn das eine oder andere Handy loggt sich immer wieder aus
bzw. liefert über das Presence-Modul ein absent hingegen ich es über einen Ping mit Verzögerung meistens erreiche.

Habe dann dein FritzBox-Remote-Modul entdeckt und es gleich mal getestet
und bekomme auch keine stabilere Erkennung.

Meine Konfiguration:
1x FB 7490 als Router und DHCP-Server, Fritz!OS 6.20
2x FB Repeater 310
1x Raspberry mit FHEM
diverse Android Handys

Seit Fritz!OS 6.20 werden die Clients am Repeater an der FB nicht mehr als online angezeigt
sondern nur an dem jeweiligen Repeater.

Leider liefert dein Tool nur ein absent zurück hingegen am Repeater das Handy online angezeigt wird.

Was nun?
Grüße

joachimD

#49
Ich nutze die aktuelle Version 1.4 in der Installationsvariante 2, d.h. ohne Veränderungen auf meiner Fritz!Box 6360.

Dabei tritt das Problem auf, dass ich bei der Abfrage der Anwesenheit von vier Smartphones nur für ein, höchstens zwei Geräte eine Antwort bekomme, für die anderen liefert das Skript "error".

2015.01.03 08:48:40 2: PRESENCE (Smartphone1) - error while processing check: unexpected function output (expected 0 or 1): Fritzbox login failed


Korrespondierend dazu zeigt die Fritz!Box in ihrem Protokoll alle 120 Sekunden ein oder zwei erfolgreiche Anmeldeversuche kurz hintereinander.

Da das Login grundsätzlich ja funktioniert, nehme ich an, dass es sich um ein TimeOut-Problem handelt, evtl. erlaubt die Fritz!Box auch so viele quasi-simultane Anmeldeversuche nicht. Ein Workaround wäre es m.E., wenn das Skript die von der FB ausgelesenen Werte zunächst cachen würde (z.B. für 120 Sekunden?) und nachfolgende Anfragen aus diesem Cache beantworten würde. Das würde auch die Performance insgesamt steigern und die Belastung der Fritz!Box reduzieren.
In 99_RFritzBox.pm scheint so etwas ja auch ansatzweise in der Funktion RemoteFritzBoxWeb vorgesehen gewesen zu sein, ist dann aber wieder auskommentiert worden - den Kommentaren zufolge deswegen, weil dort nur ein Login je 5 Minuten geschehen sollte, auf die Verbindung aber beim nächsten Aufruf des Skriptes nicht mehr zugegriffen werden kann. Müsste nicht lediglich dieser Teil dahingehend abgeändert werden, dass die von der Fritz!Box gelieferte Antwort in einer temporären Datei gespeichert wird und diese Datei - abhängig von der Erstellzeit - für nachfolgende Skriptaufrufe verwendet wird?

Oder gibt es eine andere elegante Abhilfe?

Gruß
Joachim

swiegmann

Tolle Script. Ich nutze ebenfalls Version 1.4 mit einer Fritz Box 7490 mit FRITZ!OS 6.23.
Ich habe das selbe Problem.

Zwei Geräte kann ich abfragen, aber ab dem 3. Device bekomme ich
RemoteFritzBoxWeb error http://<fritzip>/wlan/wlan_settings.lua?sid=<SID>: Select timeout/error:  during Web query

Die Logins gehen noch alle gut. (im fhem-*.log Meldet die Fritz Box "Login SID=<SID>"
(Debug ist eingeschaltet mit
define RemoteFritzBox dummy
attr RemoteFritzBox verbose 5


Anscheinend kommt die Fritz Box nur mit 2 parallelen Anfragen zurecht.
Wenn ich die PRESENCE in fhem.cfg gestaffelt eintrage (zB 120 sek, 123 sek, 126 sek usw.. ) läuft es.
Ist aber natürlich nicht wirklich stabil.

Hat jemand eine Fix dafür?

Viele Grüße,
Alex

nephdrasil

Hallo komme irgendwie nicht weiter.

habe alles soweit eingerichtet. Aber bei dem Befehl ./RFritzBoxScan.pl /opt/fhem/credentials.cfg. Kommt nur eine "server waiting for client connection on port 7777".

muss ich noch irgendwelche Ports freigeben?. Wenn ja wo?


der Befehl auf der Fritz box ./Rpresence.sh funktioniert.

Vielen Dank für die Unterstützung.
FHEM 5.5 + Fritz Box 7390 + HM-CFG-USB + HM-CC-RT-DN

erwin

Hi All,
schön, daß so viele die RemoteFritzBox Funktion verwenden, und bitte gleich vorweg um Entschuldigung, ich war währed der Feiertage, bis einschließlich gestern "FHEM - frei" auf Urlaub....

Zu euren Fragen:
@swiegmann & @joachimD - (FritzBoxWeb Login problem) ich arbeite daran, die Login's persistent zu machen, - also ähnlich wie in der Funktion RemoteFritzbox. Es funktioniert grundsätzlich, ich möchte aber noch 2 Tage testen, dann gibts eine neue Version. Das mit den gestaffelten Zeiten hat schon was für sich, da ist die Chance, daß 2 oder mehr Anfragen gleichzeitig kommen wesentlich geringer. Caching find ich gar nicht gut in diesem Zusammenhang, da kann man ja gleich in längeren Intervallen abfragen, für die gleiche Genauigkeit.
Vielleicht sollte ich auch noch erwähnen, das die FB bis zu 15Minuten nach der Abmeldung eines WLAN Gerätes braucht, um den Status richtig darzustellen, daher sind Abfragen < 120 Sekunden absolut sinnlos.

@nephdrasil:  Das ist gut so, was hier fehlt ist der request vom FHEM... Hast du ein Device erstellt?define <myName> PRESENCE function {RemoteFritzBoxWeb("<FBdevicename/FB.MAC-Adress>")} 120 120
dann kannst du per mausklick set <myName> statusrequest machen und es sollte was passieren...

@KNUT345: Was in der Weboberfläche der Fritzbox nicht angezeigt wird, kann ich auch nicht auslesen und auswerten. Leider hab ich deine Kombination v Repeatern nicht. Richtig ist, das sich viele iPhones immer wieder selbständig aus dem WLAN ausloggen, speziell das iPhone4(S).

@hyper2910: Die uninitialized message sollte in der nächsten Version weg sein, timeouts beim Web-Afragen wirds immer wieder ab und zu geben, ich denke allerdings, die kommende Version sollte in dieser Hinsicht etwas besser (resourcenschonender) funktionieren.

bis demnächst, mit der neuen Version
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,...

dk3572

Hallo,
benötige mal wieder Hilfe ;-)

Wenn ich mich per FTP auf meine Fritzbox einwähle, sehe ich die Verzeichnisse Bilder, Dokumente, fhem, FRITZ, usw.
Ich habe in FRITZ ein Verzeichnis "bin" erstellt und dort die Rpresence.sh hineinkopiert. Ist das so richtig?
Wenn ich per Konsole chmod +x Rpresence.sh eingebe, wird die Rpresence.sh nicht gefunden.

Danke schon mal im Voraus.
Gruß Dieter

erwin

Hi Dieter!

nach dem telnet login mußt du
cd /var/media/ftp/FRITZ/bin eintippen.
dann tippst du ls -lein und solltest die file Rpresence.sh finden....

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,...

erwin

#55
@swiegmann & @joachimD:
wie versprochen, eine betaversion. Bitte um Test und Feedback, bei mir läufts seit 3 Tagen mit einen einzigen login zur FB mit 4 devices/ 120 sekunden. Bisher 2 mal ein webtimeout.... 
Wichtig: ein muss ein dummy RemoteFritzBoxWeb geben, dort wird der Timestamp und sid des letzten login gespeichert!
PS: Ich hab noch nicht alle Fehlerszenarien getestet, e.g FB reboot, usw... deswegen status "beta".
l.g.erwin

update 16.1.2015
...neue beta version, die Webanfragen werden jetzt serialisiert, d.h. nur eine Abfrage gleichzeitig, damit sollten die select/timeout errors weg sein.
update 17.1. attachment hier gelöscht, neue beta(s) jeweils am ende des threads.

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,...

dk3572

#56
Guten Morgen Erwin,
so früh schon am werkeln ;-)
Danke für die Hilfe, hat funktioniert. Ich sehe die Datei.
Jetzt habe ich das chmod +x Rpresence.sh engetippt, passiert aber nichts.
Danach das ./Rpresence.sh <FBdevicename/FB-MAC-Adress> und bekomme 999 0.
Braucht die Box einen Neustart? Oder wo liegt mein Fehler?

Ist übrigens das drauf: FRITZ!OS 06.21-29680 BETA

VG Dieter

erwin

Hi Dieter,

statt ./Rpresence.sh <FBdevicename/FB-MAC-Adress>
muß es heissen:
./Rpresence.sh meinHandy   so wie das zu suchende Gerät in der Fritzbox Oberfläche heisst...
... das 999 0 ergebnis bedeutet, dass dein <FBdevicename/FB-MAC-Adress> nicht gefunden wurde, das script aber gelaufen ist!

etwas mehr wiki lesen.....
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,...

dk3572

#58
natürlich habe ich es mit dem Namen und/oder mit der MAC-Adresse versucht die mein Handy in der FB haben.
Wiki lese ich auch, hilft mir aber nicht weiter. Aus diesem Grund stelle ich ja auch hier die Fragen ;-)
Wie jetzt weiter????

Und noch mal danke für die Hilfe und die Geduld.

Kommando zurück! Wenn man es im richtigen Verzeichnis ausführt, funktioniert es auch.
So, dann mach ich mich mal an die Fhem Geschichte.....

anfichtn

#59
Moin!

Ich finde dein Modul klasse gelöst. Allerdings habe ich ein kleines Problem.. FHEM bekommt keine Antwort (bzw. eine Antwort die einfach leer ist.)

Anbei mal etwas LOG-Output.


2015.01.12 09:10:24 5: RemoteFritzBox Server scanning for device: 88:30:8A:7B:53:36
2015.01.12 09:10:24 5: RemoteFritzBox Server-running with pid 2227
2015.01.12 09:10:24 5: RemoteFritzBox connected: 192.168.178.47:7777 on socket 49791 pid=2142
2015.01.12 09:10:24 5: RemoteFritzBox sending request: 88:30:8A:7B:53:36 for socket 49791
2015.01.12 09:10:24 5: RemoteFritzBox receiving response: "" for socket 49791


und


RFritzBoxScan: connection from 192.168.178.47:49791
RFritzBoxScan: reply to ping
RFritzBoxScan: ..from FHEM received data: 88:30:8A:7B:53:36
RFritzBoxScan: ..sending to Fritzbox: 88:30:8A:7B:53:36 1
RFritzBoxScan: ..cmdresult: RFritzBox: 88:30:8A:7B:53:36 1 1
root@anfritz:/var/mod/rootRFritzBoxScan: ..devmatch: RFritzBox: 88:30:8A:7B:53:36 1
RFritzBoxScan: ..cmdresult2: 88:30:8A:7B:53:36,  1, 1
RFritzBoxScan: ..result to fhem: 1


Grüße

anfichtn

FHEM 5.6 + Pilight + Pimatic auf BananaPro mit Bananian 15.04 r01
FB7270 v2 & FB7412
LDA382A mit WifiLight
MAX-Cube (aculfw), 6 Fensterkonstakte, 5 HK-Thermostate, 3 WandThermostate
[...]