Interrupteurs et Action !

Dans les propriétés d’un interrupteur on trouve deux champs nommés Action On et Action Off qui permettent de déclencher une url http ou https  ou un script lors du basculement de cet interrupteur.

Je voudrais revenir ici sur l’utilisation de ces 2 champs mais plus particulièrement sur le fonctionnement du mode script://

Script://

Ce mode permet donc d’exécuter un script, quelque soit son langage, en précisant ici le chemin complet vers le script en question du style /home/pi/domoticz/scripts/mon_script.php

Donc ATTENTION : puisque la commande est script:// et que mon chemin est /home/pi/domoticz/scripts/mon_script.ph, il faut donc 3 / apres le script :

Oui,oui 3 😯

Action_on_Action_offDans des versions anciennes de Domoticz cela fonctionnait même avec 2 / uniquement mais depuis quelques version les 3 sont obligatoires, donc n’oubliez pas !!

Ce mode script permet de lancer des scripts dans n’importe quel langage du moment que votre script commence bien par un shebang pour que le shell sache quel langage appeler pour l’exécution de votre script://

Éventuellement le chemin complet peut être nécessaire à préciser si votre PATH ne contient pas le chemin vers votre langage de script.

#!/bin/sh -x
#!/bin/bash
#!/usr/bin/perl
#!/usr/bin/tcl
#!/bin/sed -f
#!/usr/awk -f
#!/usr/bin/python

http://

Rien de spécial à préciser, introduisez ici l’url complète à appeler avec tous les paramètres nécessaires.

Seule remarque : A ce jour le https n’est pas supporté dans les Action On et Action Off,.

Il faudra  passer par un script de votre langage préféré qui,lui, saura faire du https puis indiquer ce script:/// dans Action

PS : on me signale à l’oreillette que l’on peut exécuter plusieurs scripts dans cette barre avec ou sans paramètres. On sépare chacun des scripts par des &&, on fourni les paramètres après l’appel du script (bien entendu votre script doit savoir les gérer…)

Ainsi ; script:///home/pi/multiple.sh && /home/pi/test1.sh && /home/pi/test2.sh test test2

Lance multiple.sh et test1.sh et test2.sh en donnant test1,test2 au script test2

Après concertation avec le staff technique, une autre astuce mérite de figurer ici

C’est le passage de paramètres depuis un script:///

Exemple :

  • dans mon action on  je mets script:///home/pi/…/radio.sh allume
  • dans mon action off je mets script:///home/pi/…/radio.sh eteint

puis mon script radio.sh commencera par un

 

#!/bin/bash
if [ "$*" = "allume" ] ; then
mon action pour faire allume
elif [ "$*" = "eteint" ] ; then
mon action pour eteint
fi

C’est bien entendu adaptable à d’autre langages qui gèrent les passages de paramètres.

Merci a jackslayter pour ces complément.

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/
Posted in Débutants, domoticz and tagged , , , , , , , .

4 Comments

  1. on peut exécuter plusieurs scripts dans cette barre avec ou sans option
    script:///home/pi/multiple.sh && /home/pi/test1.sh && /home/pi/test2.sh test test2

  2. bonsoir,

    merci pour les infos.

    -> Il manque un « fi » à la fin du script radio.sh

    J’ai pu mettre en place un module 8 relais pour piloter mes volets roulants par impulsion d’une seconde (sur un système code tournant propriétaire, donc télécommande officielle obligatoire).

    Un relai = 1 commande (monte ou descend, donc 2 relais par volet ou groupe de volets)

    Je commande par un script bash rangé dans /home/pi/domoticz/scripts/ et nommé relai.sh (exécutable lisible par tous -> chmod 755 relai.sh)

    appel par son nom suivi du numéro de relai ex : relai.sh 3

     

    #!/bin/bash # Indique au système que l'argument qui suit est le programme utilisé pour exécuter ce fichier
    echo Commande relais if [ "$*" = "1" ] ; then
    gpio mode 14 out #configure GPIO 14 en sortie
    gpio -g write 14 0 # active le relai
    sleep 1 # garde le contact 1 seconde / impulsion d'une seconde
    gpio -g write 14 1 # desactive le relai
    
    elif [ "$*" = "2" ] ; then
    gpio mode 15 out #configure GPIO 15 en sortie
    gpio -g write 15 0 # active le relai
    sleep 1 # garde le contact 1 seconde / impulsion d'une seconde
    gpio -g write 15 1 # desactive le relai
    
    elif ....
    
    on recommence avec 3, 4 .. jusque 8 en affectant un port gpio pour chaque
    
    ...
    
    fi
    
    exit 0

     

     

    appel de la fonction par :

    interrupteur virtuel type volet roulant (blinds)

    et action ON : script:///home/pi/domoticz/scripts/relai.sh 1

    action Off script:///home/pi/domoticz/scripts/relai.sh 2

     

    voilà c’est ma petite contrib à 1 cts 😉

  3. Bonjour
    Non ta contrib vaut plus que 1 cts , ne serait ce que pour le fi.
    Merci

Comments are closed.