Intefaçage avec Domoticz

Plus d'informations
19 Juil 2022 20:10 #1 par Accarien
Intefaçage avec Domoticz a été créé par Accarien
Bonsoir,
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&param=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.

Plus d'informations
20 Juil 2022 10:56 - 20 Juil 2022 10:57 #2 par patrick
Réponse de patrick sur le sujet Intefaçage avec Domoticz
Cette fonction "ClientHttp" ne fonctionne pas sur les MSPV.

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
Dernière édition: 20 Juil 2022 10:57 par patrick.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
20 Juil 2022 21:06 #3 par Accarien
Réponse de Accarien sur le sujet Intefaçage avec Domoticz
Salut, c'est parfait
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&param=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)
	
Les utilisateur(s) suivant ont remercié: Jucous

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
21 Juil 2022 19:19 #4 par patrick
Réponse de patrick sur le sujet Intefaçage avec Domoticz
Merci François pour ce bout de script.
Je suis sûr qu'il va en intéresser plus d'un.:)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
05 Fév 2023 08:44 #5 par Jucous
Réponse de Jucous sur le sujet Intefaçage avec Domoticz
Bonjour, je suis très intéressé par ton script, merci de l'avoir diffusé.
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.

Plus d'informations
05 Fév 2023 23:29 #6 par Jucous
Réponse de Jucous sur le sujet Intefaçage avec Domoticz
J'ai trouvé ma réponse ici:
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.

Plus d'informations
06 Fév 2023 22:06 - 18 Fév 2023 21:30 #7 par Jucous
Réponse de Jucous sur le sujet Intefaçage avec Domoticz
Et donc pour être plus précis, voilà ce que ça donne chez moi:
#!/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&param=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).
Dernière édition: 18 Fév 2023 21:30 par Jucous. Raison: Je complète pour tous les noobs comme moi.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
10 Fév 2023 14:37 #8 par Accarien
Réponse de Accarien sur le sujet Intefaçage avec Domoticz
Salut
Désolé du délai
Tu t'es finalement débrouillé
Super !

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
18 Fév 2023 21:46 #9 par Jucous
Réponse de Jucous sur le sujet Intefaçage avec Domoticz
Je continue ici l'interfaçage de MSunPV avec Domoticz.

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.

Plus d'informations
26 Jan 2024 11:08 #10 par Defaliz
Réponse de Defaliz sur le sujet Intefaçage avec Domoticz
bonjour
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.

Plus d'informations
26 Jan 2024 11:15 #11 par Defaliz
Réponse de Defaliz sur le sujet Intefaçage avec Domoticz
j'ai du mieux...
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.

Plus d'informations
26 Jan 2024 19:00 #12 par Defaliz
Réponse de Defaliz sur le sujet Intefaçage avec Domoticz
Bon, j'ai passé pas mal de temps mais j'ai trouvé pourquoi !
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.

Plus d'informations
27 Jan 2024 16:19 #13 par Accarien
Réponse de Accarien sur le sujet Intefaçage avec Domoticz
Salut
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.

Plus d'informations
27 Jan 2024 17:34 #14 par Defaliz
Réponse de Defaliz sur le sujet Intefaçage avec Domoticz
Merci accarien...
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.

Propulsé par Kunena