Hallo zusammen,
ich versuche mich gerade an meiner Heizungsreglung für mein Wohnzimmer und habe Probleme mit der Regel.
Am Anfang der Regel wollte ich eine Initialisierung der Solltemperaturen machen aber Leider funst die nicht.
// Heizung Wohnzimmer
rule "Init Heizung Wohnzimmer"
when
System started
then
if (Heizung_W_Soll.state == Uninitialized)
{
Heizung_W_Soll.postUpdate(21.0)
}
if (Heizung_W_Soll_N.state == Uninitialized)
{
Heizung_W_Soll_N.postUpdate(18.0)
}
end
rule "Init Heizung Wohnzimmer"
when
System started
then
if (Heizung_W_Soll.state === NULL)
{
Heizung_W_Soll.postUpdate(21.0)
}
if (Heizung_W_Soll_N.state === NULL)
{
Heizung_W_Soll_N.postUpdate(18.0)
}
end
Hallo Cyrelian,
mit Null anstatt Uninitialized gehts. Ich dachte nur bei Neustart steht da gar kein Wert auch nicht Null ?
Danke und Grüße aus dem schönen Saarland
Saarländer
Raspberry Pi 3 & 4 openHAB3.2
Asus Touchscreen Wandeinbau
Win 10 Rechner zum Visualisieren
Sonoff Aktoren mit Tasmota
Sonoff RF Bridge
MiLight
Shelly 1 und 2
nach einem Neustart stehen ALLE Items, die nicht direkt über ein Things oder aus einer Persistence gesetzt werden auf NULL. Ich meine in OH1 war das noch "Uninitialized". Seit OH2 ist aber NULL der Wert nach den Neustart.
Wichtig ist die Abfrage mit "===" oder "!==" auf NULL.
peter-pan hat geschrieben: ↑17. Nov 2019 16:46
Sicher dass das so (=== / !==) verglichen wird ? Ich dachte bisher, das gilt nur für null.
Hi Peter,
korrekt, so wie ich oben geschrieben habe:
Wichtig ist die Abfrage mit "===" oder "!==" auf NULL.
Aber bitte aufpassen null ist NICHTNULL:
Denn NULL ist ein Zustand, der anzeigt, dass ein Element nicht initialisiert ist. null hingegen ist etwas, das nur in Regeln sinnvoll ist (var Timer Poolpumpe = null ) und bedeutet, dass eine Variable keinen Wert hat.
rule "Init Heizung Wohnzimmer"
when
System started
then
if (!(Heizung_W_Soll.state instanceof Number)) Heizung_W_Soll.postUpdate(21)
if (!(Heizung_W_Soll_N.state instanceof Number)) Heizung_W_Soll_N.postUpdate(18)
end
Es ist dann egal, welcher ungültige Wert im Item steht (UNINITIALIZED, NULL oder UNDEF)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
rule "Init Heizung Wohnzimmer"
when
System started
then
if (!(Heizung_W_Soll.state instanceof Number)) Heizung_W_Soll.postUpdate(21)
if (!(Heizung_W_Soll_N.state instanceof Number)) Heizung_W_Soll_N.postUpdate(18)
end
Es ist dann egal, welcher ungültige Wert im Item steht (UNINITIALIZED, NULL oder UNDEF)