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

To podpowiedz jak to wsadzić i gdzie

Zerknij tu:

orzesz Ty…

Jest ramka ok (50L), ta wartość 654321 to był jakiś testowy wpis

Ale rozłącza się esp

Strzelam że gdzieś za długo siedzi w tej pętli i nie ma czasu na pozostałe zadania (api itp).

Wygląda na to, że działa, jak jest sam Apator w pobliżu.
Jest problem jak w okolicy mam nakładki IZAR, to właśnie ten kod nie radzi sobie z dekodowaniem ramek Izara i się resetuje…

Takie odczyty w terminalu:

A tu jak odczyta tylko Apatora:

Stan licznika i ID sa w Home Assistant, więc można uznać, że działa.

Czy ktoś ma namiar na sprzedawcę nakładek Izar? Nie koniecznie nowe.

No niestety z apatorem i ESP32 lekko nie jest… po zmianach w platformio.ini wywala się przy kompilacji na #include <memory.h>, gdzieś znalazłem ,że należy zmienić przy esp32 na strings.h, niby się kompiluje,ale po wgraniu i uruchomieniu mamy restarty

20:09:24]Ramka OK Attempting MQTT connection...connected
[20:09:24]wysłana
[20:09:50]CORRUPT HEAP: multi_heap.c:431 detected at 0x3ffd1688
[20:09:50]abort() was called at PC 0x4008cb20 on core 1
[20:09:50]
[20:09:50]ELF file SHA256: 0000000000000000
[20:09:50]
[20:09:50]Backtrace: 0x400887f0:0x3ffb1c80 0x40088a6d:0x3ffb1ca0 0x4008cb20:0x3ffb1cc0 0x4008d0fc:0x3ffb1ce0 0x40081bc9:0x3ffb1d00 0x40081bfa:0x3ffb1d20 0x40086905:0x3ffb1d40 0x4000beaf:0x3ffb1d60 0x40086943:0x3ffb1d80 0x4000bef5:0x3ffb1da0 0x40143976:0x3ffb1dc0 0x4014abcd:0x3ffb1e20 0x400d3d17:0x3ffb1e40 0x400d3495:0x3ffb1ea0 0x400d3771:0x3ffb1ec0 0x400d3799:0x3ffb1ee0 0x400d2631:0x3ffb1f00 0x400d2301:0x3ffb1f20 0x400e37a9:0x3ffb1fb0 0x40089a7e:0x3ffb1fd0
[20:09:50]
[20:09:50]Rebooting...
[20:09:50]ets Jul 29 2019 12:21:46
[20:09:50]
[20:09:50]rst:0xc (SW_CPU_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)
[20:09:50]configsip: 0, SPIWP:0xee
[20:09:50]clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
[20:09:50]mode:DIO, clock div:2
[20:09:50]load:0x3fff0018,len:4
[20:09:50]load:0x3fff001c,len:1044
[20:09:50]load:0x40078000,len:8896
[20:09:50]load:0x40080400,len:5828
[20:09:50]entry 0x400806ac

obstawiam, że to przez błędne zastąpienie memory.h, a może coś jeszcze innego ?

Ramki Izara nie są kodowane (na tym poziomie co Apatora). Musisz dać jakiegoś if’a aby dla Izar’a (oraz jakbyś chciał to też Maddaleny) nie odpalał tego dekodowania.

tylko ja nie bardzo wiem jak rozpoznać czy to izar czy apator i jak to ogarnąć w kodzie

angler- znalazłem TU, ale cena z kosmosu. U mnie w wodociągi mogą zamontować za 310zł (cena z montażem), ale nie sprzedają oddzielnie

Ponieważ ma to być dodatek do ESPHome to poprawnie powinno być to zdefiniowane w konfiguracji tego dodatku. Jeden wpis dla każdego licznika z ID oraz kluczem. Potem w kodzie tylko sprawdzanie czy jest klucz.
Coś na kształt konfiga do wmbusmeters’a

Chyba ID nie są kodowane (muszę to jeszcze sprawdzić w domu).

Dooobra, ogarnąłem dziada.
Jutro dokończę i wrzucę repo do obsługi Apatora przez esphome :slight_smile:

6 polubień

Z tego co znalazłem kod producenta jest na pozycjach 5-8 ramki,w wypadku Apatora to 0106

W samym repo wmbusmeters jest tez ściąga

Kod producenta to chyba ID. W Apatorze ID jest naklejone na nakładce, więc od razu mozna wpisać w konfig.
W przypadku izara trzeba najpierw odczytać, bo nigdzie nie widać na nakladce, przynajmniej u mnie.

Właśnie skończyłem lutować kabelki :slight_smile: Czekam z niecierpliwośćią aby sprawdzić czy działa nie tylko u Ciebie :slight_smile:

ID to ten numerek na naklejce, kod producenta to coś innego. W ramce wMBus ID to pole A a kod to pole M

W przypadku wmbusmeters’a są to pola kod producenta dll-mfct, ID dll-id
Oba nie są kodowane, więc najłatwieə jest rozpoznawać typ licznika po typie producenta.

Zamieniłeś miejscami gdo0 z gdo2 w stosunku do opisu w cofig Olka?

Nie wiem z czego to wynika.
Najlepiej wrzuc sobie na początek do esp repo Olka i zobaczysz czy sprzęt hula

Tamten opis jest do starej wersji biblioteki (w kodzie była literówka), w nowej wersji już jest wszystko poprawnie - i pinologia i kod.

Poprawcie sobie wszędzie na nowszą wersję libki.

Szczepan, a gdzie u Ciebie w bibliotekach jest konfiguracja? Ja wcześniej wywaliłem config.cpp i konfigurację pinów wrzuciłem sobie do rf_mbus.hpp. Teraz wywaliłem wszystkie biblioteki mbus, które miałem, wrzuciłem linka do Twojego repo (czyli nowy rf_mbus.hpp) i nadal mi wszystko działa, z zamienionymi sprzętowo GDO0 z GDO2. Spodziewałem się, że po podmianie bibliotek będzie trzeba z powrotem zamienić.
Chyba że teraz jest tak, że kolejność GDO nie ma znaczenia?

Teraz musisz przekazać jako parametry.
Kolejność GDO ma znaczenie – teraz po prostu jest poprawna. Musisz mieć polutowane zgodnie z opisem na CC1101.

Kumam, po prostu esphome sobie po kompilacji gdzieś skopiował poprzednie biblioteki. Wyczyściłem wszystko i od razu wyszły błędy, bo ja rf_mbus_init wywoływałem bez parametrów:)

bool rf_mbus_task(uint8_t* MBpacket, int &rssi, byte gdo0, byte gdo2)

co to jest &rssi?