Purge de base de données > 7.5Go!

Salut,
c’est pas nécessaire, c’est activer par défaut :wink:

auto_purge boolean (optional, default: true) > tout les jours a 4h12
auto_repack boolean (optional, default: true) > tous les deuxième dimanche du mois

Sinon ca va c’est pas violent ton filtrage, regarde le mien

recorder:
  purge_keep_days: 2
  exclude:
    domains:
      - automation
      - calendar
      - climate
      - device_tracker
      - group
      - media_player
      - person
      - proximity
      - scene
      - script
      - sun
      - timer
      - weather
      - zone
    event_types:
      - automation_triggered
      - home_assistant_start
      - home_assistant_stop
      - script_started
      - service_registered
    entities:
      - binary_sensor.54ef44273cc1_gateway
      - binary_sensor.wan_status_2
      - camera.lsc_smart_indoor_camera
      - light.lsc_smart_indoor_camera_indicator_light
      - sensor.11_weather_alert
      - sensor.66_weather_alert
      - sensor.entrance_door_openings
      - sensor.entrance_door_openings_back
      - sensor.fenetre_chambre_battery_state
      - sensor.fenetre_salle_de_bain_battery_state
      - sensor.hacs
      - sensor.hacs_version
      - sensor.home_assistant_log_size
      - sensor.home_assistant_v2_db_size
      - sensor.moon
      - sensor.network_in_eth0
      - sensor.network_out_eth0
      - sensor.network_throughput_in_eth0
      - sensor.network_throughput_out_eth0
      - sensor.local_ip
      - sensor.temp_max_to_day
      - sensor.temp_min_to_day
      - sensor.ytube_music_player_extra
      - switch.54ef44273cc1_led
      - switch.lampe_du_pc_child_lock
      - switch.lampe_du_pc_switch_1
      - switch.television_screen_state
      - switch.wifi_switch_2
      - sensor.0x00158d0007072fbe_side
      - sensor.0x00158d0007072fbe_action_to_side
      - sensor.0x00158d0007072fbe_action_side
      - sensor.0x00158d0007072fbe_action_from_side
      - sensor.0x00158d0007072fbe_action_angle
      - sensor.0x00158d0005d299cf_iinst
      - sensor.zigbee2mqtt_networkmap
    entity_globs:
      - binary_sensor.ags3k_w09_*
      - binary_sensor.diskstation_*
      - binary_sensor.086ad0c2_7114042e*
      - binary_sensor.e595be22_ba7576d6*
      - binary_sensor.f5345721_d8415bb4*
      - input_select.ytube_music_player_*
      - light.smart_switch_*
      - select.lsc_smart_indoor_camera_*
      - switch.lsc_smart_indoor_camera_*
      - sensor.*_action
      - switch.e1_zoom_camera_*
      - switch.*_power_outage_memory
      - select.*_power_on_behavior
      - sensor.*_linkquality
      - sensor.*_battery
      - sensor.*_ble
      - sensor.*_illuminance
      - sensor.*_signal_strength
      - sensor.*_zigbee
      - sensor.*_illuminance_lux
      - sensor.ags3k_w09_*
      - sensor.086ad0c2_7114042e*
      - sensor.e595be22_ba7576d6*
      - sensor.f5345721_d8415bb4*
      - sensor.carburants_*
      - sensor.count_lumieres_*
      - sensor.disk_*
      - sensor.diskstation_*
      - sensor.h3113_*
      - sensor.myenedis_*
      - sensor.pas_de_la_case_*
      - sensor.poubelle_*
      - sensor.saint_frichoux_*
      - sensor.seventeentrack_*
      - update.*_update
  include:
    domains:
      - alarm_control_panel
      - binary_sensor
      - light
      - sensor
      - switch
    entities:
      - device_tracker.android
      - device_tracker.diskstation
      - device_tracker.google_nest_mini
      - device_tracker.google_nest_mini_sdb
      - device_tracker.sagemcom_broadband_sas_2b_18_c0
      - device_tracker.huawei_matepad_t10s
      - device_tracker.pc_zam01
      - device_tracker.rlxlinux
      - device_tracker.sony_xperia
      - device_tracker.android_6e3e37f912fab9fd
      - device_tracker.homeassistant
      - device_tracker.decodeur_tv_uhd
      - device_tracker.repeteurwifi6_aaf0
      - person.warcozes
      - sensor.saint_frichoux_pressure
      - input_text.tarif_heures
      - calendar.ecowatt_downgraded_level
      - calendar.next_load_sheddings

Ok donc les deux auto sont pas nécessaire mais ne dérange pas au fonctionnement cela me permet de me souvenir dans un mois ou deux que ces deux paramètres sont bien actif :grin:

Compliqué de bien savoir si on exclue les bonne chose ou pas
Je trouve tellement plus évident de dire par défaut rien n’est en base historique etc et inclue les un à un ou par domaine. Ainsi ça limite le risque d’obésité de la BDD.

Du coup à force de regarder les Go
Ce matin la base est à 1Go encore malgré tout (200 device Zigbee 30 zwave et 20 BT) plus les autres intégration monitoring etc.

Mais ce qui m’a surpris aussi c’est la place sur mon disque proxmox de 32Go quasi 70% d’espace utilisé sans sauvegarde locale elle ms sont toutes externe

Une séance de spéléologie va être encore à l’ordre du jour :crazy_face: à la fois dans la BDD mais sur le reste aussi

Bonjour,

C’est vrai que venant de jeedom cette histoire de recorder n’est pas vraiment simple ^^
Pour faire je me suis servi de ce tuto de Byfeel qui précise un peux les modalités de configuration.
De ce que j’ai compris si on ne met que des include alors il n’enregistrera que les entity voulu dans cette liste. Par contre si on met des exclude alors il faudra tous préciser.
Perso j’avais une BDD (J’ai installer Maria DB et PhpMyAdmin) de 2 GB (les uptime sont très bavard…) et maintenant je n’ai plus que 300 Mo ( à suivre car je n’ai pas atteint les 30j encore).
Je met mon recorder si ca intéresse mais je suis loin d’être expert ^^

purge_keep_days: 30
commit_interval: 20
auto_repack: true
auto_purge: true
include:
  domains:
    - counter
    - automation
    - cover
    - input_boolean
    - input_select
    - light
    - script
    - person
  entities:
    - sensor.backup_state
    - device_tracker.access_point_etage
    - device_tracker.alexa_echo_ch2
    - device_tracker.alexa_echo_ch3
    - device_tracker.alexa_echo_douche
    - device_tracker.alexa_echo_salle_de_bain
    - device_tracker.alim_tablette_entree
    - device_tracker.apple_tv_5
    - device_tracker.aquarium
    - device_tracker.chevet_nany
    - device_tracker.chevet_seb
    - device_tracker.cumulus
    - device_tracker.epson6e98de
    - device_tracker.fil_pilote
    - device_tracker.garage_nany
    - device_tracker.garage_seb
    - device_tracker.gateway_bureau
    - device_tracker.gateway_garage
    - device_tracker.homeassistant
    - device_tracker.iphone_seb
    - device_tracker.laptop_0tfa24ib
    - device_tracker.netatmo_relay
    - device_tracker.prise_toiture
    - device_tracker.proxmox
    - device_tracker.seb
    - device_tracker.udm
  entity_globs:
    - sensor.teleinfo_*
    - sensor.distance_*
    - sensor.batterie_*
    - sensor.humidite_*
    - sensor.humidity_*
    - sensor.temperature_*
    - binary_sensor.voiture_*
    - binary_sensor.etat_*
    - binary_sensor.ils_*
    - binary_sensor.voiture_*
    - binary_sensor.fenetres
    - binary_sensor.portes
    - binary_sensor.porte_garage
    - binary_sensor.status_*

Par contre effectivement comment fait t’on quand on veux garder des données d’une année sur l’autre???
J’ai pas besoin d’avoir tous mais par exemple pour une température juste une moyenne, min et max de la journée.

Bonne journée

Salut,

En fait il ne surtout pas faire la comparaison entre Jeedom et HA… C’est pas du tout la même philosophie et on monte des usines à gaz pour rien. C’est évidement pas facile au début mais c’est indispensable. Je le sais bien j’ai fait pareil au début :sweat_smile:
L’important c’est de bien chercher dans la doc (qui est super bien faite), il y a des alternatives (parfois très malines) pour obtenir le même résultat :

  • Base à durée de rétention courte : on filtre avec les trucs utiles (donc exit les uptime, date et autres machins bavards)… 30J c’est une fausse bonne idée. Et quand le filtrage est assez bien fait, l’ajout de nouveaux matériels n’a pas de véritable impact sur la prise de poids de la base
  • Dashboard energy, statistiques et utility meter pour le stockage longue durée
  • et si besoin d’encore un peu plus souple : influxdb
3 « J'aime »

Oui pas de comparatif entre les deux outils Jeedom et HA c’est pas la même approche nous sommes d’accord mais il est normal d’avoir dans nos débuts une référence à Jeedom. Mais allons de l’avant et approprions nous la chose.

