Aller au contenu

Recommended Posts

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 

 

post-3110-0-11711100-1453069241_thumb.jpg                                          post-3110-0-71452300-1453069269_thumb.jpg
 
 

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...

post-3110-0-11711100-1453069241_thumb.jpg

post-3110-0-71452300-1453069269_thumb.jpg

  • Upvote 7

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ;) 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ahh oki, j'ai pas du tout voir dans le GIT du coup, je regarderai plus en détail, merci !

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

excellent ce tuto, j'aime bcp.

Vais voir si je peux mettre ca chez moi pour etre un peu plus WAF

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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...

Partager ce message


Lien à poster
Partager sur d’autres sites

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/

 

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

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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  :60:

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"

Partager ce message


Lien à poster
Partager sur d’autres sites

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 !

Partager ce message


Lien à poster
Partager sur d’autres sites

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.
 

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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?

Partager ce message


Lien à poster
Partager sur d’autres sites

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

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites
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 !

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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é  :(

Partager ce message


Lien à poster
Partager sur d’autres sites

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  :mellow:

Partager ce message


Lien à poster
Partager sur d’autres sites

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  :60: 

 

Par contre, impossible de lancer le service 

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

Dommage, le service ne se lance toujours pas (automatiquement ou àla main) après cette modification

Partager ce message


Lien à poster
Partager sur d’autres sites

×