Licznik włączeń urządzenia w ESPHome

Witajcie. Czy mieli byście pomysł jak zrobić licznik właczeń urzadzenia na podstawie wbudowanego w niego pzem 004t wszystko jest na esp 8266 i chciał bym to zrobić w Esp Home bez HA???.
Ma zrobione na esp8266 monitoring pompy ciepła który zawiera 5 czujników temperatury i moduł PZEM do liczenia zużycia energi i poboru mocy. Chciał bym do tego dołożyć aby zliczał mi jeszcze ilośc załączeń pompy ciepła

dallas:
  - pin: 2
    update_interval: 1s

sensor:     
  - platform: dallas
    address: 0xb33ce1d443bca428
    id: WZ
    name: "WZ"
    accuracy_decimals: 1
    filters:
      - offset: -0.2
      - round: 1
  - platform: dallas
    address: 0x6b3de1045766a928
    id: WP
    name: "WP"
    accuracy_decimals: 1
    filters:
      - offset: -0.3
      - round: 1
  - platform: dallas
    address: 0x5b3ce1d443328528
    id: GZ
    name: "GZ"
    accuracy_decimals: 1
    filters:
      - offset: 0.3
      - round: 1
  - platform: dallas
    address: 0x853de10457e8bd28
    id: GP
    name: "GP"
    accuracy_decimals: 1
    filters:
      - offset: -0.4
      - round: 1
  - platform: dht
    pin: 0
    update_interval: 10s
    temperature:
      name: "TDom"
      id: TDom
      filters:
      - offset: -0.7
      - round: 1
    humidity:
      name: "WDom"
      id: WDom
      filters:
      - offset: 4
      - round: 1

  

  - platform: pzemac
    current:
      name: "PZEM-004T V3 Current"
      id: "PC_J"
    voltage:
      name: "PZEM-004T V3 Voltage"
      id: "PC_V"
    energy:
      name: "PZEM-004T V3 Energy"
      id: "PC_P"
      filters:
        # Multiplication factor from Wh to kWh is 0.001
        - multiply: 0.001
      unit_of_measurement: kWh
    power:
      name: "PZEM-004T V3 Power"
      id: "PC_W"
    frequency:
      name: "PZEM-004T V3 Frequency"
      id: "PC_Freq"
    power_factor:
      name: "PZEM-004T V3 Power Factor"
    update_interval: 1s

Niestety stan mojej wiedzy o ESP HOME jest marny a to co znalazłem na stronie ESP HOME nie pomogło mi w stworzeniu takiego licznika.
Próbowałem zrobić to w taki sposób jak poniżej . Ale niestety nie działa.

- platform: template
    name: "Liczba_zalaczen"
    id: Liczba_zalaczen
    lambda: |-
      if (id(PC_W).state > 500)
       return ((id(Liczba_zalaczen).state) += 1);
      then: 
       return (id(Liczba_zalaczen).state);
    update_interval: 60s
    unit_of_measurement: "X"
    filters:
      - delta: 1.0

Mam taka prośbę do osób zakładających nowe tematy. Jeśli zakładamy nowy temat, to należy podać wszystkie dostępne dane, które do tej pory zebraliśmy. Opisać stan własnej wiedzy na dany temat aby osoby ewentualnie pomagające mogły dostosować przekaz komunikacji dla odbiorcy. Unikamy nieporozumień i nie tracimy czasu na dopytywanie autora na jakim etapie już jest.

Na tak zadane pytanie (chyba pytanie, bo znaku zapytania brak) odpowiedział bym jedynie:

TAK, nawet kilka.

@strzegus:

  • Podaj obecny stan sprzętowy/programowy Twojego urządzenia i stan Twojej wiedzy na temat jego budowy oraz obecnego oprogramowania.
  • Podaj cały kod konfiguracji urządzenia ESPHome - jeśli w ogóle nasz już coś stworzone.
  • Czy zapoznałeś się z dokumentacją Automations and Templates — ESPHome?
  • Podaj założenia automatyzacji, bo chcesz aby automagicznie działo się to wszystko w samym ESPHome. Czego chcesz użyć jako np. wyzwalacz?

już poprawiłem tak jak chciałeś :grin: :grin: :grin:

1 polubienie

Czy masz switcha w ESPHome, który za to odpowiada?

Nie mam switcha który za to odpowiada.

To w jaki sposób chcesz liczyć “ilość załączeń pompy ciepła”? Na podstawie czego?

na podstawie poboru prądu. Jeśli pompa nie pracuje jej pobór jest na poziomie 10W jeśli zaczyna pracować poziom wzrasta i stabilizuje się na poziomie ok 700( to minimalny pobór)

Jeśli na podstawie przekroczenia mocy powyżej 500W to moim zdaniem

lambda: |-
      if (id(PC_W).state > 500) {
        return id(liczba_zalaczen).state + 1;
      } else {
        return id(liczba_zalaczen).state;
      }
    update_interval: 60s

po każdorazowym update w przypadku pozostawania pompy powyżej 500 będziesz miał kolejne załączenia a przecież pompa się nie wyłączała.

czyli sugerujesz usunięcie update_interval: 60s???
Bo mi chodzi o to aby zliczyła jako uruchomienie przejście powyżej 500 aż do następnego przejścia.

nie wiem jak się to zachowa ale tak to sobie wyobrażam, usunięcie chyba nie da za wiele bo domyślnie też się chyba w jakimś interwale odświeża, zwykle używam albo switcha on/off , a jak nie mam to robię jakiś np. pomocnik “progowy w HA” i ustawiam zakres kiedy on a kiedy off.

1 polubienie

chcę uniknąć HA. założenie jest takie że ESP HOME na ESP 8266/32 działa niezależnie od HA. A HA jest tylko ewentualnie nakładką do odczytu.
A może by zrobić coś takiego że każde przekroczenie progu 500 włacza switch i z tego switcha można by wyciągnąć ilość włączeń

Szczerze mówiąc to ja tego nie widzę, jak to mówią w programach muzycznych Jestem na NIE

Musiałbyś wynik zapisywać w flash, by zanik napięcia lub restart ESP nie zresetował wyniku, a tymczasem HA jest stosunkowo niezawodnym rozwiązaniem w którym jest na bieżąco aktualizowana baza danych.

Może dodam, że zapisy do flash wiążą się z żywotnością urządzenia, które tej pamięci ma symbolicznie mało, więc projekty na bazie ESP, które tworzą i trzymają dane na autonomicznych urządzeniach korzystają z kart TF (zazwyczaj, bo możesz użyć choćby kostki FRAM czyli współczesnego odpowiednika pamięci ferrytowej z komputera Odra, która nie zużyje się nigdy, tylko oczywiście obsługa FRAM nie jest standardowa w ESPHome, ale jak poszukasz to znajdziesz).

ok rozumiem że a bez sensu to robić w ESP HOME. W takim razie jak to zrobić w HA. też już próbowałem w automatyzacji ale nie wiem co mam wybrać w ostatniej opcji czyli w Akcji

Skoro nakładka do odczytu to po co obciążać ESP i tak wysyłasz “Moc” do HA więc tworzysz “pomocnika” i na jego podstawie “licznik załączeń” i masz informacyjnie w HA.

2 polubienia

zrobiłem tyle że pokazuje tylko on off a mi chodziło o ilość włączeń

Przecież o to chodziło, masz teraz cos co pokazuje stan ON i OFF, tworzysz drugiego pomocnika “licznik” i automatyzację, która ci ten licznik powiększa i np. o północy resetuje i masz co chciałeś.

1 polubienie

zrobiłem i zatrzymałem sie znowu na akcji co mam wybrac aby ten licznik był w wyborze

automation:
  - alias: Aktualizuj licznik
    trigger:
      - platform: state
        entity_id: binary_sensor.twoj_pomocnik_ONOFF
        from: 'off'
        to: 'on'
    action:
      - service: counter.increment
        target:
          entity_id: counter.twoj_licznik
  - alias: Zresetuj licznik o północy
    trigger:
      - platform: time
        at: '00:00:00'
    action:
      - service: counter.reset
        target:
          entity_id: counter.twoj_licznik
1 polubienie

dzięki za pomoc działa :smile: :smile: :smile:

Jakoś wszyscy uparli się na stosowanie pomocników i automatyzacji :grin: a to wszystko od dawna jest już w HA - History Stats - Home Assistant , mój testowy przykład:

image

# https://www.home-assistant.io/integrations/history_stats/
# Example configuration.yaml entry
sensor:
  - platform: history_stats
    name: czas pracy pompy cyrkulacyjnej dzisiaj
    entity_id: switch.thr320
    state: "on"
    type: time
    start: "{{ now().replace(hour=0, minute=0, second=0) }}"
    end: "{{ now() }}"
    
  - platform: history_stats
    name: liczba wlaczen pompy cyrkulacyjnej dzisiaj
    entity_id: switch.thr320
    state: "on"
    type: count
    start: "{{ now().replace(hour=0, minute=0, second=0) }}"
    end: "{{ now() }}"    

Na podstawie tych encji, robisz kolejną integrację - Utility Meter - Home Assistant i masz pełne dane statystyczne z różnych okresów czasu - tygodnia, miesiąca, kwartału itd., mój testowy przykład “ile razy było pranie”:

image

Możliwości statystyk i historii są nieograniczone, można liczyć co się chce, ogranicza nas tylko nasza wyobraźnia :slight_smile:.

A ja osobiście bym zrobił Template Binary Sensor — ESPHome na podstawie poziomu mocy a resztę już w HA.

5 polubień