Zapis zdarzeń do zewnętrznej bazy danych

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:

A czy to normalne, że jak wyjmuje pendrive na który robię zapis zdarzeń to bramka się restuje?

Bramka się restartuje (Android) czy tylko usługa Home Assistant, która nie rozumie, że zniknął nagle dysk, do którego ma zapisywać zdarzenia?

PS
Jeżeli wyciągasz pendrive w trakcie działania systemu i zapisuje (logi i/lub zdarzenia do bazy) do plików, które są na tym pendrive… to tak jakbyś odkręcał koło w jadącym samochodzie :wink: … albo wyciągał dysk z działającego komputera bez jego wyłączenia…
Wyciąganie dysku podczas, gdy coś do niego pisze może powodować utratę / uszkodzenie danych na tym dysku.

1 polubienie

w moim przypadku po wyjęciu pendrive w takim stanie jak niżej czyli po odłączeniu zapisu bramka się restartuje

Próbował może ktoś zapisywać zdarzenia do zewnętrznej bazy danych na Synology? Poprzez phpMyAdmin stworzyłem nową bazę, ale jak się do niej połączyć?