[Tuto] Home assistant et MsunPV
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
J'ai réécrit tout le code pour le routeur pour que cela soit plus simple à installer. Retrouver la nouvelle méthode en page 10 de ce sujet.
Toutes les explications fournies sur le fonctionnement restent cependant valables et se trouvent dans ce post et les suivant ainsi que sur le Github créé pour l'occasion.
Précision préalable, je me base sur un MsunPV2_2 puisque c'est celui que je possède mais facilement modifiable pour une version MsunPV4_4.
- Le but :
Récupérer les infos présentent dans le fichier généré par le MsunPV à l'adresse http://IP_DU_MSUNPV/status.xml (En remplaçant IP_DU_MSUNPV par l'IP de votre MsunPV)
<rtcc>20:48:57 JE</rtcc>
<paramSys>20:48:58;02/03/2023;On;01:00;0,0;MS_PV2_2b;5.0.1;0000220;103c;103a;00:00;00:00</paramSys>
<inAns>317,5;80,3; 0; 0;232,4;0,0;0,0;0,0; 0; 0; 0; 0; 0; 0; 0; 0;</inAns>
<survMm>0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;</survMm>
<cmdPos>0;0;0;0;0;0;0;2;</cmdPos>
<outStat>0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;</outStat>
<cptVals>253c8;ffff470b;fffd937f;fff73d70;0;0;0;0;</cptVals>
<chOutVal>0;0;0;ff;:0,0;0,0;0,0;0,0;</chOutVal>
</xml>
Je souhaite récupérer les lignes inAns, cmdPos et chOutVal qui contiennent les infos qui m'interressent et les assigner à des sensors Home Assistant afin de pouvoir soit les afficher soit les exploiter dans des automatisations ou scripts.
- Le code permettant celà :
#MsunPv
#Récupération des données
- platform: rest
name: msunpv_xml
resource: http://IP_DU_MSUNPV/status.xml
json_attributes_path: "$.xml"
scan_interval: 30
method: GET
json_attributes:
- "inAns"
- "cmdPos"
- "cptVals"
value_template: "OK"
- platform: template
sensors:
#Les entrées
msunpv_powreso:
unique_id: "msunpv_powreso"
friendly_name: "Puissance réseau"
value_template: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[0] |float }}
unit_of_measurement: "W"
msunpv_powpv:
unique_id: "msunpv_powpv"
friendly_name: "Puissance panneaux"
value_template: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[1] |float }}
unit_of_measurement: "W"
msunpv_outbal:
unique_id: "msunpv_outbal"
friendly_name: "% routage cumulus"
value_template: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[2] |int }}
unit_of_measurement: "%"
msunpv_outrad:
unique_id: "msunpv_outrad"
friendly_name: "% routage radiateur"
value_template: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[3] |int }}
unit_of_measurement: "%"
msunpv_voltres:
friendly_name: "Tension réseau"
value_template: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[4] |float }}
unit_of_measurement: "V"
msunpv_t_bal1:
friendly_name: "Température cumulus"
value_template: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[5] |float }}
unit_of_measurement: "°C"
msunpv_t_sdb:
friendly_name: "Température salle de bain"
value_template: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[6] |float }}
unit_of_measurement: "°C"
msunpv_t_amb:
friendly_name: "Température ambiante"
value_template: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[7] |float }}
unit_of_measurement: "°C"
#Les compteurs
msunpv_enconso:
unique_id: "msunpv_enconso"
friendly_name: "Consommation réseau journalière"
value_template: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ cptVals.split(";")[0]|int(base=16)/10 |float }}
unit_of_measurement: "Wh"
device_class: energy
msunpv_eninj:
unique_id: "msunpv_eninj"
friendly_name: "Production injectée journalière"
value_template: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ (0 if cptVals.split(";")[1]|int(base=16)|int == 0 else ((0xFFFFFFFF - cptVals.split(";")[1]|int(base=16)) * -1)/10) |float }}
unit_of_measurement: "Wh"
device_class: energy
msunpv_enpv_j:
unique_id: "msunpv_enpv_j"
friendly_name: "Production panneaux journalière"
value_template: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ (0 if cptVals.split(";")[2]|int(base=16)|int == 0 else ((0xFFFFFFFF - cptVals.split(";")[2]|int(base=16)) * -1)/10) |float }}
unit_of_measurement: "Wh"
device_class: energy
msunpv_enpv_p:
unique_id: "msunpv_enpv_p"
friendly_name: "Production panneaux totale"
value_template: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ (0 if cptVals.split(";")[3]|int(base=16)|int == 0 else ((0xFFFFFFFF - cptVals.split(";")[3]|int(base=16)) * -1)/10) |float }}
unit_of_measurement: "Wh"
device_class: energy
#Les commandes
msunpv_cmdpos:
unique_id: "msunpv_cmdpos"
friendly_name: "Commandes manu/Auto"
value_template: >-
{{ state_attr('sensor.msunpv_xml', 'cmdPos') }}
Ce code est à placer tel quel (En remplaçant IP_DU_MSUNPV par l'IP de votre MsunPV), soit dans le fichier sensor.yaml si vous en possédez un, soit dans le configuration.yaml (si vous n'avez pas de fichier sensor.yaml) sous la ligne "sensor:" en respectant l'indentation ci dessous:
sensor:
#MsunPv
#Récupération des données
- platform: rest
name: msunpv_xml
resource: http://192.168.0.38/status.xml
json_attributes_path: "$.xml"
scan_interval: 30
method: GET
json_attributes:
- "inAns"
- "cmdPos"
- "cptVals"
value_template: "OK"
- platform: template
sensors:
#Les entrées
msunpv_powreso:
...
- Attention :
Si vos compteurs EnInj, EnPV_J et EnPV_P sont en valeurs positives sur la page du MsunPV alors remplacez les lignes suivantes :
msunpv_eninj:
unique_id: "msunpv_eninj"
friendly_name: "Production injectée journalière"
value_template: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ (0 if cptVals.split(";")[1]|int(base=16)|int == 0 else ((0xFFFFFFFF - cptVals.split(";")[1]|int(base=16)) * -1)/10) |float }}
unit_of_measurement: "Wh"
device_class: energy
msunpv_enpv_j:
unique_id: "msunpv_enpv_j"
friendly_name: "Production panneaux journalière"
value_template: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ (0 if cptVals.split(";")[2]|int(base=16)|int == 0 else ((0xFFFFFFFF - cptVals.split(";")[2]|int(base=16)) * -1)/10) |float }}
unit_of_measurement: "Wh"
device_class: energy
msunpv_enpv_p:
unique_id: "msunpv_enpv_p"
friendly_name: "Production panneaux totale"
value_template: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ (0 if cptVals.split(";")[3]|int(base=16)|int == 0 else ((0xFFFFFFFF - cptVals.split(";")[3]|int(base=16)) * -1)/10) |float }}
unit_of_measurement: "Wh"
device_class: energy
Par :
msunpv_eninj:
unique_id: "msunpv_eninj"
friendly_name: "Production injectée journalière"
value_template: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ cptVals.split(";")[1]|int(base=16)/10 |float }}
unit_of_measurement: "Wh"
device_class: energy
msunpv_enpv_j:
unique_id: "msunpv_enpv_j"
friendly_name: "Production panneaux journalière"
value_template: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ cptVals.split(";")[2]|int(base=16)/10 |float }}
unit_of_measurement: "Wh"
device_class: energy
msunpv_enpv_p:
unique_id: "msunpv_enpv_p"
friendly_name: "Production panneaux totale"
value_template: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ cptVals.split(";")[3]|int(base=16)/10 |float }}
unit_of_measurement: "Wh"
device_class: energy
- Quelques explications :
- platform: rest
name: msunpv_xml
resource: http://IP_DU_MSUNPV/status.xml
json_attributes_path: "$.xml"
scan_interval: 30
method: GET
json_attributes:
- "inAns"
- "cmdPos"
- "cptVals"
value_template: "OK"
Pour modifier ce délai vous pouvez modifier la ligne :
scan_interval: 30
#Les entrées
msunpv_powreso:
unique_id: "msunpv_powreso"
friendly_name: "Puissance réseau"
value_template: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[0] |float }}
unit_of_measurement: "W"
...
L'opération est répétée pour chaque valeurs présentent dans les diffrentes lignes.
- Le résultat dans Home Assistant :
Voilà, à vous de vous l'approprier et de l'exploiter comme bon vous semble.
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
La partie 1 n'est pas obligatoire pour faire fonctionner les commandes.
Je me base ici sur un routeur MsunPV2_2. Si vous possédez un MsunPV4_4 la méthodologie reste la même les commandes seront justes différentes.
- Le but :
Pouvoir modifier les commandes du MsunPV afin de forcer les commandes manu/auto ou aucune directement depuis Home Assistant.
- Récupération de la commande reset :
J'ouvre la page du routeur je positionne les switch manu/auto sur la configuration dont je me sert tous les jours :
Ensuite j'affiche le fichier généré par le MsunPV à l'adresse : http://IP_DU_MSUNPV/status.xml (En remplaçant IP_DU_MSUNPV par l'IP de votre MsunPV)
<xml>
<rtcc>20:48:57 JE</rtcc>
<paramSys>20:48:58;02/03/2023;On;01:00;0,0;MS_PV2_2b;5.0.1;0000220;103c;103a;00:00;00:00</paramSys>
<inAns>317,5;80,3; 0; 0;232,4;0,0;0,0;0,0; 0; 0; 0; 0; 0; 0; 0; 0;</inAns>
<survMm>0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;</survMm>
<cmdPos>0;0;0;0;0;0;0;2;</cmdPos>
<outStat>0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;</outStat>
<cptVals>253c8;ffff470b;fffd937f;fff73d70;0;0;0;0;</cptVals>
<chOutVal>0;0;0;ff;:0,0;0,0;0,0;0,0;</chOutVal>
</xml>
Je note la ligne :
<cmdPos>0;0;0;0;0;0;0;2;</cmdPos>
- Récupération des différentes combinaisons possibles :
Je reviens sur la page du MsunPV, je choisi une combinaison de commande manu/auto que je veux récupérer et je réouvre le fichier status.xml pour récupérer sa commande.
Si dans les commandes que vous récupérez, vous avez avez des lettres (a,b,c,d,e,f), ils s'agit de valeurs héxadécimales qui faudra convertir en valeurs décimales.
Ici la dernière commande :
<cmdPos>a;0;0;0;0;0;0;2;</cmdPos>
Devient après conversion :
<cmdPos>10;0;0;0;0;0;0;2;</cmdPos>
- Le code pour créer ces commandes dans home assistant :
- shell_command:
#Commandes msunpv
msunpv_manubal_on: "curl -X POST -d 'parS=1;0;0;0;0;0;0;2;' http://IP_DU_MSUNPV/index.xml"
msunpv_autobal_on: "curl -X POST -d 'parS=2;0;0;0;0;0;0;2;' http://IP_DU_MSUNPV/index.xml"
msunpv_manurad_on: "curl -X POST -d 'parS=4;0;0;0;0;0;0;2;' http://IP_DU_MSUNPV/index.xml"
msunpv_autorad_on: "curl -X POST -d 'parS=8;0;0;0;0;0;0;2;' http://IP_DU_MSUNPV/index.xml"
msunpv_manubal_manurad_on: "curl -X POST -d 'parS=5;0;0;0;0;0;0;2;' http://IP_DU_MSUNPV/index.xml"
msunpv_manubal_autorad_on: "curl -X POST -d 'parS=9;0;0;0;0;0;0;2;' http://IP_DU_MSUNPV/index.xml"
msunpv_autobal_manurad_on: "curl -X POST -d 'parS=6;0;0;0;0;0;0;2;' http://IP_DU_MSUNPV/index.xml"
msunpv_autobal_autorad_on: "curl -X POST -d 'parS=10;0;0;0;0;0;0;2;' http://IP_DU_MSUNPV/index.xml"
msunpv_reset_commandes: "curl -X POST -d 'parS=0;0;0;0;0;0;0;2;' http://IP_DU_MSUNPV/index.xml"
Ce code est à insérer dans le fichier configuration.yaml. Si la ligne -shell_command: est déjà présente copiez simplement les commandes à la suite sinon copiez tout.
Remplacez IP_DU_MSUNPV par l'IP de votre MsunPV.
Les suites de 8 chiffres correspondent aux commandes que vous avez récupérer précédemment.
N'oubliez pas de redémarrer Home Assistant ensuite pour que les commandes soit prises en comptes.
Ces commandes peuvent ensuite être appelées par un service.
- Exemple d'appel d'une commande à l'aide des outils de développement/services :
Appuyez ensuite sur Appeler le service et vous devriez obtenir sur la page de votre routeur :
- Exemple d'utilisation des commandes dans une automatisation :
Cette automatisation mets le routeur en manubal pour une heure à 1h00 tous les jours.
Voilà c'est tout pour aujourd'hui. J'ai essayé d'être le plus complet possible.
A vous de jouer, tester, adapter améliorer.
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
Une commande suplémentaire pour arréter de router le surplus sur le cumulus.
Par exemple vous êtes en vente surplus et vous vous absentez 15 jours : J'arrête le routage et tout le surplus partira sur le reseau.
Commande inspirée par une réponse de Patrick à une question récente.
- Prérequis :
Je me rends sur la page paramètres/commandes du MsunPV et rentre une valeur d'injection surpérieure à la puissance max de ma production.
Ce réglage n'a aucune incidence en fonctionnement normal puisque je suis en mode routage.
- La commande :
msunpv_arret_routage: "curl -X POST -d 'parS=0;0;0;0;0;0;0;1;' http://IP_DU_MSUNPV/index.xml"
- Le résultat :
Connexion ou Créer un compte pour participer à la conversation.
- syl2222fr
- Hors Ligne
- Membre elite
- Messages : 203
- Remerciements reçus 16
Un peu hors sujet , mais vu que tu te débrouille bien sur HA , j'ai besoin de ton point de vue.
Avec le retour du beau temps, mon routeur 2*2 ne suffit plus à router mon surplus, et, je commence à injecter.
J'ai 'domotisé' un radiateur electrique (avec esphome + diode + fil pilote off/confort).
Pas de soucis côté Ha pour le piloter.
J'ai crée une petite automatisation
When routage mpvsun, sortie 2 > 300% pendant 1 mn , a condition qu'on soit dans le créneau horaire 9h/16h , alors , on allume le radiateur
=> La sortie 1 de mon routeur est le ballon ECS => si la sortie 2 est > 300% , cela veut dire que le ballon est 'plein' et qu'on route vers le 'radiateur sdb'
Ca, ca marche ... pour l'instant
Par contre, c'est la partie off que j'arrive pas à gérer car:
Mon radiateur est electronique (zut) du coup, il chauffe pas en continu . J'ai du on/off/on/off de la partie chauffe (gestion interne du truc) , ce qui fait que je n'ai rien de constant dans la consommation.
Ceci eut été beaucoup plus simple avec un radiateur sans electronique (consommation en continue sans hachage)
En automatisation Off, j'avais crée:
Si Powreso >50 w pendant 1mn, a condition que le radiateur soit allumé et qu'on soit dans le créneau horaire 9h/16h (ca permet de laisser le radiateur allumé si je l'ai activé à la mano le soir)
Alors , radiateur off.
Bin ca, ca marche pas :
Vu qu'on récupérè les valuers powreso toutes les 30 s.
En 30s, au niveau du routeur, il s'en passe des choses :
Si Il y a beaucoup de soleil: Mon radiateur chauffe, la sortie 2 oscille en positif (normal)
Le radiateur ne chauffe plus (électronique embarquée) : La sortie 2 passe à 400%
Là, c'est normal
Mais, dés que j'ai une baisse de soleil, la sortie 2 passe à 0 et j'ai du powreso qui repasse en positif . C'est normal aussi.
Le hic c'est que ça oscille tellement (soleil/pas soleil/chauffe/pas chauffe du radiateur electronique) que mon automatisation ne voit pas le passage en positif de powreso (ou pas assez longtemps) et du coup ne coupe pas
Je ne vois pas comment regarder /appréhender le truc.
Je dois certainement me fourvoyer sur la méthodologie.
tu aurais une idée ? (en dehors du fait de passer en routeur 4*4 bien sur )
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
Connexion ou Créer un compte pour participer à la conversation.
- syl2222fr
- Hors Ligne
- Membre elite
- Messages : 203
- Remerciements reçus 16
Sortie 1 : Ssr qui pilote en priorité le ballon
Sortie 2 : Ssr qui pilote un radiateur electrique ordianire (non electronique)
Les maxon/off sont réglés de telle sorte que la sortie 2 ne s'active qu'a partir du moment ou la sortie 1 est à 400%
Edit: Quand je dis que mon radiateur est electronique, je parle bien sur de celui que j'ai domotisé via HA, pas celui ui est branché sur la sortie 2 du ssr
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
- virer les conditions de temps pendant 1 minutes
- déclencheur de l'automatisation sur changement de valeur de msunpv_xml comme ça tu aura un déclenchement toutes les 30 secondes déjà
- tu conserve sortie 2>300 et entre 9h et 16h mais tu les mets en condition
- en action tu fais une boucle tant que sortie 2 > 300 et powreso <50 allume le radiateur
- action suivante (quand le tant que n'est plus valable) éteindre le radiateur
Je ne sais pas si c'est très clair mais j'ai un truc de ce style et ça tourne pas mal. Je t'enverrai ça ce Soir
je suis dans le même cas que toi tous les radiateur avec une diode+esp sauf que je n'ai pas de ssr sur la voie 2
Connexion ou Créer un compte pour participer à la conversation.
- syl2222fr
- Hors Ligne
- Membre elite
- Messages : 203
- Remerciements reçus 16
Je vais essayer de
La boucle en action, c'est consommateur en cpu ?
Edit: (mode vie perso) Pour aujourd'hui, j'ai triché : Allumage des clims que j'ai domotisé à distance + surplus via le routeur sur le ssr2 et , ce fameux radiateur électronique. Je me suis fait un peu avoir sur le coup.
J'ai installé mes panneaux fin octobre , donc, recul sur l’hiver Ok,, mais, avec le beau temps, je me rends compte que j'avais pas du tout prévu autant de surplus (je mets un smiley triste ou content ?)
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
Tu peux aussi dans la boucle ajouté une tempo de 8 secondes après avoir allumer le radiateur ainsi sur un cycle de 30 secondes cela ne fera que 3 fois la boucle au lieu de tourner a l'infini. C'est ce que j'ai fait
Connexion ou Créer un compte pour participer à la conversation.
- syl2222fr
- Hors Ligne
- Membre elite
- Messages : 203
- Remerciements reçus 16
Je ne suis pas encore arrivé au top du top, mais, tu as raison . En suivant tes conseils, le comportement est beaucoup plus proche de ce que j'attend !
Edit: En automatisation, une boucle 'while' m'a fait vriller le cpu , du coup, j'ai tout refait et ça donne:
Declencheur: When msunpv_xml changes
Condition: Time condition (9h->14h)
Actions (j'en ai 2):
Repeat an action while Test if 2 conditions match is true
Test if 2 conditions match
* Confirm Puissance réseau is above 50
* Radiateur est activé
=>Désactiver Radiateur
La seconde action:
Repeat an action while Test if 2 conditions match is true
Test if 2 conditions match
* Confirm % Sortie 2 mpvsun is above 300
* Radiateur est désactivé
=>Activer Radiateur
C'est pas toptop , mais, ça fait plutôt bien le job (dixit les graphes de conso du routeur solaire)
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
Declencheur: When msunpv_xml changes
Condition: Time condition (9h->14h)
Action 1:
Repeat an action while Test if 2 conditions match is true
Test if 2 conditions match
* Confirm % Sortie 2 mpvsun is above 300
* Confirm Puissance réseau is
=>Activer Radiateur
=> Attendre que le temps passe à 8secondes
Action 2:
=> Désactiver Radiateur
Le attendre que le temps passe fait que la boucle ne s'execute que 3 ou 4 fois par tranche de 30 secondes au lieu de tourner à toute vitesse et eventuellement saturé le cpu.
Correction : * Confirm Puissance réseau is below 50
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
Le but :
Envoyer automatiquement en fin de jour les valeurs de conso, production et injection dans un fichier google sheet afin de réaliser un suivi journalier.
Prérequis :
- Avoir réalisé le premier tuto pour avoir les données msunpv_enconso, msunpv_eninj et msunpv_enpv_j du fichier status.xml présentent dans Home Assistant
- Avoir son Home Assistant accessible à distance https.
Voir ce tuto si vous ne savez pas comment passer Home Assistant en https :
- Créer un projet sur La console google developers pour activer les api google drive et google sheets
Voici un tuto en anglais mais relativement simple à comprendre sur la marche à suivre : www.smarthomejunkie.net/how-to-use-googl...s-in-home-assistant/ .
Attention il faut impérativement être en https afin de pouvoir créer un projet sur la console google developers
La manip :
- Se connecter sur son instance Home Assistant en https
- Installer l'intégration Google sheets dans paramètres/appareils et services/Intégrations. Cliquez sur ajouter une intégration et chercher google puis google sheets
Si tout se passe bien vous devriez être redirigé vers une page google vous demandant de choisir le compte google sur lequel créer le fichier.
Suivez les instructions à l'écran pour finir d'installer l'intégration.
Une fois fini vous devriez vous retrouver avec un nouveau fichier au nom de l'appli que vous avez créer dans la console developer de google sur votre google drive du compte que vous avez choisi.
Ici le fichier se nomme Home Assistant qui est le nom de l'app que j'ai créée dans la console developers google
- Pour tester l'integration vous pouvez aller dans les outils de developpement/services
Vous devriez avoir dans votre fichier google sheets 4 colonnes (created, hello, cool, count) avec les valeurs (date et heure de l'appel du service, world, true, 5). Je ne mets pas d'images car je n'ai pas voulu effacer le contenu de mon fichier.
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
Ci toute la première partie du tuto fonctionne on peut maintenant passer à la suite.
- L'automatisation qui envoie les données tous les soirs à 23h59 :
- Je crée un nouvelle automatisation
- Je modifie l'action en tant que YAML
- Je remplace la partie YAML
Par ce code
service: google_sheets.append_sheet
data:
config_entry: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
worksheet: Raw data
data:
Conso_edf: "{{ states('sensor.msunpv_enconso')|float }}"
Production_pv: "{{ states('sensor.msunpv_enpv_j')|float *-1 }}"
Injection: "{{ states('sensor.msunpv_eninj')|float }}"
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 414
- Remerciements reçus 92
- Le résultat :
Tous les soirs à 23h59 une nouvelle ligne est ajoutée surla page Raw data et les pages mensuelles sont automatiquement remplies en fonction de Raw data et de la page tarifs EDF.
En fin d'année je crée une copie du fichier que je renomme par exemple Home Assistant 2023, je change l'année dans la page Tarifs EDF et j'efface toutes les données de la page Raw data et cela devrai repartir pour l'année suivante.
Je vous mets en fichier joint mon fichier qu'il faudra importer dans votre google sheet si vous ne voulez pas tout refaire.
Il vous suffira alors d'effacer les données sur la page Raw data, de mettre votre tarif heure pleine sur la page Tarifs Edf. N'effacez surtout rien sur les pages mensuelles sous peine d'effacer toutes les formules, elles se remplissent seules.
Vous pouvez par contre sur la page Raw data rajouter votre données à la main. Par exemple sur mon fichier les données du 01/03 au 09/03 ont été saisies à la main pour commencer le fichier au premier mars.
Je pense que mon fichier n'est pas encore définitif et devrait encore evolué.
J'ai essayé dêtre le plus clair possible mais c'est pas toujours evident donc si il y'a des questions n'hesitez pas.
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- syl2222fr
- Hors Ligne
- Membre elite
- Messages : 203
- Remerciements reçus 16
Ca m'ennuie de répondre dans ce fil, car on est sur un tuto , mais , plutôt que te spam en message privé, je continue ici
Je ne comprends pas trop pourquoi tu fais 2 boucle puisque de toute façon toutes les 30 secondes l'automatisation demarrera. Si pas de changement sur les conditions elle sera toujours dans sa boucle sinon elle en sortira et fera la seconde action.
....Pour la simple et bonne raison que je ne sais (pas encore) ce que je fais
Plus sérieusement, je tâtonne pas mal avec les automatisations. A relire ce que j'ai fais sur mes automatisations, je me rend compte que j'ai fait de la ****** (à ma décharge , ça ne fait que 1 à 2 mois que j'ai basculé sur HA)
le while ne me plait pas trop , car, ça sous-entend que l'automatisation tourne tout le temps.
Je préfère un déclencheur qui génère des vérifications et des changements et basta jusqu'au prochain déclencheur(c'est incompréhensible ce que je viens d'écrire).
Je viens de tenter (ou plutôt, de découvrir) "Choose between 2 actions" (a la place du while), et , je viens aussi de me rendre compte qu'il y a un 'effet non désiré' (si à 13h59:45 le radiateur passe à ON par l'automatisation, bin, il reste à ON jusqu’au lendemain.
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- MSun-PV
- Vos installations
- [Tuto] Home assistant et MsunPV