Inspiration du week-end en domotique (3e édition)

Voici déjà la 3e édition de mes inspirations du week-end en domotique. Mon objectif est ici de vous proposer des sujets différents de mes articles habituels, mais toujours dans le cadre de la domotique ou de l’impression 3D.

Simulation de présence

En saison hivernale, certains d’entre partent prendre l’air à la montagne

Let it snow ?


Mais c’est le moment de ne pas oublier de s’intéresser à la simulation de présence.
C’est selon moi un complément indispensable à la présence d’une alarme.

Créer une simulation de présence avec les Philips Hue par https://www.maison-et-domotique.com

Plusieurs articles très intéressant sur ce vaste sujet par le blog victime-cambriolage.ovh
Simuler sa présence aléatoirement
Utiliser la fonction « aléatoire » de Stringify pour simuler sa présence
Quels simulateurs de présence pour se protéger des cambriolages ?

Modules pour télécommander les prises électriques

C’est sûrement l’un des domaines ou l’on trouve le plus de sujets 🙂 Que cela soit pour faire des économies d’énergies en évitant le mode « veille » de certains appareils, ou bien pour mettre en place une routine matinale (démarrage de la bouilloire), les prises télécommandables sont légions.Mais si vous souhaitez rendre ça plus intégrés, il faut obligatoirement passer par des modules à intégrer dans les boîtiers électriques.

ATTENTION : manipuler l’électricité est dangereux. Il faut toujours bien veiller à couper son compteur avant de réaliser des travaux électriques. En cas de doute, faites appel à un professionnel.

module sonoff sur amazon (Lien sponsorisé)

Les modules SONOFF sont les plus connus et s’intègrent très facilement à une installation domotique type jeedom. Ils sont certifiés CE (enfin, en théorie…).
Test de module SONOFF par Lunarok

Sauf que… et bien, il faut un peu faire de la bidouille si on veut les rendre parfaitement utilisables. Il faut flasher le firmware du sonoff pour y déposer ESPEasy :

Comment flasher le firmware du sonoff?  par domo-blog.fr

Module Shelly 1 sur amazon (Lien sponsorisé)

Les modules Shelly sont un produit européen, d’origine bulgare certifié CE. Et surtout, ils n’ont pas besoin d’être flashé.

Le test et la présentation du module Shelly Un test toujours réalisé par le fantastique Lunarok 😉

A noter de manière anecdotique, qu’il existe également des modules chacon wifi. A ma connaissance, ces modules n’ont pas d’API utilisables et donc ne sont pas intégrables, ni à jeedom, ni à IFTTT. Bref, même si l’application est très bien, vu le tarif, je les déconseille.

Mesurer la qualité de l’air intérieur

Bon, c’est pas encore une station airparif, mais enfin un test sympa pour évaluer la qualité de son air intérieur via un appareil made by Xiaomi!
Testeur de qualité de l’air Xiaomi Smartmi PM2.5 – par sarakha63
Petit bémol tout de même : ce genre de mécanisme de mesure des PMs nécessite un nettoyage des filtres réguliers, même en environnement intérieurs.

Bon dimanche à tous!

Automatiser la création de tâches dans todoist depuis jeedom

Suite à la mise en place des messages d’entretien de mon robot aspirateur (vous avez pas lu l’article ?!), je me suis retrouvé avec une gestion simple des compteurs et une information envoyé à l’utilisateur pour la mise à jour.

Sauf que comme j’étais jamais chez moi quand je recevais ce message, et bien je créais une action dans notre outils de gestion des tâches (todoist) et je réinitialisais le bon compteur via un scenario/widget. C’est-à-dire, exactement ce qu’on faisait précédemment dans l’application Xiaomi.

Ma tendre moitié m’a alors demandé :

  • ça serait pas possible de créer automatiquement une tâche partagée pour l’entretien ?  Comme ça, le premier qui fait l’opération coche l’action et hop, cela met à jour le compteur. ..
  • C’est pas bête ça… mais pffft y’a pas de plugin todoist dans jeedom… je vais y réfléchir…

Bon, je vous spoile un peu mais OUI c’est possible. Evidemment sinon j’aurai pas fait cet article.

Il existe même DEUX méthodes pour créer des tâches todoist ; Une méthode avec une interface toute jolie, plus facile… et une méthode « barbue » ligne de commande. Cet article ne détaillera que la méthode facile mais je vous donnerai des indices sur la méthode barbue si cela vous intéresse.

Et pour cela, IFTTT est votre copain Mais si, mais si vous allez voir.

Prérequis

  • avoir un compte IFTTT
  • avoir un Jeedom fonctionnel
  • avoir un compte todoist (ET des tâches partagées si vous êtes plusieurs…)

Installer le plugin IFTTT dans jeedom

Le plugin est gratuit, on l’installe et on suit la procédure habituelle.

