Nastavení Recordéru

Uživatelský avatar
Pete30
Moderátor
Moderátor
Příspěvky: 3333
Registrován: 30. září 2020, 20:33
Dal poděkování: 172 poděkování
Dostal poděkování: 364 poděkování

Nastavení Recordéru

Příspěvek od Pete30 »

Jak asi všichni víme důležitou součástí HA je Recorder který se stará o to, aby jakoukoliv změnu na čemkoli zaznamenal do
databáze (dále jen db).
Jeho nejhorší vlastností kromě toho že nám zapisuje důležitá data například naší energie je to že zapíše naprosto vše co se kde šustne, změnu každého senzoru, automatizace, stisknutí tlačítka, servisní volání, spuštění media playeru prostě naprosto vše a tím bobtná naše db a pokud máte malé úložiště dojde k tomu že se HA zastaví a nevíte proč. Je to prostě tím že již není místo na disku nebo SD kartě.
Nemusí to tak být, je důležité si recorder nastavit a to funkcí vyloučit(exclude), zahrnout(include) dále je tu možnost purge_keep_days(počet dnů historie, které se mají po vyčištění zachovat), commit_interval(Jak často (v sekundách) jsou události a změny stavu zapsány do db). Je toho smozřejmě více viz dokumentace HA https://www.home-assistant.io/integrations/recorder/, výše popsané považuji za nejdůležitější.
Teď malá ukázka jak přidat a nastavit recorder do configuration.yaml pokud používáte defaultní db HA:

Kód: Vybrat vše

recorder:
  purge_keep_days: 5
  commit_interval: 15
  exclude:
    event_types:
      - call_service
    domains:
      - alarm_control_panel
      - automation
      - binary_sensor
      - calendar
      - camera
      - climate
      - counter
      - cover
      - device_tracker
      - fan
      - group
      - input_boolean
      - input_number
      - light
      - media_player
      - person
      - remote
      - scene
      - script
      - sensor
      - sun
      - weather
      - switch
      - timer
      - zone
  include:
    entities:
      - sensor.tlak_vzduchu
      - sensor.venkovni_teplota
      - sensor.teplota_bytu
Zde vidíte všechny domény vyloučeny + servisní volání a zahrnuty jsou jen 3 entity a právě pouze data těchto entit se budou zapisovat do db ostatní je ignorováno. Můžete vyloučit a zahrnout jen entity, ale mě to přišlo pohodlnější vše vyloučit a zahrnout vždy jen co potřebuji.
Pozor vyjímku tvoří utillity meter, který zapisuje data stále a obchází recorder.

Malé pomůcky na vyhledání domén a entit, aby jste je nemuseli dohledávat po celém HA:

Vložte do vývojářských nástrojů(šablony), vyčte vám všechny domény

Kód: Vybrat vše

{%- for d in states | groupby('domain') %}
  {% if loop.first %}{{loop.length}} Domains:
  {% endif %}- {{ d[0] }}: {{d[0]|count}}
{%- endfor %}
Vložte do vývojářské nástroje(šablony), vyčte vám všechny entity

Kód: Vybrat vše

{%- for state in states -%}
  - {{state.entity_id}}
{% endfor %}
Stačí jen vykopírovat a už můžete nastavovat recorder. ;)
To je prozatím vše a samozřejmě jsou vítány jakékoliv podněty a řešení.
Pokud nejsem přítomen tak jsem na rybách ;)

Uživatelský avatar
Lion®
Administrátor fóra
Administrátor fóra
Příspěvky: 1604
Registrován: 28. září 2020, 14:07
Bydliště: podkrkonoší
Dal poděkování: 144 poděkování
Dostal poděkování: 193 poděkování
Kontaktovat uživatele:

Re: Nastavení Recordéru

Příspěvek od Lion® »

Pete30 píše: 08. leden 2022, 18:25 Jak asi všichni víme důležitou součástí HA je Recorder který se stará o to, aby jakoukoliv změnu na čemkoli zaznamenal do
databáze (dále jen db).
Jeho nejhorší vlastností
Spoiler
kromě toho že nám zapisuje důležitá data například naší energie je to že zapíše naprosto vše co se kde šustne, změnu každého senzoru, automatizace, stisknutí tlačítka, servisní volání, spuštění media playeru prostě naprosto vše a tím bobtná naše db a pokud máte malé úložiště dojde k tomu že se HA zastaví a nevíte proč. Je to prostě tím že již není místo na disku nebo SD kartě.
Nemusí to tak být, je důležité si recorder nastavit a to funkcí vyloučit(exclude), zahrnout(include) dále je tu možnost purge_keep_days(počet dnů historie, které se mají po vyčištění zachovat), commit_interval(Jak často (v sekundách) jsou události a změny stavu zapsány do db). Je toho smozřejmě více viz dokumentace HA https://www.home-assistant.io/integrations/recorder/, výše popsané považuji za nejdůležitější.
Teď malá ukázka jak přidat a nastavit recorder do configuration.yaml pokud používáte defaultní db HA:

Kód: Vybrat vše

