Readings werden nicht aktualisiert

Begonnen von gary822, 24 November 2018, 11:26:40

Vorheriges Thema - Nächstes Thema

gary822

Hallo @all,

ich habe nun seit wenigen Tagen ein Fhem mit einigen Thermostaten und Fensterkontakten von EVL im Einsatz.
Ich wollte nun eine Anwesenheitserkennung integrieren aber komme einfach nicht weiter.

Die Grundsätzlichen Funktionen (Erkennung einer MAC) funktionieren im Grundsatz.
Allerdings werden bei der FritzBox keine Readings aktualisiert und immer auf dem Status "WLAN: on gWLAN: off" steht und ich habe keinen Ansatz wieso.
Bei der erstmaligen Definition der FritzBox werden die Werte korrekt geladen.

Ich erhalte folgenden Eintrag im Logfile: (... entspricht einem langen String)
2018.11.24 11:19:06 4: FRITZBOX FritzBox: Readout_Done.1770 Back at main process
2018.11.24 11:19:06 4: FRITZBOX FritzBox: Readout_Process.1792 Processing 273 readouts.
2018.11.24 11:19:06 1: ERROR evaluating {FRITZBOX_Readout_Done('FritzBox|...')}: Undefined subroutine &main::time_str2num called at ./FHEM/72_FRITZBOX.pm line 1816.


Ich habe mich zur Einrichtung an die Anleitung im Wiki gehalten:

Folgende Hardware setze ich ein:

  • Raspberry Pi 3 Raspbian 9
  • Fritz!Box 7590 mit aktiviertem TR064
  • iPhone X iOS 12.1.1 Beta

Meine FritzBox definition ist folgende: (Ja Kennwort ist gesetzt)
defmod FritzBox FRITZBOX 192.168.1.1
attr FritzBox INTERVAL 30
attr FritzBox allowTR064Command 1
attr FritzBox boxUser XXXX
attr FritzBox icon it_router
attr FritzBox room System
attr FritzBox verbose 5


Meine Definition zur Anwesenheitserkennung ist folgende:
defmod Handy_Danny PRESENCE function {checkFritzMACpresent("FritzBox","XX:XX:XX:XX:XX:XX")} 60 60
attr Handy_Danny group Handy
attr Handy_Danny icon it_smartphone
attr Handy_Danny room System


VG
Danny

PS: Bitte nicht steinigen oder dergleichen wenn ich im falschen Unterforum gelandet bin :)

JoWiemann

Das Log sagt, dass die Sub time_str2num() nicht gefunden wird. Hinterlegt ist die Funktion in der 99_Utils.pm. Prüf doch mal, ob das Modul vorhanden bzw. ob Du beim Hochfahren von Fhem einen Fehler findest, der darauf hinweist, dass das Modul nicht geladen worden ist.

Du kannst in der Fhem Kommandozeile auch mal ein reload 99_Utils eingeben und sehen, ob das reload ein Problem meldet.

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

CoolTux

Und was auch nicht Schäden kann, sofern noch nicht geschehen mach bitte ein Update.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

gary822

@JoWiemann,

Ich habe das gerade mal geprüft und das File ist vorhanden.
Ein reload 99_Utils bringt auch keinen Fehler.
Die time_str2num wird aber auch nicht in der 99_Utils.pm initialisiert :/
Ich habe es mal angehangen vielleicht findest du was :)

@CoolTux,

Natürlich habe ich das aktuellste System :)
Das ist immer das erste was ich prüfe bei Fehlern:)

VG
Danny

Otto123

Hi,

was mich wundert -> Bei der erstmaligen Definition der FritzBox werden die Werte korrekt geladen.

Der Fehler kommt dann erst nach den 30 Sekunden Aktualisierung?
ZitatAllerdings werden bei der FritzBox keine Readings aktualisiert und immer auf dem Status "WLAN: on gWLAN: off" steht und ich habe keinen Ansatz wieso.

Der Status ist per Standard so, einfach die Info über den Zustand von WLAN und Gast WLAN. Das ist also in Ordnung.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

gary822

Hallo @Otto,

ja das ist korrekt.
Bei der erstmaligen Definition von "Fritzbox" zieht er alles ohne Probleme und danach nix mehr.

VG
Danny

JoWiemann

Zitat von: gary822 am 24 November 2018, 12:01:20
@JoWiemann,

