Acces database externe

Bonjour a tous

Encore moi (si vous en avez marre, j’arrete)

comme je l’ai expliqué, j’utilise un domotique completement DIY et petit a petit, je voudrais migrer sur HA

j’ai deja (grace a votre aide précieux) resolu pas mal de problemes

ma domotique stock ses informations (valeurs des capteurs, etat des actionneurs, …) dans une bas MySQL (j’ai un serveur MySQL sur une machine dediée)

aujourd’hui, je voudrais lire ses valeurs depuis HA

j’ai bien trouvé la doc HA traitant de SQL, mais elle ne traite que des bases interne ou dédié

est il possible de venir lire une valeur et par exemple, l’afficher dans une carte?

je ne vois pas comment récuperer les valeurs dans ma DB

J’ai jamais utilisé mais il y a une intégration SQL qui permet de récupérer le résultat d’un select dans un sensor.

J’ai lu cette doc
En fait, ce n’est pas très clair
Est ce que cela met la valeur lu en DB et la place dans un sensor
Ou est ce que cela lit la valeur d’un sensor dans la DB de HA
J’ai du mal à déterminer
J’ai essayé de faire un accès à une DB externe, mais la validation de la config me fout dehors

Bon, je progresse un peu
J’arrive à mettre une valeur dans un sensor

C’est un début

Le principe d’accès est acquis

Maintenant, comment faire pour lire toutes les valeurs d’un champ

Elle doivent se mettre sous forme de Array j’imagine
Mais comment les lire avec HA? ……

Salut, vu que tu utilises déjà Nodered, pourquoi ne pas faire un flow avec

Effectivement, nodered peut le faire, mais le but étant de comprendre le fonctionnement pour ne pas systématiquement passer par nodered si je peux éviter de rajouter des étapes

Partage ton code/configuration de l’entité côté HA et la structure de ton champ…

Je ne comprends pas.

Pourquoi utilise-tu Node-RED ? Il serait plus logique (dû mon dans ma tête) que si j’utilisais Node-RED, j’essaierai en priorité de passer par lui. :innocent:

Pas de soucis en tout cas…

Je suis en déplacement et c’est un peu compliqué de mettre le code maintenant
Mais je fais ça demain soir en rentrant

En fait, il y a pleins de paramètres à prendre en compte (qui sont peut-être tous faux)

Node red me permet d’envoyer des requête HTTP à mes commandes actuelles
Il me permet provisoirement de lire des valeurs dans la DB, mais je suis obligé de mettre un « inject » avec une boucle pour lire les valeurs suffisamment souvent
D’où une question dont la réponse me permettra d’orienter mon choix : si un sensor lit sa valeur dans une DB, quelle est la réactivité de HA pour mettre à jour la valeur de ce sensor ?
En gros, HA lit il m’a valeur en DB à intervalles réguliers (parametreable ou non?) où est il capable de lire en cas de changement de la valeur ?

De plus, il est toujours bon de connaître le fonctionnement de HA (lorsque j’apprends, j’aime bien aller au bout des choses maîtriser le sujet et surtout, comprendre ce que je fait)

C’est pour cela que je pose beaucoup de questions

Et pour le moment, (et il n’y a aucune raison que ça change) je trouve ce forum génial
Nombreux d’entre vous m’ont accordé beaucoup de temps (c’est ton cas Clemalex)
D’autres m’on même accordé du temps au téléphone
Alors que je ne suis partis vous que depuis quelques jours

1 « J'aime »

Hello
Personnellement je me poserai la question de faire remonter les informations directement dans ha (genre mqtt) plutôt que de passer par une base mais c’est pas le sujet du moment

Oui si tu ajoute une répétition de déclenchement, à l’intervalle que tu configure

On est bien d’accord que c’est nodered qui va chercher la valeur… Autrement dit savoir que la valeur à changé, ça impose forcément d’aller la lire dans tous les cas avant…

voicil la requette :

  - platform: sql
    db_url: mysql://login:password@192.168.1.62/logdomo
    queries:
      - name: DBtest_tempo_jour
        query: 'SELECT tempo_jour FROM variables WHERE ID=1;'
        column: "tempo_jour"  

en fait, c’est plus compliqué que ça

par exemple, je pilote ma piscine avec un Raspberry
pour l’etat de la pompe, il y a 4 possibilité : arret, programmé, forcé ou hors gel

je suis obligé de stocker l’etat de fonctionnement dans un DB pour que, en cas de coupure d’electricité et d’un arret TOTAL des installations, le meme etat soit repris au redemarrage

si ces valeurs sont en RAM ou volatile, il n’y a pas de reprise a l’état initial

je parle d’un cas de lecture en DB directement depuis HA, sans passer par Node Red dans ce cas là

y a t il quelque chose a faire pour rafraichir la lecture?

Moi plutôt que de lire en base je ferai pousser l’information au démarrage et à chaque changement par le pi, via mqtt.
Comme ça tu as pas besoin de lire x fois dans une base un truc qui va pas changer si souvent…

1 « J'aime »

Je partage ton avis. MQTT doit convenir

pas bete
donc, tu ne fait une lecture QUE lorsque la valeur change?
c’est ça
Je ne maitrise pas MQTT (pas encore)
Et encore, au demarrage, tu lis la valeur, tu la pousse via MQTT aux periphriques en ayant besoin
en cas de changement, tu pousse la nouvelle valeur et tu l’ecris en DB pour un prochain redemarrage
c’est ça?

Mqtt c’est ni plus ni moins qu’un message poussé par ton pi.
Tu ajoutes juste la création et l’envoi du message à chaque changement d’état du pi et c’est tout. Tu gardes l’existant dans ta base comme avant sans rien faire de plus.

Côté HA ça crée automatiquement un sensor. Tu affiche ce sensor etc… Pas de lecture à faire, pas de refresh, pas de base en plus

bon, je n’ai pas encore trouvé comment lire toutes les valeurs d’un champ (mais ça viendra)

mais pour le moment, je me concentre sur ma table de stockage des variable
donc, mes sensor lisent leurs valeurs dans le DB

maintenant, il faut que je change cette valeur (apres modification ) dans la DB

donc, ce n’est plus un SELECT, mais un UPDATE qu’il faut que je fasse

comment gerer ça avec HA ?
là, il n’est olus question de sensor?

Personne n’a écrit en DB depuis HA?

j’avoue que si je pouvais m’éviter de rajouter un brique Node Red, ça m’arrangerai

C’est l’inverse du besoin premier…

L’externalisation des données, sur HA c’est souvent du influxDB… C’est plus standard et plus souple qu’une base mysql personalisée

dommage
ma base My SQL existe deja sur un serveur MySQL dedié
et elle est deja grandement utilisé pour ma domotique
j’aurais voulu continué a l’utilisé

je vais passer par un étpe supplémentaie en utilisant un noeud Node Red, mais j’aurais preferé eviter