je voudrais fusionner les valeurs d’une ancienne entité vers une nouvelle entité afin de conserver l’historique :
Il s’agit des entités de ma station météo , pilotée via RFLink et un module DYI RFLink Gateway
Cette station est alimentée par panneau solaire et piles rechargeables, mais avec les quelques rayon de soleil, il se peut que les piles ne se chargent pas entièrement, et parfois dans ce cas, HA génère de nouvelles entité.
En fait je pense que le nom des entité provient du module , j’avais le même comportement avec Domoticz lors de changement de piles des capteurs RF
Ce qui m’est arrivé l’autre jour
ancien entité : sensor.dkw2012_0056_xxx
nouvelle entité sensor.dkw2012_0036_xxx
le xxx correspondant à la fonction , exemple :
rain : sensor.dkw2012_0056_rain
hum : sensor.dkw2012_0056_hum
temp : sensor.dkw2012_0056_temp
wind : sensor.dkw2012_0056_wind
windir : sensor.dkw2012_0056_windir
…
je cherche donc à fusionner l’historique de l’ancien sensor.dkw2012_0056_rain vers le nouveau sensor.dkw2012_0036_rain, ainsi que pour toutes les entités
Je n’ai pas réussi à trouver une solution sur les forums (à part une intégration hacs, mais qui ne fonctionne pas avec les entités rflink)
Quand c’est possible, c’est pour ça que c’est bien d’utiliser l’attribut unique_id, comme ça on peut renommer l’entite sans tout perdre (et modifier qq truc via l’interface graphique)
Exemple avec un de mes sensor mqtt :
- name: Batterie Temperature Max
unique_id: Battery_Max_Temperature
object_id: Battery_Max_Temperature
state_class: measurement
device_class: temperature
unit_of_measurement: "°C"
...
Perso je n’utilise pas l’unique_id, parce que comme de toutes façons, il faut renommer l’entity_id pour que les automatisations/cartes soient à jours aussi, ça bascule aussi
Hello,
je me réponds, pour le suivi
le renommage n’a pas été suffisant à mon goût : je n’avais pas l’historique de certaines valeurs (température, pluviométrie…)
j’ai dû m’attaquer à la base de données (mariadb + phpmyadmin dans mon cas), et grace à un youtubeur Allemand trouvé via une recherche sur le site de support HA (je n’ai pas retenu l’url)
En résumé
sauvegarde complete de HA
via Phpmyadmin , exécution des commandes SQL :
UPDATE statistics SET metadata_id = (SELECT id FROM statistics_meta WHERE statistic_id = "sensor.dkw2012_0036_hum") WHERE metadata_id = (SELECT id FROM statistics_meta WHERE statistic_id = "sensor.dkw2012_0056_hum")
Avec : sensor.dkw2012_0036_hum = nouveau id entité
et sensor.dkw2012_0056_hum = ancien id entité
et idem pour chacun des entités du capteurs méto RFLINK sensor.dkw2012_00**_xxxx
J’ai eu , pour chacun des entités, des doublons d’index , qui bloquaient la mise à jour (c’est peut peut-être pour cette raison que la méthode de « base » n’avait pas entièrement fonctionné)
avec ce message d’erreur : #1062 - Duplicata du champ ‹ 1307-1733155200 › pour la clef ‹ ix_statistics_statistic_id_start_ts ›
dans la table « statistics » j’ai isolé les enregistrements dont le champ metadata_id = 1307
et le champ created_ts=1733155200
et je les ai supprimé.
idem pour tous les enregistrements duplicate
J’ai ainsi récupéré mes historiques
MAIS : on touche à la BD, ainsi toutes mauvaises manipulations peut casser HA…
Donc solution workaround a appliquer avec des pincettes, avec une petite connaissance SQL, et surtout une sauvegarde en cas de plantage
Ce que tu fais là via la BDD n’est ni plus ni moins que le renommage des entity_id que j’évoque plus haut. Il ne s’agit pas des appareils, mais bien des entités.
Evidement, c’est donc à faire sur chacune d’entres-elles.
Je me permets d’intervenir sur le sujet car venant également de Domoticz, et bien que HA soit largement devant en terme d’ergonomie et fonctionnalité, je trouve que c’est un domaine sur lequel HA pourrait s’améliorer, le remplacement de capteur…
Sur Domoticz c’est vraiment facile, si une fonction devait être implémentée dans les prochaines versions de HA, celle-ci serait la bienvenue !
Bonjour,
Oui désolé je n’avais pas répondu à la proposition du WTH, mais j’étais allé voir et effectivement je suis tombé sur le sujet de 2022, je ne suis donc pas allé plus loin…
Je vais aller jeter un coup d’œil à ton lien, merci.
[Edit] le lien ne fonctionne pas…