L’image du jour

Un exemple de ce que l’on peut faire avec Domoticz

CaptureLe détail des explications se trouve ici https://easydomoticz.com/les-custom-pages-interactives-toujours-plus-haut-toujours-plus-loin-toujours-plus-fort/

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

la domotique c’est un jeu

une preuve ?

http://korben.info/ouvrir-des-portes-de-garage-avec-un-simple-jouet.html

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

blink(1) : Des notification Domoticz en couleurs !

blink

Dans la série des objets connectés et connectables, voici le module blink(1) de la société thingm http://blink1.thingm.com/

Ce module USB est un indicateur lumineux programmable en couleur, luminosité mais aussi motifs lumineux.

Issu d’un projet Kickstarter, Open source, il est compatible avec de multiples langages et OS  (Mac, Windows, Linux), liens avec IFTTT, processing , extension chrome et bien plus.

L’appli Windows est très complète en permettant des liens IFTTT, sur le matériel, sur la réception de mail, un mode serveur (c.f plus bas).

Nous allons voir la mise en place et le lien avec Domoticz dans cet article.

Merci a Domadoo pour le prêt de ce matériel,  http://www.domadoo.fr/fr/informatique/2861-blink1-mk2-indicateur-led-rgb-usb.html

Une autre lecture d’un test du Blink(1) http://www.maison-et-domotique.com/55484-test-du-blink-un-petit-dongle-pour-des-notifications-lumineuses/

Le prix d’une trentaine d’euros en fait un gadget abordable et fun.

L’objectif ici n’est pas de faire un tuto sur l’utilisation de blink(1) mais sur sa mise en place sur le raspberry et les liens avec Domoticz.

Nous n’utiliserons ici que les outils en ligne de commande.

Installation des outil blink(1)

Nous allons récupérer l’ensemble des outils blink pour les différents langages et système d’exploitation supportés par blink(1). Vous pourrez ensuite sans doute supprimer quelques dossiers inutiles (Java, Windows …)

Donc

sudo apt-get install libusb-1.0-0-dev
git clone https://github.com/todbot/blink1.git
cd blink1/commandline
make
sudo ./blink1-tool --on  

La dernière instruction permet d’allumer la clé blink(1)

Nous avons donc à notre disposition maintenant un outil en ligne de commande nommé blink1-tool qui permet de piloter l’objet.

En tapant sudo ./blink-tool vous obtenez la liste, fort longue, des commandes utilisables.

Un exemple :

sudo ./blink-tool --red
sudo ./blink-tool --yellow
sudo ./blink-tool --blue

Simplifions l’utilisation.

Afin d’éviter le sudo préalable à toutes les commandes on doit affecter le matériel dans udev.

Allez dans le dossier /linux de votre installation blink

Puis on copiera le fichier 51-blink1.rules dans /etc/udev/rules.d

# Copy this udev with "
sudo cp 51-blink1.rules /etc/udev/rules.d/

puis un

sudo udevadm control --reload-rules

Retirez et reinserez le blink

Repassez dans le dossier commandline et tapez maintenant directement

./blink-tool --red

Raccourcissons la ligne de commande.

Notre outil blink-tool se trouve dans blink/commandline, cela signifie que l’appel devra toujours être blink1/commandline/blink1-tool –red

Ce qui sera rapidement fastidieux, simplifions aussi cela en créant un alias nommé ‘pouet’  🙄

alias pouet='/home/pi/blink1/commandline/blink1-tool'

Ainsi la commande pouet –red devient l’équivalent de

/home/pi/blink1/commandline/blink1-tool --red

Afin que cette commande persiste au reboot du pi, placez la ligne d’alias dans .bash_aliases. http://doc.ubuntu-fr.org/alias.

Créez le fichier .bash_aliases dans /home/pi

Puis placez y l’alias.

alias pouet='/home/pi/blink1/commandline/blink1-tool'

déconnectez vous, reconnectez vous de votre session ssh.

en ligne de commande un pouet –green fonctionnera.

Pour une utilisation de cet alias au sein de scripts shell il faudra placer en tête du script un

source ~/.bash_aliases
shopt -s expand_aliases

afin de pouvoir bénéficier de nos alias du fichier ./bash_aliases

Exemple de script utilisant blink(1)

Ce script récupère la valeur d’un switch et bascule la couleur du blink(1) en fonction de l’état Open/Close.

#!/bin/bash
source ~/.bash_aliases
shopt -s expand_aliases

result=$(curl -s "http://192.168.1.82:8080/json.htm?type=devices&rid=35"| jq -r .result[].Status)

if [ $result = "Open" ]
 then
 pouet --blue
elif [ $result = "Closed" ]
 then 
 pouet --red
fi

Remarquez que l’on utilise jq pour lire les données JSON de Domoticz. Un autre article y fait référence.

Dans le cas ou vous désireriez afficher plusieurs couleurs consécutives il faudra passer par la construction de « pattern ».

Une autre idée (mauvaise) est de faire une boucle infinie

 while [ 1 ] ; do
 pouet -q -l 2 --red 
 pouet -q -l 1 --blue
 sleep 0.5
 pouet -q -l 1 --red
 pouet -q -l 2 --blue
 sleep 0.5
 done

l’inconvénient est que cela s’exécute sans fin en mémoire et au bout de X boucles comme celle ci, la saturation mémoire approche.

 

Voila, ce tuto touche à sa fin, il nous aura permis de découvrir la mise en place, sans forcement rentrer dans les arcanes, de blink(1), je vous laisse jouer avec les

blink1-tool  --playpattern "10,#ff00ff,0.1,0,#00ff00,0.1,0"

 

N.B. Il existe une librairie python pour piloter le blink et un mode « serveur », je n’ai pas réussi à utiliser ni l’un ni l’autre (problèmes de compilation sur la Raspberry).

Si vous avez des infos à ce sujet, n’hésitez pas à donner vos solutions dans les commentaires.

 

Blink(1), Windows & Domoticz

Si vous utilisez et connectez le blink(1) sous Windows, le logiciel Blink(1) propose un mode serveur qui permettra en appelant quelques URL de faire clignoter votre blink comme bon vous semble , documentation ici https://github.com/todbot/blink1/blob/master/docs/app-url-api.md

Le port 8934 du PC est utilisé, il faut aussi penser à lancer le logiciel au démarrage du PC et le laisser allumé 24/24.

Blink(1)_Control

Et ainsi une url

http://ip_de_mon_pc_windows:8934/blink1/fadeToRGB?rgb=%23FF00FF&time=6&ledn=2

lancée depuis Domoticz vers mon Pc windows colore la clé 2 (Celle du dessous (B)) en magenta.

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

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/

Domoticz, les frontpages interactives : la configuration

Reprenons, à la suite du billet précédent, notre configuration des « frontpages » interactives.

Rappel : ces pages sont des pages web permettant des interactions avec Domoticz sous une forme telle que celle ci.

Le précédent article se terminait en disant que le principal fichier concerné par le paramétrage est le fichier frontpage_settings.js du dossier js.

Toutefois, je tiens à signaler que, même si la structure évoquée ci dessous est utilisée dans de nombreux packs,
il ne s’agit pas d’une règle intangible et que chaque développeur à pu aborder le sujet un peu différemment. Il vous faudra un peu fouiner dans les entrailles de la bête.

Afin de comprendre le fonctionnement général regardons en détail le fichier fourni par vil1driver.
En répétant encore une fois que ce fichier est vraiment représentatif de ce qui est fait aujourd’hui.

Je ne vais pas détailler ligne à ligne le contenu mais pointer quelques notions à connaitre dans ce fichier de config.

Ouvrez donc frontpage_settings.js dans le dossier /domoticz/www.

Le fichier débute par des traductions de termes (On, Off, Coucher, Lever de soleil, Switch On, switch Off…) qui seront affichés dans les cellules du fichier frontpage.html puis quelques durées d’affichage des popups.

!-- Change the text for on/off switches -->
var txt_on = 'On';
var txt_off = 'Off';
var txt_mixed = 'Mixed';
var txt_scene = '';
var txt_sunboth='Soleil';
var txt_sunset='Coucher soleil';
var txt_sunrise='Lever soleil';
var var_sunrise='';
var var_sunset='';
var file_string = '';
var CheckHighway = 'A2:' ; // The ; is needed for searching!!
<!-- Change thetText displayed in PopUps -->
var txt_switch_protected = '\'interdit\'';
var txt_switch_on = '\'switch On\'';
var txt_switch_off = '\'switch Off\'';
<!-- Change the timeout of the PopUp -->
var switch_protected_timeout = '1000';
var switch_on_timeout = '1000';
var switch_off_timeout = '1000';
var camera_doorbell_timeout = '15400';

Puis la configuration de quelques idx Domoticz spéciaux, tels que EDF, Gaz, consommation CPU, RAM…

<!-- Change idx of special items -->
var idx_IsDonker = '135'; //Use to detect if it is dark
var idx_buitentemp = '46';
var idx_water_meter = '380';
var idx_doorbell = '24';
var idx_electricity_today = '48';
var idx_gas_today = '49';
var idx_ram_usage = '1';
var idx_cpu_usage = '5';

Certains néophytes diront : « Mais ou trouve t’on les idx dans Domoticz ? »Lire la suite

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