VOUS ÊTES ICI: Accueil » Blog » Domotique » Eedomus » Comptage énergétique hebdo/mois/année via php/MySQL
Eedomus

Comptage énergétique hebdo/mois/année via php/MySQL

Dans cet article, nous allons voir une technique plus poussée que mon premier tuto pour faire le suivi de votre consommation électrique.

Pour cela, j’ai développé un script qui va nous permettre de stocker la consommation journalière dans une base de données MySQL hébergée sur un Raspberry Pi faisant office de serveur web ou un NAS Synology, puis nous utiliserons un second script qui manipulera les données pour les renvoyées dans la box domotique Eedomus.

Enfin, sachez que chez moi, j’ai construit ce reportage pour ma box domotique Eedomus à partir des relevés réalisé par le périphérique Z-Wave de pince ampèremétrique Aeon Labs.

Dernière mise à jour du tarif le  2020-12-02 at 15:05

domadoo-aeon-labs-pince

Schéma de principe

script-php-electique-eedomus-domotique-sql

Bien, vous avez compris le principe? Téléchargez les fichiers sur notre GitHub et passons à l’étape suivante, la construction de la base de donnée qui hébergera nos relevés.

Télécharger les fichiers

 

Configuration de la base de données

1 Commencez par vous connectez à l’interface phpmyadmin de votre serveur web via l’URL: (192.168.x.x représente l’adresse du serveur web)

http://192.168.x.x/phpmyadmin/
2 Rendez-vous alors dans l’onglet “base de données“:

script-php-electique-eedomus-domotique-sql-bdd

3 Créez une nouvelle base de donnée que nous nommerons “historique“:
script-php-electique-eedomus-domotique-sql-table

4 Phpmyadmin vous confirme alors la bonne la création de cette dernière:
script-php-electique-eedomus-domotique-sql-db

5 Sélectionnez la base historique dans l’index des bases de données en cliquant dessus:
script-php-electique-eedomus-domotique-sql-historique

6 Rendez-vous maintenant dans l’onglet SQL:
script-php-electique-eedomus-domotique-sql

7 Collez le code suivant dans la fenêtre puis faites exécuter afin de créer la table SQL

CREATE TABLE IF NOT EXISTS electricite (
id int(11) NOT NULL AUTO_INCREMENT,
date date NOT NULL,
conso decimal(5,2) NOT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=96 ;

Le script a créé la table électricité ainsi que ses champs. Nous en avons terminé avec la partie SQL, vous pouvez fermer phpmyadmin, la suite se passe sur la box domotique Eedomus.

 

Configuration eedomus

Passons à la configuration coté eedomus. Soit vous avez déjà appliqué mon premier tuto et dans ce cas vous réutiliserez les périphériques actuels en ajoutant simplement ceux qui manques, soit vous débutés complètement auquel cas, il vous faut créer autant de périphériques virtuels qu’il est nécessaire (cout hier, cout hebdo, cout mensuel, kwh hebdo, kwh mensuel…).

Configurez ces périphériques ainsi: (type de données “nombre décimal” unité kWh ou €)
script-php-electique-eedomus-domotique-sql-peripherique-configuration

Notez les numéros api de chacun de ces périphériques dans un coin pour la suite.

Configuration du script php

1 Ouvrez le fichier parametres.php et remplacez les xxxxx et les 11111 par vos informations:

<?php
/*************************************************************************************/
/*                 ### Report electricité eedomus SQL V2.0 ###                       */
/*                                                                                   */
/*                       Developpement par Aurel@domo-blog.fr                        */
/*                                                                                   */
/*************************************************************************************/
 
//*************************************** API eedomus *********************************
// Identifiants de l'API eeDomus
$api_user = "xxxxx"; //ici saisir api user
$api_secret = "xxxxxxxxxxxxx";  //ici saisir api secret

//*************************************** Parametres network **************************
//@IP eedomus
$IPeedomus="192.168.x.x"; //ici saisir ip eedomus
//server MySQL
$server='localhost';
//MySQL login
$sqllogin='xxxxxx'; //ici saisir le user sql de phpmyadmin
//MySQL password
$sqlpass='xxxxxxx'; //ici saisir le pass du user phpmyadmin


//*************************************** codes api couts elec *************************
//numero du peripherique relevé hebdo
$periph_hebdo=11111;
//numero du peripherique relevé mensuel
$periph_mensuel=11111;
//numero du peripherique relevé annuel
$periph_annuel=11111;

//*************************************** codes api kWh elec ***************************
//hebdo kWh
$periph_annuel=11111;
//hebdo kWh
$periph_hebdokwh=11111;
//mensuel kWh
$periph_mensuelkwh=11111;
//annuel kWh
$periph_annuelkwh=11111;

//*************************************** codes api relevé elec *************************
//numero du peripherique de relevé electrique
$periph_rlv_elec=11111;


//tarif du kWh
$prix_kwh=0.1329;
?>

 

2 Uploadez les fichier téléchargés sur github dans le répertoire racine de votre serveur web (web sous syno et www sur rapsberry pi)

 

Test de configuration

1 Il est temps de tester le bon fonctionnement des scripts. ouvrez votre navigateur web et saisissez l’URL: (ou 192.168.x.x et l’adresse de votre serveur web)

http://192.168.x.x/report_elec/import_elec.php

Le navigateur doit vous retourner le message suivant :

rec_ok
Cela signifie que le script peut extraire les données de l’eedomus pour les stocker dans la base de données.

2 Testons à présent le second script, toujours dans votre navigateur, saisissez l’URL: (ou 192.168.x.x et l’adresse de votre serveur web)

http://192.168.x.x/report_elec/trait_elec.php

Le navigateur retourne les messages suivants:
update_ok
Cela signifie que le script arrive à injecter correctement les données dans les divers périphériques de l’eedomus que nous avons créé plus haut.

Si vous ouvrez la pièce électricité de votre eedomus vous constaterez que des valeurs sont apparues dans les périphériques.

Voilà, vous venez de mettre en place des scripts et une base de données qui peuvent interagir avec votre eedomus. Ce n’est pas si sorcier !

Les règles

Passons à présent à l’automatisation de tout ce petit monde.

1 Pour le traitement et la mise à jour des données, j’ai simplement repris l’actionneur HTTP du premier tuto qui s’appelle toujours opération auquel j’ai supprimé les actions de l’autre tuto pour les remplacées par la seule et unique action suivante:
script-php-electique-eedomus-domotique-sql-http

Et la règle suivante qui l’actionne tous les jours à 5h00:
script-php-electique-eedomus-domotique-sql

2 Pour l’import en base j’ai pour ma part une autre pièce “SQL” ou j’ai tous mes actionneurs SQL, mais vous pouvez parfaitement le mettre à la suite dans l’actionneur “opération”, appliquez simplement cette ligne de paramétrage à votre actionneur:
script-php-electique-eedomus-domotique-sql

3 Et la règle qui stocke la consommation de la journée en base tous les soirs à 23h59:
script-php-electique-eedomus-domotique-sql-conso

C’est terminé!

Vous avez à présent un suivi de votre consommation électrique simple, car seulement constitué d’un actionneur et de deux règles. Mais surtout fiable, car si le script d’update plante un soir, il pourra être appelé à un autre moment et les données remonteront dans vos différents états sans aucune perte.

script-php-electique-eedomus-domotique-sql-report

Restez connecté aux nouveautés domotiques, inscrivez-vous à notre newsletter

A propos de cet auteur

Aurélien Brunet

Aurélien Brunet

Chef de projet informatique, anciennement 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 pour sécuriser mon domicile.
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 maison connectée !

Choix box domotique
promos domotique
promos domotique