BenjyNet Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 (modifié) Ce thread est une "copie" de l'article de Sébastien Joly du blog domotique-info. Il y a quelques ajouts sur lesquels je me suis coincé les dents. 1. Première chose - le matériel un Raspberry Pi model B une carte SD de 8Go un module GPIO EnOcean Pi une alimentation micro USB un boitier pour le protéger Sur la photo on peut voir un connecteur SMA et une antenne 868MHz qui viennent en substitution de l'antenne présente sur le module GPIO pour augmenter la portée. J'ai également à ma disposition un capteur de température et d'humidité de chez Vitec. 2 - Préparer la carte SD avec l'OS (Raspbian Wheezy) Rien d'extraordinaire, il faut récupérer la dernière image officielle Raspbian Wheezy qui est stockée au format .zip, il faudra donc la décompresser pour obtenir un fichier .img qui est le format image de la distribution. Récupérer ensuite l'utilitaire Win32 Disk Imager pour pouvoir installer la distribution sur votre carte SD. Au lancement on obtient cette fenêtre : Il suffit alors de sélectionner l'image de la distribution (Image File), le lecteur où il y a la carte SD (Device) puis de cliquer sur Write. On attend et lorsque c'est fini, il n'y a plus qu'à insérer la carte SD dans le raspberry. 3 - Premier démarrage Tout d'abord, monter le tout. On emboîte le module EnOcean Pi sur la broche GPIO. On connecte un clavier USB, un écran HDMI, on vérifie que la carte SD est bien insérée, on met le tout dans une boite et on branche l'alimentation USB. Voilà ce que ça donne la boite ouverte. Etape suivante : on observe gentiment ce qui défile sur l'écran... tout un tas de ligne blanche sur fond noir incompréhensible pour le commun des mortels (c'est du linux, pour ceux qui connaissent ça leur parlera). On arrive maintenant à la partie configuration de base de l'OS. La fenêtre raspi-config apparaît et il faut maintenant faire dans l'ordre... 1 - Étendre le système de fichier à toute la carte SD en sélectionnant : 1 Expand Filesystem 2 - Changer les paramètres de langues pour adapter le système à notre langue, le français : 4 Internationalisation Options 2.1 - On change d'abord les Locales du système pour du français : I1 Change Locale Dans la liste on se met sur le en_GB qui est coché et on appuie sur espace pour le décocher. En utilisant la même méthode, on coche comme sur la capture. Pour se déplacer sur OK il suffit d'appuyer sur la touche Tabulation puis entrée pour valider Ok. On continue pour configurer les langues du système en sélectionnant fr_FR.UTF-8 puis Ok. 2.2 - On change ensuite le fuseau horaire pour le mettre sur Paris : I2 Change Timezone 2.3 - On passe ensuite le clavier en AZERTY (car au départ il est en QWERTY) : I3 Change Keybord Layout Je n'ai pas de capture d'écran alors dans l'ordre vous faites : Generic 1052-key (Int1) Pc puis Other, French, French, The default for the keybpard layout, No compose key et enfin No. 3 - Activer la possibilité de connexion par SSH :8 Advanced Options 4 - On termine la configuration en se plaçant sur Finish grâce à la touche Tabulation. A ce stade l'OS est configuré, il doit redémarrer (si ce n'est pas le cas taper : sudo reboot). Après le reboot, il faudra se loguer avec le login pi et le mot de passe raspberry s'il n'a pas été changé (dans le 2 Change User Password). Si vous voulez de nouveau avoir accès à raspi-config il suffit de taper, une fois loggé : sudo raspi-config 4 - Configuration du réseau Suite au reboot et à la connexion avec les identifiants ci-dessus, nous devons obtenir l'écran suivant La configuration du réseau sous Raspbian se passe dans le fichier /etc/network/interfaces. Il faudra le modifier pour avoir une ip fixe qui permettra par la suite d'accéder à distance en SSH à notre raspberry. On évite ainsi d'avoir un écran et un clavier de branché dessus 4.1 - Cas n°1 : connexion filaire Pour modifier le fichier il faut taper en ligne de commande : sudo nano /etc/network/interfaces Dans le fichier vous devez avoir : auto lo iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp Quelques explications sur ces lignes : auto lo : va démarrer l'interface automatiquement lors de la séquence de boot iface lo inet loopback : définition de l'interface loopback 127.0.0.1 iface eth0 inet dhcp : l'interface eth0 (port réseau RJ45 du raspberry) sera configuré par DHCP, il obtiendra donc directement son adresse par le réseau (IP dynamique). Le reste est pour la configuration du wifi, nous verrons cela plus tard. Il s'agit maintenant de mettre une adresse ip fixe, rien de plus simple, il faut modifier le fichier comme suit : auto lo iface lo inet loopback iface eth0 inet static adress 192.168.1.10 netmask 255.255.255.0 gateway 192.168.1.254 allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp Les 2 seuls lignes qui sont intéressantes : adress : c'est l'ip que vous donnez à votre raspberry gateway : c'est l'ip de votre passerelle vers internet (ici l'adresse de ma freebox). Pour enregistrer et quitter le fichier il faut appuyer sur Ctrl+X et répondre oui à l'écrasement. Il ne reste plus qu'à redémarrer l'interface réseau avec les commandes ifdown eth0 puis ifup eth0. Votre raspberry est accessible à l'adresse que vous avez spécifiée. 4.2 - Cas n°2 : connexion wifi Il faut tout d'abord mettre un dongle wifi sur le port USB du raspberry. Le plus simple est de prendre du matériel que l'on sait déjà compatible comme par exemple cette clé TP-Link et pour être sur qu'elle sera reconnue par raspbian il suffit de rebooter son raspberry si on l'a installée Rpi allumé. Il ne reste plus qu'à modifier le fichier qui va bien en tapant : sudo nano /etc/network/interfaces Comme vu précédemment il nous appartient de changer quelques lignes et cette fois-ci nous allons le faire sur la partie wifi et non RJ comme suit : auto lo iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet static adress 192.168.1.10 netmask 255.255.255.0 gateway 192.168.1.254 wpa-ssid "mon SSID" wpa-psk "mon mot de passe" iface default inet dhcp Les 4 seuls lignes qui sont intéressantes : adress : c'est l'ip que vous donnez à votre raspberry gateway : c'est l'ip de votre passerelle vers internet (ici l'adresse de ma freebox). wpa-ssid : c'est le SSID de votre réseau wifi donné par votre box (ou routeur) wpa-psk : c'est le mot de passe pour pouvoir se connecter à votre réseau wifi Pour enregistrer et quitter le fichier il faut appuyer sur Ctrl+X et répondre oui à l'écrasement. Il ne reste plus qu'à redémarrer l'interface réseau avec les commandes ifdown eth0 puis ifup eth0. Votre raspberry est accessible en wifi à l'adresse que vous avez spécifiée. A partir de maintenant il n'est plus nécessaire d'avoir un clavier + écran branché à notre raspberry. Vous pouvez les débrancher et utiliser votre ordinateur pour accéder à distance à notre passerelle. 5 - Accès à distance par SSH Le protocole SSH va nous permettre de nous connecter à notre raspberry à partir d'une autre machine. Ici je vais vous prendre le cas d'une machine sous windows qui va utiliser le logiciel d'accès à distance Putty. L'avantage de Putty c'est qu'il n'a pas besoin d'installation. C'est un simple exécutable que vous pouvez emmener partout, sur une clé USB par exemple. Pour le télécharger c'est par ici. Après avoir lancé l'exécutable il s'agira de le paramétrer en suivant les copies d'écran ci-dessous : Attention dans Host Name (or IP adress) il conviendra de rentrer l'IP que vous avec paramétrée juste avant dans le 4. de ce tuto. On ne touche pas au reste et on clique sur Open. On rentre en login pi et on appuie sur entrée puis en mot de passe raspberry et on appuie sur entrée. Si tout c'est bien passé vous devriez avoir la copie d'écran ci-dessous et être connecté sur votre raspberry. 6 - Mise à jour de la distribution et installation de FHEM Nous allons tout d'abord vérifier que notre distribution est à jour en tapant : sudo apt-get update Puis : sudo apt-get upgrade Si vous avez la version la plus récente de tous les paquets vous aurez : Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait 0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour. Sinon il vous posera une question : Do you want to continue [Y/n] ? Le Y étant en majuscule cela signifie que c'est l'option validée par défaut et qu'il nous suffira donc d'appuyer sur entrée. L'ensemble des paquets se met à jour il suffit d'attendre. Une fois que vous avez de nouveau la main, nous allons installer FHEM. Rien de plus simple, nous allons utiliser le script fournit par Sebastien de domotique-info : Taper : wget http://domotique-info.fr/wp-content/uploads/2014/04/domotique-info-fhem-setup.txt -O fhem-setup.sh Rendre le fichier exécutable : sudo chmod +x fhem-setup.sh Exécuter le script : sudo sh fhem-setup.sh Puis redémarrer la machine : sudo reboot A ce stade, FHEM est installé, vous serez déconnecté de Putty. Il faut attendre que le raspberry redémarre. 7 - Accéder à FHEM Pour accéder à FHEM, ouvrez un navigateur et taper dans la barre d'adresse http://<PI-de-la-passerelle>:8083 et vous tomberez sur la page de FHEM. Alors avant d'aller plus loin, j'ai en ma possession des capteurs de température et d'humidité O2line blanc de chez Trio2Sys, relativement petit (80x25x17 mm) et qui ressemble à ça : Nous allons tout d'abord cliquer sur Event monitor à gauche pour tomber sur une page où il y a rien à par écrit Events : Nous sortons ensuite le capteur de son emballage et nous le posons à la lumière pour qu'il reprenne des force et se charge un peu. Après quelques minutes avant même d'avoir touché quoi que ce soit vous devriez voir déjà remonter des informations qui ne sont pas forcément très explicite et pourtant notre capteur n'est toujours pas déclaré dans l'interface. Magique non ? Si vous ne voyer rien, taper dans la barre au dessus set TCM310_0 teach 300 (vous avez 5min pour réaliser ce qui suit ci-dessous). Pour que le capteur soit correctement reconnu il faut le passer en mode "apprentissage". Pour cela il faut déclipser la plaque arrière et appuyer sur LRN (abréviation de LEARN). On voit cette fois-ci que le capteur est correctement reconnu, qu'il utilise le protocole EEP A5-04-01 et qu'il est fabriqué par Trio 2 Sys. Après quelques instants, les informations devraient cette fois être correctement remontées. Dans mon cas ici, il fait 26 degrés sous ma lampe halogène de bureau et l'humidité de la pièce est de 50%. Pour être sur que tout s'enregistre correctement, cliquez sur Save config à gauche. 8 - Mise à jour de FHEM Régulièrement des mises à jour de FHEM sont effectuées pour que le logiciel puisse communiquer avec un maximum de capteurs/actionneurs sur différents protocoles. Il faudra donc le mettre à jour pour être sà»r d'avoir la dernière version. Il se peut que lors de l'achat d'un module Enocean, celui-ci ne soit pas reconnu mais une mise à jour de FHEM peut éventuellement régler ça. Je dis bien éventuellement car dans certain cas, tant que le module n'est pas inclus dans la base de FHEM, la configuration automatique ne pourra se faire et il faudra jouer alors avec les sub Type (mais c'est une autre histoire, je développerai en cas de besoin). Pour mettre à jour FHEM nous utiliserons encore Putty mais cette fois pour se connecter en Telnet, port d'écoute de FHEM sur notre Raspberry pi. Dans un premier temps il faut configurer Putty pour avoir les retours à la ligne automatique. Il suffit de se rendre dans Terminal puis cocher Implicit CR in every LF Après avoir cliqué sur Session, pour se connecter il faut rentrer l'IP de notre passerelle, cocher Telnet et fixer le port à 7072. On peut alors cliquer sur Open. La fenêtre noir de terminal apparaît, si vous n'avez pas le prompt fhem>, appuyez plusieurs fois sur entrée pour l'obtenir. Pour mettre à jour, tapez update et patientez. Une fois terminé, fermez la fenêtre Putty, FHEM est à jour. 9 - Push des valeurs des capteurs vers la HC2 Rien de bien compliqué, nous allons demander à FHEM d'envoyer les valeurs de nos variables par une requête cURL dans notre HC2. Tout d'abord, il faut créer 2 variables dans le HC2 pour notre capteur de température et d’hygrométrie. J'ai créé TempSalledeBain et HumSalledeBain pour que cela reste explicite (attention à ne pas mettre d'espace ou de caractères spéciaux, faites au plus simple, que des lettres, sinon ça peut poser des problèmes pour la suite). Pour faire remonter les valeurs il va falloir maintenant mettre les mains dans le cambouis et modifier le fichier de configuration de FHEM. Avant cela, il faut rendre le fichier de configuration modifiable en tapant dans la barre du haut : attr WEB editConfig 1 Ensuite, il faut cliquer sur Edit Files Puis sur fhem.cfg Comme nous avons déjà notre capteur de déclaré vous devriez trouver en bas dans le fichier ces quelques lignes (j'ai rajouter et organiser avec des commentaires pour bien séparer mes capteurs) : # Capteur Salle de bain T°/H # Définition du capteur define EnO_sensor_0180840F EnOcean 0180840F attr EnO_sensor_0180840F IODev TCM310_0 attr EnO_sensor_0180840F manufID 02C attr EnO_sensor_0180840F room EnOcean attr EnO_sensor_0180840F subType roomSensorControl.01 define FileLog_EnO_sensor_0180840F FileLog ./log/EnO_sensor_0180840F-%Y.log EnO_sensor_0180840F attr FileLog_EnO_sensor_0180840F logtype text attr FileLog_EnO_sensor_0180840F room EnOcean Et nous allons lui rajouter ces 3 lignes (dont une ligne commençant par # qui est un commentaire pour savoir ce que la suite fait) pour l'envoi des données : # Push des relevés vers la HC2 define TempSalledeBain notify EnO_sensor_0180840F.* { my $temp = ReadingsVal("EnO_sensor_0180840F","temperature", "");; system("curl --silent --output \'/dev/null\' --request PUT --data \'{\"value\": \"$temp\"}\' --user admin:MOT_DE_PASSE_ADMIN_HC2 http://IP_HC2/api/globalVariables/TempSalledeBain")} define HumSalledeBain notify EnO_sensor_0180840F.* { my $hum = ReadingsVal("EnO_sensor_0180840F","humidity", "");; system("curl --silent --output \'/dev/null\' --request PUT --data \'{\"value\": \"$hum\"}\' --user admin:MOT_DE_PASSE_ADMIN_HC2 http://IP_HC2/api/globalVariables/HumSalledeBain")} Pour finir, il suffit de créer un VirtualDevice pour visualiser nos données, je l'ai appelé Sonde Temp/Hum Ici j'ai 2 affichages, un avec un label (pour être visible sur mon smartphone par exemple) et un en log pour avoir un module simple et ne pas surcharger l'affichage du Home. Le petit code dans le VD qui va bien (dans le main loop) et en cadeau l'icone en pièce jointe. local vId = fibaro:getSelfId(); local temp = fibaro:getGlobalValue("TempSalledeBain"); local hum = fibaro:getGlobalValue("HumSalledeBain"); fibaro:call(vId, "setProperty", "ui.Label1.value", temp .. "° / " .. hum .. "%"); fibaro:log(temp .. "° / " .. hum .. "%"); Cerise sur la gâteau, dans FHEM il est possible de créer des courbes pour visualiser l'évolution de ses variables, rien de bien compliqué, ça s'appelle Create SVG plot dans les fileLog. On obtient ceci : Edit : Voir également le post de Lazer sur l'utilisation de l'API pour mettre à jour des devices typés température ou motion (cas d'un module Qubino par exemple, dont on n'utiliserait pas les entrées inters et la sonde de température) http://www.domotique-fibaro.fr/index.php/topic/678-passerelle-enocean-fhem/page-8#entry124196 Le gros avantage est que cette fois la température apparaît dans l'interface comme un vrai device et non comme une VG (visualisation du graphe dans le panneau de température). Modifié le 24 avril 2016 par BenjyNet 4
cedriclocqueneux Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 Une passerelle EnOcean pour la HC2 J'y avais pensé, justement, mais pas encore eu le temps de la réaliser
BenjyNet Posté(e) le 19 mars 2014 Auteur Signaler Posté(e) le 19 mars 2014 Yep ! Bon FHEM est installé en suivant le tuto de Sebastien sur domotique-info. D'ailleurs pour ceux qui souhaite le suivre, il y a quelques trucs qu'il faudrait connaitre et qui ne sont pas expliqués. Bon, j'ai la sonde qui a été reconnue tout de suite mais maintenant je suis bloqué, je ne sais plus quoi faire Va falloir que je cherche sur le net... Je vous tiens au jus...
Krikroff Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 Ha bien, FHEM sur un PI c'est effectivement une très bonne solution , mais perso je ne lui confierais rien de stratégique dans ma maison ! Mais pour le fun oui...
BenjyNet Posté(e) le 19 mars 2014 Auteur Signaler Posté(e) le 19 mars 2014 Effectivement Krikroff, il n'y aura rien de stratégique, il sera làuniquement pour permettre des relevés de températures/humidités et consommation. Toute la partie scénario/action est réservée au HC2/Zwave. Le but est de virer toutes ces p****n de piles qui coûtent un bras !
Krikroff Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 je ne peux qu'aller dans ton sens, les piles c'est un une vrai plaie !
Jerry Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 n'y a t'il pas moyen d'alimenter avec un transfo adapter en soudant les bornier des détecteurs par exemple avec les fils du transfo???
BenjyNet Posté(e) le 19 mars 2014 Auteur Signaler Posté(e) le 19 mars 2014 Si c'est possible Jerry mais tu te vois mettre des transfos partout dans la maison ? Au dessus de tes capteurs de portes, de fenêtre, dans chaque pièce où tu veux une température ? C'est un truc de fou !
Jerry Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 ben moi je suis en rénovation donc faire des saignés dans le mur et tout planqué dans les comble ça me fait pas peur lol
Jerry Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 une idée du transfo qu'il faudrait bricoler????
Lazer Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 A mon avis, une meilleure solution qui évite de ruiner la garantie : faire des fausses piles à base de tourillons en bois. J'ai déjà acheté les tourillons, j'essaierai de faire un tuto quand j'aurai le temps de mettre en Å“uvre.
Jerry Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 POUR ÉVITER DE FAIRE DE LA SOUDURE???
BenjyNet Posté(e) le 19 mars 2014 Auteur Signaler Posté(e) le 19 mars 2014 Oui et ça n'a rien de compliqué, je l'ai déjàfait pour certains montages.
cedriclocqueneux Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 Quitte à faire des saignées pour passer les fils, pourquoi ne pas utiliser le récepteur universel Fibaro, à la place ? http://www.domadoo.fr/produit,2779,1,FIBARO--D%C3%A9tecteur-Universel-Z-Wave-FGBS-001.htm 2 capteurs d'ouvertures pas chers branchés sur les entrées du FGBS-001: on gère deux ouvrants par FGBS Comme il peut accueillir 4 sondes de température, on pourrait même gérer la température de 4 pièces. On met les capteurs et sondes de température où il faut, on tire les cables juqu'au garage, où se trouvent les FGBS-001, branchés sur le secteur. Pas de problème de pile, et côté cout ca reste nettement plus économique que les capteurs sur pile. On peut même imaginer gérer les détecteurs de présence de la même facon, après tout les deux contacts en entrée du FGBS peuvent accueillir n'importe quoi. Bon, ca c'est la solution pour ceux qui sont en rénovation et qui n'ont pas peur de faire des saignées ;-)
BenjyNet Posté(e) le 19 mars 2014 Auteur Signaler Posté(e) le 19 mars 2014 Oui et moi j'ai aussi un soucis là dessus parce que j'ai un FGBS avec 4 sondes sauf que les sondes, je ne sais pas où les mettre L'avantage du capteur Enocean c'est que je peux le déplacer dans la pièce, le mettre à hauteur d'homme, etc.. Et si je change l'emplacement de mes meubles, je n'aurais pas un capteur qui risque de se retrouver derrière une armoire. En fait c'est bien les capteurs filaires mais je trouve ça difficile à poser pour un fonctionnement optimum.
Jerry Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 je suis en réno et j'ai pas peur de faire des saignées lol. Bon va falloir que je me penche sur le FGBS et ce que l'on peut y brancher dessus ^^
Lazer Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 @ Jerry : oui, pour éviter de souder les contacts dans les modules. L'idée c'est de prendre des tourillons du bon diamètre, les couper à la bonne longueur, de faire un petit trou au bout et d'y visser une vis, sur laquelle on a soudé un fil qui part dans la gaine jusqu'à l'alimentation située au grenier/garage/cave. C'est la vis qui fera contact avec les contacts métalliques du module à alimenter. D'où la "fausse pile". @ Cédric : pas bête du tout ! Par contre, les capteurs d'ouverture d'une alarme digne de ce nom ne se contentent pas d'un seul contact, car il faut aussi gérer le pin anti-arrachement. Voire même le bi-câblage, en normalement ouvert et normalement fermé.
Jerry Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 merci car àun mois de me lancer dans les travaux j'ai besoin de me fixer sur une solution pour prévoir ^^ 1
Lazer Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 Quelle que soit la solution, tu peux passer un maximum de gaines, ça sera toujours utile un jour (capteurs d'ouverture, volets roulants ou battants, détecteur de mouvement, caméras, capteurs de température, thermostat, réseau Ethernet, etc....) Tu laisses les gaines derrière le placo, et si tu ne les utilises pas c'est pas grave, et si un jour tu veux récupérer la gaine, il suffit de faire un trou àla scie cloche aux endroits préalablement repérés (un plan détaillé s'impose).
Jerry Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 oui oui c'est sur sauf que je n'ai pas l'ombre d'une plaque placo chez moi que de la briquette mdr 1
Lazer Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 Ah, du coup pour les saignées ça doit être bien galère.... bon courage
Jerry Posté(e) le 19 mars 2014 Signaler Posté(e) le 19 mars 2014 mais le module fgbs-001 peut contrôler deux contacts + 4 sondes de température ou juste l'un ou l'autre
Messages recommandés