Alternatywa: “odchudzony” komponent ESPHome (wM-BUS) – tylko RF→MQTT, dekodowanie poza ESP ( HA )

Jak wspomniałem korzystam z postów Forum i wpadł mi wątek n/t porównania driverów do licznika.
Na tamten czas to było karkołomne ( bo tylko strona wmbusmeters ).

Przećwiczyłem to obecnie.

No i wynik końcowy czyli encje :

Kod po stronie ESP uległ refaktoryzacji tj rozbiciu na moduły z zachowaniem dotychczasowej funkcjonalności.
Wystarczy dać Clean Build ( bez tego kompilacja zakończy się błędem ).
Po stronie HA tylko kosmetyka : w sekcji Ustawienia są widoczne opcje które są w interejsie UX.

Mały update — dopieściłem tryb Docker standalone (dla tych, co chcą dekoder poza HA: Proxmox / NAS / DietPi). Ten sam obraz co dodatek, tylko jako zwykły kontener; do HA i tak leci przez MQTT.

Co świeżo działa/naprawione (chodzę tak produkcyjnie na QNAP od tego tygodnia):

Restart z WebUI działa w Dockerze — wcześniej wymagał Supervisora; teraz kontener wstaje sam pod restart: unless-stopped.
Samodiagnoza startu — entrypoint sonduje broker i pisze w logu dlaczego MQTT offline (verified / złe hasło / nieosiągalny), zamiast cicho ponawiać.
Domyślny raw_topic: wmbus/+/telegram — zgodny z firmware ESP, świeża instalacja odbiera od razu.
:warning: Pułapka: w compose musi być entrypoint: /usr/bin/docker-entrypoint.sh — bez tego startuje ścieżką HA i sypie Could not resolve host: supervisor.

services:
  wmbus:
    image: ghcr.io/kustonium/amd64-addon-wmbus_mqtt_bridge:latest
    container_name: wmbus
    entrypoint: /usr/bin/docker-entrypoint.sh
    restart: unless-stopped
    ports:
      - "8099:8099"
    volumes:
      - ./config:/config

Uwaga o architekturze: obrazy są budowane osobno per architektura (tak wymaga konwencja dodatków HA — w HA podmienia je Supervisor automatycznie). W czystym Dockerze musisz wskazać ręcznie: amd64-… na x86, aarch64-… na ARM (RPi, część NAS-ów). Docker sam tego nie wybierze — na złym obrazie kontener ruszy i dopiero wywali się na exec format error. Planuję przy okazji dorzucić jeden wspólny tag multi-arch, żeby wystarczyła jedna nazwa; na razie dobierz obraz pod swój sprzęt.

Konfig w ./config/options.json, gotowy przykład z Mosquitto w repo (docker/examples/).

2 Likes

Wersja Docker ma już mutliarch z automatu - zrzut z QNAP

1 Like

Mam kilkanaście liczników które chciałbym monitorować i tylko te odczyty chcę przesyłac przez mqtt do deszyfrowania ,czy właściwe jest zadeklarowanie ich w sekcji on_frame, highlight_meters czy jest może jakaś white-lista?

Jedyny parametr:

highlight_meters:
   - "12345678"

który powoduje wytłuszczenie w logu ESP danego licznika oraz włącza per-licznikowe statystyki odbioru.
Natomiast “filtrowanie” odbywa się po stronie dekodera w HA gdzie sam wskazujesz w GUI swoje liczniki ( liczniki nie wskazane są tylko tłem , nie tworzą encji ).

W katalogu Examples są przykłady YAML abyś miał jasność co do składni..