je dirais qu’il faut être raisonnable et le besoin est :

  1. Avoir des graphes sur le Dashboard sympa de quelques métriques donc du court terme quelques jours (c’est porté par la BDD de HA si j’ai bien compris)
  2. Avoir un historique plus important afin de faire des comparaisons d’année en année et là soit on stock tout sur une solution externe soit on utilise les outils types utility meter, energy et statistiques (ce dernier pas encore bien compris le truc)
    et pour moi c’est ces éléments là que tu envoies sur du influx par exemple (pas de sens vraiment d’envoyer la température toutes les minutes à vie en tout cas dans mon cas)

la doc est dense et très bien faite je confirme
parfois cela manque de visuel en plus des exemple de code mais bon le must to have :slight_smile:
En tout cas l’échange est fort intéressant sur l’approche de la BDD et je t’en remercie
Cela me montre le chemin encore à parcourir top

En fait, c’est pas forcement impossible ni mauvais d’envoyer les températures dans influxdb (sur un bucket à faible durée de rétention) et de créer des mécanismes pour en extraire des stats (min/max/moy). Il y a tout un loooong sujet ici

Ca marche je vais reduire à 7 jours et me renseigner pour les statistiques.

C’est vrai qu’on à tendance à vouloir retranscrire ce qui nous plait sur jeedom ca nous rassure :slight_smile:

Merci des conseils et à bientôt

Excellent sujet j’adore :slight_smile:

Il va falloir poser les pierres une à une c’est cool

je viens de faire un début d’analyse de la BDD, je viens de trouver 2 ou 3 prises connectées qui sont un peu verbeuse ! Cela date d’une phase de test où je ne suis visiblement jamais revenu en arrière !
Du coup une donnée toutes les minutes.

Ensuite j’ai vu aussi que le BT sur mes nouvelles antennes ESP32 sont très verbeuse pour voir comme il faut les tag nut. A voir si je peux me dispenser d’historique ou pas dans cette phase de mise en production.

Bien sur cela changera aussi au fur et à mesure que l’on met en place le sujet transmis :slight_smile:

Question //, sur ma VM où j’ai influxDB déjà je n’ai pas telegraf (mais est-ce vraiment utile ?) mais surtout il me semble que les données sont présentes que 30 jours pas plus ensuite il faut une licence non ou j’ai pas compris ?

Ce cas là se gère assez bien. L’historique des tags tu n’en a pas besoin, par contre tu peux garder l’historique de la personne (sur laquelle un ou plusieurs tags sont associés)

telegraph c’est le buffer avant influxdb… Quant à la durée, c’est pas lié à la licence mais à la config du bucket de stockage

Ok pour la partie personne :wink: je vire le tag et je garde que la personne au sens historique

pour télégraf je ne l’ai pas et j’envoie directement sur Influx pour le coup
Je vais regarder la config Bucket pas fait attention

Je découvre des sensor en base avec un stockage important je vais leur faire la peau :rofl:

Après je passe à la méthode ciblée influxDB via Node Red pour tester et plus si affinité

Paris ne s’est pas fait en un jour alors au boulot

Edit : j’ai les Shelly EM qui sont un peu verbeux aussi en MQTT

Bon je viens de faire un test à l’instant
Création d’une nouvelle VM et mise de ma sauvegarde de cette nuit et là une belle surprise !

image

Contre
image

avec tout le ménage que j’avais pu faire des modules complémentaires que je n’utilisais pas !!

cela fait une sacré cure quand même

Bon je ne sais pas trop ce qui est parti mais bon cela fait le clair

@Pulpy-Luke je t’embête un peu encore désolé
Si j’envoie vers InfluxDB des infos aucun intérêt de les avoir aussi dans HA en plus sauf si je veux faire un Dashboard avec le sensor.
J’ai des prises Shelly Plug S (Wifi par MQTT car j’ai besoin d’un accès externe dessus) et il semble qu’elle parle beaucoup ! mais pas trouvé le moyen de les rendre moins bavarde.
Je fais des exclude en pagaille du coup en ce moment :slight_smile:

1 « J'aime »

Hello.
Oui une méthodologie qui me semble pertinente :

  • Coté influxdb, on n’envoie QUE ce qui est nécessaire pour un stockage à long terme, et qui n’est pas déjà dispo avec les stats & co de HA. Soit des donnés directement exploitables, soit celles qui sont nécessaires à des calculs (min/max etc)
  • Coté base HA, il faut se poser la question de quelles données sont utiles pour les graphs et pour quelle durée. La température des WC il y a 3 semaines, je suis pas certains que ça serve souvent par exemple.
  • Et donc quand les données ne servent pas, on les vire

Parfait, je suis en phase avec ça où à une nuance quand même c’est que dans l’immédiat je pousse un peu brutalement sur InfluxDB :slight_smile:

je range déjà ma chambre coté HA dans l’immédiat, je tente de pas mettre trop le bazar sur influxDB quand même :crazy_face:

Ensuite, je vais m’attacher une fois les deux chambre HA et influxDB au clair à voir comment je peux ajouter des données anciennes sur un bucket A d’influx à mon bucket HA fraichement mis en route, de cette manière je retrouve mon historique.

Mais nous sommes en phase aucun intérêt de stocker ni sur HA ni sur influxDB des sensor type *_power_outage_memory etc… enfin pour mon usage

Tout à fait !
Attention quand même, le nettoyage dans influxdb, c’est pas aussi facile après coup

Oui je me doute, je ne veux pas le bordel non plus dessus mais je voulais dire que je mettais plus la donnée brut que travaillée pour le moment mais pareil en tentant de pas mettre des données du type *_power_outage_memory etc…

Entre l’organisation en include, package et la BDD de données il y a des fondamentaux important à voir et à mettre en place pour les débutants sur HA à mon sens pour ne pas vivre ce que je fais à date

1 « J'aime »

J’ai encore 2,8 Millions de données dans la base HA et pourtant j’ai fait des exludes :rage: dans la tables des statistiques

Tout ça (et le reste que je n’ai pas) en tête, c’est quand même très lié à tes besoin/profil/config
Et puis au début avec une petite installation, on peut se satisfaire d’un truc ‹ pas optimal ›, quand ça commence à être plus gros, c’est moins évident.
Du coup, ça me parait vachement compliqué de répondre, mais je ne vois pas d’autres astuces pour l’instant

Regarde si les includes/excludes ne s’annulent pas mutuellement

Oui quand ça grossit il faut faire attention et avec 300 objets plus les intégrations je dois avoir pas mal de bazar dans toutes les tables

@Pulpy-Luke
Pour le moment j’ai ce format

recorder:
  purge_keep_days: 10
  auto_purge: true
  auto_repack: true
  include:
    domains:
      - binary_sensor
      - sensor
      - switch
      - person
      - device_tracker
      - light
      - select
      - plant
      - cover
  exclude:
    domains:
      - automation
      # - binary_sensor
      - bodymiscale
      - button
      - calendar
      - camera
      - climate
      # - cover
      # - device_tracker
      - group
      - input_boolean
      - input_button
      - input_datetime
      - input_number
      - input_select
      - input_text
      # - light
      - lock
      - media_player
      - number
      - openplantbook
      - persistent_notification
      #  - person
      #  - plant
      - proximity
      - remote
      - script
      # - select
      # - sensor
      - siren
      - sun
      # - switch
      - update
      - vacuum
      - water_heater
      - weather
      - zone
    event_types:
      - automation_triggered
      - script_started
      - service_registered
      - call_service
      - service_removed
      - service_executed
      - platform_discovered
      - homeassistant_start
      - homeassistant_stop
      - feedreader
      - component_loaded
      - timer_out_of_sync
    entities:
      - sun.sun
      - sensor.cpu
      - sensor.last_boot
      - sensor.internet_time
      - sensor.solar_angle
      - sensor.date_time
      - switch.pc_test


    entity_globs:
      - sensor.weather_*
      - sensor.*_uptime
      - sensor.cpu_temp*
      - sensor.time*
      - sensor.date*
      - sensor.*_tx
      - sensor.*_rx
      - sensor.*_uptime_2
      - sensor.*_tx_2
      - sensor.*_rx_2
      - sensor.*_motion
      - sensor.*_high
      - sensor.dalg_3070_*
      - sensor.dalg_win11_*
      - sensor.unifi_gateway_*
      - sensor.dalg_cam*
      - sensor.pc_test_*
      - sensor.pre_test*
      - sensor.nut_*
      - sensor.tile_*
      - sensor.myfox_*
      - sensor.pre_test*
      - sensor.pc_*_temperature
      - select.pc_*_indicator_mode
      - select.pc_*_power_outage_memory
      - select.vib_*_sensitivity
      - select.pc_test_*
      - device_tracker.broadlink*
      - update.wud_*
      - switch.pc_ch_*

et je fait du spécifique Exclude avecentity_globs:

Mais peut être qu’il faut la logique inverse j’exlu tous les sensor et je fais de l’include spécifique
Plus précis et plus radicale

Par contre dans la table states je vois des entity_id de device que je sais que je n’ai plus

Ce que j’ai est assez similaire (include sur des domains et excludes sur des entity ou entity_globs. Ce qu’il fat voir c’est quels « type » passent quand même les filtres et adapter avec un exclude par exemple.
De plus il ne faut pas oublier de faire une purge (et repack, voire restart) pour voir le résultat

Pour avoir une application direct de notre recorder on lance bien via Service ?
comme ceci par exemple

Si oui j’ai par exemple des sensor.date* qui reste c’est embêtant car j’ai mis en exlude :

entity_globs:
      - ....
      - sensor.time*
      - sensor.date*
      - ....