Domoticz et Windows : Les scripts liés aux Action On/Action Off

Les utilisateurs de Domoticz sous Windows seront sans doute heureux (?) de trouver ici quelques articles concernant l’écriture de scripts sous Windows™.

Je voudrais tordre le cou ici à une légende Domoticz qui dit que les scripts Windows ne peuvent être utilisés dans les champs Action ON et Action OFF d’un switch Domoticz.Rappel
Les champs Action On et Action Off sont présent dans les interrupteurs Domoticz (réels et virtuels) et permettent de déclencher une action au basculement à ON/à OFF de cet interrupteur.

Action_On_Off

Action_On_Off_2

N’oubliez pas que vous pouvez créer autant d’interrupteurs virtuels que nécessaire.

Domoticz sous Windows

L’installation par défaut de Domoticz s’est faite dans le dossier C:\Program Files (x86)\Domoticz.

Il y a un sous dossier nommé « scripts » destiné à recevoir nos scripts. Créez vous un sous dossier pour y entreposer vos batchs.

Les champs Action ON/Action OFF

La syntaxe est la suivante avec le mot clé  script://

script://chemin_jusqu’au_fichier_batch_depuis_le_dossier_ C:\Program Files (x86)\Domoticz_séparé_par_antislash.

(celui dans ce sens \ 😛 ).

 

Sachant que j’ai un fichier batch nommé ie.bat situé dans le dossier scripts puis mes_batch (scripts\mes_batch\ie.bat)

Le action ON/OFF sera :

script://scripts\mes_batch\ie.bat

batch_windows

Autre exemple :

script://scripts\powershell\sms.bat
  • Le mot clé est donc script://
  • Il n’y a que 2 slashes
  • Il ne semble pas que l’on puisse lancer des scripts situés ailleurs que dans le chemin de Domoticz (pas trouvé)

 

Voila , c’était un pause récréative avant de parler des powershell dans les Action ON.

 

Résultat de recherche d'images pour "c'est la recre"

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Un éditeur de scripts Lua intégré à Domoticz

Les contributeurs au développement de Domoticz nous font commencer l’année avec une belle évolution; à savoir : un éditeur de scripts Lua intégré directement à Domoticz ainsi que la conservation de ces nouveaux scripts Lua dans la base de données de Domoticz.

La version V2.4025 apporte ces modifications.

L’éditeur de scripts

L’éditeur de scripts autrefois destiné aux scripts Blockly vient donc d’évoluer en apportant un éditeur Lua intégré.

Maintenant lors de la création d’un script nous aurons le choix entre la création d’un Blockly ou d’un Lua

ed_lua

On accède à l’éditeur via « Réglages »/ »Plus d’options »/ »Evénements ».

 

Le sélecteur permet de choisir le type de script Lua ou Blockly et d’affecter une catégorie entre Device, security, time,variables , ces type correspondent au types d’événements déclencheurs de scripts Lua dans Domoticz . c.f la référence aux noms usuels des scripts Lua : script_devices, script_security, script_time et script_uservariable

Un autre type nommé « All » déclenche le script en question dès que N’IMPORTE LEQUEL DES EVENEMENTS SE PRODUIT (toutes les minutes, au changement d’une variable, à une mise à jour d’un périphérique, au changement d’état du panel de sécu), donc en fait en permanence ou quasiment.

  • Lors de la rédaction de nos scripts Lua une  liste de sélection de mots apparait dés lors que vous tapez quelque chose, (auto-complétion) vous y retrouverez les noms de vos matériels Domoticz , les mots clés Lua, vos fonctions…

 

ide_lua2

  • Il supporte le drag& drop de texte.
  • Le masquage/déroulement de fonctions par les flèches à droite des numéro de ligne, dont le repliement est marqué par un indicateur violet tout à droite.ide_lua32
  • Les lignes sont numérotées et en bout de ligne un marqueur rouge error indiquera que la ligne en cours n’a pas une syntaxe correcte.
  • Sous Firefox, mais pas sous Chrome, le clic droit permet de changer le thème de fond et d’inactiver l’auto-complétion.
  • Plein de raccourcis clavier existent, la liste complète ici https://github.com/ajaxorg/ace/wiki/Default-Keyboard-Shortcut  (merci Vil1Driver)

Ces scripts sont dorénavant conservés dans  la base de données de Domoticz (table EventMaster)

