Domoticz, Imperihome et ISS-Domo

logo_webdomoticz

Le logiciel Imperihome destiné à nos smartphones sous Android présente des caractéristiques très intéressantes (visu des caméra IP, reconnaissance vocale, widgets…)

Ce logiciel est multiplateforme de domotique, ce qui signifie qu’il n’est pas nativement connectable à Domoticz. :mrgreen: et utilise un logiciel tiers dont l’installation est décrite ici pour dialoguer avec Domoticz.

Il évolue rapidement.

Les liens sur le site ImperiHome http://www.imperihome.com/fr//apps/details?id=com.imperihome.lite&hl=fr

Screenshot_2014-11-11-10-17-25

Une version pro avec des fonctionnalités additionnelles existe sur le PlayStore.

Lire la suite

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

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/

Un fichier log pour Domoticz

Du forum il est remonté (merci beaucoup à José) une manip pour activer un log texte de Domoticz.

Nous avions, jusque là, la trace, dans le menu « Configuration » et « Log » uniquement, pas pratique à lire.

Mais depuis les versions > 2025  il y à la possibilité d’avoir un log texte et de le configurer.

Configuration

Tout ce passe dans le fichier de lancement de Domoticz situé dans /etc/init.d

Si comme moi votre fichier /etc/init.d/domoticz.sh  ne ressemblait pas à celui ci-dessous, faites une copie du fichier d’origine quelque part, puis collez la version ci-dessous à la place ou le lien ici

Attention : Si vous avez introduit des particularités propres à vous (activation de GPIO, changement d’états de GPIO, et que sais-je encore) pensez à les recopier dans le nouveau domoticz.sh

Arrêtons Domoticz par un sudo /etc/init.d/domoticz.sh stop

Mettons à jour ce fichier domoticz.sh comme ceci

#! /bin/sh
### BEGIN INIT INFO
# Provides:          domoticz
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $network $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Home Automation System
# Description:       This daemon will start the Domoticz Home Automation System
### END INIT INFO

# Do NOT "set -e"

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
DESC="Domoticz Home Automation System"
NAME=domoticz
USERNAME=pi
DAEMON=/home/$USERNAME/domoticz/$NAME
#DAEMON_ARGS="-daemon -www 8080 -log /tmp/domoticz.txt"
#DAEMON_ARGS="-daemon -www 8080 -syslog"
DAEMON_ARGS="-daemon -www 8080"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
        # Return
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   2 if daemon could not be started
        start-stop-daemon --chuid $USERNAME --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
                || return 1
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
                $DAEMON_ARGS \
                || return 2
}

#
# Function that stops the daemon/service
#
do_stop()
{
        # Return
        #   0 if daemon has been stopped
        #   1 if daemon was already stopped
        #   2 if daemon could not be stopped
        #   other if a failure occurred
        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
        RETVAL="$?"
        [ "$RETVAL" = 2 ] && return 2
        # Wait for children to finish too if this is a daemon that forks
        # and if the daemon is only ever run from this initscript.
        # If the above conditions are not satisfied then add some other code
        # that waits for the process to drop all resources that could be
        # needed by services started subsequently.  A last resort is to
        # sleep for some time.
        start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
        [ "$?" = 2 ] && return 2
        # Many daemons don't delete their pidfiles when they exit.
        rm -f $PIDFILE
        return "$RETVAL"
}

case "$1" in
  start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        do_start
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  stop)
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  status)
        status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
        ;;
  restart)
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
          0|1)
                do_start
                case "$?" in
                        0) log_end_msg 0 ;;
                        1) log_end_msg 1 ;; # Old process is still running
                        *) log_end_msg 1 ;; # Failed to start
                esac
                ;;
          *)
                # Failed to stop
                log_end_msg 1
                ;;
        esac
        ;;
  *)
        echo "Usage: $SCRIPTNAME {start|stop|status|restart}" >&2
        exit 3
        ;;
esac

:

En haut  du fichier on a 3 lignes intéressantes, celles avec DAEMON_ARGS =

DAEMON=/home/$USERNAME/domoticz/$NAME
#DAEMON_ARGS="-daemon -www 8080 -log /tmp/domoticz.txt"
#DAEMON_ARGS="-daemon -www 8080 -syslog"
DAEMON_ARGS="-daemon -www 8080"

Par défaut on utilise -www 8080, mais en commentant cette ligne par un # et en décommentant soit celle avec domoticz.txt soit celle avec syslog on écrira soit dans le fichier /tmp/domoticz.txt soit dans les logs linux (il ne s’agit pas de /var/log/messages ni de var/log/syslog, mais je n’ai pas trouvé ou cela écrit, si quelqu’un sait…).

l’option -log /tmp/domoticz.txt peut bien sur être modifiée pour utiliser le chemin à votre convenance.

On relance Domoticz par un /etc/init.d/domoticz.start

Et donc le log dans le fichier txt ressemble à cela :

cat /tmp/domoticz.txt

Tue Oct 21 16:06:02 2014 Domoticz V2.2066 (c)2012-2014 GizMoCuz
Tue Oct 21 16:06:02 2014 System: Raspberry Pi
Tue Oct 21 16:06:02 2014 Startup Path: /home/pi/domoticz/
Tue Oct 21 16:06:04 2014 1-Wire support available (By Kernel)...
Tue Oct 21 16:06:04 2014 1-Wire: Using Kernel...
Tue Oct 21 16:06:04 2014 1Wire: Added Device: 28-001411cb7aff
Tue Oct 21 16:06:04 2014 1Wire: Added Device: 28-001411e05dff
Tue Oct 21 16:06:04 2014 1Wire: Added Device: 28-0014145523ff
Tue Oct 21 16:06:04 2014 1Wire: Added Device: 28-001411d077ff
Tue Oct 21 16:06:04 2014 Webserver started on port: 8080
Tue Oct 21 16:06:04 2014 Camera: settings (re)loaded
Tue Oct 21 16:06:06 2014 Teleinfo: Using serial port: /dev/ttyUSB20

N’oubliez pas de repasser en mode « sans log » au risque de remplir votre SD card rapidement. 😥

 

Voila une astuce bien sympathique, qui nous dépannera et merci encore à José

 

 

 

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

Les plans Domoticz : la suite

Suite au premier article concernant les plans dans Domoticz , il y a dans les dernières beta des outils plutôt sympa que je vais vous narrer dans le détail.

Le résultat final ressemble à cela.

plans_domoticzplans_domoticz2plans_domoticz3On voit la zone survolée à la souris en bleu (paramétrable) , les derniers états lus pour chaque composant représenté.

Un clic sur la zone délimitée (bleu cyan ci dessus) , zoome dans cette zone (c’est la zone dessinée à la souris dans le paramétrage)

 

En pratique

Dans le menu « Configuration », puis « Paramètres »

  • On peut tout d’abord définir si Domoticz démarrer un mode « Normal » ou en mode plan (pensez à votre Waf et passez en mode plan)

Palns_domoticz_param1

  • Puis quels sont les onglets à afficher

Palns_domoticz_param2

 

 

Réglage de l’affichage Palns_domoticz_param3

  • Ici si on affiche le plan en plein écran,
  • Si on autorise le zoom sur un clic
  • Les équipements que l’on souhaite afficher sur le plan (capteur,inter)
  • Puis les options de couleur en cliquant sur le lien on va sur un site qui affiche les couleurs par leur noms, choisissez la votre et copiez/collez la dans le champ « Room Area Color »
  • Indiquez ensuite les paramètres d’opacité qui seront appliqués au survol par la souris

 

 

Voila on peut remercier encore une fois les dev de Domoticz qui font progresser ce magnifique outil de version en versions.

plans_domoticz4

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

Pourquoi Easydomoticz ?

Utilisateur depuis quelques années de domotique j’ai toujours recherché un de pilotage de ma domotique, pas cher, open source de préférence, ne nécessitant pas de grande puissance processeur, joli, ouvert, indépendant du cloud.

Et puis Domoticz est  arrivé.

plans_domoticz2

Open source et gratuit  consommant peu de ressources système. Il permet de gérer interrupteurs, détecteurs (incendie, ouverture, mouvement,…), capteurs (température, humidité, vent,…), des caméra IP et de créer des périphériques virtuels.

Il fonctionne sur Windows, Linux  et  Raspberry PI.

Il supporte de nombreux protocoles Z-wave, RFXCom, En-Ocean,…

De configuration aisée et claire, on peut programmer des scénarios sous forme de puzzleblockyLire la suite

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