Multiplikation innerhalb einer Rule

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Wolle17
Beiträge: 40
Registriert: 9. Feb 2023 05:37
Answers: 0

Multiplikation innerhalb einer Rule

Beitrag von Wolle17 »

Hallo Zusammen,

Mal wieder eine Anfängerfrage.
Kann ich meine Regel so abwandeln dass ich statt Sekunden, die Kosten pro Sekunde in Cent bekomme

Code: Alles auswählen

  var Long        lStart = 0
var Integer   iSeconds = 0
var Timer    tBadlicht = null

rule "badlicht"
when
    Time cron "5 0 0 * * ?"
then
    iSeconds = 0
end

rule "Badlicht geschaltet"
when
    Item BadLicht changed
then
    if(newState == ON) {
        lStart = now.toInstant.toEpochMilli
    } else {
        iSeconds += ((now.toInstant.toEpochMilli - lStart)/1000).intValue
        BadlichtED.postUpdate(iSeconds)*0,00010764
    }
end   
So hatte ich es probiert (also einfach die Sekunden mit dem errechneten Kosten pro Sekunde multipliziert) und den Wert dann an das Number Item (%.5f) gesendet.

Leider passiert da nicht viel, ich nehme an ich hab es mir mal wieder zu einfach gemacht oder?

Danke und Gruß

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

Re: Multiplikation innerhalb einer Rule

Beitrag von int5749 »

Hi,
mal nur auf die Schnelle, aber evtl hilft es die Rechnung vollständig zu klammern

Code: Alles auswählen

BadlichtED.postUpdate((iSeconds)*0,00010764)
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

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

Re: Multiplikation innerhalb einer Rule

Beitrag von udo1toni »

Der eine Punkt ist: der Multiplikator muss schon innerhalb des Parameters stehen.
Der andere Punkt (wortwörtlich): Es gilt die amerikanische Schreibweise von Dezimalzahlen. also 0.00010764, nicht 0,00010764
Falsch:

Code: Alles auswählen

BadlichtED.postUpdate(iSeconds)*0,00010764
Richtig:

Code: Alles auswählen

BadlichtED.postUpdate(iSeconds*0.00010764)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten