Raz plik ais.db ma pojemność zerową, innym razem są w nim zgromadzone dane ale w oknie historii pokazuje się napis: “Wczytywanie historii…” który nigdy nie znika.
Jeśli plik bazy ma objętość zerową to go kasuję i po ponownym uruchomieniu historia zaczyna działać poprawnie przez kilka dni i ponownie się uszkadza.
PS: do działania zewnętrznej bazy danych potrzebny jest ciągle działający internet. Niestety niekiedy zdarzają się odłączenia i wtedy historia zaczyna być dziurawa.
A karty niekiedy zawodzą. Tak źle i tak niedobrze…
Przydałaby się niezawodna baza domowa.
PS2: A może dałoby się zmodernizować bramkę, aby zapisywała do RAM dane godzinne i co ten pewien czas dopiero zapisywała na dysk lub zewnętrzną bazę? Taka forma bufora aby przedłużyć życie karty SD.
Ja od kilku miesięcy mam historie i bazę danych zapisywana na kartę pamięci i działa elegancko. Jakby co to mam ustawione SQLite (file). Zero problemów z wczytywaniem
Przez chwilę straciłem cierpliwość do tego problemu.
Winne jest oprogramowanie, ale nie wiem które bałagani.
Teraz mam tylko to, dalej występuje problem:
Czy integracja android_tv_127_0_0_1 wpływa na zapis lub odczyt historii?
I taki fragment logów:
The 'birth_message' option near /data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/ais-dom-config/configuration.yaml:57 is deprecated, please remove it from your configuration
The 'broker' option near /data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/ais-dom-config/configuration.yaml:57 is deprecated, please remove it from your configuration
The 'discovery' option near /data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/ais-dom-config/configuration.yaml:57 is deprecated, please remove it from your configuration
The 'will_message' option near /data/data/pl.sviete.dom/files/usr/lib/python3.9/site-packages/homeassistant/ais-dom-config/configuration.yaml:57 is deprecated, please remove it from your configuration
Setup of recorder is taking longer than 300 seconds. Startup will proceed without waiting any longer
Uncaught thread exception
Error executing query: (sqlite3.OperationalError) disk I/O error (Background on this error at: https://sqlalche.me/e/14/e3q8)
Ended unfinished session (id=6 from 2023-07-07 15:49:08.015793)
The system could not validate that the sqlite3 database at ///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_F477-1F07/ais.db was shutdown cleanl
PS: próbowałem rozmawiać z “producentem” bramki, ale do dzisiaj nie otrzymałem odpowiedzi jak sobie z tym poradzić.
O ile w tych logach jest prawda (bo bywa, że błędy są oderwane od rzeczywistości ale raczej niezbyt często), to bezpośrednią przyczyną jest
czyli najprawdopodobniej błąd nośnika (nie piszesz gdzie zapisujesz bazę danych, ale tam gdzie zapisujesz nośnik może być uszkodzony, jeśli to wbudowane eMMC to słabo, jeśli baza jest na karcie SD, to ją wymień na sprawną, jeśli baza jest w RAM-dysku - nie wiem skąd mi to przyszło do głowy? raczej nie jest, to pomoże zwyczajny restart - dane oczywiście zostaną utracone).
Sądząc po tym przyczyną mógł być zanik zasilnia (lub tzw. ruskie resety, czyli świadome odcięcie zasilania niezamkniętego systemu)
Integracja z Android-tv (w tym wypadku jak sądzę chodzi o integrację z Androidem na samej bramce) ani żadna inna integracja teoretycznie nie może być przyczyną fizycznych błędów zapisu.
Poza zasadniczym tematem ale też istotne.
Oprócz tego masz jakieś przestarzałe wpisy w configuration.yaml, ale co konkretnie, to już musisz sam wiedzieć, na mój gust może chodzi o konfigurację brokera MQTT lub integrację Zigbee2MQTT.
Jak w maju pisałem, kupiłem nową kartę SD na której mają być logowana: historia i logi bramki.
Czy na starej karcie SD, czy na nowej całość przez pewien czas funkcjonuje dobrze, a po pewnym czasie logowanie się uszkadza.
Możliwe, że płyta gówna bramki jest uszkodzona i powoduje błędy zapisu na karcie. Ale nie wiem jak to sprawdzić.
Dlatego chciałbym najpierw się dowiedzieć, który program/skrypt tworzy dane i zapisuje je na SD?
Dodam jeszcze, że nigdy nie zauważyłem zaników prądu w domu.
Skoro wymieniałeś kartę, to chyba umiesz zweryfikować poprawność jej działania (zakładam, że nie poleciała od razu do śmietnika), ale jeśli nie masz pewności, to przykładowe rozwiązanie dla Windowsa - po sformatowaniu np. tym
(w sumie na pokładzie bramki jest Android więc powinna być raczej zwyczajnie sformatowana? na fat32?)
należy wykonać test zapisu na całej powierzchni nośnika np. tym
Jeśli chodzi o HA i karty TF czy tam SD to w 2 instalacjach HA (kilka lat temu) właśnie zapisami bazy danych zajechałem łącznie 3 karty, zanim się przesiadłem na ssd (które dają możliwość monitorowania stanu nośnika).
Niestety nie mam bramki by wiedzieć dostatecznie więcej z własnego doświadczenia.
A co do skryptu, to hmm homeassistant (core) pisze do bazy (w ais nazwy mogą być nieco zmienione - zajrzyj w źródła), jeśli jesteś programistą to może sobie to wygrzebiesz w kodzie źródłowym konkretny skrypt (ja nie jestem)…
jakkolwiek moim zdaniem szukasz dziury w całym (przez parę lat od kiedy używam HA nie trafiłem ani razu na problem zapisu do bazy poza przypadkami uwalonego nośnika).