Bonjour,
Je passe par de nombreux automatisme pour piloter des actions sur HA depuis jeedom.
J’ai beau lire et relire la doc de l’Api rest
je n’arrive pas à comprendre comment l’utiliser depuis jeedom.
Je cherche donc des exemples d’utilisations qui me permettrais de me mettre sur la piste pour réussir de mon coté.
merci 
j’utilise souvent chatgpt en lui posant une question il explique clairement la procédure, je me permet de te faire le copier / coller mais tu peux le faire de ton coté c’est gratuit,
je n’est aucun mérite mais il me semble que c’est bien la bonne explication
1. Préparer l’URL API Jeedom
Dans Jeedom, chaque commande a une URL spécifique que vous pouvez appeler via l’API REST. Vous pouvez la trouver ou la générer en accédant aux paramètres de votre commande dans Jeedom.
Exemple d’URL :
http
Copier le code
http://<IP_JEEDOM>/core/api/jeeApi.php?apikey=<API_KEY>&type=cmd&id=<ID_COMMANDE>
<IP_JEEDOM>
: Adresse IP ou nom de domaine de Jeedom.
<API_KEY>
: Votre clé API Jeedom (disponible dans la configuration de Jeedom).
<ID_COMMANDE>
: L’ID de la commande que vous voulez exécuter.
2. Créer un script ou une automation dans Home Assistant
Dans Home Assistant, utilisez la fonction rest_command
pour envoyer une requête REST.
Configuration dans configuration.yaml
:
Ajoutez une section rest_command
dans votre fichier configuration.yaml
:
yaml
Copier le code
rest_command:
jeedom_execute_command:
url: "http://<IP_JEEDOM>/core/api/jeeApi.php?apikey=<API_KEY>&type=cmd&id={{ id }}"
method: GET
Dans cet exemple :
- Vous remplacez
<IP_JEEDOM>
et <API_KEY>
par vos informations.
- Le paramètre
id
est passé dynamiquement via le template {{ id }}
.
Exemple d’utilisation dans un script :
Ajoutez un script pour appeler la commande REST :
yaml
Copier le code
script:
trigger_jeedom_command:
alias: "Exécuter une commande Jeedom"
sequence:
- service: rest_command.jeedom_execute_command
data:
id: "1234" # Remplacez 1234 par l'ID de votre commande
3. Créer une automation (facultatif)
Si vous voulez déclencher cette action automatiquement, configurez une automation :
yaml
Copier le code
automation:
- alias: "Allumer lumière via Jeedom"
trigger:
platform: state
entity_id: switch.lampe_salon
to: "on"
action:
- service: rest_command.jeedom_execute_command
data:
id: "5678" # ID de la commande Jeedom pour allumer la lumière
4. Redémarrer Home Assistant
Après avoir ajouté les configurations, redémarrez Home Assistant pour que les changements soient pris en compte.
je l’avais fait et avais eu une réponse similaire… et je comprends que c’est pour piloter de HA vers jeedom mais ce que je souhaite c’est piloter HA depuis jeedom et non l’inverse.
L’intégration rest API c’est pour que HA envois des infos ou des requêtes. Donc avec un GET tu peux très bien lui demander de récupérer tes infos de ton ha vers ton jeedom.
C’est l’api de jeedom que tu dois appeler depuis HA. Regarde l’intégration Restfull que tu dois utiliser.
Mais ne serait-il pas plus simple de voir si tu ne peux pas tout gérer sous HA ? Tu as une intégration Haier Hon de disponible sur hacs.
autant pour moi j’ai lu trop vite, tu aura presque rien a faire coté Ha, la programmation sera coté jeedom.
je suis pas sur que tu aura beaucoup d’aide ici pour faire des action jeedom vers HA,
Par contre coté jeedom tu as un addon qui fait le taf : Plugin Home Assistant Connect - - Présentation Plugin - Communauté Jeedom
Jeedom Market
Sinon d’apres mon ami chatgpt :
1. Préparer l’API REST de Home Assistant
Home Assistant expose une API REST que vous pouvez utiliser pour envoyer des commandes, changer l’état d’un appareil, ou exécuter des services.
Exemple d’URL API pour appeler un service :
http
Copier le code
http://<IP_HOME_ASSISTANT>:8123/api/services/<service>/<service_name>
<IP_HOME_ASSISTANT>
: Adresse IP ou domaine de votre instance Home Assistant.
<service>
: Le domaine du service (par exemple, light
, switch
, script
, etc.).
<service_name>
: Le nom du service à exécuter (par exemple, turn_on
, turn_off
, etc.).
Clé d’authentification (Token)
Dans Home Assistant, vous avez besoin d’un Long-Lived Access Token pour l’authentification.
- Allez dans Profil utilisateur (en bas à gauche).
- Cliquez sur Créer un jeton d’accès permanent.
- Copiez ce token, car vous en aurez besoin dans les requêtes depuis Jeedom.
2. Créer un scénario dans Jeedom
Dans Jeedom, utilisez un scénario ou une commande HTTP pour envoyer des requêtes vers Home Assistant.
Exemple d’action dans un scénario :
- Créer un scénario dans Jeedom.
- Ajouter un bloc action avec une requête HTTP.
Exemple de requête HTTP dans Jeedom :
URL :
http
Copier le code
http://<IP_HOME_ASSISTANT>:8123/api/services/light/turn_on
Méthode : POST
Header :
- Authorization : Bearer
<TOKEN>
- Content-Type : application/json
Données (Body JSON) :
json
Copier le code
{
"entity_id": "light.lampe_salon"
}
Comment ajouter cette action :
- Allez dans Outils → Scénarios.
- Créez un nouveau scénario et ajoutez un bloc Action.
- Choisissez le type d’action « Action sur un serveur HTTP ».
- Configurez l’URL, la méthode POST et le corps de la requête comme indiqué.
Merci pour les infos
je vais potasser ca.
Non Ha est un complément de quelques addons. je ne veux pas migrer.
malheureusement le dev ne donne plus signe de vie depuis nov 2023. je préférerais essayer de ne pas etre lié à un plugindev tiers.
pour ce que t’a donné chatgpt, je l’avais fais et ca ne fonctionne pas
Donc ta seule solution c’est restfull.
en convertissant la cde curl en php ca fonctionne
pour une commande on/off
curl :
curl -X POST "http://192.168.1.155:8123/api/services/switch/turn_on" \
-H "Authorization: Bearer eyJhbGciOiJIUzxxxxxxHVp4pUKk" \
-H "Content-Type: application/json" \
-d '{"entity_id": "switch.lave_linge_dose_automatique_lessive"}'
php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://192.168.1.155:8123/api/services/switch/turn_off');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"entity_id\": \"switch.lave_linge_dose_automatique_lessive\"}");
$headers = array();
$headers[] = 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInxxxxx4pUKk';
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
Maintenant je voudrais agir sur un « select », une commande ayant plusieurs choix.
je n’arrive pas à trouver comment faire
a force de question chatgpt ca fonctionne
// Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://192.168.1.155:8123/api/services/select/select_option');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"entity_id\": \"select.lave_linge_temperature\", \"option\": \"20\"}");
$headers = array();
$headers[] = 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsxxxxHVp4pUKk';
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
1 « J'aime »