Externaliser son historique - Stockage long terme

Mon problème

*En espérant poster au bon endroit, je n’ai pas trouvé chaussure à mon pied via mes différentes recherche (surement pas les bon termes). Ne pas hesiter à le déplacer si besoin. Voilà, je constate que je change régulièrement de système domotique (Jeedom, Domoticz, HA) et j’en ai marre de perdre mon historique donc j’aimerais sauvegarder hors de Home Assistant les valeurs des différents capteurs jugés important à mes yeux (températures, conso élec, état de ma ligne internet, pompe à chaleur, … ). Ceci afin de prévenir le futur car on ne sait pas ce que deviendra HA chez moi même s’il a aujourd’hui un bel avenir.

Mon idée de base était de créer une base de données MySQL sur un second raspberry. Restait ensuite à exploiter ses données via un outil de visualisation.

Merci à tous d’avance pour vos idées*

Ma configuration


System Health

version core-2021.8.7
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.6
os_name Linux
os_version 5.10.52-v7l+
arch armv7l
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 5000
Installed Version 1.13.2
Stage running
Available Repositories 868
Installed Repositories 11
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Raspbian GNU/Linux 10 (buster)
update_channel stable
supervisor_version supervisor-2021.06.8
docker_version 20.10.8
disk_total 219.8 GB
disk_used 6.9 GB
healthy true
supported failed to load: Unsupported
supervisor_api ok
version_api ok
installed_addons File editor (5.3.3), Samba share (9.5.1), Terminal & SSH (9.1.3), Duck DNS (1.13.0), RPC Shutdown (2.2), Node-RED (10.0.0), deCONZ (6.9.0), Nginx Proxy Manager (0.11.0), MariaDB (2.4.0), SQLite Web (3.1.0), Samba Backup (4.5.0), Check Home Assistant configuration (3.8.0)
Lovelace
dashboards 3
resources 5
views 9
mode storage
___

Exactement ce que je fais chez moi. Je te conseille de jeter un œil du côté d’InfluxDB et Grafana :wink:

InfluxDB dispose d’une intégration assez bien détaillée dans la doc officielle.

Grafana permet de visualiser très rapidement des données d’une bdd InfluxDB. Tu peux intégrer les visualisations Grafana dans Home Assistant.

Si tu le fais sur un Pi, investit dans un ssd. Personnellement, j’ai loué un VPS chez OVH.

Salut @Guillaume_B,
Effectivement j’avais vu Influxdb et Grafana, j’ai d’ailleur mis en place une manip sur un pi 3 chez ma belle mere (température CPU). J’ai installé ceci via les add-ons de home assistant et je n’ai pas vraiment aimé le fonctionnement, je ne veux pas passer par les add-ons.

Comment ton system s’articule t’il ?
As-tu un rapide petit schéma pour comprendre comment HA communique avec influx, où les éléments son physiquement installé et qui écrit/lit depuis/vers qui.

Merci beaucoup !

Les add-ons ne sont que des containers docker configurés pour fonctionner en 1 clic (ou 2 :wink:).

Pour ne pas être dépendant de ton système domotique, il te faut externaliser par docker et Node-RED (par exemple).

Un tutoriel au hasard :

https://www.google.com/amp/s/domopi.eu/tig-le-trio-telegraf-influxdb-grafana-pour-surveiller-vos-equipements/amp/

1 « J'aime »

Merci @Clemalex,

Je me suis certainement mal exprimé et je ne veux surtout pas critiquer HA que j’adore, j’ai abandonné les autres système pour lui d’ailleurs !

Ce que je veux dire c’est que je souhaite un système indépendant de home assistant. Externaliser comme toi et @Guillaume_B me le suggère est je pense la bonne solution.

Pour être plus précis dans mon besoin, j’aimerai retrouver des choses assez simple avec surtout une base de données légère car mon premier home assistant avait une base de données énormes, plusieurs giga en quelques semaines ce qui n’est pas acceptable pour moi.

