Seite 1 von 1
numerisches Item setzen und hochzählen
Verfasst: 12. Jan 2024 08:59
von manes
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.
Re: numerisches Item setzen und hochzählen
Verfasst: 12. Jan 2024 09:13
von manes
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)
Re: numerisches Item setzen und hochzählen
Verfasst: 12. Jan 2024 10:11
von udo1toni
Nur als Referenz:
Gegeben Number Item
myNumber:
Code: Alles auswählen
var count = (myNumber.state as Number)
count = count + 1
myNumber.postUpdate(count)
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.