Cacher un widget dans Domoticz

Dans la série « Je me coucherai moins bête ce soir », voici un nouvel épisode, un simple truc qui permet de masquer un widget de l’interface web de Domoticz.

C’est tout simple :

En sélectionnant le plan $Hidden Devices et en y affectant les périphériques non désirés on peut les masquer de l’interface web. Cela se passe dans le menu « périphériques par emplacement » du menu des plans il suffit d’affecter un périphérique à la liste nommée $Hidden Devices.

Screenshot - 22032015 - 18:28:09

 

Une autre technique de « masquage » basée sur les noms existe.

Editez le widget concerné et placez un signe dollar ‘$’ devant son nom. Il disparaît.

2015-03-22 10_05_36

Il est toujours dans la liste des dispositifs et continue à faire le job (plannings, récupération de valeurs …), il est juste « pas affiché ».

2015-03-22 10_06_37

Si vous voulez le récupérer, depuis la liste des dispositifz, la flèche verte vous permet de le renommer et donc de supprimer le $ devant et ainsi de réafficher le widget en question et d’en récupérer tout l’historique d’ailleurs.

2015-03-22 10_07_19

2015-03-22 10_06_02

Cette manip me semble valable pour tous les widgets (bien que je n’ai pas tout testé)

Indiana,  lecteur attentif nous informe :

Attention toutefois : cette manip a pour inconvénient de changer le nom du switch et donc de rendre inopérable les scripts lua qui l’utilisent. Perso, je préfère les cacher en les mettant dans l’emplacement $$HiddenDevices dans le menu emplacements.

Merci de l’info.

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

Mémento instructions shell bash

Cet article fait suite à  https://easydomoticz.com/domoticz-et-scripts-les-bases/ qui tentait de définir les bases du scripting. Ce second opus concerne les commandes Linux usuelles à connaitre pour piloter Domoticz via le shell bash.

Cette liste n’est pas exhaustive et n’empêche pas la lecture de site web spécialisés dans le shell Linux (OpenClassRoom par exemple à des très bons tutoriaux).

Pourquoi écrire des scripts ?

On à besoin d’écrire des scripts quand on commence à s’interfacer avec le monde extérieur, par exemple piloter un ampli via http, récupérer son calendrier google, gérer ses plantes vertes …

C’est la que l’on va avoir besoin d’envoyer des requêtes, récupérer et traiter le résultat, puis mettre à jour Domoticz via l’API JSON.

L’API JSON

« Dans Domoticz vous parlez tout le temps de l’API JSON qu’est ce que c’est ? »

Il s’agit d’un moyen de lecture et d’envoi de données depuis/vers Domoticz.

L’intérêt est de pouvoir interroger ou écrire des données, par le biais de requêtes http, depuis n’importe quel langage (shell, php, python, perl, Lua…) pour peu que l’on respecte le format imposé par Domoticz.

L’API est donc le dictionnaire des commandes que sait comprendre et exploiter Domoticz.

La référence de l’API est ici http://www.domoticz.com/wiki/Domoticz_API/JSON_URL%27s

Pour utiliser les fonctions de l’API à l’aide du shell Linux nous avons souvent besoin de commandes http, de récupérer des données extérieures…

Voici un petit mémo des commandes récurrentes:

Ecrire et rendre exécutable un script

Ou placer les scripts ?

Il n’y a pas d’emplacement privilégié du moment que domoticz puisse aller lire à cet endroit.

Toutefois les développeurs de Domoticz ont crée domoticz/scripts, domoticz/scripts/lua cela serait quand même logique de les utiliser.

Quitte à créer domoticz/scripts/python, domoticz/scripts/sh, domoticz/scripts/php pour faciliter la gestion des scripts.

Ce qui suit ne s’applique pas aux scripts LUA de domoticz/scripts/lua qui sont entièrement géres par Domoticz et à ce titre doivent correspondre à des “nommages” précis (script_time, script_device…)

Comment écrire un script ?

Tout d’abord quelques considérations générales.

  • Nommez votre script d’un nom explicite et pas toto.py mais clignotement_lampe_exterieur.sh
  • Utilisez les .sh à la fin du fichier, cela n’est pas obligatoire mais pour les pauvres êtres humains que nous sommes c’est mieux.
  • LA chose qu’il faut savoir c’est que votre script doit commencer par un shebang approprié, http://fr.wikipedia.org/wiki/Shebang, en effet les scripts sont des fichiers texte dont la première ligne devra être le shebang qui indique au système dans quel langage est rédigé le script et le chemin vers ce langage. Pour le shell c’est
    #! /bin/bash

Rédaction du fichier.

sudo pico monscript.sh

ouvrira un éditeur de texte qui vous permettra d’écrire vos commandes shell dans le fichier nommé monscript.sh.

  • CTRL k  : permet de couper des lignes.
  • CTRL u : de coller les lignes précédemment coupées.
  • CTRL x  : permet de quitter cet éditeur, une confirmation est demandée.
  • CTRL G : aide du logiciel pico.

Rendre exécutable ce script et le lancer

chmod +x monscript.sh

permet de rendre exécutable votre script.

le lancement se fait par un

./monscript.sh

voici quelques commandes que nous utilisons régulièrement dans des scripts bash.

Appeler une url http

Pour piloter Domoticz on doit appeler une requête http dont l’écriture nous est imposée par l’API Domoticz.http://www.domoticz.com/wiki/Domoticz_API/JSON_URL%27s

Ainsi pour allumer une lampe dont l’idx est 44

On utilise la commande curl en ligne de commande

curl 'http://192.168.1.81:8080/json.htm?type=command&param=switchlight&idx=112&switchcmd=On&level=0'

Ou dans un script

#! /bin/sh
curl 'http://192.168.1.81:8080/json.htm?type=command&param=udevice&idx=44&nvalue=0&svalue=25;60;2'

envoie 25,60,2 (température, humidité, indice confort) dans l’idx 44 de mon Domoticz, ce qui à peu d’intérêt.

Affecter une variable shell bash

L’idée est de récupérer une valeur de quelque part puis de la réutiliser.

la définition et l’affectation de valeurs d’une variable est faite simplement par son nom.

son utilisation (affichage, tests) est préfixée par « $ »

#!/bin/bash
tempo=$(curl -s "http://domogeek.entropialux.com/tempoedf/now")
echo $tempo

if [ $tempo = "bleu" ]
then
...
tempo=rouge

ici je récupère « bleu », »blanc », ou « rouge » dans la variable tempo en appelant curl.

les tests sont faits sur $tempo= »bleu »

 Envoyer des données dans un fichier

N’importe quelle commande Linux peut être renvoyée à l’intérieur d’un fichier, il suffit de faire suivre la commande de > nom_du_fichier.txt.

l’affichage au lieu de se faire à l’écran se fait dans le fichier.

ainsi un ./domoticz > mon_fichier_log.txt envoie tous les messages Domoticz dans ce fichier.

Afficher des données d’un fichier, d’un port.

Pour afficher les données contenues dans un fichier texte, qui arrivent d’un port ttyXXX, on utilise la commande ‘cat’

cat /dev/ttyAMA0

affiche les données du port série ttyAMAO

cat domoticz.sh

affiche le contenu de ce fichier.

Manipulation de chaines

Extraire une chaîne de caractères entre deux positions précises:

On utilise les symboles ${}.

La syntaxe est ${chaine,position,longueur}

ainsi

chaine=abcdefgh
souschaine=${chaine:4:3}
echo $souschaine

affiche efg (3 caractères à partir du 4eme caractère)

http://pierrellensa.free.fr/dev/bash/www.bsdbooks.net/shells/scripting/fr/string-manipulation.html

Extraire un champ

Cas de figure un peu diffèrent de ci dessus, lorsque je reçois une chaine correctement formatée avec des séparateurs entre chaque champ.

Soit des données telles que :

3A40 mixer volume 30

les champs sont séparés par un espace (3A40espacemixerespacevolumeespace30)
un cut -d’  ‘ -f3 renvoie le 3eme champ de la chaine soit « volume »
et donc cut -d’  ‘ -f4 affiche le 4eme champ soit « 30 » (Attention à l’espace au milieu des simples ‘)

le -d’ ‘ indique le caractère de séparation des champs, ainsi si les champs sont séparés par un caractère @

3A40@mixer@volume@30

cut -d’@’ -f3 affiche  « volume »

 

To be continued

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

Domoticz, Arduino : MySensors.org Partie 3 : Un sensor

Dans les épisodes précédents nous avions détaillé le principe de fonctionnement de MySensors.org, vu comment intégrer une passerelle MySensors à notre Domoticz, il nous reste à expliquer l’intégration d’un capteur MySensor.

Cette partie sera plus légère car je ne vais pas détailler ici tous les montages à base d’Arduino possibles. Je prendrai plusieurs exemples.

Le site de MySensors.org nous facilite l’intégration de nos capteurs au sein de nodes MySensors car sur la page du capteur on a à la fois le schéma de câblage, le code MySensor qui correspond et la boutique pour faire nos achats de capteurs (E-bay ou Ali-express).

Ainsi je je veux intégrer un capteur de gaz ou d’alcool : :mrgreen: , la page http://www.mysensors.org/build/gas me fournit tout ce qui est nécessaire.

Il faudra aussi bien entendu un module radio NRF24L câblé correctement à notre sensor Arduino. Le montage est le même que celui de la passerelle.

On peut directement téléverser le code Arduino MySensors dans notre propre Arduino depuis cette page en n’oubliant pas d’installer les librairies Mysensors auparavant, mais si vous avez suivi la progression dans l’ordre, vous avez fait cette étape lors de la mise en place de la passerelle. https://easydomoticz.com/domoticz-arduino-mysensors-org-partie-2-la-passerelle/

Respectez les schémas de câblage donnés ou pensez à changer, dans le sketch,  les numéro de pin que vous utilisez.

Si vous avez installé les bibliothèques MySensors sur votre PC, le menu des Exemples (Fichiers/Exemples) contient tous les sketches Arduino-MySensors.org

arduino_mysensors_libLire la suite

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

Domoticz, Arduino : MySensors.org Partie 2 : la passerelle

L’article précédent nous à permis de voir le principe de fonctionnement du réseau MySensors.org à base d’Arduinii (un Arduino des Arduinii) avec leurs capteurs, leur passerelle.

Édition du 22/11/2015 pour ajouts paramétrages Gateway dans Domoticz.

network

Voyons ici la mise en place de la passerelle (GW) Arduino⇒Domoticz.

Dans ce qui suit j’utiliserai les symboles S pour les Sensors, GW pour la passerelle pour rester cohérent avec le schéma ci-dessus.

 

1 – Les composants nécessaires :

La passerelle Arduino.

Je vais prendre exemple de la réalisation d’une gateway USB vers Domoticz, sachez qu’un lien Ethernet est possible également avec Domoticz.

Pour la passerelle :

  • un arduino

250px-Arduino_Diecimila

  • un cable USB A/B

USBAB

  • un module radio NRF24L

radio

  • 6 câbles pour relier le module radio à l’Arduino

 

assortiment-de-100-straps-mf

Câblage  du module radio

Lire la suite

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

Domoticz, Raspberry et Arduino sont dans un bateau : MySensors.org Partie 1

Depuis quelques versions de Domoticz (2252), le protocole MySensors.org est intégré dans Domoticz. Super !! diront certains, explications pour les autres.

MySensors.org : Le concept.

MySensors.org est un projet open source piloté par 6 barbus, leur idée de base est de permettre de créer facilement des objets connectés, de pouvoir moduler et assembler ces objets entre eux, d’avoir de nombreux capteurs et d’avoir des coûts les plus bas possibles.

Avec ce cahier des charges le noyau central était tout trouvé : Arduino.

250px-Arduino_Diecimila

Pour les débutants , l’Arduino est une petite carte électronique programmable sur laquelle on peut connecter des capteurs, des moteurs pas à pas, et bien plus et ainsi permettre de découvrir l’électronique. Bien entendu Arduino est une plateforme de choix pour la domotique.

L’avantage de l’Arduino est double :

font que c’est un point d’entrée incontournable.

Partant d’Arduino, l’équipe de MySensors à bâti une architecture sans fil (radio) permettant de relier plusieurs Arduino (Arduinii ?) entre eux, d’échanger des données, de se relier à une passerelle mysensors puis au final à Domoticz.

L’architecture est la suivante :

Des Sensors (S), capteurs en français qui sont des Arduino équipés du capteur qui va bien, température, humidité, lumière, taux d’alcool, pH …Ce sont les Sensors qui effectuent les mesures.

Des répéteurs (R) utilisés pour couvrir de grandes distances (20-60 m en champ ouvert) qui ne servent qu’à retransmettre le signal d’un capteur trop éloigné à la passerelle.

Une et une seule passerelle Gateway (GW) qui collecte tous les signaux radio issus des Sensors ou Répéteurs et la retransmet soit par USB ou par Ethernet à un système tel que Domoticz nommé contrôleur qui pilote, gère, stocke les données et constitue l’intelligence du système.

Le schéma est donc le suivant :

network

Lire la suite

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