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 :
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 »
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
N.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é.
[codesyntax lang= »php » lines= »no »]
<?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
[/codesyntax]
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.
N.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.
Merci pour ce tuto interessant. Toutefois après 3 heures de tentatives, je seche…
IL semble qu’il y ait une impossibilité d’installation d’appache sur la platforme en raison de l’installation par defaut de nginx ? (je n’ai trouvé qu’une autre personne décrivant ce pb : http://www.domoticz.com/forum/viewtopic.php?f=21&t=1076&p=19682&hilit=phpmydomo+raspberry#p19682).
Comment l’avez vous contourné ?
Merci de votre aide
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
Bonsoir
Je viens de faire un article concernant le problème de port Apache/Ngnix
le lien est ici
https://easydomoticz.com/complement-pour-phpmydomo/
Dis moi si c’est Ok pour toi
Merci
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é
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 ?
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.
Je veux bien que tu passes sur le forum en effet pour la suite de la discussion
Merci