98_FBREMOTE.pm - Anwesenheitserkennung mit entkoppelter remoter Fritzbox Abfrage

Begonnen von frankbeckers, 07 April 2014, 21:13:54

Vorheriges Thema - Nächstes Thema

frankbeckers

Hallo zusammen,

um es direkt vorweg zu nehmen: Ich bin an Verbesserungen, Ergänzungen, Fehlerhinweisen interessiert und werde dies auch hier wieder zur Verfügung stellen.


Meine Motivation:

Leider haben in meiner Installation alle mir bekannten Anwesenheitserkennungen (PRESENCE, GEOFANCY, Lösungen aus dem Forum, Lösungen aus Wiki, eigene Versuche) irgendwann ein Problem verursacht. Entweder hat die Infrastruktur (z.B. Bluetooth) nicht dauerhaft funktioniert oder es hat Sekundenlange Stillstände in meiner Fhem Installation gegeben. Auch die Abfrage mehrere Endgeräte verschärfte die Situation merklich.

Außerdem wollte ich keine Modifikation an meiner FritzBox 7390 vornehmen, d.h. keine Scripte, kein Server oder auch keine eigene Fhem Instanz auf der Fritzbox. Weiterhin fand ich die offene Architektur von HTTPMOD sehr gut, da man dort mit den abgerufenen Daten eines HttpRequest's machen kann, was man will.



Umsetzung:

Aus diesen Rahmenbedingungen ist ein eigenes Modul (hier z.Zt. 98_FBREMOTE.pm) entstanden, welches ich hier vorstellen und zur Verfügung stellen möchte:


Die Device Definition sieht wie folgt aus: (Hinweis: Passwort und MAC Adressen hier absichtlich nicht sinnvoll)

define fbremote_network FBREMOTE http://fritz.box/net/network_user_devices.lua 120
attr fbremote_network event-on-update-reading iphone.*,samsung.*,imac.*
attr fbremote_network fb_password geheim
attr fbremote_network fb_user fhem
attr fbremote_network readingsExprPre $val =~ s/\s//g;; $val
attr fbremote_network readingsName10_data data
attr fbremote_network readingsName20_iphone3 iphone3
attr fbremote_network readingsName20_iphone4 iphone4
attr fbremote_network readingsName20_iphone5 iphone5
attr fbremote_network readingsName20_samsunggalaxy4mini samsunggalaxy4mini
attr fbremote_network readingsName30_imac imac
attr fbremote_network readingsRegex10_data (.*)
attr fbremote_network readingsRegex20_iphone3 ([^\{]+00:00:00:00:00:00[^\}]+)
attr fbremote_network readingsRegex20_iphone4 ([^\{]+00:00:00:00:00:00[^\}]+)
attr fbremote_network readingsRegex20_iphone5 ([^\{]+00:00:00:00:00:00[^\}]+)
attr fbremote_network readingsRegex20_samsunggalaxy4mini ([^\{]+00:00:00:00:00:00[^\}]+)
attr fbremote_network readingsRegex30_imac ([^\{]+00:00:00:00:00:00[^\}]+)
attr fbremote_network readingsRegexPre \<pre\>([\s\S]+)\<\/pre\>
attr fbremote_network room Anwesenheit


Dabei haben die Definitionen folgende Bedeutung:

...es wird die die Seite http://fritz.box/net/network_user_devices.lua alle 120 Sekunden überwacht:

define fbremote_network FBREMOTE http://fritz.box/net/network_user_devices.lua 120