Ajouter todoist dans IFTTT

Il faut activer le service dans IFTTT

Ajouter un webhook dans IFTTT

Webquoi ? webhook. C’est un mécanisme intégré dans IFTTT pour obtenir une URL spécifique à appeler depuis l’extérieur.

On active le service dans IFTTT : https://ifttt.com/maker_webhooks

Cela vous donne une clé. On en aura besoin plus tard pour jeedom, mais pas besoin de la noter de suite.

Créer un scénario IFTTT pour générer une tâche todoist depuis ifttt

IFTTT permet de récupérer plusieurs éléments dans un webhook : un nom d’évènement, et trois valeurs facultatives. On crée donc une nouvelle recette en partant de webhook. J’ai nommé le mien ainsi : robot

Il faut créer le projet au préalable dans totoist
A vous de voir comment organiser la tâche
Tâche du jour, bonjour.

Configurer IFTTT dans Jeedom

Pas trop compliqué, mais il faut recopier notre clé depuis ifttt vers jeedom. Commencer par récupérer la clé dans votre configuration IFTTT

La clé est dans la zone rouge

Ensuite dans le plugin Jeedom, commencer par « Ajouter » un nouveau IFTTT. Donnez lui un nom explicite (genre IFTTT Robot)


On recopie la clé de notre webhook dans l’emplacement … clef du plugin.

Ensuite, on crée les différentes actions. Dans la partie nom, on indique le nom à utiliser dans les scénarios Jeedom. Evenement contient le nom de l’évenement dans IFTTT et enfin les valeurs contiennent les valeurs à passer à IFTTT. Dans mon cas je n’ai besoin que de « valeur 1 »

Configurer le scénario pour appeler ifttt

La aussi, ce n’est pas compliqué. Quand on a besoin de créer la tâche, on fait appel à notre action IFTTT.

A ce niveau-là, plus qu’à tester pour vérifier que tout va bien. Mais le scénario devrait automatiquement créer une tâche dans todoist.

Hourra. Allez prendre un café, vous l’avez bien mérité…. quoi ? Ah oui, la version barbue!

Bonus : API Todoist

Alors, oui IFTTT est vraiment un truc cool, pratique. Et je vous le conseille grandement.

MAIS on utilise un intermédiaire de plus. Et en informatique, un intermédiaire de plus, cela signifie des délais allongés, des conditions de service pouvant être dégradés… On a pas de garantie qu’IFTTT ne deviendra pas payant… et qui s’occupe des mises à jour d’API ?

TODOIST a bien fait son travail : ils ont directement fournis leur API.

todoist a même créé un script python sous github :
https://github.com/doist/todoist-python . Cela tombe bien, les scripts python sont utilisables dans Jeedom via le plugin script.

Attention à ne pas oublier de créer une application pour obtenir un token valide.

https://developer.todoist.com/appconsole.html

J’ai par exemple créé une application … jeedom_skipcool.

On peut ensuite créer un script python pour aller créer automatiquement une tâche : voir ici unexemple fourni https://developer.todoist.com/sync/v7/?python#add-two-new-tasks

Une fois le script fini, on peut l’utiliser dans Jeedom via le plugin script.

Domotiser la charge d’une tablette ou téléphone Android

Dans ma salle de bain, j’ai intégré un petit téléphone Android pas cher et surtout, qui ne craint pas l’eau. Ce téléphone est utilisé pour plusieurs choses :

On ne juge pas!

Oui, mais voilà, utiliser un téléphone / tablette tous les matins et tous les soirs imposent la contrainte de … penser à le recharger.

Et plutôt que de le laisser brancher en permanence… j’ai souhaité domotiser sa charge.

Prérequis

  • 1 prise commandable via Jeedom : dans mon cas, il s’agit d’une Kasa TPLink (lien affiliée)

Une fois reçue, la prise doit être configurée avec l’application android Kasa. L’application existe également sous iOS : Kasa Smart

  • 1 téléphone / tablette sous Android. 
  • 1 Jeedom fonctionnel
  • 1 compte Telegram fonctionnel ou Pushbullet

Configuration de Jeedom

Côté Jeedom : installer les plugins nécessaires

  • 1 plugin Jeedom Telegram ou Pushbullet préalablement configuré.
  • 1 plugin Jeedom pour gérer votre prise (dans mon cas: kkasa )

Si vous souhaitez de l’aide pour installer le plugin Telegram, je vous conseille le tutoriel suivant : https://www.maison-et-domotique.com/70896-piloter-jeedom-avec-telegram/

Une fois le plugin installé sur votre jeedom, commencer par activer le plugin… Puis installer les dépendances.

N’oubliez pas de rentrer votre compte / mot de passe kasa.

Puis rendez vous dans la page de configuration : menu plugin, Objets Connectés, kKasa

Un clic sur synchroniser, puis appuyer sur F5… Magie, vos prises apparaissent dans périphériques

Votre seule activité consistera alors à régler vos prises en renommant le périphérique avec un nom explicite, unique.

Dans mon cas, j’ai nommé la prise en « Prise téléphone« , associé à la zone « salle de bain ». Retenez bien ce nom, ça sera utile pour la suite!

Configuration d’android

Il est nécessaire d’installer quelques applications sur le téléphone android :

Programmation de Tasker

Sur le téléphone Android, j’ai programmé Tasker ainsi :

J’ai créer une première tâche « Activation prise » consistant à envoyer une notifcation via l’application pushbullet/Telegram à destination de Jeedom le message « Prise téléphone on« 

J’ai ensuite créé une seconde tâche « Désactivation prise », envoyant sur le même principe « Prise téléphone off« 

Ensuite, j’ai créé deux profils « Prise on » et « Prise off« .

Prise On se déclenche sur les events suivants :

  • « Niveau de batterie de 10% à 10% » et
  • « Source AC » case « Inverser » à oui

Et son action consiste à démarrer la tâche « Activation prise« .

Prise off se déclenche sur les événements suivants :

  • Niveau de batterie de 100% à 100% et
  • « Source AC » case Inverser non coché

Et bien entendu l’action associée… consiste à démarrer la tâche « Prise off« .

En rédigeant cet article, je ne pouvais pas m’empêcher de penser à JourNuit de Pixar…

Et là normalement tout marche par la magie Jeedom! Enfin presque. Car si comme moi, vous avez désactiver les interactions automatiques… ben rien ne se passe.

Configuration de Jeedom

Dans le menu configuration, Interactions, pensez à activer les interactions automatiques.

Pour conclure : pensez aux économies

Cet article m’a été inspiré en partie de l’article de Sarakha63 sur son centre de contrôle. Je le remercie grandement 🙂

Le fait de ne pas avoir à penser a la recharge du téléphone c’est pratique… mais vu que je vous ai fait installer Tasker, profitez-en pour régler finement vos paramètres d’énergie avec des modes agressifs pendant les périodes d’absences : par exemple pas de réseau, pas de GPS, puissance minimale etc. L’électricité qu’on ne dépense pas, c’est toujours de l’électricité qu’on ne paie pas !

Inspiration du week-end en domotique (2e édition)

Domotique pour le jardin

Et si on transformait notre potager en une version ludique, gérée par la domotique, open-source ? C’est le concept derrière Farm.bot

Non, ce n’est pas imprimante 3D à plante…

Radiateurs connectés

Le blog de Heatzy a publié un comparatif (rapide) mais intéressant sur des radiateurs connectés :

Les deux derniers nécessitent l’achat d’une Cozytouch… à 100€ pièce. .https://heatzy.com/blog/4-radiateurs-connecte-2018

En résumé, les radiateurs Heatzy ont l’air bien… mais il faudrait pour ça qu’ils soient disponibles à la vente 😉

Bon dimanche à tous!

Informer l’utilisateur des besoins d’entretien du robot Xiaomi depuis jeedom

Edit du 22/01/2019 : Ajout d’un événement spécifique pour prendre en compte le démarrage du robot « manuellement ».

Pour ceux qui ne le savent pas, je possède un robot aspirateur Xiaomi Roborock. C’est un excellent robot, qui fait bien son job quasiment aussi bien que le Neato que j’avais avant.

version 1 du robot.

L’application Xiaomi est pratique, mais pas très intelligente. On ne peut sélectionner que des jours de passages. Pour lui, les vacances ou les jours de télétravail, il s’en fiche un peu.

Pour compenser, j’ai réalisé via jeedom (non ?!!!!) des scénarios pour contrôler de manière plus intelligente le passage de notre robot ménager, en utilisant le plugin de Lunarok.

L’application Xiaomi avait deux avantages sur jeedom : la présence de compteurs pour demander le nettoyage capteurs, le changement des brosses etc et une notification pour demander le remplacement / entretien. Bon, elle permet aussi de visualiser un plan 3D du lieu de passage du robot mais à part faire mumuse, ça ne sert à rien dans la vie de tous les jours. En tout cas, je n’ai pas trouvé 😉

Cet article va expliquer comment réaliser un scénario pour remplacer cette fonction

Prérequis

  • Une installation de jeedom qui fonctionne
  • Le plugin Xiaomi de Lunarok
  • Un robot Xiaomi relié au plugin Jeedom
  • En option, le plugin virtuel

Principe

Le principe va être de faire la différence entre le moment ou le robot part de sa base (début de nettoyage) et le moment ou le robot rentre à sa base (fin de nettoyage, recharge etc.) et d’ajouter ce temps à des compteurs distincts pour les matériels.

