numerisches Item setzen und hochzählen
-
- Beiträge: 224
- Registriert: 23. Jul 2020 17:49
- Wohnort: Kreis Wesel
numerisches Item setzen und hochzählen
helft mir doch bitte mal auf die Sprünge. irgendwie laufe ich derzeit ein wenig im Kreis. Ich habe jetzt meinen Gaszähler über einen Reedkontakt eingebunden. Dieser Reedkontakt ist an einem ESP und schickt dann per MQTT das Signal ON OFF an OH3. Das klappt. Dann habe ich ein Item, welches die Verbrauchswerte anzeigen soll.Anfänglich muß ich ja den aktuellen Wert dort erfassen um dann mit jedem Impuls diesen Wert um einen bestimmten Wert zu erhöhen. Ich bekomme es im Moment nicht hin, den Grundwert dem Item zuzuordnen und als nächstes bei jedem Implus den zu erhöhen. Wie macht man das, bzw. welche Funktion benutze ich dafür? Mit State() fragt man ja ab. Wie schreibt man numerisch in ein Item? Oder muß ich das Item stringbasiert machen, jedesmal vorher auslesen umandeln in numerisch, addieren und dann wieder zurück zu String und dann ins Item schreiben? Ich bin im Moment etwas neben der Spur.
---------------------
liebe Grüße Manfred
liebe Grüße Manfred
-
- Beiträge: 224
- Registriert: 23. Jul 2020 17:49
- Wohnort: Kreis Wesel
Re: numerisches Item setzen und hochzählen
hat sich erledigt, wie immer nachdem man sowas zu Papier bringt kommt irgendwie der Gedanke. ICh habe direkt nach dem Abschicken hier einen Beitrag gefunden, der mir weitergeholfen hat. (zumindest wie es jetzt aussieht)
---------------------
liebe Grüße Manfred
liebe Grüße Manfred
- udo1toni
- Beiträge: 15244
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: numerisches Item setzen und hochzählen
Nur als Referenz:
Gegeben Number Item myNumber:
Geht natürlich auch als Einzeiler ohne Variable:
In Blockly und JavaScript gibt es getNumericState als Funktion - verbirgt sich hinter dem Block mit Item get "name", wobei "name" eine DropDownList ist und dort kann man numericState auswählen.
Sollte es sich um ein UoM Item handeln (also nicht Number, sondern z.B. Number:Energy), so muss man wegen der Unit aufpassen und entweder die Unit vor der Rechenoperation entfernen oder den zu addierenden Wert ebenfalls mit Unit angeben.
Gegeben Number Item myNumber:
Code: Alles auswählen
var count = (myNumber.state as Number)
count = count + 1
myNumber.postUpdate(count)
Code: Alles auswählen
myNumber.postUpdate((myNumber.state as Number) + 1)
Sollte es sich um ein UoM Item handeln (also nicht Number, sondern z.B. Number:Energy), so muss man wegen der Unit aufpassen und entweder die Unit vor der Rechenoperation entfernen oder den zu addierenden Wert ebenfalls mit Unit angeben.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet