Le forum de Easydomoticz est accessible via Tapatalk

La pause déjeuner d’hier ayant connu l’état de grâce, le vent des dieux de l’informatique et de phpbb réunis ont soufflé et donc :

trompette tapatalktapatalk forum

Amis lecteurs, possesseurs d’un smartphone, soyez avertis que le forum Easydomoticz est désormais accessible via l’appli Tapatalk

Téléchargements du logiciel dans les « store » respectifs de vos smartphones ou ici https://tapatalk.com/download_free_tapatalk.php?id=0 ou avec cela

qr_13 tapatalkUne fois le logiciel installé, recherchez ensuite Easydomoticz et abonnez vous.

Bonne lecture.

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

FAQ: Ca marche pas !

marchepas2

Voici une liste non exhaustive de « Ca marche pas » les plus fréquemment rencontrés, je pense que cette liste se complétera régulièrement.  😀

  • Lors de l’ajout d’un périphérique je ne le vois pas apparaître :  il faut vérifier dans « Configuration »  « Paramètre de l’application » que la case « Accepter nouveau matériel » soit cochée.
  • Les scripts LUA ou Blocky ne marchent pas : vérifier la case appropriée dans « Configuration »  « Paramètre de l’application » que la case « Système événement (Lua/Blockly/Scripts): » est décochée
  • mon script sh, python,php … ne fonctionne pas : un chmod +x s’impose.
  • mon script sh, python,php … ne fonctionne pas : vérifiez qu’il commence par un shebang correct 
#!/bin/bash
#!/usr/bin/python
#!/usr/bin/tcl
  • Dans un interrupteur, le script que mentionné dans un Action off ou Action off ne se déclenche jamais : Vérifiez que vous avez bien écrit script:///home/pi/domoticz/…. avec 3 /
  • Dans l’interface web de Domoticz je ne vois pas ceci, je ne trouve pas cela : Videz le cache du navigateur.
  • Mon DHT11/DHT22 ne fonctionne pas : en effet et ils ne fonctionneront jamais correctement avec un Raspberry : oubliez !
  • Je me connecte en ssh avec putty puis quelques heure/jours après c’est impossible: donnez une ip fixe à votre Raspberry.

 

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

Domoticz et scripts : les bases

Domoticz est vraiment très ouvert pour nous laisser le piloter au travers de son API JSON moyennant que on lui envoie une url bien construite, on peut alors lire l’état de capteurs, envoyer des ordres …

Intérêt des scripts

Les scripts dans Domoticz sont utilisés la plupart du temps,pour lire telle valeur, écrire telle autre, interroger un service web , envoyer un sms

 

Quels langages utiliser ?

Lua

Le langage natif de Domoticz pour le scripting est LUA avec des fonctionnalités assez puissantes puisque Domoticz déclenche automatiquement ces scripts sur  les changements d’états, en fonction du temps…

Il faut apprendre un peu de Lua

Les autres langages

Tous les langages  que vous avez installés.sur votre Raspberry sont utilisables nous allons détailler comment ci-dessous.

Oui mais j’utilise Windows ?

Euh, comment dire , c’est pareil mais en plus compliqué.

L’essentiel est que vous connaissiez le chemin d’accès à l’interpréteur de votre langage (Ex: c:\dev\python\python27\bin\python.exe)  ou que celui ci soit dans le PATH de votre système. Votre script devra prendre en compte ce chemin.

Et pour le Raspberry Pi

C’est la solution que je vais détailler ici.

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 ?

Je ne vais pas faire un cours de python, perl, shell bash ici? C’est à vous de construire votre outil.

  • Nommez votre script d’un nom explicite et pas toto.py mais clignotement_lampe_exterieur.sh
  • Utilisez les .py,.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é, j’aime bien le mot shebang. 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.

 

Ainsi

#!/bin/bash

indique qu’il faut utiliser pour ce script le programme bash situé dans /bin

Il en existe d’autres moins sexy:

  • #!/usr/bin/php pour les scripts php
  • #!/usr/bin/python

Après cette ligne de shebang vous codez votre programme.

N.B : Cas du php :

  • Il faut installer php5-cli par un sudo apt-get install php5-cli
  • Après le shebang on met <?php puis on code

 

Sinon jetez un œil au forum il y un endroit pour en trouver des tout faits.

Comment tester mon script ?

Suivant le langage que vous utilisez mettez des echo, print, aux endroits stratégiques.

Rendez votre script exécutable par un chmod +x lenomquivabien.xx (merci b.folliot)

Vérifiiez que tout ce comporte bien en lançant votre programme par un ./lenomquivabien.xx

Déboguez, jusqu’à obtention du résultat voulu

Ca marche et maintenant ?

Pilotage via Domoticz

On peut appeler un script derrière un interrupteur ou un scenario Domoticz sur un « Action on » ou « Action off » de la façon suivante script:///home/pi/domoticz/script/monscript.php
N.B : il y a 3 / apres script:

Un article détaillé est ici

Ainsi l’appui sur le bouton en question déclenche les actions prévues lorsque le bouton passe à On ou Off

N’oubliez pas que pour déclencher une cascade de périphériques à l’appui  il y a aussi les dispositifs esclaves Domoticz.

Pilotage en fonction de l’heure

On  à parfois besoin de déclencher un script que une fois par jour/par heure…

Exemple récupération du tarif EDF bleu,blanc rouge pour remplir un widget.

Dans ce cas la on utilise le programme crontab Linux

crontab -e permet de programmer  l’exécution régulière de tâches

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
3 4 * * * root /domotioz/scripts/shell/backupftp.sh
Cette ligne déclenche la procédure backupftp.sh tous les jours à 4H03
 
*/2 * * * * root /domoticz/scripts/check_domoticz.sh

celle ci le script toutes les 2 minutes (*/2)

Le mémo qui va bien : https://fr.wikipedia.org/wiki/Cron

P.S N’oubliez pas de sauvegarder tout cela de temps en temps. 🙂

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

Le Waf, le phpMyDomo et Nginx

bbtUn titre à la Sergio Leone, pour parler ici de l’installation de phpMydomo avec le serveur web Nginx, inclus dans l’image Domoticz par exemple.

Toutefois l’auteur de phpMyDomo nous précise sur son site :

For experts only: Using the Apache webserver is the recommended way to install phpMyDomo, but if you prefer to use Nginx instead of Apache, you might try the following unsupported method.

Pour ceux qui n’ont pas fait anglais, on traduirait ça par :

Pour experts seulement:Apache est la meilleure méthode pour phpMydomo, mais si vous préférez utiliser Nginx que Apache, vous pouvez essayer la méthode non supportée ci-dessous.

Allez y mais c’est casse gueule (non ça c’est moi qui rajoute)

Pour les tétus qui envisagent de poursuive, une grande partie de l’article initial basé sur Apache est valable et sera donc repris tel quel ici.

Allons y : <citation>

Dans notre quête désespérée d’augmenter notre WAF face à nos outils de geek, je vous propose aujourd’hui un logiciel d’interface de pilotage relié à Domoticz.

Pour rappel : Le Wife Acceptance Factor ou Woman Acceptance Factor (WAF) désigne le niveau de conflit potentiel engendré par un objet, auprès des non-utilisateurs cohabitant avec les utilisateurs dudit objet: source wikipedia.

Il s’agit d’une surcouche visuelle permettant de piloter Domoticz.

PhpMydomo  : les fonctionnalités

  • Les interrupteurs, les scènes et Dim (experimental) sont supportés.
  • Visualisation des sensors sur la même page ou sur une page personnalisée.
  • Visu des caméras  IP sur un page unique.
  • Affichage d’une galerie photo.
  • Lancement d’action depuis une URL.
  • Support de Responsive design :Affichage optimisé sur Android/IOS tablet, smartphone et web browser
  • Peu de puissance demandée : un serveur php suffit.
  • Free and Open Source.

Le résultat à obtenir est quelque chose comme cela :

01 03

</citation>

Cet outil peut être installé soit :

Comment savoir si on a Nginx ou apache installé ?

Dans un navigateur, tapez votre ip du raspberryNginx

Si vous avez  un message « It works » c’est Apache, direction ici

Bien ces préalables évacués , au boulot !

Lire la suite

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

Complément pour phpMyDomo

Suite à l’article sur la mise en place de l’interface phpMyDomo plusieurs lecteurs m’ont signalé des difficultés liées au démarrage du serveur Apache lié à phpMyDomo sur des configurations ou Ngnix était déjà activé par défaut.

L’article ici détaille la configuration nécessaire pour éviter ces conflits entre les 2 serveurs web et le port 80.

Pour les courageux qui désirent installer phpMyDomo sous Nginx un article est disponible à cette adresse : https://easydomoticz.com/le-waf-le-phpmydomo-et-nginx

L’article initial à été lui aussi mis à jour avec ces compléments.

Les faits :

Dans le tuto initial l’incident se produit lorsque on tente de redémarrer Apache par un sudo apache2ctl restart

Aie : une erreur !!

Suite au restart vous avez « Adress already in use….. to adresss 0.0.0.0:80 »

erreur_apache2

Il s’agit d’un conflit entre le Nginx installé par défaut et le Apache que l’on tente de lancer sur le même port 80.

Changeons le port Apache2

  • Éditer le fichier /etc/apache2/ports.conf, on y trouve :
NameVirtualHost *:80
Listen 80

que l’on remplace par :

NameVirtualHost *:81
Listen 81

si je veux utiliser le port 81 pour PhpMyDomo, sinon mettez le port que vous souhaitez.

  • Toutefois cela ne suffit pas, il faut aussi changer le port du Vhost

Éditer /etc/apache2/sites-available/default et changer la ligne du haut par un :

<VirtualHost *:81>

Relançons avec un sudo apache2ctl restart, les messages d’erreur précédents doivent avoir disparu.

Donc maintenant sur le port 80 j’ai Nginx

Nginxet sur le port 81 :

Apache2N.B : Souvenez vous que phpMyDomo utilise le port 81, votre navigateur doit pointer sur votre_adresse_ip_raspberry:81 et que si vous avez installé phpMyDomo dans un sous répertoire comme moi, l’adresse complète sera : votre_adresse_ip_raspberry:81/pmd

Voila ,et maintenant ça marche. 😆

Merci aux commentateurs du blog qui ont permis de compléter ce document.

testeapprouve

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