VOUS ÊTES ICI: Accueil » Blog » Domotique » Eedomus » La face cachée de vos périphérique eedomus ! #SQL #php #script
Eedomus

La face cachée de vos périphérique eedomus ! #SQL #php #script

Remarque initiale :  Ce tutorial vit la fois sur les forums : touteladomotique et eedomus. Vous aurez des retours terrains.

Ce tutorial va vous permettre de disposer dans l’eedomus de toutes les statistiques sur un produit / ainsi que votre localisation IOS sans utiliser d’application sur votre iphone / ipage (grâce à Icloud).

Pour cela il faut :
– un nas qui héberge serveur php, base de donnée SQL, serveur mail. Perso je suis sous synology.
[Remarque : PhphpMyadmin 4.1.14 MariDb Php Version 5.5.13] – un peu de patience 🙂

Pré-requis fonctionnel :
– Disposer de ses numéros de périphériques eedomus (disponible dans chaque périphérique / paramètre expert / code api)
– Disposer des codes d’accès api (que la plate-forme envoi par mail dans la console : configuration / mon compte / Identifiants pour Api)

A lire si ça bloque chez vous
Si cela ne fonctionne pas, j’ai développé un script pour m’aider (dans le pack), vous l’ouvrez, vous rentrer vos codes
$apiuser = ‘XXX’;
$apisecret = ‘XXX’;
$ipeedomus = ‘XXX’;
Vous trouvez votre code périphérique (pour rappel, paramètre expert)
Ensuite vous appeler la fonction comme cela, serveur/extractforanalyse.php?id=XXXX

URL du Pack :
http://dl.free.fr/hTT3nvEFD

Et ensuite, vous copiez le résultat pour investigation (souvent la nature des données, n’ayant pas la chance d’avoir tous les périphériques zwave chez moi :)).

Schéma Global :

Version 3.1 [Tout est dedans] http://dl.free.fr/ox3haUbP9

[wpdm_file id=48]
Voir en dessous

Explications :
.htaccess => correspond à une sécurisation de votre NAS, indiquer dedans les IP à qui vous faites confiance
bddconsultstat.php => permet de consulter les statistiques d’un produit classique on / off / x% (lampe)
bddconsultstattemp.php => permet de consulter les statistiques d’une sonde de température
bddcreationstatperiph.php => permet de créer les statistiques
bddinsertionperiph.php => ce script créer la table d’un produit et l’alimente via les serveurs eedomus
compteetconnexionVIERGE.php => vous enlevez le mot VIERGE et vous complétez avec vos informations, c’est le fichier de paramétrage

Pré-requis technique :
– un serveur web
– une base de donnée (phpmyadmin permet de regarder en live ce qu’il se passe dedans)

Tutorial V0 :
0) Il faut à minima avoir la base test dans sa base mysql (je parle bien de base, pas de table)
1) On complète son fichier de connexion avec ses infos personnelles

<?
    //info base de données
    $base = 'test';
    $compte = 'root';
    $password = 'XXXX';
    $ipserveurbdd = '192.168.0.XX';

    //info eedomus
    $apiuser = 'XXXZ';
    $apisecret = 'XXX';
    $ipeedomus = 'XXX';

        $annee = '2013';
?>

[Pour un produit type Lampe / Appareil Electrique…]

2) On récupère le nom du produit souhaité et de son numéro eedomus

Exemple : bddinsertionperiph.php?idperiph=35598&table=Lampecuisine

Ce script va automatiquement créer la table Lampecuisine et Lampecuisinestat, et inserer tout l’historique du produit. Le premier lancement peut prendre un peu de temps, ensuite c’est seulement les enregistrements non présent dans la table qui seront insérés.

4) Ensuite on va lancer la création des statistiques

Exemple : bddcreationstatperiph.php?table=Lampecuisine

La creation des statistiques, c’est d’abord le fait de compléter la table initiale Lampecuisine avec les durées de chaque utilisation puis ca complète une autre table Lampecuisinestat

5) Et on finit par la consultation

bddconsultstat.php?table=Lampecuisine

Variante possible ? L’association d’un produit on / off a son energie (exemple ici : la bouilloire)
bddcreertable.php?table=Bouilloire&energie=1
bddinsertionperiph.php?idperiph=35995&table=Bouilloire
bddinsertionperiph.php?idperiph=35996&table=Bouilloireenergie
bddcreationstatperiph.php?table=Bouilloire&energie=1
bddconsultstat.php?table=Bouilloire&energie=1

Une extraction nécessaire au format XML ?
bddconsultstat.php?table=Lampecuisine&xmldemande=oui

On va dans l’eedomus, on créer un nouveau capteur http :

On complète de cette manière la :

La commande étant
VOTRESERVEUR/bddconsultstat.php?table=Lampecuisine&xmldemande=oui

