Augmentons notre Waf avec phpMyDomo

Dans notre quête désespérée d’augmenter notre WAF face à nos outils de geek, je vous propose aujourd’hui un logiciel d’interface de pilotage relié à Domoticz.

Pour rappel : Le Wife Acceptance Factor ou Woman Acceptance Factor (WAF) désigne le niveau de conflit potentiel engendré par un objet, auprès des non-utilisateurs cohabitant avec les utilisateurs dudit objet: source wikipedia.

Il s’agit d’une surcouche visuelle permettant de piloter Domoticz.

PhpMydomo  : les fonctionnalités

    • Les interrupteurs, les scènes et Dim (experimental) sont supportés.
    • Visualisation des sensors sur la même page ou sur une page personnalisée.
    • Visu des caméras  IP sur un page unique.
    • Affichage d’une galerie photo.
    • Lancement d’action depuis une URL.
    • Support de Responsive design :Affichage optimisé sur Android/IOS tablet, smartphone et web browser
    • Peu de puissance demandée : un serveur php suffit.
    • Free and Open Source.

Le résultat à obtenir est quelque chose comme cela :

01 03

Cet outil peut être installé soit dans apache et c’est cet article qui en décrit l’installation soit dans le serveur web Nginx, les explications spécifiques sont fournies à cette page.

1 – Installation

L’installation se fait avec un :

git clone https://github.com/phpMyDomo/phpMyDomo.git

ce qui sera pratique pour les mises à jour ensuite par un git pull (voir en fin d’article)

Lecture ici Installation

1 – Prérequis

  • Il nous faut un peu de apache,php5, phpcurl …

un script nommé  install_debian.sh dans /www/inc/bin permet d’effectuer l’installation.

Sachant que USERNAME est votre login sur le rasp

cd /home/USERNAME/phpMyDomo/www/inc/bin/
chmod 755 install_debian.sh
./install_debian.sh
  • Droits sur le répertoire

Placez vous dans le répertoire de travail puis un

sudo chmod -R 777 www/inc/cache/

Activer le mod-rewrite Apache par un

a2enmod rewrite

  • Configuration Apache

Il faut autoriser AllowOverride All  et Options Indexes FollowSymLinks dans le fichier /etc/apache2/sites-available/default

Sur une Debian changez juste AllowOverride None en AllowOverride All

<Directory /var/www/>    
    Options Indexes FollowSymLinks
    AllowOverride All
    (other directives)
</Directory>

nano /etc/apache2/sites-available/default

  • Déplacer le dossier dans Apache

Pour mes besoins je crée un dossier pmd (comme phpMyDomo) dans /var/www

