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

Dodałem ale w HA mam stan “nieznany”

Czekaj…
A jak yaml wyglada w sekcji sensors? ID masz poprawne? Klucz z zerami dodałeś?

@szczepan
Izar R4 pięknie wszystko działa i się konfiguruje, dzięki wielkie świetna robota. Ale chciałem dziś zaktualizować i wywala mi poniższy błąd.

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'}

sensor:
  - platform: wmbus
    name: "Wodomierz"
    meter_id: 0x000xxxxx
    type: apator162

I wskoczyła wartość w HA:

2 262 010,250 m³

EDIT
Dodałem Key z zerami i teraz mam wartość w HA:
0,021 m³

Zagraj w totka :wink:

@bodek85 Wywal katalogi tymczasowe (.build i .esphome).

Ale teraz jak dodałem Key z zerami to jest dobrze bo pokazuje 0.021m3 czyli 21L jak napisałeś.

Ale dalej przy kompilacji softu mam na żółto takie info:

/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;

Działa? Olej. To z zewnętrznej biblioteki. Chcesz się pozbyć to zmień na ESP32 albo odpowiednio ustaw kompilator.

1 polubienie

@_Szczepan
U mnie podobnie jak u @bodek85 , przy kompilacji błąd biblioteki.
Pomimo nowej 0.9.13 domaga się starszej wersji 0.9.12 :frowning:

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-wbfo3kt2'...
**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'}**

Wywal pliki tymczasowe, albo poczytaj o refresh - ustaw na 0

Wywaliłem wszystko i ponowna instalacja i jest OK
Dzięki

1 polubienie

Dzięki za podpowiedź
dopisanie do external_components opcji refresh: 0d
pomogło i jest OK.

A czy przykładając magnes do kontaktronu w nakładce zmienia się wtedy ilość wskazań m3 ?

Nie wiem też czemu ale sensor pokazuje mi zużycie 0,021m3 czyli 21L. Dodany mam sensor w Home Asistant w dashboard ENERGIA i tam cały czas mam 0L. Minęły już ok 2h i dalej nic.

Nie. Ustawią się tylko flagi ( o ile wykrywanie jest włączone ) i w ramce będą dane n.t. czasu wystąpienia zdarzenia. Nie wpływa to na odczyt, a przynajmniej nic mi nie wiadomo na ten temat.

Szczepan zaktualizowałem ESPHome do 2022.12.7 i jest problem przy kompilacji z wmbusgateway:

src/esphome/components/wmbusgw/wmbusgw_component.cpp: In member function 'virtual void esphome::wmbusgw::WMBusGwComponent::loop()':
src/esphome/components/wmbusgw/wmbusgw_component.cpp:113:52: error: qualified-id in declaration before '(' token
 const LogString *WMBusGwComponent::format_to_string(Format format) {
                                                    ^
src/esphome/components/wmbusgw/wmbusgw_component.cpp:124:55: error: qualified-id in declaration before '(' token
 const LogString *WMBusGwComponent::transport_to_string(Transport transport) {
                                                       ^
src/esphome/components/wmbusgw/wmbusgw_component.cpp:135:35: error: qualified-id in declaration before '(' token
 void WMBusGwComponent::dump_config() {
                                   ^
src/esphome/components/wmbusgw/wmbusgw_component.cpp: At global scope:
src/esphome/components/wmbusgw/wmbusgw_component.cpp:155:1: error: expected '}' at end of input
 }  // namespace esphome
 ^
src/esphome/components/wmbusgw/wmbusgw_component.cpp:3:19: note: to match this '{'
 namespace esphome {
                   ^
Compiling /data/wmbus-m/.pioenvs/wmbus-m/src/esphome/core/controller.cpp.o
Compiling /data/wmbus-m/.pioenvs/wmbus-m/src/esphome/core/entity_base.cpp.o
*** [/data/wmbus-m/.pioenvs/wmbus-m/src/esphome/components/wmbusgw/wmbusgw_component.cpp.o] Error 1

Spróbuj na najnowszej wersji.
btw. możesz przenieść się na wmbus, umieściłem tam też zawartość wmbusgw.

@MateuszŁukasik Zainstaluj nowszą wersję komponentu – poprawiłem obsługę LEDa.

Przeniesienie się na wmbus pomogło

Cześć
Korzystam z esphome i konfiguracji dla Apator 16-2. Mam podłączony nodemcu v3 z CC1101.
Wszystko do tej pory działało, aż do momentu dzisiejszego update dla esphome.
Wyrzuca mi w logach takie coś, a niczego nie zmieniałem:

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

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

Moja konfiguracja

esphome:
  name: woda-zuzycie

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: "x"

ota:
  password: "x"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  ap:
    ssid: "Woda-Zuzycie Fallback Hotspot"
    password: "x"

captive_portal:
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: 0xXXXXX
    type: apator162
    key: "00000000000000000000000000000000"
    filters:
      offset: -214.264 

@_Szczepan , wczoraj dodałeś do wMbus-lib detekcję wersji CC1101

czy można do warunku dopisać poza 255 też 0 ?? Bez podłączonego CC1101 zmienna cc1101Version ma wartość 0 i kod leci dalej a powinien zakończyć się tak jak dla wartości 255, może wtedy wyelimuje się te bootloopy esp ?? Wg dokumentacji cc1101 powinien zwracać wartość 20(0x14), choć nie zarzekają się że tak będzie :smiley:

@Bro2y - wczoraj była o tym dyskusja, przewiń wyżej:
22963

Dziękuje :slight_smile: Działa :slight_smile: przeoczyłem.
Pozdrawiam

Dodam też 0. Boot loopy powinny być wyeliminowane – teraz komponent jest znaczony jako failed.

1 polubienie