Et on obtient directement sous l’eedomus :

On a le choix entre :
//moismaxi
//moismaxivaleur
//totalannuel
//totalhier
//semainepassee
//moispasse

Pour vos sondes de température :

On saisie ses sondes avec leurs codes api respectif. Ce qui est pas mal désormais, c’est que si vous avez 2 sondes, ou 10 sondes… vous n’avez qu’a les écrire une fois, et le script de maj s’occupe de tout faire.

Ensuite, on va dans l’eedomus, on crée un actionneur http, dont on paramètre en paramètre expert une fréquence à 15 minutes, et qui va appeler le script eedomus_temp_maj.php. C’est ce script qui va se charger de copier toutes les données de vos sondes en base de données.

[alert title= »Info »] Ne vous inquiétez pas si l’eedomus renvoit un message d’erreur. Le script étant exécuté sur le serveur, même si le temps dépasse 10 secondes, l’insertion des données fonctionne totalement (vous pouvez vérifier directement dans phpmyadmin).[/alert]

Pour infos, la copie de 60000 enregistrements prend environ 2 minutes. Une fois le script effectué, les suivants seront quasi instantanés (normal, juste 15 minutes de delta à copier).

Ensuite on a plusieurs choix :

[1] Soit consulter les données en appelant l’adresse suivante :
VOTRESERVEUR/eedomus_temp_consult.php?table=XXX

[2] On crée un capteur http avec utilisation de xml

On a le choix pour sortir les valeurs suivantes :
/temp/anneemax
/temp/anneemaxvaleur
/temp/annemin
/temp/anneminvaleur
/temp/moismax
/temp/moismaxvaleur
/temp/moismin
/temp/moisminvaleur
/temp/jourmax
/temp/jourmaxvaleur
/temp/jourmin
/temp/jourminvaleur
/temp/delta

[3] Pour obtenir le delta avec une autre sonde (l’extérieur par exemple), il suffit d’indiquer quelle sonde est celle de dehors.

Et voilà le résultat :

J’ai quand même utilisé une règle qui provoque le déclenchement, je n’arrive pas pour l’instant à utiliser l’application de la fréquence.

Comment je m’assure que cela se lance régulièrement ?

En créant un actionneur ainsi qu’une règle comme ci-dessous. J’ai pris 2 minutes de rab pour éviter les mauvaises surprises.

Notes sur les performances

Pour des produits classiques (chauffage, lampe) les données sont très réduites en base de données, pour les températures, à raison d’un relevé toutes les 2 minutes, ça génère près de 22 320 enregistrements en base pour un mois à 31 jours. Il faut donc faire un multi appel à l’api, car l’extract est limité à 10000. J’ai pris le parti de splitter en 2 chaque mois pour les traitements.

Pour la première utilisation : Le script bddinsertionperiph.php quand il est appelé sur une sonde avec beaucoup d’historique sur 2013 peut donc ainsi mettre près de 3 minutes en moulinage. Regardez dans l’eedomus le nombre d’historique pour savoir si le délai est anormalement long, je n’ai jamais fait planter ce script pour info.

Ensuite c’est instantané, car ça copie uniquement le delta.

===
La fonction GPS

Il suffit de compléter le fichier conf avec des paramètres, nom du Idevice, user icloud, passeword Icloud ainsi que le peripherique GPS. Pour le nom la case est importante. N’hésitez pas à verifier sur Icloud / localiser puis liste de mes appareils pour éviter le non fonctionnnement.

Comme d’habitude le xml fonctionne, et grâce à un actionneur :

On obtient, sur les 20 dernières minutes :

A vous les règles, de type, je rentre à moins d’un kilomètre, j’allume la lumière !

Sans qui rien n’aurait été possible :
– Aurel de DomoBlog
– DjMomo alias le verificateur de code
– Julien alias Cmoi20 pour la partie GPS

Abonnez vous
NE MANQUEZ
PLUS RIEN
Recevez les prochains
articles par mail
JE M' ABONNE

A propos de cet auteur

Aurélien Brunet

Aurélien Brunet

Informaticien spécialisé dans l'IT industrielle, le réseau et les bases de données, un peu geek à mes heures perdues, je me suis mis à la domotique en 2012 avec ma première box domotique l'eedomus associée à un raspberrypi et quelques développements personnels. Depuis, je test, j’installe, je code, j’améliore mon installation et surtout, je partage avec vous mon expertise via ce blog pour améliorer votre quotidien dans la smart home!

Abonnez vous
NE MANQUEZ
PLUS RIEN
Recevez les prochains
articles par mail
JE M' ABONNE
close-link
NOEL 2 DOMO-BLOG

Venez Jouer
avec nous !

Cette année Noel sera connecté
JOUER
#Noel2DOmoBlog
close-link