Domoticz et Tasker

Beaucoup d’entre vous connaissent et utilisent l’ appli Android nommée Tasker qui permet d’ automatiser des tâches sur son téléphone/tablette Android.

Faisons ici un petit tour d’horizon de cette  appli pour ceux qui ne la connaitraient pas

Depuis quelques semaines vous avez recyclé un vieux téléphone Android qui fait maintenant plate-forme d’ envoi de sms grâce à cet article concernant les sms alors voyons ici comment transformer ce téléphone en capteurs capable d’envoyer des données vers Domoticz via Tasker.

 

Prérequis

 

Le logiciel Tasker permet de récupérer tout ce qui se passe sur votre appareil Android et d’en faire quelque chose.

Par exemple : Si le Wifi est off alors on le passe à On, si on se situe dans tel lieu alors on envoie un sms automatique, si on dit Ok Google allume la musique …

Un lien de lecture ici http://techno-bidouille.com/android-exploitez-vos-capteurs/  ou l’auteur utilise tout d’abord un logiciel nommé sensors pour savoir de quel capteurs est équipé son téléphone/tablette Android.

Tasker : Les bases

Ici , pas question de faire un cours complet de Tasker , plein de tutos existent.

Le minimum à savoir est que la décomposition dans Tasker est la suivante

Le profil Tasker  est basé sur un évènement : « si il est telle heure », « si mon wifi est off », « si l’appli X se lance » ….

Et lorsque un profil est exécuté il lance une tâche.

Une Tâche  est un ensemble d’actions à réaliser suivant le profil.

Sachez qu’il y a des scènes qui sont des interfaces graphiques Tasker, des variables que l’on peut stocker, plein de choses avec lesquelles on peut jouer.

Tasker : En pratique

Commencez par créer un profil basé sur les heures.

Décochez  la case « De » et la case « Jusqu’a » puis cochez en bas « Répéter » toutes les X minutes à votre volonté.

Attention : pour valider il faut faut utiliser la flèche « Retour » en haut à gauche.

Donc nous avons un truc (profil) qui déclenche toutes les 5 minutes.

Créons une tâche. Nommons la puis associons lui UNE action

Je vous conseille au début afin de connaitre tous les capteurs utilisables sur votre Android, soit d’installer l’appli Sensors soit de faire une tache Alerte/Popup qui affiche la valeur en question (les capteurs en rouge ne sont pas accessibles).

Ici j’illustre le fait de lancer une popup, le TEXTE de ma popup sera le niveau de batterie de mon téléphone, en cliquant sur le petit crayon gris en bout de ligne en face du TEXTE que je veux afficher :Tasker2

 

j’obtiens la liste des variables utilisables.

Tassker1

Je choisis donc « Niveau de batterie »

Validez puis remarquez que les valeurs des capteurs se nomment %TEMP, %HUMIDITY, %BATT, ainsi de suite.

Ce qui va nous être utile pour la suite lors de l’envoi vers Domoticz.

L’envoi des données vers Domoticz

J’ai honte, mais il s’avère que Deennoo sur le forum à traité de cette partie avant moi, aussi vais je vous renvoyer vers ses explications

https://easydomoticz.com/forum/viewtopic.php?f=7&t=1008

 

Bonne lecture et n’hésitez pas à poser vos questions dans le forum.

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

Les batteries en Z-Wave

La version de Domoticz v2152 généralise la récupération par Domoticz de l’état des batteries des périphériques Z-Wave.

Certains de nos équipements étant relativement inaccessibles,

Voyons comment récupérer le % de batteries restant et se faire avertir en dessous d’un seuil, histoire d’avoir le temps de changer les piles.

Ce pourcentage est visible depuis le menu de configuration des dispositifs.

Batt_levelC’est celui ci que nous récupérerons grâce à un script python qui alimente un widget « Pourcentage » auquel nous pourrons associer des notifications.

N.B les versions récentes de Domoticz (>2563 de Juin 2015) incluent nativement ce contrôle automatique, utilisez cet article pour en savoir plus.

 I – Domoticz

Commençons par créer un virtual sensor Pourcentage

Comme d’habitude dans « Matériel » et « Create virtual sensor » créons un capteur « Pourcentage »

virtual sensorPuis dans l’onglet des dispositifs, utiliser la flèche verte pour le nommer et le « pousser » dans l’onglet. Noter son Idx (38 ici)

idx_domoticz

Récupérons l ‘IDX du périphérique Z-wave pour lequel l’etat des batteries m’intéresse , ici 105.2014-12-11 13_11_55

2 – Prérequis

L’idée est d’interroger Domoticz pour récupérer l’information sur la batterie de ce composant z-wave.

