Apator, Izar, AT-WMBUS-16-2 odczyt wodomierza ESPHome + CC1101

Dostaje telegramy, jednak nie potrafię wpisać tego ID: 00033cab program przy nim się nie kompiluje :man_facepalming:.
Nakładka działa, wystarczyła wymiana baterii :stuck_out_tongue: .

[11:20:16][C][ota:094]:   Address: 192.168.1.118:8266
[11:20:16][C][api:138]: API Server:
[11:20:16][C][api:139]:   Address: 192.168.1.118:6053
[11:20:16][C][api:143]:   Using noise encryption: NO
[11:20:16][D][api:102]: Accepted 192.168.1.100
[11:20:16][D][api.connection:918]: Home Assistant 2022.12.6 (192.168.1.100): Connected successfully
[11:20:19][I][Info:073]: Package received. Meter ID = 00033CAB
[11:20:19][I][Info:074]: Signal strenght: -31 dB
[11:20:19][I][Info:109]: Incompatible ID

[11:22:03][I][Info:073]: Package received. Meter ID = 00033CAB
[11:22:03][I][Info:074]: Signal strenght: -37 dB
[11:22:03][I][Info:109]: Incompatible ID

[11:22:29][I][Info:073]: Package received. Meter ID = 00033CAB
[11:22:29][I][Info:074]: Signal strenght: -34 dB
[11:22:29][I][Info:109]: Incompatible ID

Jaki masz blad? Jak ten co poprzednio to wywal zera z przodu i wpisz jako wartosc dziesietna.

Compiling /data/wmbus/.pioenvs/wmbus/src/main.cpp.o
In file included from src/main.cpp:31:
src/apator.h:39:18: error: unable to find numeric literal operator 'operator""CAB'
   39 | int ApatorID_1 = 033CAB;
      |                  ^~~~~~
*** [/data/wmbus/.pioenvs/wmbus/src/main.cpp.o] Error 1
========================== [FAILED] Took 3.39 seconds ==========================

Zapisz to w kodzie jako:

int ApatorID_1 = 0x033CAB;

Kompiluje się ale:

[12:06:56][I][Info:073]: Package received. Meter ID = 00033CAB
[12:06:56][I][Info:074]: Signal strenght: -36 dB
[12:06:56][I][Info:109]: Incompatible ID

Zmień w kodzie na:

    int MeterID = atoi(dll_id);
    
    ESP_LOGI("Info", "Package received. Meter ID = %d", MeterID);

Puść, odczytaj co wyświetli w konsoli i potem w następnej iteracji wpisz tę wartość jako ApatorID_1 (dokładnie tak jak wyświetli). Tak chyba najszybciej i najprościej na odległość wytłumaczyc.

Wpisz dziesietnie 212139

@Mariusz_Woszczyński Tak też nie działa. Mimo, że taki numer mam na naklejce.

[16:00:59][I][Info:074]: Package received. Meter ID = 00033CAB
[16:00:59][I][Info:075]: Signal strenght: -74 dB
[16:00:59][I][Info:115]: Incompatible ID

[16:04:52][I][Info:074]: Package received. Meter ID = 00033CAB
[16:04:52][I][Info:075]: Signal strenght: -74 dB
[16:04:52][I][Info:115]: Incompatible ID

[16:05:15][I][Info:074]: Package received. Meter ID = 00021290
[16:05:15][I][Info:075]: Signal strenght: -77 dB
[16:07:23][I][Info:074]: Package received. Meter ID = 00021290
[16:07:23][I][Info:075]: Signal strenght: -75 dB
[16:07:29][I][Info:074]: Package received. Meter ID = 00033CAB
[16:07:29][I][Info:075]: Signal strenght: -74 dB
[16:07:29][I][Info:115]: Incompatible ID

[16:09:10][I][Info:074]: Package received. Meter ID = 00033CAB
[16:09:10][I][Info:075]: Signal strenght: -74 dB
[16:09:10][I][Info:115]: Incompatible ID

Licznik wody pokazuje “Incompatible ID” w normalnie wersji.
W wersji przerobionej na “ID = %d", MeterID” zmienia się numer ID na “33

[16:19:06][I][Info:074]: Package received. Meter ID = 33
[16:19:06][I][Info:076]: Signal strenght: -74 dB
[16:19:06][I][Info:116]: Incompatible ID

Po wpisaniu tak jak napisałeś wartość 33 w ApatorID_1 mam coś takiego jak poniżej i chyba ESP’ek się wysypuje.

