Différences entre les versions de « Piloter HA via les API »
Aller à la navigation
Aller à la recherche
(2 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 44 : | Ligne 44 : | ||
} | } | ||
] | ] | ||
</pre> | |||
EXEMPLE 2 | |||
Cette même requête peut être envoyée dans un script Python, | |||
<pre> | |||
import requests | |||
# Remplacez ces valeurs par les vôtres | |||
url = 'http://81.64.xx.yy:8123/api/services/switch/turn_on' | |||
headers = { | |||
'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiO.........................sImlhdCI6MTcwMjY2NjgxMCwiZXhwIjoyMDE4MDI2ODEwfQ.P-CtWYKLduFBBuilovk5ZD2yl8nHbuLKS4MXbi0h67I', | |||
'Content-Type': 'application/json' | |||
} | |||
data = '{"entity_id": "switch.tz3000_hdopuwv6_ts011f_switch_3"}' # Remplacez par votre entité switch | |||
# Envoyer la requête POST pour allumer le switch | |||
response = requests.post(url, headers=headers, data=data) | |||
if response.status_code == 200: | |||
print("Requête envoyée avec succès : Allumage du switch") | |||
else: | |||
print(f"Erreur lors de l'envoi de la requête : {response.status_code}") | |||
</pre> | </pre> | ||
Version actuelle datée du 15 décembre 2023 à 21:19
On ne sait jamais, cela pourrait servir.
Home Assistant rend possible une utilisation via API.
Nous allons avoir besoin de plusieurs choses pour cela,
- POSTMAN, un outil qui permet d'envoyer des requêtes à HA, en http
- une clé d'authentification eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9......................, créée dans la section intitulée avec le nom de l'administrateur, en bas à gauche de l'interface
Cela méritera explications.
à titre d'exemple, j'ai pu allumer une lampe dans POSTMAN avec ce code, envoyé avec
- une méthode POST
- l'URL "http://81.64.xx.yy:8123/api/services/switch/turn_on
- un header Content-Type contenant la valeur application/json
- un header Authorization contenant Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9......................
Ce Body JSON,
{ "entity_id": "switch.tz3000_hdopuwv6_ts011f_switch_3" }
Lorqu'on lance la requête, le résultat est celui-ci, et surtout la lampe s'allume !!
[ { "entity_id": "switch.tz3000_hdopuwv6_ts011f_switch_3", "state": "on", "attributes": { "friendly_name": "prise 3 Switch" }, "last_changed": "2023-12-15T19:29:59.983238+00:00", "last_updated": "2023-12-15T19:29:59.983238+00:00", "context": { "id": "01HHQFA0K9QCAA2KQWYQGDMKCY", "parent_id": null, "user_id": "8fc3e5b1b231421cbcf15e0e432c696a" } } ]
EXEMPLE 2
Cette même requête peut être envoyée dans un script Python,
import requests # Remplacez ces valeurs par les vôtres url = 'http://81.64.xx.yy:8123/api/services/switch/turn_on' headers = { 'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiO.........................sImlhdCI6MTcwMjY2NjgxMCwiZXhwIjoyMDE4MDI2ODEwfQ.P-CtWYKLduFBBuilovk5ZD2yl8nHbuLKS4MXbi0h67I', 'Content-Type': 'application/json' } data = '{"entity_id": "switch.tz3000_hdopuwv6_ts011f_switch_3"}' # Remplacez par votre entité switch # Envoyer la requête POST pour allumer le switch response = requests.post(url, headers=headers, data=data) if response.status_code == 200: print("Requête envoyée avec succès : Allumage du switch") else: print(f"Erreur lors de l'envoi de la requête : {response.status_code}")
Je me suis aidé de ce tuto,