LAUBC : Un nouveau projet -> Lampe Automatique Ultra Basse Consommation

Salut à  tous,

Je sais bien que mon projet Gruino stagne depuis quelques mois, j’avoue que étant fonctionnel et répondant actuellement parfaitement à  mon besoin en mode « proto » j’ai moins la motivation pour le faire avancer.  Surtout  en ce moment ou tout se chamboule dans ma tête et ou la domotique prends une place de plus en plus importante dans mon esprit 🙂 Ne vous en faites pas il n’est pas mort et finira par aboutire 🙂

Tous ces chamboulements liés à  la domotique me travaillent beaucoup et amène une montagne de questions et d’amélioration non négligeable du confort au quotidien pour des sommes modiques.

Ce projet en est l’un des fruits 🙂

Oui mais qu’est que c’est !?

LAUBC, pour Lampe Automatique Ultra Basse Consommation  est une lampe qui allumera la lumière automatiquement en cas de présence / passage et l’éteindra ensuite. Tout doit être optimisé dans la mesure du possible pour consommer le moins possible et être durable et simple à  programmer. Ce projet vise les lieux de passages (couloirs, hall, lampe extérieurs, etc.) et les sanitaires (SDB, WC).

Histoire :

L’idée de la LAUBC est arrivé un peu comme ça, un délire, suite à  l’automatisation de la lumière des toilettes du boulot. Et la … Je me suis dit… Je veux la même chose dans mes couloirs et mes toilettes ! Une lumière qui s’allume quand je passe ou quand je suis aux toilettes sans avoir d’interrupteurs, le but est surtout d’éviter les oublies des amis (pour les toilettes) ou les notres (couloire de l’escalier qui reste parfois allumée, et quand la porte est fermée on ne s’en apperçoit pas…).

L’idée est aussi lié au fait que nous voulons refaire nos toilettes, donc autant en profiter. Nous souhaitons également diminuer notre consommation électrique en passant de lampe basse conso type tube fluo à  des lampes ultra basse conso à  led. Certes le gain est minime mais c’est aussi une question de principe 🙂

Oui mais ça existe déjà  ça ! Ben oui c’est vrai ! combien de fois je me suis retrouvé dans le noir parce que leur fichu système était mal pensé… Et que quand on est un peu « long » aux toilette  pouf la lumière s’éteint en plein effort parcque l’on a pas pensé en plus à  bouger … et la on se retrouve à  faire coucou au capteur… Pire, quand vous partez, vous bougez, ben oui 🙂 le capteur voit un mouvement et remet son compteur à  zéro… Combien de temps la lumière reste allumé derrière vous ?

C’est tous ces points que j’ai voulu faire évoluer 🙂

Ce projet est donc une « PDC » (Preuve  De Concepte) plus qu’une solution ultime industrialisable. Mais si cela vous plait libre à  vous de le refaire à  la maison 🙂 Il sera orienté « toilette » car c’est beaucoup plus complexe de détecter une présence qu’un bête passage… En revanche il sera adaptable aux couloires très facilement. Certains grands constructeurs semblent faire des solution basé sur le couple Ultrason + Infrarouges mais le prix (entre 80 et 180€) m’a immédiatement refroidi. Sans compté que j’ai vu ces capteurs qu’après avoir entammé mon projet…

Les objectifs :

  • Faible cout
  • Possibilité de fonctionner avec ET sans « intelligence centrale »
  • Consommation réduite à  son maximum
  • Techno embarqué le plus possible DANS la lampe (en cas de déménagement pour que je puisse retrouver ce « confort » rapidement).
  • Que la lumière ne s’éteigne pas en mode « détection de présence » lors d’une période d’immobilisme
  • Un projet DIY pour intégrer d’autre petites choses (capteur de lumière / température / humidité / consommation électrique)
  • Adaptable facilement partout

Le matériel  :

Détecter une présence, pas si simple…

Le capteur « primaire » :

Il existe plusieurs technologies de capteurs et plusieurs méthodes. La pluspart du temps on va utiliser un capteur PIR (Pyroelectric InfraRed), ce sont ceux que l’on retrouve dans les interrupteurs, les détecteurs de mouvements à  l’extérieur, etc. Il est aussi possible de mesurer une distance avec un télémètre infrarouge ou ultrason. On pourrai aussi imaginer mettre un capteur de charge dans le plancher mais ça devient vite complexe…

Télémètre Infra Rouge : éliminé d’office, pas suffisament de porté et ou trop chère !

Télémètre Ultrason : apriori un bon candidat. j’ai donc testé avec un HCSR04. Pour détecter un mur ou un objet plat aucun problème il mesure correctement malgré quelques erreurs ça reste tout à  fait positif. Il est trouvable à  moins de 5€ sur le net donc pas trop chère. Que du bon … oui mais… ben oui il y a un gros MAIS ! Nous ne cherchons pas a détecter un objet plat… une tête, c’est plutôt rond non ? J’ai donc fait les tests avec ma chérie, je me suis mis 1.20m au dessu d’elle environ et la le capteur alternait entre 1.60m et 15m ! (il faut tout de même préciser qu’il n’est pas sensé avoir une porté supérieur à  4 ou 5 m… il est fort ce capteur… oui sauf qu’aucune valeur correcte n’est arrivée…

Ce serai lié au fait que les vêtements et les cheveux amortissent les son qui mettent plus de temps à  repartir et fausse ainsi la mesure… Il serait utilisable en détection en utilisant les abérations du capteur (si je détecte un trou de 15m c’est qu’il y a quelqu’un) mais ce n’est pas tres fiable ni propre…

Autre défaut : un angle de 15° relativement faible pour couvrir toute la zone. Apparement certains capteurs ont un angle plus large donc ce défaut pourrait être palié.

Un petit dernier ? Il faut faire des mesures continuellement ce qui consomme du courrant, du processeur sur la carte Arduino et n’est pas super optimale…

Le capteur PIR : THE capteur ! son fonctionnement est simple, le capteur réagit quand un point d’une certaine  température bouge dans ses « zones ». En fait la boule que l’on voient sur ces capteurs est un prisme qui sépare ce que le capteur voit en   zones. Super efficaces mais, ben oui encore un mais… quand il n’y a plus de mouvement le capteur devient aveugle… dommage hein surtout que sur un trône on ne bougent pas énormément… Pour palier à  ce défaut le capteur intègre un petit timer qui permet de maintenir l’état haut pendant x secondes . A chaque mouvement le capteur remet le timer à  zéro.  Il a un angle de 160° (de mémoire) et une porté de 6m, pas mal hein et j’en  ai commandé 3 pour 1€ sur un site chinois  🙂

C’est celui-ci (le capteur PIR) que j’ai choisi pour le projet. Il est parfait pour détecter des mouvements (couloirs par exemple…) mais il  a encore un défaut pour la présence compte tenu des impératifs que je me suis fixé.  Je vais tenter de compenser ces défaut avec un second capteur, quelques lignes de codes et un peu de prise de tête.

Le capteur « secondaire » :

Il s’agit d’un capteur à  effet hall et d’un aimant. Pour simplifier  le capteur envoie un 1 quand il est près de l’aimant et 0 quand il sort du champ magnétique.

Que faire avec ?

Détecter l’ouverture et la fermeture de la porte. C’est la que le bas blesse. Il faut intégrer un aimant dans la porte et un capteur dans l’encadrement de porte… c’est donc moins intégré que prévu… Surtout que pour ma part je part sur une technologie filaire car je souhaite limiter les ondes au maximum et je souhaite que la solution soit vraiment intégré dans l’encadrement de porte  et discrette visuellement. Sinon il existe des capteurs enocean sans pile et sans fil mais ils sont trop ineshtétiques à  mon gout.

L’intelligence :

Une arduino mini pro, tout petite, toute mignone, pas chère (15,88€ le lot de 10 sur  aliexpress, genre d’amazon chinois)  fera très bien l’affaire 🙂

La partie puissance :

J’ai pensé à  3 solutions possibles :

Le transistor ou le relai statique : éliminés d’office car pas d’isolation physique comme dans un relai ou un interrupteur, donc pas de vrai protection. En plus pour commuter ça consomme du courrant tout le long de la commutation et donc ça rajoute de la consommation pour maintenir la lampe allumée…

Les relais « standards » : Je vais utiliser une carte avec ce type de relais  pour les premiers tests. La carte toute faite avec un optocoupleur pour protéger le circuit de commande coute 2.45€… Pourquoi je ne veux pas ce type de relai au finale ? car ça consomme pour maintenir le courrant… et la ça consomme pas mal (~100 à  200 mA en 5v soit 0.5 à  1w !) sur une ampoule incandescante c’est négligeable … sur une ampoule à  led  ça sous entends qu’on consomme autant pour éclairer que pour alimenter la lampe ou presque  !

Les relais bistables : C’est un relai de ce type que je vais intégrer à  terme. Je n’ai pas trouvé de carte toute faite donc ça sera du DIY. Les relais bistables n’ont pas de ressort comme les relais standards. en résumé on envoie une impulsion sur une patte pour fermer le circuit (allumer la lumière) et c’est tout ça reste allumé. Pour éteindre même chose sur une autre patte et le circuit se réouvre. Il ne consomme donc du courrant que quelques milisecondes 🙂

En plus ça ne sera pas perdu je vais avoir besoin de piloter 24 relais donc savoir faire  des cartes sera beaucoup beaucoup BEAUCOUP moins chère que d’en acheter…

La partie Communication :

La c’est posé une grande question… Quel protocole ou bus choisir ? ça ça dépendra vraiment de chacun… Pour ma part je choisirai probablement  du RS485 mais cela sera intégrer à  la fin du projet. c’est un bus fiable, qui permet de bonnes longueur de câbles. et qui me permettra de faire des remontés d’état et de transmettre des variables d’environnement (température / hygrométrie / lumière / consommation électrique / ou autre) au système de domotique centrale 🙂 On pourrait aussi mettre du Xbee ou du Enocean.

La partie « sécurité » :

Le système doit être autonome dans ses décisions. En revanche, dans l’hypothèse ou il serai relier à  un bus de communication,  on doit pouvoir forcer un état depuis le système centrale. Par exemple : Le système centrale tombe en panne. La lumière doit pouvoir s’allumer quand même.  Par contre  si le capteur ne fonctionne plus pour  X raison le système centrale doit pouvoir forcer l’alumage ou l’extinction de la lumière.

Cette partie permet aussi au système centrale d’utiliser les capteurs PIR des couloirs ou de dehors pour détecter une éventuelle intrusion 🙂

Des questions en suspend :

Un doute subsiste dans mon esprit quand au fait de tout concentrer dans la lampe. Je me dis que d’un autre côté tout remonter au tableau électrique (retour des capteurs via un bus et alumage de la lampe depuis le tableau) simplifierai grandement la maintenance… Surtout en cas de panne de relai. De plus ça permettrai de recabler un interrupteur très facilement en cas de panne du système (les câbles existent déjà  pour l’interrupteur). Tout centraliser reste très confortable également en cas de déménagement car ça sera très simple de tout recabler… En revanche cela demande un boulôt monstrueux de cablage et ça signifie aussi que le travail de câblage sera a prévoir dans le futur logement en cas de déménagement… Le cout n’est pas négligeable… Je ne sais donc pour le moment pas dire si le relai sera embarqué DANS la lampe ou au niveau du tableau électrique.

Domotique : Installation d’un serveur DNS lié à  l’annuaire LDAP sur la raspberry pi

Salut à  tous, encore un article plutôt axé informatique / domotique qui vient à  la suite des deux précédents articles sur la raspberry pi et l’annuaire LDAP. Il y a pas mal de copier coller car l’article du DHCP et celui-ci sont relativement proche 🙂

Alors, pourquoi un serveur  DNS indépendant de la box et pourquoi le relier avec un LDAP ?

Un serveur DNS indépendant de la box va nous permettre de nommer nos machines pour pouvoir y accéder plus facilement. C’est quand même plus sympa de taper domotique pour accéder à  notre page domotique que de taper l’éternelle 192.168.x.x. Si si parlez en à  madame vous verrez 🙂

Oui mais la box sait faire ça…

Oui mais je ne veux pas dépendre d’un matériel que je ne maitrise pas (en terme de paramétrage et de sécurité), en plus si jamais la box tombait en panne ou si je changeai de FAI (Fournisseur d’Accès Internet) il me faudrait tout re paramétrer … et en attendant, retour à  l’age de pierre… encore une fois pour que la domotique fonctionne il faut que son « WAF » (Women Acceptance Factor) soit élevé ! et donc que ça fonctionne et que ça soit facile à  utiliser…

Oui mais pourquoi le lier à  un LDAP ? le fichier de config n’est il pas plus simple ?

Au début si, mais une fois le DNS mis en place dans le LDAP il y a plusieurs avantages…

1) On peut le manager directement à  travers un client LDAP comme LDAP Admin ou phpldapadmin, avec une jolie petite interface graphique et en quelques cliques.

2) Le serveur est dynamique ! plus besoin de relancer le service à  chaque modif… on ajoute une entrée dans le LDAP et hop elle est prise en compte immédiatement !

3) Si votre DHCP est aussi paramétré sur votre annuaire vous pourrez gérer les deux très facilement à  travers la même interface graphique (votre client LDAP) et donc ajouter une machine à  votre réseau en lui donnant un petit nom de manière simple et efficace 🙂 elle est pas belle la vie ? ^^

Allez pour ceux qui sont intéressé la pratique c’est par ici 🙂

On va commencer par faire une petite mise à  jour :

apt-get update
apt-get upgrade
 

Maintenant on va installer le serveur DNS :

apt-get install pdns-backend-ldap pdns-server
 

On va commencer par sauvegarder la configuration d’origine :

mv /etc/powerdns/pdns.conf /etc/powerdns/pdns.backup
 

Configurons la bête :

créez un fichier de configuration vide et ouvrez le :

nano /etc/powerdns/pdns.conf
 

Puis collez ceci dedans :

allow-recursion=127.0.0.1, 192.168.1.0/24
config-dir=/etc/powerdns
daemon=yes
disable-axfr=yes
guardian=yes
lazy-recursion=yes
#l’adresse d’écoute
local-address=x.x.x.x
#le port d’écoute
local-port=53
module-dir=/usr/lib/powerdns
recursor=192.168.1.1
setgid=pdns
setuid=pdns
socket-dir=/var/run
version-string=powerdns
include=/etc/powerdns/pdns.d
#On indique à  notre DNS qu’il faut passer par ldap
launch=ldap
# On lui donne l’adresse de notre serveur
ldap-host=ldap://x.x.x.x:389/
# on lui donne les informations de connections
ldap-basedn=ou=dns,dc=chezloizoetpuce,dc=fr
#ldap-binddn=cn=login,dc=chezloizoetpuce,dc=fr
#ldap-secret=password
ldap-method=tree

Remplacez x.x.x.x par votre ip et 192.168.1.1 par votre DNS habituel (google / votre box / votre DNS favorit).

En effet recursor permet de dire à  notre DNS que si il ne connait pas l’adresse il demande au serveur situé dans « recursor ».

J’ai mis quelques commentaires sur les options les plus importantes. Les autres j’avoue ne pas avoir cherché à  quoi elles servaient. Pour le moment je n’ai pas encore pousser ma recherche sur les options de peaufinage par manque de temps. mais il viendra un jour ou je sécuriserai tout ça 🙂 à  commencer par détailler chaque options de chaque logiciels.

Il faut maintenant qu’on indique à  l’annuaire sous quelle forme il faut stocker ces informations. Pour cela on va utiliser un schéma, qui sert grossomodo à  définir des types de données.

Normalement vous devriez avoir un fichier nommé dnsdomain2.schema dans /etc/ldap/schema

Ensuite pour l’intégrer il faut suivre plusieurs étapes depuis que les développeurs d’OpenLDAP ont eu la merveilleuse idée d’intégrer la configuration de l’annuaire … à  l’intérieur de l’annuaire au lieu d’un bête fichier de configuration…

Tout d’abord, pour éviter les problème de dépendance on va demander à  l’annuaire les schémas déjà  intégrés :

ldapsearch -LLLQY EXTERNAL -H ldapi:/// -b cn=schema,cn=config « (objectClass=olcSchemaConfig) » dn
 

Ce qui devrais vous retourner quelque chose comme :

dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
 

si vous avez suivi le tuto sur le DHCP vous devriez avoir une ligne en plus avec le schema du dhcp 🙂 et aussi pour la suite le {4} aura une autre valeur (5 par exemple), c’est le numéro du schéma.

Ensuite on va créer un répertoire /tmp/ldapconvert

mkdir /tmp/ldapconvert
 

Un fichier /tmp/convert.conf dans lequel on va ajouter nos schémas existants en plus de celui/ceux à  ajouter. Cela évite les messages d’erreurs liés à  des problèmes de dépendances entre les schémas lors de la conversion :

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/dnsdomain2.schema

On génère le LDIF :

slaptest -f /tmp/convert.conf -F /tmp/ldapconvert/
 

Normalement il devrait être content et avoir généré un fichier du genre /tmp/ldapconvert/cn=config/cn=schema/cn={4}dnsdomain2.ldif

ça tombe bien on va justement déplacer ce fichier :

cp « /tmp/ldapconvert/cn=config/cn=schema/cn={4}dnsdomain2.ldif » « /etc/ldap/schemas/ »

On ajoute le schéma à  l’annuaire

ldapadd -QY EXTERNAL -H ldapi:/// -f /etc/ldap/schema/dnsdomain2.ldif
 

Une autre solution un peu plus crade :

cp « /tmp/ldapconvert/cn=config/cn=schema/cn={4}dnsdomain2.ldif » « /etc/ldap/slapd.d/cn=config/cn=schema »
 

on donne à  ldap la propriété du fichier :

chown openldap: ‘/etc/ldap/slapd.d/cn=config/cn=schema/cn={4}dnsdomain2.ldif’
 

On relance les services :

/etc/init.d/slapd stop
/etc/init.d/slapd start
/etc/init.d/pdns restart
 

Si vous voyez que la configuration ne passe pas dans le LDAP

commentez toutes les lignes du fichier /etc/powerdns/pdns.d/pdns.simplebind

voila pour le paramétrage 🙂

Domotique : Installation d’un serveur DHCP lié à  l’annuaire LDAP sur la raspberry pi

Salut à  tous, et oui encore un article ! la raspberry pi m’a remis en forme et j’ai du coup pleins de truc à  partager avec vous 🙂

Alors, pourquoi un serveur DHCP indépendant de la box et pourquoi le relier avec un LDAP  ?

Un serveur DHCP indépendant de la box permet de paramétrer l’ensemble de son réseau facilement en définissant des plages fixes et des plages variables.

Par exemple : Mon réseau est en 192.168.x.x. Je veux que mes serveurs soient en ip fixe distribué par le DHCP avec des IP allant de 2 à  20 pour les retrouver facilement, mes imprimantes de 21 à  30 et mes pc perso de 31 à  40. Pour les Pc des invités ils seront sur la plage dynamique entre 100 et 200. Bien pour la mise en place de règles de pare feu ça facilite un peu les choses. De même on s’y retrouve facilement et les machines ont les mêmes IP même après une réinstallation.

Oui mais la box sait faire ça…

Oui certes mais, en cas de panne de la box plus rien ne fonctionne, en cas de changement de FAI (Fournisseur d’Accès Internet)  idem… dans les deux cas il faut tout re paramétrer. Pire si vous utilisez un DNS pour accéder plus facilement à  vos serveurs et avoir un réseau dit « WAF » (Women Acceptance Factor)  pour que madame puisse accéder aux photos en tapant photos dans explorer par exemple :). Et bien la le DHCP bien gérer est un facteur important de non prise de tête…

Pire encore, imaginez, vous gérez votre domotique en IP… d’un coup la box vous lâche… soit vous avez tout paramétré en fixe, ce qui n’est pas très pratique pour l’évolutivité de l’installation, soit plus rien ne fonctionne !

Oui mais pourquoi le lier à  un LDAP ? le fichier de config n’est il pas plus simple ?

Au début si, mais une fois le DHCP mis en place dans le LDAP il y a plusieurs avantages…

1) On peut le manager directement à  travers un client LDAP comme LDAP Admin ou phpldapadmin, avec une jolie petite interface graphique et en quelques cliques.

2) Le serveur est dynamique ! plus besoin de relancer le service à  chaque modif… on ajoute une entrée dans le LDAP et hop elle est prise en compte immédiatement !

3) Si votre DNS est aussi paramétré sur votre annuaire vous pourrez gérer les deux très facilement à  travers la même IHM (votre client LDAP) et donc ajouter une machine à  votre réseau en lui donnant une adresse et une IP de manière simple et efficace 🙂 elle est pas belle la vie ? ^^

Allez pour ceux qui sont intéressé la pratique c’est par ici 🙂

On va commencer par faire une petite mise à  jour :

apt-get update
apt-get upgrade
 

Maintenant on va installer le serveur DHCP :

apt-get install isc-dhcp-server-ldap
 

On va commencer par sauvegarder la configuration d’origine :

mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup
 

Configurons la bête :

créez un fichier de configuration vide et ouvrez le :

nano /etc/dhcp/dhcpd.conf
 

Puis collez ceci dedans :

ldap-server « 127.0.0.1 » ;
#l’adresse de votre serveur LDAP
ldap-port 389 ; #le port de votre serveur LDAP
# login
ldap-username « cn=admin,dc=votredomaine,dc=fr » ;
ldap-password « votremotdepasse » ; # Indique ou se trouve les informations nécessaires
ldap-base-dn « ou=dhcp,dc=votredomaine,dc=fr » ; # Indique que le ldap est consulté à  chaque fois, ce qui permet une modification #dynamique sans redémarer DHCPD
ldap-method dynamic ; # Donne la configuration récupéré du serveur LDAP
ldap-debug-file « /var/log/dhcp-ldap-startup.log » ;
 

Il faut maintenant qu’on indique à  l’annuaire sous quelle forme il faut stocker ces informations. Pour cela on va utiliser un schéma, qui sert grossomodo à  définir des types de données.

On va donc commencé par récupérer ce schéma :

 cp /usr/share/doc/isc-dhcp-server-ldap/dhcp.schema.gz /etc/ldap/schema/
 

on le décompresse :

gunzip /etc/ldap/schema/dhcp.schema.gz
 

Normalement vous devriez avoir un fichier nommé dhcp.schema dans /etc/ldap/schema

Ensuite pour l’intégrer il faut suivre plusieurs étapes depuis que les développeurs d’OpenLDAP ont eu la merveilleuse idée d’intégrer la configuration de l’annuaire … à  l’intérieur de l’annuaire au lieu d’un bête fichier de configuration…

Tout d’abord, pour éviter les problème de dépendance on va demander à  l’annuaire les schémas déjà  intégrés :

ldapsearch -LLLQY EXTERNAL -H ldapi:/// -b cn=schema,cn=config « (objectClass=olcSchemaConfig) » dn
 

Ce qui devrais vous retourner quelque chose comme :

dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
 

Ensuite on va créer un répertoire /tmp/ldapconvert

mkdir /tmp/ldapconvert
 

Un fichier /tmp/convert.conf dans lequel on va ajouter nos schémas existants en plus de celui/ceux à  ajouter. Cela évite les messages d’erreurs liés à  des problèmes de dépendances entre les schémas lors de la conversion :

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/dhcp.schema
 

On génère le LDIF :

slaptest -f /tmp/convert.conf -F /tmp/ldapconvert/
 

Normalement il devrait être content et avoir généré un fichier du genre /tmp/ldapconvert/cn=config/cn=schema/cn={4}dhcp.ldif

ça tombe bien on va justement déplacer ce fichier :

cp « /tmp/ldapconvert/cn=config/cn=schema/cn={4}dhcp.ldif » « /etc/ldap/schemas/ »

On ajoute le schéma à    l’annuaire

ldapadd -QY EXTERNAL -H ldapi:/// -f /etc/ldap/schema/dhcp.ldif
 

Une autre solution un peu plus crade :

cp « /tmp/ldapconvert/cn=config/cn=schema/cn={4}dhcp.ldif » « /etc/ldap/slapd.d/cn=config/cn=schema »
 

on donne à  ldap la propriété du fichier :

chown openldap: ‘/etc/ldap/slapd.d/cn=config/cn=schema/cn={4}dhcp.ldif’
 

On relance le service :

/etc/init.d/slapd stop
/etc/init.d/slapd start

Domotique : Installation d’un annuaire LDAP sur la raspberry pi

Aujourd’hui nous allons voir comment installer un annuaire LDAP sur notre Raspberry pi.

Un annuaire LDAP, c’est quoi ça ?

L’utilisation d’un annuaire LDAP peut servir à  pas mal de choses, par exemple :

  • constituer un carnet d’adresse
  • authentifier des utilisateurs (grâce à  un mot de passe)
  • définir les droits de chaque utilisateur
  • recenser des informations sur un parc matériel (ordinateurs, serveurs, leurs adresses IP et adresses MAC, …)
  • décrire les applications disponibles

La différence entre annuaire et base de données

Un annuaire est un type de base de données spécifique, c’est-à -dire qu’il s’agit d’une sorte de base de données ayant des caractéristiques particulières :

  • un annuaire est prévu pour être plus sollicité en lecture qu’en écriture. Cela signifie qu’un annuaire est conçu pour être plus souvent consulté que mis à  jour.
  • les données sont stockées de manière hiérarchique dans l’annuaire, tandis que les bases de données dites « relationnelles » stockent les enregistrements de façon tabulaire.
  • les annuaires doivent être compacts et reposer sur un protocole réseau léger
  • Un annuaire doit comporter des mécanismes permettant de rechercher facilement une information et d’organiser les résultats
  • les annuaires doivent pouvoir être répartis. Cela signifie qu’un serveur d’annuaire doit comporter des mécanismes permettant de coopérer, c’est-à -dire d’étendre la recherche sur des serveur tiers si jamais aucun enregistrement n’est trouvé
  • Un annuaire doit être capable de gérer l’authentification des utilisateurs ainsi que les droits de ceux-ci pour la consultation ou la modification de données

Ainsi, un annuaire est généralement une application se basant sur une base de données afin d’y stocker des enregistrements, mais surtout un ensemble de services permettant de retrouver facilement les enregistrements à  l’aide de requêtes simples. Une base de données par contre n’est pas forcément un annuaire…

(Extrait de   http://www.commentcamarche.net/contents/633-ldap-introduction-aux-annuaires-ldap)

Pourquoi mettre un annuaire LDAP sur notre raspberry PI ?

Pour moi l’objectif de cet annuaire va être de centraliser l’administration de certaines tâche :

  • Administration du serveur DNS
  • Administration du serveur DHCP
  • Gestion des comptes utilisateurs des machines linux

Le fait d’avoir son propre serveur DNS et DHCP indépendant de la box à  l’avantage d’être totalement libre en terme de configuration mais surtout être autonome. Par exemple si demain je décidais de changer de FAI (Fournisseur d’Accès Internet) ou que ma box rendait l’âme et bien mon réseau ne serai donc pas impacté. Pour moi c’est un point important car le réseau informatique sera l’un des support de mon installation domotique.

Stocker la configuration du DHCP et du DNS dans l’annuaire, à  mon sens simplifie les tâches d’administration. Cela évite d’aller fouiner dans les fichiers de configuration à  chaque ajout de machine, et en plus c’est dynamique ! plus besoin de relancer les services pour prendre en compte les modifications !

Bon aller si vous êtes convaincu passons aux choses sérieuses !

La distribution linux que j’utilise sur ma raspberry pi est une raspian.

Une petite mise à  jour avant l’installation (à  faire régulièrement de toute façon) :

apt-get update
apt-get upgrade
 

installons maintenant  openldap (slapd) et les utilitaires  de connexion ldap  sur notre raspberry pi

apt-get install slapd ldap-utils
 

on va reconfigurer le package histoire de gagner du temps sans passer par des requêtes LDAP plus lourdes :

sudo dpkg-reconfigure slapd
 

Ensuite :

Omit OpenLDAP server configuration ? => No
DNS Domain Name => le nom de domaine (il en faut un mais il peut être bidon, c’est juste pour le réseau interne) par exemple lamaisondeloizo.fr
Organisation name => ce que l’on veut
Le mot de passe (2 fois)
Database Backend to use => HDB
Do you want the database to be removed when slapd is purged => N0
Move Old database => Yes
Allow LDAPv2 Protocol => No
 

Et voila, on a un annuaire prêt à  fonctionner. Nous allons voir comment nous y connecter facilement depuis un poste windows avec LDAP Admin et sa jolie petite interface. Il y a probablement aussi des équivalent sous linux 😉

Se connecter à  son annuaire avec LDAP Admin

On peut télécharger ce petit outil ici => Ldap Admin

On le lance et on clique sur l’icon en haut à  gauche :

ldapadmin

On créé une nouvelle connexion :

ldapadmin2

Voila à  quoi ressemble l’écran 🙂

ldapadmin3
 
On met l’adresse de notre serveur LDAP (la raspberry) dans Host,
Le port est le 389
Base correspond à  la localisation de la base dans l’annuaire, pour lamaisondeloizo.fr ça donne dc=lamaisondeloizo,dc=fr Simple authentication suffira pour le moment.
Username, il est formé de la manière suivante : cn=admin,dc=lamaisondeloizo,dc=fr car le compte admin se trouve dans l’annuaire qui concerne le domaine lamaisondeloizo.fr 🙂
Password => ben votre mot de passe 🙂
Vous pouvez cliquer sur « Test connection » pour voir si tout fonctionne et si c’est ok il suffit de cliquer sur ok
 

ldapadmin4

Voila tout ! J’espère que j’aurai pu vous aider 🙂 si vous avez des questions n’hésitez pas 😉

Domotique : Arrivée de la Rasberry pi B+ à  la maison !

Bonjour à  tous !

Cette semaine j’ai reçu une raspberry pi B+   que j’avais commandé le weekend dernier. A peine arrivé je me suis jeter sur mon nouveau jouet, ai piqué la carte micro SD d’un appareil photo et l’ai mise dedans.

J’avais commandé une raspberry pi B+, une boite et une alim 5v 2000mAh

Pourquoi avoir pris une raspberry pi ?

Pour plusieurs raisons, d’ailleurs il risque fortement à  terme d’y avoir plusieurs rasp à  la maison !

1) Remplacer un vieux PC portable qui me sert de homeserveur :

Ce vieux PC gère :

– un petit annuaire LDAP qui me permet de m’authentifier de manière centralisé, la configuration de mon serveur DHCP, et la configuration de mon serveur DNS

– un serveur DNS

– un serveur DHCP

– un serveur DLNA

Pourquoi ne pas tout confier à  la box ?

Et bien j’aime bien gérer de manière indépendante et maitrisé les choses, aussi bien en terme de sécurité, le fait de savoir ma box maitrisé par un autre (le FAI entre autre) ne me rassure pas …   (mon côté parano probablement),   que pour ajouter des fonctionnalités. L’autre aspect pratique c’est qu’en cas de panne de la box ou de changement de FAI (Fournisseur d’Accès Internet) tout fonctionnera toujours de la même manière et de manière totalement transparente 🙂

Ce que m’apporte la raspberry pi par rapport au pc qu’elle remplace ?

Des économies !

Vieux PC sans écran : 24,9wh soit 580,8wh par jours soit 17,714,4 kwh par mois soit 211,992kwh par ans soit un cout de 27,5590€ par ans de consommation électrique (0,130€/kwh)

Raspberry pi : 1,8wh soit 43,2wh par jours, soit 1,317kwh par mois, soit 15,768kwh/ans soit un cout de ….. 2,04984€ par ans !

(Les mesures ont été faites avec une prise spéciale et dans des conditions d’utilisation identiques.)

Ce qui donne 25,5091€ d’économie par ans ! Certes certains diront que c’est faible comme dépense… mais ça rembourse la rasp + boitier + chargeur   en 2 ans !

En résumé, avant j’avais ça :

IMG_2704

Maintenant j’ai ça :

IMG_2706

Oh la jolie ptite framboise 🙂

2) Accroitre l’automatisation de tâches à  la maison

– Gérer le chauffage plus finement

– Faire des relevés de températures / humidité dans toute la maison

– Motoriser et gérer les volets roulants

– Diffuser du son depuis la rasp vers d’autres pièces pour faire un réveil plus sympa que le téléphone ou avoir du son dans le garage quand je bricole

– Stocker les production de légumes du potager

– Stocker les relevés de compteur et sortir des graphiques pour voir comment nos sous sont dépenser et par quoi pour éventuellement optimiser…

– Automatiser la lumière des toilettes 🙂

– Gérer des scénarios

– Pleins d’autres choses !

 3) Héberger mes sites internet à  la maison

– Pour ça j’attends que SFR se réveille… pour le moment la seul fibre optique disponible c’est orange…

4) Bouiner sans fin 🙂

– Ben oui avec une / des raspberry pi on peut bouiner sans jamais s’arrêter, les possibilités offertes sont infinies 😉