wert aufsummieren

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
seebaer1976
Beiträge: 9
Registriert: 29. Apr 2021 11:05
Answers: 0

wert aufsummieren

Beitrag von seebaer1976 »

hi,
bin neu im forum les aber schon lnger mit hier.
leider bräucht ich mal eine kleine hilfe wegen java in einer rule, in openhab3:

Code: Alles auswählen

triggers:
  - id: "2"
    configuration:
      cronExpression: 0 * * * * ? *
    type: timer.GenericCronTrigger
conditions: []
actions:
  - inputs: {}
    id: "1"
    configuration:
      type: application/javascript
      script: events.postUpdate("wasser_m3h_gesamt",itemRegistry.getItem("wasser_m3h").getState () + itemRegistry.getItem("wasser_m3h_gesamt").lastUpdate ());
    type: script.ScriptAction
ich versuche hier den wert wasser_m3h jede minute in wasser_m3h_gesamt aufzusumieren. nur leider bekomme ich keine werte in wasser_m3h_gesamt. versteh leider nicht wo ich den fehler hab.

könnt mir beim javascript vielleicht jemand unter die arme greifen.


mfg
markus

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

Re: wert aufsummieren

Beitrag von udo1toni »

Wie kommst Du zu dem Code?
Mindestens die Leerzeichen zwischen getState bzw. lastUpdate und den nachfolgenden Klammern gehören da nicht hin, bei lastUpdate muss (vermutlich zwingend) noch ein getState mit dran, denn lastUpdate liefert auch den Zeitpunkt, nicht nur den Wert.
Ist das Item wasser_m3h persistiert? Ansonsten gibt es kein lastUpdate. Wird wasser_m3h minütlich genullt? ansonsten addierst Du zuviel auf.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

seebaer1976
Beiträge: 9
Registriert: 29. Apr 2021 11:05
Answers: 0

Re: wert aufsummieren

Beitrag von seebaer1976 »

hi,
danke für die antwort.

den code hab ich mir von dem code zum umrechnen (von l in m3h) abgeleitet. weil der sensor gibt nur die momentanen l an.
hoffe das war richtig :-)

Code: Alles auswählen

events.postUpdate("wasser_m3h",itemRegistry.getItem("wasser_l").getState()/1000);
items die ich erstellt hab und persistiert werden:

wasser_l: bekommt schwankendedaten, jenachdem wieviel wasser im bach läuft
wasser_m3h: bekommt die umgerechnetet werte
wasser_m3h_gesammt: sollte die aufsummierten daten enthalten, die jede minute kommen sollen und auf das letzte ergebnis draufgerechnet werden

das mit den leerzeichen scheint wohl beim kopieren hier passiert zu sein, bei mir in openhab sind sie nicht drin.

wasser_m3h wird nicht genullt :o , allso muss ich den wert noch durch 60 teilen. danke für den hinweis. :roll:

Code: Alles auswählen

events.postUpdate("wasser_m3h_gesamt",itemRegistry.getItem("wasser_m3h").getState()/60+itemRegistry.getItem("wasser_m3h_gesamt").lastUpdate());
wie muss das denn mit getState bei lastupdate denn aussehen.
null ahnung von java, mache das alles bei learning by doing.

mfg
markus

Antworten