Items inkl. Wert anlegen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Tel32
Beiträge: 18
Registriert: 31. Jan 2021 15:03
Answers: 0

Items inkl. Wert anlegen

Beitrag von Tel32 »

Hi,

ich habe ein paar Items angelegt die ein Script mit Werten füllen soll. Wenn ich das Item anlege ist es ja noch frisch und ohne Werte. Mit diesen NULL als Wert mag das Script gar nicht umgehen. Wenn ich im Script den Wert abrufe und z.b. mit einem anderen addieren möchte klappt es aufgrund der NULL als Wert nicht. Ich muss das Script einmalig mit einem Wert schreiben und dann gehts. Kann ich ein Item schon beim anlegen ein Wert z.b. 1 zuweisen? Kann ich das im nachhinein nocht machen und wenn ja wie?

Mfg
Jens

BOP
Beiträge: 197
Registriert: 23. Sep 2018 19:43
Answers: 1

Re: Items inkl. Wert anlegen

Beitrag von BOP »

Guten Morgen!

Bevor Udo dir sicherlich ausführlicher antworten wird ( :lol: ), hier meine Antwort.

Es gibt mehrere Möglichkeiten.
Du kannst ein Item auf NULL abfragen:

Code: Alles auswählen

if (Item === NULL)
Wenn es sich um eine Number handeln muss geht auch:

Code: Alles auswählen

if(!(Item.state instanceof Number))
Und du kannst auch beim Start von OH Items setzen:

Code: Alles auswählen

rule "Systemstart"
when
    System started
then
    logInfo("Systemstart-Rule","Systemstart wird ausgefuehrt")
end

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

Re: Items inkl. Wert anlegen

Beitrag von udo1toni »

:P
BOP hat es ja schon recht umfassend beschrieben.

Zum Rechnen bietet es sich oft an, den Wert des Items zunächst in eine (lokale) Variable zu laden, das geht dann z.B. so:

Code: Alles auswählen

var wert = 0
if(MyItem.state instanceof Number) 
    wert = MyItem.state as Number
Es ist immer eine gute Idee, solche Prüfungen in die Rules einzubauen, um eine NullPointer Exception zu vermeiden.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten