Number-Item in Rule

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
iceman
Beiträge: 22
Registriert: 31. Dez 2017 12:16
Answers: 1

Number-Item in Rule

Beitrag von iceman »

Hallo,

ich stehe gerade ein wenig auf dem Schlauch. ich möchte den Wert für die Leuchtdauer über die Sitemap einstellen können. Ich habe mir ein Item Number:Dimensionless angelegt, wie aber bekomm ich den Wert in das Item "iPost_TimeOut"? Habe irgendwie schon alles probiert...


Code: Alles auswählen

var Timer tWCGast = null 
val Integer iPost_TimeOut = 5 
rule "test"
when
    Item HM_Unterputztaster_Treppenhauslicht_unten_1_ip_State changed
then

    tWCGast?.cancel  

    if(newState != ON) {
        HM_Schaltaktor_Treppenhauslicht_3_ip_2_STATE.sendCommand(ON)
        
    } else 
        tWCGast = createTimer(now.plusSeconds(iPost_TimeOut), [| 
            HM_Schaltaktor_Treppenhauslicht_3_ip_2_STATE.sendCommand(OFF)
        
        ])

end



Den Code habe ich nur als Vereinfachung als Beispiel eingefügt um es zu verstehen.

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

Re: Number-Item in Rule

Beitrag von udo1toni »

Nun ja. iPost_TimeOut kannst Du keinen Wert zuweisen, denn Du hast es global als Konstante definiert, das heißt, es ist nur lesbar.
Das erste wäre also, in dieser Zeile:

Code: Alles auswählen

val Integer iPost_TimeOut = 5 
das val gegen ein var auszutauschen, damit aus der Konstanten eine Variable wird.
Und dann kannst Du den Wert innerhalb der Rule einfach aus dem betreffenden Item auslesen. Aber Obacht, da Du das Item als Number:Dimensionless definiert hast, musst Du noch sicherstellen, dass es keine Einheit mitliefert:

Code: Alles auswählen

if(myTimeout.state instanceof Number)
    iPost_TimeOut = (myTimeout.state as Number).intValue
.intValue erzwingt das Interpretieren des Wertes als Integer (diese Funktion steht nur für Number Werte zur Verfügung, deswegen das Casting, QuantityType ist ein Kind von Number und erbt die Funktion, genauso ist es aber auch wichtig, zunächst zu prüfen, dass das Item tatsächlich einen gültigen Wert liefert (instanceof Number).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

iceman
Beiträge: 22
Registriert: 31. Dez 2017 12:16
Answers: 1

Re: Number-Item in Rule

Beitrag von iceman »

Super, jetzt läuft es wie es soll, vielen Dank

Antworten