Intefaçage avec Domoticz
- Accarien
- Auteur du sujet
- Hors Ligne
- Membre senior
- Messages : 71
- Remerciements reçus 3
J'aimerais que mon MsunPV envoie les valeurs de Puissance produite et réseau sur mon serveur domoticz, j'ai cru comprendre que c'était possible avec l'application PC
J'ai démarré l'application, qui trouve bien le routeur MsunPV, en bas de l'onglet "réseau" j'ai rempli les champs comme sur l'image jointe.
Si je tape dans mon navigateur "http://192.168.1.73:8080/json.htm?type=command¶m=udevice&idx=4606&svalue=4080" le dispositif ayant l'idx 4606 se met bien à jour dans domoticz.
J'ai donc bidouillé pour que l'url en bas corresponde. Malgré cela l'appui sur "Test envoi requête" ne met pas à jour le dispositif.
Je ne comprends d'ailleurs pas comment associer par exemple PowRéso à l'idx 4606 et les autres à d'autres idx
Je n'ai pas osé cliquer sur envoi config, ne sachant pas si cela met à jour uniquement cette partie dans le mSunPV
Pourriez vous m'éclairer svp ?
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- patrick
- Hors Ligne
- Administrateur
- Messages : 3085
- Remerciements reçus 475
Tu peux t'inspirer de ce qu'avait fait Forhorse: ard-tek.com/index.php/forum/faq/318-jeedom
Ou simplement appeler le fichier status.xml et le décortiquer: ard-tek.com/index.php/forum/faq/318-jeedom#3590
Connexion ou Créer un compte pour participer à la conversation.
- Accarien
- Auteur du sujet
- Hors Ligne
- Membre senior
- Messages : 71
- Remerciements reçus 3
J'ai créé un petit script python qui met à jour mes capteurs Domoticz.
Je le lance toutes les minutes, il télécharge donc le fichier status.xml toutes les minutes, cela ne risque t'il pas de "stresser" le MsunPV ?
Voici le script, si ça peut servir à d'autres :
# coding: utf-8
import requests
import xml.etree.ElementTree as ET
import urllib
urldomoticz="http://192.168.1.73:8080/json.htm?type=command¶m=udevice&idx=" #le debut de l'adresse du serveur Domoticz
urllib.urlretrieve("http://192.168.1.64/status.xml", "status.xml") # l'adresse du MsunPV
# RECUPERATION DES VALEURS DE LA LIGNE inAns =======================================
root = ET.parse('status.xml').getroot()
for x in root.findall('inAns'):
vals_txt=x.text
print(vals_txt)
valeurs=vals_txt.split(';')
# CREATION DES TABLEAUX DE CORRESPONDANCE NOMS et IDX AVEC LES VALEURS PRECEDEMMENT RECUPEREES
noms=["PowReso","PowPV","PowBal","PowRad","VolRes","T_Ball","T_SdB","T_Buro"]
IDX=["4610","4611","4612","-99","4613","-99","-99","-99"]
# SI L'IDX EST POSITIF (SIGNIFIE QUE LE CAPTEUR EXISTE DANS DOMOTICZ) ON ENVOIE LA VALEUR AU CAPTEUR
for i in range(len(noms)):
if int(IDX[i])>0:
print(noms[i],int(IDX[i]),valeurs[i])
url=urldomoticz + IDX[i] + "&nvalue=0&svalue=" + valeurs[i]
print(url)
Response = requests.get(url)
Connexion ou Créer un compte pour participer à la conversation.
- patrick
- Hors Ligne
- Administrateur
- Messages : 3085
- Remerciements reçus 475
Je suis sûr qu'il va en intéresser plus d'un.
Connexion ou Créer un compte pour participer à la conversation.
- Jucous
- Hors Ligne
- Nouveau membre
- Messages : 5
- Remerciements reçus 0
Seulement je ne sais pas le mettre en œuvre!
Je n'ai aucune formation en développement ou presque. J'ai d'abord pensé insérer ce code au niveau du RasperryPi qui fait tourner Domoticz dans le fichier Script/Python en modifiant les adresses et les Idx dans le script pour que cela correspondent à ma configuration.
Cependant, il ne se passe rien.
J'ai essayé de le copier directement au niveau de l'éditeur de script de domoticz mais j'ai des messages d'erreur dans les log concernant l'import de library du début du script.
Par exemple:
2023-02-05 09:27:00.547 Error: Traceback (most recent call last):
2023-02-05 09:27:00.547 Error: File "MSunPV", line 63, in <module>
2023-02-05 09:27:00.547 Error: ModuleNotFoundError: No module named 'requests'
Si une âme charitable pouvait me dépanner?
Bonne journée.
Julien.
Connexion ou Créer un compte pour participer à la conversation.
- Jucous
- Hors Ligne
- Nouveau membre
- Messages : 5
- Remerciements reçus 0
easydomoticz.com/domoticz-et-scripts-les-bases/
Le Shebang (#!/usr/bin/python) manquait en tête du code quand je laissais le Script dans le dossier home/pi/domoticz/scripts/python sur le Rasperry.
Après il faut penser à le rendre exécutable et à créer une cron table.
J'espère que ça complètera.
Bonne semaine.
Connexion ou Créer un compte pour participer à la conversation.
- Jucous
- Hors Ligne
- Nouveau membre
- Messages : 5
- Remerciements reçus 0
#!/usr/bin/python
# coding: utf-8
import requests
import xml.etree.ElementTree as ET
import urllib
urldomoticz="http://192.168.1.200:8080/json.htm?type=command¶m=udevice&idx=" #le debut de l'adresse du serveur Domoticz
urllib.urlretrieve("http://192.168.1.10/status.xml", "status.xml") # l'adresse du MsunPV
# RECUPERATION DES VALEURS DE LA LIGNE inAns =======================================
root = ET.parse('status.xml').getroot()
for x in root.findall('inAns'):
vals_txt=x.text
print(vals_txt)
valeurs=vals_txt.split(';')
# CREATION DES TABLEAUX DE CORRESPONDANCE NOMS et IDX AVEC LES VALEURS PRECEDEMMENT RECUPEREES
noms=["PowReso","PowPV","PowBal1","PowRad","VolRes","T_Ball","T_SdB","T_Buro"]
IDX=["26967","26968","26970","-99","-99","-99","-99","-99"]
# SI L'IDX EST POSITIF (SIGNIFIE QUE LE CAPTEUR EXISTE DANS DOMOTICZ) ON ENVOIE LA VALEUR AU CAPTEUR
for i in range(len(noms)):
if int(IDX[i])>0:
print(noms[i],int(IDX[i]),valeurs[i])
url=urldomoticz + IDX[i] + "&nvalue=0&svalue=" + valeurs[i]
print(url)
Response = requests.get(url)
# https://easydomoticz.com/domoticz-et-scripts-les-bases/
Commande pour le rendre exécutable par Domoticz (je crois qu'il ne faut pas utiliser Sudo) à entrer dans la console sur le Rasperry Pi qui fait tourner Domoticz:
chmod +x /home/pi/domoticz/scripts/python/MSunPV.py
Commande pour créer une cron table à entrer ici aussi dans la console sur le Rasperry Pi qui fait tourner Domoticz:
crontab -e
On vous proposera d'éditer avec Nano (faire une recherche, la notice Wikipedia est pas mal pour savoir comment paramétrer la table, de mémoire, le script est lancé toutes les minutes chez moi).
Connexion ou Créer un compte pour participer à la conversation.
- Accarien
- Auteur du sujet
- Hors Ligne
- Membre senior
- Messages : 71
- Remerciements reçus 3
Désolé du délai
Tu t'es finalement débrouillé
Super !
Connexion ou Créer un compte pour participer à la conversation.
- Jucous
- Hors Ligne
- Nouveau membre
- Messages : 5
- Remerciements reçus 0
Quel intérêt?
De créer des scripts via domoticz, d'avoir un accès extérieur via domocticz, d'utiliser les planning de domoticz pour le planning de la marche forcée et autres possibilités que je n'ai pas encore envisagées.
Tout cela est forcément améliorable du fait de mon faible niveau informatique.
On commence:
Je crée un switch virtuel on/off avec Domoticz (Menu matériel) que j'appelle: MSunPVAuto/Manu.
Je modifie le switch:
Dans Action On, je renseigne:
script:///home/pi/domoticz/scripts/MSunPVAuto
Et dans Action Off:
script:///home/pi/domoticz/scripts/MSunPVManu
Je crée des scripts de base sur le Raspberry Pi qui fait tourner Domoticz dans le fichier script de domoticz.
Pour le script MSunPVAuto:
#!/bin/sh
# modifie la commande du MSunPV et positionne Ballon et Radiateur en automatique
# Ne pas oublier de rendre le fichier exécutable avec chmod +x /home/pi/domoticz/scripts/MSunPVAuto
curl -X POST -d 'parS=10;10;0;0;0;0;0;2;' http://192.168.1.10/index.xml
Pour le script MSunPVManu:
#!/bin/sh
# modifie la commande du MSunPV et positionne les Sorties Ballon et Radiateur en Manuel
# Ne pas oublier de rendre le fichier exécutable avec chmod +x /home/pi/domoticz/scripts/MSunPVManu
curl -X POST -d 'parS=5;5;0;0;0;0;0;2;' http://192.168.1.10/index.xml
Donc comme écrit dans le code, il faut rendre exécutable le code avec la ligne de commande sur le Raspberry Pi.
Je ne suis pas informaticien et tout ça m'a demandé pas mal de temps. J'espère que ça en aidera certains.
Connexion ou Créer un compte pour participer à la conversation.
- Defaliz
- Hors Ligne
- Membre platinium
- Messages : 348
- Remerciements reçus 21
j'essaie de faire fonctionner le script de récupération des données du msun dans domoticz sans succès...
le script fonctionne bien en console, je récupère les infos..
j'ai crée un switch virtuel, dans les actions j'ai mis script://home/mon_user/domoticz/scripts/python/domoticz_msun.py
le script est exécutable
j'ai récupéré le bon idx du switch virtuel..
malgré tout ça pas de remontée d'info...
une idée ?
merci
Connexion ou Créer un compte pour participer à la conversation.
- Defaliz
- Hors Ligne
- Membre platinium
- Messages : 348
- Remerciements reçus 21
dans le switch virtuel il faut mettre la commande
script://python/domoticz_msun.py et non pas le schemin complet
maintenant dans les logs j'ai bien la récupération des infos :
Executing script: /home/mon_user/domoticz/scripts/python/domoticz_msun.py
2024-01-26 12:11:53.924 Status: User: (IP: 10.3.141.1) initiated a switch command (819/Puissance PV Msun/On)
mais la valeur puissance PV ne s'affiche pas dans le switch...
Connexion ou Créer un compte pour participer à la conversation.
- Defaliz
- Hors Ligne
- Membre platinium
- Messages : 348
- Remerciements reçus 21
le script python sur domoticz s'exécutait avec une erreur d'authentification
il faut mettre les réseaux de confiance dans paramètres, sécurité de domoticz...
c'est bien utile de remonter les infos du msun car depuis 1 mois l'interface web de ce dernier ne s'affiche plus, j'ai une page blanche...
et dont je peux récupérer les infos avec les pages xml, qui fonctionnent bien...
Connexion ou Créer un compte pour participer à la conversation.
- Accarien
- Auteur du sujet
- Hors Ligne
- Membre senior
- Messages : 71
- Remerciements reçus 3
Désolé de n'avoir pu t'aider, j'ai vu ton message trop tard.
Pour info, tu devrais t'intéresser à Home assistant, j'y suis passé depuis domoticz, c'est le jour et la nuit niveau fonctionnalités et interface utilisateur
Connexion ou Créer un compte pour participer à la conversation.
- Defaliz
- Hors Ligne
- Membre platinium
- Messages : 348
- Remerciements reçus 21
Je compte installer HA, mais il a l'air plus gourmand en ressources, si on utilise docker...
Domoticz s'installe vite et bien...
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- MSun-PV
- Support technique
- Intefaçage avec Domoticz