Envoyer des email depuis le Raspberry

Etonnant, mais depuis le temps que je parle ici d’envoyer des tweets, des sms jamais il n’a été question d’envoyer des mails depuis la ligne de commande. 😯

Réparons cet oubli avec sSMTP dont l’installation est bien décrite ici http://www.pihomeserver.fr/2015/08/13/envoyer-un-email-depuis-votre-raspberry-pi/   et  https://doc.ubuntu-fr.org/ssmtp qui nous permettra d’utiliser un SMTP (de google) mais d’autre fournisseurs sont semble t’il utilisables à condition d’adapter les ports/TLS.

Installation.

Sur la page citée plus haut , il faudra juste faire précéder les instruction d’un sudo.

Dans le fichier de configuration, placez dans la ligne  hostname=mon_serveur_domotique.com par exemple.

puis modifiez le etc/hosts en conformité, ceci afin d’éviter les erreurs d’envoi de mail.

Testez par echo Bonjour | mail -s « test » votre_adresse_mail@xyz.com

Utilisation.

  • Pour envoyer un simple message :

  • Pour envoyer le contenu d’un fichier dans le message :

 

  • Pour envoyer un fichier en pièce jointe :

Le sujet du message est donné par ce qui suit le -s

C’est simple et ça nous évite postfix !

Afficher l'image d'origineAfficher l'image d'origine

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

DzVents pour Domoticz, les scripts n’ont jamais été plus faciles

Dernier épisode concernant dzVents, le parcours de quelques méthodes qui seront à utiliser dans le bloc execute

Les méthodes dzVents

  • email(subject, message, mailTo): Fonction. Envoi de email.
  • fetchHttpDomoticzData: Fonction. Ceci lance un script qui récupère les données Domoticz et les place dans les fichier dzVents.Ce fonctionnement est activé par le fichier dzVents_settings.lua. Si vous l’avez désactivé dans les settings il vous faudra appeler cette méthode.
  • log(message, [level]): Fonction. Envoie un message dans le log Domoticz avec le niveau de verbiage [level] qui peut être domoticz.LOG_INFO, domoticz.LOG_DEBUG or domoticz.LOG_ERROR. Dans le  dzVents_settings.lua vous pouvez préciser le niveau des messages qui doit s’afficher (1,2,3).
  • notify(subject, message, priority, sound): Fonction. Envoi d’une notification (Prowl). La priorité sera choisie entre  domoticz.PRIORITY_LOW, PRIORITY_MODERATE, PRIORITY_NORMAL, PRIORITY_HIGH, PRIORITY_EMERGENCY et peut même faire un son sur le Raspberry,voir ici plus bas
  • openURL(url): Fonction. l’appel d’une URL
  • setScene(scene, value): Fonction. Activez ou désactiver une scene Domoticz domoticz.setScene(‘My scene’, ‘On’). Cela supporte les timing voir ici .
  • sms(message): Fonction. Envoi d’un SMS si configuré dans Domoticz.
  • switchGroup(group, value): Fonction. Activation d’un groupe domoticz, la syntaxe est  domoticz.switchGroup(‘My group’, ‘Off’). Cela supporte les timing voir ici .

Iterateurs

dzVents apporte des itérateurs sur les 3 tables: devices, changedDevices et variables. Cela évite de recourir aux  pair() or ipairs() de Lua , les passionés liront le chapitre concerne en anglais ici https://github.com/dannybloe/dzVents

Sinon, pour illustrer:

Ou en filtrant sur les devices non mis à jours depuis 60 minutes :

Constantes

  • Pour mettre à jour les widget texte : ALERTLEVEL_GREY, ALERTLEVEL_GREEN, ALERTLEVEL_ORANGE, ALERTLEVEL_RED, ALERTLEVEL_YELLOW
  • Pour forcer les barometres à nuageux,nuageux pluvieux, stable ,etc,etc utilisez : BARO_CLOUDY, BARO_CLOUDY_RAIN, BARO_STABLE, BARO_SUNNY, BARO_THUNDERSTORM, BARO_UNKNOWN, BARO_UNSTABLE
  • Pour les critères d’hulmidté ; confortable,sec,normal,humide c’est : HUM_COMFORTABLE, HUM_DRY, HUM_NORMAL, HUM_WET
  • Les niveau de Log : LOG_DEBUG, LOG_ERROR, LOG_INFO.
  • Les priorités pour les messages,notifications sortants PRIORITY_LOW, PRIORITY_MODERATE, PRIORITY_NORMAL, PRIORITY_HIGH, PRIORITY_EMERGENCY
  • Le panneau de sécurité : SECURITY_ARMEDAWAY, SECURITY_ARMEDHOME, SECURITY_DISARMED.
  • Les sons des notifications : SOUND_ALIEN , SOUND_BIKE, SOUND_BUGLE, SOUND_CASH_REGISTER, SOUND_CLASSICAL, SOUND_CLIMB , SOUND_COSMIC, SOUND_DEFAULT , SOUND_ECHO, SOUND_FALLING , SOUND_GAMELAN, SOUND_INCOMING, SOUND_INTERMISSION, SOUND_MAGIC , SOUND_MECHANICAL, SOUND_NONE, SOUND_PERSISTENT, SOUND_PIANOBAR , SOUND_SIREN , SOUND_SPACEALARM, SOUND_TUGBOAT , SOUND_UPDOWN.

Lire la suite

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

Imperihome, une nouvelle version NodeJS

Objectif :

Installer la dernière version de MyDomoAtHome version NodeJs pour Domoticz. Cette version rend obsolète les autres versions et sera celle qui sera maintenue à long terme.

Rappel  :

Imperihome est une application pour smartphone  et tablettes Android/Ios qui s’intègre nativement à bon nombre de systèmes de domotique  (Domoticz, Sonos, Kodi) et autres objets connectés du marché via une API génerique.

Paramétrable, souple et en régulière évolution vous trouverez dans le google store une version gratuite limitée à 2 pages d’équipements et une version version payante.

Les liens sur le site ImperiHome http://www.evertygo.com/imperihome

Screenshot_2014-11-11-10-17-25

Contrairement à d’autres applis existantes (Andromoticz par exemple), ImperiHome est multiplateforme domotique.

Le but de cet article est donc de décrir l’installation d’une passerelle entre notre Domoticz et l’appli Android/Ios afin de permettre le pilotage via smartphone.Cette passerelle agira comme une interface entre Domoticz et Imperihome et vice versa.

Il y a donc un Client (ImperiHome), une Passerelle nommée MyDomoAtHome (mdah) pour les intimes, un Serveur (notre Domoticz). La Passerelle est un Web serveur REST avec son propre IP:port qui sera différent de celui existant déjà pour Domoticz.

Voila quelques screens tirés du wiki anglais de Domoticz.

Imperihome screen 1

Imperihome screen 2
Screenshot_2013-10-12-18-55-05_framed_id23

Possibilités

Lire la suite

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

Les scripts avec dzVents : entrons dans les détails

Toujours à la découverte des scripts dzVents (premier article ici https://easydomoticz.com/scripts-plus-faciles-domoticz-dzvents/) entrons un peu plus dans leur intimité . 😳

Le fonctionnement des scripts dzVents.

Encore une fois , il ne s’agit que d’une traduction du readme situé ici https://github.com/dannybloe/dzVents, les lecteurs anglophones trouveront leur bonheur la-bas, pour les frenchies c’est ici.

Revoyons un script dzVents

il y a 3 parties importantes: active, on et execute.

 

  • active: peut contenir soit :
    • une valeur booléenne (true or false, cela doit rester true ou false en anglais, sans guillemets). Si vous placez cela à false, le script ne sera pas appelé. Pratique pour inactiver l’exécution d’un script.
    • une fonction Lua qui renverra true ou false. Cette fonction (que vous devrez gérer vous même) recevra un objet domoticz avec toutes les informations issues de votre instance Domoticz active = function(domoticz) …. end.

Donc par exemple ici vous pouvez ajouter une fonction qui renverra true ou false si une variable à été modifiée, le script ne se déclenchera que lors de la reception du true.Exemple :

Toutefois  ce script s’exécutera pour décider si il doit s’exécuter vraiment, il est donc plus efficace de mettre ces tests dans la partie « execute » du script (c.f readme du github).

 

  • on: Aucun rapport avec un ON/OFF d’un swich, comprenez le comme un déclencheur, comme un événement : Si il se passe ceci  alors execute … On peut y placer plusieurs vérification d’état de matériel
    • Placez y le vrai nom de votre device entre simple quotes (‘). Vous pouvez y utiliser étoile (*)  comme joker Exemple : PIR_* ou *_PIR . Dans ce cas tous les devices concernés seront mis à jour,
    • L’idx de votre matériel (Vous avez toujours le droit de changer de nom alors que l’idx ne changera jamais),
    • Le mot clé ‘timer’ qui permettra de lancer ce script toutes les minutes (voir plus bas).
    • Ou un mélange de tout cela tel que :

      On peut en placer autant que nécessaire et si n’importe lequel change de valeur, alors le script est exécuté.

    Remarquez les {} pour englober tous les matériels mentionnés dans le on= et les virgules en bout de ligne.

  • execute: C’est ici qu’est le coeur du script, c’est ici que vous déclencherez vos actions telles que changement d’états , envoi de notification, affectation de variables … Plus besoin de commandArray anymore.

Voyons maintenant une fonctionnalité puissance de dzVents le mot clé timer :

Le mot clé timer

Nous avons vu plus que que dans un on = { } on peut placer le mot timer pour gérer du temps.

Il faut savoir que Domoticz ne sait pas gérer du temps en dessous de la minute, aucun script Lua ne peut être lancé en dessous de cette limite, ceci dit dzVents apporte de la souplesse pour pouvoir faire de vrais plannings.

Voyons les nombreuses fonctions liées à cela.

Attention aux crochets [], ils sont indispensables (c’est du Lua):

Voyez la puissance de la dernière syntaxe quand à la création de plannings simples et clairs à lire.

Dans la vraie vie cela fait qq chose comme cela :

Remarquez les {} pour englober tous les horaires mentionnés dans [‘timer’] et la virgule au bout de ligne (sauf la dernière)

j’ai bien cherché quelques images/vidéo pour égayer mais à part à la queue leu-leu je n’ai rien trouvé alors il n’y aura pas d’illustration dans cet article.

 

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

Des scripts plus faciles pour Domoticz avec dzVents

Vous êtes sans doute nombreux à avoir vu passer l’info: depuis quelques semaines il existe un nouveau type de langage de scripts que l’on peut intégrer à Domoticz, les dzEvents de dannybloe.

Langage de script qui se veut plus simple et plus lisible que Lua et qui est une surcouche du Lua Domoticz. Ainsi le dzEvent sera « retraduit » en « vrai » Lua. L’idée est de faciliter la lecture/ecriture de scripts.

Vous trouverez donc ici la traduction à ma sauce et des débuts d’explications de ces ressources anglophones : http://www.domoticz.com/forum/viewtopic.php?f=23&t=10834&sid=b844044efb6fbeb0841881a164361a0c

et https://github.com/dannybloe/dzVents

Voici donc le pitch de dzEvents

Présentation

dzVents (|diː ziː vɛnts| raccourci pour Domoticz Easy Events) apporte un nouveau type de scripting dans Domoticz.

Vous pouvez gérer vos switches facilement,vous aurez un contrôle sur les scripts basés sur le temps avec un vrai planning, dzEvent vous apporte une API qui utilise toutes les informations de Domoticz issues de toutes les différentes tables de Domoticz.Plus de commandArrays complexes car dzEvent les encapsule tous y compris les écritures et lecture de vos périphériques.

Et cerise sur le gâteau la performance des scripts à été améliorée : si vous avez beaucoup de scripts Domoticz ne cherchera qu’une seule fois l’information pour vos script device et time au lieu de parcourir tous les scripts un par un.

Un exemple :

Imaginez que nous ayons un switch, qui à son changement d’état doit activer un autre switch si et seulement si la température d’une pièce est supérieure à une valeur niveau puis nous envoyer une notification

En dzEvent cela donne :

Pas mal !

Remarquez la syntaxe du haut on = , c’est le déclencheur sur l’état de quelque chose.

Un autre exemple avec des dates/heures/jours, le on = est ici un timer

Voyez qu’ici toutes les 10 minutes les lundi,mardi,mercredi,jeudi,vendredi on va lire une variable MyVar et si elle est égale a 10 on met une autre variable nommée ‘AnotherVar’  à 15 et on active une scène ‘Evening lights’ et si le périphérique nommé PIR n’a rien vu bouger depuis 5 minutes on met Bathroom lights à off par un switchOff.

Simple et concis.

Voyons la mise en place.

Installation.

Note: Ceci n’est pas testé pour des machines  non-linux (Windows).  Je suis certain que vous aurez des problèmes (dixit dannybloe concepteur du script).

Récupérez la dernière version depuis  GitHub, décompressez la dans le dossier de vos scripts Lua (/domoticz/scripts/lua)

Vous obtenez un dossier dzEvent-master, entrez à l’intérieur prenez en le contenu (copier) et recopiez le directement dans le dossier Lua (coller) pour obtenir cela  :

dzEvent_1

Supprimez dzEvent-master une fois que tout est fonctionnel.

En résumé, un dossier  dzVents,puis les fichiers dzVents contenant :

Ouvrez le fichier  dzVents_settings.lua et placez vos ip et numéro de port Domoticz. Merci de vérifier que vous n’utilisez pas de user/password pour le réseaux locaux (127.0.0.1) dans la config de Domotic sinon dzVents ne pourra lire les valeurs de vos équipements !

Dans ces settings on peut régler le niveau de log souhaité, plus ou moins bavard, 3 étant le plus loquace et utile au tout départ afin de savoir si tout marche. Repassez le à 2 ensuite.

Le [‘Enable http fetch’] à placer à True ou False permet à dzVents d’interroger régilièrement Domoticz et de mettre à disposition des scripts dzVents toutes les valeurs de Domoticz d’un seul coup.

[‘Domoticz ip’] = ‘192.168.1.81’,
[‘Domoticz port’] = ‘8080’,
[‘Fetch interval’] = ‘every 30 minutes’, — see readme for timer settings
[‘Enable http fetch’] = true, — only works on linux systems
[‘Log level’] = 3
}

Le dossier nommé scripts devra contenir nos scripts dzVents, il suffit juste de les nommer en .lua, plus besoin de script_device, ou script_time…

Et tout de suite les logs Domoticz doivent vous donner trace de l’activité de dzEvents (ici avec niveau de log = 3)

Bien maintenant que ça marche , continuons.

Si cela ne fonctionne pas vérifiez bien votre arborescence /domoticz/scripts/lua/dzevent avec le fichier de settings dans /lua

Mon premier script dzVents

Créons notre premier script :

Récupérez le nom exact d’un de vos switchs ici un capteur PIR nommé ‘Présence’ puis copiez ce script dans le dossier scripts (/domoticz/scripts/lua/scripts). Nommez le comme bon vous semble ici test.lua

Le script envoie une notification et affiche un message dans le log Domoticz lors de son passage à ON et envoie une notification lors du passage à OFF.

le log affiche alors (en mode 3)

Voila, après cette première étape nous découvrirons d’autres fonctionnalités dans de prochains articles.

P.S : il y a un dossier examples dans le dossier dzVents contenant quelques fichiers exemple, n’hésitez pas à les ouvrir pour vous en inspirer.

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