[Tuto] Home assistant et MsunPV
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 432
- Remerciements reçus 95
Au vu des valeurs sur tes graphiques je pense que tu as un problème d'échelle sur tes valeurs de enconso, enpv_j et eninj.
Vérifie que tu soit bien soit en kWh soit en Wh car j'ai l'impression que tes valeurs sont divisées par 1000.
A la base sur le tuto je travaille de partout en Wh car de base mon routeur me remonte des Wh et c'est pour cela que quand j'ai créé les sensors énergie j'ai fait une division par 1000 car le dashboard énergie demandait des kWh
Si jamais ton routeur remonte des kWh (il me semble que c'est possible maintenant) alors il faudra enlevé la division par 1000 dans le code des sensors énergie
Connexion ou Créer un compte pour participer à la conversation.
- M@tt
- Hors Ligne
- Membre junior
- Messages : 32
- Remerciements reçus 1
En fait la division par 1000 était bonne, ptêtre un truc qui avait pas été pris en compte. Ça fonctionne maintenant.
Connexion ou Créer un compte pour participer à la conversation.
- Paps42
- Hors Ligne
- Membre premium
- Messages : 154
- Remerciements reçus 33
je me permet de revenir vers toi puisque j'ai un problème avec mes shell_command.
j'ai remarqué ce matin que lorsque je lance mon script j'ai une erreur :
Échec de l'appel du service script/script_off_sortie3. 'utf-8' codec can't decode byte 0xe9 in position 162: invalid continuation byte
j'ai regardé ce qui bloque et c'est la shell_command. cela fonctionnait parfaitement chez moi jusqu'a encore une mise a jour je suppose.
de mon coté, j'ai pas trouvé ce qui cloche.
je voulais savoir si chez toi cela fonctionne ?
si tu as une idée de ce qui merdouille ?
tiens moi au courant.
@+
ps: voici ci dessous mes commandes :
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 432
- Remerciements reçus 95
Je pense comme toi que cela est du à une mise a jour récente de HA. Va falloir investiguer
Connexion ou Créer un compte pour participer à la conversation.
- Paps42
- Hors Ligne
- Membre premium
- Messages : 154
- Remerciements reçus 33
enfin presque, le script est lancé et se fait en partie puisque l'erreur bloque sur l'envoi de la commande (qui elle fonctionne et est exécuté).
et comme dans mon script, sur tes conseils, j'avais mis la requête de réactualisation du statut par rapport au xml du msunpv, et bien, cette réactualisation ne fonctionne pas.
du coup le statut de mon bouton ne reviens pas immédiatement, il me faut attendre le délai de réactualisation de la requête automatique toutes les 30 secondes.
(j'ai contourné le problème en créant une automatisation pour lancer une requête d'actualisation chaque fois qu'un sensors de mon msunpv est modifié et la cela fonctionne.)
je pense que ce problème doit venir d'une mise a jour si cela le fait aussi chez toi.
c'est ca qui est pénible par rapport au mise a jour, cela n'apporte pas toujours que du bon.
en tout cas si de ton coté tu trouve a solutionner différemment ce problème, tiens nous informé.
Merci a toi.
@+
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 432
- Remerciements reçus 95
Du coup l'erreur se produit à cause des caractères accentués contenu dans le xml, byte 0xe9 correspondant à un "é".
Ne pouvant pas agir sur l'encodage du fichier xml, j'ai essayé de dire à curl de travaillé en format iso-8859-1 mais sans succès. Je sais même pas si c'est possible dans home assistant d'ailleurs à mins d'aller faire des modifs dans les fichiers système peut être.
Du coup aujourd'hui y repensant je me suis dit que par msapp on pouvait changer certains noms de commandes sans savoir si le xml était généré avec des nom prédéfinis ou avec ceux que l'on choisissait (Ce qui me paraissait le plus probable d'ailleurs).
J'ai donc modifié ma config sur msapp pour virer tous les accents présents, le but étant de n'avoir plus que des caractères qui sont encodés de la même façon en iso-8859-1 qu'en utf-8.
Pour ma par je n'en avait que 3 (config par défaut sur un deux voies).
J'ai modifé :
- Le nom PowRéso de S1 PowReso en PowReso dans l'onglet entrées/sorties de msapp
- Le nom VoltRés de S5 VoltRes en VoltRes dans l'onglet entrées/sorties de msapp
- Dans les paramètres de Cmd8 Test Routeur dans l'onglet commandes de msapp, le nom de Zéro par Zero
Suite à ça j'ai appliqué la nouvelle config et fait affiché le xml dans un navigateur pour voir si j'avais toujours des accents ou pas. Il n'y en avait plus. J'ai testé la commande sur home assistant et je n'ai plus d'erreur.
Après ça je me suis félicité de n'avoir mis aucun accent quand j'ai écrit tous les sensors pour le MsunPv dans home assistant. (déjà qu'un de ces quatre il va falloir que je corrige les float et les int pour avoir une valeur par defaut)
A toi de jouer
Connexion ou Créer un compte pour participer à la conversation.
- Paps42
- Hors Ligne
- Membre premium
- Messages : 154
- Remerciements reçus 33
je vais essayer cette modif dans le weekend, je te tiendrais informé.
Merci de tes investigations et du partage de la solution.
@+, bon weekend
Connexion ou Créer un compte pour participer à la conversation.
- syl2222fr
- Hors Ligne
- Membre elite
- Messages : 209
- Remerciements reçus 17
Avant hier, suite à une grosse conso clim en journée , mon automatisation avait décidé de chauffer le CE la nuit (pfff, en plein été ....) et j'avais rencontré ce bug.
A peine rencontré, à peine réparé !
Merci à toi
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 432
- Remerciements reçus 95
Afin de rendre l'intégration du MsunPV plus simple et plus accessible aux débutants, j'ai profité de la réécriture des template sensors pour les rendre conforme à la "nouvelle norme" de home assistant, pour tout rassemblé en un seul et même fichier que vous pouvez télécharger à la fin de ce post.
Ce fichier comprend les sensors pour les entrées, les compteurs, les commandes et également les sensors pour le dashboard énérgie de home assistant.
Méthode d'installation :
- Télécharger le fichier msunpv.zip à la fin de ce post et en extraire le fichier msunpv.yaml
- Dans le répertoire config de home assistant créer un répertoire nommé packages (si il n'est pas déjà présent)
- Dans ce répertoire packages coller simplement le fichier msunpv.yaml
- Ouvrir le fichier msunpv.yaml pour remplacer "IP_DU_MSUNPV" par l'adresse IP de votre routeur partout ou cela est nécessaire (11 fois)
- Ouvrir le fichier configuration.yaml et ajouter les lignes suivantes (si elles ne sont pas déjà présentes)
homeassistant:
packages: !include_dir_named packages
- c'est tout
Le code du fichier msunpv.yaml :
#Fichier de configuration des sensors msunpv
rest:
#Récupération des données
- resource: http://IP_DU_MSUNPV/status.xml
scan_interval: 20
method: GET
sensor:
- name: "msunpv_xml"
json_attributes_path: "$.xml"
value_template: "OK"
json_attributes:
- "inAns"
- "cmdPos"
- "cptVals"
template:
- sensor:
#Les entrées
- name: msunpv_powreso #Puissance réseau
unique_id: "msunpv_powreso"
state: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[0] |float }}
device_class: power
unit_of_measurement: "W"
- name: msunpv_powpv #Puissance panneaux
unique_id: "msunpv_powpv"
state: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[1] |float }}
device_class: power
unit_of_measurement: "W"
- name: msunpv_outbal #% routage cumulus
unique_id: "msunpv_outbal"
state: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[2] |int }}
unit_of_measurement: "%"
- name: msunpv_outrad #% routage radiateur
unique_id: "msunpv_outrad"
state: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[3] |int }}
unit_of_measurement: "%"
- name: msunpv_voltres #Tension réseau
unique_id: "msunpv_voltres"
state: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[4] |float }}
unit_of_measurement: "V"
- name: msunpv_t_bal1 #Température cumulus
unique_id: "msunpv_t_bal1"
state: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[5] |float }}
unit_of_measurement: "°C"
- name: msunpv_t_sdb #Température salle de bain
unique_id: "msunpv_t_sdb"
state: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[6] |float }}
unit_of_measurement: "°C"
- name: msunpv_t_amb #Température ambiante
unique_id: "msunpv_t_amb"
state: >-
{{ (state_attr('sensor.msunpv_xml', 'inAns')|replace(" ","")|replace(",",".")).split(";")[7] |float }}
unit_of_measurement: "°C"
#Les compteurs
- name: msunpv_enconso #Consommation réseau journalière
unique_id: "msunpv_enconso"
state: >-
{% set cptVals =state_attr('sensor.msunpv_xml', 'cptVals')|replace(" ","") %}
{{ cptVals.split(";")[0]|int(base=16)/10 |float }}
unit_of_measurement: "Wh"
device_class: energy
- name: msunpv_eninj #Production injectée journalière
unique_id: "msunpv_eninj"
state: >-
{% 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
- name: msunpv_enpv_j #Production panneaux journalière
unique_id: "msunpv_enpv_j"
state: >-
{% 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
- name: msunpv_enpv_p #Production panneaux totale
unique_id: "msunpv_enpv_p"
state: >-
{% 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 manu/auto/test routeur
- name: msunpv_cmdpos
unique_id: "msunpv_cmdpos"
state: >-
{{ state_attr('sensor.msunpv_xml', 'cmdPos') }}
# template sensors for dashboard energy
- name: "energie_enconso" #Consommation journalière
unit_of_measurement: "kWh"
state: "{{ (states('sensor.msunpv_enconso')|float /1000) }}"
device_class: energy
state_class: total_increasing
- name: "energie_enpv_j" #Production panneaux journalière
unit_of_measurement: "kWh"
state: "{{ (states('sensor.msunpv_enpv_j')|float /1000 *-1) }}"
device_class: energy
state_class: total_increasing
- name: "energie_eninj" #Production injectée journalière
unit_of_measurement: "kWh"
state: "{{ (states('sensor.msunpv_eninj')|float /1000 *-1) }}"
device_class: energy
state_class: total_increasing
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"
msunpv_arret_routage: "curl -X POST -d 'parS=0;0;0;0;0;0;0;1;' http://IP_DU_MSUNPV/index.xml"
Pour les explications concernant le fonctionnement vous pouvez vous reporter au premier post de ce sujet elles restent valables.
Si vous avez déjà intégré le routeur à home assistant par l'ancienne méthode et que vous n'avez effectué aucun changement dans le code vous pouvez très bien supprimer les anciens sensors et mettre en place les nouveaux, tout continuera à fonctionné de la même façon, historique compris.
Si vous avez modifié des noms de sensors et autres (valeurs de compteurs en positif, W au lieu de pourcentage etc.) il faudra faire les même modifications sur le nouveau code pour que le changement (si vous souhaitez le faire) soit transparent. Franchement rien d'insurmontable et le changement n'ai pas obligatoire.
Le fichier msunpv :
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Computer
- Hors Ligne
- Membre senior
- Messages : 49
- Remerciements reçus 9
Je vais essayer ça dès que possible.
Super partage
Connexion ou Créer un compte pour participer à la conversation.
- DarkGamelle
- Hors Ligne
- Membre junior
- Messages : 26
- Remerciements reçus 4
Pouvoir ajouter les potentialités d'Home Assistant au MsunPv, c est vraiment Top!
Ça devrait me faciliter la tâche pour gérer mes consommateurs qui ne sont pas connectés sur mon tableau électrique principal (pompe de piscine par exemple) , gérer la limitation d'injection, etc...
J ai hâte de recevoir mon routeur pour mettre en place tout ça
Bonne journée ensoleillé.
Connexion ou Créer un compte pour participer à la conversation.
- syl2222fr
- Hors Ligne
- Membre elite
- Messages : 209
- Remerciements reçus 17
A tout hasard, l'un d'entre vous a déja installé la Maj 104a sur son routeur ?
A-t'il constaté une régression versus HA ?
J'avoue ne pas avoir le temps de faire l'ensemble des tests
Connexion ou Créer un compte pour participer à la conversation.
- etienneroussel
- Hors Ligne
- Membre elite
- Messages : 249
- Remerciements reçus 30
Salut.
A tout hasard, l'un d'entre vous a déja installé la Maj 104a sur son routeur ?
A-t'il constaté une régression versus HA ?
J'avoue ne pas avoir le temps de faire l'ensemble des tests
Salut, idem pour moi, tout marche impeccable tant niveau routeur que HA donc flemme pour l'instant de tout refaire, j'attends d'avoir de la dispo
Connexion ou Créer un compte pour participer à la conversation.
- Tochy
- Auteur du sujet
- Hors Ligne
- Membre platinium
- Messages : 432
- Remerciements reçus 95
Par contre pour les nouvelles config de bases il faudra peut être ajuster au niveau de pow_pv et des compteurs qui seront maintenant en positif.
Il faudrait que j'ai entre les mains un fichier status.xml de la nouvelle version pour être sûr.
Connexion ou Créer un compte pour participer à la conversation.
- patrick
- Hors Ligne
- Administrateur
- Messages : 3134
- Remerciements reçus 483
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- MSun-PV
- Vos installations
- [Tuto] Home assistant et MsunPV