Guten Morgen,
/edit Ich hab grad das DOIF geändert (zeile 3 das Readgingsage gelöscht und neu Initialisiert). Nun geht es wieder. Und zwar alle 3 DOIF Zweige. Auch nach erneuten einsetzen von Readgingsage.
ohne Veränderungen geht seit letzten Sonntag Ein schalter in Kombination mit einem DOIF nicht mehr.
BZw. der Schalter sendet, aber das DOIF löst nicht mehr aus. Zusätzlich werden die Zeitstempel in den Schalter von der aktuellen Zeit eine Stunde Früher gesetzt. Beispiel: Eben um 8:56 drauf gedrückt. Kurz war das auch mit dem Zeitstempel zu sehen. Danach wurde es intern au 7:56 gesetzt wie im List zu sehen.
Angebunden ist dies per Desconz /Phoscon.
Internals:
DEF sensor 19 IODev=deCONZ
FUUID 5ca84b04-f33f-ed1e-2f58-4e2c96cf0590497d
FVERSION 31_HUEDevice.pm:0.190980/2019-04-02
ID S19
INTERVAL
IODev deCONZ
NAME SZ.Schalter_alle_Jalousien
NR 273
STATE 1002
TYPE HUEDevice
lastupdated 2019-04-06 06:56:12
lastupdated_local 2019-04-06 07:56:12
manufacturername LUMI
modelid lumi.sensor_86sw2
name Wandsender 2-fach
on 1
reachable 1
swversion 20170411
type ZHASwitch
uniqueid 00:15:8d:00:01:f4:80:f1-01-0006
READINGS:
2019-04-06 07:56:12 battery 100
2019-04-06 07:56:12 reachable true
2019-04-06 07:56:12 state 1002
2019-04-06 07:56:12 temperature 21
helper:
devtype S
reachable 0
update_timeout 1
setList:
Attributes:
IODev deCONZ
room Schlafzimmer
Internals:
DEF ([SZ.Schalter_alle_Jalousien:state] == "1002" and (ReadingsAge("SZ.Schalter_alle_Jalousien","state","") <= 30)) (set JalousieAlle Hoch, set RA.Morgens_Abends Hoch, set RA.Schalter_Windschutz Aktiv)
DOELSEIF
([SZ.Schalter_alle_Jalousien:state] == "2002" and (ReadingsAge("SZ.Schalter_alle_Jalousien","state","") <= 30)) (set JalousieAlle Hoch, set RA.Morgens_Abends Hoch, set RA.Schalter_Windschutz Aktiv)
DOELSEIF
([SZ.Schalter_alle_Jalousien:state] == "3002" and (ReadingsAge("SZ.Schalter_alle_Jalousien","state","") <= 30)) (set SZ.Jalousie toggle)
FUUID 5ca84b04-f33f-ed1e-436a-826a9286fd38e5e1
MODEL FHEM
NAME Xiaomi_Jallousien_alle_hoch
NR 274
NTFY_ORDER 50-Xiaomi_Jallousien_alle_hoch
STATE cmd_1
TYPE DOIF
VERSION 18890 2019-03-13 18:56:41
READINGS:
2019-04-06 08:56:27 Device SZ.Schalter_alle_Jalousien
2019-04-06 08:13:45 cmd 1
2019-04-06 08:13:45 cmd_event set_cmd_1
2019-04-06 08:13:45 cmd_nr 1
2019-04-06 08:56:27 e_SZ.Schalter_alle_Jalousien_state 1002
2019-04-06 08:12:23 mode enabled
2019-04-06 08:13:45 state cmd_1
Regex:
accu:
condition:
0 ::ReadingValDoIf($hash,'SZ.Schalter_alle_Jalousien','state') == "1002" and (ReadingsAge("SZ.Schalter_alle_Jalousien","state","") <= 30)
1 ::ReadingValDoIf($hash,'SZ.Schalter_alle_Jalousien','state') == "2002" and (ReadingsAge("SZ.Schalter_alle_Jalousien","state","") <= 30)
2 ::ReadingValDoIf($hash,'SZ.Schalter_alle_Jalousien','state') == "3002" and (ReadingsAge("SZ.Schalter_alle_Jalousien","state","") <= 30)
devices:
0 SZ.Schalter_alle_Jalousien
1 SZ.Schalter_alle_Jalousien
2 SZ.Schalter_alle_Jalousien
all SZ.Schalter_alle_Jalousien
do:
0:
0 set JalousieAlle Hoch, set RA.Morgens_Abends Hoch, set RA.Schalter_Windschutz Aktiv
1:
0 set JalousieAlle Hoch, set RA.Morgens_Abends Hoch, set RA.Schalter_Windschutz Aktiv
2:
0 set SZ.Jalousie toggle
3:
helper:
event battery: 100,reachable: true,temperature: 21,1002
globalinit 1
last_timer 0
sleeptimer -1
triggerDev SZ.Schalter_alle_Jalousien
triggerEvents:
battery: 100
reachable: true
temperature: 21
1002
triggerEventsState:
battery: 100
reachable: true
temperature: 21
state: 1002
internals:
itimer:
perlblock:
readings:
0 SZ.Schalter_alle_Jalousien:state
1 SZ.Schalter_alle_Jalousien:state
2 SZ.Schalter_alle_Jalousien:state
all SZ.Schalter_alle_Jalousien:state
trigger:
uiState:
uiTable:
Attributes:
do always
event-on-update-reading state
room Rolladenautomatik,Schlafzimmer
{$hms}
Hier wird die aktuelle (richtige) Uhrzeit ausgegeben.
Updates grad eben durchgeführt um auf Nummer sicher zu gehen..
Irgend eine Idee?
Das scheinen eher Zeit-Probleme von HUE als von DOIF zu sein -> anderes FHEM-Board. Du kannst in der Kommandozeile {ReadingsAge("SZ.Schalter_alle_Jalousien","state","")} aufrufen, dann siehst du was das System liefert, daran kannst du erkennen, ob die DOIF-Bedingung wahr ist oder nicht.
Zahlenvergleiche ohne Anführungszeichen, Zeichenketten mit eq vergleichen:
[SZ.Schalter_alle_Jalousien:state] == 1002
oder
[SZ.Schalter_alle_Jalousien:state] eq "1002"