Wmbusmeters (W-MBus to MQTT) jako addon Supervisora

Brakuje Ci sporo bibliotek aby to uruchomić, szczególnie, że masz Hassio: Docker Supervised, proponuję zainstalować te pakiety:

sudo apt install ncurses-dev cmake librtlsdr-dev \
             cmake libusb-1.0-0-dev build-essential libtool-bin  \
             automake make info libc6-dev libgmp-dev \
             libgmp3-dev gawk qpdf bison -y

Dzięki za sugestię, sprawdziłem, ale tak jak się spodziewałem to raczej nie to.

Instalacja addona wywala się na budowaniu swojego dockera (apk add to z dockeroweg RUN wywołanego w alpine), nie na interakcji z systemem hosta. Wydaje się, że to przez fakt, że /bin/ash -c komenda podaje komendę bez cudzysłowia i apk jest przez to źle uruchamiane. Wygląda to na dość generyczne wywołanie, więc się dziwię, że tu nie działa a w innych plugin ach już tak…

Jest progress. Podczas budowania dostaję coś takiego.

g++ -Os -g -DFUZZING=false -fPIC -std=c++11 -Wall -Werror=format-security -Ibuild src/meter_cma12w.cc -MMD -c -o build/meter_cma12w.o

g++ -Os -g -DFUZZING=false -fPIC -std=c++11 -Wall -Werror=format-security -Ibuild src/meter_compact5.cc -c -E > build/meter_compact5.o.src

g++ -Os -g -DFUZZING=false -fPIC -std=c++11 -Wall -Werror=format-security -Ibuild src/meter_compact5.cc -MMD -c -o build/meter_compact5.o

Error removing intermediate container c3bde14ed969: removal of container c3bde14ed96966fdca79c327bab82cc7b6a67649a690d0198d2bfac5abc40cf4 is already in progress

22-02-22 22:27:37 ERROR (MainThread) [supervisor.jobs] Unhandled exception: 'eb1c2368_wmbusmeters'
Traceback (most recent call last):
  File "/usr/src/supervisor/supervisor/docker/addon.py", line 540, in _build
    image, log = self.sys_docker.images.build(
  File "/usr/local/lib/python3.9/site-packages/docker/models/images.py", line 285, in build
    raise BuildError(chunk['error'], result_stream)
docker.errors.BuildError: The command '/bin/ash -o pipefail -c make' returned a non-zero code: 137

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/supervisor/supervisor/jobs/decorator.py", line 106, in wrapper
    return await self._method(*args, **kwargs)
  File "/usr/src/supervisor/supervisor/addons/__init__.py", line 181, in install
    await addon.instance.install(store.version, store.image)
  File "/usr/src/supervisor/supervisor/utils/__init__.py", line 33, in wrap_api
    return await method(api, *args, **kwargs)
  File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/supervisor/supervisor/docker/addon.py", line 524, in _install
    self._build(version)
  File "/usr/src/supervisor/supervisor/docker/addon.py", line 550, in _build
    _LOGGER.error("Can't build %s:%s: %s", self.image, version, err)
  File "/usr/src/supervisor/supervisor/docker/addon.py", line 72, in image
    return self.addon.image
  File "/usr/src/supervisor/supervisor/addons/addon.py", line 404, in image
    return self.persist.get(ATTR_IMAGE)
  File "/usr/src/supervisor/supervisor/addons/addon.py", line 167, in persist
    return self.sys_addons.data.user[self.slug]
KeyError: 'eb1c2368_wmbusmeters'

…ale wygląda na to, że się zainstalował:D

Próbowałem różnych sposobów by rozwiązać mój poprzedni problem z command returned non-zero code, przede wszystkim próbując ustawić DNS na różny sposób w HA, tak by docker tworzący addona miał ustawionego jakiegoś zewnętrznego. To nie przynosiło efektów.
Zadziałało po zastosowaniu się do tego: error: clock_gettime(CLOCK_MONOTONIC, _) failed... · Issue #462 · docker-library/rabbitmq · GitHub
Wpadłem na to bo dostawałem ten błąd gettime CLOCK_MONOTONIC bawiąc się pustym alpinem.

Problem w przypadku Armbiana Bustera jest to, że w repo libseccomp jest w wersji 2.3.3 bodajrze, więc pobrałem ręcznie wersję wyższą z http://ftp.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.5.1-1~bpo10+1_armhf.deb i zainstalowałem. Po tym budowanie addona ruszyło, wywala błąd na make’u, trwa dłuuugo, ale wygląda, że się zainstalowało.

No i po wielkich bojach…
image

Phew, można sobie teraz nalać:)

Brawo za wytrwałość :slight_smile: dlatego ja poszedłem od razu na łatwiznę i używam Home Assistant Operating System aby nie musieć tak walczyć w takich tematach.

1 polubienie

Dzięki za radę, ale pewnie będę wykorzystywał tę maszynkę do innych rzeczy również, więc chciałbym mieć część HA w dockerach odzieloną od reszty… dockerów;)

Zdaję sobie z tego sprawę ale w HA też można mieć inne rzeczy jako add-on’y - osobne dockery :slight_smile:. Używasz Armbian’a – “Linux for ARM development boards” więc inne rzeczy muszą być w pewnym sencie “ograniczone”, nie planujesz chyba na tym postawić jakiegoś NAS’a?

Możemy przejść z tą dyskusją na prywatne wiadomości, nie ma co zaśmiecać wątku.

Jestem ciekaw Twojej odpowiedzi. Co sklania Ciebie do Armbiana?

Aktywny cykl releasowy. Stawiam HA na Odroidzie XU4 i cośtam się kopałem poprzednio z aktualizacją Ubuntu.

1 polubienie

Cześć, mam chyba najpopularniejszy tuner DVB-T - używałem sobie na debianie i na rasbianie - bardzo ładnie czytam i przekształcam ramki. Ale mam problem z użyciem w HA - urządzenie jest dodawane (chociaż nie wiem co znaczy tutaj ‘None’):

INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.ADD hardware /dev/bus/usb/001/007 - None

Jednak w System → Host → Sprzęt nie widzę urządzenia (przykładowo Zigbee na USB widzę od razu po podłączeniu).

Teraz testuję na świeżym HA czy nie stanowi jakiegoś problemu - wcześniej jedyne co pojawiało mi się w liście sprzętu po podłączeniu tunera, to urządzenie event0 - jednak przy wybraniu tego urządzenia otrzymuję błąd:

wmbusmeters addon segmentation fault (core dumped)

Pierwsza instalacja HA jest na dockerze - i po podłączeniu usb w logu mam nie jeden tylko masę wpisów:

22-04-15 23:01:53 INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.ADD hardware /dev/bus/usb/001/009 - None
22-04-15 23:01:53 INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.ADD hardware /dev/i2c-11 - None
22-04-15 23:01:53 INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.ADD hardware /dev/dvb/adapter0/demux0 - None
22-04-15 23:01:53 INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.ADD hardware /dev/dvb/adapter0/dvr0 - None
22-04-15 23:01:53 INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.ADD hardware /dev/dvb/adapter0/net0 - None
22-04-15 23:01:53 INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.ADD hardware /dev/i2c-12 - None
22-04-15 23:01:53 INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.ADD hardware /dev/dvb/adapter0/frontend0 - None
22-04-15 23:01:53 INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.ADD hardware /dev/swradio0 - None
22-04-15 23:01:53 INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.ADD hardware /dev/media2 - None
22-04-15 23:01:53 INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.ADD hardware /dev/lirc0 - None
22-04-15 23:01:53 INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.ADD hardware /dev/input/event0 - None

Testową zrobiłem jako pełny system HA.

Edit:
Jako trzeci test na proxmoxie postawiłem HA.
Dodaję tuner w konfiguracji, restart HA - nie widzi go…

Jakieś pomysły? :slight_smile:

Na chwilę przełożyłem dongla abyś miał pogląd ( nie mam zainstalowanego WBMUSMETERS w HA, instalacja natywna czyli HAOS ):

22-04-16 09:09:03 INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.ADD hardware /dev/bus/usb/003/005 - None

Więc mam dokładnie tak samo.

Pokusiłem się o przełożenie z USB 3.0 do 2.0 :

22-04-16 09:24:09 INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.REMOVE hardware /dev/bus/usb/003/007 - None
22-04-16 09:24:13 WARNING (MainThread) [supervisor.hardware.monitor] Ignore device /sys/devices/pci0000:00/0000:00:14.0/usb3/3-4 / failes to initialize by udev
22-04-16 09:24:38 INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.ADD hardware /dev/bus/usb/001/004 - None
22-04-16 09:24:38 INFO (MainThread) [supervisor.hardware.monitor] Detecting HardwareAction.ADD hardware /dev/bus/usb/001/004 - None

Zrobię jeszcze próbę po dodaniu addona.

EDIT - addon dodany i…efekt ten sam. Addon nie widzi sticka.

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Syncing wmbusmeters configuration ...
Registering meters ...
Generating MQTT configuration ... 
Broker core-mosquitto will be used.
Running wmbusmeters ...
No wmbus device detected, waiting for a device to be plugged in.
No meters configured. Printing id:s of all telegrams heard!

Wnioski końcowe - osobny Linuks aby to działało ( lub HA jest bardziej wybredny do sticków niż natywny Linuks).

Pokaż konfigurację add-on’a Wmbusmeters (W-MBus to MQTT), mam tak:

conf: |-
  loglevel=normal
  device=rtlwmbus:868.9M:t1

i działa mimo, że HA nie wykrywa dongla.

Ta jedna linijka od Ciebie:

device=rtlwmbus:868.9M:t1

uruchomiła u mnie addona :slight_smile:
Myślałem, że urządzenie musi być widoczne i trzeba podać jako TTY…
Dzięki :slight_smile:

No nie pokaże bo mam osobny komputer do tego a nigdy tego nie integrowałem w HA a już usunąłem…

Wszystko udało się uruchomić bez problemów, ale mam pytanie techniczne - może ktoś też ma liczniki wody i ciepła Techcemu. Odbieram z nich dane dość często, ale wysyłana przez nie wartość jest aktualizowana tylko raz na dobę.
To normalne?

Czy komuś udało się uruchomić odczyt wmbusmeters na HA OS 7.6 ? Mój dongle jest widoczny:

DEVPATH: /devices/pci0000:00/0000:00:06.0/usb1/1-4
DEVTYPE: usb_device
DRIVER: usb
ID_BUS: usb
ID_FOR_SEAT: usb-pci-0000_00_06_0-usb-0_4

jednak wmbusmeters nie widzi dongla, i nie ma go widocznego na TTY
ID_MODEL: RTL2838UHIDIR
ID_MODEL_ENC: RTL2838UHIDIR

nie pomaga zmiana w configu na device=rtlwmbus:868.9M:t1

I nie będzie widoczny na żadnym tty, zostaw w konfiguracji tylko taki wpis związany z urządzeniem:

conf: |-
  loglevel=debug
  device=rtlwmbus:868.9M:t1

Usuń wpisy związane z opcją donotprobe, ustawienie debuga pokaże wiecej informacji w logach do zdiagnozowania problemu, potem należy ustawić loglevel na normal.

Niestety zrobiłem reinstalacje dodatku i się wysypał - muszę poczekać aż naprawią :frowning:

wywala błąd:

s6-overlay-suexec: fatal: can only run as pid 1

Edit:
Dodatek poprawiony przez autora i działa

Witam zainstalowałem Wmbusmeters jako addon i po uruchomieniu pokazuje faktycznie wszystkie liczniki oraz podzielniki ciepła Techem jednak nic poza tymi danymi nie wyświetla w pliku konfiguracyjnym znajduje się tylko jedna linijka (device=rtlwmbus:868.9M:t1,c1) gdyż przy próbie dodania czegokolwiek Wmbusmeters przestaje się uruchamiać. Co może być przyczyną takiego zachowania Wmbusmeters że nić nie można dopisać do pliku konfiguracyjnego i tym samym najprawdopodobniej nic więcej nie pokazuje prócz tego że takie liczniki nadają w eterze.
3

przełącz edytor na Yaml - mi pomogło i wkleiłem gotowca który działa na 100% (Izar Diehl)

data_path: /config/wmbusmeters
conf: |-
  loglevel=normal
  device=rtlwmbus:868.9M:t1
  donotprobe=/dev/ttyAMA0
  listento=c1,t1,s1
  meterfiles=/config/wmbusmeters/logs/meter_readings/
  meterfilesaction=overwrite
  logtelegrams=true
  format=json
  logfile=/config/wmbusmeters/wmbusmeters.log
  shell=/wmbusmeters/mosquitto_pub.sh wmbusmeters/$METER_NAME "$METER_JSON"
meters:
  - |-
    name=MainWater1
    driver=auto
    id=21xxxxx (numer licznika)
    key=
mqtt:
  host: 192.168.x.x
  port: 1883
  user: homeassistant
  password: twoje hasło mqtt

Edit:

Używam tej integracji od 3 dni i zauważyłem żewmbusmasters przestaje działać i wywala w logu

Error: Invalid arguments provided.
Error: Invalid arguments provided.
Error: Invalid arguments provided.
Error: Invalid arguments provided.
Error: Invalid arguments provided.
Error: Invalid arguments provided.
Error: Invalid arguments provided.
Error: Invalid arguments provided.
Error: Invalid arguments provided.
Error: Invalid arguments provided.
Error: Invalid arguments provided.
Error: Invalid arguments provided.
Error: Invalid arguments provided.
Error: Invalid arguments provided.
Error: Invalid arguments provided.
Error: Invalid arguments provided.
Error: Invalid arguments provided.

Ktoś ma jakiś pomysł ? By integracja działała ponownie muszę uruchomić ją ponownie , mój konfig w poście powyżej