Lien Tasker et Domoticz

Dans la série « Cause toujours tu m’intéresses » et après la découverte de Jarvis voyons ici comment faire parler notre périphérique Android grâce à l’appli Tasker, cela paraitra basique pour nombre d’entre vous mais je n’avais pas encore fait de topo détaillé sur la liaison entre un Domoticz et Tasker, alors…

Nous avions évoqué Tasker dans un article précédent https://easydomoticz.com/domoticz-et-tasker/

J’aimerais ici décrire complètement le processus de récupération de valeurs entre les 2 systèmes. Le but étant de mettre à disposition dans  Tasker une valeur de Domoticz afin d’en faire un widget, une synthèse vocale ….

Nous procèderons par une interrogation de Domoticz via son API dont nous retirerons la valeur souhaitée que nous placerons dans une variable Tasker pour un usage ultérieur.

Prérequis

Coté Domoticz.

Vous devez tout d’abord aller chercher dans votre Domoticz l’IDX du périphérique qui vous intéresse.

Je vais prendre ici exemple d’une sonde de température nommée « Extérieur »

Rendez vous dans « Réglages » puis « Dispositifs » , recherchez votre matériel, puis dans la première colonne, se trouve le fameux IDX.

valeur_idx
On voit ici que ma sonde porte l’IDX 230.

L’étape suivante est d’interroger Domoticz pour le matériel 230 via une URL JSON.

Toute la doc est sur le Wiki Domoticz à cette adresse Wiki Domoticz.

Ouvrez un navigateur Internet  et tapez dans la barre d’adresse (pas dans la recherche , hein)  http://votre_ip_Domoticz:8080/json.htm?type=devices&rid=le_numero_IDX_noté_plus_haut

Et il s’affiche une page Web comme celle si

tasker_dz_api

On l’on retrouve entre autre, la variable Data contenant la température et l’unité et la variable Temp contenant juste la valeur numérique.

Mais on voit qu’il y a  aussi plein d’autres données que l’on pourrait extraire pour d’autres besoins (date de mise a jour, signal level (niveau de signal pour les émetteurs radio) )….

Je souhaite ici en utiliser plusieurs, la date de mise à jour (LastUpdate); la température sans son unité et le Status (OK)

Tasker

Nous allons tout d’abord créer des tâches Tasker afin d’interroger Domoticz via son API par un http GET, utiliser un bout de code Javascript pour retirer les valeurs qui nous intéressent, afficher et faire dire ces valeurs.

De façon plus pragmatique il faudra plusieurs variables Tasker, une dans laquelle nous stockerons l’IDX à interroger, puis d’autres dans lesquelles nous irons placer nos valeurs Domoticz et plusieurs actions au sein de cette tâche.Lire la suite

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

Une nouvelle section dans le forum easydomoticz dédiée aux ESP8266 et dérivés

Suite à de nombreuses demandes (!) une section dédiée aux ESP8266 vient d’être ouverte sur le forum.

esp8266

Pour ceux qui ne connaitraient pas ESP8266 il s’agit d’un module Wifi, peu cher (entre 3 et 8 € suivant modèles), s’interfaçant facilement à de nombreux équipements tels que Arduino les rendant ainsi wifi facilement mais pouvant également fonctionner de manière autonome, sans Arduino donc ce qui en fait un objet de choix pour l’IOT, internet des objets en Français.

Plus de lecture générale ici http://sebastien.warin.fr/2015/10/29/3223-esp8266-des-microcontroleurs-avec-wifi-integre-l-avalanche-des-objets-connectes-dans-constellation-dossier-complet-dans-le-magazine-programmez/

Le lien direct vers le forum est ici : https://easydomoticz.com/forum/viewforum.php?f=24

Vous y retrouverez une compilation de quelques liens sur des sujets anciens en attendant d’alimenter tout ça avec vos propres questions.

Utilisez aussi cette section pour tous les Weemos, NodeMCU ….

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

Installation d’un portier Vidéo et contrôle d’ouverture pilotés par Domoticz

Voici un article proposée par Deennoo, un contributeur régulier du forum, concernant la mise en place d’un portier vidéo Wifi au sein de Domoticz.

Merci de son travail.

Alors écoutons tonton Deennoo nous marrer sa belle histoire…  »

On avance, on avance dans la maison connectée : Grâce à Domoticz on a :

  • d’ensoleillement,
  • d’inondation,
  • de CO2,
  • détecteurs  d’incendie,
  • le gadget pour les plantes,
  • la balance,
  • une alarme,
  • le chauffage,
  • la mise en route d’appareils à des heures données,
  • un bandeau de led en wifi ou autre,
  • les lumières par relais,
  • la température,
  • d’humidité,

pour les meilleurs :

  • gestion de la piscine
  • l’ouverture du portail en fonction de votre position GPS (j’adore celle ci),
  • Multiroom grâce a LMS, et lorsque que vous regardez un film sur votre Kodi, la lumière ce tamise toute seul a la lecture / pause ou arrêt.
  • Votre maison vous envoie des Tweets, des Sms, des Emails, des Pushbullets,
  • Elle vous parle pour vous tenir informés du moindre événements (le facteur qui laisse une lettre, les enfants qui rentrent etc etc)

Cela commence a avoir de la gueule !

Mais quid des intervenants extérieurs ?

Comment  savez-vous qui à sonné au portail si vous n’êtes pas chez vous, qui va ouvrir au postier pour qu’il dépose ce colis beaucoup trop gros pour la boite au lettre mais que vous attendez avec impatience car il est parti de Chine depuis 1 mois ?

Il existe déjà des tutos pour les sonnettes connectée, pleins, pleins, pleins.
Il y a aussi énormément de déballage concernant les Interphones Video WIFI (ou filaire), mais très peu expliquent clairement comment faire pour que votre Domotique sache lui parler et interagir avec eux.

Aujourd’hui nous allons parler du Portier Video KKMOON S458-EU, c’est un clone des WIFI603, WIFI602, ou Konx, sauf que le KKMoon coûte moins de 70€ sur eBay…

Encore une fois je n’ai rien inventé, cet article est une compilation des différentes sources que l’on peut trouver sur le net, j’ai juste pris le temps de les lires, ainsi que les commentaires.

Le matériel

Photo 1

Il arrive dans une jolie boite, en couleur, sans aucune certification CE, avec un mode d’emploi en anglais pour installer l’application IOS ou Android.
Sont fournis également : les vis, le transfo 230v 12v.

A la mise en route une charmante voix en anglais vous accueille, sachez juste qu’en cherchant un tout petit peu sur Google, vous trouverez comment la mettre en français, et vous pourrez même mettre la voix des enfants.
Il fait Wifi-g et il y a une connexion Ethernet.

Je vais arrêter ici le descriptif car je ne sortirais rien de plus que les déballages précédents.

Je ne parlerais pas de la qualité du produit, de la porté du wifi, de la qualités de la vidéo et du son, de sa réactivité, car ce sont des éléments de jugement très personnels, sachez juste que son prix est justifié, il ne vaut pas plus – pas moins, si vous voulez mieux, mettez le prix…

Photo 2

Ce qui nous intéresse :
– Récupérer le flux vidéo dans Domoticz
– Récupérer le fait que quelqu’un sonne dans Domoticz
– Pouvoir actionner le relais depuis notre Domoticz

Les outils :
– Un Domoticz qui fonctionne
– Avoir un matériel Dummy et avoir créé deux boutons : un On/Off et un push On
– Une tablette ou appareil Android avec l’app de l’interphone + Tasker
– Une connexion Ethernet pour l’interphone (le wifi est vraiment trop mauvais)

La situation :

Je suis équipe d’une tablette qui me sert de panneau de contrôle pour ma domotique (même si en finalité, tout est tellement automatisé qu’il n y a bien que la page station météo, et le journal Sud Ouest qui sont utilisés, mais le débat n’est pas ici).

Sur cette tablette est installé l’application du portier Video Wifi et cela fonctionne.

Sur l’application de l’interphone, j’ai crée un utilisateur qui s’appelle Domoticz avec son mot de passe.

Intégration de la vidéo , ou comment récupérer le flux vidéo de l’interphone dans Domoticz.

Le flux vidéo est récupérable a par cette adresse :

http://ipdevotreinterphone:81/snapshot.cgi?user=utilisateur&pwd=motdepasse

Ou :
Utilisateur = le nom d’utilisateur que vous avez crée dans l’application du portier vidéo
Motdepasse = le mot de passe que vous avez donné a l’utilisateur sus nommé.

Essayez d’ouvrir ce lien dans Google : rien, nada que dalle, dans VLC une simple image apparaît !

Dans votre Domoticz :

Créez une camera :

IP : Renseignez l’ip de votre interphone
Port:81
Utilisateur : laisser vide
Mot de passe : laisser vide
URL : /snapshot.cgi?user=utilisateur&pwd=motdepasse

Cliquez sur tester la connexion et bravo, vous avez en live la Vidéo prise par votre Interphone.

Photo 3

Bien sur cette caméra est entièrement opérationnelle dans Domoticz comme les autres, aucune restriction.

Intégration du bouton d’appel.

Quand vous utilisez l’application de l’interphone, vous avez peut être remarqué que a chaque fois que le bouton d’appel est pressé, une photo vous apparaît avec les icônes de décroché et raccroché dans l’application Android.

Photo 4

Nous allons nous servir de cette image pour dire a notre Domoticz : « quelqu’un sonne il faut allumer le faux bouton qui s’appelle sonnerie interphone »

Grâce a Tasker et au profile « Événement fichier modifié» nous allons  surveiller le répertoire ou est stocké la photo envoyée à chaque sonnerie.

Avec l’application  officielle, le dossier a surveiller est /DoorBell/picVisitor/

Photo 5Donc maintenant à chaque fois qu’une photo est rajoutée ici , il faut lancer une action vers Domoticz en créant une action Get HTTP.

Dans Serveur:Port : mettre l’ip de votre Domoticz et son port habituel

Dans chemin, nous allons utiliser l’api json de Domoticz pour mettre a jour l’état d’un bouton : /json.htm?type=command&param=switchlight&idx=XX&switchcmd=On

Photo 6

Il convient de remplacer XX par le numéro d’IDX de votre bouton « Sonnerie Interphone »

On teste l’action en appuyant sur le bouton play, et vous devriez voir dans les log :

2016-03-05 17:46:24.276 (Dummy) Lighting 2 (Sonnerie Interphone)

En allant voir votre bouton : il doit avoir changé d’état avec une date/heure de mise a jour correspondant au moment ou vous avez appuyé sur le bouton Play de Tasker.

Ps : Pendant les tests : j’ai créé une pièce « interphone » dans Domoticz puis j’y ai placé les deux faux bouton pour l’interphone, ce sera plus facile a retrouver.

Photo 7 -3 photo 7-1 Photo 7-2

 

Photo 7-4

On peut sortir de Tasker sans oublier d’enregistrer le profile ! Et on essaye depuis l’interphone.

C’est bon, le bouton Domoticz se met a jour a chaque fois que le le bouton appel de l’interphone est pressé ?

Je lui ai mis une extinction automatique au bout de 60 sec (un bouton push ON faut aussi l’affaire)

Il commence a être bien intégré le bougre !! (sic)

Actionner le relais de l’interphone depuis Domoticz

Je pars du principe que vous savez comment mettre un contact sec a votre portail pour actionner son ouverture, ne me demandez pas je ne vous aiderais pas a ce sujet, les mode d’emploi sont fait pour être lus !

Une chose un peu lourde avec l’app de l’interphone c’est de devoir taper un mot de passe a 6 chiffre pour «ouvrir ».

On va faire en sorte que l’on puisse actionner l’ouverture depuis Domoticz.

Dans votre navigateur internet copiez/collez ceci :

http://IPDELINTERPHONE:81/openlock.cgi?user=utilisateur&pwd=motdepasse

Mince de mince de non de non, on a activé le relais d’ouverture de l’interphone ! (sic2)

Et en plus on a une réponse :

– var result= »ok »; sur votre navigateur
– l’interphone parle pour dire que le portail va s’ouvrir.

Vous l’avez compris : on va juste copier coller cette URL dans la case Action On de notre bouton : Ouverture Interphone

photo 8

Pensez bien a choisir un bouton Push ON a la création de ce bouton, ceci évitera d’avoir a le mettre sur OFF…

Faite le test, cliquez sur ce bouton : a chaque coup cela fonctionne !

Maintenant que l’interphone et Domoticz se parlent, à vous de jouer, scripts, scenario, blocky tout est bon !

Enfin, Cerise sur le gâteau, il est possible avoir le flux vidéo sur notre Android wear en cas de sonnerie ou d’alerte, avec la possibilité d’ouvrir le portail depuis la montre sans passer par l’application dédiée.

J’ai fait le choix de tasker, mais sachez que tinycam, monitor pro, ou d’autres combinaisons sont possibles.

Le principe est le même que pour l’intégration du bouton d’appel, sauf que qu’il faut créer une action pour lancer Tinycam/Monitor,avec une option pour avoir une action « ouvrir » reliée à l’URL du relais de l’interphone.

Encore un nouveau gadget intégrable à votre Domoticz, pour plus toujours plus d’interaction.

N’hésitez pas, Soyez curieux !

« 

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

powershell et airparif

A l’instar de ce qui avait été fait ici https://easydomoticz.com/domoticz-prend-lair-de-paris-avec-airparif/ avec Airparif et Python , retrouvez ici le portage sous Windows et  powershell.

Généralités

Le site Airparif.com met à notre disposition les mesures de pollution de la capitale pour 4 indices de pollution : indice global, NO2, O3 et pm10 (particules) allant de 0 faible à 100 très élevé.

Résultat de recherche d'images pour "pollution paris"

L’appel de l’ API airparif sous ce format http://www.airparif.asso.fr/appli/api/indice?date=jour vous renvoie un tableau de valeurs contenant les indices recherchés au format JSON.
Un peu de parsing JSON (dépiautage en français) , quelques widgets % dans Domoticz et c’est réglé.

Domoticz

Créez 4 widgets virtuels pourcentage et nommez les indice, NO2, O3, pm1 et notez soigneusement leurs idx respectifs.

Airparif_Domoticz_1

Airparif_Domoticz_2

Le script

Il faudra y définir les données de Domoticz et les indices respectifs de nos widgets.

#---PARAMETRES-----------------------

# --- les adresses Domoticz user/pass --------
$domoticz="http://127.0.0.1:8080"
$user=""
$pass=""
#------------------------------------------



# --- les idx des widget pourcentag pour les indices --------
# mettez vos propres idx à la place de 13,12,11,10
# pour l'indice global, puis l'indice NO2, le 02 et enfin les pm10
  
$idx = @{
        "dz_indice_global"="13";
        "dz_indice_NO2"="12";
        "dz_indice_O3"="11";
        "dz_indice_pm10"="10"
        }


# -----debug a 1 pour afficher qq messages, autre valeur sinon ----
$debug=1
#------------------------------

$url_airparif="http://www.airparif.asso.fr/appli/api/indice?date=jour"


#--- FIN DES PARAMETRES-----------------------




#--- Fonction d'ecriture vers Domoticz via url-------------------

function majdomoticz($idx,$val)
{

# ----- L url pour ecriture dans un widget pourcentage DZ ----
#http://IP:PORT/json.htm?type=command&param=udevice&idx=mon_idx&svalue=POURCENTAGE

$url1="/json.htm?type=command&param=udevice&idx="+$idx+"&svalue="+$val
$urldz=($domoticz+$url1)

#------------------------------
$pair = "${user}:${pass}"
$bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)
$base64 = [System.Convert]::ToBase64String($bytes)
$basicAuthValue = "Basic $base64"
$headers = @{ Authorization = $basicAuthValue }
#------------------------------

#Invoke the web-request avec les headers d'authentification
#$json=Invoke-WebRequest -uri $urldz  -Headers $headers
try { $json=Invoke-WebRequest -uri $urldz  -Headers $headers } catch
     {
        $_.Exception.Response.StatusCode.Value__
        if ($_.Exception.Response.StatusCode.Value__-eq 201) {write-host "erreur authentification user/pass"}
     }
     
# recup reponse JSON
$infos_json = ConvertFrom-Json -InputObject $json


#recuperation depuis $infos_json avelc les libelles Domoticz
$Val_Retour=$infos_json.status

if ($debug-eq 1)  {
Write-Host "url Domoticz=" $urldz
Write-Host "message Json="$json
Write-host "Status retrourné="$Val_Retour}

}

#--------------- recup des idx configures plus haut ----------
$idx_glob=$idx.Get_Item("dz_indice_global")
$idx_NO2=$idx.Get_Item("dz_indice_NO2")
$idx_O3=$idx.Get_Item("dz_indice_O3")
$idx_pm10=$idx.Get_Item("dz_indice_pm10")
#--------------- ---------------------------------------------

if ($debug-eq 1)  {
write-host "Les indices" $idx_glob $idx_NO2 $idx_O3 $idx_pm10

}

#--- Fonction d'interrogation de L'API airparif et recup de la couleur  dans des variables globales pour appel de la fonction de
# mise à jour de Domoticz 
# les 
#-----------------------

function interroge_airparif
{
    try { $airparif_json=Invoke-WebRequest -uri $url_airparif}
    catch
     {
        $_.Exception.Response.StatusCode.Value__
        if ($_.Exception.Response.StatusCode.Value__ -eq 404) {write-host "erreur 404:  acces au site web"}
     }

Try {
    $infos_airparif = ConvertFrom-Json -InputObject $airparif_json 
       #$infos_airparif
        $global:valeur_indice_global=$infos_airparif.global.indice
        $global:valeur_indice_no2=$infos_airparif.no2.indice 
        $global:valeur_indice_o3=$infos_airparif.o3.indice    
        $global:valeur_indice_pm10=$infos_airparif.pm10.indice   
        
    }
Catch {
# si il y a une erreur sur l'appel de l'adresse de airparif.com on affiche 100% dans les widgets
        $global:valeur_indice_global="99.99999"
        $global:valeur_indice_no2="99.999999"
        $global:valeur_indice_o3="99.999999"
        $global:valeur_indice_pm10="99.99999"

       }
       
   
     if ($debug-eq 1)  {
     
        write-host "indice glob: "$global:valeur_indice_global
        write-host "NO2 : "$global:valeur_indice_no2
        write-host "03: "$global:valeur_indice_o3
        write-host "pm10: "$global:valeur_indice_pm10
     }
 
}
#---------------------------------------
interroge_airparif

majdomoticz  $idx_glob $global:valeur_indice_global
majdomoticz  $idx_NO2 $Global:valeur_indice_no2
majdomoticz  $idx_O3 $global:valeur_indice_o3
majdomoticz  $idx_pm10 $global:valeur_indice_pm10

En cas de non réponse de Airparif les valeurs affichées dans les widgets seront 100 (99.9999 dans le script)

Il faudra placer ce script dans le planificateur de tâches  Windows afin de la lancer au moins une fois par jour afin d’obtenir nos indices

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

Domoticz sous Windows fait tweeter ma maison Partie 2

Voici la suite d’un billet paru ici https://easydomoticz.com/maison-pilotee-domoticz-windows-sait-tweeter concernant l’ajout de la fonction twitter à Domoticz sous Windows grâce aux Powershell.

Nous y avons vu la mise en place des autorisations twitter et de la mise en place du module PS associé.

Maintenant la commande Send-Tweet permet d’envoyer un message à un utilisateur Twitter depuis votre compte.

Send-Tweet -Message '@utilisateur_twitter  Message_ Twitter'

Si vous n’indiquez pas d’utilisateur ce tweett est envoyé dans votre propre compte.

Ou une autre syntaxe :

Send-Tweet 'porte ouverte'
Send-Tweet alerte

Remarquez l’absence de guillemets si votre tweet ne contient qu’un seul mot sinon les simples guillemets sont obligatoires

ATTENTION – ATTENTION

AUCUN CARACTERE AUTRE QUE ALPHABETIQUE OU NUMERIQUE N’EST ACCEPTE DANS LE TWEET

DONC PAS DE tirets, points, caractères 100 % français (éàè…)

ATTENTION – ATTENTION

Dans ce cas le tweet n’est pas recu

Les scripts .bat et .ps1

Comme nous avions vu dans d’autres billets il nous faudra un fichier en .ps1 contenant nos instructions powershell et un lanceur en .bat pour Domoticz.

Mon fichier porte_ouverte_tweet.ps1 contient

Send-Tweet 'porte ouverte'

et porte_ouverte_tweet.bat contient le désormais classique :

Powershell.exe -WindowStyle hidden  -nologo -executionpolicy remotesigned -Command « & ‘C:\Program Files (x86)\Domoticz\scripts\powershell\porte_ouverte_tweet.ps1′ »

Domoticz

Affectez au action on /action Off l’appel de votre script .bat

Domoticz_action_on

et voila

Domoticz_twitter

Lors de vos tests n’oubliez pas que Twitter refuse de publier un tweet dont le message est identique à un précédemment reçu. Prenez l’habitude de changer votre message à chaque envoi.

Vérifiez que dans la fenêtre Powershell qui s’ouvre il n’y ait pas de messages d’erreur en rouge et vérifiez dans Powershell ISE que votre script fonctionne.

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