@Maniek podaj ścieżkę do katalogu home - to jest partycja dla użytkownika
/data/data/pl.sviete.dom/files/home
Bo teraz masz do głównego
/
i pokazuje wielkość tamtej partycji
@Maniek podaj ścieżkę do katalogu home - to jest partycja dla użytkownika
/data/data/pl.sviete.dom/files/home
Bo teraz masz do głównego
/
i pokazuje wielkość tamtej partycji
Testowałem i jak wpiszę tą ścieżkę, którą podałeś to pokazuje mi, że “niedostępny”
Ja mam tak, sprawdź
- platform: systemmonitor
resources:
- type: processor_use
- type: processor_temperature
- type: memory_use_percent
- type: disk_use_percent
arg: /data/data/pl.sviete.dom/files/home/AIS
Panowie podpowiedzcie co jest nie tak…otóż po miesiącu baza danych urosła mi do 32GB i się wysypała. W ustawieniach mam dwie encje do rejestrowania, ale i tak baza rośnie do takich rozmiarów. Próbowałem już różnych rozwiązań MariaDB v5 i v 10, PostgreSQL, zapis na pendrive i żaden ze sposobów nie działa.
W pliku konfiguracyjnym mam taki wpis:
# domains:
# - sensor
# - switch
# - media_player
# domains:
# - automation
# - updater
recorder:
purge_keep_days: 30
include:
entities:
- sensor.0_electricity_meter_total_forward_active_energy_balanced
- sensor.gas_meter
exclude:
domains:
- alarm_control_panel
- automation
- binary_sensor
- button
- calendar
- camera
- climate
- cover
- group
- input_boolean
- input_datetime
- input_number
- input_select
- input_text
- light
- media_player
- number
- person
- plant
- remote
- script
- select
- sun
- switch
- timer
- weather
- zone
entity_globs:
- sensor.ais_*
- sun.su*
entities:
- sensor.time
- sensor.version_info
- sensor.najnizsza_temperatura_w_domu
- sensor.najwyzsza_temperatura_w_domu
- sensor.srednia_temperatura_w_domu
- sensor.usredniona_temperatura_w_domu
- sensor.srednia_temperatura_w_pokojach
- sensor.ostatnia_temperatura_w_domu
- sensor.najnizsza_wilgotnosc_w_domu
- sensor.najwyzsza_wilgotnosc_w_domu
- sensor.srednia_wilgotnosc_w_domu
- sensor.usredniona_wilgotnosc_w_domu
- sensor.ostatnia_wilgotnosc_w_domu
event_types:
- call_service
Musisz ustalić która encja loguje takie ilości danych.
Poniżej zapytanie listujące TOP10 encji:
sqlite3 <sciezka_do_pliku_bazy>/ais.db
sqlite> .header on
sqlite> .mode column
sqlite> .width 30, 10,
sqlite> SELECT entity_id, COUNT(*) as count FROM states GROUP BY entity_id ORDER BY count DESC LIMIT 10;
@Sebastian a jak to ogarnąć dla postgresql? Te komendy nie działają pod postgresql niestety no bo logiczne są pod sqlite…
Np tak:
psql ha
SELECT entity_id, COUNT(*) as count FROM states GROUP BY entity_id ORDER BY count DESC LIMIT 10;
exit
@SebiCo Dziękuję bardzo. Może wiesz jak oczyścić tą bazę teraz z danych (flush). Nie rozumiem dlaczego loguje mi tyle danych z sensorów, które teoretycznie wyłączyłem z logowania. W zbieraniu danych ująłem tylko dwa sensory, a loguje mi ich znacznie więcej…
Moim zdaniem powinieneś wywalić całe exclude i zostawić tylko te dwa sensory w include
EDIT1
A co do wyczyszczenia bazy to
TRUNCATE TABLE events, states;
powinno dać radę, oczywiście to wyczyści te dwie tablice do zera!
EDIT2
Ostatnio coś pozmieniali w logowaniu do bazy i teraz nie zapisują już powtarzających się rekordów
EDIT3
sprawdzenie rozmiaru tablic
\dt+
@SebiCo Dziękuję Ci bardzo za pomoc. Wszystko co chciałem ogarnąłem. Teraz jest już ok. Pozdrawiam.
Dziś miałam awarię internetu w domu, musialem wyłączyć Jolkę z prądu bo nie chciala sie obudzić po naprawie awari i po uruchomieniu coś stalo się z moją bazą danych… Macie jakies pomysły? Wyglada jak bym mial 2 bazy o nazwie db … jak sie tego pozbyc i zostawic tą właściwą?
Zatrzymaj jedną, np. id 10
pm2 stop 10
zapisz
pm2 save
zrestartuj bramkę i zobacz co będzie.
Dziękuje pomogło, zrobiłem pm2 stop 10
a później pm2 delete 10.
Baza znikneła.
Czy ktoś jest w stanie podpowiedzieć dlaczego po przejściu na repozytoria Termux nie mogę uruchomić ponownie bazy w/g opisu @jolka ?
~ $ createuser --superuser --pwprompt ais
Enter password for new role:
Enter it again:
createuser: error: connection to server on socket "/data/data/com.termux/files/usr/tmp/.s.PGSQL.5432" failed: FATAL: role "u0_a57" does not exist
~ $ pg_ctl -D $PREFIX/var/lib/postgresql start
pg_ctl: another server might be running; trying to start server anyway
waiting for server to start....2022-08-23 13:43:57.256 CEST [24260] FATAL: lock file "postmaster.pid" already exists
2022-08-23 13:43:57.256 CEST [24260] HINT: Is another postmaster (PID 5148) running in data directory "/data/data/com.termux/files/usr/var/lib/postgresql"?
stopped waiting
pg_ctl: could not start server
Examine the log output.
~ $ createuser --interactive ais
Shall the new role be a superuser? (y/n) y
createuser: error: connection to server on socket "/data/data/com.termux/files/usr/tmp/.s.PGSQL.5432" failed: FATAL: role "u0_a57" does not exist
Z dokumentacji tyle (nie mam kompetencji do zrozumienia co z czym):
lock file "postmaster.pid" already exists
usuń plik postmaster.pid z /data/data/com.termux/files/usr/var/lib/postgresql
Usunąłem plik postmaster.pid
ale nadel ten sam błąd. Nie wiem za bardzo co robię więc szukam pomocy dalej. Bardziej w celach edukacyjnych, bo teraz upewniam się tylko, że długoterminową DB należy mieć na zewnątrz bramki.
~ $ pg_ctl -D $PREFIX/var/lib/postgresql start
waiting for server to start....2022-08-23 20:32:59.314 CEST [16950] LOG: starting PostgreSQL 14.2 on arm-unknown-linux-androideabi, compiled by Android (7714059, based on r416183c1) clang version 12.0.8 (https://android.googlesource.com/toolchain/llvm-project c935d99d7cf2016289302412d708641d52d2f7ee), 32-bit
2022-08-23 20:32:59.316 CEST [16950] LOG: listening on IPv4 address "127.0.0.1", port 5432
2022-08-23 20:32:59.330 CEST [16950] LOG: listening on Unix socket "/data/data/com.termux/files/usr/tmp/.s.PGSQL.5432"
2022-08-23 20:32:59.343 CEST [16954] LOG: database system was shut down at 2022-08-23 20:31:26 CEST
2022-08-23 20:32:59.360 CEST [16950] LOG: database system is ready to accept connections
done
server started
~ $ createuser --superuser --pwprompt ais
Enter password for new role:
Enter it again:
2022-08-23 20:33:22.489 CEST [17116] FATAL: role "u0_a57" does not exist
2022-08-23 20:33:22.509 CEST [17117] FATAL: role "u0_a57" does not exist
createuser: error: connection to server on socket "/data/data/com.termux/files/usr/tmp/.s.PGSQL.5432" failed: FATAL: role "u0_a57" does not exist
~ $
Ale teraz już serwer startuje. Jeśli miałeś tam starą bazę to w zasadzie powinno działać, nie ma potrzeby ponownego tworzenia usera. Jeśli tworzysz nową bazę to wcześniej wyczyść cały katalog $PREFIX/var/lib/postgresql bo mogły zostać jakieś “śmieci”
Dzięki sprawdzę w działaniu…
Ale coś mi się @SebiCo nie zgadza.
~ $ psql -l
psql: error: connection to server on socket "/data/data/com.termux/files/usr/tmp/.s.PGSQL.5432" failed: FATAL: role "u0_a57" does not exist
~ $ psql ha
psql: error: connection to server on socket "/data/data/com.termux/files/usr/tmp/.s.PGSQL.5432" failed: FATAL: role "u0_a57" does not exist
~ $
EDIT:
Wczoraj przerobiłem na czuja sensor SQL na taką konfigurację i też działa:
- platform: sql
db_url: postgresql://u0_a57:@localhost/local socket
queries:
- name: DB size
query: "SELECT (pg_database_size('local socket')/1024/1024) as db_size;"
column: "db_size"
unit_of_measurement: MB
Wykrywany jest też w GUI HA jako gotowy do skonfigurowania.
Zatrzymaj serwer
usuń z /data/data/com.termux/files/usr/tmp/ plik/i .s.PGSQL.5432*
i wystartuj serwer, zobacz czy będzie ok
Sensor mam tak:
- platform: sql
db_url: postgresql://ais:dom@localhost/ha
queries:
- name: DB size
query: "SELECT (pg_database_size('ha')/1024/1024) as db_size;"
column: "db_size"
unit_of_measurement: MB
Pewnie ten sensor miesza bo używasz usera u0_a57 (bez hasła zresztą ) - najlepiej zmodyfikuj ten sensor do standardowych ais:dom
no i baza ha
chyba że masz local, ale watpię bo w gui masz ha.