To akurat nie moje, ale zdaje się że ESPHome jest aktualne. Raczej trzeba RPI zaktualizować. Znalazłem w międzyczasie info:
For anybody getting errors like `xtensa-lx106-elf-g++: internal compiler error: Segmentation fault (program cc1plus)` on RPis, please run `rpi-update` and confirm you’re running firmware v4.19.80 or newer installed.
Jakby było aktualne to wersje bibliotek zaczynały by się od 2 (z tego co pamiętam).
Oczywiście do tego wszystkiego może być też potrzebna aktualizacja Pi. Ale na 99% ESPHome jest stare.
Przy ostatniej aktualizacji był jakiś cyrk, bo zmiany były tak totalne, że w jednej instalacji nawet mi się nie chciało uruchomić (zunifikowali architektury).
Sugeruję odinstalować i zainstalować ponownie dopiero po restarcie maszyny.
A co do firmware RPi, to nie wiem na czym stanęło, (tylko jeśli chodzi o HAOS, bo w innych systemach to trzeba sobie dbać samodzielnie o firmware), bo kiedyś była na ten temat długa dyskusja z autorami HAOS i rozwiązania się zmieniały (bo były przypadki, że aktualizacja firmware powodowała problemy z bootowaniem RPi4 w specyficznych konfiguracjach, tj. z ssd/hdd podpiętym do niektórych mostków USB-sata i/lub USB-nvme), ale prawdopodobnie ostatecznie stanęło na tym, że HAOS przy okazji swojej aktualizacji sprawdza firmware i je aktualizuje do ostatniej stabilnej wersji zgodnej z RPiOS z którym zgodne jest dane wydanie HAOS.
A nie jestem na bieżąco, bo nie używam RPi produkcyjnie od paru lat, ale zawsze można sprawdzić posiadane firmware bootując RPiOS (i sugeruję to zrobić przed update by wiedzieć do czego wrócić w razie problemów ).
Wiem jaka jest procedura przy nowym, kolejnym modelu nakładki: czytamy radio, dekodujemy ramkę na wmbusmeters i jak przejdzie, to da rade obsłużyć w komponencie.
Ale i tak zadam pytanie:)
Czy próbował ktoś odczytać z takiego licznika?
/data/licznik-woda/.piolibdeps/licznik-woda/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp: In member function 'void ELECHOUSE_CC1101::Reset()':
/data/licznik-woda/.piolibdeps/licznik-woda/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp:149:3: warning: this 'while' clause does not guard... [-Wmisleading-indentation]
149 | while(digitalRead(MISO_PIN));
| ^~~~~
/data/licznik-woda/.piolibdeps/licznik-woda/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp:150:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'while'
150 | digitalWrite(SS_PIN, HIGH);
| ^~~~~~~~~~~~
/data/licznik-woda/.piolibdeps/licznik-woda/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp: In member function 'void ELECHOUSE_CC1101::setPA(int)':
/data/licznik-woda/.piolibdeps/licznik-woda/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp:498:13: warning: 'a' may be used uninitialized in this function [-Wmaybe-uninitialized]
498 | PA_TABLE[1] = a;
| ~~~~~~~~~~~~^~~
Ok wgrałem soft ale nie widzę żadnych danych z licznika… nic w logach nie pojawia się. Wgrałem soft bez konfiguracji sekcji sensor. Nakładka licznika lezy obok radia z nodemcu. Przykładałem do nakładki magnes i słyszę jak tyka kontaktron w nakładce. W logach widzę to:
INFO Reading configuration /config/esphome/licznik-woda.yaml...
INFO Detected timezone 'Europe/Warsaw'
INFO Starting log output from licznik-woda.local using esphome API
INFO Successfully connected to licznik-woda.local
[21:24:46][I][app:102]: ESPHome version 2022.12.6 compiled on Jan 25 2023, 21:07:27
[21:24:46][C][wifi:504]: WiFi:
[21:24:46][C][wifi:362]: Local MAC: xx:xx:xx:xx:xx:xx
[21:24:46][C][wifi:363]: SSID: [redacted]
[21:24:46][C][wifi:364]: IP Address: xxx.xxx.xxx.xxx
[21:24:46][C][wifi:365]: BSSID: [redacted]
[21:24:46][C][wifi:367]: Hostname: 'licznik-woda'
[21:24:46][C][wifi:369]: Signal strength: -62 dB ▂▄▆█
[21:24:46][C][wifi:373]: Channel: 6
[21:24:46][C][wifi:374]: Subnet: 255.255.255.0
[21:24:46][C][wifi:375]: Gateway: xxx.xxx.xxx.xxx
[21:24:46][C][wifi:376]: DNS1: xxx.xxx.xxx.xxx
[21:24:46][C][wifi:377]: DNS2: 0.0.0.0
[21:24:46][C][logger:293]: Logger:
[21:24:46][C][logger:294]: Level: DEBUG
[21:24:46][C][logger:295]: Log Baud Rate: 115200
[21:24:46][C][logger:296]: Hardware UART: UART0
[21:24:46][C][captive_portal:088]: Captive Portal:
[21:24:46][C][web_server:125]: Web Server:
[21:24:46][C][web_server:126]: Address: licznik-woda.local:80
[21:24:46][C][mdns:103]: mDNS:
[21:24:46][C][mdns:104]: Hostname: licznik-woda
[21:24:46][C][ota:093]: Over-The-Air Updates:
[21:24:46][C][ota:094]: Address: licznik-woda.local:8266
[21:24:46][C][ota:097]: Using Password.
[21:24:46][C][api:138]: API Server:
[21:24:46][C][api:139]: Address: licznik-woda.local:6053
[21:24:46][C][api:141]: Using noise encryption: YES
[21:24:46][C][sntp:053]: SNTP Time:
[21:24:46][C][sntp:054]: Server 1: '0.pool.ntp.org'
[21:24:46][C][sntp:055]: Server 2: '1.pool.ntp.org'
[21:24:47][C][sntp:056]: Server 3: '2.pool.ntp.org'
[21:24:47][C][sntp:057]: Timezone: 'CET-1CEST,M3.5.0,M10.5.0/3'
[21:24:47][C][wmbus:223]: wM-Bus v1.3.2:
[21:24:47][C][wmbus:238]: CC1101 SPI bus:
[21:24:47][C][wmbus:239]: MOSI Pin: GPIO13
[21:24:47][C][wmbus:240]: MISO Pin: GPIO12
[21:24:47][C][wmbus:241]: CLK Pin: GPIO14
[21:24:47][C][wmbus:242]: CS Pin: GPIO2
[21:24:47][C][wmbus:243]: GDO0 Pin: GPIO5
[21:24:47][C][wmbus:244]: GDO2 Pin: GPIO4
[21:24:47][C][wmbus:250]: Available drivers: apator08, apator162, bmeters, evo868, hydrocalm3, izar, mkradio3, ultrimis, unismart
[21:27:04][D][wmbus:082]: Meter ID [0x000xxxxx] RSSI: -33 dBm not found in configuration T: 6E4401062685060005077A04006085BEA50B1068FF7509C0BC5330302A095732404B4323935CE0AE8495277DA5D0440942B49AF973BA85EAFA35E44C366E51BAC21FFBA7C5A27D3B0A5FCC20B4AF900B6DE8F76EAC292C8C6FD0E8990218567643EFC75EE06882A2E32F58D94A00A8 (111)
Odnośnie źródła czasu robiłem dość długotrwały eksperyment (nie z tym projektem) i w sumie nie ma to znaczenia, minimalizując ruch na zewnątrz lepiej pobierać czas z HA, ale można zdefiniować sobie własny serwer wewnątrz LAN jeśli taki masz (HA i tak domyślnie pobiera czas z internetu).