hexan79 Posté(e) le 17 janvier 2016 Signaler Posté(e) le 17 janvier 2016 J'aimerais partager avec vous ma petite réalisation DIY de passerelle domotique pour Home Center. Je l'ai testée pour HCL, mais ça devrait marcher aussi pour HC2. L'objectif est le pilotage des modules du système d'alarme Fibaro. Un sujet semblable a déjà été abordé auparavant ici, ou encore ici. En effet, je n'étais pas satisfait de la détection de présence (et d'absence) à travers la connexion wifi domestique et j'étais encore moins satisfait du système de géolocalisation de la Fibaro HCL et son côté hyper-aléatoire. Je me suis dit que le moyen le plus robuste pour piloter l'alarme en fonction de la présence/absence serait un système basé sur un contrôle d'accès NFC. Principe Une passerelle NFC est installée à l'intérieur du logement, juste à l'entrée. Cette passerelle est en attente permanente du passage d'un Tag NFC. Au passage d'un Tag NFC indiquant l'entrée ou la sortie de quelqu'un du logement, l'état de l'alarme de la HCL/HC2 change (de armé à désarmé ou inversement) Une LED permet de visualiser l'état de l'alarme (allumée si armée, éteinte si désarmée). Prérequis - Une HC2 ou une HCL et des modules d'alarme : détection de mouvement, détection d'infraction, sirène, etc Le tout configuré de cette façon au niveau du panneau d'alarme de la HCL/HC2. - Quelques connaissances Linux pourraient être utiles pour l'installation du software, la copie et la modification de fichiers... Matériel - Une HCL ou une HC2 - Un Raspberry Pi (modèle B+ ou 2), OS : Raspbian Wheezy (je n'ai pas testé si ça fonctionnait avec une autre distribution Linux) - Un contrôleur NFC NXP EXPLORE-NFC adapté au Raspebrry Pi. En vente ici (merci à @i-magin pour l'info). - Une LED, une résistance et quelques cables électroniques pour relier la LED au raspberry Pi de cette façon - Un câble ethernet pour relier le Raspberry Pi à la box ADSL ou à une prise murale réseau OU BIEN un dongle USB Wifi (plus simple) - Un boitier pour intégrer le Raspberry Pi et le shield NFC (j'ai utilisé le boitier Femto de ma freebox qui ne me servait plus, certains l'ont peut-être reconnu ) - Un câble micro USB pour alimenter le Raspberry Pi - Un jeu de Tags NFC type MiFare (un tag par utilisateur potentiel) Il faut compter environ 50€ de matériel (hors HCL/HC2 bien sà»r) Photos Logiciel Le code (Python) du logiciel qui tourne sur Raspberry Pi et que j'ai appelé "homeGW" (comme home GateWay) est disponible dans Github sur ce lien. Un descriptif d'installation et de configuration y est décrit. Il s'agit d'une première version avec surement quelques bugs. Voici quelques caractéristiques du logiciel: - Le logiciel est paramétrable : informations d'accès à la HCL/HC2, les ID des modules d'alarme, les ID des tags NFC pouvant contrôler l'alarme, etc (voir fichier README) - La HCL/HC2 n'a pas besoin d'être spécifiquement configurée pour "cohabiter" avec la passerelle. Autrement dit, aucune scène spécifique, aucun "virtual device" ne sont nécessaires. Par contre, je fais appel à une variable globale définie dans la HCL qui indique l'état de l'alarme (armée ou pas). Pour ma part j'ai fait une scène simple qui permet de positionner cette variable à "1" lors que l'un (ou tous) des modules d'alarme est armé et à "0" lorsqu'il est désarmé. Le nom choisi pour cette variable dans HCL/HC2 devra être indiqué au logiciel homeGW au niveau du paramètre "HCL_ARMED_VAR" (voir la description du paramétrage dans le fichier README). - Si l'état de l'alarme de la HCL/HC2 est modifié par un autre moyen (PC, smartphone...), la passerelle se synchronise automatiquement avec ce nouvel état au bout de quelques secondes (grâce à la variable décrite dans le point précédent). - Un fichier log est prévu pour répertorier tous les éventements qui se produisent au niveau de la passerelle NFC y compris les échanges avec la HCL/HC2, les erreurs, l'heure passage des tags NFC et leurs ID, etc. La suite... Je vais essayer d'améliorer ce projet à travers les échanges que j'espère avoir avec vous, vos questions, vos contributions... Si ce projet vous intéresse et si vous souhaitez vous lancez dedans, n'hésitez pas à faire part de vos retours d'expérience dans ce topic. Les possibilités offertes grâce à l'API de la Home center mais aussi à d'autres API sont très intéressantes. Dans la même logique que pour l'alarme, j'imagine très bien des actions de contrôle de l'éclairage, du chauffage, de la musique, d'une caméra IP... qui se déclenchent sur ordre de la passerelle NFC. A suivre donc... 7
Nico Posté(e) le 18 janvier 2016 Signaler Posté(e) le 18 janvier 2016 Excellent ça, j'en avais déjàlu plusieurs des tutos, mais ton installe me parait pas mal du tout ! Penses tu qu'il serait possible d'avoir également une image de la carte SD par exemple, ce qui simplifierai l'installation non ?
hexan79 Posté(e) le 18 janvier 2016 Auteur Signaler Posté(e) le 18 janvier 2016 Excellent ça, j'en avais déjà lu plusieurs des tutos, mais ton installe me parait pas mal du tout ! Penses tu qu'il serait possible d'avoir également une image de la carte SD par exemple, ce qui simplifierai l'installation non ? Il suffit d'avoir l'image Raspbian pour Raspberry sur SD et d'installer dessus homeGW tel que c'est décrit dans Github. Ce n'est pas très compliqué et à mon sens c'est bien plus ludique que de récupérer une image toute faite
Nico Posté(e) le 18 janvier 2016 Signaler Posté(e) le 18 janvier 2016 Ahh oki, j'ai pas du tout voir dans le GIT du coup, je regarderai plus en détail, merci ! 1
pepite Posté(e) le 18 janvier 2016 Signaler Posté(e) le 18 janvier 2016 excellent ce tuto, j'aime bcp. Vais voir si je peux mettre ca chez moi pour etre un peu plus WAF 1
i-magin Posté(e) le 19 janvier 2016 Signaler Posté(e) le 19 janvier 2016 Intéressant @hexan79 Dans les précisions que tu dis vouloir apporter, je suis particulièrement intéressé par le volet "Une LED et quelques câbles électroniques (pour relier la LED au raspberry)"... je suis nul dans le domaine
hexan79 Posté(e) le 19 janvier 2016 Auteur Signaler Posté(e) le 19 janvier 2016 Le câblage de la LED avec le Raspi ressemble à ce qu'on voit dans cette image . Il faudra aussi une résistance. Les câbles que j'ai utilisés ressemblent à ça La difficulté que j'ai eue, c'est que tous les pins du Raspi étaient cachés par le connecteur (noir) du shield NFC. J'ai donc dà» ruser un peu avec les câbles que j'avais sous la main pour choper les contacts depuis ce connecteur. D'où le câblage bizarre sur la photo du boitier ouvert... Ensuite le code Python qui contrôle la LED ressemble à ça (voir code Github): GP.setup(11,GP.OUT) GP.output(11,False) --> pour éteindre GP.output(11,True) --> pour allumer
i-magin Posté(e) le 19 janvier 2016 Signaler Posté(e) le 19 janvier 2016 Merci @hexan79 pour les précisions
speckery Posté(e) le 19 janvier 2016 Signaler Posté(e) le 19 janvier 2016 J'aimerais partager avec vous ma petite réalisation DIY de passerelle domotique pour Home Center. La première mise en oeuvre qui me semblait intéressante, était le pilotage des modules du système d'alarme Fibaro (Mais je ne devrais pas m'arrêter là ) Je l'ai testée pour HCL, mais ça devrait marcher aussi pour HC2. Un sujet semblable a déjà été abordé auparavant ici, ou encore ici. Descriptif du projet : Une passerelle NFC est installée à l'intérieur du logement, juste à l'entrée. Cette passerelle est en attente permanente du passage d'un Tag NFC. Au passage d'un Tag NFC à quelques centimètres de cette passerelle pour indiquer l'entrée ou la sortie de quelqu'un du logement, l'état de l'alarme change (de armé à désarmé ou inversement) Une LED permet de visualiser l'état de l'alarme (allumée si armée, éteinte si désarmée) Matériel : - Une HCL (ou une HC2) - Un raspberry Pi (modèle B+ ou 2) - Un controlleur (shield) NFC (NXP EXPLORE-NFC) adapté au Raspebrry Pi - Une LED et quelques cables electroniques (pour relier la LED au raspberry) - Un cable ethernet pour relier le Raspberry Pi à la box ADSL ou à une prise murale réseau OU BIEN un dongle USB Wifi (plus simple) - Un boitier pour intégrer le Raspberry Pi et le shield NFC (j'ai utilisé le boitier Femto de ma freebox qui ne me servait plus ) - Un cable micro USB pour alimenter le Raspberry Pi - Un jeu de Tags NFC type MiFare (un tag par utilisateur potentiel) Il faut compter environ 50€ de matériel (hors HCL/HC2 bien sà»r) Photos Voir les photos jointes au post. Logiciel Le code (Python) du logiciel qui tourne sur Raspberry Pi et que j'ai appelé "homeGW" (comme home GateWay) est disponible dans github sur ce lien. Un descriptif d'installation et de configuration est dans le fichier README.md Il s'agit d'une première version avec surement quelques bugs. Voici quelques caractéristiques du logiciel: - La HCL (ou la HC2) n'a pas besoin de connaitre l'existence de cette passerelle. Autrement dit, aucune scène spécifique, aucun virtual device,... ne sont nécessaires. Tout est géré dans le logiciel de la passerelle. - Le logiciel est paramétrable : accès à la HCL, les ID des modules d'alarme, les ID des tags NFC pouvant contrôler l'alarme, etc (voir fichier README.md) - Si l'état de l'alarme de la HCL est modifié par un autre moyen (PC, smartphone...), la passerelle se synchronise automatiquement avec ce nouvel état au bout de quelques secondes. La suite... Le tutoriel, à ce stade, est encore "léger". J'essaierai d'apporter plus de précisions sur la partie réalisation matérielle mais aussi sur la configuration et l'utilisation du logiciel. En attendant je suis à l'écoute de vos questions, remarques, propositions d'amélioration,... Vous pouvez même contribuer sur github au logiciel de contrôle de la passerelle et l'améliorer si cela vous intéresse. Les possibilités offertes grâce à l'API de la Home center mais aussi à d'autres API sont très intéressantes. Dans la même logique que pour l'alarme, j'imagine très bien des actions de contrôle de l'éclairage, du chauffage, de la musique... qui se déclenchent au moment du passage du tag NFC. A suivre donc... Génial dis donc... pour la gestion de l'alarme c'est top! bizarre la gueule de ton boitier par contre... c'est dingue que ces empafés de chez Fibaro n'aient pas encore sorti le lecteur rfid ou NFC...
i-magin Posté(e) le 28 janvier 2016 Signaler Posté(e) le 28 janvier 2016 Bon, j'ai essayé et je rencontre des problèmes Pour l’installation de nxppy, pas de souci. J'ai pu tester avec l'exemple de polling la carte Mifare livrée avec la carte EXPLORE-NFC, mais aussi les badges d'entrée de ma résidence A propos de cette carte, elle est actuellement en solde (22,05 €) ICI Pour ce qui concerne homeGW : git clone https://github.com/ezekri/homeGW.git OK - le téléchargement c'est bien exécuté sous /home/pi/ sudo cp homegw /etc/init.d/ Modifié en : sudo cp homeGW/homegw /etc/init.d/ OK je retrouve bien le fichier homegw sous init.d chmod 755 /etc/init.d/homegw update-rc.d homegw defaults Précédées de SUDO, ces deux instructions ont été exécutées J'ai modifié le fichier hgwengine.py Mais au reboot j'obtiens ce warning : "startpar : service skipped, programm is not installed : homegw.... Les commandes suivantes ne renvoient rien : sudo service homegw start et sudo service homegw status Pas de fichier log ("/var/log/access_ctl.log") Merci d'avance pour ton aide @hexan79
hexan79 Posté(e) le 29 janvier 2016 Auteur Signaler Posté(e) le 29 janvier 2016 Bon, j'ai essayé et je rencontre des problèmes Pour l’installation de nxppy, pas de souci. J'ai pu tester avec l'exemple de polling la carte Mifare livrée avec la carte EXPLORE-NFC, mais aussi les badges d'entrée de ma résidence A propos de cette carte, elle est actuellement en solde (22,05 €) ICI Pour ce qui concerne homeGW : OK - le téléchargement c'est bien exécuté sous /home/pi/ Modifié en : sudo cp homeGW/homegw /etc/init.d/ OK je retrouve bien le fichier homegw sous init.d Précédées de SUDO, ces deux instructions ont été exécutées J'ai modifié le fichier hgwengine.py Mais au reboot j'obtiens ce warning : "startpar : service skipped, programm is not installed : homegw.... Les commandes suivantes ne renvoient rien : sudo service homegw start et sudo service homegw status Pas de fichier log ("/var/log/access_ctl.log") Merci d'avance pour ton aide @hexan79 Cool! tu y es presque J'ai peut-être un idée sur l'origine du pb. D'abord es-tu bien sur l'OS Raspbian au niveau du Raspberry ? En effet, la manière de définir un service peut varier d'un OS à l'autre. Si t'es bien sur raspbian c'est OK, vérifie que la variable "HOMEGW_PATH" dans le fichier "homegw" pointe bien vers le repertoire où se trouve les sources refais un coup de "sudo update-rc.d homegw defaults" Ensuite, essaie de lancer le service par "sudo service homegw start" et vérfie qu'il a bien été lancé par "sudo service homegw status"
i-magin Posté(e) le 29 janvier 2016 Signaler Posté(e) le 29 janvier 2016 Bonjour @hexan79 J'ai téléchargé sur le site raspberrypi.org la version 3.18 de RASPBIAN WHEEZY Voici le retour de la commande uname - a Linux raspberrypi 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l GNU/Linux J'avais vérifié que la variable dans homegw : HOMEGW_PATH=/home/pi/homeGW/ concordait avec mon installation En voici la vérification : pi@raspberrypi ~ $ cd /home/pi/homeGW/ pi@raspberrypi ~/homeGW $ ls hgwengine.py hgwservice.py homegw __init__.py LICENSE README.md J'avais aussi tenté de relancer un update-rc.d Nouvel essai : pi@raspberrypi ~ $ sudo update-rc.d homegw defaults update-rc.d: using dependency based boot sequencing Et comme, je te le disais, pas de message de retour aux commandes start et status : pi@raspberrypi ~ $ sudo service homegw start pi@raspberrypi ~ $ sudo service homegw status pi@raspberrypi ~ $ Par contre, un essai avec le service ssh fonctionne : pi@raspberrypi ~ $ sudo service ssh status [ ok ] sshd is running. Et pour finir un extrait du retour de la commande sudo service --status-all pi@raspberrypi ~ $ sudo service --status-all [ ? ] alsa-utils [ + ] avahi-daemon [ ? ] binfmt-support [ - ] bootlogs [ ? ] bootmisc.sh [ ? ] cgroup-bin [ ? ] checkfs.sh [ ? ] checkroot-bootclean.sh [ - ] checkroot.sh [ - ] console-setup [ + ] cron [ + ] dbus [ + ] dhcpcd [ ? ] dphys-swapfile [ ? ] fake-hwclock [ - ] homegw [ - ] hostname.sh [ ? ] hwclock.sh [ + ] ifplugd Merci de ton aide !
i-magin Posté(e) le 29 janvier 2016 Signaler Posté(e) le 29 janvier 2016 J'ai essayé avec RASPBIAN JESSIE version:4.1 Installation de nxppy sans souci. Test de polling de la carte Mifare : ok Installation de homeGW puis reboot : Failed to start LSB: homegw See 'systemctl status homegw.service' for details. Voici ce que retourne la commande systemctl status homegw.service pi@raspberrypi:~ $ systemctl status homegw.service â— homegw.service - LSB: homegw Loaded: loaded (/etc/init.d/homegw) Active: failed (Result: exit-code) since ven. 2016-01-29 13:53:11 CET; 7min ago Process: 399 ExecStart=/etc/init.d/homegw start (code=exited, status=203/EXEC) La commande sudo service homegw start renvoie la même erreur pi@raspberrypi:~ $ sudo service homegw start Job for homegw.service failed. See 'systemctl status homegw.service' and 'journalctl -xn' for details. Même message pour 'systemctl' et pas de journal pour 'journalctl -xn' pi@raspberrypi:~ $ journalctl -xn No journal files were found.
hexan79 Posté(e) le 29 janvier 2016 Auteur Signaler Posté(e) le 29 janvier 2016 Tout a l'air d'être bien pourtant! Je n'ai pas sous la main d'environnement pour tester. Mais vérifie cela : 1) le fichier homegw, l'as-tu bien modifié avec un éditeur sous linux? Si tu le modifies sous windows pour ensuite le copier sur raspi, ça pourrait ne pas marcher. 2) peux-tu essayer d'enlever le slash "/" à la fin de HOMEGW_PATH, ça donne donc : HOMEGW_PATH=/home/pi/homeGW
hexan79 Posté(e) le 29 janvier 2016 Auteur Signaler Posté(e) le 29 janvier 2016 Deux autres vérifications àfaire: - Python est-il bien installé sur ton raspi? en général il l'est par défaut (tape : which python) - depuis le repertoire des sources, essaie de lancer : sudo python hgwservice.py y'a-t-il un message d'erreur?
i-magin Posté(e) le 29 janvier 2016 Signaler Posté(e) le 29 janvier 2016 Normalement, je n'avais pas à modifier homegw (mais le fichier hgwengine.py) Mais il est vrai que cet après-midi j'ai modifié homegw : j'ai effectué la modification que tu proposes car je me demandais s'il n' y avait un / de trop à la fin du path Je l'ai effectuée sous l'éditeur de Raspberry ...Mais toujours la même erreur Python est bien installé J'ai modifié hgwengine.py avec notepad ++ (sous Windows) sudo python hgwservice.py : il y a bien une erreur Je reviens d'ici peu pour la suite
i-magin Posté(e) le 29 janvier 2016 Signaler Posté(e) le 29 janvier 2016 J'ai relancé putty pour copier plus facilement les messages ... Le message d'erreur retourné par sudo python hgwservice.py pi@raspberrypi:~/homeGW $ sudo python hgwservice.py Traceback (most recent call last): File "hgwservice.py", line 3, in <module> from hgwengine import * File "/home/pi/homeGW/hgwengine.py", line 123 Status API Training Shop Blog About Pricing ^ SyntaxError: invalid syntax Si je comprends bien c'est une erreur qui concerne hgwengine.py Curieusement des lignes qui n'apparaissent pas sur le GitHub time.sleep(self.pollInterval) Status API Training Shop Blog About Pricing © 2016 GitHub, Inc. Terms Privacy Security Contact Help J'imagine que je dois supprimer ces deux dernières lignes ?
hexan79 Posté(e) le 29 janvier 2016 Auteur Signaler Posté(e) le 29 janvier 2016 effectivement ! on a trouvé le coupable. T'as dû faire un copier/coller de toute la page github pour avoir ces lignes dans ton code. La bonne manière d'installer le code comme indiqué dans le fichier README c'est en utilisant "git clone" ça devrait résoudre ton problème de démarrage de service.
i-magin Posté(e) le 29 janvier 2016 Signaler Posté(e) le 29 janvier 2016 J'ai bien effectué le git clone Mais pour éditer le fichier hgwengine.py sous notepad ++ je ne me souviens plus... probablement comme tu le dis Je rejoue tout çà ce soir et je te tiens au courant Merci !
i-magin Posté(e) le 29 janvier 2016 Signaler Posté(e) le 29 janvier 2016 Réinstallation complète y compris Raspian Jessie Toujours le même message d'erreur au boot Failed to start LSB: homegw See 'systemctl status homegw.service' for details pi@raspberrypi:~ $ systemctl status homegw.service â— homegw.service - LSB: homegw Loaded: loaded (/etc/init.d/homegw) Active: failed (Result: exit-code) since sam. 2016-01-30 00:23:14 CET; 12min ago Process: 400 ExecStart=/etc/init.d/homegw start (code=exited, status=203/EXEC) J'ai lancé la commande sudo python hgwservice.py Le code étant en exécution continue je l'interromps par Ctrl C Résultat : pi@raspberrypi:~/homeGW $ sudo python hgwservice.py ^CTraceback (most recent call last): File "hgwservice.py", line 9, in <module> poll.start() File "/home/pi/homeGW/hgwengine.py", line 121, in start time.sleep(self.pollInterval) KeyboardInterrupt Apparemment plus d'erreur à ce niveau, Je vais tenter la modification de HOMEGW_PATH, de homegw
i-magin Posté(e) le 30 janvier 2016 Signaler Posté(e) le 30 janvier 2016 Modification de HOMEGW_PATH puis sudo chmod 755 /etc/init.d/homegw sudo update-rc.d homegw defaults Toujours la même erreur Essai de lancement à la main pi@raspberrypi:~ $ sudo service homegw start Job for homegw.service failed. See 'systemctl status homegw.service' and 'journalctl -xn' for details. systemctl status homegw.service â— homegw.service - LSB: homegw Loaded: loaded (/etc/init.d/homegw) Active: failed (Result: exit-code) since sam. 2016-01-30 01:11:38 CET; 21s ag o Process: 779 ExecStart=/etc/init.d/homegw start (code=exited, status=203/EXEC) sudo service homegw status â— homegw.service - LSB: homegw Loaded: loaded (/etc/init.d/homegw) Active: failed (Result: exit-code) since sam. 2016-01-30 01:11:38 CET; 42s ag o Process: 779 ExecStart=/etc/init.d/homegw start (code=exited, status=203/EXEC) janv. 30 01:11:38 raspberrypi systemd[1]: homegw.service: control process ex...3 janv. 30 01:11:38 raspberrypi systemd[1]: Failed to start LSB: homegw. janv. 30 01:11:38 raspberrypi systemd[1]: Unit homegw.service entered failed.... Je suis à nouveau bloqué
i-magin Posté(e) le 30 janvier 2016 Signaler Posté(e) le 30 janvier 2016 Pour finir ce soir, j'ai tenté avec ton fichier hpengine.py J'ai les mêmes codes erreur Si évidemment la passerelle ne peut pas fonctionner sans les bons codes, est-ce que l'on a ce type d'erreur ? A bientôt
i-magin Posté(e) le 30 janvier 2016 Signaler Posté(e) le 30 janvier 2016 Je termine par une bonne nouvelle, du moins en partie En exécutant "sudo python hgwservice.py" la passerelle tourne bien Il suffit d'aller voir le fichier log :/var/log/access_ctl.log Et en effet, armement et désarmement s’exécutent bien sur ma box Par contre, impossible de lancer le service
hexan79 Posté(e) le 30 janvier 2016 Auteur Signaler Posté(e) le 30 janvier 2016 Je sais pourquoi le service ne se lance pas, j'ai oublié d'indiquer qu'il faut rendre executable le fichier python : chmod +x hgwservice.py maintenant tout devrait fonctionner. Le service se lancera automatiquement au démarrage du raspberry. Amuse-toi bien et n'oublie pas de poster la photo de ton boitier homeGW.
i-magin Posté(e) le 30 janvier 2016 Signaler Posté(e) le 30 janvier 2016 Dommage, le service ne se lance toujours pas (automatiquement ou àla main) après cette modification
Messages recommandés