Ich habe das gerade mal geprüft und das File ist vorhanden.
Ein reload 99_Utils bringt auch keinen Fehler.
Die time_str2num wird aber auch nicht in der 99_Utils.pm initialisiert :/
Ich habe es mal angehangen vielleicht findest du was :)

@CoolTux,

Natürlich habe ich das aktuellste System :)
Das ist immer das erste was ich prüfe bei Fehlern:)

VG
Danny

Tja, da ist Dir wohl ein Fehler beim Anlegen der sub checkFritzMACpresent($$) über die Fhem Oberfläche passiert. Vermutlich hast Du das myUtilsTemplate.pm benutzt und dann unter 99_Utils.pm anstatt unter 99_myUtils.pm gespeichert. Somit hast Du das 99_Utils.pm überschrieben und damit den Inhalt ins Nirvana geschickt.

Grüße Jörg

PS: Anbei die aktuelle 99_Utils.pm
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

Otto123

Zitat von: JoWiemann am 24 November 2018, 12:16:12
Tja, da ist Dir wohl ein Fehler beim Anlegen der sub checkFritzMACpresent($$) über die Fhem Oberfläche passiert. Vermutlich hast Du das myUtilsTemplate.pm benutzt und dann unter 99_Utils.pm anstatt unter 99_myUtils.pm gespeichert. Somit hast Du das 99_Utils.pm überschrieben und damit den Inhalt ins Nirvana geschickt.
Ach du Sch..  :o Sachen gibts ...
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

JoWiemann

Zitat von: Otto123 am 24 November 2018, 12:18:28
Ach du Sch..  :o Sachen gibts ...

Ich habe im Wiki mal ne Warnung hinterlegt...
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

gary822

Hallo @all

ganz dickes *facepalm* an mich und großen Dank an euch :)
Nach Korrektur dessen geht es jetzt fast instant mit der Erkennung meiner Anwesenheit :)

VG
Danny

en-trust

Gibt es eine Möglichkeit per Script über einen Cronjob zu prüfen, ob fhem erreichbar ist und wenn nicht die Prozesse zu killen und fhem erneut zu starten?

gary822

Hallo @en-Trust,

Klar ist das möglich mit einer einfachen if Abfrage.


#!/bin/sh
if ping -w 5 -c 1 FHEMADRESSE > /dev/null; then
exit 0
else
service fhem restart
fi
exit 0



VG
Gary822

Otto123

#12
@Garry Aber das pingt ja nur die eigene Adresse, das sagt nix darüber aus ob FHEM erreichbar ist.

Da kannst Du besser den Prozess abfragen:
if [[ ! "$(ps -aux |grep ^fhem)" ]]; then echo "fhem läuft nicht"; fi
Und statt dem echo den Service neu starten. Aber das macht systemctl eigentlich von sich aus!

Eine bessere Möglichkeit wäre über eine Netzwerkschnittstelle zu gehen. Entweder Telnet (falls aktiviert) oder über HTTP.
Für HTTP ginge es mit meinem fhemcl Script.
In der Art
bash fhemcl.sh 8083 "get WEB pathlist"
bzw. analog oben so:
if [[ $(bash fhemcl.sh 8083 "get WEB pathlist") == *response* ]]; then echo "fhem läuft nicht"; fi

Allerdings ist auch zu beachten, wenn FHEM zu 100% belastet ist, dauert es wahrscheinlich ewig.
Solche Automatismen sind schwierig.

Es gab auch mal sowas wie eine "hearthbeat Überwachung von FHEM" (die Textkette einfach in die Google Suche werfen).
Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

gary822

@Otto123,

Stimmt nicht daran gedacht :D
Dann sollte man eher anstatt des pings den Aufruf ,,curl" verwenden das gibt ja dann einen bekannten Wert zurück auf den man mit if reagieren kann ^^

VG
Gary822

Otto123

#14
Ja das stimmt auch wieder, man kann einfach den token ermitteln siehe https://wiki.fhem.de/wiki/CsrfToken-HowTo#Einzeiler_Shell
hosturl="http://localhost:8083"
token=$(wget -qO - --server-response "$hosturl/fhem?XHR=1" 2>&1 | awk '/X-FHEM-csrfToken/{print $2}')

Und dann wie oben:
if [[ -z "$token" ]]; then echo "fhem läuft nicht"; fi

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz