FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: erwin am 27 Dezember 2013, 21:39:11

Titel: PRESENCE-RemoteFritzbox
Beitrag von: erwin am 27 Dezember 2013, 21:39:11
Hi all,
Ich habe eine kleines add-on zum Presence-Modul gebastelt, dass dann sinnvoll zum Einsatz kommt, wenn auf der Fritzbox kein FHEM und Perl läuft und dennoch die PRESENCE Function genützt werden soll. Den code poste ich hier als zip file, die Beschreibung findet Ihr im Wiki unter: http://www.fhemwiki.de/wiki/Anwesenheitserkennung_-_Remote_Fritzbox (http://www.fhemwiki.de/wiki/Anwesenheitserkennung_-_Remote_Fritzbox).
Bitte um Feebback / Anregungen usw. in diesem Thread.

update Version 1.2: ein paar kleine Verbesserungen und eine neue Funktion: RemoteFritzBoxWeb
Damit kann man die Fritzbox per http abfragen, benötigt also keinen Telnet-Zugang und keinen code auf der Fritzbox. Nachteil: relativ langsam....

update Version 1.3: ein paar kleinere fixes und statt des Devicenames kann nun auch die MAC-Adresse angegeben werden. Also exakt wie im 73_PRESENCE.pm Modul. Ich konnte allerdings nicht mit FB-FW6.20 testen!

update Version 1.4: kleinere Fixes, Test mit FB-FW 6.20 auf 7390, Problem nach reboot der FB gefixed....

update Version 1.7: RemoteFritzBoxWeb Performance, Stabilität Verbesserungen, neue Funtionen - Details im Wiki

update Version 1.9: RemoteFritzBoxWeb: startup verbessert,  OSX compatibility, neue Funtionen - Details im Wiki

have fun
erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: borsti67 am 27 Dezember 2013, 22:56:31
Hallo Erwin,

danke, das sieht sehr interessant aus. Ich denke, ich werde mir das mal zu Gemüte führen.

Aber sehe ich das richtig, dass man pro überwachtem Gerät einen PRESENCE braucht? Ich habe nämlich neben dem Handy noch andere (eBoor-Reader, Laptop...) mit definiert als Anwesenheitserkennung; das gibt noch eine gewisse Redundanz, falls mal beim Handy das WLAN abgeschaltet oder es ganz aus ist. Das läuft bei mir über EINEN Funktionsaufruf. Ich bin mir nicht sicher, ob Deine Variante nicht mehr Last produziert...?

Gruß
Torsten
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 27 Dezember 2013, 23:19:01
Zitat von: borsti67 am 27 Dezember 2013, 22:56:31
Aber sehe ich das richtig, dass man pro überwachtem Gerät einen PRESENCE braucht?
Hi Torsten,
die Antwort ist Ja und Nein, je nachdem wie man es sieht.....
JA es braucht pro überwachtem Gerät eine FHEM- PRESENCE definition - Das ist durch die Implementation des PRESENCE Modul so definiert.
NEIN Die Lösung braucht nur einen daemon für alle überwachten Devices, und nur einmal das shell-script auf der Fritzbox. Die gesamte Kommunikation für alle PRESENCE function {RemoteFritzBox(".....")} definitionen läuft über eine Instanz 99_RFritzbox.pm ->RFritzBoxScan.pl -> shellscript auf der Fritzbox ... und wieder retour. Das zeitintensive Telnet connect, Login, usw. wird nur einmalig beim starten des Daemons gemacht, die Session bleibt dann für alle nachfolgenden request offen. Das hat nach meinen Messungen bisher die meiste Perfomance gekostet.
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Kristof am 03 Januar 2014, 01:31:26
Hallo Erwin!

Mit großer Begeisterung habe ich deinen Post gelesen - da hast du ja fleissig in allen möglichen Ecken programmiert. Ich bin leider ein Linux-Anfänger und Perl-Laie (aber ich arbeite daran  ;))
Was du in deine Installationsanleitung noch einfügen könntest wäre, dass man das Perl-Modul Net::Telnet installieren muss.
Ich habe das auf meinem Raspberry Pi mit Raspi so gemacht:

sudo perl -MCPAN -e shell

und dann in der CPAN-Shell:

install Net::Telnet

und schon klappte das. Vorher hatte ich nämlich ein "Can't locate Net/Telnet.pm in @INC [...]"
Leider hänge ich jetzt am nächsten Punkt. Der Aufruf von RFritzBoxScan.pl liefert:
RFritzBoxScan: server waiting for client connection on port 7777
RFritzBoxScan: error during Fritzbox login: error after sending password: pattern match read eof


Daraus ergeben sich für mich ein paar Fragen:
1.) wo ist der richtige Platz für RFritzBoxScan? Im FHEM-Verzeichnis? Oder eins darüber, im fhem (also quasi im modpath)?
2.) am Port (7777) muss ich nix ändern? Hat also nix mit dem Telnet-Port zur Fritzbox zu tun?
3.) wenn ich mich per telnet auf der FB einlogge, dann werde ich nur nach einem Passwort gefragt, nicht nach einem User?! (Habe eine FB7270) -> was trage ich dann in die credentials.cfg ein?

Schon mal ein "Danke" vorab,

Kristof
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 03 Januar 2014, 11:08:35
Hallo Kristof!

...na dann versuchen wir's mal:
Zitat von: Kristof am 03 Januar 2014, 01:31:26
Was du in deine Installationsanleitung noch einfügen könntest wäre, ....
Sorry, werde ich im wiki nachtragen, das NET::Telnet Modul habe ich schon soo lange wegen anderer Funktionen installiert, dass ich das schon als gegeben angenommen habe....
Ich hab's am RPI so installiert:
sudo apt-get install libnet-telnet-perl
Zitat von: Kristof am 03 Januar 2014, 01:31:26
Der Aufruf von RFritzBoxScan.pl liefert:
RFritzBoxScan: server waiting for client connection on port 7777
RFritzBoxScan: error during Fritzbox login: error after sending password: pattern match read eof

Das ist schon mal grundsätzlich ok, und ich habe nur 3 mögliche Erklärungen dafür:
Zitat von: Kristof am 03 Januar 2014, 01:31:26
Daraus ergeben sich für mich ein paar Fragen:
1.) wo ist der richtige Platz für RFritzBoxScan? Im FHEM-Verzeichnis? Oder eins darüber, im fhem (also quasi im modpath)?
Im Verzeichnis, wo alle anderen FHEM Module 00_xxx.pm - 99_yyy.pm sind
Zitat von: Kristof am 03 Januar 2014, 01:31:26
2.) am Port (7777) muss ich nix ändern? Hat also nix mit dem Telnet-Port zur Fritzbox zu tun?
nix ändern, das ist die Verbindung zwischen 99_RFritzBox.pm und RFritzBoxscan.pl
Zitat von: Kristof am 03 Januar 2014, 01:31:26
3.) wenn ich mich per telnet auf der FB einlogge, dann werde ich nur nach einem Passwort gefragt, nicht nach einem User?! (Habe eine FB7270) -> was trage ich dann in die credentials.cfg ein?
was beliebiges beim user und dein passwort.

um der sache näher zu kommen, gibts 2 Möglichkeiten:
Du definierst in der FB einen user /passwort - siehe menue: system-Fritz!Box-Kennwort
du versuchst die angehängte RFritzBoxScan1.pl - hab nix im code geändert, nur liefert mehr debug output....
Der Output sollte dann ungefähr so aussehen:
RFritzBoxScan: server waiting for client connection on port 7777
FBlogin-parameters=192.168.5.251|erwin|mypassword|
prematch | pmatch= password|: |
sending password


l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Kristof am 03 Januar 2014, 11:48:07
Treffer!
Hi Erwin,
zuerst mal ein dickes DANKE für die rasche Antwort. Im Gegenzug habe ich dir einen kleinen Bug entdeckt: mein FB-Passwort enthält ein "@" - und der Parser kommt damit offenbar nicht klar, denn es wird nur der Teil vor dem @ übertragen (gleiches beim Username).
Ich habe das PW geändert und nun klappt es:

sending password
RFritzBoxScan: Fritzbox login ok


Ich hätte aber eigentlich schon ganz gerne wieder meinen Klammeraffe drin... Zudem ist die Frage, wie es mit anderen Sonderzeichen aussieht?! Was ich sagen kann: ein "+" geht offenbar problemlos.

LG
Kristof
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Kristof am 03 Januar 2014, 12:15:10
Hach, zu früh gefreut, es klappt noch immer nicht vollständig.
Im Logfile (habe "Verbose 5" eingetragen) steht:

2014.01.03 12:03:38 5: RemoteFritzBox Server-Task-status= 0
2014.01.03 12:03:38 3: RemoteFritzBox Server-Task  (re)started: Status=-1
2014.01.03 12:03:43 1: RemoteFritzBox cannot connect to Server Invalid argument
2014.01.03 12:03:43 2: PRESENCE: error while processing device HandyKK_AN - unexpected function output (expected 0 or 1): cannot connect to the server Invalid argument
2014.01.03 12:05:43 5: RemoteFritzBox Server-Task-status= 0
2014.01.03 12:05:43 3: RemoteFritzBox Server-Task  (re)started: Status=-1
2014.01.03 12:05:48 1: RemoteFritzBox cannot connect to Server Invalid argument
2014.01.03 12:05:48 2: PRESENCE: error while processing device HandyKK_AN - unexpected function output (expected 0 or 1): cannot connect to the server Invalid argument


Manuelles Aufrufen von ./RFritzBoxScan.pl /opt/fhem/credentials.cfg
bringt:
RFritzBoxScan: server waiting for client connection on port 7777
RFritzBoxScan: Fritzbox login ok

Die credentials.cfg müsste also passen.

Ein ls -la *RFritz* im Verzeichnis /opt/fhem/FHEM liefert
-rw-r--r-- 1 fhem root 3299 Dez 27 21:01 99_RFritzBox.pm
-rwxr-xr-x 1 fhem root 4755 Dez 27 20:27 RFritzBoxScan.pl


Meine Einträge in der fhem.cfg lauten:
define HandyKK_AN PRESENCE function {RemoteFritzBox("kk-Nokia")} 120 120
define RemoteFritzBox dummy
attr RemoteFritzBox verbose 5

"kk-Nokia" ist der Name meines Handys in der Fritzbox.

Hast du eine Idee, was ich falsch mache?

Gruß,
Kristof


Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 03 Januar 2014, 13:44:24
Hi Kristof,

ich bin noch am forschen, wie ich das mit dem @ im passwort lösen kann, es sieht so aus, als ob das Net::Telnet modul damit Probleme macht....
z.B wenn ich mein passwort: geh@eim so in die credentials.cfg schreibe: "geh\@eim", dann kommt es auch richtig im programm an, allerdings verwirft offensichtlich das Net:Telnet das wieder....

Zu deinen anderen Problemen:
(oder FHEM restart)
./RFritzBoxScan.pl /opt/fhem/credentials.cfg per hand und lass ihn laufen, warte auf weitere meldungen, wie z.B:
RFritzBoxScan: connection from 127.0.0.1:54654
RFritzBoxScan: ..from FHEM received data: Erwin-Galaxy
RFritzBoxScan: ..sending to Fritzbox: Erwin-Galaxy 0
RFritzBoxScan: ..cmdresult: RFritzBox: Erwin-Galaxy 4 0
RFritzBoxScan: ..update cache for Erwin-Galaxy 4
RFritzBoxScan: ..result to fhem: 0
falls sich RFritzBoxScan.pl nicht starten lässt: sudo killall RFritzBoxScan.pl

Es scheint als ob die RFritzBoxScan.p oder credential.cfg nicht gefunden wird... beim automatischen start.
Was steht in deiner FHEM config unter: global-modpath ?
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Kristof am 03 Januar 2014, 14:01:53
Heureka!

Ich hatte beim Benutzername noch ein "@" drin, und das hat das Programm irgendwie aus dem Tritt gebracht. Jetzt steht da "blabla" und so wie's aussieht funktioniert jetzt alles einwandfrei  :)
Mit anderen Worten: weder um Benutzername noch im Passwort dürfen Klammeraffen vorkommen, dann tut alles so wie's soll.

Danke für deinen Support. Und wenn du 'ne Lösung für das @-Problem hast und/oder es ein Update deiner Skripte gibt, dann lass mich das wissen ;-)
Auf jeden Fall eine super Sache! Deine Skripte für die Presence-Überwachung in Kombination mit fb_callmonitor mit auf das raspberry pi kopiertem Telefonbuch, so spare ich mir die ganze FHEM-Installation auf der Fritzbox  :)

Gruß und Danke,

Kristof
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 03 Januar 2014, 14:19:41
HI Kristof,

@ Problem in user / passwort variable

Also bei mir gehts so:
in der credentials.cfg jeweils vor dem @ ein backslash \ einfügen!!!
als zb Passwort "gehei@m" so schreiben "gehei\@m"
Perl interpretiert das @ als arrary variable......

l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: DaSh86 am 07 Januar 2014, 19:30:01
Läuft super!  :D ;D

Danke!  :)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 14 Januar 2014, 23:42:47
Hallo,

ich habe hier zwei FB am Start, eine 7390 als regulären Router mit WLan etc., und eine gefreetzte 7240, die u.a. das WLan im Obergeschoß übernimmt - mit gleichen WLan-Parametern. Wie kann ich jetzt diese Remote-Presence-Anbindung dazu bringen, beide WLan-Segmente zu überwachen? In wie weit wird davon eine evtl. konfigurierte Nachtschaltung beeinflusst?

Gruß, Christoph
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 15 Januar 2014, 10:14:29
Hi Christoph,

sorry, ich kenne die 7240 überhaupt nicht, kann dazu nichts sagen.
Auch hast du nicht geschrieben, wo / auf welcher Box FHEM läuft und auf welcher nicht, und ob in der 2ten FB das WLAN als Repeater definiert ist....

kannst du einen Versuch unternehme, die Inst. lt. Wiki bis zu dem Punkt:
kopieren von Rpresence.sh in die Fritzbox
und das Ergebnis des Tests posten?
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 17 Januar 2014, 19:10:28
Hallo Erwin,
die 7240 ist im Prinzip eine abgespeckte 7270 ... Sobald ich schaffe, werde ich es mal testen.

Gruß, Christoph

Gesendet von meinem GT-I9305 mit Tapatalk

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 17 Januar 2014, 22:28:06
Hallo Erwin,

fhem läuft auf einem Raspi - auf der FB 7390 habe ich mehr Probleme als nutzen gehabt, daher habe ich den fhem-Server auf einen eigenen Rechner umgezogen ...

Die zweite Box (7240) ist nicht als Repeater im eigentlichen Sinne eingerichtet, sondern als eigenes aber identisches wLan-Netzwerk, da gleichzeitig das Ding als Hub  für's Ethernet fungiert, und da gab es sonst Probleme ... Ich denke, für eine saubere Funktion der Presence-RemoteFritz in diesem Fall wird eine Installation auf beiden Boxen notwendig sein, wobei ich dann wohl beide abfragen muß, so in der Art "anwesend auf FB1 oder FB2? dann ...

Zudem ist die Box gefreezt, d.h. die originale FW ist etwas "kastriert, um Speicher frei zu machen für andere Funktionen - ich muß mal schauen, ob Dein Skript grundsätzlich noch darauf in geplanter Weise funktioniert.

Ich werde mal testen und weiter berichten ...

Gruß, Christoph
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 20 Januar 2014, 17:46:17
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 20 Januar 2014, 18:21:05
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 23 Januar 2014, 22:21:23
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 24 Januar 2014, 10:58:26
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 25 Januar 2014, 23:26:28
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

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 26 Januar 2014, 19:20:09
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 (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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 26 Januar 2014, 21:53:55
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: det-box am 05 April 2014, 19:15:08
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 05 April 2014, 21:45:42
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: det-box am 06 April 2014, 12:27:19
Danke

geht jetzt!!
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Ma_Bo am 22 Juni 2014, 11:49:04
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 22 Juni 2014, 21:11:54
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Ma_Bo am 23 Juni 2014, 18:41:10
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. ;)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 24 Juni 2014, 10:54:36
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: dennis87 am 21 August 2014, 21:24:24
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!
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 22 August 2014, 10:34:42
Hi dennis87,

deinem Log entnehme ich folgendes:
  um 21:09:20 gibts ein sending request für Elisabeths-4S - als Antwort kommt 1 also present.
  um 21:11:21 gibts ein sending request für Elisabeths-4S - als Antwort kommt nix das ist komisch.
  um 21:13:20 gibts ein sending request für Elisabeths-4S - als Antwort kommt 1 also present.

... und diese Änderung triggert natürlich deinen Watchdog, soweit ist das klar.

was allerdings nicht sein sollte, ist das als Antwort gar nichts zurück kommt... ausser das shellscript auf der Fritzbox stürzt aus irgendeinem Grund ab....

Aus dem Device-Namen rate ich, das es um ein iPhone4 geht, korrekt?
... falls korrekt, mit dem Ding hab ich auch meine Probleme, geht immer wieder in den Standby, meldet sich vom WLAN ab und nach einigen Minuten wieder an.

Zum Debuggen würde ich empfehlen:
1)  FHEM stoppen
2)  sudo killall  RFritzBoxScan.pl (auf der Raspi-Konsole) den daemon stoppen
3) ./ RFritzBoxScan.pl   händisch von der Konsole starten, dann liefert der Daemon laufend debug output. - Die Konsole offen lassen!
4) FHEM wieder starten

dann schau ich mir den Output gerne an.
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: dennis87 am 22 August 2014, 18:49:15
Hallo Erwin,
vielen Dank für die schnelle Rückmeldung. Es scheint wirklich an dem 4S zu liegen, ich bin seit heute Mittag zuhause und es funktioniert einwandfrei, bei meiner Frau hat es schon wieder diverse male gewechselt (aber sauber von 1 auf 0 und 0 auf 1).

Da du die RFritzBoxScan.pl erwähnt hast ist mir noch was eingefallen. Ich habe die Datei nicht direkt auf die Fritzbox gespielt, sondern per nano eingefügt, da ich unterwegs war und so nicht an die Fritzbox kam. Ich habe das Script von dir nun erst noch mal anständig auf die Box kopiert und teste damit. Wenn die Fehler weiterhin auftreten, melde ich mich nochmals :).


Danke schonmal!
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Markus M. am 25 August 2014, 20:19:26
PRESENCE hat auf der Fritzbox aktuell noch ein anderen Problem (bzw. die Fritzbox hat es):
In der Box kann es mehr als einen Geräteeintrag mit identischen Namen geben.
Wenn dann der falsche Eintrag (z.B. LAN/WLAN) die niedrigere Gerätenummer hat, erscheint das Gerät immer als absent.
Könnte man das evtl. mit der optionalen Angabe der MAC lösen?
D.h. wenn man statt dem Namen die MAC angibt (Check auf ":" sollte reichen), läuft die Schleife darüber?!
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: wopper am 15 September 2014, 15:49:19
Hat schon jemand überprüft, ob die neue FritzBox OS Einfluss auf die Funktionalität des Moduls hat?
http://www.heise.de/newsticker/meldung/AVM-Router-Fritzbox-Update-haengt-Bastler-ab-2391292.html?wt_mc=rss.ho.beitrag.atom
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Markus M. am 17 September 2014, 21:30:03
Update für die Fritzbox-Erkennung:
Bei LAN Devices wird der speed jetzt auch ausgegeben, wenn das Gerät nicht active ist.
Die Erkennung funktioniert im LAN also nicht mehr zuverlässig, nur noch bei WLAN Geräten!

(Die Änderungen aus der Version im Anhang sind mittlerweile über Update zu bekommen.)

Zusätzlich kann man damit im Modus fritzbox statt dem Namen auch wahlweise die MAC Adresse eingeben.
(In der FB sind doppelte Gerätenamen möglich, was zu falschenErgebnissen führt!)
Und da wir den speed Wert nun eh schon rumfliegen haben, wird er gleich noch als Reading ausgegeben, sofern man fritzbox_speed setzt.

Cheers, Markus
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: DerTom am 03 Oktober 2014, 11:30:24
Hallo,

ich habe den WIKI-Eintrag mit der Variante 1 abgearbeitet. Leider kommt bei mir bei jedem Test im Logfile ein timeout...:

2014.10.03 11:23:05.345 1: Timeout for PRESENCE_DoLocalFunctionScan reached, terminated process 16577
2014.10.03 11:23:15.545 5: RemoteFritzBox Server-running with pid 14699
2014.10.03 11:23:20.561 1: RemoteFritzBox cannot connect to Server Die Wartezeit f�r die Verbindung ist abgelaufen


Was läuft da schief? Warum Timeout? Der Daemon läuft, weil ich sehe, daß der Port 7777 auf meinem Cubie offen ist.

Der angegebene Test mit

./RFritzBoxScan.pl /opt/fhem/credentials.cfg

endet mit der Meldung:

RFritzBoxScan: server waiting for client connection on port 7777
FBlogin-parameters=<ip>|xxxxx|yyyyy| (hier stehen die richtigen Daten)
prematch | pmatch= password|: |
sending password
RFritzBoxScan: Fritzbox login ok
RFritzBoxScan: connection from <IP>:62619
RFritzBoxScan: ..from FHEM received data:
RFritzBoxScan: ..sending to Fritzbox:  0
RFritzBoxScan: ..cmdresult: RFritzBox: 0 999 0
RFritzBoxScan: ..result to fhem: 0


Wie gebe ich einen Gerätenamen an, um die Funktion zu testen?

Ich habe eine aktuelle Fritzbox 7390  FW6.20 ohne irgendwelche Änderungen (ausser FTP eingeschaltet).

Kann jemand helfen?
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 03 Oktober 2014, 13:32:33
hmmm....

Dein Output schaut so aus, als ob etwas an der FHEM definition nicht stimmt.....

define <myName> PRESENCE function {RemoteFritzBox("<FBdevicename>")} 120 120

dann sollte der output aus deinem Beispiel so aussehen:
RFritzBoxScan: ..from FHEM received data: <FBdevicename>
RFritzBoxScan: ..sending to Fritzbox: <FBdevicename> xx
RFritzBoxScan: ..cmdresult: RFritzBox: <FBdevicename> xx y
RFritzBoxScan: ..result to fhem: y


Fehlermöglichkeit2:
Irgendwas stimmt nicht in der cfg-file, der Timeout für den Verbindungsaufbau ist 5Sekunden, und das entspricht auch den Timestamps in deinem Log.
Fehlermöglichkeit3:
Es läuft mehr als EIN RFritzboxscan.pl - Testen mit ps -ef | grep RFritzBoxScan
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: DerTom am 03 Oktober 2014, 14:24:26
Hallo Erwin,

danke für die schnelle Antwort!

Dann drösele ich das mal ein wenig auf...

Möglichkeit 1: Ich denke die Definition ist OK...
define Abfrage_Thomas_Handy PRESENCE function {RemoteFritzBox("Q10")} 60 60

Möglichkeit 2:Das Config-File habe ich 1:1 (mit Anpassungen) aus dem Wiki übernommen...(Username und Kennwort stimmen aber)

# this is credentials.cfg file
# where i keep my secure stuff for fhem ;-))
#
# PRESENCE credentials (only required for function RemoteFritzBox)
$credentials{RemoteFritzBox}{ipadress} = "192.168.200.7";
$credentials{RemoteFritzBox}{username} = "xxxxx";
$credentials{RemoteFritzBox}{password} = "yyyyy";
$credentials{RemoteFritzBox}{shellcmd} = "/var/media/ftp/bin/Rpresence.sh"; # FB executeable - pfad anpassen
$credentials{RemoteFritzBox}{serverhost} = "localhost";  # RFritzBoxScan.pl provides this service
$credentials{RemoteFritzBox}{serverport} = 7777; # RFritzBoxScan.pl server port
$credentials{RemoteFritzBox}{serverbin} = "RFritzBoxScan.pl"; # Fritzbox daemon name - running on RPI
$credentials{RemoteFritzBox}{speedmatching} = "active";  # optional valid: <active|speed> siehe PRESENCE-Fritzbox
#


Wobei ich festgestellt habe, daß bei einem $ im Kennwort auch ein \ vorangestellt werden muss...

Möglichkeit 3: Das habe ich geprüft und es läuft nur ein Prozess:

root@chird:/opt/fhem/FHEM# ps -ef | grep RFritzBoxScan
fhem      5728     1  0 14:11 ?        00:00:02 /usr/bin/perl ./FHEM/RFritzBoxScan.pl ./credentials.cfg
root      7790 14855  0 14:17 pts/0    00:00:00 grep RFritzBoxScan


Habe auch schon den Port geändert. Daran lag es auch nicht...Ich habe ja auch noch ein anderes Problem mit dem Presence-Modul: http://forum.fhem.de/index.php/topic,27568.0.html . Kann es damit im Zusammenhang stehen?

Grüße
Thomas





Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: ChristianK. am 09 Oktober 2014, 07:27:08
Guten Morgen,

ich habe seit neuestem folgende fehlermeldung sporadisch im log:
2014.10.09 07:16:54 1: PERL WARNING: Use of uninitialized value $sid in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 174.
2014.10.09 07:16:54 1: Login to Fritzbox failed


jemand eine Idee dazu?

Grüße

Christian K.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 09 Oktober 2014, 11:06:50
@ChristianK.
Zitat2014.10.09 07:16:54 1: PERL WARNING: Use of uninitialized value $sid in con......
heisst, das es ein Problem gab beim Login auf die Fritzbox.
Das kann schon mal vorkommen, wenn die FB sehr beschäftigt ist, nicht innerhalb des Timeouts antwortet, usw....
Du hast allerdings nicht geschrieben, ob die Funktion grundsätzlich funktioniert.
PS: das login wird im Modul FritzBoxUtils.pm erledigt.
...Ich könnte die PERL Warning webekommen, der Login-Fehler würde trotzdem bleiben. Ich bin allerdings momentan am überarbeiten des ganzen Moduls und werde das auch berücksichtigen.
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: ChristianK. am 09 Oktober 2014, 15:48:16
Hallo,

ja grundlegend funktioniert die Geschichte...

Grüße

Christian
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: pte am 17 November 2014, 11:49:13
Hallo erwin,

aktuell läuft Deine Lösung bei mir ziemlich stabil (gelegentlich gibt es einen Eintrag im Log "PRESENCE (xxx) - error while processing check: unexpected function output (expected 0 or 1):"). Aber die Erkennung unserer beiden iPhones (4s und 5s) läuft meiner Ansicht nach zuverlässig.
Gibt es bezüglich Deiner Ankündigung zur "grundsätzlichen Überarbeitung" einen aktuellen Stand?
Ich möchte meine Fritzbox 7390 auf 6.20 updaten und notwendige Anpassungen nur einmal ausführen.
Danke für Deine Unterstützung.

Gruß Peter
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 17 November 2014, 13:08:10
Hi Peter,
danke fürs Feedback, ich habe soeben die Version 1.4 hochgeladen (1.post in diesem Thread), damit sollte es auch mit der FB Version 6.20 funktionieren!
PS: Siehe auch Kommentare zur Version 1.3 - das sollte jedenfalls die "grundsätzliche Überarbeitung" sein....
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 18 November 2014, 07:55:41
Hi all, die gestern die Version 1.4 herunergeladen haben:

Ich habe die Version 1.4 nochmals hochgeladen.
Fix für "cannot connect to server: connection refused"  ... während startup.
Es wurde nur die 99_RFritzBox.pm geändert gegenüber der gestrigen Version.
Sorry erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: hyper2910 am 24 November 2014, 12:47:44
Hi zusammen,


habe das ganze jetzt nach Umzug auf den Cubie nochmals gemacht.

Jede bleibt er beim Testen immer hier hängen, und nichts passiert:

RFritzBoxScan: server waiting for client connection on port 7777


was könnte ich noch machen


Gruss Dirk

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 24 November 2014, 13:49:12
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: hyper2910 am 08 Dezember 2014, 06:55:45
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: ulli am 24 Dezember 2014, 14:45:09
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?
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: KNUT345 am 25 Dezember 2014, 17:01:10
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: joachimD am 03 Januar 2015, 08:57:48
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: swiegmann am 05 Januar 2015, 14:15:07
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: nephdrasil am 06 Januar 2015, 20:16:40
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.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 08 Januar 2015, 22:52:36
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: dk3572 am 10 Januar 2015, 14:46:04
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 11 Januar 2015, 06:45:15
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 11 Januar 2015, 07:05:23
@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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: dk3572 am 11 Januar 2015, 08:21:19
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 11 Januar 2015, 10:34:10
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
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: dk3572 am 11 Januar 2015, 12:48:35
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.....
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 11 Januar 2015, 15:53:47
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

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Ragnar am 12 Januar 2015, 20:28:19
Erstmal vielen Dank für die Arbeit an dem Projekt!

Leider bekomm ich nur einen Fehler wenn ich Devices abfragen möchte:
2015.01.12 20:13:19 5: RemoteFritzBox Server scanning for device: iPhone-von-Eli
2015.01.12 20:13:19 5: RemoteFritzBox Server-running with pid 5003
2015.01.12 20:13:19 5: RemoteFritzBox connected: localhost:7777 on socket 53381 pid=5118
2015.01.12 20:13:19 5: in ack loop
2015.01.12 20:13:19 5: RemoteFritzBox sending request: iPhone-von-Eli for socket 53381
2015.01.12 20:13:19 5: RemoteFritzBox receiving response: error|unknown error occured for socket 53381
2015.01.12 20:13:19 2: PRESENCE (EliHandy) - error while processing check: unexpected function output (expected 0 or 1): error


das gleiche kommt auch wenn ich auf die MAC Adressen abfrage - bei jeweils 2 Devices

Jemand eine Idee? FB ist eine 7270 mit aktuellstem FritzOS

Gruß Ragnar
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 13 Januar 2015, 07:50:46
Hi Ragnar,

versuch mal folgendes:
fhem stoppen
RFritzBoxScan.pl stoppen mit: sudo killall RFritzBoxScan.pl
RFritzBoxScan.pl händisch starten, Telnet Fenster offen lassen
FHEM starten,
den Output aus dem Telnet Fenster posten.

l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Wondermusic am 13 Januar 2015, 10:47:19
Hallo zusammen,

ich bin ein Neuling was FHEM und Perl angeht und zur Zeit verwende ich einen Windows 7 Rechner um mit fhem ein wenig ,,rum zu spielen". Es soll natürlich nicht beim spielen bleiben, aber ich möchte doch erst mal sehen ob ich mit der Materie überhaupt klar komme. ;) Für später ist ein RasPi vorgesehen der derzeit aber noch eine andere Verwendung findet. Dorthin werden dann später die fhem.cfg sowie diverse Floorplans (bereits erstellt und funktional) kopiert.

Da ich bereits einen PowerLine Gerät mit schaltbarer Steckdose von AVM habe (546e) und es für später auch in eines meiner Scenarien passt, bin ich gerade dabei eine Presence- Routine dafür zu erstellen.
Ich habe vorerst die Variante 2 gewählt um mit der FritzBox (7330 SL) zu kommunizieren.

Bisher habe ich das bereits vorhandene Presence- Modul von fhem zum testen verwendet, welches bei mir aber nach spätestens 13 ping- Abfragen den Dienst verweigert (bis dahin funktioniert allerdings alles so wie ich es möchte).
Nun bin ich auf Remote FritzBox gestoßen und das sieht sehr vielversprechend aus. 
Leider gibt es hier allerdings direkt eine Fehlermeldung beim Start des Servers die da lautet:
Use of unitialized value $serverbin in concatenation (.) or string at ./FHEM/99_RFitzBox.pm line 67

Ich bin gemäß Deiner Anleitung vorgegangen (Dateien ins FHEM- Verzeichnis kopiert und die credentials.cfg erstellt). Liegt es vielleicht daran das der Server zur Zeit auf Win 7 installiert ist?

Gruß,
Richy
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 13 Januar 2015, 11:02:41
Hi Richy,

gleich vorweg, ich hab das Modul noch nie mit Windows verwendet....und auch nicht mit einem 546E

Was mich wundert, ist deine Aussage dass PRESENCE ping nicht (zuverlässig) funktioniert. Das schaut nach einem eher grundsätzlichen Problem aus!

Das RemoteFritzBox verwendet ebenfalls PRESENCE als Basis...
Was du versuchen kannst: Starte mal RFritzBoxScan.pl in einem DOS Fenster und schau was passiert...
Zu deiner Fehlermeldung: poste mal deine credential.cfg, ich vermute einen syntax-error vor/bei $serverbin...

l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Wondermusic am 13 Januar 2015, 12:08:40
Ausgabe des DOS- Fensters:
ZitatUse of unitialized value $configfilename in open (.) or string at C:\fhem-5.6\FHEM\RFitzBoxScan.pl line 29
Use of unitialized value $configfilename  in concatenation (.) or string at C:\fhem-5.6\FHEM\RFitzBoxScan.pl line 29
RFritzBoxScan: cannot open config file

Wenn ich RFritzBoxScan.pl C:\fhem-5.6\credentials.cfg eingebe kommt das hier:
ZitatRFritzBoxScan: cannot open config file C:\fhem-5.6\credentials.cfg


Hier der Inhalt meiner credentials.cfg:
$credentials{RemoteFritzBox} {ipadress} = ,,192.168.0.1";
$credentials{RemoteFritzBox} {username} = ,,verateichicht";
$credentials{RemoteFritzBox} {password} = ,,dassauchnicht";


Das $credentials{RemoteFritzBox} {serverbin} habe ich dort gar nicht eingetragen, da bei Variante 2 im WIKI nichts davon steht. :)

Nun habe ich diese Eintragung noch gemacht und keine Fehlermeldung beim Start des Servers erhalten.

Im Log File steht aber nun folgendes:
Zitat2015.01.13 12:00:21 5: HTTP request=http://192.168.0.1/wlan/wlan_settings.lua?sid=4fb790a93d0c7e33
2015.01.13 12:00:26 5: ***0***Arbeitszimmer***192.168.0.xx***xx:xx:xx:xx:xx:xx***100***Res:0
2015.01.13 12:00:26 4: RemoteFritzBoxWeb match found for device=Arbeitszimmer status=0
2015.01.13 12:01:26 3: Watchdog wdog_Arbeitsrechner_abs triggered
2015.01.13 12:02:28 5: HTTP request=http://192.168.0.1/wlan/wlan_settings.lua?sid=bdc50f59580afce9
2015.01.13 12:02:31 2: PRESENCE (Arbeitsrechner) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb error http://192.168.0.1/wlan/wlan_settings.lua?sid=bdc50f59580afce9: Select timeout/error: Bad file descriptor during Web query

Der erste Verbindungsversuch hat funktioniert, alle weiteren gehen nicht mehr.

EDIT:
Meine Aussage stimmt so nicht. Danach funktioniert die Abfrage wieder zwischendurch.
12:00 geht
12:02 geht nicht
12:04 geht nicht
12:06 geht nicht
12:08 geht
12:10 geht
12:12 geht nicht
12:14 geht

Danach steigt presence wieder aus. Keine weiteren Meldungen mehr. :(
Hmm - muss ich wohl doch warten bis ich den Pi dafür benutzen kann.
Trotzdem vielen Dank für die Hilfe/den Tip und für die Arbeit die Du Dir mit dem Projekt machst! :)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 16 Januar 2015, 09:55:05
Hi,
ich hab jetzt eine neue Beta-Version erstellt, hier: http://forum.fhem.de/index.php/topic,17957.45.html (http://forum.fhem.de/index.php/topic,17957.45.html)
Wessentlicche Änderungen:
1) Das login zur Fritzbox wird jetzt gecached, und zwar für alle Requests,
2) Die Webanfragen werden serialisiert, d.h. nur eine Abfrage gleichzeitig, damit sollten die select/timeout errors weg sein.
Wichtig: ein muss ein dummy RemoteFritzBoxWeb geben, dort wird der Timestamp und sid des letzten login gespeichert!

Bitte um Test und Feedback.
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 17 Januar 2015, 09:53:04
Hallo, ich bin neu hier, und ich bin begeistert von den Möglichkeiten dieser Funktion, vielen Dank für das Engagement!

Gibt es auch die Möglichkeit, Variante 2 zu benutzen, wenn die Fritzbox so konfiguriert ist, dass man sich nur mit einem Passwort einloggt?

Und: Ich habe das (Fritzbox-)Problem, dass über Repeater 1750 verbundene WLAN-Geräte in meiner Fritzbox als offline und nur im Repeater als verbunden angezeigt werden. Lässt sich die Anwesenheitsprüfung auf den Repeater ausdehnen?

Danke!

Edith sagt: Und wenn ich gleich nur zur installierten Beta was schreiben darf: Eingerichtet nach Wiki. Beim Start kommt im fhem Log folgende Meldung:

Use of uninitialized value $serverbin in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 72.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 17 Januar 2015, 10:38:28
Hi All,

neue beta, hoffentlich jetzt besser, Voraussetzungen wie bisher....

@Motivierte linke Hände
1) Fehler sollte weg sein,
2) Variante 2 nur mit passwort? - versteh ich nicht, wie loggst du dich ein auf http://fritz.box ?
3) Repeater 1750: kann ich nicht sagen, weil ich selbst keinen habe, kannst du mir die webseite vom 1750 hier posten (rechte maustaste, -aktueller frame - frame speichern unter...) - dann könnt ich mir das evtl. anschauen....

update: alte beta version gelöscht.
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 17 Januar 2015, 10:48:06
Danke, das war ja superschnell!  :)

Auf der Kommandozeile kommt jetzt keine Fehlermeldung mehr. Das Logfile allerdings sagt:

2015.01.17 10:42:12 1: PERL WARNING: Use of uninitialized value $FBlockfile in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 180.
2015.01.17 10:42:14 1: PERL WARNING: Use of uninitialized value $FBlockfile in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 188.


Das Repeater-Problem ist ein Fritz-Problem. Intensives Googlen hat ergeben, dass beim Repeater-Betrieb mit FritzOS 6.20 im Repeater die Anwesenheit auf der Fritzbox falsch dargestellt wird. Abhilfe soll eine - noch nicht existierende - neue FritzOS-Version für die Repeater bieten.

Was die Anmeldung ohne Benutzer angeht: In der Fritzbox "System -> FRITZ!Box Benutzer -> Anmeldung im Heimnetz -> Anmeldung mit dem FRITZ!Box Kennwort" auswählen. Dann meldet man sich auf dem Webinterface nur mit einem Passwort an. Das entspricht der Standardanmeldemethode und übrigens auch dem einzigen, was für Repeater einstellbar ist.

Bleibt die Frage: Können auch die angemeldeten Benutzer am Repeater abgefragt werden? Dann ließen sich für die Anwesenheitsprüfung die Ergebnisse von beiden Abfragen ggf. kombinieren. Die Framedaten von welcher Seite soll ich Dir denn schicken? Auf der Übersichtsseite zeigt der Repeater nur einige verbundene Netzwerkgeräte an. Alle finden sich unter WLAN -> Funkeinstellungen.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 17 Januar 2015, 11:34:37
ZitatWas die Anmeldung ohne Benutzer angeht:
Die Anmeldung wird in FritzBoxUtils.pm erledigt, und die ist nicht von mir.....Versuch mal:
$credentials{RemoteFritzBox}{username} = ""; in der credentials.cfg

bitte die html datei von  WLAN -> Funkeinstellungen. oder anders gefragt: welche seite schaut am ähnlichsten der Seite von der Fritzbox aus?

den Fehler versteh ich (noch) nicht, tritt bei mir nicht auf...
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 18 Januar 2015, 10:53:49
Hi Motivierte linke Hände,

ich hab mir dein HTML angeschaut, das sieht sehr ähnlich aus, wie von der Fritzbox.... (scheint aber nicht komplett zu sein, deswegen kann ich damit nicht wirklich testen).
der parser sollte funktionieren.
Einfach mal die credentials.cfg so definieren, dass sie auf den repeater zeigt...
Einen Versuch ist's jedenfalls wert.

PS: Attachments anhähngen kannst du unter +Erweiterte Optionen....
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 18 Januar 2015, 16:31:56
Da der Repeater nicht mit Benutzern, sondern nur mit einfachem Passwort arbeitet, habe ich jetzt mal an dieser Stelle mit dem Testen angefangen.

credentials.cfg:

# PRESENCE credentials (only required for function RemoteFritzBox)
$credentials{RemoteFritzBox}{ipadress} = '192.168.1.1'; # FB LAN Adress
$credentials{RemoteFritzBox}{username} = '';
$credentials{RemoteFritzBox}{password} = 'hätteichfastzulöschenvergessen:-)';


Logfile damit, nachdem ich auch die Fritzbox wieder auf "nur Passwort" umgestellt hatte:

2015.01.18 16:15:27 0: Server started with 38 defined entities (version $Id: fhem.pl 6913 2014-11-08 10:32:44Z rudolfkoenig $, os linux, user admin, pid 12230)
2015.01.18 16:15:27 5: RemoteFritzBoxWeb access using sid from cache c3ec8f8c2305109c
2015.01.18 16:15:27 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) Login SID=c3ec8f8c2305109c
2015.01.18 16:15:27 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) was waiting 0 0 seconds for previous scan to complete.
2015.01.18 16:15:27 5: RemoteFritzBoxWeb(70:3E:AC:35:27:22) HTTP request=http://192.168.1.1/wlan/wlan_settings.lua?sid=c3ec8f8c2305109c
2015.01.18 16:15:27 5: RemoteFritzBoxWeb access using sid from cache c3ec8f8c2305109c
2015.01.18 16:15:27 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) Login SID=c3ec8f8c2305109c
2015.01.18 16:15:27 1: HMLAN_Parse: HMUSB new condition ok
2015.01.18 16:15:29 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) was waiting 0 2 seconds for previous scan to complete.
2015.01.18 16:15:29 5: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) HTTP request=http://192.168.1.1/wlan/wlan_settings.lua?sid=c3ec8f8c2305109c
2015.01.18 16:15:29 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) device not found
2015.01.18 16:15:29 2: PRESENCE (anwesend.iPhone6) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb device=70:3E:AC:35:27:22 not found
2015.01.18 16:15:30 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) device not found
2015.01.18 16:15:30 2: PRESENCE (anwesend.iPhone5S) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb device=28:E1:4C:9C:A7:AD not found


Das sieht nicht so schön aus. Allerdinx: Da die Login-Methode jetzt eine andere ist, ist die Nutzung des Caches kontraproduktiv. Würde den gerne testweise mal löschen, wo finde ich ihn? Ich habe gesucht und in

/opt/fhem/log/eventTypes.txt  and die 100.000 Einträge a la

1 RemoteFritzBoxWeb lastOkSid: 1421562396_c3ec8f8c2305109c

gefunden. Müsste ich die alle löschen? Nur den letzten? Warum sind es so viele?  :)

Später: Ok, Edith sagt, ich muss in fhem.save im log-Verzeichnis suchen. Das teste ich nochmal.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 18 Januar 2015, 17:04:49
Hi,

...das schaut sogar sehr schön aus, bist du sicher, das 192.168.1.1 bei dir der Repeater ist? bzw. die beiden MAC dort definiert sind?
... kannst du zum Vergleich das ganze auf der Fritzbox machen, mit Geräten, die du auf der Weboberfläche siehst?

Du must nix löschen, wenn dir das zuviele Einträge im Log sind, das setze attr RemoteFritzBoxWeb verbose auf 3.
der cache ist im reading vom RemoteFritzBoxWeb lastOkSid .... Dort wird der aktuelle Timestamp und die sessionid fürs login gespeichert, sonst nix!
Wenn du das reading löscht, bzw. 5 minuten keine Abfrage machst, dann macht der code ein neues login zur Fritzbox (zu erkennen, wenn sich der teil nach dem "_" ändert....
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 18 Januar 2015, 17:49:53
Ha, also, so sind wir schon einen Schritt weiter. Nach Löschen des entsprechenden Eintrags im Cache funktioniert der Zugriff auf die Fritzbox ohne Benuternamen:

2015.01.18 16:53:17 0: Server started with 38 defined entities (version $Id: fhem.pl 6913 2014-11-08 10:32:44Z rudolfkoenig $, os linux, user hammi, pid 12620)
2015.01.18 16:53:17 1: HMLAN_Parse: HMUSB new condition ok
2015.01.18 16:53:18 4: RemoteFritzBoxWeb access with new login ok  1421596397_41fcf73fdb6e2cc4
2015.01.18 16:53:18 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) Login SID=41fcf73fdb6e2cc4
2015.01.18 16:53:18 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) was waiting 0 0 seconds for previous scan to complete.
2015.01.18 16:53:18 5: RemoteFritzBoxWeb(70:3E:AC:35:27:22) HTTP request=http://192.168.1.1/wlan/wlan_settings.lua?sid=41fcf73fdb6e2cc4
2015.01.18 16:53:18 4: RemoteFritzBoxWeb access with new login ok  1421596397_d5e638eac2e6acee
2015.01.18 16:53:18 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) Login SID=d5e638eac2e6acee
2015.01.18 16:53:20 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) was waiting 0 2 seconds for previous scan to complete.
2015.01.18 16:53:20 5: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) HTTP request=http://192.168.1.1/wlan/wlan_settings.lua?sid=d5e638eac2e6acee
2015.01.18 16:53:20 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) match found... status=1
2015.01.18 16:53:23 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) match found... status=0


Gut!

Kommen wir zum Repeater (192.168.1.17):

2015.01.18 16:56:08 0: Server started with 38 defined entities (version $Id: fhem.pl 6913 2014-11-08 10:32:44Z rudolfkoenig $, os linux, user hammi, pid 12712)
2015.01.18 16:56:08 1: HMLAN_Parse: HMUSB new condition ok
2015.01.18 16:56:09 4: RemoteFritzBoxWeb access with new login ok  1421596568_7eda63a64ae6398e
2015.01.18 16:56:09 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) Login SID=7eda63a64ae6398e
2015.01.18 16:56:09 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) was waiting 0 0 seconds for previous scan to complete.
2015.01.18 16:56:09 5: RemoteFritzBoxWeb(70:3E:AC:35:27:22) HTTP request=http://192.168.1.17/wlan/wlan_settings.lua?sid=7eda63a64ae6398e
2015.01.18 16:56:09 4: RemoteFritzBoxWeb access with new login ok  1421596568_b3b77454c71df5b3
2015.01.18 16:56:09 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) Login SID=b3b77454c71df5b3
2015.01.18 16:56:11 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) was waiting 0 2 seconds for previous scan to complete.
2015.01.18 16:56:11 5: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) HTTP request=http://192.168.1.17/wlan/wlan_settings.lua?sid=b3b77454c71df5b3
2015.01.18 16:56:11 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) device not found
2015.01.18 16:56:11 2: PRESENCE (anwesend.iPhone6) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb device=70:3E:AC:35:27:22 not found
2015.01.18 16:56:12 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) device not found
2015.01.18 16:56:12 2: PRESENCE (anwesend.iPhone5S) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb device=28:E1:4C:9C:A7:AD not found


Hier klappt (jedenfalls lt. Logfile) das Login, aber dann nicht der Test auf die MAC.

30 Minuten Gebastel später:

Die URL im Repeater ist eine andere, nämlich nicht wlan_settings sondern rep_settings. Da man außerdem andere Credentials braucht, dachte ich mir,

Hilft, aber nicht ganz.

2015.01.18 17:34:09 0: Server started with 40 defined entities (version $Id: fhem.pl 6913 2014-11-08 10:32:44Z rudolfkoenig $, os linux, user hammi, pid 13306)
2015.01.18 17:34:09 1: HMLAN_Parse: HMUSB new condition ok
2015.01.18 17:34:09 1: PERL WARNING: Use of uninitialized value $ipstring in concatenation (.) or string at ./FHEM/99_RFritzRepeater.pm line 163.
2015.01.18 17:34:09 1: PERL WARNING: Use of uninitialized value $user in concatenation (.) or string at ./FHEM/99_RFritzRepeater.pm line 163.
2015.01.18 17:34:09 1: PERL WARNING: Use of uninitialized value $pwd in concatenation (.) or string at ./FHEM/99_RFritzRepeater.pm line 163.
2015.01.18 17:34:09 5: Login to fb with ,,
2015.01.18 17:34:09 5: readingsval= 0
2015.01.18 17:34:09 1: PERL WARNING: Use of uninitialized value $host in concatenation (.) or string at FHEM/FritzBoxUtils.pm line 18.
2015.01.18 17:34:09 5: RemoteFritzBoxWeb access using sid from cache c7f8bc6cf2e9a441
2015.01.18 17:34:09 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) Login SID=c7f8bc6cf2e9a441
2015.01.18 17:34:09 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) was waiting 0 0 seconds for previous scan to complete.
2015.01.18 17:34:09 5: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) HTTP request=http://192.168.1.1/wlan/wlan_settings.lua?sid=c7f8bc6cf2e9a441
2015.01.18 17:34:09 4: RemoteFritzRepeaterWeb(28:E1:4C:9C:A7:AD) Login SID=0
2015.01.18 17:34:09 1: RemoteFritzRepeaterWeb(28:E1:4C:9C:A7:AD) Login to FritzRepeater failed
2015.01.18 17:34:09 2: PRESENCE (anwesend.Repeater.iPhone5S) - error while processing check: unexpected function output (expected 0 or 1): FritzRepeater login failed
2015.01.18 17:34:09 5: RemoteFritzBoxWeb access using sid from cache c7f8bc6cf2e9a441
2015.01.18 17:34:09 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) Login SID=c7f8bc6cf2e9a441
2015.01.18 17:34:12 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) was waiting 0 3 seconds for previous scan to complete.
2015.01.18 17:34:12 5: RemoteFritzBoxWeb(70:3E:AC:35:27:22) HTTP request=http://192.168.1.1/wlan/wlan_settings.lua?sid=c7f8bc6cf2e9a441
2015.01.18 17:34:12 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) match found... status=0
2015.01.18 17:34:14 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) match found... status=1


Da klappt offenbar irgendwas nicht. Der Codeblock zum Einlesen der veränderten Credentials wird anscheinend nie aufgerufen. Wobei mir auch nicht klar ist, wann der überhaupt aufgerufen würde, da er ja nicht Bestandteil eines Subs ist, sondern "frei" oben drüber schwebt. Dafür ist FB_checkPw1 zweimal definiert, einmal "leer" oben und dann nochmal am Ende der Datei.

Ich kann zwar ein wenig C, Pascal, Basic und ein bisschen Bash skripten, aber Perl überhaupt nicht, und die Anwendung des vorhandenen Wissens auf Perl scheint zu scheitern.

Mein Versuch hängt an. Ich habe beim Testen noch ein paar Loggings hinzugefügt bzw. Deine Auskommentierungen entfernt. Wenn Du Tipps hast, was ich machen muss, damit es läuft, wäre das super!
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 19 Januar 2015, 08:12:11
hi,
ok, mit der Fritzbox funktioniert es, das ist die gute Nachricht....

Repeater:
Zitatich, lasse - zur Vermeidung doppelter Funktionsdeklarationen und für unterscheidbare Logeinträge - eine Stringersetzung "Fritzbox" zur "FritzRepeater" drüberlaufen
ich ersetze "credentials.cfg" durch "credentials_repeater.cfg"
..dann must du auch in der credentials_repeater.cfg den string RemoteFritzBox auf FritzRepeaterBox ändern - das erklärt die Fehler:
2015.01.18 17:34:09 1: PERL WARNING: Use of uninitialized value $ipstring in concatenation (.) or string at ./FHEM/99_RFritzRepeater.pm line 163.
2015.01.18 17:34:09 1: PERL WARNING: Use of uninitialized value $user in concatenation (.) or string at ./FHEM/99_RFritzRepeater.pm line 163.
2015.01.18 17:34:09 1: PERL WARNING: Use of uninitialized value $pwd in concatenation (.) or string at ./FHEM/99_RFritzRepeater.pm line 163.
und auch, warum das login nicht funktioniert.

Wenn du das schaffst, werd ich mir überlegen, wie man mehr als eine FB und auch mehrere Modelle / Repeater mit dem Modul abfragen kann.

Die Variablen $ipstring,$user,... werden beim laden des Moduls definiert, also entweder beim FHEM start, oder wenn du "reload 99_RFritzBox.pm" in der FHEM-Commandozeile eintippst!
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 19 Januar 2015, 09:11:18
(An dieser Stelle bitte einen FacePalm-Smiley denken.) Der klassische Trick 17 mit Selbstüberlistung. Danke für's Über-die-Straße-Helfen.

2015.01.19 08:37:15 0: Server started with 40 defined entities (version $Id: fhem.pl 6913 2014-11-08 10:32:44Z rudolfkoenig $, os linux, user hammi, pid 17126)
2015.01.19 08:37:15 5: Login to Repeater with 192.168.1.17,,gelöscht
2015.01.19 08:37:15 5: readingsval= 0
2015.01.19 08:37:15 4: RemoteFritzRepeaterWeb access with new login ok  1421653035_d32c129134f26e55
2015.01.19 08:37:15 4: RemoteFritzRepeaterWeb(28:E1:4C:9C:A7:AD) Login SID=d32c129134f26e55
2015.01.19 08:37:15 4: RemoteFritzRepeaterWeb(28:E1:4C:9C:A7:AD) was waiting 0 0 seconds for previous scan to complete.
2015.01.19 08:37:15 5: RemoteFritzRepeaterWeb(28:E1:4C:9C:A7:AD) HTTP request=http://192.168.1.17/wlan/rep_settings.lua?sid=d32c129134f26e55
2015.01.19 08:37:15 1: HMLAN_Parse: HMUSB new condition ok
2015.01.19 08:37:17 4: RemoteFritzRepeaterWeb(28:E1:4C:9C:A7:AD) match found... status=0


Geht. Supa. Danke für die Hilfe!

Mehr braucht man eigentlich nicht, die beiden Tests lassen sich dann über eine Structure kombinieren:

define da.iPhone5S structure iPhone5s anwesend.iPhone5S anwesend.Repeater.iPhone5S
attr da.iPhone5S clientstate_behavior relative
attr da.iPhone5S clientstate_priority present absent


Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 19 Januar 2015, 14:00:33
Hi Motivierte linke Hände,

hab alles eingebaut, könntest du bitte testen?
Kurzanleitung:
1) Die Fritzbox ganz normal lt. wiki konfigurieren...
2) für den Repeater folgendes in die credentials.cfg zusätzlich eintragen:

$credentials{RemoteFritzBox1}{ipadress} = "192.168.x.y";      # FB IP Addr 2nd device
$credentials{RemoteFritzBox1}{username} = "blabla";               # 2nd device username
$credentials{RemoteFritzBox1}{password} = "geheim";              # 2nd device password
$credentials{RemoteFritzBox1}{model} = "1750E";                 # FB model valid values: FB (for 7270,7390,7490), 1750E
username und password kannst du weglassen, falls gleich mit der Fritzbox.
FHEM definition für den Repeater:
define <myRepeater> PRESENCE function{RemoteFritzBoxWeb("xx:xx:xx:xx:xx:xx", 1)} 120 120
...wichtig ist die 1!!!
fertig!

update: Attachment hier gelöscht, bitte die Version 1.7 aus dem ersten Post verwenden!
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 19 Januar 2015, 20:32:52
Erstmal vielen Dank, Erwin.

Habe das gerade eingebaut. Beim Start meldet fhem

root@fhem:/opt/fhem/FHEM# /etc/init.d/fhem start
Starting fhem...
Prototype mismatch: sub main::FB_checkPw1 ($$$$) vs (@) at ./FHEM/99_RFritzBox.pm line 304.


Ansonsten sieht es aber sehr gut aus, je zwei Abfragen pro MAC, jeweils eine bei jeder IP:

2015.01.19 20:00:32 0: Server started with 46 defined entities (version $Id: fhem.pl 6913 2014-11-08 10:32:44Z rudolfkoenig $, os linux, user hammi, pid 21371)
2015.01.19 20:00:32 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) model set to FB 0
2015.01.19 20:00:32 5: Login to fb with 192.168.1.1,,geheim
2015.01.19 20:00:32 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) model set to 1750E 1
2015.01.19 20:00:32 5: Login to fb with 192.168.1.17,,geheim
2015.01.19 20:00:32 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) model set to FB 0
2015.01.19 20:00:32 5: Login to fb with 192.168.1.1,,geheim
2015.01.19 20:00:32 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) model set to 1750E 1
2015.01.19 20:00:32 5: Login to fb with 192.168.1.17,,geheim
2015.01.19 20:00:32 4: RemoteFritzBoxWeb access with new login ok  1421694032_fcd712c7f0ad1d27
2015.01.19 20:00:32 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) Login SID=fcd712c7f0ad1d27
2015.01.19 20:00:32 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) was waiting 0 0 seconds for previous scan to complete.
2015.01.19 20:00:32 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) HTTP request=http://192.168.1.17/wlan/rep_settings.lua?sid=fcd712c7f0ad1d27
2015.01.19 20:00:32 4: RemoteFritzBoxWeb access with new login ok  1421694032_360e6ea18ae4e81b
2015.01.19 20:00:32 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) Login SID=360e6ea18ae4e81b
2015.01.19 20:00:32 4: RemoteFritzBoxWeb access with new login ok  1421694032_43faef2533041e5f
2015.01.19 20:00:32 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) Login SID=43faef2533041e5f
2015.01.19 20:00:33 4: RemoteFritzBoxWeb access with new login ok  1421694032_53f5fdc06f76ce9f
2015.01.19 20:00:33 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) Login SID=53f5fdc06f76ce9f
2015.01.19 20:00:34 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) was waiting 0 2 seconds for previous scan to complete.
2015.01.19 20:00:34 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) HTTP request=http://192.168.1.17/wlan/rep_settings.lua?sid=360e6ea18ae4e81b
2015.01.19 20:00:34 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) match found... status=1
2015.01.19 20:00:36 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) was waiting 0 4 seconds for previous scan to complete.
2015.01.19 20:00:36 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) HTTP request=http://192.168.1.1/wlan/wlan_settings.lua?sid=43faef2533041e5f
2015.01.19 20:00:36 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) match found... status=1
2015.01.19 20:00:39 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) was waiting 0 6 seconds for previous scan to complete.
2015.01.19 20:00:39 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) HTTP request=http://192.168.1.1/wlan/wlan_settings.lua?sid=53f5fdc06f76ce9f
2015.01.19 20:00:39 4: RemoteFritzBoxWeb(70:3E:AC:35:27:22) match found... status=0
2015.01.19 20:00:41 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) match found... status=0


Super!
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 20 Januar 2015, 07:42:47
Hi,

danke fürs Feedback, den Fehler hab ich schon gefixed.
Ich mach jetzt noch ein paar Korrekturen, cleanup..., werde demnächst die doku updaten und die version offiziell machen.

noch ein Tipp:
attr RemoteFritzBoxWeb event-on-update-reading none
verhindert unnötige events und Einträge in eventtypes.txt....
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 20 Januar 2015, 18:52:37
Hi All,

ich habe jetzt die Version 1.7 im ersten Post attached.
Viel Spass!
erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 20 Januar 2015, 20:51:23
Das sieht eher unglücklich aus:

2015.01.20 20:43:30 1: reload: Error:Modul 99_RFritzBox deactivated:
Missing right curly or square bracket at ./FHEM/99_RFritzBox.pm line 317, at end of line
syntax error at ./FHEM/99_RFritzBox.pm line 317, at EOF

2015.01.20 20:43:30 1: Including fhem.cfg
Subroutine RFritzBox_Initialize redefined at ./FHEM/99_RFritzBox.pm line 94, <$fh> line 4.
Subroutine RemoteFritzBox redefined at ./FHEM/99_RFritzBox.pm line 99, <$fh> line 4.
Subroutine FB_checkPw1 redefined at ./FHEM/99_RFritzBox.pm line 279, <$fh> line 4.
2015.01.20 20:43:30 1: reload: Error:Modul 99_RFritzBox deactivated:
Missing right curly or square bracket at ./FHEM/99_RFritzBox.pm line 317, at end of line
syntax error at ./FHEM/99_RFritzBox.pm line 317, at EOF

2015.01.20 20:43:30 3: telnetPort: port 7072 opened


Danach funktioniert natürlich auch nichts aus 99_RFritzBox.pm:

2015.01.20 20:43:32 2: PRESENCE (anwesend.iPhone6) - error while processing check: unexpected function output (expected 0 or 1): Undefined subroutine &main::RemoteFritzBoxWeb called at (eval 39) line 1.

Wenn ich jetzt irgendwo noch eine alte Datei aufgehoben hätte oder Du das Attachment der letzten Testversion nicht gleich gelöscht hättest...  ::) ... dann müsste ich jetzt nicht geschweifte Klammern zählen gehen...  8)

Also, ich habe in Zeile 186 die letzte geschweifte Klammer vor dem Kommentar gelöscht. Damit scheint es zu laufen:

   unless ( $FBmodel =~ m/\b(FB|1750E)\b/g) { {  # supported models - more readable...
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 20 Januar 2015, 21:20:39
Sorry,
keine Ahnung wie das passiert ist. Am RPI wars noch ok, im Zip file falsch....grrr
...ist ausgebessert.
Danke fürs testen!
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 21 Januar 2015, 20:51:53
Ich danke für die Änderungen!!!  :)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: ufo-hans am 26 Januar 2015, 20:41:11
Nachdem ich eine ähnliche Idee wie RemoteFritzBoxWEB hatte, habe ich nach kurzer Suche gefunden, dass es das ja "eh schon gibt"... ;)

Super Skript! Klappt! Danke dafür!

Ein kleiner Hinweis nur: damit auch die SID in dem Dummy gespeichert werden kann, darf der TelnetPort von FHEM nicht passwortgeschützt sein.

Lg, Hans.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: PsychoD am 01 Februar 2015, 13:15:12
Hi,

ich versuche RemoteFritzBox aktuel ans Laufen zu kriegen. Mein FHEM läuft auf einem RPI, dazu habe ich eine Fritzbox 7390. Ich bekomme allerdings immer den folgenden Fehler:

2015.02.01 13:09:01 4: RemoteFritzBoxWeb(F0:CB:A1:13:95:24) FB-number/model set to 0 / FB
2015.02.01 13:09:01 5: Login to fb with 192.168.1.1,verrateichnicht,dashierauch#nicht
2015.02.01 13:09:01 5: readingsval= 0
2015.02.01 13:09:02 4: RemoteFritzBoxWeb(F0:CB:A1:13:95:24) Login SID=0
2015.02.01 13:09:02 1: RemoteFritzBoxWeb(F0:CB:A1:13:95:24) Login to Fritzbox failed
2015.02.01 13:09:02 2: PRESENCE (iphonedamian) - error while processing check: unexpected function output (expected 0 or 1): Fritzbox login failed


Mein Kennwort enthält eine "#". Ich habe bereits versucht sie mit \ zu escapen (also "dashierauch\#nicht"), ohne Erfolg.

Meine credentials.cfg sieht so aus:

# PRESENCE credentials (only required for function RemoteFritzBox)
$credentials{RemoteFritzBox}{ipadress} = '192.168.1.1'; # FB LAN Adress
$credentials{RemoteFritzBox}{username} = 'verrateichnicht';
$credentials{RemoteFritzBox}{password} = 'dashierauch#nicht';
$credentials{RemoteFritzBox}{model}    = 'FB'; # optional FB-model: FB (for 7270,7390,7490), 1750E


Ich verwende die aktuellste Version aus dem ersten Post. Hat jemand eine Idee?

Viele Grüße
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 01 Februar 2015, 13:20:32
Hast Du mal das da probiert: http://forum.fhem.de/index.php/topic,18666.msg124598.html#msg124598 (http://forum.fhem.de/index.php/topic,18666.msg124598.html#msg124598) ?
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: PsychoD am 01 Februar 2015, 15:46:47
Hi,

Danke für den Rat! Habe es gerade versucht:

$credentials{RemoteFritzBox}{password} = 'dashierauch'.chr(35).'nicht';

wird zu

2015.02.01 15:42:04 4: RemoteFritzBoxWeb(F0:CB:A1:13:95:24) FB-number/model set to 0 / FB
2015.02.01 15:42:04 5: Login to fb with 192.168.1.1,verrateichnicht,dashierauch#nicht
2015.02.01 15:42:04 5: readingsval= 0
2015.02.01 15:42:05 4: RemoteFritzBoxWeb(F0:CB:A1:13:95:24) Login SID=0
2015.02.01 15:42:05 1: RemoteFritzBoxWeb(F0:CB:A1:13:95:24) Login to Fritzbox failed


Die Ersetzung klappt also, aber das Problem bleibt. Vielleicht hat es auch nichts mit dem Sonderzeichen zu tun? Ich habe mir auch den Code ein wenig angeschaut, werde aber aus der Methode 'FB_checkPw1' und dem Readingsval-Teil, der ja irgendwie nue 0 zurückgibt, nicht recht Schlau...

Ach ja, auf der Fritzbox läuft Firmware 06.20.

VG
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 01 Februar 2015, 18:23:09
Hm, und wenn Du als erstes mal das Passwort änderst, um auszuschließen, dass es an der Raute liegt?
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 01 Februar 2015, 18:42:51
Hi PsychoD,

ich hab gerade geteste, am maskieren liegt es nicht....
maskieren geht entweder so wie beschrieben oder "abcd\#efgh"  .... die anderen Hochkomma beachten!!!!
PS: ein @ funktioniert nach dem Muster!
irgendwo in der FritzBoxUtils.pm oder HttpUtils.pm (nicht von mir, aber von RFritzBox verwendet) verschwindet die Raute....

Ich würde empfehlen, für den zugriff von FHEM einen eigenen user/passwort in der FB zu definieren, mit minimalen rechten...
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: PsychoD am 01 Februar 2015, 18:43:33
Hi,

ich habe es gerade mal versucht, das Sonderzeichen scheint nicht das Problem. In der Zwischenzeit habe ich die FB auch auf die neueste Firmware 6.23 geupdatet.

Interessanterweise findet auch ein Anmeldeversuch an der FB statt, denn die  stellt diesen mit falschem Kennwort fest:

01.02.15 18:38:20 Anmeldung an der FRITZ!Box Benutzeroberfläche von IP-Adresse 192.168.1.7 gescheitert (falsches Kennwort).

Ist es denkbar, dass ich nur das Kennwort eingeben muss oder so? Wenn ich aus dem LAN auf die Fritzbox gehe, wird ja auch nur nach einem Kennwort gefragt.

VG
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 01 Februar 2015, 18:47:12
ok, das schein das Problem zu sein.....

In der FB kannst du angeben, ob WEB login (vom Heimnetz) mit oder ohne user...

wenn in der FB ohne user, dann setze user='' in der credentials.cfg
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: PsychoD am 01 Februar 2015, 18:50:21
Aaaahhh, bin ich blöd - da hätte ich auch mal selbst drauf kommen können.

Danke jedenfalls, geht jetzt! :)

VG
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 08 Februar 2015, 12:53:59
"Argl, Mist!" sowie "Einen fröhlichen Sonntag!".  ;)

Ich habe gerade den Repeater auf das neueste FritzOS 6.22 gebracht, und schon sind zwar die alten Bugs nichts gefixt (Anwesenheitserkennung muss immer noch bei Fritzbox und Repeater separat durchgeführt werden, Daten werden nicht an die Fritzbox weitergereicht), aber dafür funktioniert jetzt "RemoteFritzbox" auch nicht mehr mit dem Repeater, sondern wird bei Repeater-Abfragen eine Fehlermeldung im Logfile aus:

2015.02.08 12:07:07 2: PRESENCE (anwesend.Repeater.iPhone5S) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb device=28:E1:4C:9C:A7:AD not found

Hm...

57 Minuten Debugging später sagt Edith:

Ok, ein Neustart von fhem hat das Problem behoben. Warum...? Vermutlich gab's Probleme mit dem gespeicherten Login, wenn der Repeater zwischendurch ein Update durchführt?

