PRESENCE-RemoteFritzbox

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

Vorheriges Thema - Nächstes Thema

Ragnar

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

erwin

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

Wondermusic

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
RPi 3B+ FHEM-Server mit HM-MOD-RPI-PCB
RPi2 mit HM-MOD-RPI-PCB
HM-CFG-LAN
RPi 4 mit ioBroker
>100 HM Sensoren & Aktoren, div. ESP8266 via mqtt, ems-esp

erwin

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

Wondermusic

#64
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! :)
RPi 3B+ FHEM-Server mit HM-MOD-RPI-PCB
RPi2 mit HM-MOD-RPI-PCB
HM-CFG-LAN
RPi 4 mit ioBroker
>100 HM Sensoren & Aktoren, div. ESP8266 via mqtt, ems-esp

erwin

Hi,
ich hab jetzt eine neue Beta-Version erstellt, hier: 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
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Motivierte linke Hände

#66
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.
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

erwin

#67
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
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Motivierte linke Hände

#68
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.
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

erwin

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

erwin

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

Motivierte linke Hände

#71
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.
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

erwin

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

Motivierte linke Hände

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,

  • ich kopiere einfach mal Deine 99_RFritzbox.pm in 99_RFritzRepeater.pm
  • ich, 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"
  • ich ändere "sub FB_checkPw1" in "sub FR_checkPw1"

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!
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

erwin

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