N.B Vos anciens scripts Lua (ceux de /domoticz/scripts/lua) NE sont pas concernés, ils ne sont pas éditables ici, ni conservés dans la base de données.

Recopiez les ici par des copier/coller si besoin.

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Envoi de valeurs pour SMS/email et notifications

Une petite info rapide : les versions supérieures ou égales à V2.3857 permettent maintenant l’envoi de valeurs au sein des emails/SMS/notifications via Blockly à l’intérieur de votre bloc message.

On peut ainsi faire :

La Température Salon est de {{temperaturedevice[idx]}}, et l'humidité est de {{humiditydevice[idx]}} %

idx est  l’idx de mon périphérique concerné.

idx_domoticz

Voici la liste de toutes les expressions utilisables

temperaturedevice
dewpointdevice
humiditydevice
barometerdevice
utilitydevice
weatherdevice
raindevice
rainlasthourdevice
uvdevice
winddirdevice
windspeeddevice
windgustdevice
variable

Source : http://www.domoticz.com/wiki/Events

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Mon premier script Lua dans Domoticz : La mise en oeuvre

Cet article fait suite à deux autres permettant de poser les bases du langage Lua dans Domoticz.

Le premier  (https://easydomoticz.com/point-scripts-lua/)  décrivait quels étaient les principes de fonctionnement des script Lua.

Le second donnait quelques notions de langage.

Ici pour faire suite nous allons prendre un exemple que nous allons dérouler et complexifier étape par étape.

L’exemple que je souhaite détailler ici part du fait que je possède un capteur de luminosité, des volets roulants. Je voudrais que lorsque la luminosité descend en dessous de 170 et que il est plus de 17h30, fermer tous les volets automatiquement. 😯

fenetres_maison

N.B :Pour simplifier j’ai rassemblés tous (!) mes volets roulants au sein d’un groupe (une scène au sens Domoticz)  pour pouvoir les commander tous ensemble.

Dans un pseudo langage on pourrait écrire :

  • A chaque fois que la valeur de mon capteur de luminosité change

je regarde si il est plus de 17H30

ET si

elle est inférieure a 170

ALORS

je passe le groupe des volets à ON

Ce qui signifie qu’il nous faut un script basé sur les devices puisque je cherche à déclencher tout cela lorsque la luminosité change, il faudra récupérer la valeur de notre capteur , la comparer à un seuil, aller chercher l’heure actuelle la comparer à un seuil horaire, puis passer le groupe de volets à ON.

N.B : il y a un petit bug de conception car une fois que les volets vont être fermés, si j’allume puis éteint la lumière de mon salon, la luminosité va changer, il sera plus de 17h30 et on tentera de fermer les volets en permanence alors qu’ils le sont déjà.

Lire la suite

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Mon premier script Lua dans Domoticz : Les fondations

Nous avons vu précédemment https://easydomoticz.com/point-scripts-lua/ quels sont les principes de fonctionnement des script Lua au sein de Domoticz, voyons dans cet article les premières base de la rédaction de scripts puis nous prendrons un exemple que nous allons dérouler et complexifier de bout en bout afin de voir quelques instructions.

Les bases des scripts : Avoir les idées claires

idees

Avant toute chose, il faut que vous ayez les idées claires concernant les actions que vous devez réaliser, prenez un papier et un crayon et écrivez en français ce que vous devez faire.

Partant du fait que je possède un capteur de luminosité, des volets roulants que j’ai tous rassemblés dans un groupe (une scène au sens Domoticz)  pour pouvoir les commander tous ensemble, je voudrais que lorsque la luminosité descend en dessous de 170 et que il est plus de 17h30, fermer tous les volets.

 

Ce qui pourrait commencer à se traduire par :

  • A chaque fois que la valeur de mon capteur de luminosité change

je regarde si elle est inférieure a 170

ET si

il est plus de 17H30

ALORS

je passe le groupe des volets à ON

Ce qui signifie qu’il nous faut un script basé sur les devices puisque je cherche à déclencher tout cela lorsque la luminosité change, il faudra récupérer la valeur de notre capteur , la comparer à un seuil, aller chercher l’heure actuelle la comparer à un seuil horaire, puis passer le groupe de volets à ON.

N.B : il y a un petit bug de conception car une fois que les volets vont être fermés, si j’allume puis éteint la lumière de mon salon, la luminosité va changer, il sera plus de 17h30 et on tentera de fermer les volets alors qu’ils le sont déjà.

Lire la suite

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/