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
Ta recorder
nie ma znaczenia.
Tradycyjnie w takich przypadkach na początku podejrzewam custom components .
@Cezary.K masz jakieś u siebie ?
Ja mam:
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
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 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
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:
Dzięki, testuję zapis od niedawna. Nic (na razie) cennego nie tracę. Na pewno taka wiedza przyda się również innym…
dzięki - już możemy sprawdzać
przejdz do aktualizacji i wywołaj sprawdzenie dostępności aktualizacji
powinna pojawić się nowa wersja
zainstaluj aktualizację, potrwa to tylko sekundę
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:
Dzięki za szybkie znalezienie problemu
Baza od razu “urosła”
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.
super - dzięki za info
U mnie też jest już OK
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
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 … 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.
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ć?