Wątek archiwalny - Komponent wM-Bus do ESPHome (SzczepanLeon) starsze wersje do 1.5.1 włącznie

Czy ktoś z szanownych kolegów spotkał się z takim problemem przy kompilacji?

INFO Compiling app...
Processing apator1 (board: nodemcuv2; framework: arduino; platform: platformio/espressif8266 @ 3.2.0)
--------------------------------------------------------------------------------
Library Manager: Installing ottowinter/ESPAsyncTCP-esphome @ 1.2.3
INFO Installing ottowinter/ESPAsyncTCP-esphome @ 1.2.3
Unpacking  [####################################]  100%
Library Manager: ESPAsyncTCP-esphome@1.2.3 has been installed!
INFO ESPAsyncTCP-esphome@1.2.3 has been installed!
Library Manager: Installing esphome/ESPAsyncWebServer-esphome @ 2.1.0
INFO Installing esphome/ESPAsyncWebServer-esphome @ 2.1.0
Unpacking  [####################################]  100%
Library Manager: ESPAsyncWebServer-esphome@2.1.0 has been installed!
INFO ESPAsyncWebServer-esphome@2.1.0 has been installed!
Library Manager: Resolving dependencies...
INFO Resolving dependencies...
Library Manager: Installing esphome/noise-c @ 0.1.4
INFO Installing esphome/noise-c @ 0.1.4
Unpacking  [####################################]  100%
Library Manager: noise-c@0.1.4 has been installed!
INFO noise-c@0.1.4 has been installed!
Library Manager: Resolving dependencies...
INFO Resolving dependencies...
Library Manager: Installing esphome/libsodium @ 1.10018.1
INFO Installing esphome/libsodium @ 1.10018.1
Unpacking  [####################################]  100%
Library Manager: libsodium@1.10018.1 has been installed!
INFO libsodium@1.10018.1 has been installed!
Library Manager: Installing git+https://github.com/SzczepanLeon/wMbus-lib @ 0.9.11
INFO Installing git+https://github.com/SzczepanLeon/wMbus-lib @ 0.9.11
git version 2.30.2
Cloning into '/data/cache/platformio/cache/tmp/pkg-installing-8ywfd4rt'...
Library Manager: wMbus-lib@0.9.11+sha.5c653ae has been installed!
INFO wMbus-lib@0.9.11+sha.5c653ae has been installed!
Library Manager: Resolving dependencies...
INFO Resolving dependencies...
Library Manager: Installing lsatan/SmartRC-CC1101-Driver-Lib @ ^2.5.7
INFO Installing lsatan/SmartRC-CC1101-Driver-Lib @ ^2.5.7
Unpacking  [####################################]  100%
Library Manager: SmartRC-CC1101-Driver-Lib@2.5.7 has been installed!
INFO SmartRC-CC1101-Driver-Lib@2.5.7 has been installed!
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- ESPAsyncTCP-esphome @ 1.2.3
|-- ESPAsyncWebServer-esphome @ 2.1.0
|   |-- ESPAsyncTCP-esphome @ 1.2.3
|   |-- Hash @ 1.0
|   |-- ESP8266WiFi @ 1.0
|-- DNSServer @ 1.1.1
|-- ESP8266WiFi @ 1.0
|-- ESP8266mDNS @ 1.2
|-- noise-c @ 0.1.4
|   |-- libsodium @ 1.10018.1
|-- wMbus-lib @ 0.9.11+sha.5c653ae
|   |-- SPI @ 1.0
|   |-- SmartRC-CC1101-Driver-Lib @ 2.5.7
Compiling /data/apator1/.pioenvs/apator1/src/esphome/components/api/api_connection.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/apator1/.pioenvs/apator1/src/esphome/components/api/api_frame_helper.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
Compiling /data/apator1/.pioenvs/apator1/src/esphome/components/api/api_pb2.cpp.o
sh: 1: xtensa-lx106-elf-g++: not found
*** [/data/apator1/.pioenvs/apator1/src/esphome/components/api/api_connection.cpp.o] Error 127
Compiling /data/apator1/.pioenvs/apator1/src/esphome/components/api/api_pb2_service.cpp.o
*** [/data/apator1/.pioenvs/apator1/src/esphome/components/api/api_frame_helper.cpp.o] Error 127
*** [/data/apator1/.pioenvs/apator1/src/esphome/components/api/api_pb2.cpp.o] Error 127
sh: 1: xtensa-lx106-elf-g++: not found
*** [/data/apator1/.pioenvs/apator1/src/esphome/components/api/api_pb2_service.cpp.o] Error 127
========================== [FAILED] Took 7.23 seconds ==========================

Na czystym urządzeniu ESPHome bez bibliotek jest to samo. Problem chyba z samym ESPHome.
Uruchamiane na RPI4

Wygląda jakbyś miał stare środowisko/ESPHome. Zrób upgrade.

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.

1 polubienie

Wersja ESPHome 2022.12.6

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 :stuck_out_tongue: ).

Pewnie dla ESP32 był ten przeskok w numeracji. Ciągle zapominam że jest też ESP8266 :slight_smile: i jego libki.

@_Szczepan Właśnie zaktualizowałem swój zestaw na ESP8266 śmiga super :slight_smile:

1 polubienie

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?

Na chwile obecną, ten ktoś nie ma możliwości odczytania ramki

Zapodaj cały kod ESPHome

@pepeEL Kod ESP (Update: 2023-01-26):

esphome:
  name: apator
  comment: Maszynownia - licznik wody

esp8266:
  board: nodemcuv2

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

# Enable logging
logger: 
  level: DEBUG

# Enable Home Assistant API
api:
  encryption:
    key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

ota:
  password: "XXXXXXXXXXXXXXXXXXXXXXX"

# Serwer with a statistic data and OTA board update
web_server:
  port: 80
  version: 2
  auth:
    username: !secret maszynownia_auth_u
    password: !secret maszynownia_auth_p

# WiFi Local Area Network (HA)
wifi:
  networks:
  - ssid: !secret piwnica_wifi_ssid
    password: !secret piwnica_wifi_p
  - ssid: !secret parter_wifi_ssid
    password: !secret parter_wifi_p
  manual_ip:
    static_ip: 192.168.X.X
    gateway: 192.168.X.X
    subnet: 255.255.255.0
  ap:
    ssid: "Apator AP"
    password: !secret maszynownia_ap_p

time:
  platform: sntp

captive_portal:

# int ApatorID = 0x4829838;  to numer wodomierza z naklejki na nim

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

sensor:
  - platform: wmbus
    name: "Wodomierz"
    meter_id: 0x4829838 
    type: apator162
    key: "00000000000000000000000000000000"
  - platform: uptime
    name: "Uptime Wodomierz"

  - platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
    name: "WiFi signal"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"

  - platform: copy # Reports the WiFi signal strength in %
    source_id: wifi_signal_db
    name: "WiFi signal %"
    filters:
      - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
    unit_of_measurement: "%"
    entity_category: "diagnostic"

text_sensor:
  - platform: wifi_info
    ip_address:
      name: "IP"
    ssid:
      name: "SSID"
    mac_address:
      name: "MAC"

tak to aktualnie wygląda (po update do 2022.12.7) :

@_Szczepan - zapomniałem dać info… driver do mkradio3 działa.
Trochę słaby ten model…raportuje z rozdziałką 100L więc obserwacje utrudnione :smiley:

1 polubienie

Dopiero zaczynam zabawę i pierwszy raz chce zbudować FW do nodemcu ale dostaję taki komunikat przy Validation:

INFO Reading configuration /config/esphome/licznik-woda.yaml...
Failed config

wmbus: [source /config/esphome/licznik-woda.yaml:51]
  
  Component wmbus requires component time.
  mosi_pin: GPIO13
  miso_pin: GPIO12
  clk_pin: GPIO14
  cs_pin: GPIO2
  gdo0_pin: GPIO5
  gdo2_pin: GPIO4

@pepeEL Od wersji 1.3.0 musisz w yamlu umieścić:

time:
  platform: sntp

Mam taki wpis

time:
  platform: sntp

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

a podczas instalacji otrzymuję taki komunikat

Library Manager: Installing git+https://github.com/SzczepanLeon/wMbus-lib @ 0.9.12
INFO Installing git+https://github.com/SzczepanLeon/wMbus-lib @ 0.9.12
git version 2.30.2
Cloning into ‘/data/cache/platformio/cache/tmp/pkg-installing-4p91vvdw’…
Error: Package version 0.9.13+sha.9e415bd doesn’t satisfy requirements 0.9.12 based on PackageMetaData <type=library name=wMbus-lib version=0.9.13+sha.9e415bd spec={‘owner’: None, ‘id’: None, ‘name’: ‘wMbus-lib’, ‘requirements’: ‘0.9.12’, ‘uri’: ‘git+https://github.com/SzczepanLeon/wMbus-lib’}

A nie czas z Home Assistant ?

Edit:

to jeszcze przy kompilacji mam taki komunikat:

/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

@Dariusz_Barczyński Wywal pliki tymczasowe esphome
@pepeEL czas może być i z HA

teraz coś takiego dostałem:

[21:27:04][D][wmbus:082]: Meter ID [0x000xxxxx] RSSI: -33 dBm not found in configuration T: 6E4401062685060005077A04006085BEA50B1068FF7509C0BC5330302A095732404B4323935CE0AE8495277DA5D0440942B49AF973BA85EAFA35E44C366E51BAC21FFBA7C5A27D3B0A5FCC20B4AF900B6DE8F76EAC292C8C6FD0E8990218567643EFC75EE06882A2E32F58D94A00A8 (111)

No i git. Jakiś licznik Tobie wykrył.
Apator-16-2 z odczytem 21l.
Możesz go dodać do sekcji sensors

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).