J’ai donc créé deux scénarios, le premier s’occupe de démarrer le robot aux heures / moment qui nous intéressent et le second s’occupe du moment ou le robot rentre à sa base.

Scénario de démarrage du robot

Dans mon cas c’est assez simple : j’ai un déclencheur temporel qui le lance tous les jours sauf le dimanche à 9h30. Pas trop compliqué. En cas de présence, on peut utiliser des fonctions pour éviter que le robot se lance.

Mais il faut prendre en compte les lancements manuels (via le bouton). Dans ce cas là j’ai ajouté un déclencheur :

[Maison][Robot blanc][Statut]# != "En charge" && #[Maison][Robot blanc][Batterie]# <= 98 && variable(robot_start) = 0

Seul défaut de ce déclencheur, s’il y a une longue coupure de courant, et ben… le robot se déclenche. Même en pleine nuit … Enfin, bon, 2% de batterie, c’est environ 30 min de décharge. C’est assez rare chez moi. Dans l’idéal, il faudrait pouvoir récupérer le statut d’un onduleur relié à jeedom, chose que je n’ai pas fait chez moi.

Pour autoriser le démarrage, j’ai ensuite rajouté un second déclencheur non visible :

[Maison][Robot blanc][Statut]# != « En charge » && #[Maison][Robot blanc][Statut]# != « Retour à la base » && #[Maison][Robot blanc][Batterie]# <= 98 && variable(robot_start) = 0

Dans la partie scénario, je demande au robot de démarrer son cycle, je m’envoi un message et je note dans une variable au bout de 2 min que le robot a démarré. Cette variable sert surtout pour éviter les problèmes de coupures de courant…

Scénario de retour du robot à la base

La on rentre dans un cas plus compliqué. Pour le déclenchement, soit on demande au robot de retourner à la base, soit le robot se met en charge ET le robot a bien été démarré.

Au niveau du scénario : on commence par réinitialiser la variable de démarrage puis on ajoute le temps passé a chacun des compteurs : robot_filtre, robot_brosses et robot_capteur. J’utilise la formule suivante qui se base sur le temps d’exécution du scénario de début. On divise par 60 pour avoir le temps en minutes.

variable(robot_filtre) + floor(lastScenarioExecution(#[Maison][Robot][Robot_demarrage]#)/60)

A vous d’adapter cette partie. Ensuite j’envoi via IFTTT un message d’information. Bon, vous êtes pas obligé d’utiliser IFTTT, un mail / un message dans telegram fera aussi bien l’affaire.

J’ai rajouté ensuite des tests pour chacun des compteurs, et j’envoi un message différencié selon le capteur a nettoyé / changé.

Pour les valeurs des compteurs nous avons choisi les valeurs suivantes :

  • nettoyage capteur toutes les 3000 min (50 h)
  • Filtre => 12000 min (200 h)
  • Brosses 18000 min (300 h)
  • Vidage du bac : à chaque fois !

Gestion des cas d’erreurs

Alors après plusieurs essais, nous avons eu des soucis de robot coincé sur des jouets… j’ai donc ajouté un scénario se déclenchant sur une erreur.

Sa seule action est de renvoyer le robot à sa base s’il a bien démarré. Donc en le renvoyant, cela va démarrer le scénario de fin.

Si le robot a démarré, on le renvoie à la niche!

Option : virtuel pour visualiser réinitialiser les compteurs

Ce n’est pas obligatoire, mais je vous recommande de créer un virtuel pour réinitaliser les compteurs. Il vous faut donc le plugin virtuel.

Commencer par créer un nouveau virtuel et n’oubliez pas de l’activer et de le rendre visible.

Puis configurer les commandes pour afficher les informations des différents compteurs. J’en ai mis trois mais vous pouvez en mettre autant que vous voulez.


Ensuite, ajouter des « boutons » d’actions. Lorsque vous allez les créer cela va ajouter automatiquement des informations supplémentaires, qui sont affichées.

Mais l’action ne fait ici « rien du tout » alors pas besoin d’afficher le virtuel.

On configure chacune des actions pour réinitialiser un compteur : cliquer sur l’icône en forme de roue crantées, puis onglet configuration, et ajouter « action après exécution de la commande. Et ensuite, réinitialiser la variable.

Il ne reste plus qu’à « ranger » votre virtuel à votre sauce. Personnellement je met le mien au format tableau, et j’affiche chacune des infos virtuelles avec le widget « tile(core) ».

Pour conclure

Après quelques semaines d’utilisations, les compteurs marchent très bien. Mais évidemment, je ne me suis pas arrêté en si bon chemin et je me suis dit « et s’il était possible de rajouter une tâche dans ma todo-list pour penser à changer / nettoyer les différents capteurs ? Et bien, je l’ai fait, cela fonctionne trèèèès bien mais ce sera le sujet d’un prochain article.