Nous allons utiliser le menu d'Octoprint pour lancer des commandes domotiques sur Jeedom.

Création du script de passage de commandes vers Jeedom

Commençons par la création d'un mini script pour passer les ID des commandes jeedom. Il faudra adapter le DNS/IP utilisé par votre jeedom, en interne ou en externe.

pi@octopi:~/.octoprint $ cd /home/pi/.octoprint
pi@octopi:~/.octoprint $ vi Jeedom_ID.sh

Aide pour vi:
Pour passer en mode édition, faire "Echap" puis ":i"
Pour enregistrer et quitter : "Echap" puis":wq"

Récupération de l'ID de la commande sous Jeedom

Si vous connaissez les ID, vous pouvez passer ce chapitre.

Aller sur l'équipement sous Jeedom et cliquer sur l'onglet Commandes. Ensuite repérer la commande souhaitée (ici On) et se rendre dans les paramètres de commande en cliquant sur le bouton "engrenages" en (1) ci-dessous:
L'ID de la commande est donc disponible sur cette page :
Fin du chapitre De récupération des ID de commandes Jeedom

Saisir ou coller les deux lignes ci-dessous en remplaçant l'url de jeedom et la clé d'API (apikey=xxx).

Plus loin, il faudra connaitre également l'ID de commande de Jeedom qui permettra de faire l'action on et l'action off de votre lampe ou tout autre équipement. (pour ma part elles correspondent à 1733, 1734, etc (et non pas à la capture 5693).


Si vous n'avez pas de DNS Jeedom, vous pouvez utiliser l'adresse IP de votre jeedom qui est disponible sous les paramètres, en suivant la capture suivante :

En utilisant le DNS, ca sera de la forme :

#!/bin/sh
curl -X POST "https://xxx.dnsx.jeedom.com/core/api/jeeApi.php?apikey=xxx&type=cmd&id=$1"
Script Jeedom_ID.sh

Et en utilisant l'IP directement, ca sera sous la forme : (en remplaçant par l'IP de votre jeedom

#!/bin/sh
curl -X POST "https://192.168.0.2/core/api/jeeApi.php?apikey=xxx&type=cmd&id=$1"
Script Jeedom_ID.sh

On rend le script executable:

pi@octopi:~/.octoprint $ chmod +x Jeedom_ID.sh

Nous allons ensuite modifier le fichier de configuration d'OctoPrint qui contient la définition du menu de la façon suivante, on effectue une copie en cas de besoin au préalable :

pi@octopi:~/.octoprint $ cp -p config.yaml config.yaml_BKP
pi@octopi:~/.octoprint $ vi config.yaml

Modifier le fichier de la façon suivante en faisant appel au script et en passant l'ID des commandes Jeedom (1733, etc...).
Vous remarquerez que l'on demande une confirmation lors d'une extinction de prise (lampe ou imprimante), mais pas à l'allumage ces commandes n'étant pas critiques.

system:
    actions:
    -   action: Lampe ON
        command: sh /home/pi/.octoprint/Jeedom_ID.sh 1733
        name: Lampe ON
    -   action: Lampe OFF
        command: sh /home/pi/.octoprint/Jeedom_ID.sh 1734
        confirm: Confirmer ?
        name: Lampe OFF
    -   action: Imprimante ON
        command: sh /home/pi/.octoprint/Jeedom_ID.sh 1025
        name: Imprimante ON
    -   action: Imprimante OFF
        command: sh /home/pi/.octoprint/Jeedom_ID.sh 1026
        confirm: Confirmer ?
        name: Imprimante OFF

Il suffira pour finir, de redémarrer le serveur Octoprint, possible via le menu web de octoprint > "Restart Octoprint".
Après redémarrage vous devriez vous les nouvelles options dans votre menu.

S'il vous manque des infos, n'hésitez pas à laisser un commentaire, merci !