Obliczanie czasu pomiędzy otwarciem a zamknięciem sensora binarnego

Witam serdecznie.
Poszukuję od dłuższego czasu sposobu na obliczenie czasu pomiędzy załączeniem pompy wody a jej wyłączeniem.
Jest to niezbędne do zweryfikowania czy poduszka powietrzna w hydroforze jest odpowiedniej wielkości. Jeżeli czas pracy (załączenie i wyłączenie) pompy spadnie poniżej 30 sekund powinienem dopompować poduszkę. Aby nie uszkodzić sobie silnika w pompie wody.

Utworzyłem taki wpis w configuration.yaml ale uzyskuję tylko wartość 0.

sensor:
  - platform: history_stats
    name: Czas Pracy Pompy
    entity_id: binary_sensor.pomiarykotlownia_pompa
    state: "on"
    type: time
    start: "{{ now().replace(hour=0, minute=0, second=0) }}"
    end: "{{ now() }}"

W dzienniku mam to ładnie zapisane włączenie i wyłączenia ale jak obliczyć i przedstawić jako zmienna która mógłbym umieścić na dashboadzie ?

nastąpiło wyłączenie
21:32:16 - 16 minut temu
nastąpiło włączenie
21:31:32 - 16 minut temu
nastąpiło wyłączenie
19:20:35 - 2 godziny temu
nastąpiło wyłączenie
18:42:44 - 3 godziny temu

Definicja jest poprawna, mam tak samo u siebie, pompę mam zdefiniowaną jako switch, tylko ta encja zsumuje czas pracy, resetuje sie o północy i znow liczy. Jesteś pewny, że dokładnie taka encja instnieje binary_sensor.pomiarykotlownia_pompa w HA?

Encja taka występuje. Sumowanie czasu nie jest mi potrzebne…
Może jest możliwość ustawienia jakiegoś licznika który będzie załączał się w momencie zmiany stany encji na ON i zatrzymanie licznika po zmianie stanu na OFF. Oczywiście przed startem licznika należałoby go wyzerować i wyświetlać na ekranie tylko wartość

:thinking:Może w ten sposób:
Licznik:

counter:
  czas_pracy_pompy:
    initial: 0
    step: 1
    restore: true

Automatyzacja ta działa w następujący sposób:

Gdy stan encji binary_sensor.pomiarykotlownia_pompa zmienia się na ‘on’, następuje reset licznika (counter.reset) i rozpoczyna się odliczanie czasu pracy pompy (counter.increment).
Gdy stan encji binary_sensor.pomiarykotlownia_pompa zmienia się na ‘off’, następuje zatrzymanie licznika czasu pracy pompy (counter.stop).

alias: 'Zarządzaj czasem pracy pompy'
trigger:
 platform: state
 entity_id: binary_sensor.pomiarykotlownia_pompa
action:
 - choose:
     - conditions:
         - condition: state
           entity_id: binary_sensor.pomiarykotlownia_pompa
           state: 'on'
       sequence:
         - service: counter.reset
           entity_id: counter.czas_pracy_pompy
         - service: counter.increment
           entity_id: counter.czas_pracy_pompy
     - conditions:
         - condition: state
           entity_id: binary_sensor.pomiarykotlownia_pompa
           state: 'off'
       sequence:
         - service: counter.stop
           entity_id: counter.czas_pracy_pompy

Wygląda obiecująco … całą tą konfigurację dodać do configutration.yaml czy do innego pliku ?

Licznik w configuration.yaml

Automatyzacja:
Ustawienia > Automatyzacja>Utwórz automatyzacje>Utwórz nową automatyzacje> 3 kropeczki> Edycja w YAML.
Wklej kod , wróć do trybu graficznego, zmień nazwę, Zapisz.

Automatyzacja "Zarządzaj czasem pracy pompy" (`automation.zarzadzaj_czasem_pracy_pompy`) posiada akcję, która wywołuje nieznaną usługę: `counter.stop`.

Ten błąd uniemożliwia prawidłowe działanie automatyzacji. Może ta usługa nie jest już dostępna, a może spowodowała to literówka.

Aby naprawić ten błąd, [edytuj automatyzację](http://192.168.5.99:8123/config/automation/edit/1710277178245) i usuń działanie wywołujące tę usługę.

Kliknij ZATWIERDŹ poniżej, aby potwierdzić, że naprawiłeś tę automatyzację.

Wygląda jakbym czegoś nie dodał w intergracjach…

Prawdopodobnie po dodaniu “Licznik” wymagane jest przeładowanie konfiguracji np Restart HA

Wszystko prawie dobrze poza tym że licznik zwiększa się o jeden przy każdej zmianie. Niestety nie liczy ciągle dopóki nie dostanie polecenia stop.
Próbuję jeszcze automatyzacje na timerach ale nie bardzo wiem jak wyświetlić wartość timera na scenie

:thinking:
timer w configuration.yaml

timer:
  czas_pracy_pompy2:
    duration: '00:10:00'

Automatyzacja

alias: Zarządzaj czasem pracy pompy2
trigger:
  - platform: state
    entity_id: binary_sensor.pomiarykotlownia_pompa
action:
  - choose:
      - conditions:
          - condition: state
            entity_id: binary_sensor.pomiarykotlownia_pompa
            state: "on"
        sequence:
          - service: timer.start
            entity_id: timer.czas_pracy_pompy2
      - conditions:
          - condition: state
            entity_id: binary_sensor.pomiarykotlownia_pompa
            state: "off"
        sequence:
          - service: timer.cancel
            entity_id: timer.czas_pracy_pompy2
mode: restart

/
Poprawiłem kod.
Inny sposób na wyświetlenie ile czasu minęło od zmiany stanu w sekundach:

{% set czas = state_attr('binary_sensor.pomiarykotlownia_pompa', 'elapsed') | int %}
{% if is_state('binary_sensor.pomiarykotlownia_pompa', 'on') %}
  {{ czas // 1000 }}
{% else %}
  0
{% endif %}

Jak dodaję encję couter.czas_pracy_pompa do sceny to mam status brak aktywności.
w logach mam zapis :
Service counter.stop not found.