La Geek Attitude

A la recherche de solutions pour améliorer le quotidien


Poster un commentaire

Arduidom, j’avance…

Suite à la migration vers la v3.0 de Jeedom, le plugin Arduidom ne semble plus poser de problèmes à la Jeedom SMART comme sous la version 2.4.6

Je suis donc reparti dans mes essais pour utiliser ma carte Arduino Uno R3 pour suivre ma consommation d’eau grâce au capteur CNY70.

N’ayant pas encore ce composant à disposition, je me suis rabattu sur un autre me permettant d’utiliser un signal d’entrée, à savoir le touch sensor, présent dans un starter kit.

Je dois dire que l’opération est très simple sauf qu’il m’a fallu un certain temps et des fouilles sur le forum de Jeedom pour trouver l’erreur que j’avais commise… Vous verrez plus bas.

Voici les étapes:

  • Montage électronique du sensor sur le banc d’essai et connexion (ou directement) à la carte Arduino

Ici le schéma montre une connexion sur le port 2 mais j’ai utilisé le port 3.

  • Configuration de la carte dans le plugin Arduidom.

Il est important de bien forcer le migrage des données, de télécharger la version 127 du sketch et de le téléverser sur la carte. Pour ma part, j’ai téléchargé le sketch à partir de la configuration du plugin mais j’ai téléversé ce dernier à partir de mon PC. On sauvegarde et on redémarre le deamon.

  • Configuration des pin d’entrées: Entrée digitale configurée pour la PIN 3

  • Création d’un équipement pour le compteur d’eau.

  • Création de la commande pour récupérer le signal venant du touch sensor ainsi que l’assignation de la pin d’entrée. 

Ici, on crée une commande info, de type binaire pour la PIN3 avec le nom qu’on veut. Ici, j’ai mise litrage.

  • Configuration avancée de la commande pour incrémenter 3 variables pour stocker la consommation d’eau.

C’est sur point que je me suis fait avoir, je n’avais pas rempli le champ plus de (min) et la commande n’était pas exécutée.

  • Création d’un virtuel permettant l’affichage de ces variables dans le dashboard ainsi que l’historisation des valeurs.

  • Création d’un scénario pour la remise à zéro des variables en fonction du jour.

Après avoir suivi ces différentes étapes, il suffit de tester en posant son doigt sur le sensor, vérifier que la led TX clignote bien à ce moment-là ( elle clignotera 2 fois, un première fois pour envoyer une donnée binaire 1 et une seconde fois quand le doigt est éloigné) ainsi que les variables sont bien incrémentées.

Il ne restera donc plus qu’à remplacer le sensor par le CNY70 (je vous ferai part du schéma) et adapter si nécessaire cette petite procédure.


Poster un commentaire

Arduidom VS Jeeduino

Après la lecture des quelques premiers chapitres du livre Arduino pour les nuls, l’application de quelques exercices et quelques composants brûlés, j’ai voulu passer un peu de temps pour comprendre l’interface entre Jeedom et l’arduino utilisant la connexion USB.

Je n’ai pas réussi à arriver à mes fins car les deux plugins permettant la gestion des entrées et sorties de l’arduino n’ont pas fonctionnés.

J’ai tout d’abord testé Jeeduino et première déception, après l’activation du plugin et la configuration, le z-wave, bien que son statut semblait ok, plus aucune commande ne fonctionnait.

Je suis donc passé au second qui est Arduidom. J’étais assez confiant car l’installation et la configuration s’étaient bien passées grâce à une petite vidéo trouvée sur le net et j’avais même réussi à allumer une LED via Jeedom et la sortie digitale.

J’ai vite déchanté quand j’ai vu brusquement la température du processeur monter en flèche et que l’activité du CPU était à 100%.

Est-ce lié à la SMART ou à autre chose? Peut-être aurais-je des informations sur le forum de Jeedom.

Quoi qu’il en soit, il est fortement possible que j’envisage une solution indépendante avec un shield WiFi et tenter l’envoi de requêtes http pour mettre à jour un virtuel dans jeedom pour récupérer les informations que l’arduino récupère par les entrées analogiques.


6 Commentaires

Premiers pas de développeur

Voilà maintenant quelques semaines qu’une idée me taraude l’esprit car j’ai un besoin que Jeedom ne comble pas pour le moment: l’exportation par mail d’une représentation graphiques des données historisées. Je voudrais que chaque premier du mois, Jeedom m’envoi un mail avec les graphiques de mes équipements pour les commandes choisies.

Mon but est de pouvoir consulter mes historiques en dehors de Jeedom, de les stocker quelque part mais également de ne pas garder à vie toutes les valeurs pour ne pas remplir la base de données.

N’ayant pas eu de retour sur un post que j’ai mis sur le forum de Jeedom, j’ai tenté de trouver une solution par moi-même.

La première a été de directement plonger dans la documentation pour développer un plugin… J’ai vite déchanté car, certes, je connais un peu le PHP mais j’ai du mal à rentrer dans la logique qu’il faut suivre pour réaliser un tel développement.

J’ai donc tenté une autre approche qui est de créer un script utilisable dans le plugin script de Jeedom pour générer du code HTML qui pourrait être stocké dans une variable et ensuite être transmis par mail via une scénario. Sur ce coup, je me sentais un peu plus confiant mais fallait-il d’abord trouver les bons outils pour générer des graphiques.

J’ai donc installé un Jeedom de dev sur une machine virtuelle sous Debian Jessie ainsi que PhpMyAdmin et je me suis lancé dans l’aventure. Après avoir écumé quelques sites, je suis tombé sur une librairie javascript permettant assez facilement la création de graphiques: CanvasJS.

La version d’essai est totalement utilisable et montre simplement un petit message qui en informe l’utilisateur.

J’ai donc utilisé le plugin Monitoring pour historiser les températures du processeur du Jeedom de Prod, de mon Raspberry PI3 où tourne un serveur Plex et enfin le serveur virtuel sur lequel mon environnement de test fonctionne.

J’ai du changer les droits d’accès du répertoire /var/www/html pour me permettre d’y créer un répertoire et y mettre mon fichier php ainsi que la librairie CanvasJS. Mon premier jet, développer tout à fait en dehors de Jeedom, ressemble à ceci:

Grahps.jpg

Les valeurs sont condensées à des jours précis car je n’ai pas laissé tourner ma machine virtuelle constamment. Je vais peut-être penser à restaurer un backup de mon serveur de prod pour avoir plus de données. Au final, cela rend exactement ce que je voudrais.

Hormis le code PHP que je suis en train de peaufiner pour dynamiquement pouvoir créer un graphique de ce type sur base de l’ID de la commande, je me pose déjà des questions pour l’après:

  • Comment donner accès à la base de données à mon script? Actuellement, j’ai mis en dur le login et mot de passe. Peut-être existe-t-il une class ou un fichier php à inclure pour directement accéder à la base de données.
  • Comment écrire le résultat de l’exécution du script, à savoir du code HTML, dans une variable pour l’envoyer ensuite par mail en utilisant le plugin Mail?

Si certains ont déjà travaillés sur ce type de projet, cela m’intéresse histoire de ne pas réinventer la roue. Si je me lance dans quelque chose d’inédit, une aide ne serait pas de refus pour, à terme, peut-être créer un vrai plugin permettant via une interface type « ajout d’équipement » dans jeedom, ce serait encore mieux.

EDIT du 28/05/2017: Je n’avais pas bien vu les conditions d’utilisation de cette libraire et il semble qu’on ne puisse pas l’utiliser plus de 60 jours. J’ai donc cherché une autre solution et un nouvel article sera rédigé avec le nouveau choix: Chart.js


Poster un commentaire

Jeedom et mon MCZ

Une de mes grandes frustrations dans la domotisation de ma maison est la gestion du chauffage.

Mes sèches serviettes et les réversibles sont contrôlés, les premiers avec un module fibaro et les seconds avec le broadlink RM mini. Ces derniers sont partiellement en pilotage automatique mais c’est le temps qui me manque pour creuser et optimiser au max.

Mon soucis est le poêle à granulés qu’il est impossible d’interfacer avec Jeedom directement. 

J’ai quand même tenté de trouver une solution pour faire un système hybride.

Tout d’abord, l’allumage, la gestion de la température et l’arrêt du poêle est faite par la télécommande du poêle. Cette dernière allume le poêle à 6h30 du matin et éteint à 21h00 si la température n’est pas satisfaisante.

Dans Jeedom, deux scénarii sont utilisés:

Le premier pour activer le wallplug 30 minutes avant l’allumage par la télécommande si la température mesurée par l’oeil de Sauron est en dessous de la température souhaitée.

Le second pour l’arrêt, 45 minutes après la commande stop exécutée par la télécommande du poêle. Cela pour permettre à ce dernier de bien s’arrêter.

Ce système me permet de ne pas m’occuper du chauffage et devoir anticiper les changements de température, surtout au printemps où un retour du froid peut arriver.


Poster un commentaire

Un multiprise pour les gouverner tous

J’arrive tout doucement à la fin de mon installation, car il faut bien qu’il y en ait une sinon mon but de faire des économies d’énergie serait ruiné par la multitude d’appareils ajoutés dans la maison.

Aujourd’hui, je voulais justement parler d’un élément de mon installation qu’il me semble intéressant d’aborder: le coin TV.

Jusque maintenant, j’avais un multiprise branché sur mon réseau électrique à travers un wallplug de Fibaro afin de pouvoir éteindre tout et ne rien laisser en veille. Point embêtant, j’ai un harmony hub qui met 40 secondes à s’allumer à chaque fois que je rallume le wallplug. Autre point, tous mes périphériques non-utilisés sont en veille. J’ai donc une TV, le Harmony Hub, l’ampli home-cinéma et un subwoofer amplifié.

J’avais déjà chercher une solution et avais trouvé le multiprise Greenwave mais il n’est plus disponible.

C’est donc suite à un article de Sarakha63 que j’ai découvert l’univers Broadlink dans lequel j’ai enfin trouvé mon bonheur, à savoir, un multiprise pas cher du tout permettant la gestion individuellé des prises de courant.

Hier, j’ai donc recyclé mon wallplug pour l’utiliser avec mon poêle à granulés et j’ai remplacé mon multiprise par le Broadlink MP1. 

Tout d’abord, j’ai dû remplacer la prise mâle de ce dernier car il est fourni avec une prise chinoise ( ou US, je ne sais pas trop ). Ensuite, sans lire les instructions ( normal, c’est en chinois ), j’ai installé l’application sur mon smartphone en utilisant le QR code. Attention, la clé de votre wifi ne doit pas être trop longue car le système refuse qu’elle soit plus longue que 32 octets. J’ai été obligé de la changer et de refaire la configuration de tous mes autres appareils connectés en wifi.

Après vérification du bon fonctionnement avec l’application du constructeur, j’ai installé le plugin dans Jeedom, inclus le mp1 et magie, widget ajouté dans le dashboard avec mes 4 prises.

Il ne me restait plus qu’à revoir mes scénarios afin d’ajouter les activations et désactivations individuelles des prises en fonction des activités choisies, ces dernières venant du Harmony Hub.

J’en ai également profité pour ajouter un aeontec 6 en un pour contrôler température et humidité dans mon garage, le pilotage du radiateur de la cuisine ainsi que l’ajout de Roller Shutter 2 pour le deux derniers volets qui n’étaient pas encore domotisés.

Je compte quand même suivre les évolutions de chez Broadlink car il existe d’autres modules qui pourraient être intéressants… On verra l’espérance de vie de ce matériel chinois…


Poster un commentaire

Affinage de scénario

Tout l’intérêt de la domotique est bien évidemment de contrôler les différents éléments de la maison mais également de pouvoir programmer des actions répétitives ou à des moments bien précis.

Les idées arrivent au fur et à mesure que les périhpériques et plugins sont s’ajoutent.

Après avoir ajouté le plugin de la télécommande de la Freebox, je me suis dit qu’il serait intéressant de changer automatiquement de chaîne pour le journal télévisé de 13h et de 20h mais également de zapper automatiquement sur une chaîne lorsque une émission quotidienne nous intéresse.

J’ai donc eu un besoin de savoir si le jour actuel est un jour de la semaine ou du week-end.

Grâce au plugin « Information du jour » disponible sur le marketing gratuitement, j’ai donc programmé le zapping automatique chaque jour pour regarder le journal de 13h et celui de 20h sur ma chaîne préférée. J’ai aussi programmé le zapping automatique pour que mon épouse puisse regarder sa série habituelle qui est diffusée en semaine.


Par l’ajout de ce plugin, je peux également avoir d’autres informations sur le jour qui pourront me permettre de programmer la fermeture de mes volets en été pour éviter l’utilisation trop régulière de la climatisation dans le salon.


Poster un commentaire

Le tableau de bord Jeedom

Un point à ne pas négliger est l’organisation du tableau de bord (Dashboard) de Jeedom afin de pouvoir avoir une vue claire des différents éléments de votre réseau domotique ainsi que l’état de chacun quand il est possible de le récupérer.

Jusqu’ici, je n’y avais pas plus porté attention mais maintenant que je suis un peu plus à l’aise avec Jeedom et que de nouveaux modules d’ajoutent, je rentre un peu plus loin dans la configuration de ce dernier.

Les exemples sur des blogs montrant des dashboard bien chargés m’ont interpellé car tous ont de jolies icônes et les états clairement visibles alors que jusqu’ici, rien de tout cela chez moi.

