Ciepłomierz - licznik impulsow

Zdjęcia muszą być ostre (na tyle by się bezproblemowo dało odczytać napisy na elementach) by były użyteczne
z naszego punktu widzenie to pierwsze jest najważniejsze (tj. jego lewy fragment, który się prawie załapał na zdjęciu czwartym).

Mimo nieco niewyraźnego zdjęcia stawiam na to, że te transoptory to LiteOn LTV-355T lub ich odpowiedniki


Co do YAMLa to wrócimy do tego, gdy będziesz miał warunki, bo wygląda jak ucięty w połowie, no i nie widzę byś w ogóle próbował go dostosować do moich sugestii…
Pisać z telefonu jest mega-upierdliwie, ale się da (wiem, bo czasem piszę z trasy, gdy już mam rozładowanego laptopa).

edit - doczytałem - nie zmieniałeś nic
A ponieważ nie dostosowałeś go do potrzeb, to jest normalne, że firmware nie działa jak należy, postaram się w takim razie wyskrobać coś bardziej na gotowo, szkoda, że nie próbujesz zrozumieć jak to działa…

Później tu będzie coś w miarę na gotowo - nie używam czegoś podobnego, więc wyskrobię jakąś wstępną wersję do przetestowania w praktyce
(oznaczę to gdy zrobię teraz to tymczasowa wklejka)
edit znalazłem wątek na forum na ten sam temat

Jeśli chodzi o YAML to zrobiony, może nie jest to doszlifowane, ale powinno raczej działać, wątek ^ do poczytania

substitutions:
  name: "licznik-impulsow"
  friendly_name: "Licznik Impulsów"

esphome:
  name: ${name}
  friendly_name: ${friendly_name}

esp8266:
  board: d1_mini

# Enable logging
logger:
  level: DEBUG

# Enable Home Assistant API
api:
  encryption:
    key: "bj2hakWFhsagUJj1QDR/4535mJ4Kdvc678buwzOSYgg="
  actions:
    - action: set_total
      variables:
        new_total: int
      then:
        - pulse_counter.set_total_pulses:
            id: sensor_pulse_meter
            value: !lambda 'return new_total;'
ota:
  - platform: esphome
    password: "2952b1a309011e79250e5cb20a5667e4"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Licznik-Impulsow"
    password: "AYVBP8JJEhMb"

captive_portal:

web_server:
  version: 3
  port: 80

sensor:
  - platform: pulse_counter
    pin:
      number: D5 # GPIO14
      mode:
        input: true
#       pullup: true # jest rezystor
#       inverted: true # powinno działać bez tego
    on_value:
      then:
        - light.turn_on: kontrolka
        - delay: 0.5s
        - light.turn_off: kontrolka
    name: Moc
    id: sensor_pulse_meter # Optional ID
    unit_of_measurement: 'W'
    device_class: power
    state_class: measurement
    accuracy_decimals: 0
    internal_filter: 26ms
    internal: true # przy tak niskiej stałej impulsowej licznika i minutowym okresie zliczania ten pomiar nie ma sensu
    filters:
      - multiply: 60000 # zgodnie z wzorem (60s / stała licznika w imp./kWh) * (1000W / 1kW)
    total:
      name: Ciepłomierz energia 
      unit_of_measurement: 'kWh'
      state_class: total_increasing
      device_class: energy
  - platform: total_daily_energy # może tu się przyda do czegoś ta obliczona moc
    name: Ciepłomierz energia dzienna z całkowania mocy
    id: sensor_total_daily_energy
    power_id: sensor_pulse_meter
    unit_of_measurement: 'kWh'
    state_class: total_increasing
    device_class: energy
    accuracy_decimals: 3
    filters:
      # Multiplication factor from W to kW is 0.001
      - multiply: 0.001
  - platform: uptime
    name: "${name} Uptime"
    filters:
      - lambda: return x / 3600;
    unit_of_measurement: "h"
  - platform: adc
    pin: VCC
    name: "${name} napięcie zasilania MCU"
    entity_category: diagnostic
    web_server:
      sorting_weight: 10
  - platform: wifi_signal
    name: "${name} sygnał WiFi"
    update_interval: 60s


time:
  - platform: sntp
    timezone: Europe/Warsaw
    servers:
      - 0.pl.pool.ntp.org
      - 1.pl.pool.ntp.org
      - 2.pl.pool.ntp.org
    id: sntp_time

switch:
  - platform: restart
    name: "${name} Restart"
    entity_category: config
    web_server:
      sorting_weight: 60

binary_sensor:
  - platform: status
    name: "${name} Node Status"
    id: system_status

text_sensor:
  - platform: wifi_info
    ip_address:
      name: "${name} IP Adres"
    ssid:
      name: "${name} SSID"
    bssid:
      name: "${name} BSSID"
    mac_address:
      name: "${name} MAC-adres"
    scan_results:
      name: "${name} Ostatni skan"
    dns_address:
      name: "${name} DNS"

light:
  - platform: status_led
    name: Kontrolka LED # przy poprawnnej pracy błyska raz na minutę oraz sygnalizuje ostrzeżenia i błedy opisane tam https://esphome.io/components/status_led
    id: kontrolka
    pin: 
      number: GPIO02
      inverted: true
    internal: true # to eliminuje niepotrzebny przełącznik


Ogniwa za bardzo nie widać, więc odpowiadam na czuja i na podstawie doświadczenia (bo na żadnym zdjęciu nie załapały się żadne ważne fragmenty)
Aha co najważniejsze - jest tam widoczny kod 07 304 (co się rozszyfrowuje w formacie używanym przez Saft jako YY DDD, gdzie YY to rok, a DDD dzień w roku)
to jest data produkcji 31 października 2007, więc to ogniwo “przepracowało” już 17 lat

Co do bateryjki to na 99% jest Saft LS-14250 w chemii Li-SOCl2 z wyprowadzeniami osiowymi (sorry za wszystkie linki z jednego sklepu, ale nie chciało mi się szukać po innych)

http://www.batimex.pl/towar.php?idtowaru=5487
zastępczo można też użyć EVE ER14250

http://www.batimex.pl/towar.php?idtowaru=2306
(albo jakąś inną technologicznie zgodną)

http://www.batimex.pl/towar.php?idtowaru=6501

w załączniku karty katalogowe w/w ogniw (na wypadek gdyby zniknęły ze strony sklepu) i transoptora
ls-14250+ltv-355.zip (2,6 MB)