mkdir /var/www/pmd
mv -f /home/USERNAME/phpMyDomo/www/* /var/www/pmd
mv -f /home/USERNAME/phpMyDomo/www/.htaccess /var/www/pmd
  • Redémarrer Apache

sudo apache2ctl restart

Aie : une erreur !!

Suite au restart vous avez « Adress already in use….. to adresss 0.0.0.0:80 »

erreur_apache2

Il s’agit probablement d’un conflit entre le Nginx installé par défaut et le Apache que l’on tente de lancer sur le même port.

Changeons le port Apache2

  • Éditer le fichier /etc/apache2/ports.conf, on y trouve :
NameVirtualHost *:80
Listen 80

que l’on remplace par :

NameVirtualHost *:81
Listen 81

si je veux utiliser le port 81 pour PhpMyDomo, mettez le port que vous souhaitez.

  • Toutefois cela ne suffit pas, il faut aussi changer le port du Vhost

Éditer /etc/apache2/sites-available/default et changer la ligne du haut par un :

<VirtualHost *:81>

Relançons avec un sudo apache2ctl restart, les messages d’erreur précédants doivent avoir disparu.

Donc maintenant sur le port 80 j’ai Nginx

Nginxet sur le port 81 :

Apache2N.B : Souvenez vous que phpMyDomo utilise le port 81, votre navigateur doit pointer sur votre_adresse_ip_raspberry:81et que si vous avez installé phpMyDomo dans un sous répertoire comme moi, l’adresse complète sera : votre_adresse_ip_raspberry:81/pmd

  •  Configuration de phpMyDomo

Dans  phpMyDomo/www/inc/ renommer le dossier conf_sample en conf

mv /var/www/pmd/inc/conf_sample /var/www/pmd/inc/conf

Editer le fichier www/pmd/inc/conf/config.php

Ce fichier contient TOUTE la configuration de l’outil (lien avec Domoticz, dossiers de travail, délai, groupes, nom de caméras, menus à afficher, skins interface….)

il justifierait à lui tout seul un article d’explication

Le minimum vital pour faire fonctionner PMD sont les lignes :

$conf['app']['api']                     ="domoticz";

pour utiliser Domoticz en lieu et place de Domogik ou autres …

$conf['app']['home_name']       ="Home Sweet Home";

changez le nom ici qui s’affiche dans les onglets du navigateur

// language file to use : (name of the folder in /www/inc/lang/)
$conf['app']['lang']            ="fr";  // en | fr | nl

la langue de l’appli

$conf['app']['dir']             ="/pmd";

car j’ai installé phpMyDomo dans /pmd de /var//www

$conf['app']['location'] ="Paris, France";

Pour récupérer les bonnes heures de lever/coucher de soleil , mettez ici votre ville,France. Google est interrogé avec ces 2 paramètres pour récupérer les bonnes heures.

Voila, pour le reste , je vous laisse lire le fichier dans son intégralité.

<?php
//      phpMyDomo main config File
//      http://www.phpmydomo.org
 
 
// ##############################################################################
// Minimal Configuration  #######################################################
// ##############################################################################
//api to use : domoticz | domogik | domotiga | openhab
$conf['app']['api']                     ="domoticz";
 
// Personalize the name of your Home
$conf['app']['home_name']       ="Home Sweet Home";
 
// language file to use : (name of the folder in /www/inc/lang/)
$conf['app']['lang']            ="fr";  // en | fr | nl | de
 
//choose a photoframe method : directory | iphoto
$conf['app']['photoframe']              ="directory"; 
 
// Skin : Uncomment to use another skin (defaults to the 'default' skin, if not set)
//$conf['app']['skin']          ="black"; // default | black | metal
 
// SubDirectory: Uncomment ONLY if you want to install phpMydomo in a sub directory of your web server root (not recommended at this time)
$conf['app']['dir']             ="/pmd";
 
//Locale: uncomment to override the locale defined in the language file
//$conf['app']['locale']                ="en_US.utf8"; 
 
// If your server doesnt generate sunrise and sunset times, uncomment and enter your location here in the format : "City, Country"
// PMD will automatically Query Google, to get your location, and calculate Sunset and Sunrise from the latitude and longitude returned by Goo$
//$conf['app']['location']      ="Paris, France";
 
 
// The home page automatically reload after xx seconds, to refresh the buttons or sensor states.
$conf['app']['reload_time']                     ="120"; // time in seconds
 
//When a "photoframe_ss_album" is set, instead of refreshing the home windows, PMD automatically jump to this selected album (like a screen sa$
//$conf['app']['photoframe_ss_album']   ="Landscapes";  // album id to launch in ScreenSaver mode

3 – Testons

un petit http://iprasperry/pmd nous amène sur la page de phpMydomo avec nos interrupteurs qui s’affichent, récupérés depuis Domoticz.

phpMyDomoN.B : Souvenez vous que si vous avez:

1- Changé le port de Apache en 81 par exemple

2- installé phpMyDomo dans un sous répertoire comme moi, l’adresse complète sera : votre_adresse_ip_raspberry:81/pmd

Yepa ! : Objectif atteint  😛

Sur mon installation j’ai une erreur en haut de page :

Notice: Undefined index: HTTPS in /var/www/pmd/inc/lib/boot.php on line 9

Les logs de Apache ne me parlant pas vraiment j’ai mis un

$_SERVER[‘HTTPS’]= »;

dans le fichier boot.php comme cela

<?php

ini_set(‘display_errors’,’On’);

// base ————————————————————————————
$conf=array();
$conf[‘app’][‘version’] = »0.144″;
$conf[‘app’][‘name’] = »phpMyDomo »;
$_SERVER[‘HTTPS’]= »;
if ($_SERVER[« HTTPS »] === « on »){

  • Mise a jour de phpMyDomo

recopier le dossier  .git et le fichier.gitignore depuis votre dossier perso dans votre dossier d’Apache : /var/www/pmd (dans mon cas)

Ainsi on pourra lancer un

cd /var/www/pmd/ && sudo git pull pour la mise à jour de phpMyDomo

ou le placer dans un crontab -e

 Conclusion

Visuellement l’outil est agréable, des petits plus comme l’album photo, la grande ouverture de paramètrage font de phpMyDomo un outil sympa et attirant.

 

Posted in domoticz, interfaces and tagged , , , , .

7 Comments

  1. Merci de ta réponse.

    Afin d’éliminer toutes erreurs suite à mauvaise manip antérieure je repars d’une installation clean à partir de l’image de domoticz déposée sur la micro sd. Je passe en super utilisateur
    En suivant ton topic et après la commande : ./install_debian.sh

    Le début s’installe bien mais arrivé à :
    Creating config file /etc/php5/cli/php.ini with new version
    /////// j’ai //////
    [….] Starting web server: apache2apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
    (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
    no listening sockets available, shutting down
    Unable to open logs
    Action ‘start’ failed.
    The Apache error log may have more information.
    failed!
    invoke-rc.d: initscript apache2, action « start » failed.
    Setting up libapache2-mod-php5 (5.4.34-0+deb7u1) …

    Creating config file /etc/php5/apache2/php.ini with new version
    [….] Restarting web server: apache2apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
    apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
    (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
    no listening sockets available, shutting down
    Unable to open logs
    Action ‘start’ failed.
    The Apache error log may have more information.
    failed!
    invoke-rc.d: initscript apache2, action « restart » failed.
    Setting up php5-curl (5.4.34-0+deb7u1) …

    Il semble que ceci correspond à la piste donnée mais je ne sais pas la contourner et quand je poursuit l’installation je me retrouve au final avec le message d’erreur cité dans le premier poste.

    Merci pour tout
    NB Si tu souhaites que je passe sur le forum pour plus de clarté du blog : aucun pb

  2. Salut ! y a du mieux grâce a ton tuto !! j arrive maintenant sur l interface de phpmydomo donc nginx et apache fonctionnent tout les 2 !! mais mon autre problème (ce serait pas marrant sinon) c est que je n ai aucun appareil dans mon interface . apparemment il n y a pas de liaison entre phpmydomo et domoticz je vais recommencer toute l install sur mon raspberry de test pour voir ce que ça donne !
    si quelqu’un a une idée je suis preneur 🙂
    Merci pour ta reactivité

  3. Bonjour

    Dans la config tu as du rater $conf[‘app’][‘api’] = »domoticz »;
    dans www/pmd/inc/conf/config.php

    Est ce que domoticz utilise le port 8080 ?

  4. Non, je pensai aussi mais il est conforme a ton tuto et domoticz utilise le port 8080.
    il vaudrait mieux déplacer le sujet sur le forum plutôt que polluer les comm de ce tuto non ? :). en attendant je vais continuer a chercher.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *