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: 1208
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 Stable 5.1.0 in einem Debian Trixie (LXC) unter Proxmox 9.1.4

Benutzeravatar
udo1toni
Beiträge: 15698
Registriert: 11. Apr 2018 18:05
Answers: 254
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)
openHAB5.1.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.9 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte

Antworten