Message populaire Lazer Posté(e) le 25 février 2021 Message populaire Signaler Posté(e) le 25 février 2021 (modifié) 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 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 : 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) : 3.1.3 Installation de MariaDB (MySQL) Dans le Centre de paquets, rechercher et installer MariaDB : 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 : 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 : Confirmer en cliquant sur le bouton Oui : 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) : 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 : 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 : Aller dans les Paramètres PHP, sélectionner le profil correspondant à votre version de PHP, et cliquer sur le bouton Modifier : Il faut au minimum que l'extension pdo_mysql soit cochée : 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" : 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. L'icône du QuickApp DomoCharts apparait dans l'interface, on peut la cacher si elle gêne : La zone de logs doit ressembler à ceci si la collecte des mesures et l'insertion en base de données se passent bien : 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 : 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 : 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 Package pour le NAS : domocharts_v7.0.zip QuickApp : DomoCharts_v7.11.fqa Icône : Mise à jour du QuickApp existant (contenu à copier/coller par dessus le fichier original ) : Fichier main : DomoCharts v7.11.lua Fichier DomoCharts : Library - DomoCharts v7.10.lua Fichier tools : Library - tools v2.20.lua Modifié le 17 janvier 2022 par Lazer 12
Lazer Posté(e) le 25 février 2021 Auteur Signaler Posté(e) le 25 février 2021 Plus tard on verra comment créer des graphs personnalisés avec Grafana. 2 1
mprinfo Posté(e) le 26 février 2021 Signaler Posté(e) le 26 février 2021 Je suis vraiment une Quiche je n'arrive pas a installer domochart j'ai cette erreur http://192.168.xxx.xxx/domocharts/install.php Error : SQLSTATE[HY000] [2002] No such file or directory
Lazer Posté(e) le 26 février 2021 Auteur Signaler Posté(e) le 26 février 2021 "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
mprinfo Posté(e) le 26 février 2021 Signaler Posté(e) le 26 février 2021 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
Lazer Posté(e) le 26 février 2021 Auteur Signaler Posté(e) le 26 février 2021 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.
mprinfo Posté(e) le 26 février 2021 Signaler Posté(e) le 26 février 2021 je viens de tout cocher et c'est toujours pareil
Lazer Posté(e) le 26 février 2021 Auteur Signaler Posté(e) le 26 février 2021 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
mprinfo Posté(e) le 26 février 2021 Signaler Posté(e) le 26 février 2021 oui j'ai accès a la racine et même a mon site de l'api unifi /unifi
Lazer Posté(e) le 26 février 2021 Auteur Signaler Posté(e) le 26 février 2021 OK donc c'est juste la liaison avec MariaDB qui ne fonctionne pas.... Il faudra que je fasse des tests
mprinfo Posté(e) le 26 février 2021 Signaler Posté(e) le 26 février 2021 OK merci. J'ai misroot comme userEt mon mot de passeEnvoyé de mon BLA-L29 en utilisant Tapatalk
Lazer Posté(e) le 26 février 2021 Auteur Signaler Posté(e) le 26 février 2021 oui ok mais là c'est clairement pas un problème d'authentification, sinon tu aurais une insulte te le disant clairement on dirait qu'il ne trouve pas le chemin de communication vers MariaDB.... je regarderai demain (je vais devoir installer ça sur mon DSM) 1
mprinfo Posté(e) le 26 février 2021 Signaler Posté(e) le 26 février 2021 Il n'y a pas urgence Envoyé de mon BLA-L29 en utilisant Tapatalk
p78ch201 Posté(e) le 27 février 2021 Signaler Posté(e) le 27 février 2021 Ca marche super bien ! Merci Lazer !! J'ai du créer un nouveau repertoire /domocharts/ car ça ne fonctionnait pas avec l'ancien / graph/ j'obtenais ce message : Du coup, je repars sur une nouvelle insrtallation.
Lazer Posté(e) le 27 février 2021 Auteur Signaler Posté(e) le 27 février 2021 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 1
Lazer Posté(e) le 27 février 2021 Auteur Signaler Posté(e) le 27 février 2021 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';
p78ch201 Posté(e) le 27 février 2021 Signaler Posté(e) le 27 février 2021 (modifié) 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 et ci-dessous la config dans phpmyadmin sur la base "domotique" : Modifié le 27 février 2021 par p78ch201
mprinfo Posté(e) le 27 février 2021 Signaler Posté(e) le 27 février 2021 Ca ne fonctionne toujours pas j'ai essayé aussi sur mon DSM de test et même soucis
Lazer Posté(e) le 27 février 2021 Auteur Signaler Posté(e) le 27 février 2021 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 Essaye ceci pour préciser le port 3307 : $server = '127.0.0.1:3307'; 1
mprinfo Posté(e) le 27 février 2021 Signaler Posté(e) le 27 février 2021 tu es trop fort Par contre ne pas oublier d'activer la connexion TCP/IP Moi je fais cela sous DSM parce que le tuto dit d'utiliser DSM 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 Bon je vais allé fendre un peu de bois et je continuerai cela ce soir 1 1
Lazer Posté(e) le 27 février 2021 Auteur Signaler Posté(e) le 27 février 2021 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)
mprinfo Posté(e) le 27 février 2021 Signaler Posté(e) le 27 février 2021 Je te demande pas un tutorielJe voulais savoir juste les paquets à installerJe sais installer apache par contre pour la config la j'y connais rienPour 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 faisEnvoyé de mon BLA-L29 en utilisant Tapatalk
Lazer Posté(e) le 27 février 2021 Auteur Signaler Posté(e) le 27 février 2021 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. 1
mprinfo Posté(e) le 27 février 2021 Signaler Posté(e) le 27 février 2021 Ça fonctionne nickel sous dsmLorsque j'aurai un peu de temps je ferai cela sur une Linux debianMerci pour ton aide Envoyé de mon BLA-L29 en utilisant Tapatalk
Manu31 Posté(e) le 28 février 2021 Signaler Posté(e) le 28 février 2021 Bonjour, Juste pour te dire MMMERRRCCCCIIIIII @Lazer pour l'adaptation à la HC3. 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 En PJ un screen de mes capteurs de températures
Messages recommandés