Domoticz le tuto définitif

Bonjour

Voici un ensemble de liens permettant de débuter dans le merveilleux monde de la domotique avec ce fabuleux logiciel qu’est Domoticz.

Gratuité, fonctionnalités, ouverture vers de multiples capteurs,actionneurs, design sont au rendez-vous alors lancez vous !!

Et pour les amateurs : le listing quasi complet des articles du blog :

https://easydomoticz.com/articles-synthese/

Et toujours pour toutes vos questions, vos partages ! : le forum https://easydomoticz.com/forum/

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

Onduleur, Raspberry, Domoticz

Voyons ici comment gérer un onduleur relié à notre Raspberry Domoticz.

Nous prendrons un cas simple ou le raspberry devra s’éteindre tout seul avant la fin des batteries de l’onduleur.

Il y aura deux épisodes à cette saga.

Prérequis

L’onduleur devra être équipé d’un port USB que vous relierez à un des ports USB du Raspberry avec le câble USB correspondant.

Alimentez votre raspi par un des connecteurs électriques dédiés de l’onduleur.

Faites attention il y a parfois des sorties électriques secourues par l’onduleur et d’autres non secourues. Branchez vous bien entendu sur une sortie protégée (c.f. logo ou « Battery » par exemple).

Ouvrez une session ssh sur le Raspberry pour continuer la configuration.

Installation

Tapez la ligne suivante afin d’installer les outils usb si il n’existent pas.

sudo apt-get install usbutils

Puis le logiciel de gestion de l’onduleur

sudo apt-get install nut

Configuration

Lors de l’installation, il s’affiche :

Setting up libupsclient1 (2.6.4-2.3+deb7u1) ...
Setting up nut-client (2.6.4-2.3+deb7u1) ...
[info] nut-client disabled, please adjust the configuration to your needs.
[info] Then set MODE to a suitable value in /etc/nut/nut.conf to enable it.
Setting up nut-server (2.6.4-2.3+deb7u1) ...

Comme indiqué il faut éditer /etc/nut/nut.conf par un

sudo nano /etc/nut/nut.conf

Et on place tout en bas le mode à  standalone

mode=standalone

Configuration de l’onduleur

Tapez ensuite

sudo nano /etc/nut/ups.conf

un fichier apparait :

# This file is used by upsdrvctl to start and stop your driver(s), and
# is also used by upsd to determine which drivers to monitor.  The
# drivers themselves also read this file for configuration directives.
#
# The general form is:
#
# [upsname]
#       driver = <drivername>
#         port = <portname>
#       < any other directives here >
#
# The section header ([upsname]) can be just about anything as long as
# it is a single word inside brackets.  upsd uses this to uniquely
# identify a UPS on this system.
#

Nous allons changer la partie upsname en supprimant les # de début de ligne.

  • Remplacez [upsname] entre crochets par un nom de votre choix identifiant cet onduleur.
  • driver = devra être rempli avec le nom du driver spécifique à votre onduleur, allez sur cette page pour rechercher votre modèle http://networkupstools.org/stable-hcl.html au bout à droite figure le nom à utiliser dans cette ligne.

Si vous ne trouvez pas, pas de panique beaucoup d’onduleurs fonctionnent avec le driver blazer_usb

Sinon recherchez sur le net avec le nom de votre onduleur pour trouver la référence correcte du matériel.

  • port = mettez auto pour que le Raspberry se débrouille , sinon mettez le vrai tty « /dev/tty/ACMO »

Ce qui fait  :

[ond_rasp_dz]
         driver = blazer_usb
         port = auto

Mon onduleur se nomme ond_rasp_dz

on démarre par

sudo upsdrvctl start

et paf une erreur

Network UPS Tools - UPS driver controller 2.6.4
Network UPS Tools - Megatec/Q1 protocol USB driver 0.08 (2.6.4)
Can't claim USB device [0665:5161]: could not detach kernel driver from interface 0: Operation not permitted
Driver failed to start (exit status=1)

il s’agit d’un problèmes de droits sur les ports usb, accordons les droits en notant les nombres affichés dans l’erreur ci-dessus.

On crée un fichier de règles pour l’onduleur.

Vous pouvez mettre le nom que vous voulez, toutefois le nom de l’onduleur préfixé par 10 est clair et explicite.

sudo nano /etc/udev/rules.d/10-ond_rasp_dz.rules

et on met la ligne  :

 SYSFS{idVendor}=='0665', SYSFS{idProduct}=='5161', MODE='0666'

Rebootez le pi, rebootez sinon ça marche pas.

Une fois le pi relancé , retirez le câble usb, patientez 10 seconds, rebranchez.

Maintenant interrogeons l’onduleur par la commande upsc suivie du nom donné plus haut.

sudo upsc ond_rasp_dz

me renvoie (cela dépend de votre onduleur)

battery.charge: 100
battery.voltage: 26.60
battery.voltage.high: 26.00
battery.voltage.low: 20.80
battery.voltage.nominal: 24.0
device.type: ups
driver.name: blazer_usb
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.version: 2.6.4
driver.version.internal: 0.08
input.current.nominal: 5.0
input.frequency: 50.1
input.frequency.nominal: 50
input.voltage: 231.6
input.voltage.fault: 231.6
input.voltage.nominal: 220
output.voltage: 231.6
ups.beeper.status: enabled
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 10
ups.productid: 5161
ups.status: OL
ups.type: offline / line interactive
ups.vendorid: 0665

On voit entre autres la charge que votre matériel « tire »sur l’onduleur (ups.load 10), le status (OL) = on line , (OB)= sur batteries , le délai avant shutdown (ups.delay.shutdown)

Nous avons donc un onduleur qui fonctionne en liaison avec notre Raspberry, nous verrons comment programmer des instructions d’extinction dans un prochain article.

Quelques références

http://networkupstools.org/ le site de nut

https://doc.ubuntu-fr.org/nut  et http://ovanhoof.developpez.com/upsusb/ pour des explications assez génériques.

Quelques trucs en vrac

Problèmes de droits

En faisant un lsusb sans câble USB puis avec on voit apparaître la ligne concernant l’usb relié à l’onduleur.

dans mon cas

Bus 001 Device 004: ID 0665:5161 Cypress Semiconductor USB to Serial

Je vois que l’on est sur le bus 001 , port 004

On va voir les droits par un

ls -l /dev/bus/usb/001

crw-rw-r-- 1 root root 189, 0 Dec 28 22:55 001
crw-rw-r-- 1 root root 189, 1 Dec 28 22:55 002
crw-rw-r-- 1 root root 189, 2 Dec 28 22:55 003
crw-rw-r-- 1 root nut  189, 3 Dec 28 23:04 004
crw-rw-r-- 1 root root 189, 4 Dec 28 22:55 005

on voit bien que le port 004 est associé à nut, Sinon un

sudo chgrp nut /dev/bus/usb/001/004

remet tout ça en place.

Connexion refused, data stale, init SSL

Ces messages sont souvent résolus par le fait de débrancher/rebrancher le câble usb APRES avoir changé udev/rules.d ET avoir rebooté.

Les commandes de l’onduleur

sudo upscmd -l nom_de_l_onduleur donne la liste des commandes comprises et exécutables par l’onduleur, pratique pour le piloter par scripts.

 








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

Commandes vocales via Jarvis

J’avais déjà parlé ici de reconnaissance vocale via imperihome Android ou YANA.

Je voudrais vous présenter ici un nouvel outil que j’ai découvert récemment nommé JARVIS.

Son grand avantage par rapport à d’autres outils : LE FRANCAIS est natif !!

jarvis Vous emballez quand même pas trop, on est pas dans Ironman. jarvis_logo_red

L’intérêt de ce Jarvis ci est de faire de la reconnaissance vocale et d’y enchaîner des actions :

  • « Jarvis » « météo » vous donnera vocalement la météo de weather Underground (plugin+enregistrement) ,
  • « Jarvis » « tu sais quelle heure il est ? » dira l’heure.

La reconnaissance se base sur des mots clés que vous définissez vous même. Ainsi dans le « tu sais quelle heure il est » le mot clé recherché peut être défini à *HEURE* et donc toute phrase contenant le mot heure donnera l’heure. Cette reconnaissance d’un mot permet de lancer des scripts bash qui font des actions. « Heure » lance une commande linux :

date +%H%M

En plus d’être extrêmement paramétrable car on peut programmer soit même les actions à effectuer à l’issue d’une phrase, on peut lancer des taches vocales via cron (toutes les 10 minutes dire « Bonjour votre Altesse »), il y a des plugins dont un destiné à de la domotique et bien plus.

La phase de reconnaissance vocale peut utiliser soit un moteur local (pocketsphynx) soit Bing.

La page de référence est ici http://domotiquefacile.fr/jarvis/ et Alexylem le concepteur du soft à bien fait les choses puisque explications d’ installation et d’utilisation du soft sont très claires et didactiques (comprenez par la que je ne détaillerai pas ces phases 😆 ).

Bien entendu nous verrons ici comment intégrer Jarvis à notre Domoticz.

A noter Jarvis ne fonctionne QUE sur Raspberry, il faut donc un micro et des enceintes reliés à celui-ci.

Les points forts

Énormément de choses sont paramétrables, plusieurs moteurs de synthèse ou reconnaissance vocable, liste de mots clés reconnus , actions à déclencher, des plugins météo, gmail, de domotique.

On peut aussi lancer Jarvis en ligne de commande pour lui faire faire des actions, on peut utiliser les scripts:/// de Action ON et Action OFF pour lancer des commandes au basculement d’un switch. jarvis.sh -s « Le salon vient de s’allumer » juste pour faire dire une phrase ou -x pour exécuter une commande interne Jarvis

Via Lua un petit os.execute fera le job./home/pi/jarvis/jarvis.sh -x « c’est comment la météo » lance la commande METEO de Jarvis.

Installation

Je vous laisse parcourir le site de Jarvis pour effectuer l’installation.

Sachez toutefois qu’il vous faudra installer sox, alsamixer,aplay, arecord,mpg123 et jq.

sudo apt-get install sox alsamixer aplay arecord mpg123

Pour jq vous trouverez la procédure ici https://easydomoticz.com/manipuler-les-donnees-json-de-domoticz-en-shell/

Sinon, pas d’inquiétude, la procédure d’installation vérifie tout cela et vous donne les commandes à taper.

Puis l’assistant d’installation vous guide dans tout le processus de configuration y compris la détection de vos micros et hauts-parleurs.

A noter : Les meilleurs résultats de reconnaissance que j’ai pu obtenir sont lors de l’utilisation de la reconnaissance vocale Microsoft Bing qui utilise Internet (à mon grand désespoir).

Alexylem à un joli tableau récapitulatif ici http://domotiquefacile.fr/jarvis/content/stt

Pensez à votre vie privée lorsque vous transmettez des commandes à des tiers sur Internet (Bing, Google, Wit)

Une fois familiarisé avec Jarvis, attaquons nous au coté Domoticz de façon à piloter quelque chose à la voix.

Intégration avec Domoticz

Nous allons utiliser un plugin générique Home Automation de Jarvis.

Ce plugin permet d’envoyer des requêtes http à la voix .

Dans le store Jarvis

jarvis_storeInstallez le plugin « Home Automation » puis « Home Control ».

De même n’hésitez pas à faire des mise à jour du plugin dans Store > Installed > Home Control > Update en attendant les mise à jour automatique des plugin (work in progress).

Il s’affiche une page d’aide que nous allons détailler et adapter à Domoticz.

Loading...
## Description
If your home automation system can be controlled via http requests, this Jarvis plugin is just for you.
It will allow you to simply turn on and off your devices.

## Configuration

1. Indicate the turn on and turn off http urls (with `[ADDRESS]` placeholder):

   ```
   pg_hc_turnon_url="http://192.168.1.1/home.php?action=on&device=[ADDRESS]"
   pg_hc_turnoff_url="http://192.168.1.1/home.php?action=off&device=[ADDRESS]"
   ```

2. List your device names & corresponding addresses in `json` format

   ```
   pg_hc_config='{ "devices":[
       { "name": "BEDROOM", "address": "A1"},
       { "name": "LIVING ROOM", "address": "A2"},
       { "name": "BAR", "address": "A3"}
   ]}'
   ```

## Usage
```
You: turn on the bar
> http://192.168.1.1/home.php?action=on&device=A3
Jarvis: Done
```

## Author
[alexylem](https://github.com/alexylem)
Press [Enter] to continue

On voit ici qu’il nous faudra adapter les url suivant les spécifications de l’API Json de Domoticz et indiquer dans le tableau pg_hc_config le nom à prononcer et l’idx domoticz.

Modifiez les turnon_url et turnoff_url avec vos ip:ports Domoticz et l’appel à l’api JSON qui vous convient en laissant [ADDRESS] à l’endroit ou vous devez envoyer l’idx Domoticz.

Rappel : l’idx c’est cette colonne :idx_domoticz

Faites les modifs  via le menu « Config » du plugin « Home Automation » de Jarvis pour obtenir quelque chose comme :

pg_hc_turnon_url="http://192.168.1.81:8080/json.htm?type=command&param=switchlight&idx=[ADDRESS]&switchcmd=On"
pg_hc_turnoff_url="http://192.168.1.81:8080/json.htm?type=command&param=switchlight&idx=[ADDRESS]&switchcmd=Off"


pg_hc_config='{ "devices":[
    { "name": "lumière", "address": "112"},
    { "name": "Volet cuisine", "address": "33"},
    { "name": "volet salon", "address": "34"}
]}'

Ou 192.168.181:8080 est mon Domoticz, lumière et 112 , le nom et l’idx de la lumière , volet cuisine, 33 …

En prononçant « allume lumière » on ira donc activer l’idx 112 de Domoticz  via « pg_hc_turnon_url »

N.B  Les plugins sont dans le dossier plugins, il y a un sous dossier par plugin, puis dans celui ci un readme.md qui donne quelques explications au sujet du plugin , puis des dossiers /fr ou /en ou se situent les commandes dans la langue correspondante. Ce sont des fichier texte bash. Vous pouvez agir directement sur ces fichiers. La modification est immédiate, pas besoin de relancer Jarvis sauf si vous avez changé un mot à reconnaitre..

Je vous conseille de prendre des mots vraiment discriminants , par exemple , la reconnaissance du mot « volets » donne souvent le verbe « voler » et donc la phrase « ouvre voler salon » n’existant pas …

alexylem vient de me préciser que en utilisant « vole » tout simplement (la comparaison vérifie si le nom du device est « inclue » dans la commande reçue) cela devrait fonctionner.

Et comme les plus perspicaces d’entre vous auront remarqué qu’il faut dire « Allume volet salon » ou « éteint volet salon » ce qui peut paraitre bizarre nous verrons prochainement comment améliorer cela en ajoutant les mots « Ouvre » et « Ferme ».

Un petit film de présentation ici

 








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

LMS/Squeezebox et Domoticz

Depuis quelques versions Domoticz supporte les squeezebox Logitech MediaServer (LMS).

Squeezebox : Qu’est ce ? diront certains.

 

Il s’agit un logiciel serveur de musique (déployé dans le cas qui nous intéresse ici sur un Raspberry) et qui est chargé de diffuser de la musique sur d’autres équipements hard comme ceux ci (plus fabriqués de nos jours)

Résultat de recherche d'images pour "logitech media player" Résultat de recherche d'images pour "logitech media player"

 

ou soft nommés players ou platines en français.

 

Retrouvez le détail ici http://www.maison-et-domotique.com/4904-test-solution-squeezebox-pour-du-multiroom-facile/

Pour faire court on peut trouver de nombreux packages squeezebox à cette adresse http://www.max2play.com/en/max2play-image/

Ces packages m’ont paru gratuits contrairement à d’autres trouvés ça et la.

et des instructions ici http://wiki.slimdevices.com/index.php/SqueezePlug

Une fois installé ces solutions arrivent toutes avec un Logitech Media Server (le serveur) qui  inclut des webradios, la diffusion de podcasts, des bibliothèques musicales …Lire la suite








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

Rallonger la durée de vie d’une carte SD

Du toujours excellent Korben, je vous propose cette lecture concernant le raspberry et les cartes SD

http://korben.info/raspberry-pi-allonger-la-duree-de-vie-de-vos-cartes-sd.html

D’autres articles concernant le même sujet trainent ici https://easydomoticz.com/preserver-la-sd-card-en-utilisant-une-cle-usb/

et la https://easydomoticz.com/preserver-la-carte-sd-episode-ii-booter-sur-usb/

Bonne lecture








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