...es werden die readingFnAttributes unterstützt. (Doku: http://fhem.de/commandref.html#readingFnAttributes). In diesem Beispiel werden nur alle Reading Updates von "iphone.*,samsung.*,imac.*" weiter geschickt.

attr fbremote_network event-on-update-reading iphone.*,samsung.*,imac.*


...es werden der User "fhem" mit dem Passwort "geheim" für die remote Anmeldung genutzt. Ich habe zur besseren Unterscheidung einen eigenen User "fhem" mit eigenem Passwort auf der Fritzbox definiert, dies ist aber nicht zwingend notwendig. Falls kein User angegeben ist, wird der Master/Root Login der Fritzbox mit dem entsprechenden Passwort versucht. Die Angabe des Passwortes ist natürlich zwingend erforderlich.

attr fbremote_network fb_password geheim
attr fbremote_network fb_user fhem


Bei dieser Anmeldung wird das neue Anmeldeverfahren (ab FritzOS 5.50) genutzt. Die daraus resultierende SID wird als Reading gespeichert und für alle weiteren Abfragen genutzt. Da solch eine SID eine Gültigkeit von 10 Minuten nach ihrer letzten Nutzung hat, wird diese SID bei einem Intervall von 120 Sekunden ewig gültig sein. Falls die bekannte SID einmal nicht mehr gültig sein sollte, wird automatisch ein neue SID bestimmt. (Das Bestimmen der SID ist der einzige nicht entkoppelte Teil, welcher zu einer kurzen Verzögerung führen kann. Da dies aber selten passiert, habe ich diesen Teil absichtlich nicht entkoppelt.)


...optional können die empfangenen Rohdaten bearbeitet (hier verkleinert bzw. verdichtet) werden. Man kann sich grob den gewünschten Daten nähern. Reine Performance Gesichtspunkte.

attr fbremote_network readingsExprPre $val =~ s/\s//g;; $val
attr fbremote_network readingsRegexPre \<pre\>([\s\S]+)\<\/pre\>




...nun werden dynamisch die Rohdaten analog HTTPMOD untersucht und Teile davon in eigenen Readings gespeichert. In diesem Beispiel werden die für eine Anwesenheitserkennung notwendigen Teile eines beliebigen LAN/WLAN Endgerätes anhand seiner MAC Adresse aus den Rohdaten gefischt. (00:00:00:00:00:00 sind durch die eigene Mac Adresse zu ersetzen)

attr fbremote_network readingsName20_iphone5 iphone5
attr fbremote_network readingsRegex20_iphone5 ([^\{]+00:00:00:00:00:00[^\}]+)


Das Ergebnis kann wie folgt aussehen (private Daten wieder unkenntlich gemacht):

["UID"]="landevice9165",["_node"]="landevice27",["active"]="1",["auto_wakeup"]="0",["deleteable"]="1",["dhcp"]="1",["ethernet"]="0",["ethernet_port"]="0",["guest"]="0",["ip"]="192.168.178.36",["ipv6_ifid"]="",["mac"]="00:00:00:00:00:00",["manu_name"]="1",["name"]="iPhone5",["online"]="0",["parentname"]="",["parentuid"]="",["plc"]="0",["source"]="0x1316",["speed"]="65",["static_dhcp"]="1",["url"]="",["vendorname"]="",["wakeup"]="0",["wlan"]="1",["wlan_UIDs"]="wlan00:00:00:00:00:00",["wlan_show_in_monitor"]="1",["wlan_station_type"]="default"

Dies kann auch gleichzeitig für mehrere Geräte definiert werden (siehe Beispiel oben), d.h. es muss nicht mehr für jedes Gerät ein erneuerter Aufruf/Abruf stattfinden, sondern in jedem Zeitzyklus (im Beispiel hier 120 Sekunden) können alle Geräte zeitgleich bestimmt werden.

Optional könnten diese Teildaten auch mit "attr fbremote_network readingsExpr20_iphone5 was_auch_immer_mit_$val_gemacht_werden_kann" verändert werden. Dies ist in diesem Ablauf aber nicht notwendig/sinnvoll.


An dieser Stelle ist die reine Funktionalität des Moduls (remote Daten der Fritzbox abrufen) zu Ende. Die eigentliche Anwesenheitserkennung findet nun an andere Stelle statt. Ab hier können natürlich alle bekannten Funktionen von PRESENCE oder ähnlichem wieder ziehen. Ich habe mich allerdings für einen eigenen Weg entschieden, welcher aus eine Notify, einem Dummy und einem Watchdog Device besteht, welche ich im folgenden noch beschreibe:




In dem Notify Device werden die Daten des Endgerätes verarbeitet (hier wieder das Beispiel iPhone5) und in eigene Readings gespeichert:

define iPhone5RemoteFritzbox notify fbremote_network:iphone5.* {\
\
my $landevice = $EVENT;;\
my $speed = "";;\
my $active = "";;\
\
fhem("setreading iPhone5 landevice $landevice");;\
\
if ( $landevice =~ /speed\"\]\s*=\s*\"([0-9]+)/ ) { $speed=$1;; fhem("setreading iPhone5 speed $1");; }\
if ( $landevice =~ /active\"\]\s*=\s*\"([0-9]+)/ ) { $active=$1;; fhem("setreading iPhone5 active $1");; }\
\
if ( $landevice =~ /\[\"name\"\]\s*=\s*\"([a-zA-Z0-9-]+)\"/ ) { fhem("setreading iPhone5 name $1");; }\
if ( $landevice =~ /\[\"ip\"\]\s*=\s*\"([0-9.]+)\"/ ) { fhem("setreading iPhone5 ip $1");; }\
\
my $status = "off";;\
if ( $speed > 0 ) { $status = "on";; } else { if ( $active == 1 ) { $status = "on";; } }\
\
fhem("set iPhone5 $status");;\
\
}
attr iPhone5RemoteFritzbox room Anwesenheit


Anhand von "speed>0" kann direkt festgestellt werden, ob ein Endgerät "anwesend" ist. Sollte man sich in einem repeat'eten Netzwerk befinden, gibt bei "speed=0" noch der Zustand von "active=[0|1]" Hinweise auf eine mögliche Anwesenheit. Allerdings sind auch hier der Fritzbox die Hände gebunden, und eine Nicht-Anwesenheit in einem repeat'eten Netzwerk wird erst nach 15-20 Minuten festgestellt. Daher sollten die überwachten Endgeräte, wenn möglich, immer den direkten Kontakt zur Fritzbox aufbauen, nicht zu einem WLAN Repeater.

Zum Schluss wird mit Hilfe eines Dummy Devices der Zustand des Endgerätes visualisiert:

define iPhone5 dummy
attr iPhone5 eventMap 1
attr iPhone5 icon it_smartphone
attr iPhone5 room Anwesenheit


Um es noch zu vervollständigen, löst erst ein Watchdog die Abwesenheit (hier eine Pushover Nachricht: "trigger Pushover iPhone5 abwesend") aus. Somit sind auch kleinere Aussetzer, z.B. Handy kurz ausgeschaltet etc., abgedeckt. Außerdem muss der Watchdog wieder zurückgesetzt werden.

define iPhone5Watchdog watchdog iPhone5:off.* 00:05 iPhone5:on.* trigger Pushover iPhone5 abwesend
attr iPhone5Watchdog regexp1WontReactivate 1
attr iPhone5Watchdog room Anwesenheit

...

define iPhone5WatchdogSetDefined notify iPhone5:on.* trigger iPhone5Watchdog .
attr iPhone5WatchdogSetDefined room Anwesenheit



Somit wäre die Nutzung des Moduls zur Anwesenheitserkennung vollständig. In meiner Umgebung habe ich damit zuverlässige Ergebnisse erzielt.




Beispiele für weitere Anwendungen um Daten remote aus der Fritzbox zu holen:

Auslastungsüberwachung der Fritzbox in Fhem. Dazu werden wieder zyklisch von der entsprechenden Seite die Performancewerte der Fritzbox ausgewertet. Diese lassen sich dann in einem Graphen (über FileLog und SVG) visualisieren:

define fbremote_energy FBREMOTE http://fritz.box/system/energy.lua 60
attr fbremote_energy event-on-update-reading power.*,sid
attr fbremote_energy fb_password geheim
attr fbremote_energy fb_user fhem
attr fbremote_energy readingsExprPre $val =~ s/[\r\n\s+]//g;; $val
attr fbremote_energy readingsName10_data data
attr fbremote_energy readingsName20_power_status_rate_systemact power_status_rate_systemact
attr fbremote_energy readingsName21_power_status_rate_systemcum power_status_rate_systemcum
attr fbremote_energy readingsName22_power_status_rate_wlanact power_status_rate_wlanact
attr fbremote_energy readingsName23_power_status_rate_wlancum power_status_rate_wlancum
attr fbremote_energy readingsName24_power_status_rate_sumact power_status_rate_sumact
attr fbremote_energy readingsName25_power_status_rate_sumcum power_status_rate_sumcum
attr fbremote_energy readingsRegex10_data (.*)
attr fbremote_energy readingsRegex20_power_status_rate_systemact power:status/rate_systemact"]="([0-9]+)"
attr fbremote_energy readingsRegex21_power_status_rate_systemcum power:status/rate_systemcum"]="([0-9]+)"
attr fbremote_energy readingsRegex22_power_status_rate_wlanact power:status/rate_wlanact"]="([0-9]+)"
attr fbremote_energy readingsRegex23_power_status_rate_wlancum power:status/rate_wlancum"]="([0-9]+)"
attr fbremote_energy readingsRegex24_power_status_rate_sumact power:status/rate_sumact"]="([0-9]+)"
attr fbremote_energy readingsRegex25_power_status_rate_sumcum power:status/rate_sumcum"]="([0-9]+)"
attr fbremote_energy readingsRegexPre \<pre\>([\s\S]+)\<\/pre\>
attr fbremote_energy room Anwesenheit


Überwachung der Internetverbindung:

define fbremote_inetstat FBREMOTE http://fritz.box/internet/inetstat_monitor.lua 300
attr fbremote_inetstat event-on-update-reading connection.*,sid
attr fbremote_inetstat fb_password geheim
attr fbremote_inetstat fb_user fhem
attr fbremote_inetstat readingsExprPre $val =~ s/[\r\n\s+]//g;; $val
attr fbremote_inetstat readingsName10_data data
attr fbremote_inetstat readingsName20_connection0_status_ip connection0_status_ip
attr fbremote_inetstat readingsName30_connection0_status_conntime_date connection0_status_conntime_date
attr fbremote_inetstat readingsName40_connection0_status_conntime_time connection0_status_conntime_time
attr fbremote_inetstat readingsRegex10_data (.*)
attr fbremote_inetstat readingsRegex20_connection0_status_ip connection0:status/ip"]="([0-9.]+)"
attr fbremote_inetstat readingsRegex30_connection0_status_conntime_date connection0:status/conntime_date"]="([0-9.]+)"
attr fbremote_inetstat readingsRegex40_connection0_status_conntime_time connection0:status/conntime_time"]="([0-9:]+)"
attr fbremote_inetstat readingsRegexPre \<pre\>([\s\S]+)\<\/pre\>
attr fbremote_inetstat room Anwesenheit



Diese drei Anwendungen des Moduls laufen bei mir seit einiger Zeit stabil und fehlerfrei, und führen zu keinerlei Performance Beeinträchtigung.




#   Changelog:
#   2014-03-23   initial version
#   2014-03-25   login.lua with HttpUtils_NonblockingGet
#   2014-04-07   InternalTimer verlagert, damit Timeout bei GetSID laufen
#   2014-04-10   added Attribute timeout, default 5 seconds
#   2014-04-10   added Internals for next execution time TRIGGERTIME, TRIGGERTIME_FMT
#   2014-04-16   deleted DevIo_CloseDev($hash) from sample
#   2014-06-02   added Attribute noshutdown, default 0

FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

Loredo

Über PRESENCE auf einer FHEM Instanz auf der Fritzbox und Verbindung via FHEM2FHEM auf deine externe FHEM Instanz hast du nicht nachgedacht? Deine Lösung klingt umständlich/kompliziert und diese Kombination macht vermutlich das gleiche. Vorteil: Es muss nicht gepollt werden.


Ich hab's anders im Einsatz (GEOFANCY+ROOMMATE), daher kann ich nicht aus Erfahrung sprechen.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

frankbeckers

#2
Zitat von: Loredo am 07 April 2014, 21:18:11
Über PRESENCE auf einer FHEM Instanz auf der Fritzbox und Verbindung via FHEM2FHEM auf deine externe FHEM Instanz hast du nicht nachgedacht? Deine Lösung klingt umständlich/kompliziert und diese Kombination macht vermutlich das gleiche. Vorteil: Es muss nicht gepollt werden.

Über Fhem auf 7390 und Nutzung PRESENCE und FHEM2FHEM hatte ich auch nachgedacht, aber für mich verworfen, da ich keine Installation auf der Fritzbox haben möchte.

Wer nun das Polling macht, ist wahrscheinlich egal, denn PRESENCE macht auf der Fritzbox auch ein Polling, nur halt via (Shell)cmd "/usr/bin/ctlmgr_ctl". Allerdings muss bei PRESENCE je Endgerät ein Device definiert werden, welches auch einzeln gepollt wird. Ohne es in Zahlen aufzeigen zu können, wird das redundante Abfragen eventuell mehr Overhead erzeugen.

Zitat von: Loredo am 07 April 2014, 21:18:11Ich hab's anders im Einsatz (GEOFANCY+ROOMMATE), daher kann ich nicht aus Erfahrung sprechen.

Die Variante mit GEOFANCY hatte ich auch getestet. Da aber der minimale Radius von geofancy so "gross" ist, hat es bei mir auch nicht zuverlässig funktioniert.


Vielleicht liest sich meine Variante auch so kompliziert, weil ich sie so ausführlich hier beschrieben habe.  ;)
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

rudolfkoenig

ZitatIch bin an Verbesserungen, Ergänzungen, Fehlerhinweisen interessiert...
- ich wuerde entweder LWP oder HttpUtils verwenden, beide machen ungefaehr das gleiche
- sprintf("%s",$val) (aus readingsExprPre) ist das gleiche wie $val
- Fuer ein HTTPMOD ist sowas wie readingsExprPre sinnvoll, bei einer festen Struktur wie beim Fritzbox muesste man das sparen bzw. fest kodieren koennen, damit der Benutzer weniger wissen muss.
- statt readingsName30_imac und readingsRegex30_data wuerde ich ein Attribut mit zwei Argumenten (Leerzeichen getrennt) nehmen, das wuerde den Anzahl der "Benutzerattribute" und damit die Komplexitaet verringern.


Das ist nur meine Meinung und nicht als Kritik gedacht, das Modul finde ich sonst ok und sinnvoll.

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

frankbeckers

Hallo Erwin,

Deine Lösung kenne ich auch.

Zitat von: erwin am 08 April 2014, 18:26:05
Allerdings als "addon" zu PRESENCE.

Nachdem meine Versuche mit den "normalen" Funktionen von PRESENCE leider nicht so erfolgreich waren (siehe mein erstes Posting), habe ich mir Deine Lösung von RemoteFritzBoxWeb() via PRESENCE function() aufzurufen sehr genau angesehen. Leider benutzt Du HttpUtils_BlockingGet() für die Aufrufe, wodurch es wie bei meinen eigenen Versuchen zu sekundenlangen Stillständen in Fhem kommt. Ich prüfe halt mehrere Endgerät für verschiedene Szenarien ab. Und ab und zu liefert die Fritzbox eben nicht ganz so schnell zurück. Deshalb musste für mich eine Lösung mit HttpUtils_NonblockingGet() her...

Gruß
Frank
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

frankbeckers

Zitat von: rudolfkoenig am 08 April 2014, 13:24:43
Das ist nur meine Meinung und nicht als Kritik gedacht, das Modul finde ich sonst ok und sinnvoll.

Ist auch gar nicht als Kritik angekommen. Schließlich möchte ich noch mehr erfahren/lernen.


Zitat von: rudolfkoenig am 08 April 2014, 13:24:43
- sprintf("%s",$val) (aus readingsExprPre) ist das gleiche wie $val

...habe ich bereits ausprobiert. Funktioniert einwandfrei. Werde auch mein erstes Posting um folgendes
attr fbremote_energy readingsExprPre $val =~ s/[\r\n\s+]//g;; $val
abändern und ergänzen.


Zitat von: rudolfkoenig am 08 April 2014, 13:24:43
- ich wuerde entweder LWP oder HttpUtils verwenden, beide machen ungefaehr das gleiche

...ja, es macht Sinn nur eine Variante zu nutzen. Wenn ich schon für die Nonblocking Aufrufe die HttpUtils verwende, dann macht dies für die Blocking Aufrufe natürlich auch Sinn. Werde mich demnächst daran setzen.


Zitat von: rudolfkoenig am 08 April 2014, 13:24:43
- Fuer ein HTTPMOD ist sowas wie readingsExprPre sinnvoll, bei einer festen Struktur wie beim Fritzbox muesste man das sparen bzw. fest kodieren koennen, damit der Benutzer weniger wissen muss.

...hier bin ich anderer Meinung. Auch wenn die Nutzung komplexer ist, so ist sie damit aber auch flexibler. So kann jeder die Daten extrahieren, die er braucht. z.Zt. sind meine Beispiele alle auf die Struktur ...<pre>hier_stehen_die_Daten</pre>... angepasst. Es gibt aber auch Fritzbox Seiten, wo die Daten in anderen Bereichen "versteckt" sind.


Zitat von: rudolfkoenig am 08 April 2014, 13:24:43
- statt readingsName30_imac und readingsRegex30_data wuerde ich ein Attribut mit zwei Argumenten (Leerzeichen getrennt) nehmen, das wuerde den Anzahl der "Benutzerattribute" und damit die Komplexitaet verringern.

...darüber werde ich mal etwas länger nachdenken müssen.


Vielen Dank für Deine Verbesserungsvorschläge und Anregungen.
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

blueberry63

Hallo,

ich habe Dein Modul mal eingebaut, bekomme aber die Geräte (iPhones) aber immer als "anwesend" angezeigt, obwohl sie in der FB-Oberfläche unter "ungenutze Verbindungen" aufgelistet sind. Kann es an der "Speed-Abfrage" liegen? Jedenfalls ist auf der FB-Oberfläche in der Spalte "Verbindung" "WLAN" zu sehen, auch wenn das Gerät gerade nicht im Netzwerk ist (s. Anhang).

Gruß
Blueberry63

FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

blueberry63

Hallo,

noch ein Nachtrag zu meinem vorherigen Post:

Zitat
["UID"]="landevice6890",["_node"]="landevice16",["active"]="0",["auto_wakeup"]="0",["deleteable"]="2",["dhcp"]="0",["ethernet"]="1",["ethernet_port"]="1",["guest"]="0",["ip"]="192.168.99.104",["ipv6_ifid"]="",["mac"]="60:C5:47:7E:8C:C0",["manu_name"]="0",["name"]="iPhone4s-xxxxx",["online"]="0",["parentname"]="",["parentuid"]="",["plc"]="0",["source"]="0x1202",["speed"]="100",["static_dhcp"]="0",["url"]="",["vendorname"]="",["wakeup"]="0",["wlan"]="0",["wlan_UIDs"]="wlan60:C5:47:7E:8C:C0",["wlan_show_in_monitor"]="1",["wlan_station_type"]="default"

Speed=100 bei Abwesenheit ist schon komisch, oder?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

frankbeckers

Nabend blueberry63,

Zitat von: blueberry63 am 09 April 2014, 13:44:09
Speed=100 bei Abwesenheit ist schon komisch, oder?

Ja, das ist wirklich komisch.

Jetzt kommen wir bestimmt in die Problematik "Welche Fritzbox? Welches FritzOS? etc."

Also ich habe eine 'FRITZ!Box Fon WLAN 7390' mit 'FRITZ!OS 06.03' im Einsatz und der Wert von speed ist nur größer Null, wenn das iPhone im WLAN angemeldet ist. Wenn das iPhone nicht im WLAN angemeldert ist, ist auch speed=0. Allerdings auch active=0. Daher habe ich mal einen Test mit dieser Variabeln aufgesetzt. Erfolgreich. Du könntest folgende Anpassung testen. Passe dazu bitte das entsprechende Notify Device an.

alt:
if ( $speed > 0 ) { $status = "on"; } else { if ( $active == 1 ) { $status = "on"; } }

neu:
if ( $active == 1 ) { $status = "on"; }

Grüße
Frank
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

blueberry63

Hallo Frank,

ich werde es nachher mal ausprobieren, ob es über "Active" funktioniert. Allerdings habe ich gerade gemerkt, das die Readings nicht aktualisiert werden (letztes Reading von gestern Mittag!). Kann man die Aktualisierung manuell ausloesen?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

blueberry63

Hai,

ich habe eben noch etwas gefunden. Das Reading "data" fängt so an:
Zitat
data
   
<!DOCTYPE html>
   
2014-04-10 16:30:56
iphonem
   
alert('Das Gerät oder der Benutzer kann nicht gelöscht werden.'); return false; } return true; }
wlanap2
Angemeldet | FRITZ!Box | FRITZ!NAS | MyFRITZ! |

    Übersicht
    Internet
    Telefonie
    Heimnetz
        Netzwerk
        USB-Geräte
        Speicher (NAS)
        FRITZ!Box-Name
        Smart Home
    WLAN
    DECT
    System

    Assistenten
    Einrichten, Update, Telefone

    FRITZ!NAS

Hat die Meldung in der 8. Zeile etwas zu bedeuten?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

frankbeckers

Zitat von: blueberry63 am 10 April 2014, 11:03:06
ich werde es nachher mal ausprobieren, ob es über "Active" funktioniert. Allerdings habe ich gerade gemerkt, das die Readings nicht aktualisiert werden (letztes Reading von gestern Mittag!). Kann man die Aktualisierung manuell ausloesen?

Bei mir war es auch "stehen" geblieben. Dazu habe ich auch einen Fehler im Coding gefunden. Im ersten Posting findest Du ab jetzt ein Changelog und immer die neuste Version des Modules. Bitte zuerst dieses neue Modul installieren, bevor Du mit weiteren Test beginnst.
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

frankbeckers

Zitat von: blueberry63 am 10 April 2014, 16:40:53
ich habe eben noch etwas gefunden. Das Reading "data" fängt so an:
Hat die Meldung in der 8. Zeile etwas zu bedeuten?

Anscheinend hat das Extrahieren der Rohdaten nicht funktioniert. Denn so bekommt man den gesamten HTML Code der Antwortseite in dem Reading "data" abgelegt. Bei der Anzeige werden dann die HTML Tags verarbeitet und angezeit.

Hast Du

attr fbremote_network readingsExprPre $val =~ s/\s//g;; $val
attr fbremote_network readingsRegexPre ipv6_ifid\)"\]\s+=\s+\{([\s\S]+)\},\s+\["landevice:settings/landevice0/ipv6addrs0