Pour exemple, la base de données de mon Domoticz pèse 4,6Mo pour 8 années d’historique (arrêté en janvier cette année) avec pourtant une centaine d’éléments dedans.

Merci à vous pour vos liens, je vais y regarder cependant si vous avez d’autres éléments je suis preneur ! :slight_smile:

Quelques visuels que j’aimerai recrée :





C’est de la configuration. :innocent:

https://forum.hacf.fr/t/purge-de-la-base-de-donnees-ha/2158/2?u=clemalex

Recorder configuré au strict minimum depuis !

Au niveau configuration, j’ai :

Un Pi 4 qui fait tourner HA Supervised.
Un VPS Debian mais ça peut être un autre Pi, un PC…

Je n’utilise pas d’add-on pour InfluxDB (ça existe d’ailleurs :thinking: ?). J’ai simplement mis le code suivant dans mon fichier configuration.yaml.

influxdb:
  host: adresseipdelamachinehebergeantinfluxdb
  database: lenomdemabasededonnees
  include:
    - ...
  exclude:
    - ...

J’ai installé Grafana sur la même machine que InfluxDB.

Après, oui la base de données est alimentée par Home Assistant et le noms des mesures est donc celui de HA. Si tu veux t’affranchir de ce nom et structurer ta base de données selon tes envies, tu peux passer par Node-RED pour aller lire tes sensors dans Home Assistant et les envoyer dans ta base de données avec le nom que tu veux. Je fais également cette manipulation pour un autre projet et ça fonctionne super bien.

Je suis sur smartphone…si tu veux plus de précisions, demande.

2 « J'aime »

Merci @Guillaume_B,
C’est exactement ce dont j’ai besoin.

Du coup je vais me pencher plus attentivement sur l’ensemble InfluxDB + Grafana sur un second raspberry dédié avec docker compose. Je renommerai effectivement les données avec Nodered avant injection dans InfluxDB afin de garder la main pour le futur.

Je posterai içi un exemple une fois ma solution fonctionelle si cela est pertinent pour vous.

Tu n’es pas obligé de passer par Docker. J’ai installé cette solution directement sur Debian. Ça fait une couche en moins.

Attention à l’installation d’InfluxDB, il y a la version 2.0 qui est sortie. Elle amène beaucoup de changement. Personnellement je suis resté sur version 1.8 :wink:

A l’occasion, je vais essayer de t’envoyer la fonction que j’utilise pour mettre en forme les données dans Node-RED avant l’insertion dans la DB.

1 « J'aime »

Merci c’est gentil !

Je vais me pencher dessus mais je pense que je partirai sur la dernière version si node-red est compatible avec. Cela m’évitera une migration :wink:

Pensez-vous qu’un raspberry pi 3 B+ soit suffisant pour au minimum faire un test ? Car j’ai prévu à Noël prochain d’investir dans un NUC donc je migrerai après.

C’est sur, mais docker est quand même préconisé pour les débutant.

Le simple fait de tout retrouver dans un seul et unique répertoire, le synchroniser sur un nas pour sauvegarde et se dire que si demain on change de machine, on a rien a faire a part reprendre son container et sa configuration (docker-compose aide la aussi).

1 « J'aime »

Il y a une super explication qui colle exactement avec mon besoin !

=> https://forum.hacf.fr/t/influxdb-aller-encore-plus-loin/3673?u=neuvidor!

Je suis d’accord pour docker car je veux être indépendant du hardware pour facilement évoluer ou simplement en cas d’un crash matériel.

Concernant HA je crée des Snapshots que je synchronise sur mon NAS chaque nuit. Trop eu de mauvaise surprise ! Donc je pense que j’aimerai faire la même chose avec influxDB et Grafana.

1 « J'aime »

@Guillaume_B, @Clemalex,
Au final j’ai mis en place une machine de test avec Proxmox.

J’ai mis 2 container LXC Ubuntu 21.04 pour respectivement Grafana et InfluxDB. J’ai aussi mis une machine virtuelle avec Home Assistant OS afin de faire fonctionner tous ceci ensemble et apprendre à gérer les backup correctement.

Encore merci pour vos conseils !

Hello,

Sinon, sans passer par Influx, tu peux également déporter ton recorder en dehors de ta machine HA.
Dans HA, on peut utiliser « MariaDB » comme recorder (via l’addon) qui install le gestionnaire de DB dans un container (dans le cas de HAOS). Ensuite il faut ajouter :

recorder:
  db_url: mysql://homeassistant:password@core-mariadb/homeassistant?charset=utf8mb4

Mais il est possible d’utiliser une URL externe qui pointe ton MySQL/MariaDB :

recorder:
  db_url: mysql://homeassistant:password@remoteipaddress/homeassistant?charset=utf8mb4

Il faut juste veiller à ce que cette DB soit accessible de l’extérieure.

Bonjour @Akinaria,

Merci pour l’info.

J’avais effectivement vu que ceci était faisable mais cela ne convient pas à mon besoin. Je souhaite stocker des années et des années d’historique.

Ceci concernant la partie recorder, d’après ce que j’ai lu ceci n’est pas fait pour historiser sur du long terme. Dans mon cas 7 jours est suffisant concernant l’historique HA. Ceci pour avoir des temps de chargement des graphiques acceptable.

J’effectue actuellement des tests sur mon proxmox, la manip en cours :

  • 1x Virtual Machine avec HomeAssistant OS
  • 1x container LXC avec UBUNTU 21.04 & NodeRed
  • 1x container LXC avec UBUNTU 21.04 & InfluxDB v2.0
  • 1x container LXC avec UBUNTU 21.04 & Grafana

Chaque élément est indépendamment sauvegardé. Ceci de façon régulière sur un NAS de façon automatique. Pour le moment j’arrive à récupérer les données de HA dans Nodered et à l’envoyer dans InfluxDB v2.0 (et non pas v1.8 afin de ne pas me taper une migration dans peu de temps).

Il me reste maintenant à utiliser les données InfluxDB dans Grafana.
Viendra ensuite le nettoyage quotidien de la base de données pour ne garder que les MIN / MAX / MOYENNE par jour pour l’historique de plus de 7 jours. Ceci afin de limiter la taille de la base de données sur le long terme.

Hello @Neuvidor,

Effectivement, la sauvegarde sur le long terme est un peu différente et l’utilisation d’influx est plus appropriée. J’y passerai certainement très prochainement après l’installation du monitorage des consommations (je reçu hier ma commande d’un shelly 3em pour cela).

Salut à tous,

Bon j’arrive maintenant à intégrer des anciennes données en forçant le timestamp dans nodered du coup la bonne nouvelle c’est que je vais pouvoir intégrer mes anciennes data et donc ne pas perdre mon historique. => 8 années quand meme !

Je vais cependant regarder si cela ne serait pas plus simple (ou plus rapide) d’intégrer un fichier CSV.

Mon idée étant :

  • Exporter mes anciennes données issuent de la base mySQL de DOMOTICZ vers un fichier CSV
  • Modification du CSV pour correspondre à 100% à l’architecture de ma nouvelle database InfluxDB
  • Importer le CSV modifié dans influxDB v2.0

Si tu as un peu de temps je serais intéressé par ta methode complète.

Récupération des donnée via Node Red, formatage et envoi vers influx et nettoyage des valeurs ne servant plus apres X jours.

Merci d’avance

Salut @McFly,

Comme j’ai dit à Pulpy hier, j’ai malheureusement du mettre un peu en pause le sujet (découverte des Cryptomonnaie et du potentiel de la technologie blockchain).

Je partagerai bien évidemment ma solution, c’est le but de la communauté, obtenir de l’aide mais également en fournir (quand on peut) :grin: