Вечером обнаружил, что база распухла до 32 Гб из выделенных ей 32 Гб. Начал разбираться, нашел виновника торжества - обычное ZIGBEE реле с энергомониторингом в погребе для морозильного ларя, которое отправляло 100500 изменений в минуту и все они писались в БД.
Обычная перезагрузка реле исправила ситуацию, но теперь нужно удалить все значения, чтобы освободить место на диске.
ID сенсора хранится в таблице states_meta, ищем:
MariaDB [homeassistant]> SELECT * FROM states_meta WHERE entity_id LIKE '%pogreb_lar%'; +-------------+-----------------------------------------------+ | metadata_id | entity_id | +-------------+-----------------------------------------------+ | 1919 | automation.pogreb_lar_kontrol_temperatury | | 1766 | select.rozetka_pogreb_lar_power_outage_memory | | 1765 | select.rozetka_pogreb_lar_switch_type | | 1767 | sensor.rozetka_pogreb_lar_current | | 1764 | sensor.rozetka_pogreb_lar_energy | | 1769 | sensor.rozetka_pogreb_lar_linkquality | | 1763 | sensor.rozetka_pogreb_lar_power | | 1768 | sensor.rozetka_pogreb_lar_voltage | | 1762 | switch.rozetka_pogreb_lar | +-------------+-----------------------------------------------+ 9 rows in set (4.599 sec)
Видим наши ID, которые необходимо удалить, удаляем так:
delete from states where metadata_id=1768;
проходим так, по всем интересующим ID.
Далее можно настроить configuration.yaml и исключить запись значений например sensor.rozetka*, но это уже другая история.
Еще полезные запросы:
Самые 3 часто повторяющиеся записи в таблице:
SELECT metadata_id, COUNT(metadata_id) AS occurrences
FROM states
GROUP BY metadata_id
ORDER BY occurrences DESC
LIMIT 3;