Hallo zusammen,
ich verzweifle an einem Problem, das ich habe, und finde einfach keinen Ansatz zur Lösung. Würde mich daher sehr über Hinweise freuen.
Es geht um folgendes:
Ich möchte einen "HomeStatus" einrichten. Auf die verschiedene Stati möchte ich später notifys aufsetzen, um beim kommen/gehen gewisse Befehle auszuführen (Licht und Heizung an z.B.).
Jetzt habe ich das Problem, dass sich aus einem mir nicht ersichtlichen Grund der "HomeStatus" ohne mein zutun ständig ändert. Siehe anbei ein Screenshot des Eventlogs...
Gibt es irgendwie die Möglichkeit eines backtrace, um zu sehen, wo das Variablensetzen ausgelöst wird?
Folgende Infos dazu:
- Wenn ich die Netzwerk-Verbindung des Raspberry trenne, auf dem FHEM läuft, sehe ich im Log danach keine Änderungen mehr --> das scheint von extern zu kommen oder nur aufzutreten, wenn der Server am Netzwerk hängt
- Ich habe einen zweiten Rasp-Pi, der Temperaturen an den FHEM-Server sendet. Den habe ich Testweise ausgeschaltet -> keine Änderung
- Ich benutze "geofancy" für die Anwesenheitserkennung mit einem Webhook. Die daran anschließenden notifys setzen den HomeStatus testweise auf "2"; Er alterniert aber immer zwisachen 1,3 und 4
- In meiner fhem.cfg gibt es in besagten geofancy-notify nur "set HomeStatus 2". In der ganzen fhem.cfg gibt es kein einziges "set HomeStatus 1", "set HomeStatus 3" oder "set HomeStatus 4". -> D.h. für mich, das muss irgendwie von "extern" kommen
- Ich habe die Ports, die vom Router aus dem Internet geforwarded werden, testweise auch abgeschaltet; keine Änderung.
Es ist so, als gäbe es eine "Notify-Schleife", d.h. wenn der Status auf 3 gesetzt wird, wird er wieder auf 1 zurückgesetzt usw.
Hat jemand eine Idee, wir das am besten gedebuggt werden kann?
Danke für jeden Hinweis!
Viele Grüße,
Christian
Bitte ein "list" von den verschiedenen Devices.
Hi,
danke für Deine Antwort.
Leider weiß ich ja nicht, welches Device genau das Verhalten auslöst... Unten sind mal ein paar "lists" der Angesprochenen, ich befürchte aber, das wird nichts helfen... Oder bräuchte man eine bestimmtes Device? Die unten gezeigten notifies können es aber nicht sein, da das Verhalten auch auftritt, wenn die "inactive" gesetzt werden...
Am einfachsten wäre, man könnte einfach anzeigen lassen, von welcher "Quelle" die Befehle ausgehen... Ich finde auch beim googlen keine Möglichkeit hierzu. Meine Installation ist auch nicht so wahnsinnig umfangreich, ich habe nochmal (fast) alle Devices durchforstet und finde einfach nichts...
Internals:
NAME HomeStatus
NR 134
STATE 3
TYPE dummy
Helper:
DBLOG:
state:
logdb:
TIME 1511122914.59234
VALUE 3
READINGS:
2017-11-19 21:21:54 state 3
Attributes:
room Alles
setList 1 2 3 4
Internals:
DEF geofancy:currLoc_iPhone_chris:.Zuhause set HomeStatus 1
NAME n_iPhone_chris.Presence
NOTIFYDEV geofancy
NR 113
NTFY_ORDER 50-n_iPhone_chris.Presence
REGEXP geofancy:currLoc_iPhone_chris:.Zuhause
STATE 2017-11-19 17:57:14
TYPE notify
READINGS:
2017-11-19 17:41:23 state active
Attributes:
Internals:
DEF geofancy:currLoc_iPhone_chris:.underway IF ([HomeStatus:state] != 4) (set HomeStatus 3)
NAME n_iPhone_chris.absence
NOTIFYDEV geofancy
NR 112
NTFY_ORDER 50-n_iPhone_chris.absence
REGEXP geofancy:currLoc_iPhone_chris:.underway
STATE 2017-11-19 17:54:30
TYPE notify
READINGS:
2017-11-19 17:41:23 state active
Attributes:
Internals:
DEF geo
NAME geofancy
NR 103
STATE id:xxx trig:1 date:1511110616 lat:xxx long:xx dev:xxx devAlias=iPhone_chris
TYPE GEOFANCY
Helper:
DBLOG:
currLocAddr_iPhone_chris:
logdb:
TIME 1511110470.53306
VALUE -
currLocLat_iPhone_chris:
logdb:
TIME 1511110634.44859
VALUE xxx
currLocLong_iPhone_chris:
logdb:
TIME 1511110634.44859
VALUE xxx
currLocTime_iPhone_chris:
logdb:
TIME 1511110634.44859
VALUE 2017-11-19 17:56:56
currLoc_iPhone_chris:
logdb:
TIME 1511110634.44859
VALUE Zuhause
iPhone_chris:
logdb:
TIME 1511110634.44859
VALUE arrived Zuhause
lastArr:
logdb:
TIME 1511110634.44859
VALUE iPhone_chris Zuhause
lastDep:
logdb:
TIME 1511110470.53306
VALUE iPhone_chris Zuhause
lastDevice:
logdb:
TIME 1511110634.44859
VALUE iPhone_chris
lastDeviceUUID:
logdb:
TIME 1511110634.44859
VALUE xxx
state:
logdb:
TIME 1511110634.44859
VALUE xxxdevAlias=iPhone_chris
READINGS:
2017-11-19 17:56:56 currLocAddr_iPhone_chris Trivastraße 30
80637 München
Deutschland
2017-11-19 17:56:56 currLocLat_iPhone_chris x
2017-11-19 17:56:56 currLocLong_iPhone_chris x
2017-11-19 17:56:56 currLocTime_iPhone_chris 2017-11-19 17:56:56
2017-11-19 17:56:56 currLoc_iPhone_chris Zuhause
2017-11-19 17:56:56 iPhone_chris arrived Zuhause
2017-11-19 17:56:56 lastArr iPhone_chris Zuhause
2017-11-19 17:50:33 lastDep iPhone_chris Zuhause
2017-11-19 17:56:56 lastDevice iPhone_chris
2017-11-19 17:56:56 lastDeviceUUID xx
2017-11-19 17:18:54 lastLocAddr_iPhone_chris Zuhause
2017-11-19 17:18:54 lastLocArr_iPhone_chris Zuhause
2017-11-19 17:18:54 lastLocDep_iPhone_chris 2017-11-19 17:18:54
2017-11-19 17:18:54 lastLocLat_iPhone_chris Zuhause
2017-11-19 17:18:54 lastLocLong_iPhone_chris Zuhause
2017-11-19 17:18:54 lastLoc_iPhone_chris Zuhause
2017-11-19 17:56:56 state id:xxx
fhem:
infix geo
helper:
device_aliases:
xxx iPhone_chris
device_names:
iPhone_chris xxx
Attributes:
devAlias x:iPhone_chris
room Unsorted
Hast Du irgendwelche notify oder DOIF oder watchdogs, die "generische" Befehle haben, z.B. mit Regex oder FILTER ? Die würde ich zuerst analysieren.
Mit attr global verbose 5, siehst Du nicht in der Log?
Zitat von: amenomade am 19 November 2017, 23:03:53
Hast Du irgendwelche notify oder DOIF oder watchdogs, die "generische" Befehle haben, z.B. mit Regex oder FILTER ? Die würde ich zuerst analysieren.
Danke, das schau ich mir gleich genauer an...
Zitat
Mit attr global verbose 5, siehst Du nicht in der Log?
Das war ein guter Hinweis, damit sehe ich, dass die Events wohl über die Webschnittestelle ausgelöst werden:
2017.11.19 23:12:56 4: WEB: /fhem/?cmd=set%20HomeStatus%203&fwcsrf=csrf_644612574782591&XHR=1&_=1511034021337 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2017.11.19 23:12:56 4: WEB_192.168.1.99_54124 GET /fhem/?cmd=set%20HomeStatus%201&fwcsrf=csrf_644612574782591&XHR=1&_=1511034021338; BUFLEN:0
2017.11.19 23:12:56 5: Cmd: >set HomeStatus 1<
Ich kann mich nicht erinnern, sowas eingestellt zu haben, aber ich suche mal ob vielleicht irgendwo was zu finden ist...
kurzes Update, jetzt habe ich hier und da rumprobiert, und im Moment tritt das ganze nicht auf...
Ich habe am Raspberry ein kleines Display hängen, auf dem eine kleine Oberfläche läuft. Vorhin hab ich einfach mal den X-Server geschlossen, und prompt hat das beschriebene Verhalten aufgehört; jetzt läuft alles wieder, und das Problem tritt nicht mehr auf; Dabei hab ich eigentlich nichts geändert... Strange...
Nun ja, ich suche mal weiter, wenn es wieder auftritt...
Vielen Dank für den Hinweis mit dem attr global verbose 5, das kannte ich noch nicht; das war bei der Suche sehr hilfreich!
Gute Nacht,
Christian