La domotique avec Jeedom

La domotique n’est plus réservé aux experts ou aux solutions hors de prix. Nous allons voir comment créer une installation complète et évolutive sans se ruiner.

1. Le matériel

1.1. Kit Raspberry Pi 3 Modèle B

Il va constituer le coeur de notre solution. C’est avec lui que discutera les différents composants domotiques.

Pour faciliter la tâche d’installation et de configuration, on veillera à prendre un starter kit.

1.2. Automatisation des lumières

Pour l’automatisation des lumières, on se penchera sur un kit Philips Hue. Ce kit de qualité comprend un pont ZigBee qui permet aussi de se connecter à d’autres ampoules connectées. Une liste non exhaustive est disponible ici.

On fera attention de prendre un kit avec le modèle V2 du pont. (cf image ci-dessus)

1.3. Dongle ZWave+

ZWave est un protocole de communication domotique ouvert radio de faible puissance.

Nous allons utiliser la dernière version le ZWave+ en ajoutant un dongle USB Zwave+ d’Aeon Labs.

Produits disponibles sur Amazon.fr

1.4. Détecteur d’ouverture

Nous allons ensuite installer un détecteur d’ouverture de porte/fenêtre afin de connaître l’état de celle-ci à tout moment en vu de recevoir des alertes.

Le module Fibaro en ZWave+ est exactement ce qu’il nous faut. Esthétique et performant, il s’intégrera facilement dans notre solution.

Des modules supportant  Homekit existent aussi. Le prix est plus élevé et n’apporte pas d’avantages dans le cadre de notre solution.

1.5. Détection de présence

La détection de présence a plusieurs avantages. Elle apporte de la sécurité en détectant une possible intrusion et elle permet d’envisager de créer des scénarios domotiques comme l’allumage automatique des lumières.

Comme précédemment, nous allons utiliser des modules Fibaro en ZWave+ qui en bonus apporte la détection de température.

Produits disponibles sur Amazon.fr

1.6. Prise électrique connectée

Le prix d’une prise connectée peut faire mais elle permet réellement un gain d’économie. Par exemple : installée dans le salon, elle peut couper l’alimentation de la TV, la box internet TV, la console de jeux-vidéo, etc…

Un gain qui peut être non négligeable et qui peut amortir votre prise en moins de 2 ans.

Là encore, nous utiliserons un module Fibaro ZWave+. D’autres modules existent mais peuvent :

  • Ne pas être au format Type E français
  • Avoir une portée insuffisante

Produits disponibles sur Amazon.fr

2. La centrale Jeedom

2.1. Monter le Raspberry

Rien d’extraordinaire ici. Il suffit de fixer la carte dans le boitier puis d’y mettre la carte SD.

Branchez ensuite le Raspberry à un écran en HDMI, un clavier et une souris. Connectez l’alimentation puis suivez les étapes pour installer Raspbian.

Raspbian est basé sur Debian, une distribution Linux réputée dans le monde des serveurs.

2.2. Installer Jeedom

Ouvrez un terminal.

Puis lancez le téléchargement du script d’installation sur le système local

wget https://raw.githubusercontent.com/jeedom/core/stable/install/install.sh

Appliquez les droits nécessaires pour ne pas avoir d’erreur à l’exécution 

chmod +x install.sh

Lancez l’exécution du script pour procéder à l’installation 

sudo ./install.sh

 

 

Migration Drupal d’Apache vers Nginx

Qu’est-ce que Nginx?

Nginx est un logiciel qui allie serveur web et reverse-proxy écrit par Igor Sysoev, dont le développement a débuté en 2002 pour les besoins d’un site à très fort trafic.

Le point fort d’Nginx est d’être un serveur asynchrone par opposition aux serveurs synchrones où chaque requête est traitée par un processus dédié. Chaque requête est découpé en plusieurs tâches et permet de réaliser un multiplexage très efficace. Cette architecture permet des performances très élevées, ainsi qu’une empreinte mémoire particulièrement faible comparativement aux serveurs HTTP classiques, tels qu’Apache.

Installation et configuration d’Nginx

Nous partons du principe qu’une installation Drupal fonctionnelle a déjà été réalisé. Si ce n’est pas le cas, reportez-vous à l’article d’installation de Drupal. Installation facile de Drupal

# Tout d'abord le téléchargement des paquets nécessaires
apt-get install nginx php5 php5-fpm php5-apc
# Ensuite ouvrez le fichier de configuration FastCGI Process Manager PHP
nano /etc/php5/fpm/pool.d/www.conf
# Commentez l'écoute sur le port 9000 et créez une socket à la place
;listen = 127.0.0.1:9000
listen = /var/run/php5-fpm.sock
# Configurez la socket du manager
nano /etc/nginx/conf.d/php5-fpm.conf
upstream php5-fpm-sock { server unix:/var/run/php5-fpm.sock; }
# Ensuite modifiez la configuration d'APC pour PHP afin d'allouer 100Mo
nano /etc/php5/fpm/conf.d/apc.ini
extension=apc.so
apc.shm_size=100
# Redémarrez le manager
/etc/init.d/php5-fpm restart

Maintenant il reste à éditer le fichier de configuration de votre site. Malheureusement, Apache étant complètement différent, c’est un tout nouveau type de configuration qu’il vous faudra créer. Cependant, un utilitaire permet de convertir une configuration Apache vers Nginx. Conversion Apache vers Nginx

nano /etc/nginx/sites-available/monsite
server {
    # Nom de domaine
    server_name .monsite.fr;
    # Racine du site
    root /var/www/drupal;
    # Logs
    access_log /var/log/nginx/monsite.fr.access.log;
    error_log /var/log/nginx/monsite.fr.error.log;
    # Desactive le log sur le favicon
    location = /favicon.ico { log_not_found off; access_log off; }
    # Desactive le log sur le robots.txt
    location = /robots.txt { allow all; log_not_found off; access_log off; }
    # Desactive le log sur le sitemap.xml
    location = /sitemap.xml { allow all; log_not_found off; access_log off; }
    # Page d'index du site
    index index.html index.htm index.php;
    # Pas de PHP pour le contenu static
    location / { try_files $uri $uri/ @rewrites; }
    # Clean URLs
    location @rewrites { rewrite ^ /index.php last; }
    # Cache d'Image
    location ~ ^/sites/.*/files/imagecache/ { try_files $uri @rewrite; }
    # Cache d'ImageStyle
    location ~ ^/sites/.*/files/styles/ { try_files $uri @rewrite; }
    # Contenu static comme les images
    location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
        expires max;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    }
    # Protège les fichiers privées
    location ~ ^/sites/.*/private/ { return 403; }
    # Evite les pages PHP
    location ~ \..*/.*\.php$ { return 403; }
    # Bloque l'acces aux fichiers cachées
    location ~ /\. { access_log off; log_not_found off; deny all; }
    # Scripts PHP
    location ~ \.php {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        try_files $uri =404;
        fastcgi_index index.php;
        fastcgi_pass php5-fpm-sock;
        fastcgi_intercept_errors on;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }
}

Activez votre configuration, puis redémarrez votre nouveau serveur Nginx.

ln -s /etc/nginx/sites-available/monsite
/etc/nginx/sites-enabled/monsite /etc/init.d/nginx restart

Voilà, votre migration est terminée.

Installer Jenkins sur un Synology

Prérequis

Au préalable, quelques prérequis sont nécessaires.
– Un serveur Synology
DSM 5.x minimum
Java Manager avec Java 1.6.0 minimum
Tomcat

Installation

Connectez-vous en SSH avec l’utilisateur « root » sur le serveur Synology.
Modifier la configuration de Tomcat afin d’ajouter un utilisateur pour administrer Tomcat
/var/packages/Tomcat/target/apache-tomcat-6.0.36/conf/tomcat-users.xml

# Ouvrer le fichier de configuration
vi /var/packages/Tomcat/target/src/conf/tomcat-users.xml
# Modifier le fichier de configuration
<tomcat-users>
    <role rolename="manager"/>
    <user username="admin" password="admin" roles="manager"/>
</tomcat-users>
# Ajouter la variable d'environnement dans le contexte de Tomcat pour les données de Jenkins
vi /var/packages/Tomcat/target/src/conf/context.xml
<Context>
    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->
    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->
   <Environment name="JENKINS_HOME" value="/var/lib/jenkins" type="java.lang.String"/>
</Context>
# Maintenant il reste à créer le répertoire
mkdir /var/lib/jenkins
# Puis modifiez les droits
chown http:http /var/lib/jenkins