Lässt sich mangels ausreichender Testobjekte kaum reproduzierbar untersuchen, wäre aber ggf. einen Tipp im Wiki wert?
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 09 Februar 2015, 12:26:15
HI,

wär interessant gewesen, was mit loglevel 5 im Log gewesen wär...
An sich ist das kein Fehler, heisst nur, dass das device auf der web-seite nicht gefunden wurde?

Vermutung: durch das Firmware upgrade wurden die devices gelöscht, werden erst bei der ersten Assoziation wieder angelegt....

Den Zusammenhang mit dem FHEM-Neustart versteh ich nicht, wurde evtl. der Repeater auch neu gestartet?
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 09 Februar 2015, 13:07:06
Ich habe daran ja 'ne Stunde rumgebastelt, u.a. mir alle eingelesenen Zeilen vom Modul als Debug ins Log schreiben lassen, das Ergebnis des Vergleichs ausgeben lassen und mir natürlich auch die Seiten in Box und Repeater angeschaut... Es war alles da, es wurde auch eingelesen, es wurde nur nicht erkannt. Und als dann irgendwann das Log zu groß und unübersichtlich wurde, habe ich fhem beendet, das Log gekürzt, fhem wieder gestartet, um weitere Test durchzuführen, aber... es lief wieder.   ??? ::)

Da ich kein weiteres Gerät habe, bei dem ich ein Firmwareupdate machen kann, kann ich das leider aktuell auch nicht weiter testen.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: joachimD am 16 Februar 2015, 15:42:04
Hallo Erwin,

sorry, dass ich mich erst so spät auf deine Bitte um Test melde. Ich hatte keine Forenbenachrichtigung erhalten... :-(

Ich habe deine aktuelle Version 1.7 nun über die Version 1.4 installiert (d.h. das FHEM-Modul 99_RFritzBox.pm und das RFritzBoxScan.pl-Skript passend kopiert, Rechte gesetzt), nutze das immer noch in Installationsvariante 2 mit einer FB 6360.

Ich erhalte nun regelmäßig im Zusammenhang mit den Fritzbox-Statusanfragen Fehlermeldungen im Protokoll:

Zitat2015.02.16 15:32:06 3: telnetForBlockingFn: port 40418 opened
2015.02.16 15:32:06 4: RemoteFritzBoxWeb(Huawei-1) FB-number/model set to 0 / FB
2015.02.16 15:32:06 5: Login to fb with 192.168.178.1,***,***
2015.02.16 15:32:06 4: RemoteFritzBoxWeb(Huawei-2) FB-number/model set to 0 / FB
2015.02.16 15:32:06 4: RemoteFritzBoxWeb(Huawei-3) FB-number/model set to 0 / FB
2015.02.16 15:32:06 5: Login to fb with 192.168.178.1,***,***
2015.02.16 15:32:06 5: Login to fb with 192.168.178.1,***,***
2015.02.16 15:32:06 4: RemoteFritzBoxWeb(Huawei-4) FB-number/model set to 0 / FB
2015.02.16 15:32:06 5: Login to fb with 192.168.178.1,***,***
2015.02.16 15:32:07 4: RemoteFritzBoxWeb access with new login ok  730045e8db909657.1424097126
2015.02.16 15:32:07 4: RemoteFritzBoxWeb(Huawei-1) Login SID=730045e8db909657
2015.02.16 15:32:07 4: RemoteFritzBoxWeb(Huawei-1 was waiting 0 / 0 seconds for previous scan to complete.
2015.02.16 15:32:07 4: RemoteFritzBoxWeb(Huawei-1) HTTP request=http://192.168.178.1/wlan/wlan_settings.lua?sid=730045e8db909657
2015.02.16 15:32:07 4: RemoteFritzBoxWeb access with new login ok  44c0c35566a63f53.1424097126
2015.02.16 15:32:07 4: RemoteFritzBoxWeb(Huawei-2) Login SID=44c0c35566a63f53
2015.02.16 15:32:07 1: telnet SSL/HTTPS error: Datei oder Verzeichnis nicht gefunden
2015.02.16 15:32:07 1: telnet SSL/HTTPS error: Datei oder Verzeichnis nicht gefunden
2015.02.16 15:32:08 4: RemoteFritzBoxWeb access with new login ok  ffce77e359d9822a.1424097126
2015.02.16 15:32:08 4: RemoteFritzBoxWeb(Huawei-2) Login SID=ffce77e359d9822a
2015.02.16 15:32:08 4: RemoteFritzBoxWeb access with new login ok  2bd15ea11b834f84.1424097126
2015.02.16 15:32:08 4: RemoteFritzBoxWeb(Huawei-3) Login SID=2bd15ea11b834f84
2015.02.16 15:32:08 1: telnet SSL/HTTPS error: Datei oder Verzeichnis nicht gefunden
2015.02.16 15:32:08 1: telnet SSL/HTTPS error: Datei oder Verzeichnis nicht gefunden
2015.02.16 15:32:11 4: RemoteFritzBoxWeb(Huawei-4) was waiting 0 / 4 seconds for previous scan to complete.
2015.02.16 15:32:11 4: RemoteFritzBoxWeb(Huawei-4) HTTP request=http://192.168.178.1/wlan/wlan_settings.lua?sid=44c0c35566a63f53
2015.02.16 15:32:11 4: RemoteFritzBoxWeb(Huawei-1) match found... status=1
2015.02.16 15:32:15 4: RemoteFritzBoxWeb(Huawei-2) was waiting 0 / 7 seconds for previous scan to complete.
2015.02.16 15:32:15 4: RemoteFritzBoxWeb(Huawei-2) HTTP request=http://192.168.178.1/wlan/wlan_settings.lua?sid=ffce77e359d9822a
2015.02.16 15:32:15 4: RemoteFritzBoxWeb(Huawei-4) match found... status=1
2015.02.16 15:32:18 4: RemoteFritzBoxWeb(Huawei-3) was waiting 0 / 10 seconds for previous scan to complete.
2015.02.16 15:32:18 4: RemoteFritzBoxWeb(Huawei-3) HTTP request=http://192.168.178.1/wlan/wlan_settings.lua?sid=2bd15ea11b834f84
2015.02.16 15:32:18 4: RemoteFritzBoxWeb(Huawei-2) match found... status=0
2015.02.16 15:32:21 4: RemoteFritzBoxWeb(Huawei-3) match found... status=1

Außerdem finde ich in der Shell, in der ich fhem neu gestartet habe (unter Debian) folgende Meldungen:

ZitatUse of uninitialized value in numeric gt (>) at fhem.pl line 385.

Vorher gab's die Fehlermeldungen beide nicht - woran kann das liegen? (Die ssl-Module für Perl sind installiert).

Abgesehen von den Fehlermeldungen funktioniert die Abfrage aber.

Danke für's Mitdenken!

Gruß
Joachim
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 16 Februar 2015, 16:44:58
Hi Joachim,

ein paar Fragen:
1) hast du einen RemoteFritzBoxWeb dummy definiert?
    - gibts da ein reading, dass lastOkSid0 heisst?
2) Telnet / SSL
   - verwendest du SSL (und/oder) Passwort für das TELNET device?
      dann wird's nicht funktionieren. (betrifft nur das caching des login's)
3) dein Log ist etwas zu kurz.... bitte einen kompletten Zyklus ( PRESENCE time), sprich 2 Abfragen vom selben device hätte ich gerne gesehen.

l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: joachimD am 16 Februar 2015, 17:11:08
Hallo Erwin,

danke für deinen Hinweis - ich hatte tatsächlich für das telnet-Device in der fhem.cfg SSL und ein Passwort aktiviert.
Jetzt funktionierts - und das auch schneller denn je, den die sid wird jetzt korrekt gecachet.

Gruß
Joachim
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 16 Februar 2015, 23:08:41
Hi Joachim,
ich arbeite dran, in ein paar Tagen gibts ein update, dann  kannst du den Telnet port wieder mit passwort und SSL verwenden..
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: FHEM_Seb am 17 Februar 2015, 21:10:54
Hallo Erwin,

ich bin absoluter Neuling, wenn ich das mal so sagen darf, deshalb hier nun auch einige Fragen, die für andere ggf. selbstverständlich sind:

Die credentials.cfg habe ich erstellt, indem ich einfach die fhem.cfg unter neuem Namen und mit neuem Inhalt (gemäß Wiki) gespeichert habe.

