Moin zusammen,
meine DOIF's zur Frage, ob ich meinen Keller lüften kann oder nicht, aktualisieren nicht mehr, nachdem sie den Winter über augenscheinlich den richtigen Status gezeigt haben.
Setup:
Ich habe zwei Temperatur-Sensoren, einen im Garten (Garten.Temp) und einen im Keller (Keller.Gartenzimmer.Temp), beide berechnen über das dewpoint Modul den Taupunkt. Im Keller sind die Wände ca. 6 Grad kälter als die Raumluft (an den relevanten Stellen, nicht überall), daher habe ich folgendes DOIF angelegt, dass dann ein Dummy Device setzt, welches ich im UI später anzeige.
Internals:
DEF ([Garten.Temp:dewpoint] > [Keller.Werkstatt.Temp:temperature - 6,0]) (set Keller.Werkstatt.Lueften Nicht) DOELSE (set Keller.Werkstatt.Lueften Lueften)
FUUID 5ff5d814-f33f-fc15-0a47-0ecab58937f9d0c6
MODEL FHEM
NAME di_lueften_Werkstatt
NOTIFYDEV Keller.Werkstatt.Temp,global,Garten.Temp
NR 101
NTFY_ORDER 50-di_lueften_Werkstatt
STATE cmd_1
TYPE DOIF
VERSION 23466 2021-01-03 17:14:46
READINGS:
2021-02-22 19:24:49 Device Garten.Temp
2021-02-22 07:32:01 cmd 1
2021-02-22 07:32:01 cmd_event Garten.Temp
2021-02-22 07:32:01 cmd_nr 1
2021-02-22 19:24:49 e_Garten.Temp_dewpoint 5.2
2021-02-22 07:30:25 mode enabled
2021-02-22 07:32:01 state cmd_1
Regex:
accu:
cond:
Garten.Temp:
0:
dewpoint ^Garten.Temp$:^dewpoint:
Keller.Werkstatt.Temp:
0:
temperature - 6 ^Keller.Werkstatt.Temp$:^temperature - 6:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::ReadingValDoIf($hash,'Garten.Temp','dewpoint') > ::ReadingValDoIf($hash,'Keller.Werkstatt.Temp','temperature - 6','0')
do:
0:
0 set Keller.Werkstatt.Lueften Nicht
1:
0 set Keller.Werkstatt.Lueften Lueften
helper:
DEVFILTER ^global$|^Keller.Werkstatt.Temp$|^Garten.Temp$
NOTIFYDEV global|Keller.Werkstatt.Temp|Garten.Temp
event temperature: 10,T: 10 H: 72,dewpoint: 5.2
globalinit 1
last_timer 0
sleeptimer -1
timerdev Garten.Temp
timerevent temperature: 10,T: 10 H: 72,dewpoint: 5.2
triggerDev Garten.Temp
timerevents:
temperature: 10
T: 10 H: 72
dewpoint: 5.2
timereventsState:
temperature: 10
state: T: 10 H: 72
dewpoint: 5.2
triggerEvents:
temperature: 10
T: 10 H: 72
dewpoint: 5.2
triggerEventsState:
temperature: 10
state: T: 10 H: 72
dewpoint: 5.2
internals:
perlblock:
readings:
all Garten.Temp:dewpoint Keller.Werkstatt.Temp:temperature - 6
trigger:
uiState:
uiTable:
Attributes:
devStateIcon cmd_1|initialize|initialized:ampel_rot cmd_2:ampel_gruen
room Keller.Werkstatt
Der Temperatursensor in der Keller.Werkstatt zeigt "temperature 16,1", der Taupunkt der Gartenluft ist bei 5,2. Demnach sollte doch cmd_2 rauskommen, und nicht cmd_1. War den ganzen Winter auch gut, erst als die Temperatur jetzt plötzlich anstieg und der Taupunkt der Außenluft >10 Grad war, ist das DOIF auf cmd_1 (ebenso wie zwei analoge DOIF in anderen Kellerräumen). Aber nicht mehr zurück. Ich habe auch schon mal das "do always" attribut bei einem der DOIF gesetzt. Das war es aber nicht.
Hat jemand eine Idee? Ich seh den Wald irgendwie vor lauter Bäumen nicht.
Beste Grüße
Natcho
kann so nie richtig funktioniert haben:
statt:
[Keller.Werkstatt.Temp:temperature - 6,0]
eher:
([Keller.Werkstatt.Temp:temperature] - 6)
Moin,
stimmt, so geht's. Scheinbar hat es dann nur zufälllig vorher den richtigen Zustand angezeigt, kein Plan warum es dann auch zuletzt den Zustand gewechselt hat. Jetzt sind die Anzeigen wieder richtig, mal sehen ob er morgen ordentlich umschaltet wenn es wieder wärmer wird.
Vielen Dank!
Natcho