Hallo ich verwende für meine Poolsteuerung zwei DOIFs welche die Zeitabstände (event-min-interval...) bei Tag und Nacht umstellen.
Hat bis zum Ende der Badesaison 2020 funktioniert. Heuer habe ich immer nach dem Ausführen des DOIFs das rote Fragezeichen bei "Save config"
Hier die 2 DOIFs
defmod di_TagSensoren DOIF ([07:01:00-19:00:00] and [PoolMaster] eq "on") (attr PoolSensor event-min-interval temperature:60,save, attr SolarSensor event-min-interval temperature:30,save) DOELSE
attr di_TagSensoren alias di_TagSensoren
attr di_TagSensoren room Steuerung
defmod di_NachtSensoren DOIF ([19:01:00-07:00:00] and [PoolMaster] eq "on") (attr PoolSensor event-min-interval temperature:600,save, attr SolarSensor event-min-interval temperature:600,save) DOELSE
attr di_NachtSensoren alias di_NachtSensoren
attr di_NachtSensoren room Steuerung
Warum wird der "save" Befehl nicht mehr ausgeführt?
Danke für eure Hilfe
Helmut
Ist bei dir autosave aktiviert?
https://forum.fhem.de/index.php?topic=80480.0
Gruß, Joachim
Hallo Helmut,
ich denke deshalb: https://forum.fhem.de/index.php?topic=92793.0
Edit: zu langsam :)
Gruß Otto
Könnte am fehlenden Leerzeichen liegen - dadurch könnte dies als Attribut-Zuordnung mitgezählt werden. Versuche es mal mit Leerzeichen vor save:
defmod di_TagSensoren DOIF ([07:01:00-19:00:00] and [PoolMaster] eq "on") (attr PoolSensor event-min-interval temperature:60, save, attr SolarSensor event-min-interval temperature:30, save) DOELSE
attr di_TagSensoren alias di_TagSensoren
attr di_TagSensoren room Steuerung
defmod di_NachtSensoren DOIF ([19:01:00-07:00:00] and [PoolMaster] eq "on") (attr PoolSensor event-min-interval temperature:600, save, attr SolarSensor event-min-interval temperature:600, save) DOELSE
attr di_NachtSensoren alias di_NachtSensoren
attr di_NachtSensoren room Steuerung
Im Übrigen, würde ein save und ein DOIF nicht reichen?
defmod di_TagSensoren DOIF ([07:01:00-19:00:00]\
and [PoolMaster] eq "on")\
(attr PoolSensor event-min-interval temperature:60,\
attr SolarSensor event-min-interval temperature:30,\
save)\
DOELSEIF ([19:01:00-07:00:00]\
and [PoolMaster] eq "on")\
(attr PoolSensor event-min-interval temperature:600,\
attr SolarSensor event-min-interval temperature:600,\
save)\
DOELSE
attr di_TagSensoren alias di_TagSensoren
attr di_TagSensoren room Steuerung
Guten Morgen an alle
Ja autosave war nicht auf 1 - Danke
@ yersina DAs ist natürlich die schönere Art. Die werde ich umsetzen
Schönen Tag
Helmut
Hallo @yersina
Guten Morgen - habe jetzt deine Version eingesetzt.
Sie funktioniert bringt aber eine Fehlermeldung
Internals:
CFGFN
DEF ([07:01:00-19:00:00]
and [PoolMaster] eq "on")
(attr PoolSensor event-min-interval temperature:60,
attr SolarSensor event-min-interval temperature:30,
save)
DOELSEIF ([19:01:00-07:00:00]
and [PoolMaster] eq "on")
(attr PoolSensor event-min-interval temperature:600,
attr SolarSensor event-min-interval temperature:600,
save)
DOELSE
FUUID 60a4b093-f33f-b033-6dad-d4019de5338647bd
MODEL FHEM
NAME di_TagSensoren
NOTIFYDEV PoolMaster,global
NR 8938
NTFY_ORDER 50-di_TagSensoren
STATE cmd_1
TYPE DOIF
READINGS:
2021-05-20 07:01:00 cmd 1
2021-05-20 07:01:00 cmd_event timer_1
2021-05-20 07:01:00 cmd_nr 1
2021-05-20 07:01:00 error save: Wrote configuration to fhem.cfg
2021-05-19 08:30:46 mode enabled
2021-05-20 07:01:00 state cmd_1
2021-05-19 19:00:00 timer_01_c01 20.05.2021 07:01:00
2021-05-19 19:00:00 timer_02_c01 20.05.2021 19:00:00
2021-05-20 07:00:00 timer_03_c02 20.05.2021 19:01:00
2021-05-20 07:00:00 timer_04_c02 21.05.2021 07:00:00
Regex:
accu:
collect:
cond:
PoolMaster:
0:
&STATE ^PoolMaster$
1:
&STATE ^PoolMaster$
attr:
cmdState:
wait:
waitdel:
condition:
0 ::DOIF_time($hash,0,1,$wday,$hms) and ::InternalDoIf($hash,'PoolMaster','STATE') eq "on"
1 ::DOIF_time($hash,2,3,$wday,$hms) and ::InternalDoIf($hash,'PoolMaster','STATE') eq "on"
days:
do:
0:
0 attr PoolSensor event-min-interval temperature:60, attr SolarSensor event-min-interval temperature:30, save
1:
0 attr PoolSensor event-min-interval temperature:600, attr SolarSensor event-min-interval temperature:600, save
2:
0
helper:
DEVFILTER ^global$|^PoolMaster$
NOTIFYDEV global|PoolMaster
event timer_1
globalinit 1
last_timer 4
sleeptimer -1
timerdev
timerevent timer_1
triggerDev
DOIF_eventa:
cmd_nr: 1
cmd: 1
cmd_event: timer_1
error: save: Wrote configuration to fhem.cfg
cmd_1
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: timer_1
error: save: Wrote configuration to fhem.cfg
state: cmd_1
timerevents:
timer_1
timereventsState:
timer_1
triggerEvents:
timer_1
triggerEventsState:
timer_1
internals:
all PoolMaster:STATE
interval:
0 -1
1 0
2 -1
3 2
intervalfunc:
intervaltimer:
localtime:
0 1621486860
1 1621530000
2 1621530060
3 1621573200
realtime:
0 07:01:00
1 19:00:00
2 19:01:00
3 07:00:00
time:
0 07:01:00
1 19:00:00
2 19:01:00
3 07:00:00
timeCond:
0 0
1 0
2 1
3 1
timer:
0 0
1 0
2 0
3 0
timers:
0 0 1
1 2 3
triggertime:
1621530000:
localtime 1621530000
hash:
1621530060:
localtime 1621530060
hash:
1621573200:
localtime 1621573200
hash:
uiState:
uiTable:
Attributes:
alias di_TagSensoren
room Steuerung
Hab hier das List vom DOIF angehängt.
??
LG
Helmut
In diesem Fall ist es nur eine Info, weil save etwas zurückmeldet - das kannst du ignorieren.
Danke - das wusste ich nicht.
Hätte mich auch gewundert denn die Werte im Sensor passen.
Schönen Tag
Helmut
mit z.B.
{$attr{PoolSensor}{event-min-interval}="temperature:60"}
kann man ein Attribut temporär ändern ohne save, ohne dass ein Fragezeichen erscheint
Danke
Aber jetzt erscheint kein Fragezeichen mehr. Das war anscheinend durch den fehlenden Abstand nach dem","