Habe folgendes DOIF:
define LueftungBuero DOIF ([FensterBuero] eq "offen" and [Heizungssteuerung] ne "aus" and [TemperaturFuehlerSchlafzimmerAussen:temperature] < 17.0) (set FensterBueroLueftenStatus ja, set HeizungBueroRegler 12.00)
attr LueftungBuero group Fenster Lüften Steuerung
attr LueftungBuero wait 60
Das ist noch nicht wirklich getestet bzw. im Einsatz, aber m.E. habe ich einen Fehler beim Reading der "temperature"
Ein list ergibt:
Internals:
DEF ([FensterBuero] eq "offen" and [Heizungssteuerung] ne "aus" and [TemperaturFuehlerSchlafzimmerAussen:temperature] < 17.0) (set FensterBueroLueftenStatus ja, set HeizungBueroRegler 12.00)
NAME LueftungBuero
NR 322
NTFY_ORDER 50-LueftungBuero
STATE cmd_2
TYPE DOIF
Readings:
2016-08-20 11:41:11 Device FensterBuero
2016-08-20 11:26:43 cmd 2
2016-08-20 11:26:43 cmd_event FensterBuero
2016-08-20 11:26:43 cmd_nr 2
2016-08-20 11:41:11 e_FensterBuero_STATE geschlossen
2016-08-20 11:40:12 e_TemperaturFuehlerSchlafzimmerAussen_temperature 19.68 C
2016-08-20 11:26:43 state cmd_2
2016-08-20 11:35:10 wait_timer no timer
Condition:
0 InternalDoIf($hash,'FensterBuero','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "offen" and InternalDoIf($hash,'Heizungssteuerung','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) ne "aus" and ReadingValDoIf($hash,'TemperaturFuehlerSchlafzimmerAussen','temperature','','',AttrVal($hash->{NAME},'notexist',undef)) < 17.0
Devices:
0 FensterBuero Heizungssteuerung TemperaturFuehlerSchlafzimmerAussen
all FensterBuero Heizungssteuerung TemperaturFuehlerSchlafzimmerAussen
Do:
0:
0 set FensterBueroLueftenStatus ja, set HeizungBueroRegler 12.00
1:
Helper:
event basicSet: 0
globalinit 1
last_timer 0
sleeptimer -1
timerdev FensterBuero
timerevent basicSet: 0
triggerDev FensterBuero
timerevents:
basicSet: 0
timereventsState:
basicSet: 0
triggerEvents:
basicSet: 0
triggerEventsState:
basicSet: 0
Internals:
0 FensterBuero:STATE Heizungssteuerung:STATE
all FensterBuero:STATE Heizungssteuerung:STATE
Itimer:
Readings:
0 TemperaturFuehlerSchlafzimmerAussen:temperature
all TemperaturFuehlerSchlafzimmerAussen:temperature
Regexp:
0:
All:
State:
Trigger:
Attributes:
group Fenster Lüften Steuerung
wait 60
Was genau ist die Frage/das Problem?
Mir fällt nur auf, dass Dein Temperatursensor "19.68 C" liefert, also mit Maßeinheit, was für einen numerischen Vergleich suboptimal ist.
Mit
[TemperaturFuehlerSchlafzimmerAussen:temperature:d] < 17.0
würdest Du nur die Dezimalzahl rausfiltern.