Odczyt licznika prądu PGE przez Wm-bus - Gama 350 Typ G35

Czy ktoś pomoże w konfiguracji dla licznika GAMA 150 TYP G15.

esp32:
board: esp-wrover-kit

i CC1101 oraz posiadam klucz z PGE.

A na czym utknąłeś? Jaki YAML, jakie logi masz?

OFF TOPIC

Potwierdzam, wodomierze z nakładkami Apator-08 wymieniono u mnie niemal dokładnie po 4 latach od instalacji (mimo 5 letniej legalizacji, która uprawnia do używania przez 5.0 do 5.997 roku od dnia legalizacji → do końca roku kalendarzowego w którym wypada 5-letnia “data ważności”.).


Wracając do tematu, myślę, że tamten wątek jest warty przeczytania w całości (są przykładowe konfiguracje sprzętu użytkowników i ich przykładowe YAMLe)

Choć forum przeglądam i czerpie wiedzę od dłuższego czasu to jest to mój pierwszy post. Witam!

Utknąłem przy dekodowaniu danych z mojego licznika PGE GAMA 350. Otrzymałem od PGE klucz deszyfrujący, wszystko elegancko odbieram, ale pojawia się kłopot przy imporcie danych do HA. Poprawnie importowane są jedynie dane dotyczące “current_power_consumption”, pozostałe kończą się błędem:

[11:57:42][W][wmbus:156]: Can't get requested field 'total_energy_consumption_kwh' with unit 'kwh'
[11:57:42][W][wmbus:156]: Can't get requested field 'voltage_at_phase_1_v' with unit 'v'
[11:57:42][W][wmbus:156]: Can't get requested field 'voltage_at_phase_2_v' with unit 'v'
[11:57:42][W][wmbus:156]: Can't get requested field 'voltage_at_phase_3_v' with unit 'v'
[11:57:42][W][component:239]: Component wmbus took a long time for an operation (1557 ms).

Próbowałem też w pkiku YAML zmieniać jednostki na v - dla voltage_at_phase oraz na kwh dla total_energy_consumption_kwh

Mój YAML to:

esphome:
  name: meter
  friendly_name: meter

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:
   level: VERBOSE

# Enable Home Assistant API
api:
  encryption:
    key: !secret enc_key

ota:
  - platform: esphome
    password: !secret ota_pass

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Meter Fallback Hotspot"
    password: !secret wifi_rcvr

captive_portal:

time:
  - platform: sntp
    id: time_sntp

external_components:
  - source: github://SzczepanLeon/esphome-components@main
    refresh: 0d
    components: [ wmbus ]

wmbus:
  mosi_pin: GPIO13
  miso_pin: GPIO12
  clk_pin:  GPIO14
  cs_pin:   GPIO2
  gdo0_pin: GPIO5
  gdo2_pin: GPIO4

  led_pin: GPIO0
  led_blink_time: "1s"

  all_drivers: True
  log_all: True

sensor:
  - platform: wmbus
    meter_id: 0x02124524
    type: apator162
    key: "00000000000000000000000000000000"
    
    sensors:  
      - name: "my cold water RSSi"
        field: "rssi"
        accuracy_decimals: 0
        unit_of_measurement: "dBm"
        device_class: "signal_strength"
        state_class: "measurement"
        entity_category: "diagnostic"
        filters:
        - offset: 139.096
      - name: "my cold water"
        field: "total"
        accuracy_decimals: 3
        unit_of_measurement: "m³"
        device_class: "water"
        state_class: "total_increasing"
        icon: "mdi:water"
        filters:
        - offset: 139.096
      
  - platform: wmbus
    meter_id: 0x30346107
    type: amiplus
    key: "6c8542ce2cd58eae0d6a565c412ff6e5"
        
    sensors:
      - name: "current power consumption in kw"
        field: "current_power_consumption"
        accuracy_decimals: 3
        unit_of_measurement: "kw"
        device_class: "power"
        state_class: "measurement"
        icon: "mdi:transmission-tower-import"

      - name: "total energy"
        field: "total_energy_consumption_kwh"
        accuracy_decimals: 3
        unit_of_measurement: "kwh"
        device_class: "energy"
        state_class: "total_increasing"
        icon: "mdi:transmission-tower-import"

      - name: "voltage_at_phase_1_v"
        accuracy_decimals: 0
        unit_of_measurement: "v"
        device_class: "voltage"
        state_class: "measurement"
        icon: "mdi:sine-wave"

      - name: "voltage_at_phase_2_v"
        accuracy_decimals: 0
        unit_of_measurement: "v"
        device_class: "voltage"
        state_class: "measurement"
        icon: "mdi:sine-wave"

      - name: "voltage_at_phase_3_v"
        accuracy_decimals: 0
        unit_of_measurement: "v"
        device_class: "voltage"
        state_class: "measurement"
        icon: "mdi:sine-wave"

