FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: lichtimc am 03 Dezember 2020, 02:12:33

Titel: Userreading mit monotonic - nur Erhöhung um max. 1
Beitrag von: lichtimc am 03 Dezember 2020, 02:12:33
Hallo,

ich hab ein KNX-Binäreingang als Zähler konfiguriert. Dieser zählt die Impulse meines Stromzählers. Vorteil: Falls fhem mal nicht läuft, bleibt mir trotzdem der Zählerstand erhalten.
Zusätzlich habe ich ein Userreading mit monotonic definiert, damit, falls der Binäraktor mal überläuft / programmiert wird, der Fhem-Zählerstand weiterzählt.
getG1_monotonic:getG1.* monotonic { ReadingsVal("Technikraum_Stromzaehler_S0", "getG1", 0) }

ABER:
Scheinbar zählt der monotonic immer nur um 1 hoch, auch wenn fhem mal kurz down ist und dann später wieder läuft, und sagen wir mal der Binäraktor hat inzwischen um 10 hochgezählt, so wird das Userreading um 1 weitergezählt sobald der Binäraktor einen Wert schickt (z.B. x+10).

Kann dieses Verhalten hier jemand bestätigen oder ist das nur bei mir so und es sollte eigentlich schon um +10 raufzählen?
Ich habe gesehen, dass das monotonic bereits einmal "einspringen" musste. Binäreingang = 326070 | monotonic-Userreading = 756367
Hat es damit was zu tun?

Viele Grüße,
lichtimc
Titel: Antw:Userreading mit monotonic - nur Erhöhung um max. 1
Beitrag von: Otto123 am 03 Dezember 2020, 10:47:01
Hi,

mit diesem Tesdumma kannst Du eigentlich gut sehen was passiert
define Technikraum_Stromzaehler_S0 dummy
attr Technikraum_Stromzaehler_S0 readingList getG1
attr Technikraum_Stromzaehler_S0 setList getG1
attr Technikraum_Stromzaehler_S0 userReadings getG1_monotonic:getG1.* monotonic { ReadingsNum($name, "getG1", 0) }


Immer wenn sich der neue Wert zum vorhergehenden erhöht wird um die Differenz erhöht.

Gruß Otto