Aller au contenu
Lazer

Quick App - DomoCharts - Graphiques sur NAS pour HC3

Recommended Posts

DomoCharts

Version 7.11

 

Sommaire :

  • 1. Présentation
  • 2. Pré-requis
  • 3. Installation
    • 3.1 Synology
    • 3.2 Pages Web
    • 3.3 Plages horaires d'énergie électrique
    • 3.4 Base de données MySQL/MariaDB
    • 3.5 QuickApp
  • 4. Mise à jour 
  • 5. Utilisation
  • 6. Changelog
  • 7. Téléchargement

 

 

 

1. Présentation

 

Voici DomoCharts pour HC3, qui succède à DomoCharts sur HC2 introduit ici :

 

Les fonctionnalités sont plus ou moins les mêmes, c'est à dire l'affichage de graphiques en plein écran sur une page Web hébergée sur un NAS, serveur Web en ligne, bref n'importe quel serveur Web faisant tourner le langage PHP et stockant les mesures dans une base de données MySQL/MariaDB.

Le module virtuel récoltant les mesures sur la HC2 a été entièrement réécrit en QuickApp pour la HC3.

 

Liste des capteurs supportés :

  • Température (en °C)
  • Humidité (en %HR)
  • Luminosité (en lux)
  • Pluie (en mm)
  • Vent (en km/h)
  • Eau (en litre)
  • Gaz (en ppm)
  • Son (en dB)
  • Pression (en millibar)
  • Particules (en μg/m3)
  • Tension (en Volt)
  • Courant (en Ampère)
  • Puissance (en Watt)
  • Energie (en kWh)

 

Remarque : les modules cachés (hidden), morts (dead), ou désactivés (disabled) sont ignorés.

 

DomoCharts se compose des éléments suivants :

  • Un QuickApp à installer sur la box domotique HC3 qui collecte les données
  • Un package ZIP (contenant des fichiers HTML, PHP, JavaScript, ...)  à déployer sur un serveur Web
  • Une base de données MySQL/MariaDB permettant de stocker les données, installé avec le serveur Web

 

large.Screenshot-DomoCharts-Graph-Temperature.png.7008aa755789d32fedf247a3e374ad68.png

 

 

A noter que cette version de DomoCharts crée de nouvelles tables dans la base de données SQL, donc les données éventuellement existantes ne sont ni reprises ni supprimées.

Je proposerai plus tard des requêtes SQL permettant de récupérer manuellement les données. Je n'ai pas voulu automatiser le processus car c'est un peu complexe, avec les ID qui changent, etc... je pense qu'il sera préférable de le faire à la main au cas par cas.

 

 

2. Pré-requis

 

  • Un serveur Web supportant PHP (NAS Synology, hébergement mutualisé, ...)
  • Un serveur hébergeant une base de données MySQL/MariaDB (Idem)
  • Une Fibaro Home Center 3 / Home Center 3 Lite

 

 

3. Installation

  

3.1 Synology

 

Etapes facultatives pour les utilisateurs débutants d'un NAS Synology avec DSM.

Ces étapes doivent être effectuées à l'aide du compte admin via l'interface Web (accessible par défaut sur le port 5000).

 

3.1.1 Installation de WebStation

 

Dans le Centre de paquets, rechercher et installer WebStation si ce n'est pas déjà fait :

 

large.Screenshot-NAS-Synology-WebStation-Install.png.cda745e9a47c7a18845cf292fe05a76e.png

 

 

3.1.2 Installation de PHP

 

Dans le Centre de paquets, rechercher et installer la dernière version de PHP disponible (7.3 dans mon exemple) :

 

large.Screenshot-NAS-Synology-PHP-Install.png.fcb9dc43f527e238400368c0011cad62.png

 

 

3.1.3 Installation de MariaDB (MySQL)

 

Dans le Centre de paquets, rechercher et installer MariaDB :

 

large.Screenshot-NAS-Synology-MariaDB-Install.png.1d34565843c1950c42e9bb57a12907b0.png

 

Dès que l'installation est terminée, cliquer sur l’icône de MariaDB afin d'accéder à l'écran de configuration, puis cliquer sur le bouton Changer le mot de passe :

 

large.Screenshot-NAS-Synology-MariaDB-Config.png.92c90cafe1c5ae5e8ee75687cbd83dc3.png

 

Noter également le numéro du port, DSM semble forcer le numéro 3307 depuis MariaDB 10.

De plus, cocher la case "Activer la connexion TCP/IP".

 

Par défaut, le mot de passe MariaDB est vide, cliquer alors sur le bouton Réinitialiser le mot de passe MariaDB :

 

gallery_133_61_3248.png

 

Confirmer en cliquant sur le bouton Oui :

 

gallery_133_61_3304.png

 

Le seul compte existant est root, il faut donc créer un mot de passe (note : ce compte root est différent du compte root du Syno, il est donc tout à fait possible d'avoir des mots de passes différents) :

 

gallery_133_61_593.png

 

 

3.1.4 Configuration de WebStation

 

Dans le menu principal de DSM, ouvrir WebStation, la dernière version de PHP doit apparait installée en bas de la liste :

 

large.Screenshot-NAS-Synology-WebStation-Statut.png.58df31502ff296ae04ea930f612814f6.png

 

Aller dans Paramètres généraux, et s'assurer que le profil PHP correspondant à la dernière version est sélectionné dans la liste déroulante :

 

large.Screenshot-NAS-Synology-WebStation-General-Parameters.png.461d349e32d3e51c4876b3031f397ee1.png

 

Aller dans les Paramètres PHP, sélectionner le profil correspondant à votre version de PHP, et cliquer sur le bouton Modifier :

 

large.Screenshot-NAS-Synology-WebStation-PHP-Parameters.png.3dc72479c8723e563dfc47473b616d35.png

 

Il faut au minimum que l'extension pdo_mysql soit cochée :

 

large.Screenshot-NAS-Synology-WebStation-PHP-Advanced-Parameters.png.0806d4343d74725e32d050a53fb62c3d.png

 

Le Syno est prêt.

 

 

3.2 Pages Web 

 

Transférer toute l'arborescence contenue dans le fichier ZIP vers le répertoire /domocharts sur le serveur Web via FTP ou montage réseau.

 

Ensuite, éditer le fichier config.inc.php afin d'y modifier les paramètres de connexion à la base de données MySQL :

// MySQL Server hostname or IP address
$server = 'server';
// MySQL User account
$login = 'login';
// MySQL User password
$password = 'password';
// MySQL Database name
$database = 'database';

 

Note : si vous utilisez le mini-tuto Synology ci-dessus, les paramètres devraient ressemble à quelques chose comme cela (seul le mot de passe doit être personnalisé) :

// MySQL Server hostname or IP address
$server = '127.0.0.1:3307';
// MySQL User account
$login = 'root';
// MySQL User password
$password = 'MonSuperPassword';
// MySQL Database name
$database = 'domotique';

 

Note : Pour des raisons de sécurité, si vous maitrisez MySQL et phpMyAdmin, vous devez créer un utilisateur dédié (différent de root).

Je ne détaille pas cette procédure qui est hors du cadre de ce tutoriel.

 

 

3.3 Plages horaires d'énergie électrique

  

Dans le fichier config.inc.php, une rubrique concerne la configuration des horaires de l'abonnement au fournisseur d'électricité (imposés par le distributeur Enedis).

La variable $TimeSource doit avoir la valeur 'STATIC' :

//*** Teleinfo time for energy
//
// Variable = 'Value'           // Comment                                    : Allowed values
// --------   -------           // ------------------------------------------ : ---------------
$TimeSource = 'STATIC';         // Source of information for date and time    : TELEINFO|STATIC
// ---------------------------- // Valid only if TELEINFO TimeSource is used  : ---------------
$teleinfoTable = 'teleinfo';    // MySQL table name                           : xxxxxxxx
$teleinfoDelay = 60;            // Teleinfo Delay in Seconds                  : ss
// ---------------------------- // Valid only if STATIC TimeSource is used    : ---------------
$TimeHCHP = array(              // HC/HP start times for each EDF rate        : 'hh:mm' => '<BASE|HC|HP>'
	'00:00' => 'HC',
	'06:30' => 'HP',
	'22:30' => 'HC'
);

Sont actuellement supportés les abonnements de type Normal ('BASE'), et Heures Pleines/Heures Creuses ('HP' et 'HC').

Dans l'exemple du dessus, j'ai configuré les horaires HP de 6:30 à 22:30, et des horaires HC de 22:30 à 6:30.

Notez que la variable $TimeHCHP doit obligatoirement commencer à 00:00. Vous pouvez ensuite ajouter autant de tranches horaires que nécessaires, car certains abonnements proposent 2 tranches HC réparties dans la journée.

Si vous avez un abonnement Normal, c'est plus simple, puisqu'il suffit d'indiquer 'BASE' à partir de 00:00 :

$TimeHCHP = array(
	'00:00' => 'BASE'
);

Avec ces informations, le bouton Energy du module virtuel sera ensuite capable d'interroger l'API de la HC3 afin de récupérer les consommations des différentes équipements pour chaque tranche horaire de chaque journée.

A l'heure actuelle, le graphique d'énergie électrique affiche la somme des kWh pour chaque journée, mais les informations nécessaires sont stockées dès aujourd'hui dans la base de données afin d'effectuer les calculs de coà»ts financiers ultérieurement.

 

 

3.4 Base de données SQL

Afin de créer ou migrer les tables dans la base de données MySQL/MariaDB, il faut appeler la page /domocharts/install.php sur le serveur Web.

Si tout se passe bien, la page affiche une longue liste de création de tables avec le statut OK, puis le message "Finished with success" :

 

large.Screenshot-DomoCharts-Install.png.e22c9ce693824e3a3aa40c91cdf3954c.png

 

Sinon, vous pouvez demander du support sur le forum, en copiant/collant le texte des messages d'erreurs.

 

 

3.3 QuickApp pour HC3

 

Ce QuickApp est responsable de l'envoi des données vers la base de données SQL au travers de pages Web dédiées à l'insertion des données.
Dans la HC3, aller dans Paramètres, puis Dispositifs, puis cliquer sur le bouton "+", choisir "Autre appareil", et enfin "Téléverser un fichier". Sélectionner aller le fichier DomoCharts_v7.0.fqa.

 

Dans les Variables du QuickApp, il est possible de configurer les options suivantes :

  • NAS_Protocol : protocole à utiliser, normalement : http
  • NAS_Address : adresse IP du NAS, par exemple : 192.168.1.1

  • NAS_Port : port de communication, normalement : 80 (ne rien mettre)

  • NAS_User : utilisateur optionnel, sinon ne rien mettre

  • NAS_Password : mot de passe optionnel, sinon ne rien mettre

  • NAS_Path : si vous avez suivi le tuto, c'est "/domocharts", mais vous pouvez changer le chemin

  • Refresh : intervalle de rafraichissement des informations, par défaut 60 secondes

  • Memory : nombre de mesures à conserver en mémoire en cas d'indisponibilité temporaire du NAS. J'ai testé jusqu'à 10000 sans aucun souci sur HC3. Si le QuickApp releve 100 mesures chaque minutes, dans ce cas cela fait une mémoire de 100 minutes, soit 1h40.

  • Battery_Hour : heure à laquelle sont relevées les niveaux de batteries des modules, par exemple chaque soir à 23h

  • debug : affiche plein d'informations dans la zone de debug du QuickApp, utile seulement pour demander de l'aide, valeur par défaut false.

     

large.Screenshot-HC3-QuickApp-DomoCharts-Variables.png.e737635f7e1fb947457d767f0ae2e868.png

 

L'icône du QuickApp DomoCharts apparait dans l'interface, on peut la cacher si elle gêne :

 

large.Screenshot-HC3-QuickApp-DomoCharts.png.3b7945497c893810f832abdd1218aa3b.png

 

La zone de logs doit ressembler à ceci si la collecte des mesures et l'insertion en base de données se passent bien :

 

large.Screenshot-HC3-QuickApp-DomoCharts-Debug.png.a4af86bf4ccc6ed84125595a6ddff377.png

 

 

4. Mise à jour

 

Rien pour le moment.

 


5. Utilisation

 

Pour visualiser les graphes, il suffit d'aller chercher avec son navigateur l'adresse du serveur Web avec le chemin "/domocharts", par exemple :

http://192.168.1.1/domocharts/

 

Pour l'administration, aller sur la page admin.php :

http://192.168.1.1/domocharts/admin.php

Cette page permet d'ordonner les modules, de donner une couleur à  chaque courbe, et d'en cacher certains :

gallery_133_61_104195.png

 

Si une valeur aberrante apparait sur un graph, il zoomer suffisamment dans la zone temporelle, puis cliquer sur le point. Dans le popup qui apparait, un bouton Delete permet de supprimer la valeur, afin de conserver une courbe homogène : 

gallery_133_61_15277.png

 

 

6. Changelog :

 

  • v7.00 : Février 2021
    • Version initiale 
  • v7.01 : Mars 2021
    • Correction des consommations d'énergies électriques quotidiennes qui ne sont pas générées dans certain cas
  • v7.11 : Janvier 2022
    • Correctifs et améliorations diverses

 

 

7. Téléchargement

 

 

 

image.png.0c9c5afab03a3617c8c63ac38fb8b556.png

 

Modifié par Lazer
  • Like 10

Partager ce message


Lien à poster
Partager sur d’autres sites

Plus tard on verra comment créer des graphs personnalisés avec Grafana.

 

large.Screenshot-DomoCharts-Grafana-Consommation-Miniature.png.20367a6d7a4cc48c4e88a2db2809681d.png

  • Like 1
  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

"No such file or directory" ==> ton répertoire /domocharts ne doit pas être accessible

Tu as bien décompressé le ZIP dans le répertoire /web de Diskstation ? Je me rend compte que j'ai oublié de préciser ce point dans le tuto

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui pas de soucis il ce trouve bien dans

/web/domocharts/

 Si je n'étais pas dans le bon répertoire j'aurais une erreur 404

 

 

 

Envoyé de mon BLA-L29 en utilisant Tapatalk

 

 

 

 

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah oui en effet... tu peux essayer de cocher "mysqli" dans les modules de PHP ?

D'ailleurs dans le doute, tu peux tout cocher. J'avoue que cette partie du tuto je l'ai fait en aveugle, car je n'utilise pas le Synology perso.

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu as essayé d'accéder à la racine du site Web ?

Et à /domocharts ?

 

Si un pro de DSM passe par ici il pourra nous aider :)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

oui j'ai accès a la racine et même a mon site de l'api unifi 

 

/unifi

 

 

1.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites

OK donc c'est juste la liaison avec MariaDB qui ne fonctionne pas....

Il faudra que je fasse des tests

Partager ce message


Lien à poster
Partager sur d’autres sites

OK merci. J'ai mis

root comme user
Et mon mot de passe

Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

oui ok mais là c'est clairement pas un problème d'authentification, sinon tu aurais une insulte te le disant clairement :D
 

on dirait qu'il ne trouve pas le chemin de communication vers MariaDB.... je regarderai demain (je vais devoir installer ça sur mon DSM)

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Il n'y a pas urgence

Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Ca marche super bien ! Merci Lazer !!:13:

 

J'ai du créer un nouveau repertoire /domocharts/ car ça ne fonctionnait pas avec l'ancien / graph/

 

j'obtenais ce message :

Capture.thumb.PNG.3075ab968032be50420ffd9c4dee597a.PNG

 

 

Du coup, je repars sur une nouvelle insrtallation.

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui, nouveau répertoire sur le serveur Web, nouvelles tables dans la base de données, c'est ce qui permet à l'ancien et au nouveau DomoCharts de cohabiter et de faire sa migration en douceur.

Comme précisé, on verra un peu plus tard pour la récupération des anciennes données.

 

Du coup tu pourrais nous partager ta configuration du serveur Web et de PHP ? Pour @mprinfo

Merci

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pense que j'ai trouvé, dans config.inc.php, essaye de mettre '127.0.0.1' à la place de 'localhost' :

 

server = '127.0.0.1';

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 1 heure, Lazer a dit :

Oui, nouveau répertoire sur le serveur Web, nouvelles tables dans la base de données, c'est ce qui permet à l'ancien et au nouveau DomoCharts de cohabiter et de faire sa migration en douceur.

Comme précisé, on verra un peu plus tard pour la récupération des anciennes données.

 

Du coup tu pourrais nous partager ta configuration du serveur Web et de PHP ? Pour @mprinfo

Merci

// MySQL Server hostname or IP address
$server = 'localhost';
// MySQL User account
$login = 'root';
// MySQL User password
$password = 'xxxxxx';
// MySQL Database name
$database = 'domotique';
 

 

Mon serveur est hébergé sur une machine virtuelle (Proxmox VE) qui tourne sous ubuntu avec apache2

 

Ci dessous  les variables du module 

 

Capture.PNG

 

 

et ci-dessous la config dans phpmyadmin sur la base "domotique" :

 

Capture.PNG.04d0635602680ee43534b7a9bf5b4cf9.PNG

Modifié par p78ch201

Partager ce message


Lien à poster
Partager sur d’autres sites

Ca ne fonctionne toujours pas

j'ai essayé aussi sur mon DSM de test et même soucis

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pense que j'ai trouvé, c'est MariaDB depuis la version 10 sur Synology qui n'utilise plus le port 3306 par défaut (voilà ce qui m'énerve chez Syno, ils modifient trop Linux à leur sauce... du coup à vouloir simplifier, ça fait l'effet inverse, ça complexifie)

Et du coup @p78ch201 n'a pas eu de problème car il utilise comme moi un Linux standard dans une VM

 

large.Screenshot-NAS-Synology-MariaDB-Config.png.92c90cafe1c5ae5e8ee75687cbd83dc3.png

 

Essaye ceci pour préciser le port 3307 :

$server = '127.0.0.1:3307';
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

tu es trop fort :60:

 

Par contre ne pas oublier d'activer la connexion TCP/IP

1.jpg.41d71825104f370ec6741d6a1413cb57.jpg

 

Moi je fais cela sous DSM parce que le tuto dit d'utiliser DSM :D

 

Sous debian avec le serveur Apache cela fonctionne ?

 

Si tu as les quelques lignes de commande linux pour installer tout cela je suis preneur

 

Merci Christophe tu auras le droit a ta dose de mirabelle édition spéciale :13:

 

Bon je vais allé fendre un peu de bois et je continuerai cela ce soir

  • Like 1
  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour l'astuce de la case à cocher TCP/IP, je ne l'ai pas sur ma vieille version de DSM 6.1.

Encore un truc qui a changé tient... je n'ose imaginer ce que ça va donner sous DSM 7 (déjà que l'API a évolué, le QuickApp Surveillance Station ne fonctionne plus apparemment)

 

 

Sinon j'ai juste fait un copier/coller du tuto Synology depuis le topic de DomoCharts pour HC2... tout simplement parce que c'est ce que la majorité des utilisateurs réclament ici.

On est sur un forum de domotique, pas d'informatique.

 

Perso je suis sous Linux Debian, avec Apache, tout ça, la base de données et les pages Web sont stockés sur des serveurs différents, double filtrage reverse proxy + plusieurs firewalls, et non je ne ferai pas de tuto, parce que :

- il y en a déjà des tonnes sur les Internets mondiaux

- quelqu'un qui a Linux est censé savoir installer un serveur Apache, c'est un peu la base quand même (sans aller dans les délires de reverse proxy & compagnie)

Partager ce message


Lien à poster
Partager sur d’autres sites

Je te demande pas un tutoriel

Je voulais savoir juste les paquets à installer

Je sais installer apache par contre pour la config la j'y connais rien

Pour la base SQL c'est aussi mariadb que tu utilises ?

J'ai aussi un reverse proxy sur mon serveur.

Pour DSM 7 je pense pas que ce soit pour tout de suite et dsm 6 me suffit largement pour ce que j'en fais


Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Tout simplement les paquets apache2.. et mariadb... mais cherche sur Google, il y a des tonnes de tutos, clairement les serveurs Web+PHP+SQL c'est le truc le plus courant

 

Je peux pas (et veux pas) te faire un tuto, mon installation n'a rien de courante.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Ça fonctionne nickel sous dsm

Lorsque j'aurai un peu de temps je ferai cela sur une Linux debian

Merci pour ton aide

Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Juste pour te dire MMMERRRCCCCIIIIII @Lazer pour l'adaptation à la HC3.:16:

 

Et une petite remarque, sur HC3 j'ai du faire un "Get devices" pour voir remonter l'ensemble des capteurs et valeurs dans domocharts.
A rajouté dans la procédure (ou pas :D) 

 

En tout cas merci beaucoup :13:

En PJ un screen de mes capteurs de températures

2-28-2021 10-48-14 AM.png

Partager ce message


Lien à poster
Partager sur d’autres sites

×