Udało mi się także zdekodować otrzymaną ramkę na stronie WMBUSMETERS: link

Bardzo proszę o pomoc, zwykle staram się sam znajdować odpowiedzi (dotarłem od zera aż do tego momentu ;-)).

1 polubienie

Znalazłem błąd, który polegał na tym, że jesli parametr w wmbusmeters nazywa się:

“total_energy_consumption_tariff_1_kwh” to w YAML podajemy “total_energy_consumption_tariff_1” gdzie usunięta końcówka “_kwh” mówi nam to trzeba wpisać w parametrze unit:

unit_of_measurement: "kwh"

No trochę tak, ale nie, to nie jest prawidłowa jednostka, będziesz miał problemy później, prawidłowo jest tak (wielkość liter w jednostkach jest ważna)

unit_of_measurement: "kWh"

druga sprawa, to w tym YAMLu wcześniej w ogóle nie miałeś zdefiniowanego pola do dekodowania w kilku dalszych sensorach, a już w drugim było nieprawidłowe (i tu właśnie chodzi o obcięcie tego przyrostka jak _kwh, to samo z napięciem obcinasz _v, ale jednostka to "V")

Jestem przekonany że szczegóły techniczne odnośnie komponentu Szczepana w wersji 4 są w innym wątku (i byś tam znalazł wszystko)

W każdym razie skoro tutaj jest dedykowany wątek, to wrzuć potem swojego kompletnego działającego YAMLa, bo z powodu niekompletnych informacji na konkretne tematy związane z konkretnym sprzętem ludzie mają właśnie takie problemy jak Ty teraz.
Możesz nawet stworzyć osobny wątek jasno określający konkretny model licznika i to, że jest tam gotowy YAML, a w środku posta wrzuć kompletnego gotowego YAMLa i jakiś przykładowy telegram rozkodowany w wmbusmeters.org i inne informacje które mogą być użyteczne dla posiadaczy tego samego modelu licznika.

@giecko, would you mind to review your comment, and remove sensitive data from your ESPHome YAML? It contains your Wifi’s SSID and the password as well, which includs your daughter’s or wife’s name and her birth year or the year when you set up the wifi network. :wink:

Before you post any code, make sure to sanitise it, and not post any sensitive data, like usernames and passwods, as it have other things as well related to ESPHome.

1 polubienie

Yes, you are right. I will change it. It’s my daughter’s birth year. :slight_smile:

1 polubienie

Jasne, wrzucę pełny plik yaml. Jaki negatywny skutek może mieć kwh, zamiast kWh? HA radzi sobie OK.

kwh nie będzie działać w statystykach, a bardziej po polsku - z sensora z wadliwą jednostką w ogóle nie powstaną statystyki, nie będziesz mógł tego wrzucić do panelu energii itd.

Generalnie encja sensora może mieć dowolnie wymyśloną jednostkę na wypadek, gdyby ktoś chciał mierzyć jakąś klasę wartości, której dotąd nie przewidziano, ale dla takiej encji nie działają wtedy mechanizmy ułatwiające jej stosowanie.