recorder:
  purge_keep_days: 5
  commit_interval: 15
  exclude:
    event_types:
      - call_service
    domains:
      - alarm_control_panel
      - automation
      - binary_sensor
      - calendar
      - camera
      - climate
      - counter
      - cover
      - device_tracker
      - fan
      - group
      - input_boolean
      - input_number
      - light
      - media_player
      - person
      - remote
      - scene
      - script
      - sensor
      - sun
      - weather
      - switch
      - timer
      - zone
  include:
    entities:
      - sensor.tlak_vzduchu
      - sensor.venkovni_teplota
      - sensor.teplota_bytu
Zde vidíte všechny domény vyloučeny + servisní volání a zahrnuty jsou jen 3 entity a právě pouze data těchto entit se budou zapisovat do db ostatní je ignorováno. Můžete vyloučit a zahrnout jen entity, ale mě to přišlo pohodlnější vše vyloučit a zahrnout vždy jen co potřebuji.
Pozor vyjímku tvoří utillity meter, který zapisuje data stále a obchází recorder.

Malé pomůcky na vyhledání domén a entit, aby jste je nemuseli dohledávat po celém HA:

Vložte do vývojářských nástrojů(šablony), vyčte vám všechny domény

Kód: Vybrat vše

{%- for d in states | groupby('domain') %}
  {% if loop.first %}{{loop.length}} Domains:
  {% endif %}- {{ d[0] }}: {{d[0]|count}}
{%- endfor %}
Vložte do vývojářské nástroje(šablony), vyčte vám všechny entity

Kód: Vybrat vše

{%- for state in states -%}
  - {{state.entity_id}}
{% endfor %}
Stačí jen vykopírovat a už můžete nastavovat recorder. ;)
To je prozatím vše a samozřejmě jsou vítány jakékoliv podněty a řešení.
Ano, Díky Pete30...

Pete30 nám ukázal, jak nastavit filtr recorderu aby db nerostla do obřích rozměrů.

Jen doplním:
Je nutné zaznamenávat (nevylučovat) všechny entity sledované Energy panelem.



Co ale když už obří db máme?

Můžeme si ji pročistit...
Recorder nabízí dvě služby čištění db, každou se třemi atributy, které si můžeme zavolat v automatizaci nebo ve vývoj. nástrojích.

Služba recorder.purge
  • Atribut keep_days odstraní události a stavy starší než x dní
  • Atribut repack při použití SQLite nebo PostgreSQL přepíše celou databázi. Při použití MySQL nebo MariaDB optimalizuje nebo znovu vytvoří tabulky událostí a stavů.
  • Atribut apply_filter aktivuje include/exclude filtr a v kombinaci repack-true použijte pro zmenšení velikosti databáze.
Služba recorder.purge_entities odstraní události a stavy z databáze, které odpovídají libovolnému ze zadaných atributů:
  • Atribut entity_id je seznam entit, které by měly být vymazány z databáze rekordéru.
  • Atribut domains je seznam domén, které by měly být vymazány z databáze rekordéru.
  • Atribut entity_globs je seznam regulárních výrazů identifikujících entity, které se mají vymazat z databáze záznamníku.

    Ponecháte-li všechny tři parametry prázdné, budou k čištění vybrány všechny entity.
Ještě jsem zapomněl na dvě služby kterými můžeme recorder
aktivovat - recorder.enable
nebo
deakltivovat - recorder.disable
________________
🍻 Přispěj a získej přístup do obsahu fóra pro dárce. :thx:
Oficiální sada s Raspberry Pi 4B/4GB, černá +Argon NEO Raspberry Pi 4 Case
Patriot Burst 2.5" SATA SSD 120GB + AXAGON EE25-XA6 ALINE box

Galerie realizací

Uživatelský avatar
Dušan
Dárce - Donátor
Dárce - Donátor
Příspěvky: 358
Registrován: 30. březen 2021, 08:25
Dal poděkování: 24 poděkování
Dostal poděkování: 29 poděkování

Re: Nastavení Recordéru

Příspěvek od Dušan »

Tak jsem udělal všechno podle návodu a velká paráda o žádná data jsem nepřišel ani v Energy panelu.
Ještě je potřeba smazat starý poškozený soubor databáze home-assistant_v2.db.corrupt xxxx.xxx.xxx a tím se zmenší velikost denní zálohy HA.
Rpi 4 8GB RAM Home assistant běží na ssd, Esp, Sonoff ještě pořád jde, Tasmotka je hodně dobrá, ale Tuya nebrat :D GigaBlue + oscam , TV Philips 70" síť Unifi, GW 10K ET+ , Dynes 10kWh, 8.1kwp

ringo
Aktivní autor
Aktivní autor
Příspěvky: 72
Registrován: 31. říjen 2021, 20:03
Dal poděkování: 4 poděkování
Dostal poděkování: 4 poděkování

Re: Nastavení Recordéru

Příspěvek od ringo »

Super námět. Je jisté že časem se databáze zaplní různým "smetím" takže je třeba ji nějak spravovat a rozumně nastavit. Dříve jsem si nainstaloval doplněk SQLite Web, abych si v tom někd udělal pořádek, ale když recorder disponuje přímo nástroji na promazávání tak asi bude vhodnější použít rovnout ty než se to snažit provádět v SQl příkazy v tom doplňku.
SQLite web je užitečná alespoň na to, že hned při staru zobrazuje velikost té databáze.

