Zapis zdarzeń do zewnętrznej bazy danych

Po wczorajszej aktualizacji oprogramowania bramki do 1.14.4 historia stracona.
Zapis mam od nowa. Danych sprzed aktualizacji nie widzę w historii.

Może spróbuj dodać “recorder” i zobaczysz przy następnej aktualizacji jak będzie.

U mnie ciągle problemy z zapisem.
Podejrzewałem że może problemem jest zapis na dysk SSD dlatego zmieniłem zapis na Pendrive, sformatowałem go na FAT32. Wczoraj zaktualizowałem AIS do najnowszej wersji i historia się zachowała.
Dzisiaj zrobiłem restart bramki i historia jedzie od zera :frowning:
Dzieje się to losowo, czyli co któryś restart bramka kasuje historie.

Baza danych zajmuje 0 KB
1
Ustawienia zapisu zdarzeń systemu tu wydaje się być OK

Logi zapisuje się bez problemu.

Zapis “recorder” nic nie zmienia.
Podobnie jak Tomasz uważam, że problem jest prawdopodobnie na styku HA bramka sprzętowo. Gdzieś siedzi pewnie :bug:

Sprawdziłem przed chwilą u siebie. Wielkość bazy mam 160MB ale w AIS widać historię tylko od dzisiaj czyli od momentu jak zrobiłem aktualizację. Hmm…

Pisałem post i nie zauważyłem twojego wpisu :slight_smile:

Ta recorder nie ma znaczenia.

Tradycyjnie w takich przypadkach na początku podejrzewam custom components .
@Cezary.K masz jakieś u siebie ?
Ja mam:
4

Wcześniej miałem jedynie Extalife. Od paru tygodni jest jako dodatek natywny (integracja od AIS).
Jeden węzeł z ESPHome i takie tam. Nic spoza listy integracji.

Czyli to raczej nie custom components, problem jest gdzie indziej.

Cześć,

tak, niestety to w naszym kodzie… jak przenosiliśmy konfigurację do demo… to wdarł się nam mały błąd :bug:

chodzi o linijkę 172 w pliku /data/data/pl.sviete.dom/files/usr/lib/python3.7/site-packages/homeassistant/components/recorder/__init__.py

jest:

with open(ais_files.G_DB_SETTINGS_INFO_FILE) as json_file:

poprawnie powinno być:

with open(hass.config.config_dir + ais_files.G_DB_SETTINGS_INFO_FILE) as json_file:

już to poprawiłem w github, ale sprawdzamy jeszczcze czy to wszystko

Wypuścimy online fix-a* na to chyba jeszcze dzisiaj.
*podczas gdy bramka pyta nasz serwis o aktualizację, mamy możliwość wykonania zdalnie krytycznej łatki na bramce - nareszcie :wink: mamy powód żeby ten mechanizm przetestować

Oczywiście można też samemu poprawić i po restarcie będzie OK.

Wystarczy w konsoli wkleić coś takiego:

sed -i 's/with open(ais_files.G_DB_SETTINGS_INFO_FILE) as json_file:/with open(hass.config.config_dir + ais_files.G_DB_SETTINGS_INFO_FILE) as json_file:/' /data/data/pl.sviete.dom/files/usr/lib/python3.7/site-packages/homeassistant/components/recorder/__init__.py

sed to taki edytor w linux, który potrafi zamienić coś w pliku “w locie”

a następnie zrestartować serwis ais

pm2 restart ais

po tym powinno być już OK
znaczy, u nie już działa :wink:

Dzięki za diagnostykę, poczekam ze zmianą samodzielną i pomogę przetestować online fix-a * . Zobaczymy czy zadziała w locie…

jeżeli piszesz do bazy w pliku i ten plik nie jest uszkodzony to raczej nic straconego
przejdz w konsoli do lokalizacji pliku

cd ~/dom/dyski-wymienne/dysk_xxxx

tam jest plik ais.db

ls ais.db

ten plik możesz sobie otworzyć jakimś programem który rozumie SQLite np. tym:

https://sqlitebrowser.org/

1 polubienie

Dzięki, testuję zapis od niedawna. Nic (na razie) cennego nie tracę. Na pewno taka wiedza przyda się również innym… :wave:t2:

dzięki - już możemy sprawdzać

przejdz do aktualizacji i wywołaj sprawdzenie dostępności aktualizacji
image

powinna pojawić się nowa wersja

zainstaluj aktualizację, potrwa to tylko sekundę
image

po tym trzeba zrestartować serwis ais / bramkę

pm2 restart ais

albo z aplikacji

daj znać czy jest OK?

U mnie poszła aktualizacja bez problemu:
1

Dzięki za szybkie znalezienie problemu :+1:t2:
Baza od razu “urosła”
SharedScreenshot

1 polubienie

Poszło bez problemu. Dane w historii mam sprzed aktualizacji, czyli jest OK. Zapis w/g ikonek w oknie konfiguracji, pompuje się do wskazanego dysku wymiennego.

1 polubienie

super - dzięki za info :+1:

U mnie też jest już OK :+1:t2:

Jeszcze coś się u mnie dzieje nie tak…
Nie zawsze ładują się wykresy historii, zapis jest, baza rośnie.
Czyszczenie cache czasem pomaga, czasem powoduje brak wykresów:

jeszcze logi z bramki:

To chyba będzie to, sprawdzę jak będę w domu.

database is locked to znany problem w HA

Jeden z powodów dla których nie pozwalamy na logowanie i bazę na wewnętrznym dysku na urządzeniu jest taki, że to może powodować problemy.

System jest zajęty bo zapisuje do pliku statusy raportowane przez setki encji.
Aplikacja działa wolniej bo system jest zajęty i dlatego, że musi renderować te dane na wykresach.

Generalnie nie zrobisz jakiejś super bazy danych w pliku (tak działa SQLite).

Jak Ci zależy na logowaniu i historii to włącz logowanie do zewnętrznej “prawdziwej” bazy danych, nie do pliku… Możliwe, że nie da się zrobić serwera bazodanowego na urządzeniu za 199 zł… bo tyle mniej więcej kosztuje godzina pracy programisty Oracle :wink: