OH3 Item Status Null nach Neustart

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

OH3 Item Status Null nach Neustart

Beitrag von scotty »

Hallo Zusammen,

nach einem Neustart haben verschiedene Items bekanntlich den Status Null. Ist es richtig, dass unter OH3 die Korrektur per Rules so erreicht werden kann:

Code: Alles auswählen

if(SMA_Day_Start.state==NULL || SMA_Day_Start.state == UNDEF) { SMA_Day_Start.postUpdate(0) }
Zuletzt geändert von scotty am 31. Mär 2021 01:15, insgesamt 1-mal geändert.
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Item Status Null nach Neustart

Beitrag von int5749 »

Hallo alleine

über welchen Trigger möchtest Du gehen?? bei System start könnten einige Items ja noch nicht da sein.
Ich habe dies für die für mich wichtigen Items über persist gelöst mit restore on startup.
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
udo1toni
Beiträge: 15271
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Item Status Null nach Neustart

Beitrag von udo1toni »

Mein Tipp wäre, es eher so zu machen:

Code: Alles auswählen

if(!(SMA_Day_Start.state instanceof Number)) SMA_Day_Start.postUpdate(0)
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Item Status Null nach Neustart

Beitrag von scotty »

@Udo
vielen Dank für den Tipp!

@int5749
so habe ich es unter OH2.5 auch gemacht. In einem Beitrag vom 26.03 hatte mich Udo allerdings darauf hingewiesen, diese Vorgehensweise zu überdenken.
udo1toni hat geschrieben: 26. Mär 2021 18:47
Die Faustregel ist, dass man den Status eines Items nach Möglichkeit vom verlinkten Binding setzen lässt. Dashalb auch die Aussage, dass es von den eingesetzten Bindings abhängt.
Zuletzt geändert von scotty am 31. Mär 2021 10:49, insgesamt 1-mal geändert.
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Item Status Null nach Neustart

Beitrag von int5749 »

scotty hat geschrieben: 31. Mär 2021 01:10 @int5749
so habe ich es unter OH2.5 auch gemacht. In einem Beitrag vom 26.03 hatte ich Udo allerdings darauf hingewiesen, diese Vorgehensweise zu überdenken.
udo1toni hat geschrieben: 26. Mär 2021 18:47
Die Faustregel ist, dass man den Status eines Items nach Möglichkeit vom verlinkten Binding setzen lässt. Dashalb auch die Aussage, dass es von den eingesetzten Bindings abhängt.
OK, klingt plausibel. Meine Frage von weiter oben bleibt ja, wie und zu welchem Zeitpunkt würde man die rule triggern um den Status dann vom Binding setzen zu lassen?
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
peter-pan
Beiträge: 2774
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: OH3 Item Status Null nach Neustart

Beitrag von peter-pan »

int5749 hat geschrieben: 31. Mär 2021 08:36 um den Status dann vom Binding setzen zu lassen?
...ich denke dazu braucht es keine Rule. Das Binding macht das von alleine, wenn es dir einen aktuellen Wert liefert (z.B.: die aktuelle Temperatur) ;)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: OH3 Item Status Null nach Neustart

Beitrag von int5749 »

peter-pan hat geschrieben: 31. Mär 2021 09:48
...ich denke dazu braucht es keine Rule. Das Binding macht das von alleine, wenn es dir einen aktuellen Wert liefert (z.B.: die aktuelle Temperatur) ;)
Ja, dann bräuchte es aber auch nicht den Aufruf aus Udo's Post

Bei mir sind es eben einige Werte, die nicht von einem Binding gesetzt werden und ich daher persistiert (restore on startup) habe.
Ja, auch diese würden früher oder später über eine Rule gesetzt, aber bis dahin eben falsch dargestellt.

Und der Aufruf aus dem Post müste ja auch irgendwie getriggert werden. Oder ich stehe (wieder einmal) auf der Leitung und verstehe dies nicht :?
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: OH3 Item Status Null nach Neustart

Beitrag von scotty »

Hallo zusammen,

unter OH2.5 war meine Lösung folgende:

Code: Alles auswählen

Strategies {
    default = everyUpdate
}

Items {
        * : strategy = everyChange,restoreOnStartup
}

zusätzlich hatte ich nach einem Neustart immer noch Items mit dem Status "Null". Diese wiederum wurden durch eine zusätzliche Regel geändert:

Code: Alles auswählen

//------------------------------------------------------------------------
//    Item Statusänderung 
//------------------------------------------------------------------------
rule Startup
when
	System started
then
	Flag_Siko.postUpdate("OFF")
	gGartenShutters.postUpdate("OFF")
	gTerrasseShutters.postUpdate("OFF")
end
Durch den Einwurf von Udo, die Vorgehensweise "restoreOnStartup" zu überdenken, suche ich jetzt nach dem korrekten Weg.
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
peter-pan
Beiträge: 2774
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: OH3 Item Status Null nach Neustart

Beitrag von peter-pan »

int5749 hat geschrieben: 31. Mär 2021 10:03 Bei mir sind es eben einige Werte, die nicht von einem Binding gesetzt werden
Das ist genau der Punkt. Bei ungebundenen Items könnte man so etwas machen.

Wenn man das in ein Startup-Rule einbaut, kommt es halt vor, dass die Regel vor dem Item geladen wird und deshalb eine Fehlermeldung hochkommt. Um dies zu umgehen, sollte man solche (ungebundenen) Items persistieren(MapDB), da sie ja sonst keinen gültigen Wert beim Start haben.

Bei gebundenen Items (mit Channel verlinkt) macht das aber keinen Sinn und kann zu Fehlern führen, z.B. wenn der Temperaturwert ein ganz anderer ist als vor dem Neustart, oder ein Schalter auf "OFF" war und zwischenzeitlich angeschaltet wurde...... etc.

Grundsätzlich sollte aber in jeder Regel abgefragt werden, ob ein gültiger Wert vorhanden ist (instanceof ...) und ich gehe mal davon aus, dass Udo das auch so gemeint hat.

Die Persistierung sollte deshalb nicht global gemacht werden sondern gezielt.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: OH3 Item Status Null nach Neustart

Beitrag von scotty »

peter-pan hat geschrieben: 31. Mär 2021 13:48 ....
Grundsätzlich sollte aber in jeder Regel abgefragt werden, ob ein gültiger Wert vorhanden ist (instanceof ...) und ich gehe mal davon aus, dass Udo das auch so gemeint hat.

Die Persistierung sollte deshalb nicht global gemacht werden sondern gezielt.
Könntest du mir denn mal Hilfestellung leisten, wie die Regel demnach zu formulieren ist?
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Antworten