Zliczanie impulsów z urządzenia Zigbee

Uruchomiłem urządzenie do zliczania ilości deszczu, jednak coś nie do końca podoba mi się jak ono liczy impulsy.
Kołyska aktywuje i dezaktywuje czujnik otwarcia drzwi czyli, że jedno przejśćie ze stanu off → on lub on->off to np. 0.5 mm deszczu
https://smartsolutions4home.com/ss4h-zrg-zigbee-rain-gauge/

Nie wiem czy zachowanie HA się zmieniło od czasu publikacji ale mi to nie do końca działa. Ponieważ jeśli mamy akurat kołyskę w stanie off to zawsze pokazuje 1 lub też jeśli on to drugi licznik pokazuje 1

image

image

Tutaj wklejam przykład z configuration.yaml ustawiłem czas na 15 minut

sensor:
   - platform: history_stats
     name: "last 15 min Rainsensor flips/on"
     entity_id: binary_sensor.deszcz1_otwarcie
     state: "on"
     type: count
     start: "{{ now() - timedelta(minutes=15)}}"
     end: "{{ now() }}"
 
   - platform: history_stats
     name: "last 15 min Rainsensor flips/off"
     entity_id: binary_sensor.deszcz1_otwarcie
     state: "off"
     type: count
     start: "{{ now() - timedelta(minutes=15)}}"
     end: "{{ now() }}"

Ja bym po prostu potrzebował zliaczać tylko przejścia pomiędzy on->off i off->on zanlazłem nawet co wydaje się bardzo trudnym zadaniem
Niby tutaj któs miał podobny problem ale zliczają tylko jeden ruch kołyski

Okazało, się, były małe literówki w kodzie.
ten przykład resetuje licznik o 18:00

template:
  - trigger:
      - id: count
        platform: state
        entity_id: binary_sensor.deszcz1_otwarcie
        to:
          - "on"
          - "off"
        from:
          - "off"
          - "on"
      - id: reset
        platform: time
        at: "18:00"
    sensor:
      - name: "Poprawiony Rain per day"
        unit_of_measurement: "mm" # or cm
        state_class: measurement # only include this if you want long term statistics
        device_class: precipitation
        state: >
          {% set mm_per_flip = 0.2 %}
          {% if trigger.id == 'reset' %}
            0
          {% else %}
            {{ this.state | float(0) + mm_per_flip }}
          {% endif %}

Ale na stronie projektu jest przecież też kod taki i chyba dopiero on pokauje prawidłową wartość:

template:
  - sensor:
      - name: Rainfall [day]
        state_class: measurement
        unique_id: rainfall_day
        unit_of_measurement: mm
        icon: mdi:weather-pouring
        state: >-
          {% set count = (states('sensor.aqara_rainsensor_flips_on') | int(0)) + (states('sensor.aqara_rainsensor_flips_off') | int(0)) %}
          {% set mm = count * 0.52615 %}
          {% if count >= 0 %}
            {{ mm|round(1, 'floor') }}
          {% endif %}

Przecież to inny fragment, który mnoży wskazania sensorów, o których mowa była wcześniej.