PRESENCE-RemoteFritzbox

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

Vorheriges Thema - Nächstes Thema

Motivierte linke Hände

(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


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

#76
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
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

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

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

ich habe jetzt die Version 1.7 im ersten Post attached.
Viel Spass!
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

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

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

Ich danke für die Änderungen!!!  :)
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.

ufo-hans

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.

PsychoD

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

Motivierte linke Hände

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.

PsychoD

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

Motivierte linke Hände

Hm, und wenn Du als erstes mal das Passwort änderst, um auszuschließen, dass es an der Raute liegt?
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 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
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,...

PsychoD

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