Od dłuższego czasu mam uruchomiony licznik wody na ESPHome wm-bus , z którego mam już zarejestrowane statystyki.
Równolegle ma zrobiony odczyt nanoCUL>wmbusmasters > mqtt - chcę zrezygnować z ESPHome podmienić encję tak aby rejestrator się nie “połapał”, że pracuje z innym urządzeniem.
Jest to możliwe i na co zwrócić uwagę?
Zobacz na Recorder: Import statistics 👻
z pakietu Spook
https://spook.boo/
https://spook.boo/recorder
Nie wiem czy to zadziała musisz sobie sprawdzić.
Dzięki… to jest narzędzie dla wyczynowców, spróbowałem ale za mało wiem.
Próbowałem prostego sposobu ze zmianą nazw encji ale to było zbyt proste aby mogło się udać.
Tu się potwierdza moja filozofia aby wszystko co się da integrować przez MQTT - wtedy nie byłoby problemu.
YAML przykład
service: recorder.import_statistics
data:
has_mean: false
has_sum: true
statistic_id: sensor.some_energy_sensor
source: spook
unit_of_measurement: kWh
stats:
end: "2023-07-03 21:00:00+02:00"
sum: 123123
service: recorder.import_statistics
data:
has_mean: false
has_sum: true
statistic_id: sensor.gas_meter
source: recorder
name: "NULL"
unit_of_measurement: CCF
stats:
- start: "2023-05-01T00:00:00+06:00"
state: 517.76
sum: 0.94
Problem rozwiązał się sam - na skutek moich eksperymentów straciłem statystyki i już nie ma co odtwarzać
Jednak problem pozostaje - wyobraźmy sobie, że zbieramy odczyty i po czasie na skutek awarii musimy zmienić urządzenie. Funkcjonalnie takie same, jednak zintegrowane inaczej (np. gniazdko WiFi <> ZigBee).
Jak się przed taki wypadkiem zabezpieczyć na przyszłość?
Zawsze możesz cofnąć bazę z backupu.
Nauczka na przyszłość - aby podobna sytuacja się nie powtórzyła zdefiniowałem template
- name: Woda Temp
unique_id: woda_template
icon: mdi:water
state_class: total_increasing
state: "{{states('sensor.licznikwody_licznik_wody')}}"
unit_of_measurement: "m³"
device_class: water
co by teraz się nie przydarzyło podmienię tylko encję w state.
W weekend nie zdążyłem ale jutro czeka mnie podobna podmiana encji licznika wody z MQTT na ESPHome, zobaczymy czy się uda .
Zasada jest prosta: po usunięciu encji (urządzenia) i ponownym jej dodaniu, statystyki nie usuwają się, przykład poniżej - usuniecię wieczorem i ponowne dodanie czujnika Xiaomi zintegrowanego po BTHome - wszystkie statystyki zachowane:
Do tej pory odczytywałem stan licznika wody za pomocą sticka SDR korzystając z dodatku Wmbusmeters (W-MBus to MQTT), nowy cel: używać ESP32 z CC1101 z ESPHome bez utraty statystyk. Na początek oczywiście backup HA w razie niepowodzenia operacji, obecna nazwa encja apator_584
z integracji MQTT musi pozostać docelowo niezmienna dlatego encje z ESPHome tymczasowo zacząłem nazywać stosując prefix aapator_584
. Po potwierdzeniu, że wszystkie encje z ESPHome są odczytywane prawidłowo, skasowałem z konfiguracji HA (plik .yaml) encje MQTT, sprawdzenie konfiguracji i szybkie przeładowanie konfiguracji HA, encje stają się niedostępne więc można je skasować z GUI w HA, potem edycja pliku konfiguracyjnego ESPHome i poprawa encji aapator_584
na prawidłowe apator_584
, kompilacja i poprawne encje pokazują się w GUI HA, wszystkie statystyki zachowane:
Na ponizszym wykresie wszystko ładnie widać: poprzedni poziom sygnału, potem dziurę w wykresie - brak encji z powodu przepinanie konfiguracji, a potem nowy poziom sygnału z ESP32:
@macek … gdzie byłeś jak Cię nie było ?
Robiłem wg. metody zmiany nazw jednak w innej kolejności - gdy teraz to analizuję to sam sobie namieszałem
… najpierw przemianowałem (to był błąd) starą a następnie dodałem nową z poprzednią nazwą.
Rozmyślałem, testowałem jak to zrobić bo ESPHome z C1101 miałem od dawna ale nie było czasu do tego podejść a teraz już musiałem bo czas na rozwiązanie problemu sie skończył:
Ostrzeżenie czekało sobie 7 miesięcy na moją reakcję . Dodatkowo muszę jutro zrobić update HA do wersji z lutego bo pojutrze pierwsze wydanie z marca .