adamis
Dárce - Donátor
Dárce - Donátor
Příspěvky: 378
Registrován: 18. březen 2021, 20:22
Bydliště: kousek od České Lípy
Dal poděkování: 50 poděkování
Dostal poděkování: 17 poděkování

Re: Nastavení Recordéru

Příspěvek od adamis »

Super návod, ale dovolím si malou odbočku. Já jsem před časem nainstaloval MariaDB a po pár dnech jsem se vrátil zpět na HA DB. Teď mám na disku tohle. Věděl by někdo, co s tím??
Bez názvu.png
Bez názvu.png (5.83 KiB) Zobrazeno 2121 x
NUC - Proxmox a v něm Home Assistant, vše ESP a ZigBee2MQTT (WiFi Sonoff a Tuya jsem vyhodil z baráku)

Linux a HA jsou pro mě něco jako řízení letového provozu na raketové základně... :roll: :roll:

Uživatelský avatar
Lion®
Administrátor fóra
Administrátor fóra
Příspěvky: 1604
Registrován: 28. září 2020, 14:07
Bydliště: podkrkonoší
Dal poděkování: 144 poděkování
Dostal poděkování: 193 poděkování
Kontaktovat uživatele:

Re: Nastavení Recordéru

Příspěvek od Lion® »

adamis píše: 29. leden 2022, 20:53 Super návod, ale dovolím si malou odbočku. Já jsem před časem nainstaloval MariaDB a po pár dnech jsem se vrátil zpět na HA DB. Teď mám na disku tohle. Věděl by někdo, co s tím??

Bez názvu.png
to tam mám taky a db jsem neměnil
________________
🍻 Přispěj a získej přístup do obsahu fóra pro dárce. :thx:
Oficiální sada s Raspberry Pi 4B/4GB, černá +Argon NEO Raspberry Pi 4 Case
Patriot Burst 2.5" SATA SSD 120GB + AXAGON EE25-XA6 ALINE box

Galerie realizací

Uživatelský avatar
Dušan
Dárce - Donátor
Dárce - Donátor
Příspěvky: 358
Registrován: 30. březen 2021, 08:25
Dal poděkování: 24 poděkování
Dostal poděkování: 29 poděkování

Re: Nastavení Recordéru

Příspěvek od Dušan »

ringo píše: 29. leden 2022, 18:30 SQLite web je užitečná alespoň na to, že hned při staru zobrazuje velikost té databáze.
Když si napíšeš do configu tenhle kod, tak ti to bude ukazovat taky velikost databáze.

Kód: Vybrat vše

sensor:
  - platform: filesize
    file_paths:
      - /config/home-assistant_v2.db
Rpi 4 8GB RAM Home assistant běží na ssd, Esp, Sonoff ještě pořád jde, Tasmotka je hodně dobrá, ale Tuya nebrat :D GigaBlue + oscam , TV Philips 70" síť Unifi, GW 10K ET+ , Dynes 10kWh, 8.1kwp

Uživatelský avatar
Pete30
Moderátor
Moderátor
Příspěvky: 3333
Registrován: 30. září 2020, 20:33
Dal poděkování: 172 poděkování
Dostal poděkování: 364 poděkování

Re: Nastavení Recordéru

Příspěvek od Pete30 »

adamis píše: 29. leden 2022, 20:53 Super návod, ale dovolím si malou odbočku. Já jsem před časem nainstaloval MariaDB a po pár dnech jsem se vrátil zpět na HA DB. Teď mám na disku tohle. Věděl by někdo, co s tím??

Bez názvu.png
Soubory shm a wal je taková mezipaměť db, dočasné shromáždění dat, které se předávají dál do db.
Pokud nejsem přítomen tak jsem na rybách ;)

Uživatelský avatar
Pete30
Moderátor
Moderátor
Příspěvky: 3333
Registrován: 30. září 2020, 20:33
Dal poděkování: 172 poděkování
Dostal poděkování: 364 poděkování

Re: Nastavení Recordéru

Příspěvek od Pete30 »

Můžeš nám sdělit proč jsi se z mariadb vrátil zpět k defaultní db HA ?
Pokud nejsem přítomen tak jsem na rybách ;)

ringo
Aktivní autor
Aktivní autor
Příspěvky: 72
Registrován: 31. říjen 2021, 20:03
Dal poděkování: 4 poděkování
Dostal poděkování: 4 poděkování

Re: Nastavení Recordéru

Příspěvek od ringo »

Vím že proto aby se eliminovali nereálné hodnoty hlášené senzory se dá použít funkce Filter v konfiguraci. Samozřejmě toto jsem zjistil až když několik těch nesmyslných hodnot mám v databázi uloženo. Lze nějak tyto nesmyslné hondoty vyřadit dodatečně pomoví funkcionality HA nebo to už je právě ta věc kdy musí přijít ke slovu SQL v rámci SQLite.

Odpovědět

Zpět na „Databáze a Recorder“