Wie Number aus Shellscript für Color-Abfragen verwenden

GUI Relevanten, PaperUI, BasicUI, HabPanel ...

Moderatoren: seppy, udo1toni

bastler
Beiträge: 121
Registriert: 7. Jan 2020 19:36
Answers: 2

Re: Wie Number aus Shellscript für Color-Abfragen verwenden

Beitrag von bastler »

herzlichen dank für die sehr ausführliche erläuterung udo1toni, jetzt hab ich das verstanden :D

steffenschmidt
Beiträge: 15
Registriert: 14. Feb 2020 23:12
Answers: 1

Re: Wie Number aus Shellscript für Color-Abfragen verwenden

Beitrag von steffenschmidt »

Danke fuer das gute Beispiel.

rule "temperatur"
when
Item TempKuehlschrank changed
then
logInfo ("Rule temperatur", "nTempKuehlschrank {}", nTempKuehlschrank.state)
logInfo ("Rule temperatur", "TempKuehlschrank {}", TempKuehlschrank.state)
nTempKuehlschrank.postUpdate(Float::parseFloat(TempKuehlschrank.state))
end

Soweit so gut, wenn ich es aber so einbaue, dann bekomme ich folgende Fehlermeldung :(

2020-02-28 14:45:16.347 [INFO ] [arthome.model.script.Rule temperatur] - nTempKuehlschrank NULL
2020-02-28 14:45:16.364 [INFO ] [arthome.model.script.Rule temperatur] - TempKuehlschrank 19.562
2020-02-28 14:45:16.371 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'temperatur': An error occurred during the script execution: Could not invoke method: java.lang.Float.parseFloat(java.lang.String) on instance: null

Warum ist das Item null? muss man das vorher initialisieren?

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

Re: Wie Number aus Shellscript für Color-Abfragen verwenden

Beitrag von udo1toni »

Dass nTempKuehlschrank den Status NULL hält, ist normal, solange kein Status hineingeschrieben wurde.
Nicht so schön ist, dass die Zuweisung nicht funktioniert. Probiere bitte mal folgendes:

Code: Alles auswählen

rule "temperatur"
when
    Item TempKuehlschrank changed
then
    logInfo ("Rule temperatur", "nTempKuehlschrank {}", nTempKuehlschrank.state)
    logInfo ("Rule temperatur", "TempKuehlschrank {}", TempKuehlschrank.state)
    nTempKuehlschrank.postUpdate(Float::parseFloat(TempKuehlschrank.state.toString))
end
parseFloat erwartet einen String. Hier greift die automatische Konvertierung leider nicht.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

steffenschmidt
Beiträge: 15
Registriert: 14. Feb 2020 23:12
Answers: 1

Re: Wie Number aus Shellscript für Color-Abfragen verwenden

Beitrag von steffenschmidt »

Super. Genauso hat es funktioniert. Gewußt wie. Wieder ein Stück schlauer.

Vielen Dank :)

Antworten