genau so eingefügt?

Wenn Du dennoch in dem Reading "data" weiterhin HTML Daten erhälst, könntest du

attr fbremote_network readingsExprPre $val =~ s/\s//g;; $val
attr fbremote_network readingsRegexPre \<pre\>([\s\S]+)\<\/pre\>


versuchen. Hier werden die wichtigen Daten anders ausgeschnitten.
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

blueberry63

 :D
mit dem letzten Vorschlag funktioniert es!

Allerdings hat man natürlich dasselbe Problem, wen die iPones im "Standby" sind, da dann das WLAN abgeschaltet wird.

Trotzdem: vielen Dank für Deine tolle Arbeit.

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

frankbeckers

Zitat von: blueberry63 am 10 April 2014, 19:35:16
mit dem letzten Vorschlag funktioniert es!

...habe das erste Posting geändert.


Zitat von: blueberry63 am 10 April 2014, 19:35:16
Allerdings hat man natürlich dasselbe Problem, wen die iPones im "Standby" sind, da dann das WLAN abgeschaltet wird.

Ich habe hier zum Testen ein iPhone 3G, 4G und 5G, kein einziges S. Bei dem 3'er habe ich das gleiche Problem wie Du: im Standby Modus geht auch der WLAN aus, somit ist auch eine Anwesenheit nicht überprüfbar. Aber sowohl das 4er mit iOS 7.1 als auch das 5er mit iOS 7.1 bleibt im WLAN bzw. in der FritzBox aktiv, auch im Standby.

Zitat von: blueberry63 am 10 April 2014, 19:35:16
Trotzdem: vielen Dank für Deine tolle Arbeit.

Danke.
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

frankbeckers

...das Modul wurde anpgepasst

#   Changelog:
#   2014-03-23   initial version
#   2014-03-25   login.lua with HttpUtils_NonblockingGet
#   2014-04-07   InternalTimer verlagert, damit Timeout bei GetSID laufen
#   2014-04-10   added Attribute timeout, default 5 seconds
#   2014-04-10   added Internals for next execution time TRIGGERTIME, TRIGGERTIME_FMT
#   2014-04-16   deleted DevIo_CloseDev($hash) from sample

...die neue Version befindet sich im ersten Postinb
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

frankbeckers

Auch wenn es nur eine kleine "Spielerei" ist... man kann damit auch einen Repeater FritzWlan 300E (mit FRITZ!OS 06.00 ) auslesen. Einzige Besonderheit: ein Fritz!Wlan Repeater 300E kennt keine Benutzer. Somit darf man keine UserId angeben.

Dazu kann man folgende Definitionen benutzen:

define fbremote_300E_energy FBREMOTE http://192.168.178.42/system/energy.lua 120
attr fbremote_300E_energy event-on-update-reading power.*,sid
attr fbremote_300E_energy fb_password geheim
attr fbremote_300E_energy readingsExprPre $val =~ s/[\r\n\s+]//g;; $val
attr fbremote_300E_energy readingsName10_data data
attr fbremote_300E_energy readingsName20_power_status_rate_systemact power_status_rate_systemact
attr fbremote_300E_energy readingsName21_power_status_rate_systemcum power_status_rate_systemcum
attr fbremote_300E_energy readingsName22_power_status_rate_wlanact power_status_rate_wlanact
attr fbremote_300E_energy readingsName23_power_status_rate_wlancum power_status_rate_wlancum
attr fbremote_300E_energy readingsName24_power_status_rate_sumact power_status_rate_sumact
attr fbremote_300E_energy readingsName25_power_status_rate_sumcum power_status_rate_sumcum
attr fbremote_300E_energy readingsRegex10_data (.*)
attr fbremote_300E_energy readingsRegex20_power_status_rate_systemact power:status/rate_systemact"]="([0-9]+)"
attr fbremote_300E_energy readingsRegex21_power_status_rate_systemcum power:status/rate_systemcum"]="([0-9]+)"
attr fbremote_300E_energy readingsRegex22_power_status_rate_wlanact power:status/rate_wlanact"]="([0-9]+)"
attr fbremote_300E_energy readingsRegex23_power_status_rate_wlancum power:status/rate_wlancum"]="([0-9]+)"
attr fbremote_300E_energy readingsRegex24_power_status_rate_sumact power:status/rate_sumact"]="([0-9]+)"
attr fbremote_300E_energy readingsRegex25_power_status_rate_sumcum power:status/rate_sumcum"]="([0-9]+)"
attr fbremote_300E_energy readingsRegexPre \<pre\>([\s\S]+)\<\/pre\>
attr fbremote_300E_energy room FritzWlan300E
attr fbremote_300E_energy timeout 10


Wie es aussehen könnte, sieht man im angehängten Bild....
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

frankbeckers

Das letzte Update von HttpUtils.pm (siehe dazu http://forum.fhem.de/index.php/topic,24163.0/topicseen.html hatte leider Nebeneffekte, da ich alle Http Get Anfragen der Nonblocking Funktion mit noshutdown=1 fest codiert hatte.

Die neue Version des Moduls (siehe erster Eintrag) unterstützt nun das neue Attr noshutdown. Auch hat sich der Default geändert. Es wird nun ohne Angabe noshutdown=0 genutzt, d.h. alle Connections werden nicht beendet.

Wer es aber dennoch benötigt, kann über das Attr noshutdown wieder auf 1 setzen, d.h. die Connections werden beendet.
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

blueberry63

@Bernd

heute habe ich im LOG folgende Einträge gesehen:
Zitat
FBREMOTE: fbremote_network GetSID() got error in callback: http://fbox.xx.xx/login_sid.lua?sid=0000000000000000: empty answer received

Mein FB habe ich so definiert:

define fbremote_network FBREMOTE http://fbox.xx.xx/net/network_user_devices.lua 120


Das Ganze hatte auf jeden Fall schon funktioniert. Ich hatte das Device einige Wochen deaktiviert und heute ohne Änderung reaktiviert.

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

caldir65

Hast Du evtl. was an der FB geä.dert, z.B. den User?

Gesendet von meinem GT-I9305 mit Tapatalk

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

blueberry63

...nicht, daß ich wüßte. Ich verwende den Standard-Account (ohne UserID).

Kann ich die URL im Browser testen?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

frankbeckers

Zitat von: blueberry63 am 04 Juni 2014, 14:55:52
@Bernd

heute habe ich im LOG folgende Einträge gesehen:
Mein FB habe ich so definiert:

FBREMOTE: fbremote_network GetSID() got error in callback: http://fbox.xx.xx/login_sid.lua?sid=0000000000000000: empty answer received


Nach dem heutigen Update der HttpUtils.pm habe ich den gleichen Fehler bekommen. Bei den Updates der HttpUtils.pm ist seit ein paar Tagen eine Hin und Her.

Guckst Du hier: http://forum.fhem.de/index.php/topic,20083.0.html

oder hier: http://forum.fhem.de/index.php/topic,24272.msg174038.html#msg174038

oder oder oder ...


Wenn Du die neuste Version von 98_FBREMOTE.pm aus dem ersten Posting aus diesem Thread nimmst (letzte Änderung: #   2014-06-02   added Attribute noshutdown, default 0) kannst Du das Verhalten des Sessionabbaues selber bestimmen. Gestern war es noch 0, heute MUSS es wieder 1 sein. Daher stimmt der Default leider nicht mehr. Also bitte mit

attr <dein_device_name> noshutdown 1

den Sessionabbau wieder ausschalten.

Damit werden meine FritzBoxen 7270, 7390 und Repeater 300E wieder korrekt ausgewertet.


Gruß
Frank
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

blueberry63

FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Loredo

Zitat von: frankbeckers am 07 April 2014, 21:33:35
Die Variante mit GEOFANCY hatte ich auch getestet. Da aber der minimale Radius von geofancy so "gross" ist, hat es bei mir auch nicht zuverlässig funktioniert.


Wenn das Endgerät Bluetooth LE kann, dann kommt auch ein iBeacon in Verbindung mit GEOFANCY in Frage. Damit kann man "im Vorbeigehen" in sehr kleinem Radius auslösen (z.b. 1-2m).
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

caldir65

Hey,

seit einem fhem-Update am 11.11. funktioniert meine Presence-Erkennung via fbremote nicht mehr - statt dessen kommen jetzt diese FM reihenweise ins Log:
2014.11.11 21:39:12 3: setreading Samsung-GS3-Christoph landevice Samsung-GS3-Christoph: ["UID"]="landevice2612",["_node"]="landevice19",["active"]="1",["auto_wakeup"]="0",["deleteable"]="1",["dhcp"]="1",["ethernet"]="0",["ethernet_port"]="0",["guest"]="0",["ip"]="192.168.1.7",["ipv6_ifid"]="::3aaa:3cff:fe3d:7c8f",["mac"]="38:AA:3C:3D:7C:8F",["manu_name"]="1",["name"]="Samsung-GS3-Christoph",["online"]="1",["parental_control_abuse"]="0",["parentname"]="",["parentuid"]="",["plc"]="0",["source"]="0x1316",["speed"]="72",["static_dhcp"]="1",["url"]="",["vendorname"]="dhcpcd-5.5.6",["wakeup"]="0",["wlan"]="1",["wlan_UIDs"]="wlan38:AA:3C:3D:7C:8F",["wlan_show_in_monitor"]="1",["wlan_station_type"]="default" : Please define Samsung-GS3-Christoph first
2014.11.11 21:39:12 3: setreading Samsung-GS3-Christoph speed 72 : Please define Samsung-GS3-Christoph first
2014.11.11 21:39:12 3: setreading Samsung-GS3-Christoph active 1 : Please define Samsung-GS3-Christoph first
2014.11.11 21:39:12 3: setreading Samsung-GS3-Christoph name Samsung-GS3-Christoph : Please define Samsung-GS3-Christoph first
2014.11.11 21:39:12 3: setreading Samsung-GS3-Christoph ip 192.168.1.7 : Please define Samsung-GS3-Christoph first
2014.11.11 21:39:12 3: setreading Samsung-GS4M-Julia landevice Samsung-GS4M-Julia: ["UID"]="landevice2603",["_node"]="landevice22",["active"]="0",["auto_wakeup"]="0",["deleteable"]="1",["dhcp"]="1",["ethernet"]="0",["ethernet_port"]="0",["guest"]="0",["ip"]="192.168.1.25",["ipv6_ifid"]="::3a0b:40ff:fee3:f955",["mac"]="38:0B:40:E3:F9:55",["manu_name"]="1",["name"]="Samsung-GS4M-Julia",["online"]="0",["parental_control_abuse"]="0",["parentname"]="",["parentuid"]="",["plc"]="0",["source"]="0x1216",["speed"]="0",["static_dhcp"]="0",["url"]="",["vendorname"]="",["wakeup"]="0",["wlan"]="1",["wlan_UIDs"]="wlan38:0B:40:E3:F9:55",["wlan_show_in_monitor"]="1",["wlan_station_type"]="default" : Please define Samsung-GS4M-Julia first
2014.11.11 21:39:12 3: setreading Samsung-GS4M-Julia speed 0 : Please define Samsung-GS4M-Julia first
2014.11.11 21:39:12 3: setreading Samsung-GS4M-Julia active 0 : Please define Samsung-GS4M-Julia first
2014.11.11 21:39:12 3: setreading Samsung-GS4M-Julia name Samsung-GS4M-Julia : Please define Samsung-GS4M-Julia first
2014.11.11 21:39:12 3: setreading Samsung-GS4M-Julia ip 192.168.1.25 : Please define Samsung-GS4M-Julia first
2014.11.11 21:39:12 3: setreading Samsung-GS3M-Meike landevice Samsung-GS3M-Meike: ["UID"]="landevice2606",["_node"]="landevice21",["active"]="1",["auto_wakeup"]="0",["deleteable"]="1",["dhcp"]="1",["ethernet"]="0",["ethernet_port"]="0",["guest"]="0",["ip"]="192.168.1.2",["ipv6_ifid"]="::96d7:71ff:fe52:a88b",["mac"]="94:D7:71:52:A8:8B",["manu_name"]="1",["name"]="Samsung-GS3M-Meike",["online"]="1",["parental_control_abuse"]="0",["parentname"]="",["parentuid"]="",["plc"]="0",["source"]="0x1216",["speed"]="150",["static_dhcp"]="0",["url"]="",["vendorname"]="dhcpcd-5.2.10",["wakeup"]="0",["wlan"]="1",["wlan_UIDs"]="wlan94:D7:71:52:A8:8B",["wlan_show_in_monitor"]="1",["wlan_station_type"]="default" : Please define Samsung-GS3M-Meike first
2014.11.11 21:39:12 3: setreading Samsung-GS3M-Meike speed 150 : Please define Samsung-GS3M-Meike first
2014.11.11 21:39:12 3: setreading Samsung-GS3M-Meike active 1 : Please define Samsung-GS3M-Meike first
2014.11.11 21:39:13 3: setreading Samsung-GS3M-Meike name Samsung-GS3M-Meike : Please define Samsung-GS3M-Meike first
2014.11.11 21:39:13 3: setreading Samsung-GS3M-Meike ip 192.168.1.2 : Please define Samsung-GS3M-Meike first


Das Log des eigentlichen Updates:
2014.11.11 21:09:54 1: UPD ./CHANGED
2014.11.11 21:09:54 1: UPD ./fhem.pl
2014.11.11 21:09:55 1: UPD FHEM/00_MQTT.pm
2014.11.11 21:09:55 1: UPD FHEM/00_MYSENSORS.pm
2014.11.11 21:09:55 1: UPD FHEM/02_FRAMEBUFFER.pm
2014.11.11 21:09:55 1: UPD FHEM/10_EnOcean.pm
2014.11.11 21:09:55 1: UPD FHEM/10_MQTT_BRIDGE.pm
2014.11.11 21:09:55 1: UPD FHEM/10_MQTT_DEVICE.pm
2014.11.11 21:09:56 1: UPD FHEM/10_MYSENSORS_DEVICE.pm
2014.11.11 21:09:56 1: UPD FHEM/36_JeeLink.pm
2014.11.11 21:09:56 1: UPD FHEM/37_harmony.pm
2014.11.11 21:09:56 1: UPD FHEM/42_SYSMON.pm
2014.11.11 21:09:56 1: UPD FHEM/51_RPI_GPIO.pm
2014.11.11 21:09:56 1: UPD FHEM/59_OPENWEATHER.pm
2014.11.11 21:09:56 1: UPD FHEM/59_PROPLANTA.pm
2014.11.11 21:09:56 1: UPD FHEM/59_Twilight.pm
2014.11.11 21:09:57 1: UPD FHEM/70_PHTV.pm
2014.11.11 21:09:57 1: UPD FHEM/71_YAMAHA_AVR.pm
2014.11.11 21:09:57 1: UPD FHEM/98_Heating_Control.pm
2014.11.11 21:09:57 1: UPD FHEM/98_RandomTimer.pm
2014.11.11 21:09:57 1: UPD FHEM/98_WOL.pm
2014.11.11 21:09:57 1: UPD FHEM/98_WeekdayTimer.pm
2014.11.11 21:09:57 1: UPD FHEM/98_fheminfo.pm
2014.11.11 21:09:57 1: UPD FHEM/98_rain.pm
2014.11.11 21:09:58 1: UPD FHEM/98_statistics.pm
2014.11.11 21:09:58 1: UPD FHEM/98_structure.pm
2014.11.11 21:09:58 1: UPD FHEM/HMConfig.pm
2014.11.11 21:09:58 1: UPD FHEM/firmware/JeeLink_LaCrosse.hex
2014.11.11 21:09:58 1: UPD docs/commandref.html
2014.11.11 21:09:59 1: UPD docs/commandref_DE.html
2014.11.11 21:10:00 1:
2014.11.11 21:10:00 1: New entries in the CHANGED file:
2014.11.11 21:10:00 1:   - added: OPENWEATHER: captures weather forecast from API of www.wetter.com
2014.11.11 21:10:00 1:   - fhem 5.6 released
2014.11.11 21:10:00 1:
2014.11.11 21:10:00 1: update finished, "shutdown restart" is needed to activate the changes.
2014.11.11 21:10:00 1:
2014.11.11 21:10:03 1: fheminfo server response: ==> ok


Warum ist jetzt plötzlich falsch/nicht funktionierend, was vorher problemlos gearbeitet hat?

Hier noch die cfg zur Anwesenheit:
###############################################################################
#                                                                             #
# Anwesenheitserkennung via Netzwerk und Fritzbox                             #
# über Web-Oberfläche und Anzeige in fhem                                     #
#                                                                             #
# Stand: 13.09.2014 13:45                                                     #
# Quelle: http://forum.fhem.de/index.php/topic,22288.msg156776.html#msg156776 #
# "Anwesenheitserkennung mit entkoppelter remoter Fritzbox Abfrage"           #
# 13.09. Anpassung an neues Fritz!OS 06.20                                    #
#                                                                             #
###############################################################################

# Allgemeine Device-Definitionen

define fbremote_network FBREMOTE http://fritz.box/net/network_user_devices.lua 120
attr fbremote_network event-on-update-reading Samsung-.*
attr fbremote_network fb_password xxxxxxxxxxx
attr fbremote_network fb_user xxxxx
attr fbremote_network readingsExprPre $val =~ s/\s//g;; $val
attr fbremote_network readingsName10_data data
attr fbremote_network readingsName20_Samsung-GS3-Christoph Samsung-GS3-Christoph
attr fbremote_network readingsName20_Samsung-GS3M-Meike Samsung-GS3M-Meike
attr fbremote_network readingsName20_Samsung-GS4M-Julia Samsung-GS4M-Julia
attr fbremote_network readingsRegex10_data (.*)
attr fbremote_network readingsRegex20_Samsung-GS3-Christoph ([^\{]+00:00:00:00:00:00[^\}]+)
attr fbremote_network readingsRegex20_Samsung-GS3M-Meike ([^\{]+00:00:00:00:00:00[^\}]+)
attr fbremote_network readingsRegex20_Samsung-GS4M-Julia ([^\{]+00:00:00:00:00:00[^\}]+)
attr fbremote_network readingsRegexPre \<pre\>([\s\S]+)\<\/pre\>
attr fbremote_network room Anwesenheit
attr fbremote_network noshutdown 1

# Anwesenheit Julia

define SamsungJuliaRemoteFritzbox notify fbremote_network:Samsung-GS4M-Julia.* {\
\
my $landevice = $EVENT;;\
my $speed = "";;\
my $active = "";;\
\
fhem("setreading Samsung-GS4M-Julia landevice $landevice");;\
\
if ( $landevice =~ /speed\"\]\s*=\s*\"([0-9]+)/ ) { $speed=$1;; fhem("setreading Samsung-GS4M-Julia speed $1");; }\
if ( $landevice =~ /active\"\]\s*=\s*\"([0-9]+)/ ) { $active=$1;; fhem("setreading Samsung-GS4M-Julia active $1");; }\
\
if ( $landevice =~ /\[\"name\"\]\s*=\s*\"([a-zA-Z0-9-]+)\"/ ) { fhem("setreading Samsung-GS4M-Julia name $1");; }\
if ( $landevice =~ /\[\"ip\"\]\s*=\s*\"([0-9.]+)\"/ ) { fhem("setreading Samsung-GS4M-Julia ip $1");; }\
\
my $status = "off";;\
if ( $speed > 0 ) { $status = "on";; } else { if ( $active == 1 ) { $status = "on";; } }\
\
fhem("set SamsungJulia $status");;\
\
}
attr SamsungJuliaRemoteFritzbox room Anwesenheit

# DummyDevice zur Visualisierung

define SamsungJulia dummy
attr SamsungJulia eventMap 1
attr SamsungJulia icon it_smartphone
attr SamsungJulia room Anwesenheit

# WatchDog Julia
define SamsungJuliaWatchdog watchdog Samsung-GS4M-Julia:off.* 00:05 Samsung-GS4M-Julia:on.* trigger Pushover Samsung-GS4M-Julia abwesend
attr SamsungJuliaWatchdog regexp1WontReactivate 1
attr SamsungJuliaWatchdog room Anwesenheit

define SamsungJuliaWatchdogSetDefined notify Samsung-GS4M-Julia:on.* trigger SamsungJuliaWatchdog .
attr SamsungJuliaWatchdogSetDefined room Anwesenheit


(Namen und private Daten wurden zufällig verändert ;))

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

frankbeckers

N'abend Caldir65,

die Fehler(meldungen) stehen immer am Ende der Zeilen

z.B.

ZitatPlease define Samsung-GS3-Christoph first

Gruß
Frank
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

caldir65

Aber wieso jetzt plözlich? Wieso ist plötzlich fehlerhaft, was vorher funktionierte, meine ich? Und was für ein Device will fhem da definiert haben? Ich hab da im Moment keine Idee...
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 64GB SSD, Lubuntu 22.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee II und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

LotharRappsilber

Hallo Frank,

komme leider nicht weiter. Es kommen nur diese Bilder. Was muss ich weiter machen?

Gruß Lothar
FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL

frankbeckers

Zitat von: caldir65 am 21 November 2014, 06:05:36
Aber wieso jetzt plözlich? Wieso ist plötzlich fehlerhaft, was vorher funktionierte, meine ich? Und was für ein Device will fhem da definiert haben? Ich hab da im Moment keine Idee...

Du musst die Geräte (so wie Du die Namen aussuchst) auch als Dummy Devices definieren.

Beispiel:
define iPhone5 dummy
attr iPhone5 eventMap 1
attr iPhone5 icon it_smartphone
attr iPhone5 room Anwesenheit


Warum dies nach dem Update nicht mehr bei Dir funktioniert, kann ich Dir aus der Ferne natürlich auch nicht sagen. Vielleicht hattest Du die Devices nicht gespeichert.

Gruß
Frank
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

frankbeckers

Zitat von: LotharRappsilber am 22 November 2014, 17:47:48
Hallo Frank,

komme leider nicht weiter. Es kommen nur diese Bilder. Was muss ich weiter machen?

Gruß Lothar

Ich sehe bei Deinen Screenshots eine sid=000....000. Das könnte darauf hinweise, dass eine Anmeldung nicht möglich ist. User und/oder Passwort falsch?

Ansonsten schalte mal

verbose auf 5

Und schau dann ins Log. Das Modul ist dann recht geschwätzig... Wenn Du dann immer noch nicht weiterkommst, poste das entsprechende Log gerne hier.

Gruß
Frank
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

bgewehr

Hallo!

Hab alles soweit hinbekommen, aber ich scheitere hier:

fhem-Log:

sh: 1: Syntax error: word unexpected (expecting ")")
sh: 1: Syntax error: word unexpected (expecting ")")
sh: 1: Syntax error: word unexpected (expecting ")")
sh: 1: Syntax error: word unexpected (expecting ")")
sh: 1: Syntax error: word unexpected (expecting ")")
sh: 1: Syntax error: word unexpected (expecting ")")
sh: 1: Syntax error: word unexpected (expecting ")")


Das ist erst nach dem Einbau des Moduls aufgetreten, vorher hatte ich diesen Fehler nicht!

Was kann ich tun?
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

bgewehr

Im Log steht immer dies hier:

2015.01.10 12:03:02 4: HttpUtils url=http://fritz.box/login_sid.lua?sid=0000000000000000
2015.01.10 12:03:02 3: FBREMOTE: fbremote_network GetSID() got error in callback: http://fritz.box/login_sid.lua?sid=0000000000000000: empty answer received
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

bgewehr

Nun habe ich manuell eine gültige SID spendiert, Ergebnis weiterhin "empty answer received".
Wenn ich die url mit der sid im browser aufrufe, geht das ohne Probleme!
Was kann ich tun?
httputil ist aktuell...

Edit: Ein wget mit derselben url auf dem Pi ergibt eine gültige Antwort als Datei... Was kann das nur sein?
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

frankbeckers

Zitat von: bgewehr am 10 Januar 2015, 12:50:13
Was kann das nur sein?

Mit so wenigen Infos kann man nur in die Glaskugel schauen.

Bitte den entsprechenden Teil Deiner fhem.cfg posten und einen Versuch mit verbose 5 durchführen und dann den entsprechenden Teil des Log hier posten.

Gruß
Frank
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

bgewehr

Also, dann versuche ich es mal gründlich:


define fbremote_network FBREMOTE http://fritz.box/net/network_user_devices.lua 120
attr fbremote_network event-on-update-reading iphone.*,samsung.*,imac.*,.*_Handy
attr fbremote_network fb_password fhem-FB-1496
attr fbremote_network fb_user fhem
attr fbremote_network readingsExprPre $val =~ s/\s//g;;;; $val
attr fbremote_network readingsName10_data data
attr fbremote_network readingsName20_Bernd FBR_Bernd_Handy
attr fbremote_network readingsName20_Kerstin FBR_Kerstin_Handy
attr fbremote_network readingsName20_Laura FBR_Laura_Handy
attr fbremote_network readingsName20_Max FBR_Maximilian_Handy
attr fbremote_network readingsRegex10_data (.*)
attr fbremote_network readingsRegex20_Bernd ([^\{]+48:43:7C:5B:15:86[^\}]+)
attr fbremote_network readingsRegex20_Kerstin ([^\{]+F0:DC:E2:BE:A5:DB[^\}]+)
attr fbremote_network readingsRegex20_Laura ([^\{]+E0:B5:2D:88:7B:CE[^\}]+)
attr fbremote_network readingsRegex20_Max ([^\{]+78:4B:87:77:5D:18[^\}]+)
attr fbremote_network readingsRegexPre \<pre\>([\s\S]+)\<\/pre\>
attr fbremote_network room Anwesenheit
attr fbremote_network verbose 5

define n_FBR_Bernd_Handy notify fbremote_network:FBR_Bernd_Handy.* {\
\
my $landevice = $EVENT;;\
my $speed = "";;\
my $active = "";;\
\
fhem("setreading FBR_Bernd_Handy landevice $landevice");;\
\
if ( $landevice =~ /speed\"\]\s*=\s*\"([0-9]+)/ ) { $speed=$1;; fhem("setreading FBR_Bernd_Handy speed $1");; }\
if ( $landevice =~ /active\"\]\s*=\s*\"([0-9]+)/ ) { $active=$1;; fhem("setreading FBR_Bernd_Handy active $1");; }\
\
if ( $landevice =~ /\[\"name\"\]\s*=\s*\"([a-zA-Z0-9-]+)\"/ ) { fhem("setreading FBR_Bernd_Handy name $1");; }\
if ( $landevice =~ /\[\"ip\"\]\s*=\s*\"([0-9.]+)\"/ ) { fhem("setreading FBR_Bernd_Handy ip $1");; }\
\
my $status = "off";;\
if ( $speed > 0 ) { $status = "on";; } else { if ( $active == 1 ) { $status = "on";; } }\
\
fhem("set FBR_Bernd_Handy $status");;\
\
}
attr n_FBR_Bernd_Handy room Anwesenheit

define FBR_Bernd_Handy dummy
attr FBR_Bernd_Handy eventMap 1
attr FBR_Bernd_Handy icon it_smartphone
attr FBR_Bernd_Handy room Anwesenheit

define FBR_Bernd_Handy_Watchdog watchdog FBR_Bernd_Handy:off.* 00:05 FBR_Bernd_Handy:on.* trigger Pushover FBR_Bernd_Handy abwesend
attr FBR_Bernd_Handy_Watchdog regexp1WontReactivate 1
attr FBR_Bernd_Handy_Watchdog room Anwesenheit

define FBR_Kerstin_Handy dummy
attr FBR_Kerstin_Handy eventMap 1
attr FBR_Kerstin_Handy icon it_smartphone
attr FBR_Kerstin_Handy room Anwesenheit

define FBR_Kerstin_Handy_Watchdog watchdog FBR_Kerstin_Handy:off.* 00:05 FBR_Kerstin_Handy:on.* trigger Pushover FBR_Kerstin_Handy abwesend
attr FBR_Kerstin_Handy_Watchdog regexp1WontReactivate 1
attr FBR_Kerstin_Handy_Watchdog room Anwesenheit

define FBR_Maximilian_Handy dummy
attr FBR_Maximilian_Handy eventMap 1
attr FBR_Maximilian_Handy icon it_smartphone
attr FBR_Maximilian_Handy room Anwesenheit

define FBR_Maximilian_Handy_Watchdog watchdog FBR_Maximilian_Handy:off.* 00:05 FBR_Maximilian_Handy:on.* trigger Pushover FBR_Maximilian_Handy abwesend
attr FBR_Maximilian_Handy_Watchdog regexp1WontReactivate 1
attr FBR_Maximilian_Handy_Watchdog room Anwesenheit

define FBR_Laura_Handy dummy
attr FBR_Laura_Handy eventMap 1
attr FBR_Laura_Handy icon it_smartphone
attr FBR_Laura_Handy room Anwesenheit

define FBR_Laura_Handy_Watchdog watchdog FBR_Laura_Handy:off.* 00:05 FBR_Laura_Handy:on.* trigger Pushover FBR_Laura_Handy abwesend
attr FBR_Laura_Handy_Watchdog regexp1WontReactivate 1
attr FBR_Laura_Handy_Watchdog room Anwesenheit


Und das log


2015.01.12 20:55:37 5: FBREMOTE: fbremote_network CheckSID() fritzbox domain: fritz.box
2015.01.12 20:55:37 4: FBREMOTE: fbremote_network CheckSID() next getting http://fritz.box/login_sid.lua?sid=66f215bec41bc493
2015.01.12 20:55:37 4: FBREMOTE: fbremote_network: HASH(0x29dea08)
2015.01.12 20:55:37 4: HttpUtils url=http://fritz.box/login_sid.lua?sid=66f215bec41bc493
2015.01.12 20:55:37 3: FBREMOTE: fbremote_network GetSID() got error in callback: http://fritz.box/login_sid.lua?sid=66f215bec41bc493: empty answer received


Bananapi mit Raspian ist meine Grundlage, FritzBox 7390 OS 6.20


Gesendet von iPhone mit Tapatalk
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

frankbeckers

FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

bgewehr

FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

frankbeckers

FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

dk3572

Hallo,
bei mir wurde das Reading ein mal eingelesen, dann geschieht nichts mehr.
Im Log habe ich das gefunden:
FBREMOTE: fbremote_network got error in callback: read from http://fritz.box:80 timed out

Was kann ich ändern?

Danke schon mal und Gruß
Dieter

frankbeckers

Zitat von: dk3572 am 16 Januar 2015, 18:13:31
Was kann ich ändern?

Hallo Dieter,

Das sind viel zu wenig Informationen um etwas zu Deinem Fehler zu sagen.

Lese Dir bitte mal die letzten Posting in diesem Thread durch und mache auch die dort beschriebenen Anpassungen.

Bitte den entsprechenden Teil Deiner fhem.cfg posten und einen Versuch mit verbose 5 durchführen und dann den entsprechenden Teil des Log hier posten.

Gruß
Frank
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

dk3572

Danke für die schnelle Antwort.

Die Anpassungen habe ich bereits alle probiert, ohne Erfolg.

define fbremote_network FBREMOTE http://fritz.box/net/network_user_devices.lua 120
attr fbremote_network event-on-update-reading HandyDieter
attr fbremote_network fb_password meinpasswort
attr fbremote_network fb_user meinuser
attr fbremote_network noshutdown 1
attr fbremote_network readingsExprPre $val =~ s/\s//g;;;; $val
attr fbremote_network readingsName10_data data
attr fbremote_network readingsName20_HandyDieter HandyDieter
attr fbremote_network readingsName20_HandyKerstin HandyKerstin
attr fbremote_network readingsRegex10_data (.*)
attr fbremote_network readingsRegex20_HandyDieter ([^\{]+00:00:00:00:00:00[^\}]+)
attr fbremote_network readingsRegex20_HandyKerstin ([^\{]+00:00:00:00:00:00[^\}]+)
attr fbremote_network readingsRegexPre \<pre\>([\s\S]+)\<\/pre\>
attr fbremote_network room Anwesenheit
define HandyDieterfbremote notify fbremote_network:HandyDieter.* {\ \ my $landevice = $EVENT;;\ my $speed = "";;\ my $active = "";;\ \ fhem("setreading HandyDieter landevice $landevice");;\ \ if ( $landevice =~ /speed\"\]\s*=\s*\"([0-9]+)/ ) { $speed=$1;; fhem("setreading HandyDieter speed $1");; }\ if ( $landevice =~ /active\"\]\s*=\s*\"([0-9]+)/ ) { $active=$1;; fhem("setreading HandyDieter active $1");; }\ \ if ( $landevice =~ /\[\"name\"\]\s*=\s*\"([a-zA-Z0-9-]+)\"/ ) { fhem("setreading HandyDieter name $1");; }\ if ( $landevice =~ /\[\"ip\"\]\s*=\s*\"([0-9.]+)\"/ ) { fhem("setreading HandyDieter ip $1");; }\ \ my $status = "off";;\ if ( $speed > 0 ) { $status = "on";; } else { if ( $active == 1 ) { $status = "on";; } }\ \ fhem("set HandyDieter $status");;\ \ }
attr HandyDieterfbremote room Anwesenheit
define HandyDieter dummy
attr HandyDieter eventMap 1
attr HandyDieter icon it_smartphone
attr HandyDieter room Anwesenheit


2015.01.16 18:33:20.062 5: FBREMOTE: fbremote_network CheckSID() fritzbox domain: fritz.box
2015.01.16 18:33:20.063 4: FBREMOTE: fbremote_network CheckSID() next getting http://fritz.box/login_sid.lua?sid=xxxxxxxxxxxxxxxx
2015.01.16 18:33:20.064 4: HttpUtils url=http://fritz.box/login_sid.lua?sid=xxxxxxxxxxxxxxxx
2015.01.16 18:33:20.363 4: http://fritz.box/login_sid.lua?sid=xxxxxxxxxxxxxxxx: HTTP response code 200
2015.01.16 18:33:20.364 4: HttpUtils http://fritz.box/login_sid.lua?sid=xxxxxxxxxxxxxxxx: Got data, length: 348
2015.01.16 18:33:20.365 5: FBREMOTE: fbremote_network GetSID() Callback called: Hash: HASH(0x2413a50), buffer: <?xml version="1.0" encoding="utf-8"?><SessionInfo><SID>xxxxxxxxxxxxxxxx</SID><Challenge>3f188762</Challenge><BlockTime>0</BlockTime><Rights><Name>Dial</Name><Access>2</Access><Name>HomeAuto</Name><Access>2</Access><Name>BoxAdmin</Name><Access>2</Access><Name>Phone</Name><Access>2</Access><Name>NAS</Name><Access>2</Access></Rights></SessionInfo>
2015.01.16 18:33:20.366 4: FBREMOTE: fbremote_network GetSID() next getting http://fritz.box/net/network_user_devices.lua?sid=xxxxxxxxxxxxxxxx
2015.01.16 18:33:20.367 4: HttpUtils url=http://fritz.box/net/network_user_devices.lua?sid=xxxxxxxxxxxxxxxx
2015.01.16 18:33:25.381 3: FBREMOTE: fbremote_network got error in callback: read from http://fritz.box:80 timed out



JoWiemann

Hallo,

habe in FBREMOTE die Passwort-Logik von 72_FRITZBOX und 72_FB_CALLMONITOR eingebaut. Ich würde außerdem vorschlagen 98_FBREMOTE nach 72_FBREMOTE umzubenennen, dann liegen die Module schön beieinander.

Grüße Jörg

Anbei nun zum Testen.
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

frankbeckers

Zitat von: dk3572 am 16 Januar 2015, 18:39:55
Danke für die schnelle Antwort.

Die Anpassungen habe ich bereits alle probiert, ohne Erfolg.


Hallo Dieter,

ehrlich gesagt sehe ich im Moment keinen Fehler bei Deinen Definitionen.

Welche Fritzbox mit welcher Firmware setzt Du denn ein?
Hat denn der genutze FritzBox Benutzer alle Rechte? Hake doch mal testweise alle an.
Was passiert denn, wenn du http://fritz.box/net/network_user_devices.lua?sid=xxxxxxxxxxxxxxxx in einem Browser eingibst.

Grüße
Frank
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

frankbeckers

Zitat von: JoWiemann am 18 Januar 2015, 17:10:33
Hallo,

habe in FBREMOTE die Passwort-Logik von 72_FRITZBOX und 72_FB_CALLMONITOR eingebaut. Ich würde außerdem vorschlagen 98_FBREMOTE nach 72_FBREMOTE umzubenennen, dann liegen die Module schön beieinander.

Grüße Jörg

Anbei nun zum Testen.

Hallo Jörg,

Was hast Du denn wo gemacht? Ich sehe in 72_xxx keine Änderungen zu 98_xxx.... und der Name ist doch Schall und Rauch.

Grüße
FRank
FHEM 5.7 auf Raspberry Pi 2 Jessy 4.1.16-v7+
CCU2 --> hm2mqtt --> MQTT --> Fhem
ehz361z5 --> RPi --> MQTT --> Fhem
Lightify
Fritz!DECT 200

JoWiemann

Bei dem Namen hast Du grundsätzlich recht. Im WinSCP liegen halt alle FB-Module dann schön zusammen. Ist halt eine Frage der Datei-Browser Optik, aber egal.

Änderungen sind in:

sub FBREMOTE_Initialize($)
Zeile 72, 86

sub FBREMOTE_Set($@)
alle Zeilen

sub FBREMOTE_GetSID($$$)
Neu->   my $fb_pwd = FBREMOTE_readPassword($hash);
Neu->   Log3 $name, 4, "FBREMOTE: Passwort ist: -> $fb_pwd";
      #my $fb_pwd = AttrVal("$name", "fb_password", "");

sub FBREMOTE_storePassword($$)
sub FBREMOTE_readPassword($;$)

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

dk3572

Hallo Frank,

ich habe die FritzBox 7390 mit aktueller Labor Firmware.
Wenn ich die Url im Browser eingebe, komme ich direkt zur Anmeldemaske der FritzBox mit meinem Usernamen.

Ich habe auch noch PRESENCE mit RemoteFritzBox am laufen. Kann daher der Timed out kommen?

Gruß Dieter

fhem-me

Habe für meine FritzBox 7390 FBREMOTE ergänzt damit ich die Wählhilfe nutzen kann.
Da nicht zyklisch gewählt werden soll habe ich als Intervall die 0 zugelassen.
Die Parameter für die Wählhilfe werden über attribute command1 .. command9 festgelegt
Gewählt wird z.B. mit set fbremote_dial command 2.

define fbremote_dial FBREMOTE http://fritz.box/fon_num/fonbook_list.lua 0

attr fbremote_dial command1 &hangup=&xhr=1
attr fbremote_dial command2 &dial=rufnummer&xhr=1
attr fbremote_dial command3 &dial=%2396*0*&xhr=1
attr fbremote_dial command4 &dial=%2396*1*&xhr=1
attr fbremote_dial noshutdown 1


Damit stehen alle Telefoncodes bereit (WLAN an/aus, oder nach Bedarf auch Rufumleitung an/aus, ...)
Zu beachten: das '#' muss in der URL als %23 maskiert werden.

define wlan_switch dummy
attr wlan_switch setList ein aus
attr wlan_switch webCmd ein:aus
define wlan_switch.aus notify wlan_switch:aus set  fbremote_dial command 3
define wlan_switch.ein notify wlan_switch:ein set  fbremote_dial command 4


Ansonsten habe ich noch vor jedem neuen Timer-Start den alten gelöscht - die Aufruf-Frequenz war sonst häufiger als im Interval konfiguriert.

... und nicht vergessen die Wählhilfe in der FritzBox zu aktivieren - sonst geht's nicht ...

Maista

Hallo zusammen,

Ich hatte dieses Jahr/Jahre davor im Sommer immer wieder massive Probleme mit meinem Kabelanschluss bei UM.
Erst nach fünf besuchen, austausch der kompletten Technik von immer neuen Technikern wurde mir geglaubt das die Probleme Temperatur-Abhängig
sein müssen und nicht im Haus zu suchen sind!

Nach dem ganzen Hin und Her wurde dann nach drei Tagen innerhalb von 45min im Bürgersteig der Verstärker getauscht und seit dem ist Ruhe.
Die ganze Konversation mit UM-Hotline und den Technikern war zum Teil "ulkig".....

Leider gibt es bei der KabelBox kein Befehle die DOCSIS-Daten via TR-064 abzufragen!
Dies wurde mir von AVM bestätigt und sie wollen das auf ihre Liste schreiben  ::)

Nun war ich auf der Suche nach einer Möglichkeit die Pegel des Kabelanschlusses abzuspeichern.
Wenn das Theater dann eines Tages wieder losgehen sollte, kann ich den Technikern dann zeigen wann die Signale schlecht werden.


Mit FBREMOTE habe ich die Lösung auch gefunden  ;D

Ich habe mir erst einmal geholfen das ich den entsprechenden Block aus den ~110kb grob mit FBREMOTE herausschneide und dann mit einem myUtils
entsprechend extrahiere und anschließend (ohne Umweg mit einem dummy) als Log abspeichere.

Ich habe dann beim probieren gemerkt das die neuen Funktionen nicht aktuell in der Hilfe enthalten sind.
Auch das Beispiel mit setzen des Passwortes wurde nicht in der Hilfe angepasst.
Die angegebenen RegEx wurden in der Hilfe nicht vollständig angezeigt weil das Maskieren nicht funktionierte.

Anbei hänge ich meine angepasstes Modul an. Im Programm selbst habe ich nichts geändert.
Mein Beispiel mit der Anfrage und Ergänzungen in der Hilfe.

Nach einem Update-Shutdown heute musste ich zudem den Start des Moduls von Hand mit SET checkSID anstossen?!

Anbei das Modul und zwei Screenshot der Pegel.

Gruss Gerd