Maintenant, redémarrez. Il ne vous reste plus qu’à télécharger le fichier WAR pour Jenkins à l’adresse suivante : http://mirrors.jenkins-ci.org/war/latest/jenkins.war.

Ensuite, ouvrez le gestionnaire de Tomcat puis sélectionnez le WAR de Jenkins dans l’outil de déploiement. Par défaut l’URL est http://mon_serveur:7070.

Puis rendez-vous sur l’url de Jenkins http://mon_serveur:7070/jenkins.

Drupal, l’installation facile

Petit retour sur Drupal

Drupal est un CMS (Content Management System) open-source publié sous la licence publique générale GNU, et écrit en PHP. De part son aspect modulaire et programmable, il est considéré comme un CMF (Content Management Framework).

En 2010, Angela Byron annonce que Drupal est présent sur environ 1 % des sites internet.

Drupal est aussi flexible dans la gestion de base de données, il peut soit utiliser soit MySQL, soit PostgreSQL.

Toutefois vu sa complexité, il n’est pas forcément à la portée de débutants et nécessite une bonne compréhension de PHP et Linux dans la mise en place.

Installation

Nous suivrons pas à pas, l’installation de Drupal sur un serveur Linux via APT.
Les commandes suivantes seront à lancer à partir d’un compte root ou d’un compte en mode sudo bash.

A des fins de configuration avancée, nous utiliserons une base PostgreSQL.

# ajoute le repo postgresql
add-apt-repository ppa:pitti/postgresql
apt-get update
apt-get install postgresql
# configure postgresql
su - postgres
psql -d postgres -U postgres
# modifie le mot de passe de l'utilisateur par défaut postgres
alter user postgres with password 'mot_de_passe'; ALTER ROLE
\q
# crée un nouvel utilisateur
createuser --pwprompt --encrypted --no-adduser --no-createdb utilisateur_base_drupal
# crée une base de données pour l'utilisateur
createdb --encoding=UNICODE --owner=utilisateur_base_drupal nom_base_drupal
/etc/init.d/postgresql restart
exit

Ensuite, nous allons installer le serveur Apache.

# installation d’Apache, PHP et PECL

apt-get install php5-common libapache2-mod-php5 pecl
# ajoute l'host en local pour les tests
echo '127.0.0.1   monsite.fr' >> /etc/hosts
# url rewriting
a2enmod rewrite
# PECL
pecl install uploadprogress
# démarre le serveur
/etc/init.d/apache2 restart

Maintenant, passons à l’installation de Drupal.

# répertoire web du serveur
cd /var/www
# récupération de Drupal
wget http://ftp.drupal.org/files/projects/drupal-7.21.tar.gz
# décompresse l'archive
tar -xzvf drupal-7.21.tar.gz
# renomme le répertoire en drupal
mv drupal-7.21 drupal
# réglages par défaut
cp ./drupal/sites/default/default.settings.php ./drupal/sites/default/settings.php
# modifie les droits
chmod 666 ./drupal/sites/default/settings.php
# ajoute la traduction française
wget http://ftp.drupal.org/files/translations/7.x/drupal/drupal-7.21.fr.po
cp ./drupal-7.21.fr.po ./drupal/profiles/standard/translations/
# droits temporaire pour l'installation
chmod -R 777 ./drupal/sites/default/
# suppression de l'archive drupal
rm drupal-7.21.tar.gz

Ensuite sur votre navigateur, aller à l’adresse suivante: http://monsite.fr/drupal/install.php.
Il ne reste plus que quelques étapes.

Sélectionner l’installation standard de Drupal.

Ensuite choisisser la langue d’installation. Par défaut, l’anglais. Des autres localisations peuvent être installés. Cependant, les traductions ne sont pas disponibles sur la majorité des modules.

Configurer la base de données. Il reste à sélectionner le type de base, son nom, le mot de passe ainsi que le login.

Drupal poursuit en installant les modules compris dans le choix d’installation.

Maintenant, il faut configurer le site. Entrer les informations nécessaires au site:
– Le nom du site
– L’adresse email de l’administration du site
– Login et mot de passe pour la gestion du site

Il ne reste plus qu’à finir les réglages de Drupal.

Voilà votre site Drupal est opérationnel. Maintenant, il ne vous reste plus qu’à le personnaliser, rajouter des modules ainsi que du contenu.

Wandboard

Qu’est ce que la Wandboard

La Wandboard est une carte lowcost basée sur une architecture ARM Cortex-A9 développée par une organisation à but non lucratif.

L’idée de départ qui a conduit à sa création est que la plupart des cartes embarquées que nous voyons aujourd’hui (comme le Raspberry PI) sont intéressantes, mais restent limitées.

La Wandboard est basée sur un système de modules qui permet de faire évoluer la solution.

Les spécifications

La Wandboard est disponible en plusieurs versions, Solo et Dual, qui possédent plus ou moins de fonctions.

Liste des fonctionnalités
Fonctionnalités  SoloDual 
 Processeur Freescale i.MX6 SoloFreescale i.MX6 Duallite
 CoeursCortex-A9 Single coreCortex-A9 Dual core
 Mémoire512 MB DDR31 GB DDR3
 Sortie audio S/PDIFXX
 Sortie HDMIXX
 Interface caméraXX
Lecteur carte MicroSD 22
Port sérieXX
Port d’extensionXX
Port USBXX
Port SATANon utiliséNon utilisé
Lan GigabitXX
WIFI (802.11n)X
BluetoothX

La version Solo est disponible au prix de 79$ (58€). Quant à la version Dual, elle est disponible à 99$ (74€). Il vous faudra rajouter quelques dizaines d’euros, afin d’avoir un boîtier, un adaptateur secteur ou une antenne Wifi. Car rappelons le, une board est avant tout destinée à faire de l’embarqué ou du développement.

Quelle utilisation alors?

Plusieurs, suivant votre besoin. Vous pourrez, au choix :
– Installer Android et transformer n’importe quelle TV en Smart TV avec un media center.
– Réaliser un kit de développement Android.
– Réaliser un serveur web Linux à faible consommation. (Comme pour ce site)
– Créer un centre de gestion domotique pour votre maison/appartement.
– Créer une machine sous Linux à faible coût pour des enfants

Pour ce faire, vous pourrez trouver sur le site de Wandboard, les distributions Android et Linux Linaro (Ubuntu) correspondantes.

Installation de Linux ou Android sur une Wandboard

Récupérer la version Android ou Linux correspondante à votre board sur la page de téléchargement : http://www.wandboard.org/index.php/downloads

Ensuite, suivant que vous soyez sur Linux ou sur Windows la procédure change.

Windows

Insérez la carte MicroSD qui servira de support au système d’exploitation sur votre machine. Utilisez Win32 Disk Imager afin de copier l’image sur votre carte SD. Il n’y a plus qu’à la placer dans le slot dédié au système d’exploitation. Et c’est parti!

Linux

Insérez la carte MicroSD qui servira de support au système d’exploitation sur votre machine. Puis lancez la commande permettant de copier l’image sur votre carte.

dd if=nom_image.img of=/dev/nom_lecteur_carte_sd bs=1M

UNetbootin, L’installation facile de Linux

Pour toute personne voulant installer Linux, une question se pose : Comment faire ça vite et propre ?

UNetbootin permet de créer des clés USB bootables Live USB pour Ubuntu, Fedora, et d’autres distributions Linux sans graver de CD.

Très utile, si vous êtes comme moi et avez renoncé aux CDs et DVDs (on ne va pas tout de même payer une taxe sur la copie privée pour installer un OS Open Source!!!).

Il fonctionne aussi sous Windows, Linux, et Mac OS X. UNetbootin peut soit télécharger automatiquement une des distributions supportées, soit utiliser un fichier .iso.

Avec cet outil vous n’aurez plus d’excuses pour ne pas installer un Linux sur votre vieux PC Windows XP qui mouline comme un fou.

Liste des distributions supportées :

  • Ubuntu (et dérivées officielles)
  • Debian
  • Linux Mint
  • openSUSE
  • Arch Linux
  • Damn Small Linux
  • SliTaz
  • Puppy Linux
  • FreeBSD
  • NetBSD
  • Fedora
  • PCLinuxOS
  • Gentoo
  • Zenwalk
  • Slax
  • Dreamlinux
  • Elive
  • CentOS
  • Mandriva
  • FaunOS
  • Frugalware Linux

Vous pouvez le télécharger ici : http://sourceforge.net/projects/unetbootin/

Continuer la lecture de « UNetbootin, L’installation facile de Linux »