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.

Hej, zmienili mi ostatnio licznik na Gama 350 G35. Nie prosiłem jeszcze PGE o hasło do rozszyfrowania, bo nie wiem czy w moim wypadku jest potrzebne. Pytania do osób, którym się udało:

  1. Jak często licznik raportuje dane? Czy zależy to od pory dnia?
  2. Czy nr licznika do wpisania w wmbus mam wziąć z obudowy licznika (dec czy hex?) czy ten nr jest kompletnie czymś innym niż rozgłaszany identyfikator?
  3. Czy może być tak, że licznik ma nieaktywną funkcję wmbus i PGE odczytuje go w inny sposób? Wtedy jak rozumiem muszę złożyć wniosek i go przekonfigurują?
  4. Czy w logach zobaczę licznik jako amiplus bez znajomości jego identyfikatora, żebym mógł zobaczyć czy telegram jest zaszyfrowany? Nie mam pewności, że identyfikator z obudowy jest tym co rozgłasza.

Raczej nie ma szans, że transmisja będzie nieszyfrowana, domyślnie wmbus jest wyłączony, w ogóle nie wiem czy PGE montuje wersję z wmbus.

Tak PGE montuje takie liczniki. Montują Litewską GAMA350 lub APATOR
Ja wysłałem wniosek o wymianę licznika z GAMA350 na GAMA350 WMBUS
Zapłaciłem za wcześniejszą wymianę licznika, ok 450 zł.
Czekałem na wymianę 3 miesiące.
Po wymianie czekałem na KEY od PGE 3 tygodnie,

Co do raportowania to moja Gama350 raportuje co 2 minuty przez 24h.

Potwierdzam - PGE ma Gama 350

Używam Gama 350 od PGE (woj. łódzkie), taryfa G12.
Od samego początku miałem transmisję co 60 sekund, dane transakcyjne szyfrowane.
Czas w liczniku jest przyspieszony o kilkanaście sekund, stąd HA mi pokazuje, że odczyt nastąpił za 16 sekund :slight_smile:
Ogólnie jestem zadowolony z tego jak to działa, odczytuję przez odbiornik RTL-SDR, dekoduję przez wmbus i wysyłam wiadomości na MQTT. Po wysłaniu wiadomości na kolejkę wyłączam radio i włączam je ponownie na 2 sekundy przed spodziewaną transmisją,

2 posty zostały scalone z istniejącym tematem: Elgama Gama-350 i port P1

Mam zdalny odczyt po wmbus w gama 350 od dzisiaj. ale zastanawiam sie czy dane dot. energii pobranej oddanej sa w ogole użyteczne, skoro są to zwykle liczniki przyrostowe a od 2022 mamy bilansowanie godzinne. Z moich obserwacji wynika ze takie bilansowanie nie jest realizowane w liczniku gama a gdzieś w systemie rozliczeniowym dostawcy. Wiec należałoby te dane obrobić aby z liczników gama otrzymać pochodne liczniki które wyliczają import i export po zbilansowaniu. Czy dobrze rozumiem?

@Marcin7d
Nie wiem, ale zazwyczaj dostawca energii korzysta z danych przesyłanych technologią PLC (po linii energetycznej) lub GSM, a nadajnik wmbus jest tylko realizacją idei HAN.
Więc teoretycznie zestaw danych wysyłanych tymi 2 drogami może być różny.
Druga kwestia jest taka, że być może otwarto-źródłowy sterownik (dekoder) wmbus dla twojego licznika być może nie dekoduje wszystkiego co zawierają nadawane ramki (być może nie dekoduje jakichś specyficznych).

Mając dane “near realtime”, czyli uzyskiwane w czasie niemal rzeczywistym możesz dane obrabiać jak tylko chcesz (w tym uzyskać ekwiwalent bilansowania godzinowego).

Raczej wszystkie dane są dekodowane, po prostu domowe liczniki nie bilansuja godzinowo lokalnie przez co otrzymujemy surowe dane z liczydel które niewiele się różnią od danych z podlicznika. Te dane mogą być użyteczne ale musimy wypracować jakie rozwiązania które będą zbliżone do wartości otrzymywanych od zakładów energetycznych. Bo na obecną chwilę mam 1MWh w magazynie u dostawcy A z liczników import export wychodzi ze jestem na zero

Tak, dokładnie. Ja zbieram dane z niezależnego licznika czytanego co 1 sekundę i przy zmianie godziny zapisuję wynik. To pozwala wyliczyć faktyczny bilans godzinowy. Tak liczyłem przed uruchomieniem odczytu WMbus.
Odczyt z GAMA350 PGE przez WMBus wykorzystuję do wyliczenia poprawki związanej z różnicą pomiarów - każdy licznik ma swoje błędy.
Np. różnica między moim licznikiem (SDM630) i GAMA350 jest ok.0.4% - pobór i wysyłanie mają nieco inne błędy, ale poniżej 0.5%.
Sam odczyt z GAMA350 jest co 1 minutę w okolicy pełnej minuty, ale nie zawsze ramki są odebrane, więc opieranie się na nich miałoby nieco większy błąd niż mam obecnie.
Np. za poprzednie półrocze, różnica mojego rozliczenia godzinowego vs rozliczenie PGE było ok. 3kWh na ok.4000 kWh energii wysłanej/pobranej i pewnie wynika ze sposobu zaokrąglania wyniku przez PGE.