Opis jak dodać zapis danych do zewnętrznej bazy na przykładzie MySQL
Jest to opis przeznaczony dla osób, które chciałyby wykorzystać Asystenta domowego do logowania większej ilości danych do zdalnej bazy. Może to być wykorzystane np. w wynajmowanym apartamencie do rejestrowania i analizowania poziomu zużycia mediów.
W opisie tym pokażemy jak połączyć się ze zdalną bazą w chmurze, tak żeby każdy mógł to zrobić. W ten sam sposób możemy połączyć Asystenta domowego z bazą w naszej lokalnej sieci.
Założenia wstępne
Mamy dostęp do skonfigurowanej i działającej relacyjnej bazy danych, która jest obsługiwana przez SQLAlchemy https://www.sqlalchemy.org/ (zamiana obiektów Pythona na dane nadający się do zapisania do bazy relacyjnej).
W tym przykładzie pokażemy jak skonfigurować bazę działającą na darmowym hostingu https://remotemysql.com/ 100 Mb za darmo
Cześć,
włączyłem logowanie do własnej bazy danych. Co jakiś czas występowały błędy jak na poniższym screenie, dzisiaj postanowiłem się im przyjrzeć.
Wg mnie błędy wynikają z tego, że są zapisywane polskie znaki i któryś silnik ma z tym problem. Miałem kilka input_select’ów z stanami typu “Wyłączony” zmieniłem je na “OFF” i niby ok, ale teraz jest problem z zapisem stanu prognozy pogody, która jest wbudowana w AIS. Problem ze screenu dotyczy słówka “ciągu”.
W standardowej implementacji recorder’a można dodać exclude: i to był pewnie rozwiązało problem. Pytanie czy to jest dobra droga, bo może polskie znaki jednak powinny zapisywać się poprawnie? @jolka pomożesz w rozwiązaniu problemu?
chyba wystarczy zmienić kodowanie znaków na utf8 (w bazie którą używasz)
ALTER TABLE states CONVERT TO CHARACTER SET utf8;
ALTER TABLE events CONVERT TO CHARACTER SET utf8;
PS
Jest to znany problem w HA, wg autorów tego zgłoszenia, HA sam powinien ustawiać kodowanie przy tworzeniu tabel. Jak ktoś to zgłoszenie poprawi w HA to będzie działało z automatu:
Zarejestowałem się na https://remotemysql.com wszytko pięknie, ale te 100MB wystarczyło mi na 2 dni
Czy zapis zdarzeń do bazy można też zrobić na pendrive, czy tylko logi systemu?
Tak, najlepiej chyba zainwestować w jakąś kartę SD (max 32G) i można pisać…
Cytując dokumentację:
Gdy system generuje więcej zdarzeń lub gdy chcesz mieć dostęp do historii, to zalecamy zapisywać zdarzenia na zewnętrznym dysku lub w zdalnej bazie danych.
Przyłączę sie do tematu bo mam problem z baza danych sqlite na karcie SD.
Mam kartę Sd 8GB włożoną do bramki,
bramka wykrywa ja, montuje pod /mnt/media_rw/26D8-1315
tworzy tez linki do karty: ls -la ~/dom/dyski-zewnętrzne/
lrwxrwxrwx 1 u0_a38 u0_a38 18 Apr 21 19:30 dysk_1 -> /storage/26D8-1315
i
ls -la ~/dom/dyski-wymienne/
lrwxrwxrwx 1 u0_a38 u0_a38 23 Apr 21 19:32 dysk_26D8-1315 -> /mnt/media_rw/26D8-1315
Ustawiam zapis logu na kartę SD i bazę sqlite też na karcie SD:
I tu pojawia się problem.
Karta działa poprawnie bo logi się zapisują ale baza danych ciągle jest pusta a bramka wyświetla historię danych tylko od ostatniego restartu (czyli trzyma nie na karcie a w pamięci)