[16:22:38][I][Info:074]: Package received. Meter ID = 33
INFO 192.168.1.118: Error while reading incoming messages: Error while reading data: [Errno 104] Connection reset by peer
INFO 192.168.1.118: Ping Failed: Error while reading data: [Errno 104] Connection reset by peer
INFO Disconnected from ESPHome API for 192.168.1.118
WARNING Disconnected from API
INFO Successfully connected to 192.168.1.118
[16:24:34][I][Info:074]: Package received. Meter ID = 33
INFO 192.168.1.118: Error while reading incoming messages: Error while reading data: [Errno 104] Connection reset by peer
INFO 192.168.1.118: Ping Failed: Error while reading data: [Errno 104] Connection reset by peer
INFO Disconnected from ESPHome API for 192.168.1.118
WARNING Disconnected from API
INFO Successfully connected to 192.168.1.118
[16:24:48][D][api:102]: Accepted 192.168.1.100
[16:24:48][D][api.connection:918]: Home Assistant 2022.12.6 (192.168.1.100): Connected successfully

Otrzyma pakiet = Package received. Meter ID = 33 i po paru sekundach = Error while reading incoming messages: Error while read

Zapytam też o licznik gazu, wydaje mi się, że wszystko jest ok bo pakiety chyba odbiera prawidłowo ale nigdzie nie widzę stanu licznika.

Nie wiem jak Apator koduje dane w liczniku danych (pewnie inaczej niż w wodzie). Dlatego najwygodniej jest wykorzystać wmbusmeters do dekodowania (albo ręcznie przenieść driver’a do kodu Mariusza).

Co do tego błędu z ID licznika popraw kod w linii 65 na:

int MeterID = strtol(dll_id, NULL, 16);

Tak, prawdopodobnie chodzi o niezgodności systemu liczbowego. Ja mam na naklejce same cyfry, wiec założyłem ze to DEC. Jak licznik nadaje Ci w HEX, to zrób jak napisał Szczepan

No i pewnie tu jest problem bo obydwa drivery które mam są inne:

Supported water meters:
Apator at-wmbus-08   (apator08) (non-standard protocol)   - mam ten
Apator at-wmbus-16-2 (apator162) (non-standard protocol)   - driver zawarty u Mariusza

Supported gas meters:
uniSMART (unismart)  

No nic, pozostaje mi bujać się dalej na DVB-T :sob: sam tego nie ogarnę.

Już działam :slight_smile:

Przerzuć się na taki pakiet:

plus

Na razie wersja jeszcze w wersji nieoficjalnej, ale mam nadzieję że niedługo oficjanie pojawi się opcja w tym dodatku do HA.

1 polubienie

Dekodowanie Olka chyba jest do Apatora 16-2, więc raczej z 8 nie zadziała

1 polubienie

Próbowałem, tzn z tym ha-addon’em nie dam rady.

teraz mam taką zwrotkę :smiley:

[17:02:02][I][Info:074]: Package received. Meter ID = 212139
[17:02:02][I][Info:076]: Signal strenght: -74 dB
[17:02:02][I][Info:116]: Incompatible ID

Czyli dokładnie to co na naklejce.

Mam wszystko przygotowane, puki co nie umiem ogarnąć ha_oddon.

zmień jeszcze:

int ApatorID = 0x212139;  

lub jak używasz kodu na 2 liczniki to:

int ApatorID_1 = 0x212139;

Cały czas się wysypuje przy odczycie wody

[17:26:15][D][api.connection:918]: Home Assistant 2022.12.6 (192.168.1.100): Connected successfully
[17:26:28][I][Info:074]: Package received. Meter ID = 135824
[17:26:28][I][Info:076]: Signal strenght: -77 dB
[17:27:03][I][Info:074]: Package received. Meter ID = 212139
INFO 192.168.1.118: Error while reading incoming messages: Error while reading data: [Errno 104] Connection reset by peer
INFO 192.168.1.118: Ping Failed: Error while reading data: [Errno 104] Connection reset by peer
INFO Disconnected from ESPHome API for 192.168.1.118
WARNING Disconnected from API
INFO Successfully connected to 192.168.1.118
[17:27:15][D][api:102]: Accepted 192.168.1.100
[17:27:15][D][api.connection:918]: Home Assistant 2022.12.6 (192.168.1.100): Connected successfully

Też bym chciał bardziej szczegółowy opis bo : https://opengraph.githubassets.com/e54f6d1d1478e79c33d2e03ef56affb7ab1944aaef9ec6bd16fa5eb42a6b2902/MariuszWoszczynski/ESPhome-APATOR-2-meters-reader wali kosmicznymi błędami :slight_smile: Poza tym po paru minutach wiesza się i przestaje odczytywać pakiety. Myślałem że to może wina tego że używam wemosa d1 mini, przelutowałem na nodemcu i to samo :frowning:

Do mojego pakietu mogę przygotować opis późnym wieczorem.

1 polubienie

Jak nie masz komunikatu Incompatible ID, to znaczy, że z ID jest już ok i wchodzi do dekodowania.
Resetowanie znaczy że dokodowanie nie daje rady przy tych licznikach.

Musisz w takim razie przejść na rozwiązanie Szczepana z wmbusmeters

1 polubienie

Bardzo bym prosił :slight_smile: Daleko mi do Waszej wiedzy więc bazuję na gotowcach.