FHEM - Anwendungen > Beleuchtung
DeConz aktualisiert State nach reboot und löst DOIF aus
(1/1)
ReneR1986:
Hallo zusammen,
ich habe u.a. einige IKEA Switches im Einsatz auf die ich beim Schalten mittels DOIF reagiere.
Bei einem Neustart von Deconz oder wenn die Verbindung mal verloren geht und dann wieder aufgebaut wird, werden die States der entsprechenden Devices scheinbar aktualisiert bzw. neu eingelesen (der Timestamp ändert sich zwar nicht aber die Zeile in der GUI wird rot)
Das führt natürlich dazu, dass verschiedene DOIFs darauf reagieren. Nachts gehen zum Beispiel einige Lichter an oder das Hoftor fährt auf.
Hat jemand eine Idee, wie ich das abfangen könnte?
VG
Nachtrag:
Ist scheinbar nicht immer der Fall...
Otto123:
Hallo,
--- Zitat von: ReneR1986 am 31 März 2022, 12:38:25 ---Hat jemand eine Idee, wie ich das abfangen könnte?
--- Ende Zitat ---
mit der "Unmenge" an Infos wirds schwer :-\ https://forum.fhem.de/index.php/topic,71806.0.html
Deconz - wie eingebunden?
list vom Device was auslöst?
list vom DOIF was dMn falsch reagiert?
Vermutung zum suchen - Stichwort Genauigkeit des Triggers - Dein DOIF reagiert auf alles vom Device anstatt exakt auf das Ereignis was Du eigentlich wolltest.
Tool: Eventmonitor
Gruß Otto
ReneR1986:
OK, stimmt.
DeConz läuft, wie auch FHEM, in Docker.
Eingebunden als HueBridge.
Auslösendes Device (Bsp.: Ikea Switch)
--- Code: ---Internals:
DEF sensor 21 IODev=deCONZ
FUUID 61c09b3a-f33f-5d23-ea7c-9ebef254499154e9
FVERSION 31_HUEDevice.pm:0.256480/2022-02-07
ID S21
INTERVAL
IODev deCONZ
NAME Shortcut_Button_Hoftor
NR 224
STATE 1001
TYPE HUEDevice
manufacturername IKEA of Sweden
modelid TRADFRI SHORTCUT Button
name TRADFRI SHORTCUT Button
on 1
reachable 0
swversion 2.3.015
type ZHASwitch
uniqueid 0c:43:14:ff:fe:b0:7a:9a-01-1000
READINGS:
2022-03-30 12:46:58 IODev deCONZ
2022-03-07 17:19:46 battery 34
2022-03-07 17:19:46 batteryPercent 34
2022-03-06 17:17:28 lastseen 2022-03-06T16:17Z
2022-03-07 17:19:46 reachable 0
2022-03-06 18:17:28 state 1001
helper:
devtype S
state 1001
update_timeout 1
configList:
json:
ep 1
etag 7ec0b8460d915cbe55e28dc29dfabc84
lastseen
manufacturername IKEA of Sweden
mode 1
modelid TRADFRI SHORTCUT Button
name TRADFRI SHORTCUT Button
swversion 2.3.015
type ZHASwitch
uniqueid 0c:43:14:ff:fe:b0:7a:9a-01-1000
config:
alert none
battery 34
group 2
state:
buttonevent 1001
lastupdated 2022-03-06T16:17:28.489
setList:
Attributes:
IODev deCONZ
group HUESensor
model TRADFRI SHORTCUT Button
room Hof
--- Ende Code ---
DOIF
--- Code: ---Internals:
DEF ([dummy_hoftor:state] eq "auf" or [Shortcut_Button_Hoftor:state] eq 1002 or [Shortcut_Button_Hoftor:state] eq 1003) ({system("ssh torsteuerung\@192.168.1.10 python3 relais.py &")})
FUUID 61f79204-f33f-5d23-deaa-4be8eb614588d15a
MODEL FHEM
NAME di_hoftor
NOTIFYDEV Shortcut_Button_Hoftor,global,dummy_hoftor
NR 240
NTFY_ORDER 50-di_hoftor
STATE cmd_1
TYPE DOIF
VERSION 25663 2022-02-09 17:05:11
READINGS:
2022-03-31 11:56:29 Device dummy_hoftor
2022-03-31 11:56:29 cmd 1
2022-03-31 11:56:29 cmd_event dummy_hoftor
2022-03-31 11:56:29 cmd_nr 1
2022-03-31 11:53:10 e_Shortcut_Button_Hoftor_state 1001
2022-03-31 11:56:29 e_dummy_hoftor_state auf
2022-03-31 11:56:29 error {system("ssh torsteuerung\@192.168.1.10 python3 relais.py &")}: -1
2022-02-17 13:24:03 mode enabled
2022-03-31 11:56:29 state cmd_1
Regex:
accu:
collect:
cond:
Shortcut_Button_Hoftor:
0:
state ^Shortcut_Button_Hoftor$:^state:
dummy_hoftor:
0:
state ^dummy_hoftor$:^state:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::ReadingValDoIf($hash,'dummy_hoftor','state') eq "auf" or ::ReadingValDoIf($hash,'Shortcut_Button_Hoftor','state') eq 1002 or ::ReadingValDoIf($hash,'Shortcut_Button_Hoftor','state') eq 1003
do:
0:
0 {system("ssh torsteuerung\@192.168.1.10 python3 relais.py &")}
1:
helper:
NOTIFYDEV Shortcut_Button_Hoftor,global,dummy_hoftor
event auf
globalinit 1
last_timer 0
sleeptimer -1
timerdev dummy_hoftor
timerevent auf
triggerDev dummy_hoftor
DOIF_eventa:
cmd_nr: 1
cmd: 1
cmd_event: dummy_hoftor
error: {system("ssh torsteuerung\@192.168.1.10 python3 relais.py &")}: -1
cmd_1
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: dummy_hoftor
error: {system("ssh torsteuerung\@192.168.1.10 python3 relais.py &")}: -1
state: cmd_1
timerevents:
auf
timereventsState:
state: auf
triggerEvents:
auf
triggerEventsState:
state: auf
internals:
perlblock:
readings:
all dummy_hoftor:state Shortcut_Button_Hoftor:state
trigger:
uiState:
uiTable:
Attributes:
do always
room Hof
--- Ende Code ---
Was ich hier schon etwas seltsam finde ist, dass der Button (habe ich schon lange nicht genutzt) schon seit dem 06.03 den State (buttonevent) 1001 hat.
Darauf sollte das DOIF eigentlich gar nicht reagieren...Hat es aber scheinbar.
Thyraz:
Siehe Diskussion ab diesem Post von mir, zieht sich dann bis zur letzten Seite mit Unterbrechungen:
https://forum.fhem.de/index.php/topic,122075.msg1206701.html#msg1206701
Fazit:
Workaround ist ReadingsAge abfragen, an den Stellen an denen du auf die Events reagierst.
Langzeitlösung wird wohl ein Attribut für die HUEDevices sein, mit dem man sagen kann ob es ein Gerät ist bei dem ein "veralteter" letzter Wert übernommen werden sollte (z.B. bei Thermometern interessiert der letzte Wert unabhängig ob FHEM da nun lief oder nicht) oder nicht (Bei Tastern will man z.B. normal keine veralteten Events nachgeliefert bekommen).
Und noch zusätzlich:
Das Problem verstärkt sich, wenn man das StateFile nicht regelmäßig sichert und FHEM dann z.B. crashed.
Die für FHEM zuletzt "aktuellen" Werte können dann sehr alt sein (z.B. 06.03 falls das StateFile tatsächlich zwischendurch nicht durch einen geregelten FHEM Neustart gesichert wurde).
Es schadet also nicht das Speichern des SateFiles regelmäßig zu triggern (IMHO wäre es nicht verkehrt wenn FHEM das auf einer Standardinstallation regelmäßig machen würde).
Siehe diesen Tip hier aus demselben Thread:
https://forum.fhem.de/index.php/topic,122075.msg1207325.html#msg1207325
ReneR1986:
Das hört sich genau nach meinem Problem an.
Auch was du im Beitrag mit der Zeitumstellung erwähnst...
War bei mir genauso. Am nächsten Tag stand das Tor offen und das Licht im Wohnzimmer war an.
Ich versuch erst mal den Ansatz mit ReadingsAge und versuche das StateFile mit
--- Code: ---{WriteStatefile()}
--- Ende Code ---
regelmäßig zu sichern.
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln