Zapis zdarzeń do zewnętrznej bazy danych

Na 100% to nie jest problem z moją bazą. Mimo ustawień zapisu więcej niż 10dni, bramka zapisuje tylko ostatnie 10dn. @jolka i @Celina wiem, że jesteście mocno zapracowani ale jak można prosić o zapisanie do to-do i sprawdzenie wolnych chwilach to będę wdzięczny :wink:

Niestety muszę potwierdzić obserwacje Tomasza.
Sprawdziłem u siebie plik .ais_db_settings_info i jest w nim to czego oczekiwałem:
"dbKeepDays": "100"

Pewnie jest gdzieś inny hardcode, którego podczas ostatniego fixowania nie zauważyłem.

Zgłoszę do sprawdzenia :slight_smile:

1 polubienie

Ale skoro tyle osób to odnotowało to coś jest na rzeczy - sprawdzimy to bardziej.

PS
Tak jak pisaliśmy Darkowi @Iron nic tam nie widzimy żeby się zmieniło w tej logice czyszczenia bazy.

No może po za tym, że HA też już czyści codziennie a kiedyś tego nie robili z automatu - wystarczyło zacząć sprzedawać bramkę Blue :wink: i zmieniła się perspektywa pisania softu :wink: Doskonale to rozumiemy.

Zrobimy jakiegoś większego testa na danych i cofnięciu się w czasie.

@Tomasz @Stravi @Iron

zrobiliśmy co się dało - i nic - teoretycznie wszystko działa jak należy
Ale zrobimy test u Was. Dodaliśmy do components/recorder/purge.py kilka dodatkowych komunikatów z logami:

w logach pojawią się takie wpisy WARNING:

2021-02-23 14:18:00 WARNING (Recorder) [homeassistant.components.recorder.purge] Purge days 1000
2021-02-23 14:18:00 WARNING (Recorder) [homeassistant.components.recorder.purge] Purging states and events before target 2018-05-30 13:18:00.001068+00:00
2021-02-23 14:19:00 INFO (MainThread) [homeassistant.components.automation.ais_flush_logs] AIS Flush logs: Running automation actions
2021-02-23 14:19:00 INFO (MainThread) [homeassistant.components.automation.ais_flush_logs] AIS Flush logs: Executing step call service
2021-02-23 14:19:00 INFO (MainThread) [homeassistant.components.ais_shell_command] stdout 
2021-02-23 14:19:00 INFO (MainThread) [homeassistant.components.ais_shell_command] stderr rm: cannot remove '/data/data/pl.sviete.dom/files/home/.pm2/logs/*.log': No such file or directory

2021-02-23 14:19:00 WARNING (Recorder) [homeassistant.components.recorder.purge] Purge days 1000
2021-02-23 14:19:00 WARNING (Recorder) [homeassistant.components.recorder.purge] Purging states and events before target 2018-05-30 13:19:00.112632+00:00
2021-02-23 14:26:40 INFO (MainThread) [homeassistant.components.automation.ais_asystent_domowy_witamy] AIS Asystent domowy Witamy: Executing step call service
2021-02-23 14:26:40 INFO (MainThread) [homeassistant.components.automation.ais_asystent_domowy_witamy] AIS Asystent domowy Witamy: Executing step delay 1:40:00

WARNING-i będzie widać też w aplikacji:

Baza jest czyszczona codziennie 2 razy:

  1. o 4:12 rano przez HA

  2. o 5:15 rano przez AIS

Czyścimy po HA, bo dodatkowo przepakowujemy bazę (żeby zmniejszyć jej rozmiar) i czyścimy wtedy logi na bramce.

Jeżeli jesteście na BETA, to zróbcie proszę aktualizację Darka. Dajcie znać jutro, co pojawiło się w logach w temacie recorder.purge

PS
Właśnie wydaliśmy wersję na BETA.

image

2 polubienia

A co macie w configuration.yaml ?

Wczoraj dodałem purge_keep_days: 660 i nadal mam od 12.02 czyli nie ubył jeden dzień. Czy przypadkiem HA nie ma automatycznie 10 dni jeśli nie ma tego wpisu w konfigu ?

recorder:
  purge_keep_days: 660
  exclude:
    domains:
      - automation
      - weblink
      - updater
    entities:
      - sun.sun
      - sensor.last_boot
      - sensor.date
    event_types:
      - call_service
  include:
      domains:
        - sensor
        - switch
        - binary_sensor

U mnie coś ta wersja jest pamięciożerna. Macie tak samo?

2|ais | 2021-02-23 20:59:14 WARNING (SyncWorker_19) [homeassistant.components.ais_ai_service] trim_memory 15
2|ais | 2021-02-23 20:59:14 WARNING (SyncWorker_19) [homeassistant.components.ais_ai_service] TRIM_MEMORY_RUNNING_CRITICAL, used memory: 690
2

image
image

Nie mam wpisu w configuration.yaml, czyli recorder konfiguruje się przez UI.

tak, to chyba tu jest “pies pogrzebany”, my nadpisujemy tą domyślną konfigurację HA, naszymi ustawieniami z aplikacji… ale jak widać nie do końca.

@Iron zostaw proszę ten wpis purge_keep_days: 660 w ustawieniach rekordera i zobaczymy czy to pomoże.

To jest dowód, że jest błąd - podczas czyszczenia raz zostawiamy 100 dni a następnym razem tylko 10:
image

ciekawe kto robi to źle, jeżeli o 4:12 było 10 to HA a jeżeli o 5:14 to AIS
sprawdzimy to u nas i poprawimy

dzięki za pomoc :+1:

żeby nie było tak prosto to u nas na dom-demo zalogowało się OK,

2 razy (o 412 i o 5:15) tak samo 100

@Stravi pokaż co masz w pliku ~/AIS/.dom/.ais_db_settings_info

cat ~/AIS/.dom/.ais_db_settings_info

na dom-demo jest coś takiego:

{
"dbEngine": "SQLite (file)", 
"dbDrive": "dysk_d1", 
"dbUrl": "sqlite://///data/data/pl.sviete.dom/files/home/dom/dyski-wymienne/dysk_d1/ais.db",
"dbPassword": "", 
"dbUser": "", 
"dbServerIp": "",
 "dbServerName": "",
"dbKeepDays": "100", 
"errorInfo": ""
}

U mnie tak to wygląda:

Zostawiłem i nie usunęło historii z 12.02 dziś rano.

image

1 polubienie

Poprawka do tego nie zmieściła się już w wersji Darek, będzie w wersji Ewa, Ela czy jakoś tak :wink:
W ramach obejścia zastosujcie rozwiązanie Darka → purge_keep_days: 660 w ustawieniach rekordera

2 polubienia

Potwierdzam dalej to działa i nie usuwa historii do 10 dni…

1 polubienie

Witam,
Zainstalowałem sobie MySQL na dedykowanej maszynie. Utworzyłem bazę, użytkownika i mogę się podłączyć z innego komputera. Gdy próbuję połączenia z bramki mam komunikat jak na załączonym obrazku. Jakiś pomysł jak to rozwiązać?

Doinstaluj sterowniki zgodnie z dokumentacją:

1 polubienie

Spróbuj bez podawania portu. Włącz w drugim oknie logi AIS, może coś więcej się dowiesz. Nie pamiętam czy bazę tworzyłem ręcznie czy robił to mechanizm bramki.

Doinstalowałem zgodnie z opisem. Zrestartowałem bramkę ale błąd pozostał. Próbowałem z portem 3306 oraz bez. Jakiś pomysł co jeszcze sprawdzić?

Z konsoli wpisałem polecenie: mysql -u ais2 -h 192.168.1.128 -p
i udało się połączyć z bazą.

1 polubienie

Witam historia działa tylko przez 10 dni później już nie ma historii jaka może być przyczyną Mariadb