Kompilacja przebiegła pomyślnie w takiej konfiguracji.
Tak jest ok?
Chyba ok. Nie wiem czy te numery jako nazwy nie powinny być w cudzysłowie
Ja mam bez cudzysłowia i działa. Problemem natomiast jest że co kilka odczytów pojawia się błąd w postaci jakiś kosmicznych liczb albo ujemnych. Przy następnym odczycie wszystko wraca do normy ale na wykresie pik pozostaje.
True. W Izarze też tak miałem, więc zrobiłem filtr:
if ((waterUsage_temp > 0) and (waterUsage_temp < 10000000)) { //filtrowanie wartości mniejszych od 0 //to już nie i większych niż 1000 litrów niż poprzednia wartość
waterUsage = waterUsage_temp;
}
W apatorze spróbuj podmienić tego ifa w pliku h:
if (decrypt_TPL_AES_CBC_IV(frame, pos, key, iv, &num_encrypted_bytes, &num_not_encrypted_at_end)) {
std::vector<uchar>::iterator fv;
fv = std::find(pos, frame.end(), 0x10);
if (fv != frame.end()){
int v;
int v_temp;
memcpy(&v_temp, &fv[1], 4);
if ((v_temp > 0) and (v_temp < 10000000)) { //data filter
v = v_temp;
}
ESP_LOGI("Info", "Meter state: %d L", v);
my_sensor_state->publish_state(v);
my_sensor_id->publish_state(MeterID);
}
}
Wielkie dzięki!
Sprawdzę ale dopiero jutro bo wszystkie nadajniki po 17 poszły “spać” i nie wysyłają żadnych danych (mieszkam w bloku)
Przy dwóch licznikach Apator ten if wygląda tak:
if (decrypt_TPL_AES_CBC_IV(frame, pos, key, iv, &num_encrypted_bytes, &num_not_encrypted_at_end)) {
std::vector<uchar>::iterator fv;
fv = std::find(pos, frame.end(), 0x10);
if (fv != frame.end()){
int v;
int v_temp;
memcpy(&v_temp, &fv[1], 4);
if ((v_temp > 0) and (v_temp < 10000000)) { //data filter
v = v_temp;
}
memcpy(&v, &fv[1], 4);
ESP_LOGI("Info", "Meter state: %d L", v);
if (MeterID == ApatorID_1) {
Apator_state_1->publish_state(v);
Apator_id_1->publish_state(MeterID);
}
if (MeterID == ApatorID_2) {
Apator_state_2->publish_state(v);
Apator_id_2->publish_state(MeterID);
}
}
}
Uaktualniłem obydwa repozytoria
Czy to dotyczy również połączenie w przypadku odczytu z Izar’a?
Pytanie dot. repozytorium:
ESPhome-IZAR-meter-reader
A ja w moim rozwiązaniu z bramką (obojętnie czy samodzielną czy jako komponent ESPHome) i wmbusmetersem nie mam takich problemów - a całość juz ponad rok chodzi.
W którym dokładnie kodzie macie te piki? Liczycie tam CRC dla ramki?
U mnie rok z Izarem to wychodzi ponad 3 miliony poprawnych pomiarów na jeden licznik (a słucham dwóch), plus z 6 miesięcy z Apatorem.
Nie, w przypadku Izara, nie trzeba podłączać GDO0 i GDO2
To są jakieś błędy wynikające z dekodowania w ESP, a ja korzystam z gotowych bibliotek Maćka (Izar) i Olka (Apator). Nie wnikam jak to dekodują, aż tak się nie znam.
Esphome nie ma na to wpływu.
Wszystko u mnie działa, tylko, c że HA do sensora zuzycia wody wymaga jednostki m3 (i w tej jednostce też licznik prezentuje sam na sobie), wiec wypadało by w kodzie podzielić wynik /1000 przed wysłaniem do HA
Jednak pobudziły się te moje śpiochy ale niestety filtr nie działa na pewno dla liczb ujemnych bo już jeden i drugi złapał minus kosmos. Plusowych kosmosów na razie nie łapią
To w pliku h działaj.
Jak by ktoś reflektował to mam do sprzedania nówkę licznik wody zimnej z nakładką Apatora. Przebieg 50L. Plomba na nakladce.
Cena 150zł + wysyłka
Tak zrobiłem, w .h dodałem /1000 i zmieniłem w yaml jednostke
W izarze taki filtr mi pięknie działa. Wysyla do HA tylko wtedy gdy wartość jest w zakresie od 0 do 10000000.
W apatorze nie mam jak sprawdzic, bo nie wysyła śmieci, ale zasada ta sama, więc dziwne
U mnie też waliło wartościami w kosmos, wgrałem filtr, dam znać czy pomogło
Tak to działa pieknie
A i zrezygnowałem z /1000 w .h, zrobiłem template sensor w którym to robię, bo i tak trzeba było dodać kilka atrybutów, żeby dashboard z energią zobaczył to jako wskazanie zuzycia wody
Ja nadal będę zachwałał pełnego wmbusmeters’a.
Poniżej statsy z mojej konfiguracji (CC1101+ESP32, komponent do ESPHome+wmbusmeters jako ha-addon), żadnych pików:
@_Szczepan co zrobić aby mieć pewność, że ha_addon jest z Twojej przerobionej wersji?
Chyba nakładka na wodę przestała mi działać, żadnych odczytów od jakiegoś czasu nawet na DVB-T, gaz odczytuje cały czas.
Obecnie to tylko samemu wyedytować te pliki w swojej wersji repo addona (albo lokalnie) i zainstalować go.
Po “staremu” z rtl433 też będzie działać?
Jak będziesz wysyłał telegramy z niego po sieci to powinno działać.