Tout se joue au niveau de la configuration de chaque commande du module, dans l’onglet affichage avancé où des types de widgets (lumière, volet par exemple) sont sélectionnables afin d’afficher très clairement l’état de la lampe ou du volet de manière visuelle.

Un autre point important est la création d’objets qui permettent ensuite d’organiser le dashboard par pièce pour regrouper les périphériques.

L’étape suivante est maintenant l’équipement de deux autres volets et un détecteur de mouvements/température/luminosité afin de conjuger les informations collectées par ce dernier pour fermer les volets en cas de forte exposition au soleil. Le but est bien évidemment de limiter l’utilisation de la climatisation car je rappelle la raison de l’application de la domotique chez moi: réduire la consommation électrique.


Poster un commentaire

Statut après trois jours

Voilà presque 3 jours que l’installation est opérationnelle.

Bien évidemment, elle est assez simple vu qu’il n’y a que la teleinfo et un dimmer présents.

Néanmoins, j’ai pu commencer à la analyser la consommation afin de me décider pour l’installation de panneaux photovoltaïques.

J’ai entre-temps acheté une application dénommée Clever Home qui permet d’avoir une interface avec Jeedom.

C’est moins esthétique mais le contenu y est et cela me permet de visualiser les mêmes chosesque via l’interface web de Jeedom.

Il y a juste un défaut, la mise à jour des données est assez lente mais ce n’est pas trop grave.

J’ai également installé quelques plugins supplémentaires comme Freebox OS qui me permet d’avoir les fonctions de l’application Compagnon directement dans jeedom. J’ai aussi ajouté le plugin de gestion de notification par email.

Enfin, je suis rentré dans la partie scénario de Jeedom afin de préparer un peu le terrain quand j’aurais d’autres périphériques. C’est une sorte de système de règles qui permet d’exécuter des actions.

Donc, prochaine étape, l’ajout du module pour télécommander un volet.

Je cherche également un multiprise qui me permettra d’automatiser la coupure des appareils en veille.


2 Commentaires

En résumé…

Pourquoi faire un petit résumé de l’état actuel des choses allez-vous me dire?

Et bien parce qu’hier, en voulant installer des packages pour ajouter des fonctions au Raspbian, et bien, j’ai rendu inopérationnel certaines fonctionnalités de l’OS. Le cron ne fonctionnait plus par exemple.

J’ai donc eu l’idée de refaire un petit guide complet pour installer (ou réinstaller) le Raspberry et cela me servira de pense-bête si cela m’arriverait encore de foutre en l’air le serveur.

Je reprends ici les différentes étapes avec les sources trouvées sur le net pour procéder à l’installation complète (reboot du Raspberry après chaque opération):

Il y a 2 lignes à ajouter dans le crontab pour exécuter les script php aux intervalles conseillés (il faut remplacer _ par une tabulation):

-/1 * _* * *_root_/usr/bin/wget -N http://ipaddressdupi/teleinfo/teleinfo_puissance.php

55 23_* * *_root_/usr/bin/wget -N http://ipaddressdupi/teleinfo/teleinfo_conso.php

Il faut également modifier le script teleinfo_func.php pour écouter sur le bon port (cela dépend si vous faites le petit montage vous-même ou si vous achetez comme moi la puce connectable en USB)

  • Sauvegarde de l’image en cas de problème: -> sur Mac, utilisé l’utilitaire de disques pour faire une image de la carte mémoire dans un état connu comme étant OK afin de pouvoir le restaurer en cas de problème. Il faudra alors suivre exactement la même procédure que pour l’installation de l’image de l’OS mais en remplaçant le nom par l’image effectuée par vos soins.


Poster un commentaire

En attendant toujours le module Teleinfo

Au vu des mouvements sociaux à la poste, ma carte d’acquisition des données du compteur EDF a pris un peu de retard.

J’ai donc avancé sur la préparation software du Raspberry pour cette fonction.

Tout d’abord, les scripts PHP trouvés sur le net utilisent sqlite3 pour la base de données… Or cette extention n’est pas présente sur le Raspbian par défaut. Il faut donc l’installer.

J’ai également préparé le crontab qui exécutera un script toutes les minutes et un autre à la fin de chaque journée.

Enfin, j’ai configuré le Raspberry pour pouvoir envoyer des mails en utilisant le serveur smtp de google. Ce dernier point sera utilisé pour envoyer des rapports pdf quotidiens/hebdomadaires et mensuels.

Suite au prochain épisode…