Jak podmienić encje bez utraty statystyk?

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ć.

2 polubienia

Dzięki… to jest narzędzie dla wyczynowców, spróbowałem ale za mało wiem. :stuck_out_tongue_winking_eye:
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.

:slight_smile:

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

Znaleziony https://community.home-assistant.io/t/import-old-energy-readings-for-use-in-energy-dashboard/341406/67?page=4

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ć :sweat_smile:

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 :wink:.

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:

2 polubienia

@macek … gdzie byłeś jak Cię nie było ? :wink:
Robiłem wg. metody zmiany nazw jednak w innej kolejności - gdy teraz to analizuję to sam sobie namieszałem :unamused:
… 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ć :grin: 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ę :frowning:. Dodatkowo muszę jutro zrobić update HA do wersji z lutego bo pojutrze pierwsze wydanie z marca :wink: .

1 polubienie