Mam ustawioną bazę MariaDB. Niestety za późno ograniczyłem zbiór encji, które mają się zapisywać. Baza w krótkim czasie się rozrosła. Czy można bezpiecznie usunąć historię dla niepotrzebnych encji i jak? Są tam klucze obce, które blokują usuwanie rekordów z tabeli states.
Skorzystaj z tego:
Wpis w configuration.yaml
recorder:
db_url: !secret mariadb_url
purge_keep_days: 5
exclude:
domains:
- weblink
- updater
- input_boolean
- input_number
- input_select
- input_text
- light
- media_player
- sun
- timer
- weather
Lista domen:
alarm_control_panel
alert
alexa
automation
binary_sensor
camera
climate
device_tracker
fan
group
image_processing
input_boolean
input_select
light
media_player
person
remote
script
sensor
sun
switch
timer
weather
zigbee2mqtt_networkmap
zone
Narzędzia deweloperskie:
{%- for d in states | groupby('domain') %}
{{ d[0] }}
{%- endfor %}
Lista encji w poszczególnych domenach:
{%- for d in states | groupby('domain') %}
{% if loop.first %}{{loop.length}} Domains:
{% endif %}- {{ d[0] }}: {{d[0]|count}}
{%- endfor %}
Lub karta w HA
Kod karty:
type: markdown
content: >
Domain | Count
:---|---:
{% for domain in states | groupby('domain') %} {% set name =
domain[0].replace('_', ' ') | title %} **{{ name }}** | {{ states[domain[0]] |
count }} {# leave blank line below otherwise table won't render #}
{% endfor %} **Total** | {{ states | count }}
card_mod:
style:
ha-markdown:
$:
ha-markdown-element: |
table {
border-spacing: 0;
width: 100%;
padding: 8px;
border-radius: var(--ha-card-border-radius);
}
th {
background-color: var(--state-icon-color);
color: white;
padding: 4px;
}
th:first-child {
border-top-left-radius: var(--ha-card-border-radius);
}
th:last-child {
border-top-right-radius: var(--ha-card-border-radius);
}
td {
padding: 4px;
}
tr:nth-child(even) {
background-color: var(--table-row-background-color);
}
Dzięki, ale mnie nie zrozumiałeś chyba. Od teraz to już ustawiłem sobie listę encji do zapisu historii. Nie chcę jednak usuwać całej dotychczasowej historii, ale usunąć niepotrzebne encje z bazy pozostawiająć historię dla wybranych encji.
To jest dla mnie za trudne :(. Nie wiem o czym oni tam piszą. Zaryzykuję operacje na bazie danych. Zdejmę klucze obce, usunę niepotrzebne dane i założe klucze ponownie. Liczyłem na to, że ktoś już to robił i ma gotowe skrypty sql na to.