Hallo :)
habe hier ein wenig merkwürdiges Problem und finde den Fehler nicht.
Was sollte passieren? Eine Heizungssteuerung die als erstes die tmp absenkt wenn keiner zuhause ist + wenn wieder jemand zuhause ist die ursprüngliche tmp wieder einstellen - dies klappt auch schon
([Anwesenheit] <1 and [Fenstersensor:doorWindow] eq "off")(setreading MAX_1a9eda gespeicherteTemperatur [MAX_1a9eda:desiredTemperature])(set MAX_1a9eda desiredTemperature eco)
als nächstes sollte noch wenn ein fenster geöffnet wird die Heizung ausgeschaltet werden und bei geschlossenen Fenster die ursprüngliche Tmp wieder eingestellt werden - hier passt was überhaupt noch nicht
DOELSEIF ([Anwesenheit] >0 and [Fenstersensor:doorWindow] eq "off")(set MAX_1a9eda desiredTemperature [MAX_1a9eda:gespeicherteTemperatur])
DOELSEIF ([Anwesenheit] >0 and [Fenstersensor:doorWindow] eq "on")(setreading MAX_1a9eda gespeicherteTemperatur [MAX_1a9eda:desiredTemperature])(set MAX_1a9eda desiredTemperature off)
Was funktioniert bisher? Wenn ein Fenster geöffnet wird, wird die aktuelle tmp (desiredTemperature) auch in ein neues reading (gespeicherteTemperatur) geschrieben und zusätzlich die Heizung auf off gestellt. Soweit so gut.
Wenn jetzt des Fenster geschlossen wird stellt sich komischerweise die gespeicherteTemperatur und desiredTemperature auf off. eigentlich sollte aber bei desiredTemperature der Wert von gespeicherteTemperatur stehen.
anbei noch mein DOIF in voller pracht :)
Internals:
DEF ([Testingdummy] <1 and [ZWave_SENSOR_NOTIFICATION_18:doorWindow] eq "off")(setreading MAX_1a9eda gespeicherteTemperatur [MAX_1a9eda:desiredTemperature])(set MAX_1a9eda desiredTemperature eco)
DOELSEIF ([Testingdummy] >0 and [ZWave_SENSOR_NOTIFICATION_18:doorWindow] eq "off")(set MAX_1a9eda desiredTemperature [MAX_1a9eda:gespeicherteTemperatur])
DOELSEIF ([Testingdummy] >0 and [ZWave_SENSOR_NOTIFICATION_18:doorWindow] eq "on")(setreading MAX_1a9eda gespeicherteTemperatur [MAX_1a9eda:desiredTemperature])(set MAX_1a9eda desiredTemperature off)
DOELSE (set teleBot msg Heizungssteuerung Fehler)
MODEL FHEM
NAME Heizungssteuerung
NR 311
NTFY_ORDER 50-Tischlampe
STATE cmd_2
TYPE DOIF
.attraggr:
.attrminint:
READINGS:
2018-10-08 19:50:07 Device ZWave_SENSOR_NOTIFICATION_18
2018-10-08 19:50:07 cmd 2
2018-10-08 19:50:07 cmd_event ZWave_SENSOR_NOTIFICATION_18
2018-10-08 19:50:07 cmd_nr 2
2018-10-08 19:32:41 e_Testingdummy_STATE 2
2018-10-08 19:50:07 e_ZWave_SENSOR_NOTIFICATION_18_doorWindow off
2018-10-08 19:31:34 mode enabled
2018-10-08 19:50:07 state cmd_2
Regex:
attr:
cmdState:
wait:
0:
1
2
waitdel:
condition:
0 ::InternalDoIf($hash,'Testingdummy','STATE') <1 and ::ReadingValDoIf($hash,'ZWave_SENSOR_NOTIFICATION_18','doorWindow') eq "off"
1 ::InternalDoIf($hash,'Testingdummy','STATE') >0 and ::ReadingValDoIf($hash,'ZWave_SENSOR_NOTIFICATION_18','doorWindow') eq "off"
2 ::InternalDoIf($hash,'Testingdummy','STATE') >0 and ::ReadingValDoIf($hash,'ZWave_SENSOR_NOTIFICATION_18','doorWindow') eq "on"
devices:
0 Testingdummy ZWave_SENSOR_NOTIFICATION_18
1 Testingdummy ZWave_SENSOR_NOTIFICATION_18
2 Testingdummy ZWave_SENSOR_NOTIFICATION_18
all Testingdummy ZWave_SENSOR_NOTIFICATION_18
do:
0:
0 setreading MAX_1a9eda gespeicherteTemperatur [MAX_1a9eda:desiredTemperature]
1 set MAX_1a9eda desiredTemperature eco
1:
0 set MAX_1a9eda desiredTemperature [MAX_1a9eda:gespeicherteTemperatur]
2:
0 setreading MAX_1a9eda gespeicherteTemperatur [MAX_1a9eda:desiredTemperature]
1 set MAX_1a9eda desiredTemperature off
3:
0 set teleBot msg Heizungssteuerung Fehler
helper:
event doorWindow: off
globalinit 1
last_timer 0
sleeptimer -1
timerdev ZWave_SENSOR_NOTIFICATION_18
timerevent doorWindow: off
triggerDev ZWave_SENSOR_NOTIFICATION_18
DOIF_eventas:
cmd_nr: 2
cmd: 2
cmd_event: ZWave_SENSOR_NOTIFICATION_18
state: cmd_2
timerevents:
doorWindow: off
timereventsState:
doorWindow: off
triggerEvents:
doorWindow: off
triggerEventsState:
doorWindow: off
internals:
0 Testingdummy:STATE
1 Testingdummy:STATE
2 Testingdummy:STATE
all Testingdummy:STATE
itimer:
readings:
0 ZWave_SENSOR_NOTIFICATION_18:doorWindow
1 ZWave_SENSOR_NOTIFICATION_18:doorWindow
2 ZWave_SENSOR_NOTIFICATION_18:doorWindow
all ZWave_SENSOR_NOTIFICATION_18:doorWindow
trigger:
uiState:
uiTable:
Attributes:
alias Heizungssteuerung Büro
checkall all
do always
room 1.1.0 Buero,9.1.0 LOGIKCENTER
wait 1,2
auch ein rumspielen mit wait hat leider keinen Erfolg gebracht. ich kann mir einfach nicht erklären, woher im reading (gespeicherteTemperatur) dieses "off" herkommt.
anbei noch ein Auszug aus dem Eventmonitor
2018-10-08 20:22:47 DOIF Heizungssteuerung_Fensterkontakt wait_timer: 08.10.2018 20:22:48 cmd_1 ZWave_SENSOR_NOTIFICATION_18
2018-10-08 20:22:47 ZWave ZWave_SENSOR_NOTIFICATION_18 alarm: AccessControl: Window/Door is open
2018-10-08 20:22:47 DOIF Heizungssteuerung_Fensterkontakt cmd_event: ZWave_SENSOR_NOTIFICATION_18
2018-10-08 20:22:47 DOIF Heizungssteuerung_Fensterkontakt cmd_event: ZWave_SENSOR_NOTIFICATION_18
2018-10-08 20:22:47 ZWave ZWave_SENSOR_NOTIFICATION_18 doorWindow: on
2018-10-08 20:23:19 DOIF Heizungssteuerung_Fensterkontakt cmd_event: ZWave_SENSOR_NOTIFICATION_18
2018-10-08 20:23:19 DOIF Heizungssteuerung_Fensterkontakt cmd_event: ZWave_SENSOR_NOTIFICATION_18
2018-10-08 20:23:19 ZWave ZWave_SENSOR_NOTIFICATION_18 alarm: AccessControl: Window/Door is closed
2018-10-08 20:23:19 DOIF Heizungssteuerung_Fensterkontakt wait_timer: 08.10.2018 20:23:20 cmd_1 ZWave_SENSOR_NOTIFICATION_18
2018-10-08 20:23:19 ZWave ZWave_SENSOR_NOTIFICATION_18 doorWindow: off
2018-10-08 20:23:20 DOIF Heizungssteuerung_Fensterkontakt cmd_event: ZWave_SENSOR_NOTIFICATION_18
sieht für mich ein wenig danach aus, dass hier 2x gleichzeitig ein Event ausgelöst wird, sobald der Fenstersensor angesprochen wird.
Niemand der hier weiterhelfen kann?
Gesendet von meinem SM-N960F mit Tapatalk
Ich kann keine Stelle entdecken, die ein "off" hineinschreibt. Da wirst du dich herantasten müssen, indem du die Anweisungen einzeln ausführst und schaust was passiert, um den Fehler einzukreisen.
Lösung gefunden.
Anscheinend hat der Fenstersensor wirklich 2 Events ausgelöst.
event-on-update-reading brachte hier die Lösung.
evtl. hilft es ja den ein oder anderen
Zitat von: stoniii am 12 Oktober 2018, 16:01:56
Anscheinend hat der Fenstersensor wirklich 2 Events ausgelöst.
event-on-update-reading brachte hier die Lösung.
Ich hätte ja eher auf event-on-change-reading als Lösung getippt. ???
gb#