On utilise l’API Json de Domoticz qui renvoie l’état d’un périphérique et comme depuis la version 2152 on a le % de batterie on peut traiter cela facilement.

L’url interrogée est celle ci : avec IDX qui est la valeur du périphérique Z-Wave

Donc si dans votre navigateur vous lancez un

http://ip:port/json.htm?type=devices&rid=IDX_ZWave_quivabien

Vous obtenez cela :

On voit que c’est le terme « BatteryLevel » qui contient le niveau des batteries et qu’il y a un guillemet,espace,deux point avant la valeur.

Bien,

3 – Le script de récupération

Le script python nécessite la bibliothèque requests  un sudo pip install requests fera l’affaire. Si le module pip n’est pas présent : sudo apt-get install python-pip

Dans le script on peut placer debug=1 pour voir ce que l’on reçoit de Domoticz.

On y définit :

  • l’adresse et le port Domoticz, l’Idx du Z-wave a interroger,
  • l’idx du virtual sensor, le terme a rechercher dans la chaine envoyée par Domoticz (BatteryLevel) attention aux majuscules/minuscules.
  • N.B ce script doit pouvoir extraire n’importe quoi de n’importe quelle url JSON Domoticz dans le bloc JSON ‘result’.
#!/usr/bin/python
# -*- coding: utf-8 -*-


# la 2eme version du script python pour les batteries
# utilise le dict JSON que renvoie Domoticz
# Domoticz renvoie 2 pavés de données ,1 pave concernant les géneralités (long/lat, status ...)
# on peut aller chercher ces données par un r[terme] si les données sont dans la partie haute (avant le result[
# 1 autre pavé qui content les datas spécifiques au capteur en question , ces valeurs sont dans la liste result
# on utilise alors r['result'][0][terme] pour aller chercher dans le dict de la liste result

# il faut le module requests
# sudo pip install requests

import time
import requests
from requests.auth import HTTPBasicAuth

############# Parametres #################################


#debug = 1 on affiche les chaines de caracteres recues
debug=1


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres de Domoticz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

domoticz_ip='192.168.1.81'
domoticz_port='8080'
user=''
password=''

# l'idx du peripherique ZWave a interroger pour batterie (cf Idx Domoticz)
periph_zwave_idx='105'


#terme a rechercher
terme='BatteryLevel'

# ici l'idx Domoticz du widget a alimenter avec la valeur lue
# un widget pourcentage est adatpté pour les capacité des batteries
idx_widget_pourcent='28'

# fin du parametrage #


###############  fin des parametres #############################
###############  ce qui suit est repute fonctionner ############

def maj_widget(valeur_batterie):
    requete='http://'+domoticz_ip+':'+domoticz_port+json_url_text1+idx_widget_pourcent+json_url_text2+valeur_batterie
    r=requests.get(requete,auth=HTTPBasicAuth(user,password))
# l URL Domoticz a interroger pour recuperer les infos est type=devices&rid=XXX

json_url1='/json.htm?type=devices&rid='
requete='http://'+domoticz_ip+':'+domoticz_port+json_url1+periph_zwave_idx


# l URL Domoticz pour le widget virtuel
json_url_text1='/json.htm?type=command&param=udevice&idx='
json_url_text2='&nvalue=0&svalue='
#http://IP:PORT/json.htm?type=command&param=udevice&idx=mon_idx&nvalue=0svalue=POURCENTAGE

##### main ##

result={}
r=requests.get (requete).json()
valeur_batterie=str(r['result'][0][terme])

if debug==1:
    print r
    print valeur_batterie

maj_widget(valeur_batterie)

adaptez ce qui est nécessaire, puis un chmod +x sur le script pour le rendre exécutable.

Utilisez l’option debug=1 pour consulter les messages envoyés par Domoticz et ce que le script décode.

N.B : En  python 3 pensez à parenthèser les print en bas et à modifier la ligne

r=requests.get (requete).json()

en

r=requests.get (requete).json

 4 – Les notifications

Il suffit maintenant d’établir une notification sur ce composant pour être averti à bon escient.

Dupliquez et adaptez ce script pour chaque capteur dont vous voulez suivre la consommation.

5 – Déclenchement régulier

Utiliser crontab -e pour déclencher votre script une fois par jour.

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

Domoticz, Arduino : MySensors.org Partie 3 : Un sensor

Dans les épisodes précédents nous avions détaillé le principe de fonctionnement de MySensors.org, vu comment intégrer une passerelle MySensors à notre Domoticz, il nous reste à expliquer l’intégration d’un capteur MySensor.

Cette partie sera plus légère car je ne vais pas détailler ici tous les montages à base d’Arduino possibles. Je prendrai plusieurs exemples.

Le site de MySensors.org nous facilite l’intégration de nos capteurs au sein de nodes MySensors car sur la page du capteur on a à la fois le schéma de câblage, le code MySensor qui correspond et la boutique pour faire nos achats de capteurs (E-bay ou Ali-express).

Ainsi je je veux intégrer un capteur de gaz ou d’alcool : :mrgreen: , la page http://www.mysensors.org/build/gas me fournit tout ce qui est nécessaire.

Il faudra aussi bien entendu un module radio NRF24L câblé correctement à notre sensor Arduino. Le montage est le même que celui de la passerelle.

On peut directement téléverser le code Arduino MySensors dans notre propre Arduino depuis cette page en n’oubliant pas d’installer les librairies Mysensors auparavant, mais si vous avez suivi la progression dans l’ordre, vous avez fait cette étape lors de la mise en place de la passerelle. https://easydomoticz.com/domoticz-arduino-mysensors-org-partie-2-la-passerelle/

Respectez les schémas de câblage donnés ou pensez à changer, dans le sketch,  les numéro de pin que vous utilisez.

Si vous avez installé les bibliothèques MySensors sur votre PC, le menu des Exemples (Fichiers/Exemples) contient tous les sketches Arduino-MySensors.org

arduino_mysensors_libLire la suite

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

Domoticz, Raspberry et Arduino sont dans un bateau : MySensors.org Partie 1

Depuis quelques versions de Domoticz (2252), le protocole MySensors.org est intégré dans Domoticz. Super !! diront certains, explications pour les autres.

MySensors.org : Le concept.

MySensors.org est un projet open source piloté par 6 barbus, leur idée de base est de permettre de créer facilement des objets connectés, de pouvoir moduler et assembler ces objets entre eux, d’avoir de nombreux capteurs et d’avoir des coûts les plus bas possibles.

Avec ce cahier des charges le noyau central était tout trouvé : Arduino.

250px-Arduino_Diecimila

Pour les débutants , l’Arduino est une petite carte électronique programmable sur laquelle on peut connecter des capteurs, des moteurs pas à pas, et bien plus et ainsi permettre de découvrir l’électronique. Bien entendu Arduino est une plateforme de choix pour la domotique.

L’avantage de l’Arduino est double :

font que c’est un point d’entrée incontournable.

Partant d’Arduino, l’équipe de MySensors à bâti une architecture sans fil (radio) permettant de relier plusieurs Arduino (Arduinii ?) entre eux, d’échanger des données, de se relier à une passerelle mysensors puis au final à Domoticz.

L’architecture est la suivante :

Des Sensors (S), capteurs en français qui sont des Arduino équipés du capteur qui va bien, température, humidité, lumière, taux d’alcool, pH …Ce sont les Sensors qui effectuent les mesures.

Des répéteurs (R) utilisés pour couvrir de grandes distances (20-60 m en champ ouvert) qui ne servent qu’à retransmettre le signal d’un capteur trop éloigné à la passerelle.

Une et une seule passerelle Gateway (GW) qui collecte tous les signaux radio issus des Sensors ou Répéteurs et la retransmet soit par USB ou par Ethernet à un système tel que Domoticz nommé contrôleur qui pilote, gère, stocke les données et constitue l’intelligence du système.

Le schéma est donc le suivant :

network

Lire la suite

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

Mes motherboard sensors ne marchent plus

Depuis la version Beta 2127 les capteurs de température, RAM, de disque dur , etc du Raspberry ne fonctionnent plus correctement, ils apparaissent en rouge dans le menu « Mesures » car ils ne sont plus interrogés par Domoticz.

La version Beta 2139 retrouve un fonctionnement correct vis à vis des capteurs du Raspi.

Voyons pourquoi et comment faire pour les remettre en route.

Sur le site domoticz.com on peut lire

The hardware monitor (motherboard sensors) has been rebuild, and now working like all normal devices.
this means:
- normal id's
- can be shared
- can be used everywhere
- onboard temperature sensor is now also part of this
but, you will get all new devices for this, but this was needed

Ce qui signifie que tous les capteurs internes du Raspberry sont maintenant considérés comme tous les autres périphériques, a savoir :

  • – ils ont un Idx comme le reste (cool pour les scripts)
  • – ils peuvent être partagés
  • – ils sont utilisables partout (blocky,scripts)

C’est vraiment une bonne initiative que de les rendre homogène avec tout le reste.

MAIS IL FAUT DETRUIRE les périphériques dans « Configuration » et « Dispositifs ».

peripheriques

et le « Motherboard sensor »  de l’onglet matériel aussi.

materiel

Puis on installe une version 2139 ou supérieure capable de les recréer correctement.

N.B : la mise à jour qui suit cette destruction est EXTREMENENT LONGUE, le temps de la création, patientez…

 

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