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.
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.
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 !!
Vous emballez quand même pas trop, on est pas dans Ironman.
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.
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).
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
Installez 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 :
Faites les modifs via le menu « Config » du plugin « Home Automation » de Jarvis pour obtenir quelque chose comme :
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 ».
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)
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→