Bonjour à tous,
j’ai besoin d’un petit peu d’aide pour rédiger un script relativement basique, mais mes dernières prog date de la fac (il y a plus de 25 ans) je peux lire et comprendre les scripts, mais je n’ai plus les connaissances pour les rédiger sans erreur.
Ce que je cherche a faire c’est à changer l’état d’une prise socket de homewizard energy. Je me suis basé sur le script pour lire les valeurs du P1 qui existe sur la communauté pour pouvoir lire les valeurs du socket et ca fonctionne. Par contre j’essaye en vain de changer l’état avec une requête put, mais je n’y arrive pas. j’ai essayé plusieurs choses mais j’avais des messages d’erreur. Ici j’ai un script qui ne me renvoie plus de message d’erreur mais il ne change pas non plus l’ état du socket.
essaye d’utiliser le bouton pour mettre ton code en forme stp
tu veux le faire en quel langage? bash? python? php?
car là tu as montré un bout en python
je te laisse corriger et préciser ton besoin. php dans un bloc code de scénario c’est le plus facile, mais on peut t’aider si tu veux rester avec le plugin script et du python
Salut,
oui j’ai lu les differents post, mais il parle tous du lecteur de compteur qu’on branche sur le port P1. J’en ai un et ca fonctionne. Ici c’est pour utiliser et commander un compteur sur prise qui fait aussi actionneur.
J’arrive a lire les valeurs sans problème car j’ai repris le design du script su P1 que j’ai adapté.
Comme ces scripts étaient redigés en python, je suis reste dans la meme optique, mais techniquement je n’ai pas de préference. je cherche juste un moyen de pouvoir actionner mes socket via jeedom, donc script ou scenario tout est bon.
import requests
# DOC => https://api-documentation.homewizard.com/docs/endpoints/api-v1-state/
# state endpoint
url = 'http://192.168.0.92/api/v1/state'
# données à envoyer
data = {
'power_on': false
}
# Définissez les en-têtes de la requête
headers = {
'Content-Type': 'application/json'
}
# Requête PUT
response = requests.put(url, headers=headers, data=data)
# Requête ok si http code 200
if response.status_code == 200:
# Traitez la réponse JSON
data = response.json()
# Ici utilise les données si besoin
else:
# Gérez l'erreur
print(f"La requête a échoué avec le code d'état {response.status_code}")
je ferais un truc du genre
je n’ai pas mis le Content-Length, à voir si obligatoire ou automatiquement calculé pour la requete