Mit der 99_RFritzBox.pm hat das leider nicht funktioniert, d.h. diese wird mir in FHEM unter edit files nicht angezeigt.
Bei diesem Befehl (sudo chown fhem:root 99_RFritzBox.pm) auf dem RPI bekomme ich folgende Fehlermeldung: chown: cannot access `99_RFritzBox.pm': No such file or directory

Wie bekomme ich denn die Datei 99_RFritzBox.pm auf meinen RPI??

Bin für jede Hilfe dankbar. Das Thema Anwesenheit in Verbindung mit dem iPhone nervt mich langsam.

Danke und Gruß

Sebastian
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: FHEM_Seb am 18 Februar 2015, 22:18:00
Hallo zusammen,

ich habe es inzwischen schon ein Stück weiter gebracht!
Ich bekomme allerdings noch folgende Fehlermeldungen. Die Login Infos für die Fritzbox stimmen aber alle!

Use of uninitialized value $FBmodel in pattern match (m//) at ./FHEM/99_RFritzBox.pm line 186.
Use of uninitialized value $FBmodel in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 187.
2015.02.18 22:14:18 1: RemoteFritzBoxWeb(50:EA:D6:78:1B:49) invalid model  specified, changing to FB
Use of uninitialized value $ipstring in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 193.
Use of uninitialized value $user in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 193.
Use of uninitialized value $pwd in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 193.
Use of uninitialized value $host in concatenation (.) or string at FHEM/FritzBoxUtils.pm line 18.
2015.02.18 22:14:18 1: RemoteFritzBoxWeb(50:EA:D6:78:1B:49) Login to Fritzbox failed
2015.02.18 22:14:18 2: PRESENCE: error while processing device Handy_Sebastian - unexpected function output (expected 0 or 1): Fritzbox login failed

Kann mir bitte jemand helfen?! Vielen Dank!
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 19 Februar 2015, 10:52:57
Hi Sebastian,
wird ganz schwer, dir zu helfen, nachdem die Zeilennummern nicht zum Fehler passen...
Du hast da offensichtlich beim kopieren (mit cut/paste ? ) irgendwas durcheinander gebracht....

Ich vermute, einen Fehler in der credentials.cfg, nachdem $ipstring,$user,.... nicht initialisiert sind!
Da kommt's auf jedes Hochkomma, Klammer und Strichpunkt an!!!!

Wenn ich dir helfen soll, dann setze bitte:
attr RemoteFritzBoxWeb verbose 5
und poste hier den Log, aber evtl. findest du den Fehler dann selbst!
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: FHEM_Seb am 19 Februar 2015, 20:48:01
Hallo Erwin,

hier erstmal der Inhalt der credentials.cfg:

# PRESENCE credentials (only required for function RemoteFritzBoxWeb)
$credentials{RemoteFritzBox}{ipadress} = '192.168.178.1';              # FB LAN Adress
$credentials{RemoteFritzBox}{username} = 'Pasco';
$credentials{RemoteFritzBox}{password} = '123456';
# $credentials{RemoteFritzBox}{model}    = '7320';                              # optional FB-model: FB (for 7270,7390,7490), 1750E
# only required for a 2nd FB or repeater to be monitored by RemoteFritzBoxWeb - see below
$credentials{RemoteFritzBox1}{ipadress} = '192.168.178.33';      # 2nd FB LAN Adress
$credentials{RemoteFritzBox1}{username} = 'Pasco';                    # optional, else 1st entry will be used
$credentials{RemoteFritzBox1}{password} = '123456';    # optional, else 1st entry will be used
# $credentials{RemoteFritzBox1}{model}    = '7330SL';                              # optional FB-model: FB (for 7270,7390,7490), 1750E


Das ist jetzt der Auszug aus meiner fhem.cfg:

define RemoteFritzBoxWeb dummy                                    # muss RemoteFritzBoxWeb heissen, in diesem dummy wird das Web-login zwischengespeichert!
attr RemoteFritzBoxWeb event-on-update-reading none      # verhindert unnötige notify's
attr RemoteFritzBoxWeb verbose 5                            # optional: debugging on level 4-5

define Handy_Sebastian PRESENCE function {RemoteFritzBoxWeb("50:EA:D6:78:1B:49")} 10 10


Dazu erhalte ich jetzt folgenden Log Eintrag:

Use of uninitialized value $FBmodel in pattern match (m//) at ./FHEM/99_RFritzBox.pm line 186.
Use of uninitialized value $FBmodel in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 187.
2015.02.19 20:32:16 1: RemoteFritzBoxWeb(50:EA:D6:78:1B:49) invalid model  specified, changing to FB
2015.02.19 20:32:16 4: RemoteFritzBoxWeb(50:EA:D6:78:1B:49) FB-number/model set to 0 / FB
Use of uninitialized value $ipstring in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 193.
Use of uninitialized value $user in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 193.
Use of uninitialized value $pwd in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 193.
2015.02.19 20:32:16 5: Login to fb with ,,
Use of uninitialized value $host in concatenation (.) or string at FHEM/FritzBoxUtils.pm line 18.
2015.02.19 20:32:16 4: RemoteFritzBoxWeb(50:EA:D6:78:1B:49) Login SID=0
2015.02.19 20:32:16 1: RemoteFritzBoxWeb(50:EA:D6:78:1B:49) Login to Fritzbox failed
2015.02.19 20:32:16 2: PRESENCE: error while processing device Handy_Sebastian - unexpected function output (expected 0 or 1): Fritzbox login failed


Ich hoffe damit kannst Du mir irgendwie helfen. Ich will das Presence Modul zum Aktivieren/Deaktivieren der Alarmanlage nutzen.

Noch eine Frage: Ist das normal, dass ich die 99_RFritzBox.pm nicht unter edit files angezeigt bekomme?!

Danke und Gruß

Sebastian
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: joachimD am 19 Februar 2015, 21:42:33
Hallo Sebastian,

ein paar Fragen kann ich dir auch schon vor Erwin beantworten:

Zitat von: FHEM_Seb am 19 Februar 2015, 20:48:01
# PRESENCE credentials (only required for function RemoteFritzBoxWeb)
$credentials{RemoteFritzBox}{ipadress} = '192.168.178.1';              # FB LAN Adress
$credentials{RemoteFritzBox}{username} = '*****';
$credentials{RemoteFritzBox}{password} = '*****';
# $credentials{RemoteFritzBox}{model}    = '7320';                              # optional FB-model: FB (for 7270,7390,7490), 1750E
# only required for a 2nd FB or repeater to be monitored by RemoteFritzBoxWeb - see below
$credentials{RemoteFritzBox1}{ipadress} = '192.168.178.33';      # 2nd FB LAN Adress
$credentials{RemoteFritzBox1}{username} = '*****';                    # optional, else 1st entry will be used
$credentials{RemoteFritzBox1}{password} = '*****';    # optional, else 1st entry will be used
# $credentials{RemoteFritzBox1}{model}    = '7330SL';                              # optional FB-model: FB (for 7270,7390,7490), 1750E
Wie dem Kommentar zu entnehmen ist, musst du entweder 'FB' oder '1750E' für das FritzBox-Modell eintragen. Keine Sorge, FB funktioniert nicht nur für die drei angegebenen Modelle!
(Übrigens hoffe ich, dass das nicht wirklich dein Benutzername und dein Paswort für die Fritz!Box sind?!)

Zitat
define Handy_Sebastian PRESENCE function {RemoteFritzBoxWeb("50:EA:D6:78:1B:49")} 10 10
Die FritzBox alle 10 Sekunden abzufragen, ist sicherlich nicht geschickt - du erzeugst so relativ viel Last! Und angesichts dessen, dass die Fritz!Box für die Erkennung, dass ein Handy abwesend ist, selbst schon leicht mal 5-15 Minuten benötigt, erscheint diese Abfrage wenig sinnvoll.

Zitat
2015.02.19 20:32:16 1: RemoteFritzBoxWeb(50:EA:D6:78:1B:49) invalid model  specified, changing to FB
2015.02.19 20:32:16 4: RemoteFritzBoxWeb(50:EA:D6:78:1B:49) FB-number/model set to 0 / FB
Wie oben geschrieben: Du hast eine ungültige Modellbezeichnung eingetragen. Das wird in den meisten deiner Logzeilen bemängelt.

Zitat
2015.02.19 20:32:16 5: Login to fb with ,,
Use of uninitialized value $host in concatenation (.) or string at FHEM/FritzBoxUtils.pm line 18.
2015.02.19 20:32:16 4: RemoteFritzBoxWeb(50:EA:D6:78:1B:49) Login SID=0
2015.02.19 20:32:16 1: RemoteFritzBoxWeb(50:EA:D6:78:1B:49) Login to Fritzbox failed
Hast du in der ersten Zeile die Zugangsdaten für das Posten hier entfernt? Falls nicht, dann ist merkwürdig, dass fhem nicht die Daten aus deiner credentials.cfg eingesetzt hat. Ist sie für fhem lesbar (Benutzer fhem, Rechte rw-r--r-- => chown fhem credentials.cfg und chmod 644 credentials.cfg)?

Zitat
Ich hoffe damit kannst Du mir irgendwie helfen. Ich will das Presence Modul zum Aktivieren/Deaktivieren der Alarmanlage nutzen.
Dann hoffe ich für dich, dass du dein Handy weder mal ausschaltest noch dein Akku leer ist... Aber du wirst sicher Alternativen hierfür eingeplant haben?

Gruß
Joachim
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: FHEM_Seb am 19 Februar 2015, 22:04:26
Hallo Joachim,

danke für die Hinweise.

Ich habe jetzt FB für das Fritzbox Modell eingetragen. (Passwort und Benutzername sind natürlich für das Forum geändert!!!)

Die 10 Sekunden hatte ich erstmal so definiert um möglichst schnell die Reaktion meiner Änderungen zu sehen. Habe jetzt erstmal auf 60 Sekunden erhöht.

Am LogFile habe ich nichts geändert, das steht da tatsächlich so drin!

Für die Alarmanlage gibt es natürlich noch Taster etc., aber die Handy Erkennung macht es um einiges leichter, zumindest kann man so das Aktivieren nicht vergessen.

Der LogFile sieht jetzt übrigens so aus:

Use of uninitialized value $FBmodel in pattern match (m//) at ./FHEM/99_RFritzBox.pm line 186.
Use of uninitialized value $FBmodel in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 187.
2015.02.19 22:00:51 1: RemoteFritzBoxWeb(50:EA:D6:78:1B:49) invalid model  specified, changing to FB
2015.02.19 22:00:51 4: RemoteFritzBoxWeb(50:EA:D6:78:1B:49) FB-number/model set to 0 / FB
Use of uninitialized value $ipstring in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 193.
Use of uninitialized value $user in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 193.
Use of uninitialized value $pwd in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 193.
2015.02.19 22:00:51 5: Login to fb with ,,
Use of uninitialized value $host in concatenation (.) or string at FHEM/FritzBoxUtils.pm line 18.
2015.02.19 22:00:51 4: RemoteFritzBoxWeb(50:EA:D6:78:1B:49) Login SID=0
2015.02.19 22:00:51 1: RemoteFritzBoxWeb(50:EA:D6:78:1B:49) Login to Fritzbox failed
2015.02.19 22:00:51 2: PRESENCE: error while processing device Handy_Sebastian - unexpected function output (expected 0 or 1): Fritzbox login failed



Danke und Gruß

Sebastian
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: joachimD am 19 Februar 2015, 22:53:40
Hallo Sebastian!

Zitat von: FHEM_Seb am 19 Februar 2015, 22:04:26
Ich habe jetzt FB für das Fritzbox Modell eingetragen. (Passwort und Benutzername sind natürlich für das Forum geändert!!!)
...
Am LogFile habe ich nichts geändert, das steht da tatsächlich so drin!

Sowohl die diversen fehlenden Wertbelegungen (unintialized values) als auch das Login mit leeren Zugangsdaten weisen darauf hin, dass deine credentials nicht eingelesen wurden.
Hast du die Datei im richtigen Ordner? (Es muss der fhem-Ordner sein, keiner der Unterordner!).

Falls du die fhem.cfg direkt von Hand verändert hast: Hast du fhem danach neu gestartet?
Hast du mit ls -al geprüft, ob die Dateien auch die korrekten Leserechte haben?

Gruß

Joachim
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 20 Februar 2015, 07:16:00
Hi Sebastian,

Joachim hat ja schon einiges richtig bemerkt, mir sind noch 2 dinge aufgefallen:
irgendwas ist mit deiner 99_RemtoteFritzBox.pm faul!
Die Fehler meldung aus Zeile 196 / 197 sollte aus Zeile 194/195 kommen...
Da fehlen also 8 Zeilen!
schau mal bitte nach ob diese Zeile drin sind:
### config file - usually no change required
my $fullcfgfile =  $attr{global}{modpath} . "/credentials.cfg";
###get config from file
  if(!open(CONFIG, $fullcfgfile)) {
     my $msg = "Cannot open RFritzbox configuration file $fullcfgfile.";
     Log3 "RemoteFritzBox", 1,$msg;
     return $msg;
  }
  my @config = <CONFIG>;
  close(CONFIG);
  my %credentials;
  eval join("", @config);

  if(!(defined($credentials{RemoteFritzBox}{ipadress}) && defined($credentials{RemoteFritzBox}{username}) && defined($credentials{RemoteFritzBox}{password})) && defined($credentials{RemoteFritzBox}{serverbin}) ) {
     my $msg = "Syntax error in RFritzbox configuration file $fullcfgfile.";
     Log3 "RemoteFritzBox", 1,$msg;
     return $msg;
  }

  my $ipstring = $credentials{RemoteFritzBox}{ipadress};
  my $user = $credentials{RemoteFritzBox}{username};
  my $pwd = $credentials{RemoteFritzBox}{password};
  my $FBmodel = $credentials{RemoteFritzBox}{model}; # optional: valid values: FB, 1750E
  my $serverhost = $credentials{RemoteFritzBox}{serverhost};
  my $serverport = $credentials{RemoteFritzBox}{serverport};
  my $serverbin = $credentials{RemoteFritzBox}{serverbin};
  my $speedmatching = $credentials{RemoteFritzBox}{speedmatching}; # if 1 match for speed instead of status
 
  my $fullserverbin = "echo \$serverbin not defined\n";
  $fullserverbin =  $attr{global}{modpath} . "/FHEM/$serverbin $fullcfgfile" if (defined($serverbin)); # full path to Fritzbox daemon
  $speedmatching = 0 if (! defined($speedmatching)); # default: go for state
  $FBmodel = "FB" unless(defined($FBmodel)); # 7270,7390,7490,...

zur credentials.cfg:

# $credentials{RemoteFritzBox}{model}    = 'FB'; # so nicht !
$credentials{RemoteFritzBox}{model}    = 'FB'; # sondern so!   
aber das ist nicht das Problem.

versuch dich mal schlau zu machen, wie man files zwischen PC und Raspberry hin und her bekommt. Stichwort: Filezilla, das erleichtert vieles...
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: FHEM_Seb am 22 Februar 2015, 13:15:22
Hallo Erwin und Joachim,

vielen lieben Dank für Eure Mühe mir zu helfen. Dank Eurer Anmerkungen habe ich es jetzt endlich hinbekommen!!!  ;D

Das Problem war letzten Endes, dass die credentials.cfg und die 99_RFritzBox.pm nicht in den richtigen Ordnern auf den RPi gespeichert waren.

Sowohl Cyberduck, als auch Filezilla haben mir nicht alle Ordner angezeigt! .ssh, Desktop und python_games, dies sind die einzigen Ordner, welche als solche angezeigt werden. Fhem liegt aber im Ordner opt. Dieser wird nur als Datei angezeigt, nicht als Ordner.

Es hat also eine Weile gedauert, bis ich, als völliger Linux Legastheniker kapiert habe, dass es auf dem RPi noch mehr Ordner gibt, Filezilla und Cyberduck diese aber nicht anzeigen!
Ich hab's dann über Terminal hinbekommen. Hier sieht die Ordnerstruktur dann so aus: /home/pi/opt/fhem/FHEM, wobei die fhem.pl im fhem-Ordner liegt, die ganzen *.pm Dateien usw. von Fhem aber im FHEM-Ordner liegen.

Da muss man erstmal drauf kommen. Wisst Ihr vielleicht, warum Filezilla opt nicht als Ordner anzeigt?? Mit Filezilla wären solche Sachen natürlich viel einfacher!

So dann, vielen Dank nochmal und einen schönen Sonntag.

Gruß Sebastian
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 22 Februar 2015, 14:17:13
Hi Sebastian!

na bitte, das hat noch jeder hinbekommen!
Irgendwie hast du FHEM nicht so installiert, wie wir alle anderen, offensichtlich...

Die default installation beim RPI geht nach /opt/fhem - bei dir ist es in /home/pi/opt/fhem....
Zu filezilla zeigt nicht alle ordner:
nach dem login zeigt filezilla den default ordner des users, mit dem du filezilla zum PI verbunden hast. ich gehe davon aus, dass das ebenfalls pi ist. Du landest also im /home/pi verzeichniss....
das gilt auch, wenn du mit ssh/Telnet einloggst!
Wenn du dann im vereichnis listing auf den obersten ordner klickst (den mit ..) kommst du in der verzeichnisstruktur eine ebene nach oben... (bei ssh mit cd ..)
vielleich hilft dir auch, wenn du im Filezills unter Ansicht / Server-Verzeichnisbaum aktivierst.
ich hoffe, das war einigermassen verständlich.
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: FHEM_Seb am 22 Februar 2015, 14:53:52
Hallo Erwin,

super Sache!

Filezilla zeigt standardmäßig das Verzeichnis /home/pi an und darin liegt eine Datei mit dem Namen opt. Davon habe ich mich verleiten lassen!

Gehe ich dann mit .. in die allererste Ebene des RPi, dann gibt es auch den Ordner opt und darin ist dann Fhem mit allem was dazu gehört! Also scheint mein Installationsverzeichnis schon richtig zu sein, ich hab's nur nicht kapiert!

Dazu noch gleich eine Frage: Wenn mir der RPi bzw. vielmehr die SD Karte mal abrauchen sollte, kann ich dann einfach eine eins-zu-eins Kopie der SD Karte wieder auf eine neue SD Karte laden und alles läuft wieder? Oder geht das so einfach nicht?

Nachdem ich nun doch einiges gemacht habe und das für mich echt viel Aufwand war, frage ich mich, wie ich mich davor schützen kann, dies bei einem Hardwaredefekt alles nochmal machen zu müssen, sprich Backup des RPi bzw. Fhem, Anlernen HM-LAN-Adapter, etc..

Danke und Gruß

Sebastian
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 22 Februar 2015, 16:55:43
Ach Mensch, jetzt geht das wieder los:

Da hat sich heute Nacht wohl der Repeater kurz ein Nickerchen gegönnt:

2015.02.22 04:25:05 3: at_checkGDS: Keine Warnmeldung für die gesuchte Region vorhanden.
2015.02.22 04:35:05 3: at_checkGDS: Keine Warnmeldung für die gesuchte Region vorhanden.
2015.02.22 04:45:05 3: at_checkGDS: Keine Warnmeldung für die gesuchte Region vorhanden.
2015.02.22 04:45:09 2: PRESENCE (anwesend.Repeater.iPhone6) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb error http://192.168.1.17/wlan/rep_settings.lua?sid=7a1bce043eb32915: Can't connect(1) to http://192.168.1.17:80: IO::Socket::INET: connect: timeout during Web query
2015.02.22 04:45:13 2: PRESENCE (anwesend.Repeater.iPhone5S) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb error http://192.168.1.17/wlan/rep_settings.lua?sid=7a1bce043eb32915: Can't connect(1) to http://192.168.1.17:80: IO::Socket::INET: connect: timeout during Web query


Dann ist er heute Morgen wieder aufgestanden, und seitdem bekommt fhem keinen Connect mehr hin:

2015.02.22 07:23:22 2: PRESENCE (anwesend.Repeater.iPhone5S) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb error http://192.168.1.17/wlan/rep_settings.lua?sid=7a1bce043eb32915: Can't connect(1) to http://192.168.1.17:80: IO::Socket::INET: connect: No route to host during Web query
2015.02.22 07:25:05 3: at_checkGDS: Keine Warnmeldung für die gesuchte Region vorhanden.
2015.02.22 07:25:20 2: PRESENCE (anwesend.Repeater.iPhone6) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb device=70:3E:AC:35:27:22 not found
2015.02.22 07:25:23 2: PRESENCE (anwesend.Repeater.iPhone5S) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb device=28:E1:4C:9C:A7:AD not found


Da der Repeater online ist und antwortet, habe ich spontan wieder den Login-Cache im Verdacht. Wie kann ich denn die alten Daten löschen, so dass fhem eine neue Session aufbauen MUSS?

Einen fröhlichen Sonntagabend, Christian
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 22 Februar 2015, 18:27:41
Hi Christian,

wenn du die webseite am Repeater händisch aufrufst, gehts dann?
das Login hab ich nicht im Verdacht, wenn du fhem neu startest, gibst auf alle Fälle ein neues login.
sonst bitte einen log mit attr RemoteFritzBoxWeb verbose 5 hier posten und etwas Geduld, ich bin am morgen für eine Woche auf Urlaub (ohne Internet)...
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 23 Februar 2015, 09:30:06
Urlaub ist immer gut!

Das verbose-5-Log:

2015.02.23 09:26:18 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) FB-number/model set to 0 / FB
2015.02.23 09:26:18 5: Login to fb with 192.168.1.1,,sagichnich
2015.02.23 09:26:18 5: RemoteFritzBoxWeb access FB 0 using sid from cache 39247f8b169129cb
2015.02.23 09:26:18 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) Login SID=39247f8b169129cb
2015.02.23 09:26:18 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) was waiting 0 / 0 seconds for previous scan to complete.
2015.02.23 09:26:18 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) HTTP request=http://192.168.1.1/wlan/wlan_settings.lua?sid=39247f8b169129cb
2015.02.23 09:26:19 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) FB-number/model set to 1 / 1750E
2015.02.23 09:26:19 5: Login to fb with 192.168.1.17,,sagichauchnich
2015.02.23 09:26:19 5: RemoteFritzBoxWeb access FB 1 using sid from cache 7a1bce043eb32915
2015.02.23 09:26:19 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) Login SID=7a1bce043eb32915
2015.02.23 09:26:21 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) was waiting 0 / 2 seconds for previous scan to complete.
2015.02.23 09:26:21 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) HTTP request=http://192.168.1.17/wlan/rep_settings.lua?sid=7a1bce043eb32915
2015.02.23 09:26:21 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) match found... status=0
2015.02.23 09:26:22 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) device not found
2015.02.23 09:26:22 2: PRESENCE (anwesend.Repeater.iPhone5S) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb device=28:E1:4C:9C:A7:AD not found


Und ja, die Seite im Repeater ist unverändert... Diesmal habe ich vorher auch kein Firmware-Update gemacht.  ;D
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 03 März 2015, 09:53:26
Moin!

Ich hab da auch noch was Lustiges im Logfile gefunden....


2015.03.03 09:49:31 1: RemoteFritzBoxWeb(XX:XX:XX:XX:XX:XX) invalid model FB specified, changing to FB



Wo ist der Fehler? :)

LG

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 03 März 2015, 11:02:08
Wie sehen denn Deine Credentials aus?
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 05 März 2015, 08:47:22
Moin!

Zitat von: Motivierte linke Hände am 03 März 2015, 11:02:08
Wie sehen denn Deine Credentials aus?

Wie folgt:


# this is credentials.cfg file
# where i keep my secure stuff for fhem ;-))
#
# PRESENCE credentials (only required for function RemoteFritzBox)
$credentials{RemoteFritzBox}{ipadress} = "192.168.178.XX";
$credentials{RemoteFritzBox}{username} = "root";
$credentials{RemoteFritzBox}{password} = "somepass";
$credentials{RemoteFritzBox}{shellcmd} = "/var/media/ftp/bin/Rpresence.sh"; # FB executeable - pfad anpassen
$credentials{RemoteFritzBox}{serverhost} = "192.168.178.XX";  # RFritzBoxScan.pl provides this service
$credentials{RemoteFritzBox}{serverport} = 7777; # RFritzBoxScan.pl server port
$credentials{RemoteFritzBox}{serverbin} = "RFritzBoxScan.pl"; # Fritzbox daemon name - running on RPI
$credentials{RemoteFritzBox}{speedmatching} = "speed";  # optional valid: <active|speed> siehe PRESENCE-Fritzbox
$credentials{RemoteFritzBox1}{model} = "FB";

#
$credentials{RemoteFritzBox1}{ipadress} = "192.168.178.XX";
$credentials{RemoteFritzBox1}{username} = "";
$credentials{RemoteFritzBox1}{password} = "nouserpass";
$credentials{RemoteFritzBox1}{model} = "FB";



Grüße

anfichtn
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 05 März 2015, 09:58:49
Vielleicht (!) ist das Problem, dass dieModell-Angabe nur beim Webzugriff Sinn macht bzw. erforderlich ist... Probier doch mal, diese Zeile wegzulassen.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 05 März 2015, 15:43:39
@Christian,

hi, bin zurück und hab auch gleich die Grippe erwischt.....
Dein Log hat mir etwas Kopfschmerzen bereitet, oder war's doch dir Grippe??
Ich hab versucht, die Dinge auseinanderzusortieren, nachdem 2mal die gleiche MAC....

##FB0 2015.02.23 09:26:18 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) FB-number/model set to 0 / FB
##FB0 2015.02.23 09:26:18 5: Login to fb with 192.168.1.1,,sagichnich
##FB0 2015.02.23 09:26:18 5: RemoteFritzBoxWeb access FB 0 using sid from cache 39247f8b169129cb
##FB0 2015.02.23 09:26:18 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) Login SID=39247f8b169129cb
##FB0 2015.02.23 09:26:18 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) was waiting 0 / 0 seconds for previous scan to complete.
##FB0 2015.02.23 09:26:18 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) HTTP request=http://192.168.1.1/wlan/wlan_settings.lua?sid=39247f8b169129cb
##FB1 2015.02.23 09:26:19 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) FB-number/model set to 1 / 1750E
##FB1 2015.02.23 09:26:19 5: Login to fb with 192.168.1.17,,sagichauchnich
##FB1 2015.02.23 09:26:19 5: RemoteFritzBoxWeb access FB 1 using sid from cache 7a1bce043eb32915
##FB1 2015.02.23 09:26:19 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) Login SID=7a1bce043eb32915
##FB1 2015.02.23 09:26:21 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) was waiting 0 / 2 seconds for previous scan to complete.
##FB1 2015.02.23 09:26:21 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) HTTP request=http://192.168.1.17/wlan/rep_settings.lua?sid=7a1bce043eb32915
## die nächsten beiden Zeilen waren der Grund für meine Verwirrung:
##FB0 2015.02.23 09:26:21 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) match found... status=0
##FB1 2015.02.23 09:26:22 4: RemoteFritzBoxWeb(28:E1:4C:9C:A7:AD) device not found
##FB1 2015.02.23 09:26:22 2: PRESENCE (anwesend.Repeater.iPhone5S) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb device=28:E1:4C:9C:A7:AD not found

Grundsätzliche Frage: Gehts mit dem Repeater überhaupt nie? Könnte es sein, dass sich im HTML was geändert hat (durch Firmware upgrade), und mein parsing daneben liegt? Dann würd ich die HTML Seite brauchen.

PS: Danke für deine Unterstüzung der Kollegen!
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 05 März 2015, 17:27:51
So...

Zitat von: Motivierte linke Hände am 05 März 2015, 09:58:49
Vielleicht (!) ist das Problem, dass dieModell-Angabe nur beim Webzugriff Sinn macht bzw. erforderlich ist... Probier doch mal, diese Zeile wegzulassen.

Es hat was getan...


# this is credentials.cfg file
# where i keep my secure stuff for fhem ;-))
#
# PRESENCE credentials (only required for function RemoteFritzBox)
$credentials{RemoteFritzBox}{ipadress} = "192.168.178.XX";
$credentials{RemoteFritzBox}{username} = "root";
$credentials{RemoteFritzBox}{password} = "somepass";
$credentials{RemoteFritzBox}{shellcmd} = "/var/media/ftp/bin/Rpresence.sh"; # FB executeable - pfad anpassen
$credentials{RemoteFritzBox}{serverhost} = "192.168.178.XX";  # RFritzBoxScan.pl provides this service
$credentials{RemoteFritzBox}{serverport} = 7777; # RFritzBoxScan.pl server port
$credentials{RemoteFritzBox}{serverbin} = "RFritzBoxScan.pl"; # Fritzbox daemon name - running on RPI
$credentials{RemoteFritzBox}{speedmatching} = "speed";  # optional valid: <active|speed> siehe PRESENCE-Fritzbox
#$credentials{RemoteFritzBox}{model} = "FB";

#
$credentials{RemoteFritzBox1}{ipadress} = "192.168.178.XX";
$credentials{RemoteFritzBox1}{username} = "";
$credentials{RemoteFritzBox1}{password} = "nouserpass";
#$credentials{RemoteFritzBox1}{model} = "FB";


geändert. bzw. auskommentiert.

Die Banane neu gestartet....

Trotzdem steht im Log fröhlich weiter:


2015.03.05 17:11:42 2: MAX MaxScan: UtilsMaxScan_Initialize.74 MaxScan is starting
2015.03.05 17:11:42 1: Including fhem.cfg
2015.03.05 17:11:47 1: Including ./log/fhem.save
2015.03.05 17:11:47 1: usb create starting
2015.03.05 17:11:48 1: usb create end
2015.03.05 17:11:48 0: Server started with 38 defined entities (version $Id: fhem.pl 8115 2015-03-01 12:53:35Z rudolfkoenig $, os linux, user fhem, pid 1987)
2015.03.05 17:12:47 1: RemoteFritzBoxWeb(88:30:8A:7B:53:36) Login to Fritzbox failed
2015.03.05 17:12:47 1: RemoteFritzBoxWeb(88:30:8A:7B:53:36) invalid model FB specified, changing to FB
2015.03.05 17:13:51 1: RemoteFritzBoxWeb(88:30:8A:7B:53:36) invalid model FB specified, changing to FB
2015.03.05 17:14:51 1: RemoteFritzBoxWeb(88:30:8A:7B:53:36) invalid model FB specified, changing to FB
2015.03.05 17:15:51 1: RemoteFritzBoxWeb(88:30:8A:7B:53:36) invalid model FB specified, changing to FB
2015.03.05 17:16:51 1: RemoteFritzBoxWeb(88:30:8A:7B:53:36) invalid model FB specified, changing to FB
2015.03.05 17:17:51 1: RemoteFritzBoxWeb(88:30:8A:7B:53:36) invalid model FB specified, changing to FB


Für mich absolut nicht nachvollziehbar.

Da das Presence-Modul bei mir nicht einwandfrei funktioniert... (andere Baustelle... ) frage ich die Anwesenheit derzeit einfach per AT ab:


define check_handy at +*00:01:00 { \
fhem "setstate Handy active";; \
    my $state_handy = RemoteFritzBoxWeb("88:30:8A:7B:53:36");; \
    my $state2_handy = RemoteFritzBoxWeb("88:30:8A:7B:53:36", 1);;\
    if ($state_handy eq "0" && $state2_handy eq "0") {\
    fhem "setstate Handy absent"\
    };; if ($state_handy eq "1" || $state2_handy eq "1") {\
    fhem "setstate Handy present"};;\
    }



FBOX ist übrigens eine 7270, FBOX1 ist eine 3270.

Grüße

anfichtn

PS: Log mit "dummy RemoteFritzBoxWeb" und "verbose 5" läuft...
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 05 März 2015, 19:17:08
Hi anfichtn,
so wie deine credentials jetzt sind, ist es nachvollziehbar:
model ist nicht definiert, weil auskommentiert!

ich geb zu, die Fehlermeldung ist nicht ganz logisch....
Grund ist, das $FBmodel eine Modul-globale variable ist, die auf FB vordefiniert ist, der check allerdings auf die credentials file schaut, ob da was anderes steht.
noch eine idee: was hast du für eine perl version? Möglicherweise geht das schief:
unless ( $FBmodel =~ m/\b(FB|1750E)\b/g) { # supported models - more readable...

So wie du die Funktion verwendest, hält sie FHEM jedenfalls während der Laufzeit komplett auf ! ... Weil sie nicht über Blocking-call gestartet wird, was das PRESENCE Modul im Normalfall macht!  - keinesfalls empfehlenswert!

l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 05 März 2015, 20:08:16
Moin Erwin!

Mein System hat scheinbar grundlegend was gegen den BlockingCall..  Der funktioniert nicht mit Presence, geschweige denn mit Remotefritzbox oder anderen Modulen wie zum Beispiel SysMon.

Insofern ist der gewählte Weg der zeitlich sinnvollste.

Unlogisch scheint mir, dass eine interne Variable trotz korrekter Definition und Vorbelegung einen Fehler bzw Warnhinweis produziert. 

Über das unlogisch lässt sich sicher streiten, jedenfalls ist es irreführend wenn dieses Verhalten so gewollt ist.

Grüße

anfichtn

Nachtrag:
In Zeile 85 gibst du einen Wert "FB" vor,  der in Zeile 186 nicht gematcht wird....  Ich denke die Fehlermeldung resultiert daher...

Gruß

anfichtn
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 05 März 2015, 20:31:14
... na gewollt ist es nicht, und bei mir tritt es ja auch nicht auf, deswegen auch die Frage nach der perl version....
.. ach ja, es wird kein Fehler produziert oder Warning, es wird was ins Log geschrieben, auf Grund eines String-Vergleichs, der nicht so ausgehen sollte....

PS: du könntest ja auf deinem System die gepostete Zeile in einer einfachen xxx.pl mal testen und schauen ob's funktioniert.

l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 05 März 2015, 21:50:14
Moin!


29 root@bananapi /opt/fhem # perl --version                   :(
This is perl 5, version 14, subversion 2 (v5.14.2) built for arm-linux-gnueabihf-thread-multi-64int
(with 89 registered patches, see perl -V for more detail)

Copyright 1987-2011, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.


Und:

  print "before\n";
   unless ( $FBmodel =~ m/\b(FB|1750E)\b/g) { # supported models #
      print "success\n";
      $FBmodel = 'FB';                                              }                                                             
print "done\n";


Ergibt erwartungsgemäß folgendes:

root@bananapi /opt/fhem # perl test.pl
before
success
done


Keinerlei Fehler.

Grüße

anfichtn
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 05 März 2015, 22:28:25
Hi Anfichtn,

also die perl version können wir aussschließen..

und du schreibst ja ganz richtig, das die variable $FBmodel in zeile 85 auf FB gesetzt wird, die Frage ist nun, warum gibts dann keinen match in zeile 186.???
Ändert irgendwer/ irgendwas die Variable dazwischen ???
bau doch mal ein Log3 statement vor der zeile 186 ein, mit Ausgabe der Variable... etwa so:
Log3 "RemoteFritzBoxWeb", 1, "RemoteFritzBoxWeb($devname) model is now: $FBmodel";
irgendwie muss das ding ja zu knacken sein....
l.g. erwin

PS: wg. Blocking ist mir was eingefallen - ein schuss ins blaue:
mach mal ping localhost geht das ? Irgendwo hab ich gelesen, dass manchen Linuxe keinen localhost definiert haben....
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 05 März 2015, 23:28:58
Moin!


2015.03.05 23:08:46 1: RemoteFritzBoxWeb(88:30:8A:7B:53:36) model is now: FB
2015.03.05 23:08:46 4: RemoteFritzBoxWeb(88:30:8A:7B:53:36) FB-number/model set to 0 / FB
2015.03.05 23:08:46 5: Login to fb with 192.168.178.XX,root,somepass
2015.03.05 23:08:47 4: RemoteFritzBoxWeb(88:30:8A:7B:53:36) Login SID=0
2015.03.05 23:08:47 1: RemoteFritzBoxWeb(88:30:8A:7B:53:36) Login to Fritzbox failed
2015.03.05 23:08:47 1: RemoteFritzBoxWeb(88:30:8A:7B:53:36) model is now: FB
2015.03.05 23:08:47 1: RemoteFritzBoxWeb(88:30:8A:7B:53:36) invalid model FB specified, changing to FB
2015.03.05 23:08:47 4: RemoteFritzBoxWeb(88:30:8A:7B:53:36) FB-number/model set to 1 / FB
2015.03.05 23:08:47 5: Login to fb with 192.168.178.XX,,nouserpass
2015.03.05 23:08:47 4: RemoteFritzBoxWeb access with new login ok  a71381fcf0622c92.1425593327
2015.03.05 23:08:47 4: RemoteFritzBoxWeb(88:30:8A:7B:53:36) Login SID=a71381fcf0622c92
2015.03.05 23:08:47 4: RemoteFritzBoxWeb(88:30:8A:7B:53:36) was waiting 0 / 0 seconds for previous scan to complete.
2015.03.05 23:08:47 4: RemoteFritzBoxWeb(88:30:8A:7B:53:36) HTTP request=http://192.168.178.X/wlan/wlan_settings.lua?sid=a71381fcf0622c92
2015.03.05 23:08:51 4: RemoteFritzBoxWeb(88:30:8A:7B:53:36) match found... status=1
2015.03.05 23:09:46 1: RemoteFritzBoxWeb(88:30:8A:7B:53:36) model is now: FB
2015.03.05 23:09:46 4: RemoteFritzBoxWeb(88:30:8A:7B:53:36) FB-number/model set to 0 / FB


und wegen Blocking:


root@bananapi ~fhem # ping localhost -c 4                                 

PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 time=0.122 ms
64 bytes from localhost (127.0.0.1): icmp_req=2 ttl=64 time=0.095 ms
64 bytes from localhost (127.0.0.1): icmp_req=3 ttl=64 time=0.087 ms
64 bytes from localhost (127.0.0.1): icmp_req=4 ttl=64 time=0.087 ms

--- localhost ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.087/0.097/0.122/0.018 ms


Ich habe also auch noch keine Ahnung weshalb blocking nicht funktioniert.

Grüße

anfichtn
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: VolkerL am 06 März 2015, 11:57:29
Hallo,

ich habe Probleme mit der Erkennung meiner beiden Smartphones wenn sie über den Repeater eingeloggt sind, dann findet keine Anwesenheitserkennung statt.

Die Ausgangssituation Router FB7390 (Anmeldung nur mit Passwort), Repeater FB7320 über LAN angeschlossen, fhem läuft auf einem Raspberry der am Router über LAN angeschlossen ist.

Meine credentials.cfg (ich habe die beigefügte credentails_web_sample.cfg auf meine Bedürfnisse angepasst) sie wurde sowohl im Verzeichnis /opt/fhem wie auch in dem Vertzeichnis in dem der fhem-eigene Editor abspeichert ohne Erfolg ausprobiert:


# PRESENCE credentials (only required for function RemoteFritzBoxWeb)
$credentials{RemoteFritzBox}{ipadress} = '192.168.2.1'; # FB LAN Adress
$credentials{RemoteFritzBox}{username} = '';
$credentials{RemoteFritzBox}{password} = 'Passwort 1';
$credentials{RemoteFritzBox}{model}    = 'FB';                  # optional FB-model: FB (for 7270,7390,7490), 1750E
# only required for a 2nd FB or repeater to be monitored by RemoteFritzBoxWeb - see below
$credentials{RemoteFritzBox1}{ipadress} = '192.168.2.31'; # 2nd FB LAN Adress
$credentials{RemoteFritzBox1}{username} = 'Username2; # optional, else 1st entry will be used
$credentials{RemoteFritzBox1}{password} = 'passwort2; # optional, else 1st entry will be used
$credentials{RemoteFritzBox1}{model}    = 'FB';              # optional FB-model: FB (for 7270,7390,7490), 1750E



In der fhem.cfg habe ich folgende Einträge zur Erkennung der Anwesenheit, was am Router auch funktioniert.


define Volker PRESENCE function {RemoteFritzBoxWeb("Galaxy-S4")} 120 120
define Fritzbox2VL PRESENCE function{RemoteFritzBoxWeb("xx:xx:xx:xx:xx:xx", 1)} 120 120
attr Volker userattr Bewohner_structure Bewohner_structure_map structexclude
attr Volker Bewohner_structure Bewohner

define Karin PRESENCE function {RemoteFritzBoxWeb("Mobistel-T5")} 120 120
define Fritzbox2KL PRESENCE function{RemoteFritzBoxWeb("yy:yy:yy:yy:yy:yy", 1)} 120 120
attr Karin userattr Bewohner_structure Bewohner_structure_map structexclude
attr Karin Bewohner_structure Bewohner


In der Log-Datei ist immer nur der Router aufgeführt:


2015.03.06 11:48:30 4: RemoteFritzBoxWeb(Galaxy-S4) match found... status=0
2015.03.06 11:48:30 3: FS20 set Schalt_Zirkul on
2015.03.06 11:48:33 4: RemoteFritzBoxWeb(Mobistel-T5) match found... status=1
2015.03.06 11:48:33 3: FS20 set Schalt_Zirkul on
2015.03.06 11:50:31 4: RemoteFritzBoxWeb(Galaxy-S4) FB-number/model set to 0 / FB
2015.03.06 11:50:31 5: Login to fb with 192.168.2.1,,Passwort 1
2015.03.06 11:50:31 4: RemoteFritzBoxWeb access with new login ok  ec7cf205baff640c.1425639031
2015.03.06 11:50:31 4: RemoteFritzBoxWeb(Galaxy-S4) Login SID=ec7cf205baff640c
2015.03.06 11:50:31 4: RemoteFritzBoxWeb(Galaxy-S4) was waiting 0 / 0 seconds for previous scan to complete.
2015.03.06 11:50:31 4: RemoteFritzBoxWeb(Galaxy-S4) HTTP request=http://192.168.2.1/wlan/wlan_settings.lua?sid=ec7cf205baff640c
2015.03.06 11:50:33 4: RemoteFritzBoxWeb(Mobistel-T5) FB-number/model set to 0 / FB
2015.03.06 11:50:33 5: Login to fb with 192.168.2.1,,Passwort 1
2015.03.06 11:50:34 4: RemoteFritzBoxWeb access with new login ok  f097745ef8f19d3d.1425639033
2015.03.06 11:50:34 4: RemoteFritzBoxWeb(Mobistel-T5) Login SID=f097745ef8f19d3d
2015.03.06 11:50:34 4: RemoteFritzBoxWeb(Mobistel-T5) was waiting 0 / 0 seconds for previous scan to complete.
2015.03.06 11:50:34 4: RemoteFritzBoxWeb(Mobistel-T5) HTTP request=http://192.168.2.1/wlan/wlan_settings.lua?sid=f097745ef8f19d3d
2015.03.06 11:50:34 4: RemoteFritzBoxWeb(Galaxy-S4) match found... status=0
2015.03.06 11:50:34 3: FS20 set Schalt_Zirkul on
2015.03.06 11:50:37 4: RemoteFritzBoxWeb(Mobistel-T5) match found... status=1
2015.03.06 11:50:37 3: FS20 set Schalt_Zirkul on


Was mache ich falsch??

Danke und viele Grüße

Volker
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 06 März 2015, 12:19:23
Moin Volker!

Zitat von: VolkerL am 06 März 2015, 11:57:29
Hallo,

ich habe Probleme mit der Erkennung...



$credentials{RemoteFritzBox}{username} = '';
$credentials{RemoteFritzBox}{password} = 'Passwort 1';

$credentials{RemoteFritzBox1}{username} = 'Username2; # optional, else 1st entry will be used
$credentials{RemoteFritzBox1}{password} = 'passwort2; # optional, else 1st entry will be used




Was mache ich falsch??

Danke und viele Grüße

Volker

Ich hab deinen Beitrag mal etwas übersichtlich zusammengekürzt.

Folgendes Problem ist mir aufgefallen:
In deiner credentials.cfg fehlen zwei hochkommata. Damit hat das Modul natürlich ein Problem der undefinierten Zugangsdaten.
Theoretisch sollte im Log also eine Meldung auftauchen, dass der Login fehlgeschlagen ist.... 

Der fhem.cfg hab ich so jetzt keine Fehler entlocken können. Ich suche in beiden Fällen nach MAC-Adressen, was für manche Boxen einfacher ist, da sie zugewiesene Namen gern vergessen.

Ein Dummy-Device mit dem Namen RemoteFritzBoxWeb und dem attr verbose 5 hilft durch zusätzliche Logmeldungen die weitere Fehlersuche zu vereinfachen.

Grüße

anfichtn
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 07 März 2015, 10:04:31
So, Wochenende.

Zitat von: erwin am 05 März 2015, 15:43:39
Ich hab versucht, die Dinge auseinanderzusortieren, nachdem 2mal die gleiche MAC....
Grundsätzliche Frage: Gehts mit dem Repeater überhaupt nie?

Ja, jetzt geht es leider überhaupt nie mehr. Ich hatte mal den html-Code von Repeater und FB nebeneinander gelegt, aber konnte keine Unterschiede finden.

Ich schicke Dir die Seite des Repeaters mal als Attachment per PM.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: VolkerL am 07 März 2015, 11:00:56
Hallo Erwin,

Vielen Dank für die Rückmeldung.

Die Hochkommen sind in Wirklichkeit da,  die habe ich beim ändern von User und Passwort wohl überschrieben.

Mit der MAC Adresse wird geändert.
Wo ist eigentlich das richtige Verzeichnis für die credentials.cfg?  Im Wiki steht in dem Verzeichnis in dem die fhem.pl steht, das wäre in opt/fhem.  Dann sehe ich aber die Datei nicht unter "Edit files".

Danke

Volker
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 07 März 2015, 12:13:33
Moin!

/opt/fhem ist richtig. Dass du sie dann nicht im Editor siehst, ist Absicht vom Entwickler.

Grüße

anfichtn
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 12 März 2015, 18:04:10
Hallo,

mal eine grundlegende Frage: ich habe eine zweite Box, eine 7240 mit OS6.05, die als DECT-Repeater und zweite WLan-Box dient (quasi als Repeater, da die Daten die gleichen sind wie bei der anderen Box, Anbindung an die MasterBox via LAN).

Kann ich diese Box dann auch wie einen Repeater als zweite Box abfragen (Definition dann vermutlich auch 'FB')? Oder müßte bei einer solchen Konfiguration jede Box seperat abgefragt werden? Grundsätzlich erscheinen die Smartphones ja auch auf der ersten Box, wenn sie bei der zweiten Box eingebucht sind, jedoch 'nur' als Netzwerkgerät, nicht als WLan-Gerät. Auf der Zweiten Box erscheinen sie leider nur mit ihrer MAC, aber das ist ja kein größeres Problem, da ich ja auch die MAC zur Abfrage eintragen kann.

Dummerweise erscheinen meine Smartphones mit Status 0/1 genau einmal, nämlich beim Start von fhem - im Moment noch nicht einmal das ...

Die Definitionen (ausgelagert in anwesenheit.cfg und per include in der fhem.cfg geladen):
define RemoteFritzBoxWeb dummy
attr RemoteFritzBoxWeb event-on-update-reading none
attr RemoteFritzBoxWeb room Anwesenheit
attr RemoteFritzBoxWeb verbose 5


# Devices definieren
define AN_Samsung_GS5_Christoph PRESENCE function {RemoteFritzBoxWeb("AA:BB:CC:DD:EE:FF")} 120 120
# attr AN_Samsung_GS5_Christoph devStateIcon .*:HOME_Status.1 .*:HOME_Status.0
attr AN_Samsung_GS5_Christoph event-on-change-reading state
attr AN_Samsung_GS5_Christoph room Anwesenheit

# Watchdog
define watchdog_Anwesenheit watchdog AN_Samsung_GS5_Christoph:absent 00:15 AN_Samsung_GS5_Christoph:present set wz_PhonoschrankLicht off
attr watchdog_Anwesenheit regexp1WontReactivate 1
attr watchdog_Anwesenheit room Anwesenheit


Meine credentials.cfg:
# this is credentials.cfg file
# where i keep my secure stuff for fhem ;-))
#
# PRESENCE credentials (only required for function RemoteFritzBoxWeb)
$credentials{RemoteFritzBox}{ipadress} = '192.168.x.x'; # FB LAN Adress
$credentials{RemoteFritzBox}{username} = 'Username';
$credentials{RemoteFritzBox}{password} = 'Passwort';
$credentials{RemoteFritzBox}{model}    = 'FB';                  # optional FB-model: FB (for 7270,7390,7490), 1750E
# only required for a 2nd FB or repeater to be monitored by RemoteFritzBoxWeb - see below
$credentials{RemoteFritzBox1}{ipadress} = '192.168.x.xx'; # 2nd FB LAN Adress
$credentials{RemoteFritzBox1}{username} = 'Username'; # optional, else 1st entry will be used
$credentials{RemoteFritzBox1}{password} = 'Passwort'; # optional, else 1st entry will be used
$credentials{RemoteFritzBox1}{model}    = 'FB';              # optional FB-model: FB (for 7270,7390,7490), 1750E


Log-Auszug bei Start:
2015.03.12 17:12:09 5: Login to fb with 192.168.x.x,Username,Passwort
2015.03.12 17:12:09 4: RemoteFritzBoxWeb(Samsung-GS4M-Julia) FB-number/model set to 0 / FB
2015.03.12 17:12:09 5: Login to fb with 192.168.x.x,Username,Passwort
2015.03.12 17:12:09 4: RemoteFritzBoxWeb(Samsung-GS3M-Meike) FB-number/model set to 0 / FB
2015.03.12 17:12:09 5: Login to fb with 192.168.x.x,Username,Passwort
2015.03.12 17:12:10 4: RemoteFritzBoxWeb access with new login ok  xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2015.03.12 17:12:10 4: RemoteFritzBoxWeb(84:38:38:F1:67:EC) Login SID=xxxxxxxxxxxxxxxxx
2015.03.12 17:12:10 4: RemoteFritzBoxWeb(84:38:38:F1:67:EC) was waiting 0 / 0 seconds for previous scan to complete.
2015.03.12 17:12:10 4: RemoteFritzBoxWeb(84:38:38:F1:67:EC) HTTP request=http://192.168.x.x/wlan/wlan_settings.lua?sid=xxxxxxxxxxxxxxxx
2015.03.12 17:12:12 4: RemoteFritzBoxWeb access with new login ok  xxxxxxxxxxxxxxxxxxxxxxxxxxx
2015.03.12 17:12:12 4: RemoteFritzBoxWeb(Samsung-GS4M-Julia) Login SID=xxxxxxxxxxxxxxxx
2015.03.12 17:12:12 4: RemoteFritzBoxWeb access with new login ok  xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2015.03.12 17:12:12 4: RemoteFritzBoxWeb(Samsung-GS3M-Meike) Login SID=xxxxxxxxxxxxxxxxxx
2015.03.12 17:12:18 4: RemoteFritzBoxWeb(Samsung-GS3M-Meike) was waiting 0 / 6 seconds for previous scan to complete.
2015.03.12 17:12:18 4: RemoteFritzBoxWeb(Samsung-GS3M-Meike) HTTP request=http://192.168.1.1/wlan/wlan_settings.lua?sid=xxxxxxxxxxxxxxxxx


Gruß
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 12 März 2015, 18:19:04
Moin!

Weil ich es gerade nicht sehe... Auf welcher hw läuft fhem?

Mir scheint, auch du hast ein Problem mit dem BlockingCall...

Grüße

anfichtn
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 12 März 2015, 19:11:26
Sorry, fhem läuft auf einem Raspi B2 (umgezogen von einem Raspi B+ durch Karte umstecken ;-)) mit aktuell gehaltenem Raspian; fhem wird auch stdg. aktualisiert

Gesendet von meinem SM-G900F mit Tapatalk

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 12 März 2015, 20:09:07
So, jetzt wieder am "großen" Rechner  ;)

Ja, könnte sein mit BlockingFn... dies sind ein paar Zeilen aus dem Log nach einem Neustart
2015.03.12 20:01:08 4: RemoteFritzBoxWeb(Samsung-GS3M-Meike) match found... status=1
2015.03.12 20:01:08 4: RemoteFritzBoxWeb(Samsung-GS4M-Julia) HTTP request=http://192.168.x.x/wlan/wlan_settings.lua?sid=xxxxxxxxxxxxxxxx
2015.03.12 20:01:08 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at FHEM/Blocking.pm line 121.
2015.03.12 20:01:08 1: CallBlockingFn: Can't connect to localhost:: IO::Socket::INET: Bad hostname 'localhost:'
2015.03.12 20:01:12 4: RemoteFritzBoxWeb(Samsung-GS4M-Julia) match found... status=0
2015.03.12 20:01:12 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at FHEM/Blocking.pm line 121.
2015.03.12 20:01:12 1: CallBlockingFn: Can't connect to localhost:: IO::Socket::INET: Bad hostname 'localhost:'


Das gefundene SmartPhone 'Meike' oder 'Julia'habe ich von der Definition her nicht oben zitiert ... sind aber im Prinzip genauso definiert, nur derzeit mit Name statt MAC
Meine fhem-Hardware steht im übrigen auch in der Signatur ;)

Wäre es evtl. nicht sinnvoller, eine Abfrage nach den Devices auf der Seite "http://fritz.box/net/network_user_devices.lua" vorzunehmen statt auf der wlan-Seite? Zumindest in einem Szenario wie bei mir stehen da auch Devices, die auf der Zweitbox sich angemeldet haben mit ihrer MAC, zum Teil sogar mit Namen (aber als LAN-Gerät), die dann aber nicht unter WLan zu finden sind ...
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 12 März 2015, 22:00:16
Moin!

Frage 1: was steht in /etc/hosts ?

Zur Nichtverfügbarkeit des BlockingCall...  Ich habe das gleiche Problem, und einen funktionierenden Workaround. Allerdings unter Verzicht auf das Presence-Modul.

Meine Anwesenden Handys (Android) frage ich auch per RemotefritzboxWeb auf 2 Fritten ab, und setze einen Dummy auf 3 mögliche Stati (active, present, absent).  Für mich ausreichend, und wenn der raspi sonst nicht ausgereizt wird auch vom zeitkritischen Aspekt her durchaus machbar.

Momentan experimentiere ich mit global nonblocking wie es auch unter Windows zum Einsatz kommt, aber ich sehe auch dabei nur eine einmalige Ausführung der presence-funktionen.

Wenn beide Fritten abgefragt werden, ist es doch imho egal wo die Devices auftauchen, Hauptsache sie werden zuverlässig als an- bzw abwesend erkannt.

Grüße

anfichtn

Ps: Tapatalk zeigt mir keine Signatur :-)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 13 März 2015, 13:23:59
Hi caldir65,

ZitatWäre es evtl. nicht sinnvoller, eine Abfrage nach den Devices auf der Seite "http://fritz.box/net/network_user_devices.lua" vorzunehmen statt auf der wlan-Seite?

wäre es, speziell nach deiner Aussage, dass die Devices, die am Repeater assoziiert sind, auf der primären FB unter LAN devices aufscheinen....
Ich kann das selbst nicht testen, aber wenn du bereit bist, als beta tester zu helfen, dann schick ich dir eine geänderte 99_FritzBox.pm.

zu blocking:  Kommt das nur beim start von fhem, oder jedesmal, wenn RemoteFritzBoxWeb aufgerufen wird?
Anders herum gefragt: findest du unter RemoteFritzBoxWeb ein reading, dass lastOkSid0 bzw. lastOkSid1 heisst?

noch was zu blocking: was ergibt (auf der FHEM cmd-line eingetippt):
list TYPE=telnet


l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 14 März 2015, 14:37:56
Zitat von: anfichtn am 12 März 2015, 22:00:16
Frage 1: was steht in /etc/hosts ?

pi@fhem ~ $ cat /etc/hosts
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
fe00::0         ip6-localnet
ff00::0         ip6-mcastprefix
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters



Zitat von: anfichtn am 12 März 2015, 22:00:16
Zur Nichtverfügbarkeit des BlockingCall...  Ich habe das gleiche Problem, und einen funktionierenden Workaround. Allerdings unter Verzicht auf das Presence-Modul.

Meine Anwesenden Handys (Android) frage ich auch per RemotefritzboxWeb auf 2 Fritten ab, und setze einen Dummy auf 3 mögliche Stati (active, present, absent).  Für mich ausreichend, und wenn der raspi sonst nicht ausgereizt wird auch vom zeitkritischen Aspekt her durchaus machbar.

Das würde prinzipiell auch genügen. Was die Auslastung betrifft, könnte ich es ggf. auch auf einen zweiten Raspi auslagern, der im Moment nichts anderes tut als meine Junckers-Heizung abzuhorchen  ;) (aber das ist noch eine andere Baustelle  ;))


Zitat von: anfichtn am 12 März 2015, 22:00:16
Momentan experimentiere ich mit global nonblocking wie es auch unter Windows zum Einsatz kommt, aber ich sehe auch dabei nur eine einmalige Ausführung der presence-funktionen.

Ich habe kein "global nonblocking" gesetzt, und trotzdem bekomme ich nur kurz nach dem Start (oder nach erneutem Aufruf nach fhem.cfg-Änderung via Weboberfläche) ein Ergebnis


Zitat von: anfichtn am 12 März 2015, 22:00:16
Wenn beide Fritten abgefragt werden, ist es doch imho egal wo die Devices auftauchen, Hauptsache sie werden zuverlässig als an- bzw abwesend erkannt.

Stimmt, in dem Moment kann man ja, z.B. wie bei Dir mittels Dummy, die endgültige Auswertung und die gewünschten Reaktionen darauf durchführen - ob es dabei das "reale" oder ein "Dummy"-Device ist, spielt dann ja keine Rolle


Zitat von: anfichtn am 12 März 2015, 22:00:16
Ps: Tapatalk zeigt mir keine Signatur :-)

Stimmt, jetzt, wo Du es sagst, ist es mir auch aufgefallen ...
Gruß
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 15 März 2015, 11:12:47
Hallo Erwin,

Zitat von: erwin am 13 März 2015, 13:23:59
wäre es, speziell nach deiner Aussage, dass die Devices, die am Repeater assoziiert sind, auf der primären FB unter LAN devices aufscheinen....
Ich kann das selbst nicht testen, aber wenn du bereit bist, als beta tester zu helfen, dann schick ich dir eine geänderte 99_FritzBox.pm.

Kann ich gerne testen, aber ich denke, erst sollte die Anwesenheitserkennung zuverlässig bei mir funktionieren ;) - und das geht ja auch alleine mit der MasterBox - zum Testen modifizieren kann ich dann immer noch ;)

Zitat von: erwin am 13 März 2015, 13:23:59
zu blocking:  Kommt das nur beim start von fhem, oder jedesmal, wenn RemoteFritzBoxWeb aufgerufen wird?
Anders herum gefragt: findest du unter RemoteFritzBoxWeb ein reading, dass lastOkSid0 bzw. lastOkSid1 heisst?
Es kommt nur nach dem STart von fhem - aber auch RemoteFritzBoxWeb wird offenbar nur nach dem Start aufgerufen.
Readings habe ich überhaupt keine ...
(http://forum.fhem.de/index.php?action=dlattach;topic=17957.0;attach=29289)

Zitat von: erwin am 13 März 2015, 13:23:59
noch was zu blocking: was ergibt (auf der FHEM cmd-line eingetippt):
list TYPE=telnet
dummyTelnet
localTelnet


Gruß,
Christoph
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 15 März 2015, 11:51:58
Moin Christoph!

Bei mir erledigt das folgendes at:

+*00:01:00 {
fhem "setstate Handy active";
my $state_handy = RemoteFritzBoxWeb("88:30:8A:7B:53:36");
my $state2_handy = RemoteFritzBoxWeb("88:30:8A:7B:53:36", 1);
if ($state_handy eq "0" && $state2_handy eq "0") { fhem "setstate Handy absent" };
if ($state_handy eq "1" || $state2_handy eq "1") { fhem "setstate Handy present"};
}


Rückgabewert von RemoteFritzBoxWeb ist entweder 0 oder 1 für nicht anwesend oder anwesend. Wenn beide Werte 0, dann abwesend, wenn mindestens ein Wert 1, dann anwesend.
Fehler werden nicht abgefangen ( Rückgaben in Textform...)

Sicherlich auch irgendwo ausbaufähig, aber für meine Ansprüche ausreichend.

Grüße

anfichtn
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 15 März 2015, 12:05:05
@Erwin:

Kleiner Patch für Zeile 216, Logeintrag:

"Login to Fritzbox failed" ändern in "Login to Fritzbox ($ipstring) failed"

Danke und Gruß

anfichtn
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 15 März 2015, 12:06:11
Möglicherweise verstehe ich zu wenig von dem, was geschrieben wird, oder ich denke zu kompliziert. Aber die Kombination (1) mehrerer Presence-Prüfungen zur Ermittlung des Status pro Handy (Fritz, Ping, Geofencing) und dann (2) der konsolidierten Ergebnisse pro Handy zu einem gesamten Haus-bewohnt-ja-nein erledigen hier Structures.

1. Telefon:

Internals:
   ATTR       struc_iPhone5s
   CHANGED
   DEF        struc_iPhone5s anwesend.Repeater.iPhone5S anwesend.geofency.iPhone5S anwesend.iPhone5S anwesend.ping.verzoegert.iPhone5S
   NAME       da.iPhone5S
   NR         52
   NTFY_ORDER 50-da.iPhone5S
   STATE      present
   TYPE       structure
   Content:
     anwesend.Repeater.iPhone5S present
     anwesend.geofency.iPhone5S Zu_Hause
     anwesend.iPhone5S absent
     anwesend.ping.verzoegert.iPhone5S absent
   Readings:
     2015-03-15 11:44:07   LastDevice      anwesend.ping.verzoegert.iPhone5S
     2015-03-15 11:44:07   LastDevice_Abs  anwesend.ping.verzoegert.iPhone5S
     2015-03-15 11:44:07   state           present
Attributes:
   clientstate_behavior relativeKnown
   clientstate_priority present|Zu_Hause absent|underway|error
   event-on-change-reading state
   room       Cfg_Presence
   struc_allePhonesda da.irgendwer
   userattr   struc_allePhonesda struc_allePhonesda_map structexclude


Entsprechend 2. Telefon:
Internals:
   ATTR       struc_iPhone6
   CHANGED
   DEF        struc_iPhone6 anwesend.Repeater.iPhone6 anwesend.geofency.iPhone6 anwesend.iPhone6 anwesend.ping.verzoegert.iPhone6
   NAME       da.iPhone6
   NR         54
   NTFY_ORDER 50-da.iPhone6
   STATE      present
   TYPE       structure
   Content:
     anwesend.Repeater.iPhone6 absent
     anwesend.geofency.iPhone6 Zu_Hause
     anwesend.iPhone6 present
     anwesend.ping.verzoegert.iPhone6 absent
   Readings:
     2015-03-15 11:49:07   LastDevice      anwesend.Repeater.iPhone6
     2015-03-15 11:49:07   LastDevice_Abs  anwesend.Repeater.iPhone6
     2015-03-15 11:49:07   state           present
Attributes:
   clientstate_behavior relativeKnown
   clientstate_priority present|Zu_Hause absent|underway|error
   event-on-change-reading state
   room       Cfg_Presence
   struc_allePhonesda da.irgendwer
   userattr   struc_allePhonesda struc_allePhonesda_map structexclude


Und dann beides zu einem bewohnt-Status konsolidieren:

Internals:
   ATTR       struc_allePhonesda
   CHANGED
   DEF        struc_allePhonesda da.iPhone6 da.iPhone5S
   NAME       da.irgendwer
   NR         57
   NTFY_ORDER 50-da.irgendwer
   STATE      present
   TYPE       structure
   Content:
     da.iPhone5S present
     da.iPhone6 present
   Readings:
     2015-03-15 10:24:24   LastDevice      da.iPhone5S
     2015-03-15 10:24:24   LastDevice_Abs  anwesend.geofency.iPhone5S
     2015-03-15 10:24:24   state           present
Attributes:
   clientstate_behavior relativeKnown
   clientstate_priority present absent
   event-on-change-reading state
   room       Cfg_Presence


Ohne Code und Dummies. Nur die structures definieren und dann überall, wo erforderlich oder sinnvoll, den Status der jeweiligen Structure abfragen.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 15 März 2015, 12:11:02
Moin!
Zitat von: Motivierte linke Hände am 15 März 2015, 12:06:11
Möglicherweise verstehe ich zu wenig von dem, was geschrieben wird, oder ich denke zu kompliziert. Aber die Kombination (1) mehrerer Presence-Prüfungen zur Ermittlung des Status pro Handy (Fritz, Ping, Geofencing) und dann (2) der konsolidierten Ergebnisse pro Handy zu einem gesamten Haus-bewohnt-ja-nein erledigen hier Structures.

1. Telefon:

Internals:
   ATTR       struc_iPhone5s
   CHANGED
   DEF        struc_iPhone5s anwesend.Repeater.iPhone5S anwesend.geofency.iPhone5S anwesend.iPhone5S anwesend.ping.verzoegert.iPhone5S
   NAME       da.iPhone5S
   NR         52
   NTFY_ORDER 50-da.iPhone5S
   STATE      present
   TYPE       structure
   Content:
     anwesend.Repeater.iPhone5S present
     anwesend.geofency.iPhone5S Zu_Hause
     anwesend.iPhone5S absent
     anwesend.ping.verzoegert.iPhone5S absent
   Readings:
     2015-03-15 11:44:07   LastDevice      anwesend.ping.verzoegert.iPhone5S
     2015-03-15 11:44:07   LastDevice_Abs  anwesend.ping.verzoegert.iPhone5S
     2015-03-15 11:44:07   state           present
Attributes:
   clientstate_behavior relativeKnown
   clientstate_priority present|Zu_Hause absent|underway|error
   event-on-change-reading state
   room       Cfg_Presence
   struc_allePhonesda da.irgendwer
   userattr   struc_allePhonesda struc_allePhonesda_map structexclude


Entsprechend 2. Telefon:
Internals:
   ATTR       struc_iPhone6
   CHANGED
   DEF        struc_iPhone6 anwesend.Repeater.iPhone6 anwesend.geofency.iPhone6 anwesend.iPhone6 anwesend.ping.verzoegert.iPhone6
   NAME       da.iPhone6
   NR         54
   NTFY_ORDER 50-da.iPhone6
   STATE      present
   TYPE       structure
   Content:
     anwesend.Repeater.iPhone6 absent
     anwesend.geofency.iPhone6 Zu_Hause
     anwesend.iPhone6 present
     anwesend.ping.verzoegert.iPhone6 absent
   Readings:
     2015-03-15 11:49:07   LastDevice      anwesend.Repeater.iPhone6
     2015-03-15 11:49:07   LastDevice_Abs  anwesend.Repeater.iPhone6
     2015-03-15 11:49:07   state           present
Attributes:
   clientstate_behavior relativeKnown
   clientstate_priority present|Zu_Hause absent|underway|error
   event-on-change-reading state
   room       Cfg_Presence
   struc_allePhonesda da.irgendwer
   userattr   struc_allePhonesda struc_allePhonesda_map structexclude


Und dann beides zu einem bewohnt-Status konsolidieren:

Internals:
   ATTR       struc_allePhonesda
   CHANGED
   DEF        struc_allePhonesda da.iPhone6 da.iPhone5S
   NAME       da.irgendwer
   NR         57
   NTFY_ORDER 50-da.irgendwer
   STATE      present
   TYPE       structure
   Content:
     da.iPhone5S present
     da.iPhone6 present
   Readings:
     2015-03-15 10:24:24   LastDevice      da.iPhone5S
     2015-03-15 10:24:24   LastDevice_Abs  anwesend.geofency.iPhone5S
     2015-03-15 10:24:24   state           present
Attributes:
   clientstate_behavior relativeKnown
   clientstate_priority present absent
   event-on-change-reading state
   room       Cfg_Presence


Ohne Code und Dummies. Nur die structures definieren und dann überall, wo erforderlich oder sinnvoll, den Status der jeweiligen Structure abfragen.
Du hast nicht ganz unrecht.
Das derzeit behandelte Problem setzt aber etwas tiefer an. 
PRESENCE funktioniert nicht.

Damit wäre in deiner structure eben NIE jemand zuhause :-)

Grüße

anfichtn
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: joachimD am 15 März 2015, 14:30:52
Zitat von: erwin am 13 März 2015, 13:23:59
wäre es, speziell nach deiner Aussage, dass die Devices, die am Repeater assoziiert sind, auf der primären FB unter LAN devices aufscheinen....
Ich kann das selbst nicht testen, aber wenn du bereit bist, als beta tester zu helfen, dann schick ich dir eine geänderte 99_FritzBox.pm.

Ich würde das auch gerne testen, Erwin, denn ich nutze auch einen zweiten AP (nicht Repeater), der per LAN angebunden ist!

Gruß
Joachim
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 15 März 2015, 20:16:54
Zitat von: anfichtn am 15 März 2015, 12:11:02
Damit wäre in deiner structure eben NIE jemand zuhause :-)

Das spart Heizkosten!  8)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 16 März 2015, 08:46:33
@Christoph,

du hast ein Problem mit der telnet instanz, vermute ich...
ZitatdummyTelnet
localTelnet
ohne jetzt die details dieser beiden definitionen zu kennen, versuch mal bitte folgendes:
define telnetPort 7072 global
Dann sollte RemoteFritzBoxWeb auch die readings lastOkSidx haben.
Alternativ: Versuch doch mal eine PRESENCE definition mit lanping. Funktioniert das? - Wenn nein, dann hast du ein grundsätzliches presence problem.
l.g. erwin
@anfichtn: Log entry (Zeile216) ist in der nächsten version drin.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 16 März 2015, 09:59:27
Hallo Erwin,

ich habe jetzt einmal folgendes gemacht:

Telnet global definiert, Neustart -> keine Änderung
TelnetLocal einen dritten port spendiert (global 7072, dummy 7075, local 7075 -> 7076) -> keine Änderung
Presence-lanping definiert -> keine Änderung

SmartVisu-Definition aus der fhem.cfg heraus kommentiert -> Blocking-Error ist weg, PRESENCE LanPing bringt Ergebnisse:
2015.03.16 09:41:14 5: PRESENCE (HandyChr) - ping command returned with output:
PING 192.168.1.35 (192.168.1.35) 56(84) bytes of data.
64 bytes from 192.168.1.35: icmp_req=1 ttl=64 time=81.6 ms
64 bytes from 192.168.1.35: icmp_req=2 ttl=64 time=103 ms
64 bytes from 192.168.1.35: icmp_req=3 ttl=64 time=115 ms
64 bytes from 192.168.1.35: icmp_req=4 ttl=64 time=151 ms

--- 192.168.1.35 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 81.621/113.222/151.822/25.436 ms


Leider bekomme ich nichts mehr von RemoteFritzBoxWeb im Log?!

Gruß, Christoph

PS: bekomme wieder RemoteFritzBoxWeb-Einträge - da hatte sich ein Leerzeichen aus der definition geschlichen ;)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 16 März 2015, 10:18:37
Hi Christoph & Joachim,

ihr habt eine pn.
Das mit smartvisu ist ja sehr interessant ? Hat noch wer smartvisu definiert und PRESENCE Probleme???
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 16 März 2015, 11:13:34
Ich habe kein smartvisu und trotzdem presence Probleme.... :-(
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: alex885 am 16 März 2015, 14:34:25
Hallo,

nach meinem FHEM Umzug vom Raspberry auf einen Hackintosh/NUC hab ich ein Problem:
sowie ich das verstehe kennt OSX den pidof Befehl nicht und streikt an dieser stelle:

Achtung logfile in Reverse order


2015.03.16 13:47:41 2: PRESENCE (presence_Verenas_iPad) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBox cannot connect to Server: Connection refused
2015.03.16 13:47:41 2: PRESENCE (presence_Verenas_iPhone4) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBox cannot connect to Server: Connection refused
2015.03.16 13:47:41 1: RemoteFritzBox cannot connect to Server Connection refused
2015.03.16 13:47:41 2: PRESENCE (presence_Alexanders_iPhone4) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBox cannot connect to Server: Connection refused
2015.03.16 13:47:41 1: RemoteFritzBox cannot connect to Server Connection refused
2015.03.16 13:47:41 1: RemoteFritzBox Server could not be started
2015.03.16 13:47:41 2: PRESENCE (presence_Alexanders_iPhone6) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBox cannot connect to Server: Connection refused
2015.03.16 13:47:41 1: PERL WARNING: Can't exec "pidof": No such file or directory at ./FHEM/99_RFritzBox.pm line 117.
2015.03.16 13:47:41 1: RemoteFritzBox Server could not be started
2015.03.16 13:47:41 1: PERL WARNING: Can't exec "pidof": No such file or directory at ./FHEM/99_RFritzBox.pm line 117.
2015.03.16 13:47:41 1: RemoteFritzBox cannot connect to Server Connection refused
2015.03.16 13:47:41 1: RemoteFritzBox cannot connect to Server Connection refused
2015.03.16 13:47:41 1: RemoteFritzBox Server could not be started
2015.03.16 13:47:41 1: PERL WARNING: Can't exec "pidof": No such file or directory at ./FHEM/99_RFritzBox.pm line 117.
2015.03.16 13:47:41 1: RemoteFritzBox Server could not be started
2015.03.16 13:47:41 1: PERL WARNING: Can't exec "pidof": No such file or directory at ./FHEM/99_RFritzBox.pm line 117.


als relativer Anfänger mit vielen Baustellen überall komm ich da im Moment nicht weiter...
pidof nachinstallieren? nachbauen? durch was anderes ersetzen?

eine allgemeingültig Lösung wär sicherlich die Beste,  Hacks/workarounds why not..

Merci, Alex
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 16 März 2015, 15:51:12
Hi alex885,

for a hack, see here:
http://hints.macworld.com/article.php?story=20030618114543169 (http://hints.macworld.com/article.php?story=20030618114543169)
Bitte um feedback, ok das funktioniert, sonst muss ich mir was überlegen. Ich finde es zwar momentan nicht, aber ich bin sicher, dass pidof auch in anderen fhem-modulen verwendet wird....
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: alex885 am 16 März 2015, 18:23:32
Hi erwin!

merci für Dein schnelles reply.
ich hab (glaub ich) sowas ähnliches installiert Homebrew und pidof

http://brew.sh (http://brew.sh)

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew install pidof



im terminal klappts im Modul RFritzbox wurde -x als falscher Parameter moniert, hab ich rausgemacht, klappt aber trotzdem nicht

Meine Vermutung als Unix und auch Perl Neuling: das klappt im Terminal aber nicht zwingend in einem Perl Modul.

in Deinem Link von oben gibts ziemlich weit unten eine Perl Lösung:

#!/usr/bin/perl
$search=$ARGV[0];
@procs = `ps -cxa`;
for $proc (@procs ) {
if( $proc =~ /\s+(\d+)\s+\S+\s+\S+\s+\S+\s+(\S+)/ ) {
$pid = $1;
$name = $2;
if( $name =~ /^$search$/ ) {
print "$pid ";
}
}
}

print "\n";


Das alleine vermute ich wird nicht klappen, da ich ja kein print sondern einen rückgabewert brauche, auch weiss ich nicht genau wie ich das aufrufen soll,
vermute aber dies könnte man irgendwie als eine weitere Funktion ins RFritzBox packen.
Pack ich aber ohne Hilfestellung nicht.

alternative
pidof kommt nur 2 x vor:

my ($serverstatus) = qx(pidof -x $serverbin);

doch irgendwie durch das:

ps axc|awk "{if (\$5==\"$1\") print \$1}";

ersetzen?

Falls Du, Erwin oder jemand anders weiterhelfen kann: MERCI im voraus
schönen Abend Euch.
Alex
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 17 März 2015, 11:02:02
Hi Alex,

ersetze bitte die folgenden zeilen:


   my $serverstatus = qx(ps -ef | grep -v grep | grep -c RFritzBoxScan);
   chomp $serverstatus;
   if ($serverstatus > 0) {

das ganze kommt 2mal vor!
Falls das funktioniert, werde ich das in die nächste version einbauen.
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Mad22 am 20 März 2015, 19:13:31
Hallo Erwin und die anderen Mitleser ,

Erst mal Danke für dieses super Modul !

Ich habe es auch schon ein paar Tage installiert , verzweifle aber so langsam .

Vielleicht hat ja jemand eine Idee .

Grundsätzlich funktioniert das Modul.

Ich habe zwei Fritzboxen , eine 7490 ( IP: 192.168.0.99 und Firmware 6.24 ) und eine 7390 ( IP: 192.168.0.98 und Firmware 6.23 )
Die Fritzboxen sind einfach per Kabel verbunden und im gleichen Netzwerk . DHCP ist auf der 7390 ausgeschaltet.

Fhem läuft auf einem Raspi2 .

Ich benutze die Variante 2 , also ohne Telnet .

Ich habe beide Fritzboxen in die credentials.cfg eingetragen .

# PRESENCE credentials (only required for function RemoteFritzBoxWeb)
$credentials{RemoteFritzBox}{ipadress} = '192.168.0.99'; # FB LAN Adress
$credentials{RemoteFritzBox}{username} = 'xxxxxx';
$credentials{RemoteFritzBox}{password} = 'xxxx';
$credentials{RemoteFritzBox}{model}    = 'FB';                  # optional FB-model: FB (for 7270,7390,7490), 1750E
# only required for a 2nd FB or repeater to be monitored by RemoteFritzBoxWeb - see below
$credentials{RemoteFritzBox1}{ipadress} = '192.168.0.98'; # 2nd FB LAN Adress
$credentials{RemoteFritzBox1}{username} = 'xxxxxx'; # optional, else 1st entry will be used
$credentials{RemoteFritzBox1}{password} = 'xxxx'; # optional, else 1st entry will be used
$credentials{RemoteFritzBox1}{model}    = 'FB';              # optional FB-model: FB (for 7270,7390,7490), 1750E


und auch in Fhem definiert .

folgende Einträge habe ich in der Fhem Config


define PR_EG_Martin PRESENCE function {RemoteFritzBoxWeb("xx:xx:xx:xx:xx:xx", 1)} 120 120
define PR_Martin PRESENCE function {RemoteFritzBoxWeb("xx:xx:xx:xx:xx:xx")} 120 120
define PR_Kathrin PRESENCE function {RemoteFritzBoxWeb("xx:xx:xx:xx:xx:xx")} 120 120
define PR_EG_Kathrin PRESENCE function {RemoteFritzBoxWeb("xx:xx:xx:xx:xx:xx", 1)} 120 120
define PR_Steffi PRESENCE function{RemoteFritzBoxWeb("xx:xx:xx:xx:xx:xx")} 120 120
define PR_EG_Steffi PRESENCE function {RemoteFritzBoxWeb("xx:xx:xx:xx:xx:xx", 1)} 120 120



Leider bekomme ich bei der FB 7490 nur Error zurück, bei der Fritzbox im EG , der 7390,  funktioniert es.

Liegt es an der Firmware ? Oder kann man hier sonst irgend etwas erkennen ?

Ich hänge noch mal ein Log Auszug mit an .

2015.03.20 17:49:52.198 5: Login to fb with 192.168.0.98,xxxx,xxxxxxxxxx
2015.03.20 17:49:52.216 5: RemoteFritzBoxWeb access FB 1 using sid from cache xxxxxxxxxxxxxxxxx
2015.03.20 17:49:52.216 4: RemoteFritzBoxWeb(F0:F6:1C:2F:19:B6) Login SID=xxxxxxxxxxxxx
2015.03.20 17:49:52.217 4: RemoteFritzBoxWeb(F0:F6:1C:2F:19:B6) was waiting 0 / 0 seconds for previous scan to complete.
2015.03.20 17:49:52.218 4: RemoteFritzBoxWeb(F0:F6:1C:2F:19:B6) HTTP request=http://192.168.0.98/wlan/wlan_settings.lua?sid=xxxxxxxxxxxxxxx
2015.03.20 17:49:54.526 4: RemoteFritzBoxWeb(F0:F6:1C:2F:19:B6) match found... status=1
2015.03.20 17:50:04.651 4: RemoteFritzBoxWeb(F0:F6:1C:2F:19:B6) FB-number/model set to 0 / FB
2015.03.20 17:50:04.652 5: Login to fb with 192.168.0.99,xxxxx,xxxxxxxxxx
2015.03.20 17:50:04.675 5: RemoteFritzBoxWeb access FB 0 using sid from cache xxxxxxxxxxxxxxxxx
2015.03.20 17:50:04.675 4: RemoteFritzBoxWeb(F0:F6:1C:2F:19:B6) Login SID=xxxxxxxxxxxxx
2015.03.20 17:50:04.676 4: RemoteFritzBoxWeb(F0:F6:1C:2F:19:B6) was waiting 0 / 0 seconds for previous scan to complete.
2015.03.20 17:50:04.677 4: RemoteFritzBoxWeb(F0:F6:1C:2F:19:B6) HTTP request=http://192.168.0.99/wlan/wlan_settings.lua?sid=xxxxxxxxxxxxxxx
2015.03.20 17:50:06.253 4: RemoteFritzBoxWeb(F0:F6:1C:2F:19:B6) device not found
2015.03.20 17:50:06.268 2: PRESENCE (PR_Martin) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb device=F0:F6:1C:2F:19:B6 not found
2015.03.20 17:51:40.790 4: RemoteFritzBoxWeb(F0:F6:1C:2F:19:B6) FB-number/model set to 1 / FB



Ach ja , das Handy war mal an der 7490 und mal an der 7390 im WLan angemeldet . Es ist beides mal das selbe Ergebnis .


Vielleicht gibt es ja eine Einfache Lösung :-)

Gruß Martin


Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: anfichtn am 20 März 2015, 19:29:10
Moin!

Wird wohl an der fw liegen, der logeintrag sagt klar dass er das Gerät nicht gefunden hat...  Erwin wird sich sicher auch in Kürze dazu melden...

Grüße

anfichtn
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: alex885 am 20 März 2015, 19:54:54
Hallo erwin!

merci für Deinen tollen Support!

Bin erst jetzt dazu gekommen es zu testen - es funktioniert!

(musste zwar erst noch meine Perl Installationen wieder aufräumen und Net::Telnet nachinstallieren; ist aber ein Mac Problem..
http://www.fhemwiki.de/wiki/FHEM_auf_Mac_OS_X (http://www.fhemwiki.de/wiki/FHEM_auf_Mac_OS_X))

Gruss & Dank, Alex
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Mad22 am 21 März 2015, 12:28:46
Hallo,

Zitat von: anfichtn am 20 März 2015, 19:29:10

Wird wohl an der fw liegen, der logeintrag sagt klar dass er das Gerät nicht gefunden ht...  Erwin wird sich sicher auch in Kürze dazu melden...

Grüße

anfichtn

Na dann lag ich ja nicht so falsch . Mal sehen ob Erwin etwas retten kann :-) Sonst funktioniert das ja auch erst mal , so wie es aussieht brauche ich eh nur eine Fritzbox abfragen, weil , egal in welcher Fritzbox man angemeldt ist, die Abfrage ein present meldet .

Danke,

Gruß Martin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 22 März 2015, 07:40:41
Hi Mad22 & All

Ich möchte anfang nächster Woche eine neue version online stellen. Könntest du dann bitte nochmal testen mit der FW6.24 ??
Falls es mit der neuen Version nicht funktioniert, würde ich dich bitten, mir die html-seite zu mailen. (mit FF: echte Maustaste - aktuelle Frame - Frame speichern unter)...

Die neue Version wird auch die Möglichkeit haben, die "Heimnetz-Netzwerk" Seite der FB abzufragen, damit sollten alle devices im lokalen Netz sichbar sein...

Die grundsätzliche Frage ist aber: warum verwendest du nicht die Telnet Variante, die ist wesentliche perfomanter und nicht von Änderungen der HTML seiten von AVM abhängig.
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 22 März 2015, 08:43:34
Hi All,
neue version 1.9 ist verfügbar, im 1.post diese threads.
im wesentlichen sind alle fixes in diesem thread protokolliert.
bitte um FB.
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Mad22 am 22 März 2015, 09:12:23
Moin Erwin,

Zitat von: erwin am 22 März 2015, 07:40:41
Hi Mad22 & All

Ich möchte anfang nächster Woche eine neue version online stellen. Könntest du dann bitte nochmal testen mit der FW6.24 ??
Falls es mit der neuen Version nicht funktioniert, würde ich dich bitten, mir die html-seite zu mailen. (mit FF: echte Maustaste - aktuelle Frame - Frame speichern unter)...

Ich habe gerade die 1.9 ausprobiert.  Die FB mit 6.24 funktioniert noch nicht . im Anhang die HTML Datei .Es ist allerdings jetzt der Loginscreen , oder soll ich mich anmelden und dann die HTML Seite schicken ?

Zitat

Die grundsätzliche Frage ist aber: warum verwendest du nicht die Telnet Variante, die ist wesentliche perfomanter und nicht von Änderungen der HTML seiten von AVM abhängig.
l.g. erwin

Ich wollte halt an der Fritzbox bzw. den Fritzboxen nichts änderen . Werde ich aber wohl dann doch mal machen, ist ja auch nicht weiter schlimm.
Bleibt das Script Rpresence.sh nach einem Firmwareupdate der Fritzbox erhalten ? Oder muss man dass dann jedes mal neu auf die Box spielen ?

Wobei das auch egal ist, ob man nun jedes mal wenn AVM die HTML Seite ändert den Code veränderen muss oder einmal das Rpresence.sh neu kopieren muss ist dann auch egal .

Danke erst mal für die schnelle Hilfe !

Gruß Martin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 22 März 2015, 09:37:34
Hi Martin,
ZitatEs ist allerdings jetzt der Loginscreen , oder soll ich mich anmelden und dann die HTML Seite schicken ?
Ja, bitte, ganz normal anmelden, und dann den frame speichern...
Zu Rpresence.sh:
blieb bei den bisherigen updates immer erhalten. Man könnte es auch auf einem USB-stick laufen lassen, das hab ich früher (7270) gemacht, die (offiziell) keinen Internen Speicher für den user hatte....
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Mad22 am 22 März 2015, 10:59:51
Hallo Erwin,

im Anhang noch mal die HTML Seite nach dem Login .

ZitatZu Rpresence.sh:
blieb bei den bisherigen updates immer erhalten. Man könnte es auch auf einem USB-stick laufen lassen, das hab ich früher (7270) gemacht, die (offiziell) keinen Internen Speicher für den user hatte....
l.g. erwin

das werde ich noch mal testen . Aktuell kämpfe ich damit vernünftigen FTP Zugriff auf die Box zu bekommen , bisher habe ich den nur auf die NAS Verzeichnisse . Ich möchte aber das root Verzeichniss sehen .
Aber das bekomme ich noch hin  8)

Gruß Martin

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Mad22 am 22 März 2015, 13:00:52
Hallo Erwin,

Zitat von: erwin am 22 März 2015, 09:37:34
Zu Rpresence.sh:
blieb bei den bisherigen updates immer erhalten. Man könnte es auch auf einem USB-stick laufen lassen, das hab ich früher (7270) gemacht, die (offiziell) keinen Internen Speicher für den user hatte....
l.g. erwin

Ich habe gerade mal umgestellt auf die Telnet Variante. Das hat auf Anhieb funktioniert .

Ich habe Telnet nur auf der 7490 Box offen und frage auch nur diese Box ab .
Selbst wenn das Handy per WLAn an der zweiten Box angemeldet ist wird es bei der Abfrage erkannt .

Alles bestens so .  ;)

Ich kann aber gern auch noch mal die HTML Version testen, falls Du etwas geändert hast . Ich werde aber bei der Telnet Version bleiben denke ich.

Danke für Deine Hilfe .

Gruß Martin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 22 März 2015, 17:50:36
Hi, Martin,
danke fürs Feedback.

Die html-Seite ist allerdings die Übersichtsseite, ich brauch die WLAN-Seite, also diese:
http://fritz.box/wlan/wlan_settings.lua (http://fritz.box/wlan/wlan_settings.lua)
zu finden unter: WLAN-Funknetz

ist aber nicht ganz so wichtig, allerdings wird wohl demnächst der nächste Kollege auf diese FW updaten, und ich hab selbst keine 7490 zum testen....

ZitatIch habe Telnet nur auf der 7490 Box offen und frage auch nur diese Box ab .
Ja, das war die Idee, nur eine Box abzufragen, und zwar die, die auch DHCP Server ist. Damit sollten alle devices (LAN/WLAN) abfragbar sein!

Danke erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Mad22 am 22 März 2015, 18:09:05
Hallo Erwin,

So jetzt sollte die richtige Seite mitkommen  ;)

Ich teste das gern noch mal , dann ist es für die 6.24 auch fertig .

Gruß Martin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 23 März 2015, 09:01:38
Hallo Erwin,

also gerade habe ich Dein neues Modul v1.9 eingespielt, und es scheint zu funktionieren mit fb7490 FW6.24. Vorher habe ich eine Zeitlang Dein Beta-Modul getestet.
Bei beiden Modulen erhalte ich die Meldung

2015.03.23 08:55:05 1: RemoteFritzBoxWeb(Samsung-GS5-Christoph) invalid model FBLAN specified, changing to FB
2015.03.23 08:55:05 4: RemoteFritzBoxWeb(Samsung-GS5-Christoph) FB-number/model set to 0 / FB


Jedoch wird in meiner Umgebung (s. weiter oben) anscheinend trotzdem jetzt eine Anwesenheit erkannt:
2015.03.23 08:57:14 4: RemoteFritzBoxWeb(Samsung-GS5-Christoph) match found... status=1
Zu diesem Zeitpunkt war das S5 an der 7240 eingebucht, Abfrage über LAN-Seite an der 7490
Gruß, Christoph
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 23 März 2015, 13:18:17
Hi,

@Martin: danke für deine html seite, das parsing funktioniert bei mir mit der version 1.9. (Mit MAC und mit namen)

***1***MartinHandy***192.168.0.146***F0:F6:1C:2F:19:B6***1000***Res:1
RemoteFritzBoxWeb(F0:F6:1C:2F:19:B6) match found... status=1
***1***MartinHandy***192.168.0.146***F0:F6:1C:2F:19:B6***1000***Res:1
RemoteFritzBoxWeb(MartinHandy) match found... status=1

hast du evtl. kein fhem restart oder reload 99_RFritzBox.pm gemacht?

@Christof,
die Fehlermeldung ist irreführend, du hast ein Problem in der credentials.cfg
$credentials{RemoteFritzBox}{model} = 'FBLAN';

l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Mad22 am 23 März 2015, 14:37:44
Hi Erwin,

Zitat von: erwin am 23 März 2015, 13:18:17
Hi,

@Martin: danke für deine html seite, das parsing funktioniert bei mir mit der version 1.9. (Mit MAC und mit namen)

***1***MartinHandy***192.168.0.146***F0:F6:1C:2F:19:B6***1000***Res:1
RemoteFritzBoxWeb(F0:F6:1C:2F:19:B6) match found... status=1
***1***MartinHandy***192.168.0.146***F0:F6:1C:2F:19:B6***1000***Res:1
RemoteFritzBoxWeb(MartinHandy) match found... status=1

hast du evtl. kein fhem restart oder reload 99_RFritzBox.pm gemacht?

Ja ich hatte einen reload gemacht . Der Fehler ist auch immer noch da .

Es scheint aber nicht an der 7490 zu liegen .

Ich habe , wie schon geschrieben, zwei Fritzboxen im gleichen Netzwerk .
Ich habe in die credentials.cfg die beiden Fritzboxen eingetragen , siehe mein Beitrag #152 .

Ich habe jetzt einfach mal die IP Adressen in der credentials.cfg getauscht . Und siehe da , jetzt wird der error bei der 7390 angezeigt und die 7490 ordentlich ausgelesen .

Warum das so ist weiß ich natürlich nicht , aber ich brauche hier ja gar nicht beide Boxen abfragen. Denn wenn ich die Abfrage in der 7490 machen wird auch ein Handy angezeigt und bemerkt welches an der 7390 angemeldet ist .

Gruß Martin

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 23 März 2015, 15:38:50
Hi Martin - Das klingt nach meinem "Phantom-Problem", dass ich mit dem parallelen Abfragen von Repeater und Fritzbox hatte, und das sich nun schon zweimal auf ganz unerklärliche Weise wieder gegeben hat.

Leider ist beim Repeater-Betrieb lt. AVM die entsprechende Funktion buggy (ohne zugesagten Fix-Termin), so dass aktuell tatsächlich Repeater und Fritzbox abgefragt werden müssen, um alle Geräte zu erreichen.

Wo nun diese Phantom-Probleme herkommen, die nicht am Parsing liegen... Ich weiß es nicht. Aber es scheint Voraussetzung zu sein, dass man mehr als ein Gerät für die RemoteFritzbox Option konfiguriert hat... Ob da irgendwelche Variablen beim zweiten durchlauf nicht mehr richtig initialisiert sind oder Reste der ersten Prüfung die zweite stören...? Ich nehme mal an, der Fehler tritt auch bei Dir beim als zweites eingetragenen Gerät auf?

Ganz am Anfang hatte ich den Repeater mal so abgefragt, dass ich das ganze RemoteFritzbox-Modul kopiert und die subs umbenannt hatte. So hatte ich zwei Installationen davon, die komplett getrennt liefen. Wer dieselben Probleme und ausreichend Zeit hat, könnte das mit der aktuellen Version nochmal versuchen. Vielleicht treten sie dann nicht mehr auf, ...
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 23 März 2015, 16:04:57
Hi Martin,
ich glaube, ich hab eine Spur....brauch aber etwas Zeit das zu verstehen.....

@Motivierte linke Hände: Das AVM Problem (WLAN repeater status replication) sollte mit dem Model='FBLAN' umgangen sein, man muß nur die FB abfragen, die der DHCP Server ist.
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 23 März 2015, 16:17:23
Hi Erwin - Mein(e) DHCP-Server läuft(laufen) nicht auf der FB, sondern, wie mein Nameserver für die Domain hier, auf einem "richtigen" Server im Heimnetz. Damit scheidet das als Lösung aus, oder habe ich das falsch verstanden?

Danke, Christian
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Mad22 am 23 März 2015, 16:22:40
Hallo Erwin,

Zitat von: erwin am 23 März 2015, 16:04:57
Hi Martin,
ich glaube, ich hab eine Spur....brauch aber etwas Zeit das zu verstehen.....

@Motivierte linke Hände: Das AVM Problem (WLAN repeater status replication) sollte mit dem Model='FBLAN' umgangen sein, man muß nur die FB abfragen, die der DHCP Server ist.
l.g. erwin

Ich habe auch nur auf der FB7490 den DHCP Server eingeschaltet . Bei der 7390 ist der ausgeschaltet , sonst hätte ich ja 2 davon im Netz .
Und deshalb genügt es wohl auch wenn ich nur die 7490 abfrage und erreiche damit auch die Handys die an der 7390 angemeldet sind .

Gruß Martin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 23 März 2015, 16:25:29
Hi,
ZitatMein(e) DHCP-Server läuft(laufen) nicht auf der FB
Ahh, das ist dein Problem, weil dann die Geräte in der FB (als LAN device) nur "zufällig" bekannt/present werden, z.b. dann wenn sie über die FB ins Internet gehen....

@Martin: Das ist völlig korrekt so.
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 23 März 2015, 16:37:55
Das gehört hier nicht wirklich hin, darum nur kurz: Eigentlich ist DAS nicht das Problem, denn mit dieser zufälligen Bekanntgabe funktioniert es. Das Problem ist, dass die Fritzboxen/Repeater seit einigen Firmware-Versionen den Status der bekannten Geräte nicht mehr austauschen. Punkt 2 dieser Problemliste von AVM: http://avm.de/nc/service/fritzbox/fritzbox-7490/wissensdatenbank/publication/show/763_Fehlerhafte-oder-unbekannte-Eintraege-in-der-Liste-Geraete-und-Benutzer/ (http://avm.de/nc/service/fritzbox/fritzbox-7490/wissensdatenbank/publication/show/763_Fehlerhafte-oder-unbekannte-Eintraege-in-der-Liste-Geraete-und-Benutzer/)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 23 März 2015, 22:28:13
Zitat von: erwin am 23 März 2015, 13:18:17
@Christof,
die Fehlermeldung ist irreführend, du hast ein Problem in der credentials.cfg
$credentials{RemoteFritzBox}{model} = 'FBLAN';

l.g. erwin

Hallo Erwin,

Hm, kann ich mir irgendwie nicht vorstellen - ich habe letztlich nur Dein Muster angepasst mit meinen Werten. In der letzten Fassung habe ich sogar die (bereits auskommentierten) Werte für eine zweite Box/Repeater weg gelassen
(http://forum.fhem.de/index.php?action=dlattach;topic=17957.0;attach=29814)

Es wird immer noch von FBLAN nach FB geändert, und es wird die wlan-Seite angefordert statt der lan-Seite
(http://forum.fhem.de/index.php?action=dlattach;topic=17957.0;attach=29816)

Gruß, Christoph
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 25 März 2015, 10:46:00
Hi Martin,
ich konnte das "Phantom-Problem" (device not found) nachstellen und ich hoffe auch fixen.
Neue Version im ersten Thread.
Ein paar andere Kleinigkeiten auch noch korrigiert, z.B. Model-erkennung
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Mad22 am 25 März 2015, 12:19:21
Hallo Erwin,

Zitat von: erwin am 25 März 2015, 10:46:00
Hi Martin,
ich konnte das "Phantom-Problem" (device not found) nachstellen und ich hoffe auch fixen.


Ich habe es noch mal getestet . Jetzt sieht es gut aus . SUPER !
Aufgefallen ist mir, das das neue Script bei verbose 5 und RemoteFritzBoxWeb sehr gesprächig  ist ;)

bei RemoteFritzBox, der Telnet Abfrage, ist es ruhig :-)

einen Error gab es noch, das lag aber daran das das Handy meiner Tocher in der einen Fritzbox noch nie angemeldet war und so auch dort nicht erkannt wird.  Die beiden anderen Handys werden nun sauber in beiden Fritzboxen erkannt .

Ich werde trotzdem die Telnet Variante weiter benutzen .

Danke noch mal .

Gruß Martin

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 25 März 2015, 12:51:26
hallo Martin,
danke fürs Feedback, ja ist sehr gesprächig mit verbose 5, verbose 4 sollte jetzt in den meisten fällen ausreichen.
l.g.erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: MartinPetri am 26 März 2015, 12:40:27
Hallo :)

Besteht die Möglichkeit das man das ganze auch mit der fritzbox 6840 hinbekommt ?
Denn leider klappt es da mit dieser Anleitung nicht .....


Mit freundlichen Grüßen Martin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 26 März 2015, 13:21:08
Hi Martin - Gibt es Fehlermeldungen? Was sagt das Log?
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 26 März 2015, 15:54:38
HI MartinPetri,

nachdem in deinem Profil auch eine 7390 steht:
schaut die webseite: Heimnetz-Netzwerk so ähnlich aus wie bei der 7390 ???

Bitte beschreib und doch:
1) was du machen willst (Telnet oder web)
2) was du schon probiert hast, z.b. fhem definitionen, logs, Fehlermeldungen
3) an welchem Punkt du hängst..

Grundsätzlich könnte es funktionieren, ich hab grad nachgeschaut, das ding verwendet FritzOS! 6.21, ich hab allerdings keine hier zum testen.
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: MartinPetri am 26 März 2015, 22:30:04
 Sorry es noch nicht aktualisiert ist jetzt definitiv eine  6840

1. ich würde es gerne über web lösen
2. definiert ist alles wie beschrieben und auch die Dateien entsprechend auf den raspberyy verschoben, leider sind im Dummy unter state nur ???
und bei PRESENCE unter state steht error

dazu der Auszug aus dem log :

2015.03.26 22:22:37 1: PERL WARNING: Bareword found where operator expected at (eval 440) line 1, near "4F"
2015.03.26 22:22:37 3: eval: {RemoteFritzBoxWeb(54:72:4F:07:88:72)}
2015.03.26 22:22:37 1: PERL WARNING:    (Missing operator before F?)
2015.03.26 22:22:37 2: PRESENCE (Martin_Iphone) - error while processing check: unexpected function output (expected 0 or 1): syntax error at (eval 440) line 1, near "54:"


an der stelle weis ich jetzt leider nicht weiter .......
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 26 März 2015, 22:49:29
Hi Martin!

ZitatBareword found where operator expected at (eval 440) line 1, near "4F"

Das klingt danach, als hättest Du die MAC-Adresse ohne Anführungszeichen definiert...?

Mach mal ein list auf Dein Presence-Device. Meins:

Internals:
   CHANGED
   DEF        function {RemoteFritzBoxWeb("28:E1:4C:9C:A7:AD", 1)} 120 120
   MODE       function
   NAME       anwesend.Repeater.iPhone5S
   NR         44
   STATE      present
   TIMEOUT_NORMAL 120
   TIMEOUT_PRESENT 120
   TYPE       PRESENCE
   Readings:
     2015-03-26 22:47:34   presence        present
     2015-03-26 22:47:34   state           present
   Helper:
     call       {RemoteFritzBoxWeb("28:E1:4C:9C:A7:AD", 1)}
Attributes:
   event-on-change-reading state
   room       Cfg_Presence
   struc_allePhonesda da.irgendwer
   struc_iPhone5s da.iPhone5S
   userattr   struc_allePhonesda struc_allePhonesda_map struc_iPhone5s struc_iPhone5s_map structexclude


(Siehe die Anführungszeichen um die MAC-Adresse...)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: MartinPetri am 28 März 2015, 11:52:11
hey super funktioniert jetzt einwandfrei aber mit einer Einschränkung und zwar wenn ich über einen Ap gehe der nicht von AVM ist
bekomme ich im state nur noch error . Obwohl das device ja in der fritzbox angemeldet ist .
Vieleicht habt ihr ja dafür auch noch einen Vorschlag :)



mfg martin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 28 März 2015, 12:31:10
Hi Martin,

versuch's mal mit model FBLAN, wenn's dann nicht geht hilft nur:
config, credentials, log (mit verbose 4) posten...
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 30 März 2015, 11:58:05
Hallo,

bei mir läuft es scheinbar und auch wieder nicht - da bin ich mir nicht so ganz schlüssig:

ich habe das Ganze für RFritzboxWeb definiert

Im Event-Monitor sieht es so aus
2015-03-30 11:46:41 PRESENCE AN_Samsung_GS4M_Julia present
2015-03-30 11:46:41 PRESENCE AN_Samsung_GS4M_Julia presence: present
2015-03-30 11:46:46 PRESENCE AN_Samsung_GS3M_Meike present
2015-03-30 11:46:46 PRESENCE AN_Samsung_GS3M_Meike presence: present


Die korrespondierenden Einträge im Log:
2015.03.30 11:46:37 1: RemoteFritzBoxWeb(Samsung-GS4M-Julia) invalid model FBLAN specified, changing to FB
2015.03.30 11:46:43 1: RemoteFritzBoxWeb(Samsung-GS3M-Meike) invalid model FBLAN specified, changing to FB
2015.03.30 11:48:38 1: RemoteFritzBoxWeb(Samsung-GS5-Christoph) invalid model FBLAN specified, changing to FB
2015.03.30 11:48:41 1: RemoteFritzBoxWeb(Samsung-GS4M-Julia) invalid model FBLAN specified, changing to FB
2015.03.30 11:48:46 1: RemoteFritzBoxWeb(Samsung-GS3M-Meike) invalid model FBLAN specified, changing to FB


Alle Devices sind im Moment an der zweiten FB eingebucht, somit via LAN mit der abgefragten Hauptbox verbunden.

Wenn ich auf der entsprechenden Device-Seite schaue, so sind die Geräte dort auch mit aktuellem Status und Zeitstempel gebucht - es scheint also trotz der Einträge im Log zu funktionieren?!

Gruß, Christoph
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 30 März 2015, 13:13:29
Hi Christoph,
bist du sicher, daß du die aktuelle version von 99_RFritzBox.pm hast? Das Problem sollte bereits gefixed sein. Zu erkennen (im  pm file) an:
# 2015-03-25 public version 1.9.1 Loglevel change, fix unint msg on not found (line 272), no modification of global vars ($ipadress,...)
falls ja, bitte um einen log mit attr RemoteFritzBoxWeb verbose 4
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 30 März 2015, 14:24:18
Hallo Erwin,

jetzt wirds richtig kurios - nach dem ich jetzt an einem anderen Thema (Heizung - Heizplan für ein Zimmer) etwas geändert und einen Neustart gemacht habe, scheint der Fehler weg zu sein :o!? An der Presence-Definition habe ich seit mehreren Neustarts nix gedreht, außer daß ich vorhin eine ältere, umbenannte (99_RFritzBox.pm.old) aus dem Verzeichnis komplett gelöscht habe.

Verbose4 habe ich bereits die ganze Zeit eingeschaltet, um den Fehler zu finden, werde ich, denke ich, jetzt aber auf 3 reduzieren, wenn der Fehler jetzt weg ist ;)

Danke und Gruß,

Christoph
Titel: Antw:PRESENCE-RemoteFritzbox - auch auf DVBc
Beitrag von: Jamo am 31 März 2015, 00:10:25
Hallo,
ich benutze die Variante 2, Webabfrage. Das ganze funktioniert auch für den FRITZ!WLAN Repeater DVB‑C, dabei sind in 99_RFritzBox.pm folgende Zeilen zu ändern / zu ersetzen (siehe die Zeilen mit DVBc):

unless ( $wFBmodel =~ /(FB|FBLAN|1750E|DVBc)/) { # supported models - more readable...
   
my $url = "http://$wipstring/";
   $url   .= "wlan/wlan_settings.lua"       if ($wFBmodel eq "FB");
   $url   .= "net/network_user_devices.lua" if ($wFBmodel eq "FBLAN");
   $url   .= "wlan/rep_settings.lua"        if ($wFBmodel eq "1750E");
   $url   .= "wlan/wlan_settings.lua"       if ($wFBmodel eq "DVBc");
   $url   .= '?sid=' . "$sid";

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 31 März 2015, 08:01:53
Hi Inoma,
danke für's Feedback, ich werde den DVBC Repeater ins wiki aufnehmen.
Den code brauchen wir offensichtlich nicht ändern, ist ja das gleiche wie für model='FB'

l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Jamo am 31 März 2015, 11:58:31
Hallo Erwin,
ja den Code braucht man nicht unbedingt, evtl nur fürs debuggen.

Für den DVBc gibts auch noch die Seite /wlan/encrypt.lua, damit sollte das ganze auch funktionieren, wenn man diese Seite anstatt /wlan/wlan_settings.lua benutzen wollte, dann bräuchte man den Code.

Was ich an der RemoteFritzbox Lösung so gut finde, ist das damit auch PRESENCE für Geräte im Gastzugang gefunden / unterstützt werden.

Grüsse und danke! Super Sache das!
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Calle78 am 03 April 2015, 10:37:16
Hey zusammen,

ich bin seit einiger Zeit happy mit dem Modul aber beobachte immer wieder, dass es auch passiert das Geräte erst nach einem Neustart erkannt werden. Ein System konnte ich leider noch nicht finden, habe aber die gelegentliche Anmeldung über den zweiten Router im Netzwerk im Verdacht.

Mein Setup ist eine 7390, der zweite Router ist ein FritzPowerline 546E mit WLAN. Dieser hängt per Powerline an der Fritzbox, macht aber sein eigenes WLAN auf (kein Repeatermodus um die Bandbreite nicht zu halbieren). In der credentials.cfg ist nur die Fritzbox registriert.

Es sieht alles korrekt aus, die Geräte sind in der Netzwerkliste der Fritzbox korrekt sichtbar (ggf. angemeldet über den 546E). Trotzdem schaltet das PRESENCE Modul erst mit einem Neustart des FHEM auf Anwesend?!

define CM.fb PRESENCE function {RemoteFritzBox("CM6")} 120 120

Hat jemand ein Indiz wo ich weitersuchen kann?

ciao Carlo
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 03 April 2015, 10:56:05
Wie hast Du die FB in den Credentials eingetragen? FB oder FBLAN? Meine 7240 als Zweitbox baut auch ein eigenes WLan auf, der Einfacheit halber mit dem gleichen Namen. Funktioniert sehr gut...
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 03 April 2015, 12:08:50
Hi Carlo,

ok du verwendest die Telnet -Variante, damit ist die model Angabe in der credentials.cfg irrelevant.
Grundsätzllich:
Zitatkein Repeatermodus um die Bandbreite nicht zu halbieren
stimmt so nicht, solange du die Sendefrequenz der beide Geräte mindestens 6 Kanäle (gilt für 2,4Ghz) auseinander hast. Also z.B: Kanal1 auf einer Box, Kanal6 auf der zweiten.

Dein Problem versteh ich nicht, evtl. kannst du ja im Problemfall: attr RemoteFrizBox verbose 4aktivieren und den Log posten.
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Calle78 am 03 April 2015, 17:56:28
Hey Erwin,

siehst du einen Vorteil im Repeatermodus außer dem gleichen WLAN Namen? Inzwischen finde ichs ganz gut das sie verschiedene Namen haben weil ich so sehen kann in welchem ich bin. Die meisten Geräte zeigen mir vollen Empfang beim Hauptnetz an und verbinden sich damit, aber man kann (vermutlich wegen Störungen mit anderen Netzen) kaum surfen. So seh ichs und wechsel ins andere. Aber wir schweifen ab, ich versuchs mal mit Verbose 4 und melde mich wieder ;)

danke dir

ciao Carlo
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 03 April 2015, 18:44:33
Die Störungen sollten sich aber mit Bordmitteln der FB. orten und vermutl. auch beseitigen/umgehen lassen. Meist sind es Kanalüberschneidungen mit Nachbarnetzen ;)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 04 April 2015, 09:24:46
Hi Carlo,

caldir65 hat recht, du solltest mal auf der FB schauen, ob's Störungen auf den Frequenzen gibt.
z.b. damit: http://fritz.box/wlan/radiochannel.lua (http://fritz.box/wlan/radiochannel.lua)
Zitatsiehst du einen Vorteil im Repeatermodus außer dem gleichen WLAN Namen?
Naja, wenn man den Aussagen von AVM glaubt, sollten sich die Clients automatisch die bessere Basisstation auswählen und auch dazwischen roamen, ohne das es zu Unterbrechungen der Verbindung kommt....
Das fällt beim Web-browsen überhaupt nicht auf, aber wenn du eine Telnet-Session verwendest, ist die im Normalfall weg, sobald der Client den Accesspoint wechselt.
l.g erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Calle78 am 04 April 2015, 11:17:53
Hey Caldir65, Erwin, schlimmer noch. Es stören eigene Netze, Nachbar-Netze, Telefone und Funkkameras. Das Problem ist an jedem Ort im Haus an anderen Frequenzen, d.h. es gibt nicht "Die eine" sondern in der einen Ecke ein Kanal und in der anderen ein anderer. Die aktuelle Lösung ist erträglich aber ein Repeatermodus eignet sich wie gesagt nicht.

Anyway, verbose 4 brachte bislang kein Ergebnis. Meine aktuelle Theorie ist das der Raspberry in den Problemzeiten keine Verbindung hatte (nicht nur WLAN auch DLAN Probleme ;)). Das wäre ja eine einfache Erklärung / Lösung. Danke euch.

ciao Carlo
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Calle78 am 04 April 2015, 11:25:20
Hey caldir65,

so sieht meine credentials aus:

$credentials{RemoteFritzBox}{ipadress} = '192.168.178.1'; # FB LAN Adress
$credentials{RemoteFritzBox}{username} = 'fhem';
$credentials{RemoteFritzBox}{password} = '***';
$credentials{RemoteFritzBox}{model}    = 'FB';                  # optional FB-model: FB (for 7270,7390,7490), 1750E
# only required for a 2nd FB or repeater to be monitored by RemoteFritzBoxWeb - see below
$credentials{RemoteFritzBox}{shellcmd} = '/var/media/ftp/FRITZ/bin/Rpresence.sh';
$credentials{RemoteFritzBox}{serverhost} = 'localhost';  #  RFritzBoxScan.pl provides this service
$credentials{RemoteFritzBox}{serverport} = 7777;
$credentials{RemoteFritzBox}{serverbin} = 'RFritzBoxScan.pl'; # Fritzbox daemon
$credentials{RemoteFritzBox}{speedmatching} = "active";         # optional valid: <active|speed>
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: mp am 07 April 2015, 21:41:41
Hallo allerseits,

ich werkele jetzt auch schon eine Weile mit dieser genialen Funktion herum, bekomme das Teil aber nciht zum Laufen.
Nachdem ich alle Schritte aus dem Wiki ausgeführt habe bekomme ich
2963 ?        00:00:00 RFritzBoxScan.p
und wenn ich mal per Hand starte mit
./RFritzBoxScan.pl /opt/fhem/credentials.cfg
kommt
RFritzBoxScan: Fritzbox login ok
RFritzBoxScan: cannot create socket Address already in use


Was mache ich falsch?
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 07 April 2015, 23:13:09
Hi mp,
Zitatund wenn ich mal per Hand starte mit
... dann hast du zweimal dasselbe programm laufen, dass auf den gleichen port zugreifen will, und das verhindert dann das Linux!
es gibt da ein kleines Kommando: ps -ef | grep RFritz, da sieht man sofort, ob das Programm läüft, und kann's mit kill <pid> auch stoppen....

Was geht eigentlich nicht?

l.g. erwin

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: mp am 07 April 2015, 23:37:38
Hallo Erwin,

Ich bekomme im Telnet Fenster überhaupt keine Meldungen. Deswegen dachte ich der daemon läuft nicht. Ich bin anfangender Anfänger wie Du sicher bemerkt hast
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 07 April 2015, 23:54:14
Hi mp,
Du verwendest diese Anleitung?
http://www.fhemwiki.de/wiki/Anwesenheitserkennung_-_Remote_Fritzbox (http://www.fhemwiki.de/wiki/Anwesenheitserkennung_-_Remote_Fritzbox)

1)... das rpresence script (auf der FritzBox) erzeut das richtige Resultat?
2)... die credentials.cfg hast du angepasst?
3) erzeugt keine Ausgabe ist nicht richtig... das steht z.b: FritzBox Login ok....
4) du hast noch keine FHEM definitionen gemacht? - das wäre gut so in diesem stadium, sonst startet fhem den daemon im Hintergrund und du siehst nix auf der Konsole...
mal mal ein sudo killall RFritzBoxScan.pl auf der Konsole der Raspi und dann versuchs nochmal-
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: mp am 08 April 2015, 06:26:44
Hi Erwin,

Du hast recht, etwas geht :-). Ja, ich habe genau dieses Wiki genommen und das rpresence script findet auch mein Handy. Als credentials habe ich die Datei "credentials_telnet_sample genommen, angepasst, als credentials.cfg gespeichert und in den Raspi in FHEM gespeichert. Dann habe ich im Verzeichnis fhem die RFritzBoxScan.pl ausgeführt und o.g. Ergebnis erhalten.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: mp am 08 April 2015, 07:27:17
Habe gerade sudo killall RFritzBoxScan.pl gemacht und den Daemon per Hand gestartet....es spricht mit mir  ;D ;D ;D.
Ich habe jetzt eine Telnet Verbindung zur Fritzbox hergestellt und bekomme das
BusyBox v1.20.2 (2014-07-04 14:29:21 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

ermittle die aktuelle TTY
tty is "/dev/pts/0"
Console Ausgaben auf dieses Terminal umgelenkt
disable start/stop characters and flowcontrol
#

Die Definition der presence Funktion steht in der fhem.cfg und ich starte neu mit "shutdown restart", Telnet bleibt offen dabei. 2 Minuten warten, nix. Strg+c und die Raute wandert eine Zeile runter, warten, nix. Im Telnet Fenster ps -e | grep RFritzBoxScan eigegeben und die Anwort ist
# ps -e | grep RFritzBoxScan
ps: invalid option -- e
BusyBox v1.20.2 (2014-07-04 14:29:21 CEST) multi-call binary.

Usage: ps

Show list of processes

        w       Wide output
        l       Long output
        T       Show threads

#

Irgendwas mache ich noch falsch.

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: hyper2910 am 11 April 2015, 09:36:04
Hi,

seid kurzem habe ich immer wieder mal eine Fehlermeldung und zwar dies:

2015.04.11 09:26:00 2: RemoteFritzBox Server-started for device 30:75:12:88:BB:C9
2015.04.11 09:26:00 2: RemoteFritzBox Server-started for device E8:E0:B7:F5:D4:D7
2015.04.11 09:26:00 2: RemoteFritzBox Server-started for device E0:63:E5:9B:58:0C
2015.04.11 09:26:09 2: PRESENCE (ToshibaAnwesend) - error while processing check: unexpected function output (expected 0 or 1): error on Fritzbox communication: command timed-out , shutting down
2015.04.11 09:26:09 2: PRESENCE (AnjaAnwesend) - error while processing check: unexpected function output (expected 0 or 1): send: Cannot determine peer address at ./FHEM/99_RFritzBox.pm line 162
2015.04.11 09:29:24 2: RemoteFritzBox Server-Task RFritzBoxScan.pl starting
2015.04.11 09:29:35 3: Watchdog watchdog_TVAUS triggered
2015.04.11 09:29:36 2: RemoteFritzBox Server-started for device 30:75:12:88:BB:C9


Ich weiss aber nicht warum?


Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: mp am 11 April 2015, 10:40:11
Ja, was soll ich sagen, jetzt geht es. Ich bekomme zwar über Telnet immernoch keine Meldungen, sehe aber in der Webansicht, dass sich presence ändert. Somit tut sich ja was und der nächste Schritt ist die Weiterverarbeitung der Readings.
Erwin, ich danke Dir.

Schönes Wochenende
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: mp am 11 April 2015, 15:32:58
Und schon das nächste Problem. Ich versuche bei "present" eine Mail zu schicken. Mail schicken allein funktioniert und die Anwesenheit auch, nur beides zusammen will nicht. Das ist mein Code.
define RemoteFritzBoxEmm PRESENCE function {RemoteFritzBox("iPhoneEmm")} 60 60
define EmmAnwesend notify RemoteFritzboxEmm:present {DebianMail('x.xyz@gmx.net','Emm','Test')}

Habe auch schon diese Variante versucht
define EmmAnwesend notify RemoteFritzBoxEmm{\
  if (ReadingsVal("RemoteFritzBoxEmm", "state", "") eq "present") {\
    DebianMail('x.xy@@gmx.net','Emm','Test')\
    }}

Im Log steht einfach nix.

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: mp am 11 April 2015, 17:39:36
Ja Hyper, da wird der Erwin im Urlaub sein  8)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 11 April 2015, 20:30:41
Hi mp,

2 Dinge könntes du versuchen:
{DebianMail('x.xyz@gmx.net','Emm','Test')}auf der FHEM commando-zeile eingeben. Damit bist du unabhängig von notifies, usw. und kannst checken ok Debianmail von FHEM aus funktioniert.
und:
define EmmAnwesend notify RemoteFritzBoxEmm:.* {\
Log3 $NAME,1,"$NAME notify triggered $EVENT";\
}\

...dann sollte schon mal was im Log stehen...
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: mp am 11 April 2015, 20:48:41
Hi Erwin,

hab mir schon Sorgen gemacht  :D :D.
Mail funktioniert, das hatte ich schon getestet, die Anwesenheit wird im Web auch schon angezeigt. Bin ich eingeloggt present und beim Ausloggen absent. Ich krieg bloß die beiden Sachen nicht zusammen. Muss ich noch irgendwas definieren oder müsste das so gehen?
define RemoteFritzBoxEmm PRESENCE function {RemoteFritzBox("iPhoneEmm")} 60 60
define EmmAnwesend notify RemoteFritzboxEmm:present {DebianMail('x.xyz@gmx.net','Emm','Test')}
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: mp am 11 April 2015, 21:03:42
Hab Deine Zeilen mal eingegeben und nach Entfernen der ,/ (da hat FEHM immer gemault) dieses Log bekommen
Including fhem.cfg
2015.04.11 21:00:36 3: telnetPort: port 7072 opened
2015.04.11 21:00:36 3: WEB: port 8083 opened
2015.04.11 21:00:36 3: WEBphone: port 8084 opened
2015.04.11 21:00:36 3: WEBtablet: port 8085 opened
2015.04.11 21:00:36 2: eventTypes: loaded 246 events from ./log/eventTypes.txt
2015.04.11 21:00:38 1: Including ./log/fhem.save
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 11 April 2015, 22:39:59
...Etwas länger warten, nach dem fhem start, oder:

ein Beispiel von mir:
define testnf notify NokiaN810Web:.* { Log3 $NAME,1,"$NAME notify triggered $EVENT";}
ergibt nachdem das mal vom timer gestartet wurde im Log:
2015.04.11 22:28:10 1: NokiaN810Web notify triggered present
2015.04.11 22:28:10 1: NokiaN810Web notify triggered presence: present

das notify wird also 2 mal aufgerufen!

Also ändern in:
define testnf notify NokiaN810Web:presence:.* { Log3 $NAME,1,"$NAME notify triggered $EVENT";}
2 minuten warten, und ? es kommt nur ein event!
2015.04.11 22:34:45 1: NokiaN810Web notify triggered presence: present

falls das alles funktioniert, dann den mail-aufruf einbauen
l.g erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: mp am 12 April 2015, 06:52:57
Morgen Erwin,

ich war gestern zu schnell, heute früh stand der doppelte Aufruf des notify drin, hat die ganze Nacht das Log vollgetriggert. Heute habe den geänderten Code von Dir eingegeben, seitdem kommt nur ein Eintrag. Ich musste allerdings das letzte Semikolon weglassen, da hat fhem gemeckert und als unbekannten Befehl bezeichnet.
.* bedeutet doch, dass bei jedem Status getriggert wird, wie bekomme ich es hin, das nur beim wechsel von absent auf present getriggert wird?

MP

Nachtrag:

Habe es hin gekriegt, aber so richtig gefällt es mir nicht. Geht das vielleicht "eleganter"? Mit attr RemoteFritzBoxEmm event-on-change-reading presence und
define EmmAnwesend notify RemoteFritzBoxEmm:presence:.* { if (ReadingsVal("RemoteFritzBoxEmm","presence","") eq "present") {DebianMail('x.xy@@gmx.net','Emm','Test')}}
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 12 April 2015, 20:35:57
so ähnlich:
define EmmAnwesend notify RemoteFritzBoxEmm:presence:.* {
   ($EVTPART1 eq "present") {
   DebianMail('x.xy@@gmx.net','Emm','Test');
}


ob der Mail aufruf so geht, weis ich allerdings nicht... evtl. noch ein {} drumrum...

Mit deinem event-on-change verhindert du events - falls die Bedingung nicht zutrifft - daher word auch nix in einem etwaigen Log stehen...
das notify wird nur durchgeführt, wenn die regex RemoteFritzBoxEmm:presence:.* matched...

Du kannst es auch übertreiben:
define EmmAnwesend notify RemoteFritzBoxEmm:presence:present {
    DebianMail('x.xy@@gmx.net','Emm','Test')
}

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: mp am 12 April 2015, 23:16:18
Ich habe noch keine Aktoren und brauche somit irgendwas, wo ich mitkriege, dass was geklappt hat. Natürlich interessiert es mich nicht, in einer Mail zu lesen, dass ich zu Hause bin, aber wenn ich weiß wie ich ein Ereignis anlegen und weiter verarbeiten kann, hilft mir das, zu kapieren was möglich ist und wie ich es erreiche.
Danke Dir, dass Du mir dabei hilfst.  :)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 13 April 2015, 09:28:11
Hier ist eine gute Einführung: http://fhem.de/Heimautomatisierung-mit-fhem.pdf (http://fhem.de/Heimautomatisierung-mit-fhem.pdf)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: mp am 13 April 2015, 12:35:15
Darin lese ich schon rum und will dann auch ausprobieren. Bloß ohne Aktoren sehe ich schlecht, ob was passiert  :), deswegen schicke ich mir Mails. Bevor ich alles kaufe will ich einfach wissen, ob es was für mich ist oder mir der Aufwand zu groß und fhem eher was für Bastler ist  :)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 14 April 2015, 09:35:00
Ah, verstehe. Die Antwort auf Deine Frage ist natürlich ein klares "Kommt darauf an!". Je komplexere Verknüpfungen Du in fhem realisieren möchtest, oder je bastelartiger die Hardware ist, die Du verwenden möchtest, desto mehr artet das zu einer Bastelei aus.

Angefangen habe ich mit Fenstersensoren und Thermostaten. Die Heizung geht aus, wenn die Fenster offen sind. Das konnten die Geräte alleine, und fhem konnte das out-of-the-box auslesen. 0 Bastelei. Heizungen runterregeln, wenn man nicht zu Hause ist, war dann ein weiterer Schritt, auch noch ohne viel Bastelei möglich - nicht zuletzt dank diesem Modul und Erwin.

Aber man will halt immer mehr, und dann wird es auch immer basteliger.  ;D
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 14 April 2015, 11:16:18
Naja, dafür ist fhem halt auch extrem flexibel und kann Welten verbinden, die sonst Insellösungen bleiben würden :) ich habe so z.b. HM-Fensterkontakte und FS-20-Steckdosen "zusammen gebracht" ;)

Die Ansprüche wachsen mit der Zeit, aber auch die eigenen Fähigkeiten. Und dann ist da ja noch das Wiki, dieses Forum, ...

Aber wir schweifen ab...
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: mp am 15 April 2015, 08:34:42
Das klare Jein hatte ich erwartet  :). Sowas wie bei Dir, Motivierte linke Hände, hatte mir auch gedacht und als Erweiterung Erwins Methhode. Erstmal  :). Da sich meine "Programmierkenntisse" auf bissel Qickbasic und Assembler in der Technikerschule vor 20 Jahren, beschränken, ist das alles absolutes Neuland für mich, aber sau interessant. Einfach reinstürzen und gleich Erfolge ist hier nicht, weil ich schon an der Syntax knabbere. Die logische Abfolge habe ich im Kopf, weiß aber nicht, wie ich sie umsetzen soll, also stöbere ich im Forum und finde meistens auch was, aaaber..."da nimmst Du das Modul und den Befehl und fügst dann xy einfach ein." Jetzt schaue ich wie ich das Modul nehmen kann und den Befehl und wie ich das einfüge, was ich will, z.B. Mail schicken statt Aktor schalten. Das macht natürlich keine Sau also gibt es genau dieses Beispiel nicht und ich muss fummeln. Momentan ist es noch normal, ich lerne nebenbei wie ich Mails schicken kann  :D.
@ caldir: Hast Du einen CUL oder wie machst Du das mit zwei Systemen?
Ich will irgendwann mal ein Keymatic schalten und habe gelesen, dass ich dazu HMLan oder HMUSB brauche. Damit kann ich aber nur Homematic schalten und keine FS 20. Kann ein CUL 868 dieses Keymatic schalten oder will das Teil zwingend HMLan oder USB?
Ihr seht, es gibt Fragen über Fragen  :D
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: hyper2910 am 16 April 2015, 21:58:21
Irgendwie kommen immer nur noch Fehler im log 2015.04.16 21:29:03 2: PRESENCE (DirkAnwesend) - error while processing check: unexpected function output (expected 0 or 1): error on Fritzbox communication: command timed-out , shutting down
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 17 April 2015, 06:15:47
Hallo mp,

ich habe einen HMLan für die HM-Devices, und einen Cul für FS20 & Co. Da der Keymatic mit AES versehen ist, geht das nicht mit dem CUL. ...
Gruß, Christoph
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: mp am 17 April 2015, 08:00:05
Hi Christoph,

die Kombi ist wohl die beste. Mit den Umschalt CUL Dingern kann man manche Aktoren wahrscheinlich einfach nicht schalten. Wie auch immer, ich danke Dir  :)

Ciao Matthias
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 17 April 2015, 08:38:00
Hi hyper2910,

Etwas wenig info's um sinnvoll antwoten zu können, dennoch ein Versuch:
Frage: hat das schon mal funktioniert ?
Falls ja, wurde was an den Definitionen im Presence Umfeld geändert?

Der Fehler bedeutet dass das shell script (rpresence.sh) auf der FritzBox zu lange braucht, eine Antwort zu schicken ( > 5 sekunden), möglicherweise auch die Verbindung abgebrochen wurde.
Versuch1: FHEM neu starten.
Versuch2: Telnet login auf Fritzbox, das rpresence.sh händisch starten (siehe wiki) - Wie lange dauert's bis das script fertig ist?
Versuch3: Falls das länger als 5 sekunden ist, Fritzbox neu starten.

Wenn das alles nicht hilft: config, credentials posten, RemoteFritzBox verbose 5, Log posten...
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: hyper2910 am 20 April 2015, 08:29:59
Hallo Erwin,

Frage: hat das schon mal funktioniert ?

Alles Lief Problemlos!  ich glaube seit dem Update auf der Fritzbox auf 6.24, kommt die Meldung immer mal wieder!


Falls ja, wurde was an den Definitionen im Presence Umfeld geändert?
NEIN

Der Fehler bedeutet dass das shell script (rpresence.sh) auf der FritzBox zu lange braucht, eine Antwort zu schicken ( > 5 sekunden), möglicherweise auch die Verbindung abgebrochen wurde.
Versuch1: FHEM neu starten.
habe ich gemacht!
Versuch2: Telnet login auf Fritzbox, das rpresence.sh händisch starten (siehe wiki) - Wie lange dauert's bis das script fertig ist?
schon länger, teilweise bis 15sec.
Versuch3: Falls das länger als 5 sekunden ist, Fritzbox neu starten.
auch nach Neustart teils länger als 5Sek


Gruss Dirk
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 20 April 2015, 10:54:09
Hi Dirk,

ZitatWie lange dauert's bis das script fertig ist? - schon länger, teilweise bis 15sec.
Das ist das Problem, irgendwas beschäftigt deine Fritzbox heftig, wenn du dort nichts findest, kannst du versuchen, das Timeout in der FritzBoxScan.pl etwas hinaufzuschrauben, allerdings mehr als 15 Sekunden wird nicht funktionieren, da dann das Timeout der PRESENCE Funktion zuschlägt.
etwa ab Zeile 56:
#### create telnet conn to FB
my $t = new Net::Telnet (Timeout => 5,  Prompt =>  '/# $/', Errmode =>  'return');
my $errmsg = $t->errmsg();
print "RFritzBoxScan: error on open Telnet to Fritzbox" if !($errmsg eq "");

l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Luco am 16 Mai 2015, 21:46:55
Servus,

bei der Suche nach Anwesenheitsfunktionen bin ich auf das hier vorgestellte Skript gestoßen.
Da ich eine gestellte Fritzbox Kabel nutze, würde ich gerne Variante 2 nutzen, komme jedoch nicht weiter.

Auf meinem Raspberry habe ich unter /opt/fhem-5.6 die credentials.cfg erstellt und unter /opt/fhem-5.6/FHEM die 99_RFritzBox.pm gefolgt von einem reload 99_RFritzBox.pm

Die credentials.cfg sieht so aus:


$credentials{RemoteFritzBox}{ipadress} = '192.168.178.1';
$credentials{RemoteFritzBox}{username} = '';
$credentials{RemoteFritzBox}{password} = 'xxxxxxxxxxxxxx';
$credentials{RemoteFritzBox}{model}    = 'FBLAN';


Einen Benutzernamen gibt es übrigens eigentlich gar nicht auf der Weboberfläche der Fritzbox.

Im Log taucht nun folgendes auf:


2015.05.16 21:44:50 1: PERL WARNING: Use of uninitialized value $serverbin in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 123.
2015.05.16 21:44:50 2: RemoteFritzBox Server-Task  starting
2015.05.16 21:44:52 1: PERL WARNING: Use of uninitialized value $serverbin in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 127.
2015.05.16 21:44:52 1: RemoteFritzBox Server could not be started
2015.05.16 21:44:52 2: PRESENCE (myEiFonStatus) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBox Server could not be started


Logisch, serverbin muss bei Variante 2 auch gar nicht definiert werden oder gibt es da einen Fehler im Wiki?
Den Fehler Use of uninitialized value $serverbin in concatenation gab es hier im Thread schon mal, wurde aber dann nicht drauf eingegangen.
Was übersehe ich hier bei Variante 2 ?

Vielen Dank für eure Hilfe
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 17 Mai 2015, 06:34:18
Servus,

bitte poste doch auch mal deine definition, ich denke du hast dort einen Fehler drin....
PS: Username gibts sehr wohl in der FB, man muss ihn nur aktivieren, und das wird auch von AVM empfohlen...
... es geht aber grundsätzlich auch ohne, deine credentials.cfg ist ok!
Frage: was steht als letztes datum in der update history in 99_RFritzbox.pm ? (Zeile: 29ff)
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: melu am 18 Mai 2015, 13:20:40
Hallo Zusammen,

an dieser Stelle möchte ich auch der Forum aktiv beiwohnen.

Ich habe dasselbe Problem wie Luco!

Zu der Hardware:

1 x Pi mit Wheezy (FHEM 5.6)
1 x FB 7390

Wenn ich nun nach Wiki die Methode 2 anwende, schmeißt mir die Log folgendes als Antwort:


2015.05.18 12:55:38 0: Server started with 10 defined entities (version $Id: fhem.pl 8574 2015-05-14 07:59:32Z rudolfkoenig $, os linux, user fhem, pid 11674)
2015.05.18 12:56:21 3: telnetForBlockingFn: port 36653 opened
2015.05.18 12:56:21 1: PERL WARNING: Use of uninitialized value $serverbin in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 123.
2015.05.18 12:56:21 2: RemoteFritzBox Server-Task  starting
2015.05.18 12:56:23 1: PERL WARNING: Use of uninitialized value $serverbin in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 127.
2015.05.18 12:56:23 1: RemoteFritzBox Server could not be started
2015.05.18 12:56:23 2: PRESENCE (Note4) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBox Server could not be started


Ab dem Punkt wo ich eine PRECENCE Device definiere, kommt in der Konsole (Putty) die Meldung: "not defined", diese Meldung wiederholt sich dann alle 120 Sekunden.

Als erstes bin ich hin und habe den dummy und auch das device wieder gelöscht, anschließend ein Update gezogen und wieder alles wie im Wiki angewendet.
Die Varianten mit und ohne Benutzer - Anmeldung an der FB hab ich auch schon probiert, leider ohne Erfolg

Um auf die Frage einzugehen, was in der 99_RFritzbox.pm steht:


# update history:
# 2013-12-20 initial version (for RPI)
# 2014-02-02 improved starting of daemon and some debug msgs
# 2014-02-14 RemoteFrizBoxWeb added
# 2014-02-20 somec improvement to RemoteFrizBoxWeb & RemoteFrizBox (ping/ok handshake)
# 2014-03-25 minor fix of unitialized message
# 2014-10-20 public version 1.3 minor fixes & MAC-address support in addition to name
# 2014-11-18 public version 1.4 fixes in RFritzBoxScan, fix for connection refused on startup
# 2015-01-08 test   version 1.5 persistent login to FB for RemoteFrizBoxWeb
# 2015-01-20 test   version 1.6 avoid parallel queries for RemoteFrizBoxWeb
#                      support Fritz1750E Repeater (via RemoteFrizBoxWeb)
#                      support 2 Fritzboxes (2 ip-Addresses) at same time   
# 2015-01-22 public version 1.7
# 2015-03-22 public version 1.9 improved startup, use telnetforblocking for reporting back
#                               changed 'pidof' to 'ps -ef' for OSX compatibility
# 2015-03-25 public version 1.9.1 Loglevel change, fix unint msg on not found (line 272), no modification of global vars ($ipadress,...)
##############################################

Also die Aktuelle Datei...

muss in der fhem.pl nun noch ein Dienst zu den Startbedingungen geschrieben werden. Denn leider verstehe ich den "RemoteFritzBox Server-Task" noch nicht ganz, denn dieser kann scheinbar nicht initialisiert werden.
Was mache ich falsch? Bin für jeden Tipp zu haben!

Danke euch!
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 18 Mai 2015, 16:37:58
Hi Luco & Melu,

Fehler gefunden - und zwar im wiki!!
nicht so:
define <myName> PRESENCE function {RemoteFritzBoxWeb("<FBdevicename/FB.MAC-Adress>")} 120 120
example by name:
  define myEiFonStatus PRESENCE function {RemoteFritzBox("myEiFon")} 120 120
or with MAC adress:
  define myEiFonStatus PRESENCE function {RemoteFritzBox("11:22:33:44:55:66")} 120 120

sondern so:
define <myName> PRESENCE function {RemoteFritzBoxWeb("<FBdevicename/FB.MAC-Adress>")} 120 120
example by name:
  define myEiFonStatus PRESENCE function {RemoteFritzBoxWeb("myEiFon")} 120 120
or with MAC adress:
  define myEiFonStatus PRESENCE function {RemoteFritzBoxWeb("11:22:33:44:55:66")} 120 120


das erste define war richtig, die Beispiele falsch... ich bessere gleich im WIKI aus!
PS: die commandref war auch richtig.....
sorrry und l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: melu am 18 Mai 2015, 17:36:23
Hey Erwin,

eigentlich ja total Logisch, hinterher ist man immer schlauer..
Ich hab erst drauf geguckt und gedacht, was hat er nun geändert. Die erste Zeile ist ja noch Richtig, der Fehler ist ja erst im Beispiel. Das ist die Gefahr bei Copy & Paste. Vielen Dank für die Schnelle Hilfe, echt ein Tolle Forum, um so mehr Funktionen ich umgesetzt bekomme um so mehr Spaß macht mir mein neuer PI.

So nebenbei, es funktioniert nun bei mir!

LG Mel
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: agentclark am 26 Mai 2015, 16:58:39
Moin,

auch von mir erstmal vielen Dank für den Code.
Bin nach Variante 2 aus dem Wiki vorgegangen. FritzBox ist eine 7490.

Aber leider funktioniert das alles noch nicht so wie es soll.
define RemoteFritzBoxWeb dummy
attr RemoteFritzBoxWeb event-on-update-reading none
attr RemoteFritzBoxWeb verbose 5
define droid PRESENCE function {RemoteFritzBoxWeb("xx:xx:xx:xx:xx:xx")} 120 120


$credentials{RemoteFritzBoxWeb}{ipadress} = '192.168.1.1';
$credentials{RemoteFritzBox}{username} = ''; #Anmeldung ohne Benutzername
$credentials{RemoteFritzBox}{password} = '*****';
$credentials{RemoteFritzBox}{model}    = 'FB';


und hier der Auszug aus dem Logfile:
2015.05.26 16:52:30 4: RemoteFritzBoxWeb(xx:xx:xx:xx:xx:xx) FB-number/model set to 0/FB
2015.05.26 16:52:30 1: PERL WARNING: Use of uninitialized value $FBlockfile in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 221.
2015.05.26 16:52:30 4: RemoteFritzBoxWeb(xx:xx:xx:xx:xx:xx) waiting 3 seconds for previous scan to complete.
2015.05.26 16:52:33 1: PERL WARNING: Use of uninitialized value $FBlockfile in concatenation (.) or string at ./FHEM/99_RFritzBox.pm line 225.
2015.05.26 16:52:33 4: RemoteFritzBoxWeb(xx:xx:xx:xx:xx:xx) waiting 2 seconds for previous scan to complete.
2015.05.26 16:52:35 4: RemoteFritzBoxWeb(xx:xx:xx:xx:xx:xx) waiting 3 seconds for previous scan to complete.
2015.05.26 16:52:38 4: RemoteFritzBoxWeb(xx:xx:xx:xx:xx:xx) waiting 1 seconds for previous scan to complete.
2015.05.26 16:52:39 4: RemoteFritzBoxWeb(xx:xx:xx:xx:xx:xx) waiting 2 seconds for previous scan to complete.
2015.05.26 16:52:41 2: PRESENCE (droid) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb(xx:xx:xx:xx:xx:xx) timeout waiting for lockfile


Danke für die Hilfe und Gruß
Agent
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 26 Mai 2015, 20:29:38
Hi Agent,
das hatten wir nocht nicht.....
Ein paar Fragen:
1) schau mal bitte in die 99_RFritzbox.pm, etwa zeile 95: - sollte so aussehen
  # prevent parallel WEB-queries
  my $FBlockfile = $attr{global}{modpath} . "fhem-RFritzBox-lock.tmp";

2) Was ergibt ein {return "|". $attr{global}{modpath} ."|"}, eingegeben auf der FHEM Kommandozeile?

3) unter welchem user läuft fhem - und darf dieser user auf das fhem-directory auch schreiben ?
das Problem scheint zu sein, daß die temporäre lock-file nicht angelegt bzw. geschrieben werden darf....
ein ls -l | grep fhem-RFitzBox-lock        ergibt bei mir folgendes:
ls -l | grep  fhem-RFritzBox-lock
-rw-r--r--  1 fhem dialout      0 Jan 17 16:16 fhem-RFritzBox-lock.tmp

l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: agentclark am 26 Mai 2015, 21:37:55
Moin Erwin,

danke für die schnelle Antwort.

Zeile 95 der 99_RFritzBox.pm:
my $FBlockfile = $attr{global}{modpath} . "fhem-RFritzBox-lock.tmp";


Die Ausgabe von return modpath ergibt
|.|
Das sieht ja mal nicht so gut aus.
Auch das ls -l | grep liefert mir nichts zurück.
FHEM läuft unter user fhem, der auch alle Rechte auf die Verzeichnisse hat.

Gruß Agent
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 26 Mai 2015, 22:47:29
Hi Agent,

das sieht bisher alles richtig aus, außer das fhem die file nicht anlegen kann..
ich versteh's zwar nicht, aber versuch bitte folgendes:
...und zwar in dem directory wo auch die fhem.pl file ist! (das ist bei mir z.B: /opt/fhem)

sudo touch fhem-RFritzBox-lock.tmp
sudo chown fhem:dialout fhem-RFritzBox-lock.tmp
sudo chmod 666 fhem-RFritzBox-lock.tmp
ls -l fhem-*

..und poste den output von dem ls -l

l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: agentclark am 26 Mai 2015, 23:01:57
Moin Erwin,

hier der Output vom ls -l
-rw-rw-rw- 1 fhem dialout 0 Mai 26 22:53 fhem-RFritzBox-lock.tmp

Mir ist noch aufgefallen, dass ich keine Gruppe "dialout" habe. Bis jetzt gehören alle Dateien von FHEM dem User "fhem" und der Gruppe "root".
Habe es nun sowohl mit "dialout" als auch "root" als Gruppe probiert, der Fehler im Log von FHEM bleibt der gleiche.

Danke und Gruß Agent
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 27 Mai 2015, 00:18:03
in den ls -l output sollten noch andere files vorkommen...
z.b:

-rw-r--r-- 1 fhem root     66008 May 26 20:43 fhem.cfg
-rw-r--r-- 1 fhem dialout  15544 Mar  3 08:36 fhem.cfg.demo
-rw-r--r-- 1 fhem dialout 111284 May 18 12:00 fhem.pl
-rw-rw-rw- 1 fhem dialout      0 May 26 22:43 fhem-RFritzBox-lock.tmp

...andernfalls bist du im falschen directory.
erwin


Am morgen sieht man besser......
Hi Agent,
ich denke ich hab den Fehler gefunden:
ersetze bitte in der 99_RFritzBox.pm die Zeile (etwa Line 95):
  my $FBlockfile = $attr{global}{modpath} . "fhem-RFritzBox-lock.tmp";
durch
  my $FBlockfile = $attr{global}{modpath} . "/fhem-RFritzBox-lock.tmp";
dann ein shutdown restart...
Ich versteh nicht, wieso das bisher nicht aufgefallen ist, und funktioniert hat....
Nur aus Interesse: welches Betriebssystem und welche perl version hast du ?
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: agentclark am 27 Mai 2015, 11:49:11
Moin Erwin,

die Zeile in der 99_RFritzbox.pm habe ich korrigiert. Sag es ja nur ungern, aber der Fehler ist exakt der gleiche geblieben.

fhem.pl und fhem.cfg hab ich natürlich auch im Verzeichnis, hatte mit ls -l fhem-* gesucht.

Als System kommt Raspbian mit einem 3.18.11+ Kernel zum Einsatz und Perl müsste mit Version 5.14.2-21 auch die aktuelle sein.

Ist die Gruppe "dialout" eine standart FHEM-Gruppe oder hast du die manuell hinzugefügt. Wie gesagt, bei mir existiert die Gruppe nicht.

Danke und Gruß
Agent
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 27 Mai 2015, 15:07:56
ok, dann wirds brutal ;-))

Versuch bitte folgendes:
kopiere das in eine file "testflock.pl" im fhem-root verzeichnis.

#!/usr/bin/perl
################################################################
# testflock.pl
# testing file open & flock
# usage : sudo -u fhem ./testflock.pl (from fhem root directory)
#
use strict;
use warnings;

my $filename = "test1.txt";
my $wait = 0;

if (! open(FBLOCKFILE,">","$filename")) {
  print "cannot open Lockfile $filename\n";
  exit;
}

  while (! flock(FBLOCKFILE,6) && ($wait < 10)) {
     print "waiting $wait seconds for flock \n";
     $wait++;
     sleep 1;
  }

  unless ($wait < 10) {
    print "waittime exceeded\n";
    exit;
  }

  print "waited $wait seconds for flock \n";
  print "sleeping now for 20 seconds\n";
  sleep 20;

  flock(FBLOCKFILE,8); #unlock
  close(FBLOCKFILE);
  print "ok\n";
  exit;


und dann folgendes:

sudo chmod 777 testflock.pl
sudo chown fhem:dialout testflock.pl
sudo -u fhem ./testflock.pl


... und dann den output hier posten...
wenn alles gut geht, sollte es eine file "test1.txt" im Verzeichnis geben.

wg. dialout group - war beim debian-wheezy schon definiert...
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: agentclark am 27 Mai 2015, 15:31:38
Sieht gut aus:
pi@smartpi /opt/fhem $ sudo -u fhem ./testflock.pl
waited 0 seconds for flock
sleeping now for 20 seconds
ok


pi@smartpi /opt/fhem $ ls -l test*
-rw-r--r-- 1 fhem dialout   0 Mai 27 15:22 test1.txt
-rwxrwxrwx 1 fhem dialout 738 Mai 27 15:21 testflock.pl


Danke und Gruß
Agent
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 27 Mai 2015, 15:38:33
ZitatSieht gut aus:
Na dann.....ist es wirklich ein Berechtigungsproblem, fhem kann diesen file nicht anlegen..
ein letzter kurzer Check: was ergibt ein
ps -efw | grep -v grep | grep fhem
?
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: agentclark am 27 Mai 2015, 17:46:53
pi@smartpi /opt/fhem $ ps -efw | grep -v grep | grep fhem
fhem      1967     1  0 13:34 ?        00:00:30 perl fhem.pl fhem.cfg
root      1968     1  0 13:34 ?        00:00:00 startpar -f -- fhem


Gruß Agent
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Kitzi am 16 Juli 2015, 07:37:51
Moin

Ich habe gestern meine 7490 mit der neuen Labor Firmware ausgestattet. Hier gibt es nun eine komplett neues Ui, und leider funktioniert die Abfrage der web Oberfläche nicht mehr.
Ich werde jetzt erstmal die alte Firmware einspielen, aber ich denke in absehbarer Zeit wird es die neue Oberfläche für alle geben.
Gruß
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 16 Juli 2015, 13:00:12
ZitatIch habe gestern meine 7490 mit der neuen Labor Firmware ausgestattet. Hier gibt es nun eine komplett neues Ui, und leider funktioniert die Abfrage der web Oberfläche nicht mehr.
Hi Kitzi & All,

Im Lichte der neuen Entwicklungen (kein Telnet, webcm changes,...) werde ich den Support für 99_RFritzBox.pm in absehbarer Zeit einstellen. Es gibt mittlerweile ein "main-stream" Modul, (72_FRITZBOX.pm, danke an tupol!!!), daß diese Funktion bestens abdeckt.
Wenns eine 1:1 Ablöse sein soll, würde ich die Verwendung von FRITZBOX in Kombination mit readingsProxy vorschlagen.
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Kitzi am 16 Juli 2015, 14:06:17
Moin

DANKE für deine Antwort. Jetzt war ich gerade froh das hier hin bekommen zu habe :)

Dann muss ich mich nun durch die anderen Module wühlen, damit ich die Lösung von dir Nachbauen kann.

Gruß
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 16 Juli 2015, 14:26:13
define <name> FRITZBOX
attr <name> boxUser <user name>
attr <name> telnetUser <user name>
set <name> password <meinpasswort>
sollte fürs erste reichen....
dann schaut das Ergebnis (die readings) in etwa soo aus:

mac_00_04_13_23_00_C8 SNOM360 2015-07-16 14:20:56
mac_00_05_CD_1C_B3_A8 DENON3310 2015-07-16 14:20:56
mac_00_08_9B_C7_8E_2E MH-QNAP419P 2015-07-16 14:20:56
mac_00_1B_FE_01_E2_39 MH-IPCAM1 2015-07-16 14:20:56
..usw...

ist wesentlich einfacher!
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Kitzi am 16 Juli 2015, 15:12:44
Nochmal Danke :)

ich werde es gleich mal probieren, sehe ich es richtig das ich den Telnet Port auf der Box aktiviert haben muss?

Das ist ja leider bei der neuen Labor Firmware auch nicht mehr möglich.

Gruß
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 16 Juli 2015, 15:21:02
Zitatsehe ich es richtig das ich den Telnet Port auf der Box aktiviert haben muss?
So genau hab ich mir das FRITZBOX Modul nicht angeschaut,
wenn ich's richtig verstehe arbeitet das modul mit drei Varianten, an die daten zu kommen:
Welches reading wie erstellt wird, hab ich mir nicht im detail angesehen...ich denke allerdings, daß tupol mit volldampf an der TR064 variante arbeitet....
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: neobeck am 30 Juli 2015, 18:59:30
Hallo erwin,

vielen Dank für die Bereitstellung deines Tools. Leider habe ich ein Problem mit dem Shell Skript. Schon in Zeile 23 bricht die FritzBox den Durchlauf mit der Meldung "Bad Substitution" ab. Ich habe das Skript inzwischen über FTP, per wget und COPY/Paste mit vi übertragen, um Formatierungsfehler auszuschließen. Leider immer die gleiche Meldung. Auf dem RPI habe ich es dann auch mal laufen lassen, auch hier kommt die gleiche Meldung.

Folgendes steht in der Zeile:
if [[ ${devicename:2:1} == ":" ]] && [[ ${devicename:5:1} == ":" ]];


vermutlich ist da irgendwas nicht ganz Bash-Konform, leider habe ich keinen Plan von RegEx und keine Idee, wo der Fehler liegt.

Besten Gruß,

neobeck
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 30 Juli 2015, 21:20:59
Hi neobeck,

Zitat"Bad Substitution"
dürfte ein versionsproblem sein. Bei mir läuft's auf der FB.

Auf dem PI gehts nicht, damits läuft muss die erste Zeile wie folgt lauten:
#!/bin/bash

l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: neobeck am 30 Juli 2015, 23:04:18
Vielen Dank für deine Antwort. Habe die Überprüfung auf die MAC-Adresse einfach auskommentiert - so geht es auch.

LG
neobeck
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: PEPITO82 am 19 August 2015, 07:53:09
Zitat von: erwin am 16 Juli 2015, 14:26:13
define <name> FRITZBOX
attr <name> boxUser <user name>
attr <name> telnetUser <user name>
set <name> password <meinpasswort>
sollte fürs erste reichen....
dann schaut das Ergebnis (die readings) in etwa soo aus:

mac_00_04_13_23_00_C8 SNOM360 2015-07-16 14:20:56
mac_00_05_CD_1C_B3_A8 DENON3310 2015-07-16 14:20:56
mac_00_08_9B_C7_8E_2E MH-QNAP419P 2015-07-16 14:20:56
mac_00_1B_FE_01_E2_39 MH-IPCAM1 2015-07-16 14:20:56
..usw...

ist wesentlich einfacher!

Genau so möchte ich das lösen.
Daneben habe ich auch meinen 1750E Repeater als FRITZBOX definiert.
Ist dies überhaupt notwendig für die Anwesenheitserkennung, oder werden sowieso alle Geräte auf der Haupt-Fritz!Box gelistet?

Hat hier jemand die Geräteliste mittels Readingsproxy an einen Dummy übertragen?
Wenn ja, würde ich mich über ein Beispiel freuen, da ich es selber leider nicht hinbekomme.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 19 August 2015, 08:06:08
hi PEPITO82,
ZitatHat hier jemand die Geräteliste mittels Readingsproxy an einen Dummy übertragen?

...du meinst Readingsproxy oder Dummy?

Einen Dummy zu setzen geht via notifies, einfacher ist's mit readingsproxy (namen und MAC aus dem Beispiel):
define SNOM360 ReadingsProxy <name>:mac_00_04_13_23_00_C8
wobei <name> der Name aus der FRITZBOX definition ist.

Mit der 1750E kann ich dir nicht helfen, da ich selbst keine habe, einfach ausprobieren und Ergebnis posten!
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 19 August 2015, 08:23:57
zumindest bei einer 7240 als Repeater für eine 7490 werden inder Hauptbox alle Devices gelistet - ich vermute mal, das es beim 1750E sich ähnlich verhalten wird ...

Gesendet von meinem SM-G900F mit Tapatalk

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: PEPITO82 am 19 August 2015, 09:37:06
Zitat von: erwin am 19 August 2015, 08:06:08
define SNOM360 ReadingsProxy <name>:mac_00_04_13_23_00_C8
wobei <name> der Name aus der FRITZBOX definition ist.

D.h. ich kann kein ReadingsProxy in der Gestalt anlegen, dass ich dort sämtliche Geräte sehen kann, die online sind.
Pro ReadingsProxy erhalte ich einen Gerätenamen als State.

Ich hatte die Vorstellung, dass wenn z.B. Gerät X (z.B. Smartphone von Z) oder Y (z.B. Tablet von Z) online ist, Bewohner Z zu Hause ist.
Für diesen Fall werde ich also zwei "Geräte"/ ReadingsProxy benötigen?

Zitat von: caldir65 am 19 August 2015, 08:23:57
zumindest bei einer 7240 als Repeater für eine 7490 werden inder Hauptbox alle Devices gelistet - ich vermute mal, das es beim 1750E sich ähnlich verhalten wird ...

Bei meiner 7490 habe ich auch das Gefühl, dass die Geräte des 1750E gelistet werden.
Aber das werde ich noch genauer austesten.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Otto123 am 19 August 2015, 10:06:20
Hallo,

also ich mache zunächst PRESENCE von Geräten (http://heinz-otto.blogspot.de/2015/07/die-zeiten-andern-sich.html) mit dem PRESENCE Modul und dem FRITZBOX Modul mit eigener Routine.
Diese überwache ich mit watchdog auf abwesenheit und notify auf anwesenheit und schreibe das Ergebnis in ein Geräte dummy.
Das ist notwendig um kurze "Schwankungen" also mal kurz raus aus dem Haus oder so abzufangen und um mehrere Kriterien (WLAN und BT) zusammenzuführen.
Aus dem Gerät erzeuge ich einen Personen Dummy, damit kann man auch wiederum mehrere Kriterien zusammenführen.
Daraus ensteht dann noch ein "Es ist mindestens Einer da" Dummy für allgemeine Schaltaktionen im Haus.

Klingt vielleicht kompliziert aber das läuft so sehr gut und flexibel.

Gruß Otto
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: PEPITO82 am 19 August 2015, 12:38:45
Hallo Otto,

das sieht sehr interessant aus! Ich versuche das in die Praxis umzusetzen.
Evtl. werde ich dann nochmal nachfragen müssen.

Viele Grüße

Peter
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Otto123 am 19 August 2015, 14:07:38
Hallo Peter,

gerne. Noch ein Hinweis: Unlogischer Weise musst man beim aktuelle FRITZBOX Modul Telnet installieren obwohl man es gar nicht nutzen will / kann. Aber naja, da wird sicher noch einiges an Änderungen passieren in nächster Zeit.
BT reagiert schneller als WLAN, ist aber dann mit einem Empfänger nicht im ganzen Haus verfügbar. Deswegen habe ich den in Nähe des Einganges. Ich nehme BT dann auch nur zur Anwesenheit.

Ich will das auch noch im Blog beschreiben, aber das braucht noch etwas 8)

Gruß Otto
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 21 August 2015, 09:51:45
Ich habe nach Erwins Hinweis auf die Zukunft dieses Moduls die Umstellung auch mal in Angriff genommen. Da gibt es ja inzwischen einiges Hilfreiches im Forum http://forum.fhem.de/index.php/topic,39433.0.html (http://forum.fhem.de/index.php/topic,39433.0.html) und in Ottos Blog http://heinz-otto.blogspot.de/2015/07/die-zeiten-andern-sich.html (http://heinz-otto.blogspot.de/2015/07/die-zeiten-andern-sich.html).

Meine daraus generierte Lösung habe ich ins Wiki zum FRITZBOX Modul aufgenommen. http://www.fhemwiki.de/wiki/FRITZBOX (http://www.fhemwiki.de/wiki/FRITZBOX) und bei der Gelegenheit auch gleich die Installation ein wenig an die Stolpersteine angepasst, über die ich gefallen bin.

Vielleicht hilft's dem einen oder anderen, der umstellen möchte.

Gruß, Christian
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 21 August 2015, 09:57:32
Zitat von: PEPITO82 am 19 August 2015, 07:53:09
Daneben habe ich auch meinen 1750E Repeater als FRITZBOX definiert.
Ist dies überhaupt notwendig für die Anwesenheitserkennung, oder werden sowieso alle Geräte auf der Haupt-Fritz!Box gelistet?

Ja, das ist nötig - auch bei der alternativen Methode der Anwesenheitserkennung mittels FRITZBOX Modul. Der Anwesenheitsstatus im Repeater wird nicht an die Fritzbox weitergereicht.

Es gibt einige Möglichkeiten, um die unterschiedlichen Abfragen zu kombinieren. Ich mache das mittels structure:

Internals:
   ATTR       struc_iPhone6
   CHANGED
   DEF        struc_iPhone6 anwesend.Blauzahn.iPhone6 anwesend.Repeater.iPhone6 anwesend.geofency.iPhone6 anwesend.iPhone6
   NAME       da.iPhone6
   NR         54
   NTFY_ORDER 50-da.iPhone6
   STATE      present
   TYPE       structure
   Content:
     anwesend.Blauzahn.iPhone6 present
     anwesend.Repeater.iPhone6 absent
     anwesend.geofency.iPhone6 Zu_Hause
     anwesend.iPhone6 absent
   Readings:
     2015-08-21 09:53:55   LastDevice      anwesend.Blauzahn.iPhone6
     2015-08-21 09:53:55   LastDevice_Abs  anwesend.Blauzahn.iPhone6
     2015-08-21 09:53:55   state           present
Attributes:
   clientstate_behavior relativeKnown
   clientstate_priority present|Zu_Hause absent|underway|error
   event-on-change-reading state
   room       Cfg_Presence
   struc_allePhonesda da.irgendwer
   userattr   struc_allePhonesda struc_allePhonesda_map structexclude


Wichtig ist insbesondere auch clientstate_priority: Erst present (und die Alternativen dazu), dann absent, damit die Structure auf "present" geht, wenn irgendeine der Abfragen "present" als Status ermittelt. "absent" wird die Structure nur, wenn keiner der Tests das iPhone als zu Hause anwesend ermittelt.

Wer mehrere Devices abfragen möchte, kann dann noch eine weitere Structure über die Structures je Device legen:

Internals:
   ATTR       struc_allePhonesda
   DEF        struc_allePhonesda da.iPhone6 da.iPhone5S
   NAME       da.irgendwer
   NR         57
   NTFY_ORDER 50-da.irgendwer
   STATE      present
   TYPE       structure
   Content:
     da.iPhone5S 1
     da.iPhone6 1
   Readings:
     2015-08-20 19:05:44   LastDevice      da.iPhone6
     2015-08-20 19:05:44   LastDevice_Abs  anwesend.geofency.iPhone6
     2015-08-20 19:05:44   state           present
Attributes:
   clientstate_behavior relativeKnown
   clientstate_priority present absent
   event-on-change-reading state
   room       Cfg_Presence


Hier werden zwei Geräte kombiniert. Der Status von da.irgendwer ist "present", wenn irgendwer zu Hause ist.

Vielleicht hilft's.

Gruß, Christian
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: borsti67 am 21 August 2015, 10:04:25
Hallo Christian,

2 Anmerkungen zu Deinem WIKI-Eintrag:
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: caldir65 am 21 August 2015, 10:23:47
Hallo,

ich hätte auch noch eine Anmerkung:

nachdem ich gestern die 7490 aktualisiert habe, bin ich noch einmal meine Konfig der zweiten FB, die das Obergeschoss mit WLan versorgt. Diese ist nicht - wie ich früher behauptet habe als Repeater, sondern im Lan an die 7490 angebunden. Daher werden Devices, die sich auf der zweiten Box im WLan einbuchen, auf der ersten Box (und somit auch in fhem-Presence) als LAN-Device, aber mit der richtigen MAC und (z.T.) dem im Netz definierten Namen angezeigt...

In diesem Fall sollte es genügen, wenn in fhem die Masterbox für Presence abgefragt wird...

Gruß, Christoph

Gesendet von meinem SM-G900F mit Tapatalk

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 21 August 2015, 18:11:40
Hi Borsti,

Zitat von: borsti67 am 21 August 2015, 10:04:25

  • der Attributname "FritzBoxIP" ist IMHO etwas unglücklich gewählt, da durchaus eine DNS-Auflösung stattfindet und somit statt der IP auch der Name verwendet werden kann. Vielleicht solltest Du das ruhig erwähnen?
  • Den LogLevel bitte nicht auf 1 für simple Diagnosemeldungen, das müllt einem das Log voll. Nimm da besser 3 oder noch höher (ich verwende gewöhnlich 4); wer es wirklich dauerhaft so genau wissen will, kann das ja global einstellen. Nur umgekehrt geht das ja nicht. ;)

Danke, habe zu beidem Kommentare aufgenommen.

Gruß, Christian
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Badflex am 23 August 2015, 15:58:09
Hallo, ich Habe das precence modul schon länger laufen.
Jetzt habe ich einen Homematic Aktor an mei Garagentor angeschlossen damit ich das garagentor vom Handy aus öffnen und schließen kann.
Ich habe ein wenig bedenken mit der Sicherheit, weil die Garage im Haus ist.
Ich würde das gerne so machen, das das Garagentor wirklich nur aufgeht wenn das Ausführende Handy anwesend ist.
Ich weis nicht wie ich das realisieren soll.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 23 August 2015, 18:09:57
Wie schaltest Du denn aktuell? Hast Du direkt gepaired, oder Code dazwischen?

Im Prinzip könntest Du mit dem Handy z.B. einen virtuellen Button der vccu betätigen, der dann eine Perlcode abfragt. Pseudo-Code:

if (Value(DeinPresence-Dings) eq "present") {
  fhem("set WasDubrauchstzumGarageÖffnen")
}
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: VolkerL am 24 August 2015, 08:24:24
Hallo,

ich habe einen 2. Repeater installiert und habe nun das Problem dass ich nicht weis, was ich in den Einstellungen verändern muss, dass die Erkennung auch damit funktioniert. Am Router und am Repeater den ich bisher hatte, funktioniert die Anwesenheitserkennung.

Hier meine credentials.cfg, die ich noch um die 3. Box (7320) ergänzt habe:


# PRESENCE credentials (only required for function RemoteFritzBoxWeb)
$credentials{RemoteFritzBox}{ipadress} = '192.168.2.1'; # FB LAN Adress
$credentials{RemoteFritzBox}{username} = '';
$credentials{RemoteFritzBox}{password} = 'Password1';
$credentials{RemoteFritzBox}{model}    = 'FB';                  # optional FB-model: FB (for 7270,7390,7490), 1750E
# only required for a 2nd FB or repeater to be monitored by RemoteFritzBoxWeb - see below
$credentials{RemoteFritzBox1}{ipadress} = '192.168.2.31'; # 2nd FB LAN Adress
$credentials{RemoteFritzBox1}{username} = 'Username'; # optional, else 1st entry will be used
$credentials{RemoteFritzBox1}{password} = 'Password2'; # optional, else 1st entry will be used
$credentials{RemoteFritzBox1}{model}    = 'FB';              # optional FB-model: FB (for 7270,7390,7490), 1750E
# FB #3
$credentials{RemoteFritzBox2}{ipadress} = '192.168.2.43'; # 3nd FB LAN Adress
$credentials{RemoteFritzBox2}{username} = ''; # optional, else 1st entry will be used
$credentials{RemoteFritzBox2}{password} = 'Password3'; # optional, else 1st entry will be used
$credentials{RemoteFritzBox2}{model}    = 'FB';              # optional FB-model: FB (for 7270,7390,7490), 1750E



In der fhem.cfg habe ich folgende Einstellungen, mit denen es aber an der 3. Box nicht funktioniert.


define Volker PRESENCE function {RemoteFritzBoxWeb("xx:xx:xx:xx:xx:xx")} 120 120
attr Volker userattr Bewohner_structure Bewohner_structure_map structexclude
attr Volker Bewohner_structure Bewohner
attr Volker room Bewohner
define Fritzbox2VL PRESENCE function{RemoteFritzBoxWeb("xx:xx:xx:xx:xx:xx", 1)} 120 120
attr Fritzbox2VL userattr Bewohner_structure Bewohner_structure_map structexclude
attr Fritzbox2VL Bewohner_structure Bewohner
define Fritzbox3VL PRESENCE function{RemoteFritzBoxWeb("xx:xx:xx:xx:xx:xx", 1)} 120 120
attr Fritzbox3VL userattr Bewohner_structure Bewohner_structure_map structexclude
attr Fritzbox3VL Bewohner_structure Bewohner


Funktioniert es überhaupt mit zwei Repeater? Und wenn ja, wie.

Vielen Dank

Volker

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Otto123 am 24 August 2015, 09:02:23
Hallo Volker,

hast Du jetzt nur den Threadtitel oder auch ein paar Posts zurück gelesen (http://forum.fhem.de/index.php/topic,17957.msg324775.html#msg324775)?

Da stehen doch die Hinweise. Es funktioniert ziemlich easy aber nicht mit RemoteFritzBoxWeb!

Gruß Otto
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: VolkerL am 24 August 2015, 10:24:04
Hallo Otto,

Danke für den Hinweis.

Ganz ehrlich, ich habe mir nicht die 18 Seiten komplett durchgelesen. ich hatte vor einiger Zeit schon einmal ein Problem mit der Anwesenheitserkennung und habe in diesem Threat Hilfe erhalten, es hat dann funktioniert und habe seit dem die Entwicklung aus den Augen verloren.

Ich werde mich in der Sache mit TR-064 mal einlesen.

Volker
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Otto123 am 24 August 2015, 10:32:08
Zitat von: VolkerL am 24 August 2015, 10:24:04
Ganz ehrlich, ich habe mir nicht die 18 Seiten komplett durchgelesen.
Musst Du nicht :) Ab meinem Link reicht  8) oder ein Stück hochscrollen.

Ich hoffe es hilft Dir. Es geht wirklich einfach, wenn die alles von AVM ist. 8)

Ach so: Alles was da jetzt steht ist sicher nicht der Weisheit letzter Schluss, erstens sind ein paar Leute von hier am überlegen und experimentieren und zweitens experimentiert auch AVM.

Gruß Otto
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: sl12 am 18 Oktober 2015, 15:06:23
Wenn ihr mehr als 99 Geräte in eurer FB WLAN Liste habt funktioniert RemoteFritzBoxWeb nicht mehr richtig.

Da ich gerade einige Zeit mit suchen verbracht habe hier die Lösung:

In der 99_RFritzBox.pm Zeile 273 von ursprünglich
my @data3 = split(/\[\d{1,2}\]/, $data2[1]) if defined($data2[1]); # must be 2nd record

auf folgendes anpassen
my @data3 = split(/\[\d{1,3}\]/, $data2[1]) if defined($data2[1]); # must be 2nd record
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: DerKiLLa am 20 Oktober 2015, 13:29:30
Leider funktioniert es bei mir nicht ...

FritzBox 6490, daher auch ohne Telnet, sondern nur mit Variante 2.

2015.10.20 13:22:14 4: RemoteFritzBoxWeb(xx:xx:xx:xx:xx:xx) FB-number/model set to 0/FB
2015.10.20 13:22:14 4: RemoteFritzBoxWeb connecting for Inform on addr: localhost:7072
2015.10.20 13:22:14 4: RemoteFritzBoxWeb access FB 0 using sid from cache 616d9e5f925c018c
2015.10.20 13:22:14 4: RemoteFritzBoxWeb(xx:xx:xx:xx:xx:xx) Login SID=616d9e5f925c018c
2015.10.20 13:22:14 4: RemoteFritzBoxWeb(xx:xx:xx:xx:xx:xx) was waiting 0 / 0.000145912170410156 seconds for previous scan to complete.
2015.10.20 13:22:14 4: RemoteFritzBoxWeb(xx:xx:xx:xx:xx:xx) HTTP request=http://192.168.0.1/wlan/wlan_settings.lua?sid=616d9e5f925c018c
2015.10.20 13:22:18 2: PRESENCE (OnePlusOne) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb error http://192.168.0.1/wlan/wlan_settings.lua?sid=616d9e5f925c018c: Select timeout/error:  during Web query

Hab leider keine Ahnung, an was er sich stört.

Edit: Es lag am Timeout. Mit 3 war er zu kurz. Mit 10 funktioniert es, werde jetzt mal Einträge in meiner FritzBox löschen.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: herrderflammen87 am 27 Oktober 2015, 15:05:54
Hi muss mich nun leider auch mal zu Wort melden, ich weiß einfach nicht mehr weiter.
Habe heute FHEM auf meinem neuen Produktivsystem (Banana Pro) konfiguriert, bzw. fange gerade an alles zu konfigurieren und hab jetzt aber schon probleme mit dem Status meiner Geräte.

Ich bekomme permanent folgende Meldungen im LOG:

2015.10.27 14:57:18 0: Featurelevel: 5.6
2015.10.27 14:57:18 0: Server started with 29 defined entities (version $Id: fhem.pl 9695 2015-10-26 19:19:05Z rudolfkoenig $, os linux, user fhem, pid 5254)
2015.10.27 14:57:19 2: PRESENCE (wz_device_samsungtv) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb error http://10.0.0.1/net/network_user_devices.lua?sid=4b2861e4ceb55182: Select timeout/error:  during Web query
2015.10.27 14:58:18 1: Timeout for PRESENCE_DoLocalFunctionScan reached, terminated process 5255
2015.10.27 14:58:18 2: PRESENCE (wz_device_ds01) - device could not be checked (retrying in 10 seconds)
2015.10.27 14:58:18 1: Timeout for PRESENCE_DoLocalFunctionScan reached, terminated process 5258
2015.10.27 14:58:18 2: PRESENCE (wz_device_harmonyhub) - device could not be checked (retrying in 10 seconds)
2015.10.27 14:58:18 1: Timeout for PRESENCE_DoLocalFunctionScan reached, terminated process 5259
2015.10.27 14:58:18 2: PRESENCE (wz_device_rpi01) - device could not be checked (retrying in 10 seconds)
2015.10.27 14:58:18 1: Timeout for PRESENCE_DoLocalFunctionScan reached, terminated process 5260
2015.10.27 14:58:18 2: PRESENCE (wz_device_sagemreceiver) - device could not be checked (retrying in 10 seconds)
2015.10.27 14:58:18 1: Timeout for PRESENCE_DoLocalFunctionScan reached, terminated process 5261
2015.10.27 14:58:18 2: PRESENCE (wz_device_samsungtv) - device could not be checked (retrying in 10 seconds)
2015.10.27 14:58:18 1: Timeout for PRESENCE_DoLocalFunctionScan reached, terminated process 5262
2015.10.27 14:58:18 2: PRESENCE (sz_device_aftvs) - device could not be checked (retrying in 10 seconds)
2015.10.27 14:58:18 1: Timeout for PRESENCE_DoLocalFunctionScan reached, terminated process 5263
2015.10.27 14:58:18 2: PRESENCE (sz_device_pstv) - device could not be checked (retrying in 10 seconds)
2015.10.27 14:58:18 1: Timeout for PRESENCE_DoLocalFunctionScan reached, terminated process 5265
2015.10.27 14:58:18 2: PRESENCE (mobi_device_zenpadSven) - device could not be checked (retrying in 10 seconds)
2015.10.27 14:58:18 1: Timeout for PRESENCE_DoLocalFunctionScan reached, terminated process 5267
2015.10.27 14:58:18 2: PRESENCE (mobi_device_lgg3Becci) - device could not be checked (retrying in 10 seconds)
2015.10.27 14:58:18 1: Timeout for PRESENCE_DoLocalFunctionScan reached, terminated process 5268
2015.10.27 14:58:18 2: PRESENCE (mobi_device_nexus7Becci) - device could not be checked (retrying in 10 seconds)
2015.10.27 14:58:28 2: PRESENCE (mobi_device_nexus7Becci) - check returned a valid result after 1 unsuccesful retry
2015.10.27 14:58:37 2: PRESENCE (wz_device_harmonyhub) - check returned a valid result after 1 unsuccesful retry
2015.10.27 14:58:47 2: PRESENCE (wz_device_ds01) - check returned a valid result after 1 unsuccesful retry
2015.10.27 14:58:56 2: PRESENCE (wz_device_rpi01) - check returned a valid result after 1 unsuccesful retry
2015.10.27 14:59:06 2: PRESENCE (wz_device_sagemreceiver) - check returned a valid result after 1 unsuccesful retry
2015.10.27 14:59:15 2: PRESENCE (sz_device_pstv) - check returned a valid result after 1 unsuccesful retry
2015.10.27 14:59:24 2: PRESENCE (mobi_device_lgg3Becci) - check returned a valid result after 1 unsuccesful retry
2015.10.27 14:59:28 1: Timeout for PRESENCE_DoLocalFunctionScan reached, terminated process 5281
2015.10.27 14:59:28 2: PRESENCE (wz_device_harmonyhub) - device could not be checked (retrying in 10 seconds)
2015.10.27 14:59:28 1: Timeout for PRESENCE_DoLocalFunctionScan reached, terminated process 5284
2015.10.27 14:59:28 2: PRESENCE (wz_device_samsungtv) - device could not be checked after 1 retry (retrying in 10 seconds)
2015.10.27 14:59:28 1: Timeout for PRESENCE_DoLocalFunctionScan reached, terminated process 5285
2015.10.27 14:59:28 2: PRESENCE (sz_device_aftvs) - device could not be checked after 1 retry (retrying in 10 seconds)
2015.10.27 14:59:28 1: Timeout for PRESENCE_DoLocalFunctionScan reached, terminated process 5287
2015.10.27 14:59:28 2: PRESENCE (mobi_device_zenpadSven) - device could not be checked after 1 retry (retrying in 10 seconds)
2015.10.27 14:59:33 2: PRESENCE (wz_device_aftv) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb error http://10.0.0.1/net/network_user_devices.lua?sid=4b2861e4ceb55182: Select timeout/error:  during Web query
2015.10.27 14:59:42 2: PRESENCE (wz_device_harmonyhub) - check returned a valid result after 1 unsuccesful retry
2015.10.27 14:59:42 2: PRESENCE (wz_device_harmonyhub) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb error http://10.0.0.1/net/network_user_devices.lua?sid=4b2861e4ceb55182: Select timeout/error:  during Web query
2015.10.27 14:59:52 2: PRESENCE (wz_device_samsungtv) - check returned a valid result after 2 unsuccesful retries
2015.10.27 15:00:01 2: PRESENCE (sz_device_aftvs) - check returned a valid result after 2 unsuccesful retries
2015.10.27 15:00:10 2: PRESENCE (mobi_device_zenpadSven) - check returned a valid result after 2 unsuccesful retries


Systemumgebung:
Fritzbox KD 6490 ohne Telnet
Banana Pro mit FHEM 5.6 (aktuellster Stand)

Habt ihr vllt noch Ideen was ich machen könnte?
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: herrderflammen87 am 27 Oktober 2015, 15:14:18
Zitat von: DerKiLLa am 20 Oktober 2015, 13:29:30
Leider funktioniert es bei mir nicht ...

FritzBox 6490, daher auch ohne Telnet, sondern nur mit Variante 2.

2015.10.20 13:22:14 4: RemoteFritzBoxWeb(xx:xx:xx:xx:xx:xx) FB-number/model set to 0/FB
2015.10.20 13:22:14 4: RemoteFritzBoxWeb connecting for Inform on addr: localhost:7072
2015.10.20 13:22:14 4: RemoteFritzBoxWeb access FB 0 using sid from cache 616d9e5f925c018c
2015.10.20 13:22:14 4: RemoteFritzBoxWeb(xx:xx:xx:xx:xx:xx) Login SID=616d9e5f925c018c
2015.10.20 13:22:14 4: RemoteFritzBoxWeb(xx:xx:xx:xx:xx:xx) was waiting 0 / 0.000145912170410156 seconds for previous scan to complete.
2015.10.20 13:22:14 4: RemoteFritzBoxWeb(xx:xx:xx:xx:xx:xx) HTTP request=http://192.168.0.1/wlan/wlan_settings.lua?sid=616d9e5f925c018c
2015.10.20 13:22:18 2: PRESENCE (OnePlusOne) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb error http://192.168.0.1/wlan/wlan_settings.lua?sid=616d9e5f925c018c: Select timeout/error:  during Web query

Hab leider keine Ahnung, an was er sich stört.

Edit: Es lag am Timeout. Mit 3 war er zu kurz. Mit 10 funktioniert es, werde jetzt mal Einträge in meiner FritzBox löschen.

Wie hast du denn das Timeout geändert? Wie / Wo kann ich das denn einstellen?
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: DerKiLLa am 27 Oktober 2015, 16:25:34
In der 99_RFritzBox.pm

   my $request = {hideurl   => 0,
               url       => $url,
               timeout   => 10,
               data      => '',
               noshutdown=> 1,
               loglevel  => 5,
             };
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: herrderflammen87 am 27 Oktober 2015, 16:28:35
Zitat von: DerKiLLa am 27 Oktober 2015, 16:25:34
In der 99_RFritzBox.pm

   my $request = {hideurl   => 0,
               url       => $url,
               timeout   => 10,
               data      => '',
               noshutdown=> 1,
               loglevel  => 5,
             };


Das ging ja mal fix, habs auch fix mal ausprobiert und siehe da, zumindest mal keine errors mehr =) Danke!
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: FHEM_Seb am 30 Oktober 2015, 20:31:10
Hallo zusammen,

nachdem ich vor einiger Zeit die Anwesenheitserkennung unserer iPhones erfolgreich installiert hatte, bekomme ich seit ein paar Tagen plötzlich ständig Fehlermeldungen im Log, obwohl ich wissentlich nichts verändert habe.

Hat jemand eine gute Idee, wo das Problem liegt?

Hier der Auszug aus dem Logfile:
Zitat2015.10.30 20:14:40 2: PRESENCE (Handy_Sebastian) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb device=50:EA:D6:78:1B:XX not found
2015.10.30 20:14:45 2: PRESENCE (Handy_Nicole) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb device=08:70:45:7F:2F:XX not found
2015.10.30 20:15:42 2: PRESENCE (Handy_Sebastian) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb device=50:EA:D6:78:1B:XX not found
2015.10.30 20:15:48 2: PRESENCE (Handy_Nicole) - error while processing check: unexpected function output (expected 0 or 1): RemoteFritzBoxWeb device=08:70:45:7F:2F:XX not found

Vielen Dank vorab für Eure Hilfe.

Gruß Sebastian
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: roman1528 am 13 November 2015, 08:44:25
Guten Morgen.

RemoteFritzBoxWeb erfolgreich auf FritzBox 7362SL (1&1). Danke dafür.

Wollte eigentlich auch die 1. Variante testen da ich so oder so TelNet an der FB nutze. Nur leider bekomm ich keine FTP-Verbindung und kann die *.sh nicht 'drauf kopieren... Auf der FB ist alles richtig eingestellt und freigegeben und dennoch wird die Verbindung jedes mal abgelehnt...

Grüße^^
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: CoolTux am 13 November 2015, 09:26:27
Hallo

Sofern Deine Fritte eine Firmwareversion > 6.20 hat geht telnet eh nicht mehr.



Grüße
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: roman1528 am 13 November 2015, 09:51:14
Moin.

Verstehe. Danke.  :)

Grüße^^
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: C0mmanda am 17 Dezember 2015, 09:26:45
Habe meine Fritte 7490 jetzt auf FW 6.50 geupdatet und nun funktioniert RemoteFritzBoxWeb leider nicht mehr.
Hat jemand das gleiche Problem und vielleicht auch eine Lösung??

Logs etc kann ich erst später posten da ich nicht zuhause bin....
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 17 Dezember 2015, 10:44:04
Hi C0mmanda,

irgendwann hatte ich schon mal in diesem thread geschrieben, dass das Modul nicht mehr weiterentwickelt/unterstützt wird, weil es:
1) kein telnet mehr auf der FB gibt
2) die Weboberfläche sich mit jeder neuen FB-Version ändert
3) es mittlerweile bessere Lösungen gibt, siehe: http://www.fhemwiki.de/wiki/FRITZBOX (http://www.fhemwiki.de/wiki/FRITZBOX)
l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 17 Dezember 2015, 11:19:19
Ab http://forum.fhem.de/index.php/topic,17957.msg324166.html#msg324166 (http://forum.fhem.de/index.php/topic,17957.msg324166.html#msg324166) stehen in diesem Thread Tipps zur Umstellung.

Gruß, Christian
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: C0mmanda am 21 Dezember 2015, 08:57:47
Vielen Dank für eure zügigen Rückmeldungen.
Habe es jetzt mit dem FRITZBOX-Modul gelöst. Hatte das Modul überhaupt nicht auf dem Schirm und die Möglichkeiten sind schon klasse! (Wenn man das Problem mit dem fehlenden Reading bei Nicht-Anwesenheit gelöst hat ;) )

Vielen Dank!
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: PsychoD am 30 März 2016, 23:34:35
Zitat von: C0mmanda am 21 Dezember 2015, 08:57:47
Vielen Dank für eure zügigen Rückmeldungen.
Habe es jetzt mit dem FRITZBOX-Modul gelöst. Hatte das Modul überhaupt nicht auf dem Schirm und die Möglichkeiten sind schon klasse! (Wenn man das Problem mit dem fehlenden Reading bei Nicht-Anwesenheit gelöst hat ;) )

Vielen Dank!

Bin auch gerade auf das FRITZBOX Modul umgeschwenkt nachdem REMOTEFRITZBOXWEB nicht mehr will. Kannst du vielleicht was zu dem "fehlenden Reading bei Nicht-Anwesenheit" sagen?
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: C0mmanda am 31 März 2016, 07:45:19
Zitat von: PsychoD am 30 März 2016, 23:34:35
Bin auch gerade auf das FRITZBOX Modul umgeschwenkt nachdem REMOTEFRITZBOXWEB nicht mehr will. Kannst du vielleicht was zu dem "fehlenden Reading bei Nicht-Anwesenheit" sagen?

Ich habe es so gelöst das ein at jede Minute prüft ob das Reading vorhanden ist. Wenn ja: Anwesend, wenn nein: Abwesend.


+*00:01 {
if (ReadingsVal("FB7490","mac_A1_B2_CD_E3_45_57","absent") eq "C0mmanda-iPhone (WLAN)") {
fhem ("set C0mmanda_iPhone present")}
else {
fhem ("set C0mmanda_iPhone absent")}
}


FB7490 ist die Fritte, klar.
mac_xx_xx_ ist das Reading und "C0mmanda-iPhone (WLAN)" der Wert zu dem Reading. (Taucht alles von allein im Modul FRITZBOX auf).

Keine Ahnung ob es "schönere" Lösungen gibt, aber sie funktioniert.

Gruß
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: DerKiLLa am 31 März 2016, 12:28:16
Also ich hatte es übernommen und es funktioniert ohne Änderungen problemlos:

sub checkFritzMACpresent($$) {
  # Benötigt: Name der zu testenden Fritzbox ($Device),
  #           zu suchende MAC ($MAC),
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($Device, $MAC) = @_;
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my $StatusFritz = ReadingsVal($Device, $MAC, "weg");
  if ($StatusFritz eq "weg") {
    Log 1, ("checkFritzMACpresent ($Device): $MAC nicht gefunden, abwesend.");
    $Status = 0;
  } elsif ($StatusFritz eq "inactive") {
    Log 1, ("checkFritzMACpresent ($Device): $MAC ist >inactive<, also abwesend.");
    $Status = 0;
  } else {
    # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät per WLAN angemeldet.
    Log 1, ("checkFritzMACpresent ($Device): $MAC gefunden, Gerät heißt >$StatusFritz<.");
    $Status = 1;
  }
  return $Status
}


Und als definse:
define FritzBox FRITZBOX 192.168.0.1
attr FritzBox devStateIcon .*on.*off:WLAN_on_gWLAN_off .*on.*on.*:WLAN_on_gWLAN_on WLAN..off.*:WLAN_off
attr FritzBox icon it_router

define SmartphoneNico PRESENCE function {checkFritzMACpresent("FritzBox","XX:EE:XX:20:XX:DE")} 60 60
attr SmartphoneNico devStateIcon present:status_available absent:status_away_2 error:10px-kreis-rot
attr SmartphoneNico icon it_smartphone
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 31 März 2016, 13:42:51
Vielleicht ein bisschen ressourcenschonender, weil man sich die regelmäßige Abfrage spart, könnte ein Notify sein:

Fritzbox:mac_AA_BB_CC_DD_EE_FF:.* {
  if (ReadingsVal("Fritzbox", "mac_70_3E_AC_35_27_22", "inactive") eq "inactive") {
    fhem("set anwesend.Fritzbox.iPhone6 absent");
  } else {
    fhem("set anwesend.Fritzbox.iPhone6 present");
  }
}
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: C0mmanda am 05 April 2016, 18:31:32
Zitat von: Motivierte linke Hände am 31 März 2016, 13:42:51
Vielleicht ein bisschen ressourcenschonender, weil man sich die regelmäßige Abfrage spart, könnte ein Notify sein:

Fritzbox:mac_AA_BB_CC_DD_EE_FF:.* {
  if (ReadingsVal("Fritzbox", "mac_70_3E_AC_35_27_22", "inactive") eq "inactive") {
    fhem("set anwesend.Fritzbox.iPhone6 absent");
  } else {
    fhem("set anwesend.Fritzbox.iPhone6 present");
  }
}


Danke für den Tip! Klappt prima.

grtz
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: DerKiLLa am 06 April 2016, 08:27:25
Damit spare ich mir im Prinzip die Funktion checkFritzMACpresent($$) oder?

define von Firtzbox bleibt gleich, aber wie ändere ich das define von SmartphoneNico in dem Fall ab?
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 06 April 2016, 13:35:54
Die Frage ist, was genau Du machen möchtest. Um

fhem("set anwesend.Fritzbox.iPhone6 absent");

bzw. in Deinem Fall

fhem("set SmartphoneNico absent");

nutzen zu können, reicht grundsätzlich ein

define SmartphoneNico dummy

Deine Attribute könntest Du weiterverwenden, wobei allerdings der state "error" nie kommen wird mit dem notify. D.h. es würde auch reichen ein:

attr SmartphoneNico devStateIcon present:status_available absent:status_away_2
attr SmartphoneNico icon it_smartphone

Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Zuendapp am 04 Mai 2016, 00:31:34
Hallo,

ich bekomme im Log immer folgende Fehlermeldung.
Im Einsatz ist die Variante 2 mit einem RaspberryPi und einer FB7490 (FW 6.51).

Hier der Fehler:

2016.05.04 00:11:35 1: PERL WARNING: Argument "(1-5)" isn't numeric in numeric gt (>) at fhem.pl line 815.
2016.05.04 00:11:38 2: PRESENCE (myEiFonStatus) - error while processing check: unexpected function output (expected 0 or 1): parsing of FB-Website failed


Danke und Gruß
Zuendapp
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 04 Mai 2016, 08:08:41
Hi - Vielleicht versuchst Du es lieber mit einer der - auch in diesem Thread beschriebenen - Alternativen. Das RemoteFritzbox-Modul wird nämlich nicht weiterentwickelt, wie Erwin u.a. in https://forum.fhem.de/index.php/topic,17957.msg375688.html#msg375688 (https://forum.fhem.de/index.php/topic,17957.msg375688.html#msg375688) schrieb.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: CoolTux am 04 Mai 2016, 10:56:01
Aua Aua, Bitte bitte Richtig stellen. Das PRESENCE Modul wird sehr wohl weiter entwickelt. Das Modul hat mit der Fritzbox und deren Telnet speerung so gut wie gar nichts zu tun
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Motivierte linke Hände am 04 Mai 2016, 11:04:37
Sorry, hab's editiert.  :)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: CoolTux am 04 Mai 2016, 11:06:53
Danke Dir. Nicht das die Leute noch in Panik ausbrechen und den Weltuntergang befürchten  ;D
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Zuendapp am 06 Mai 2016, 17:30:14
Hat jemand trotzdem nen Tipp für mich?

Danke und Gruß
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: CoolTux am 06 Mai 2016, 17:47:30
Zitat von: Zuendapp am 06 Mai 2016, 17:30:14
Hat jemand trotzdem nen Tipp für mich?

Danke und Gruß

Nicht ohne mehr Info/Code
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Zuendapp am 06 Mai 2016, 18:02:07
Hi,

so sieht meine credentials.cfg aus:
# PRESENCE credentials (only required for function RemoteFritzBoxWeb)
$credentials{RemoteFritzBox}{ipadress} = '192.168.178.1';        # FB LAN Adress
$credentials{RemoteFritzBox}{username} = 'admin';
$credentials{RemoteFritzBox}{password} = '123456';
$credentials{RemoteFritzBox}{model}    = 'FBLAN';                       # optional FB-model: FB, FBLAN, 1750E


Das Modul 99_RFritzBox.pm hat alle Rechte für den User FHEM erhalten.
Aktuelles Image auf der FB ist 06.51

Und hier der Fehler, außer du sagst ich muss das Logging noch feiner stellen:

2016.05.06 17:57:09 1: PERL WARNING: Subroutine RFritzBox_Initialize redefined at ./FHEM/99_RFritzBox.pm line 101.
2016.05.06 17:57:09 1: PERL WARNING: Subroutine RemoteFritzBox redefined at ./FHEM/99_RFritzBox.pm line 106.
2016.05.06 17:57:09 1: PERL WARNING: Subroutine RemoteFritzBoxWeb redefined at ./FHEM/99_RFritzBox.pm line 184.
2016.05.06 17:57:09 1: PERL WARNING: Subroutine FB_checkPw1 redefined at ./FHEM/99_RFritzBox.pm line 316.
2016.05.06 17:57:09 1: PERL WARNING: Subroutine BlockingInformFHEM redefined at ./FHEM/99_RFritzBox.pm line 361.
2016.05.06 17:58:31 2: PRESENCE (myEiFonStatus) - error while processing check: unexpected function output (expected 0 or 1): parsing of FB-Website failed


Viele Grüße
Zündapp
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: CoolTux am 06 Mai 2016, 18:12:29
Gib mal noch Deine 99er. Aber ich würde mal sagen, dadurch das sich der Aufbau des Frontends geändert hat kann er nicht mehr korrekt parsen.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Zuendapp am 06 Mai 2016, 18:17:03
Hi,

anbei meine 99er.

VG
Zündapp
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: CoolTux am 07 Mai 2016, 08:28:35
Wollte mich kurz melden, bist nicht vergessen. Komme aber erst heute nach dem Mittag dazu in Deine Datei zu schauen.


Grüße
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: CoolTux am 07 Mai 2016, 12:48:09
Du scheint das FritzBoxWeb auf zu rufen, da sich hier ja einiges geändert hat wird es in der Tat daran liegen.
Aber ohne genaue Perlkenntnisse und austesten durch direktes aufrufen der Sub über die Kommandozeile von FHEM wirst Du hier nicht weiter kommen.
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Zuendapp am 07 Mai 2016, 14:08:43
Hi,

ich hab testweise ne alte Firmware (06.23) draufgespielt und es lief damit.
D.h. Erstmal auf ne neue Version vom Plugin warten.

Danke und Gruß
Zündapp
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: chris1284 am 30 Mai 2016, 19:29:22
wie sieht es hier aus? der entwickler leistet wohl keinen support mehr?! (obwohl er noch im forum aktiv ist...)
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: erwin am 31 Mai 2016, 00:24:23
Hi Chris1284 & Zuendapp,

sorry, ich leiste keinen Supoort mehr für diesen Zusatz zum Presence-Modul.
Begründung in diesem Thread: https://forum.fhem.de/index.php/topic,17957.msg313354.html#msg313354 (https://forum.fhem.de/index.php/topic,17957.msg313354.html#msg313354)
Alternativen (auch mit 1:1 Funktionalität) sind in diesem Thread und im Wiki ausreichend beschrieben.

l.g. erwin
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: VolkerL am 08 August 2016, 22:18:10
Hallo,

ich habe meine 7490 vorgestern auf die Labor-Version 6.69 upgedatet. Damit funktioniert bei mir die Anwesenheitserkennung nicht mehr. Es werden keine MAC-Adressen mehr im Type "Fritzbox" angezeigt.

Funktioniert es irgendwo oder muss ich die Labor-Version wieder runter schmeißen?

Gruß

Volker
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Otto123 am 08 August 2016, 23:04:57
Hallo Volker,

das Problem haben andere (https://forum.fhem.de/index.php/topic,29725.msg479083.html#msg479083) auch.

Gruß Otto
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: chris1284 am 09 August 2016, 07:32:53
das "problem" ist eigentlich seit geraumer zeit keines mehr das es schon lange eine lösung gibt http://www.fhemwiki.de/wiki/FRITZBOX#Anwesenheitserkennung_per_regelm.C3.A4.C3.9Figer_Abfrage_.C3.BCber_das_PRESENCE_Modul
Titel: Antw:PRESENCE-RemoteFritzbox
Beitrag von: Otto123 am 09 August 2016, 11:56:03
Hallo chris1284,

da verstehst Du was falsch, das "Problem" ist nicht die Anwesenheitserkennung an sich, sondern, dass die Readings mit den mac Adressen fehlen, deswegen mein Link.
Und Volker hat eventuell nicht mitbekommen, das er eigentlich im falschen Thread ist weil die presence Funktion jetzt mit einem anderen Modul gelöst wird, was ihm aber auch nicht weiterhilft.

Gruß Otto