Aller au contenu

Graph De Température, Humidité, Consommation...sur Nas


Lazer

Messages recommandés

Dans les boutons du Virtual Device, il faut mettre l'adresse complète pour afficher la page web ou la racine du site.

en gros, je suis sur mon serveur à  l'adresse domotique.ndd.fr/graph

Et je suis en https, il fonctionne avec ou il faut rester en http.

 

quand je vais sur la page admin.php, c'est ce message d'erreur:

prepare('SELECT id, type FROM domotique_type'); $sql1->execute(); while ($data1 = $sql1->fetch(PDO::FETCH_ASSOC)) { ?>
prepare('SELECT d.id AS device_id, d.name AS device_name, r.name AS room_name, dt.visible, dt.color FROM domotique_device d, domotique_device_type dt, domotique_type t, domotique_room r WHERE d.room_id=r.room_id AND d.id=dt.device_id AND dt.type_id=t.id AND t.type = :type ORDER BY dt.ordre'); $sql2->execute(array('type' => $data1['type'])); $odd_row = true; while ($data2 = $sql2->fetch(PDO::FETCH_ASSOC)) { $class = $odd_row ? 'odd' : 'even'; ?>
   	Disable data-on="Afficher" data-off="Cacher" />getMessage(); } ?>

Je pense avoir bien configuré l'accès au site. Je suis bien en version 

PHP Version 5.5.20-1~dotdeb.1
Lien vers le commentaire
Partager sur d’autres sites

Dans Net.FHttp(), il faut mettre juste la racine du site (nom de domaine pour un hébergement externe, ou adresse IP pour un NAS local).

Seul le http est pris en charge par Fibaro à  l'heure actuelle, en attendant le support du https en v4...

 

Pour les pages PHP, il semble que le langage PHP ne soit pas activé. Sinon tu ne devrais pas voir le contenu du code source des pages. A voir avec ton hébergeur...

Lien vers le commentaire
Partager sur d’autres sites

Justement hier soir j'ai travaillé sur la mise à  jour du code pour le bouton n°4 "Devices", mais je suis tombé sur un bug (avec la box de Lionel je commence à  être habitué...), donc j'ai mis en standby. J'essaierai de retravailler dessus dans les jours qui viennent, mais je vais être en déplacement ça ne va pas forcément être facile.

 

Yohan je vais à  Lille pour la fin de semaine, c'est pas bien loin de chez toi ;)

Lien vers le commentaire
Partager sur d’autres sites

Humm le script tourne depuis quelques jours maintenant et j'ai observé un truc bizarre sur la page consommation, j'ai l'impression que c'est les labels de températures affichés avec des Watts, et je n'arrive pas à  afficher le résultat sous forme d'histogramme. Une idée? je suis en ChartV4.1 et HC2 3.600 (et hébergé sur un Raspberry PI mais je ne pense pas que cela joue)

Capture d’écran 2015 01 10 à  20.01.51

 

Je ne sais pas si quelqu'un a déjà  vu ce site, mais c'est exactement ce que je recherche à  faire! et d'après les commentaires que tu as déjà  laissé Lazer, j'ai comme l'impression que ton intention est dans ce sens aussi non? Du nouveau sur le support de l'Eco-device ou standy total en attendant la v4 stable (la vraie lol)?

http://conso.gourdet.net/tableau-de-bord.html

 

Je pense que l'on peut rapidement arriver à  ce genre d'interface de reporting si on gère le développement Web(en gardant l'avantage de se baser sur une BDD), mais j'avoue que je pars de loin côté développement Web ^^. Si j'arrive à  faire un truc de potable je partagerai...

 

Et encore bravo pour ce tuto, c'est top ces graphiques :-)

Lien vers le commentaire
Partager sur d’autres sites

clarkkent609 : très étrange ce bug, je n'ai jamais vu ça !!

 

Je t'avoue que je ne touche plus trop au code pour la v3, et que je suis en ce moment sur le code de la v4. Il faut encore que je teste un peu mes nouveaux codes, mais à  priori ça a l'air de fonctionner pas trop mal en test (v4.031).

Avant de partager un nouveau module virtuel destiné à  la v4, il faut encore que j'améliore la gestion des erreurs (afin d'aider au diagnostique), car ce qui est en place n'est pas satisfaisant.

 

 

Concernant ton lien vers le tableau de bord, oui je le connaissais et je le trouve franchement génial.

Il y a un peu de dév web à  faire, mais le gros du travail c'est surtout d'agréger des données qui proviennent de différentes sources (les graphiques de mon tuto, mais aussi l'Eco-Devices, ou autre type de compteur....).

A terme je vise un tableau de bord dans ce style, mais clairement ce n'est pas demain la veille que ça sera en place chez moi, j'ai tellement de choses à  faire avant....

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ton retour! Je suis bien d'accord avec toi sur l'agrégation des données depuis les différentes sources. Faut vraiment que j'épluche le contenu de ton code pour voir comment ça fonctionne :-p

Pour le bug, chose étrange je n'ai touché àrien et il a disparu (je pense éventuellement au manque de puissance du raspberry? Du coup le fait de mouliner ne ferait pas aboutir toutes les requêtes). Pour l'histoire des histogrammes, vos "barres" elles sont larges? moi ça s'apparente plus àdes traits :-/

Lien vers le commentaire
Partager sur d’autres sites

Quand tu demandes au PI d'afficher les graphs, c'est lent ?

Parce qu'il me semble avoir déjà  vu passer du monde ici qui utilise un Raspberry PI sans trop de problème.

 

La largeur des barres de l'histogramme est calculée automatiquement normalement, donc plus il y a de modules, moins c'est large.

Lien vers le commentaire
Partager sur d’autres sites

En fait c'est relativement rapide pour tout sauf pour la partie énergie, qui prend 1 minute environ pour s'afficher :-/

Mais cette section me semble étrange, notamment les valeurs qui sont énormes! Ma lampe de salon c'est 3x40W Max et encore, elle est sur variateur et jamais àfond post-36-1421005073,9889_thumb.jpg

Lien vers le commentaire
Partager sur d’autres sites

et dans le panneau énergie de la HC2, est-ce que les graphs de puissance sont OK pour cette lampe de salon ?

 

EDIT : il y a bien un bug, je viens de constater aussi chez moi....

bon un nouveau truc à  étudier cette semaine !!

Lien vers le commentaire
Partager sur d’autres sites

Oui les valeurs sont ok dans le hc2. Par contre qu'entends-tu par purge et consolidation des données? Selon quelles règles? Je pose la question car plus les jours passent et plus le raspberry galère àm'afficher les pages et quand je regarde les courbes j'ai l'impression que toutes les valeurs sont historisées :-/

ÉDIT: en fait la purge n'est faite que sur les sections suffixées "historique". Par contre j'ai bien l'impression que c'est le raspberry qui lutte pour afficher les graphs dès lors qu'il y a beaucoup de points àtraiter car sur les sections historique ça s'affiche vite :-( j'vais creuser tout ça...

Lien vers le commentaire
Partager sur d’autres sites

Toutes les minutes, le module virtuel envoie les valeurs dans les tables temperature, humidity, battery, etc... de la base SQL.

La purge a lieu toute les nuits et supprime ces données vieilles de plus de 3 semaines (bien que les graphs n'affichent que 1 semaine de détail par défaut...)

La consolidation a lieu toutes les nuits et fait la moyenne/mini/maxi des valeurs de la journée qui vient de s'écouler et stocke les résultats dans les tables temperature_day, himidity_day, etc

 

Ce mécanisme permet de limiter l'accroissement trop rapide des tailles des tables.

Pour simplifier, il y a une monté en charge rapide durant 3 semaines, puis ça se stabilise et augmente tout doucement.

J'ai plus d"un an d'historique, et aucun ralentissement à  signaler sur un hébergement mutualisé OVH premier prix. Le graphe s'affiche en 2s environ quant tout va bien, et un peu plus quand la connexion Internet est lente. J'imagine que si je stockait les données en local sur un NAS, cela irait plus vite.

 

Donc il est probable que le Raspberry PI soit un peu limite pour cet usage.

Il faudrait monitorer l'activité sous Linux, avec la commande "top" pour commencer afin de voir l'activité disque et CPU au moment d'afficher les graphs.

Lien vers le commentaire
Partager sur d’autres sites

J'ai regardé vite fait pour le bug d'affichage des graphiques d'énergie.

Le bug se situe dans la génération du graphique highcharts.

Les données dans la base SQL sont OK, ce qui est plutôt rassurant.

 

J'essaierai de me replonger dedans pour la prochaine version. Mais c'est du travail, car la version actuelle des graphs ne me convient pas, ce que je souhaite à  terme c'est intégrer le cout en prenant en compte les tarifs HC/HP, ce qui implique de corréler les horaires avec les infos de l'Eco-Devices.

Pour le moment je suis plus concentré sur la mise à  jour de compatibilité avec la v4.

Lien vers le commentaire
Partager sur d’autres sites

Voici le module virtuel en version 4.2, qui devrait être compatible à  la fois en v3 et en v4.

 

Dans le code de chaque bouton, il faut modifier la première ligne afin de faire correspondre à  l'adresse IP ou le nom de domaine de votre serveur :

local NAS = Net.FHttp("server_name_or_ip_address")

C'est tout ce qu'il y a à  modifier.

 

 

J'ai amélioré la gestion des erreurs, donc normalement si l'ajout des données ne se fait pas correctement dans la base MySQL/MariaDB, alors le message "Erreur" apparaitra furtivement en dessous de l'icône du module virtuel, et la fenêtre "Debug" de chaque bouton permettra d'avoir plus de détails sur l'erreur rencontrée. Cela devrait aider à  diagnostiquer les différents soucis rencontrés.

 

 

Je vous laisse tester, et si ça fonctionne bien je rajouterai en première page.

Graphiques_V4.2.vfib

Lien vers le commentaire
Partager sur d’autres sites

Salut Lazer! impec une version compatible v3 et v4  :60:

 

Je viens de l'installer vite fait, je suis de sortie ce soir j'ai pas eu le temps d'analyser les erreurs ;-) les voilà  brut de fonderie:

 

Battery:

[DEBUG] 18:55:53: v3
[DEBUG] 18:55:53: 9 EZMotion Salon 91%
[ERROR] 18:55:53: line 54: attempt to compare number with nil

Environnement:

[DEBUG] 18:57:55: status=404, errorCode=0, payload=/graph/data_post_light.php?id=9&value=1, response=No input file specified.
[DEBUG] 18:57:55: status=404, errorCode=0, payload=/graph/data_post_light.php?id=11&value=24, response=No input file specified.
[DEBUG] 18:57:55: status=404, errorCode=0, payload=/graph/data_post_light.php?id=27&value=0, response=No input file specified.
[DEBUG] 18:57:55: status=404, errorCode=0, payload=/graph/data_post_light.php?id=84&value=1, response=No input file specified.
[DEBUG] 18:57:55: status=404, errorCode=0, payload=/graph/data_post_light.php?id=86&value=0, response=No input file specified.

Lien vers le commentaire
Partager sur d’autres sites

@Lazer,

Encore une fois tu as montré ta crédibilité. C'est formidable.

Je suis en HC2 version 4.031, J'ai implémenté ton nouveau code;

Voici les résultats:

 

Environnement:

[DEBUG] 21:01:31: status=, errorCode=1, payload=/graph/data_post_light.php?id=9&value=44.00, response=

Battery:

[DEBUG] 20:25:43: v4
[DEBUG] 20:25:43: 54 Main_Zwave_Device 100%
[DEBUG] 20:25:43: 59 Main_Zwave_Device 100%
[DEBUG] 20:25:43: 64 Main_Zwave_Device 70%
[DEBUG] 20:25:43: 69 Main_Zwave_Device 62%
[DEBUG] 20:25:43: 77 Main_Zwave_Device 100%

Devices:

[DEBUG] 20:25:57: v4
[DEBUG] 20:25:57: 5 5 Temp-Etage Hall-Etage
[DEBUG] 20:25:57: /graph/device_post.php?id=5&type=temperature&name=Temp-Etage&roomid=1&roomname=Hall-Etage
[DEBUG] 20:25:57: 6 6 Lumix-Etage Hall-Etage
[DEBUG] 20:25:57: /graph/device_post.php?id=6&type=light&name=Lumix-Etage&roomid=1&roomname=Hall-Etage
[DEBUG] 20:25:57: 8 8 Temp-REZ Entrée-Rez
[DEBUG] 20:25:57: /graph/device_post.php?id=8&type=temperature&name=Temp-REZ&roomid=3&roomname=Entrée-Rez
[DEBUG] 20:25:57: 9 9 Lumix-REZ Entrée-Rez
[DEBUG] 20:25:57: /graph/device_post.php?id=9&type=light&name=Lumix-REZ&roomid=3&roomname=Entrée-Rez
[DEBUG] 20:25:57: 10 12 Temp-Salle de Bain Salle-de-Bain
[DEBUG] 20:25:57: /graph/device_post.php?id=12&type=temperature&name=Temp-Salle%20de%20Bain&roomid=16&roomname=Salle-de-Bain
[DEBUG] 20:25:57: 11 13 Hum-Salle de Bain Salle-de-Bain
[DEBUG] 20:25:57: /graph/device_post.php?id=13&type=humidity&name=Hum-Salle%20de%20Bain&roomid=16&roomname=Salle-de-Bain
[DEBUG] 20:25:57: 15 20 Temp_OpenDoor_REZ Salle-à %20-Manger
[DEBUG] 20:25:57: /graph/device_post.php?id=20&type=temperature&name=Temp_OpenDoor_REZ&roomid=8&roomname=Salle-à %20-Manger
[DEBUG] 20:25:57: 17 24 Energie Bureau Bureau

Pas d'affichage au niveau du debugg "power" et "trend".

 

Personnellement, je ne sait pas comment interpréter les résultats du debugg.

Mais si je regarde dans la base de données, il y a des écritures pour le "Power" , "humidité" et pour "Battery" et effectivement seuls les graphs de Power, Humidité et Battery, montrent un avancement.

 

Par contre j'ai deux questions:

1. Quel est le rôle des boutons qui s'affichent sur le virtual device? Par exemple, l'appui sur le bouton "trend" permet de générer instantanément les graphs ou c'est pour les debugg?

2. J'ai remarqué que de nouveaux noms ce sont affichés dans les graphiques (l'exemple flagrant est la remontée de la température liée au module de détection de fumée)

Est ce qu'il y aura un soucis dans la base de données si on renomme ce module?

de même que d'autres indications du style "Main_Zwave_Device" peut t'on les renommer pour que ça soit plus parlant?

 

Merci d'avance pour tes réponses.

Lien vers le commentaire
Partager sur d’autres sites

Merci les gars pour vos retours :)

 

 

@clarkkent609 :

 

  • Battery: ça ressemble à  un petit bug de ma part, je corrigerai dans la prochaine version.

 

  • Environnement: le message d'erreur "No input file specified" semble être lié à  Nginx et PHP d'après Google. Comme je n'ai aucune expérience sur Nginx, il va falloir que tu cherches sur le net, il semble que Nginx n'aime pas trop les appels d'URL avec passage d'arguments à  l'ancienne (avec des ? et des &). Regarde si tu peux trouver la bonne configuration à  appliquer.

 

 

@forumAD :

 

  • Environnement: je suppose que tu n'as pas le fichier data_post_light.php sur le serveur Web, surement parce que tu as appliqué à  la lettre le contenu du tuto en première page, dans lequel je n'ai jamais détaillé comment ajouter les mesure de luminosité. C'est expliqué quelques pages plus loin. En attendant que je mette complètement à  jour le tuto, tu peux juste ignorer cette erreur, simplement tu n'auras pas les graphs de luminosité, mais ça ne devrait pas gêner le bon fonctionnement du script.

 

  • Battery: tout va bien

 

  • Devices: tout va bien

 

  • power et trend: tout va bien

 

  • interpréter les résultats du debug : pour faire simple, quand c'est écrit en blanc, c'est que c'est juste du debug pour suivre le bon déroulement du script. Quand c'est écrit en rouge, c'est qu'il y a une erreur (comme dans ton bouton environnement)

 

  • Question n°1 : tous les boutons sont appelés par la scène que tu as dà» créé si tu as suivi le tuto. En gros, les 3 premiers boutons servent à  enregistrer les valeurs, le 4ème bouton 'Device' sert à  mettre à  jour la liste des devices dans la base, et le 5ème bouton "trend" sert à  générer les graphiques "historiques" à  long terme. Au début ce n'est pas très utile, mais quand tu auras plusieurs semaines/mois/années de données, tu verras c'est sympa.

 

  • Question n°2 : Tu peux renommer un module, normalement les pages PHP savent s'adapter, et tu verras le nom du module se mettre à  jour. Tu peux même le changer de pièce. Quant au "Main_Zwave_Device", normalement tu ne devrais pas le voir apparaitre dans les graphs, non ?
Lien vers le commentaire
Partager sur d’autres sites

@Lazer, Merci bien pour tes explications;

 

La nuit a été bonne. J'ai ouvert ce matin le dashboard des graphs, et à  ma grande surprise il n' y avait pas d'avancement des graphs depuis.

Mais j'ai cliqué sur chaque bouton et surprise tout s'est affiché.

Est ce que c'est voulu qu'il faut chaque fois appuyer sur les bouton avant de valider la mise à  jour des graphiques?

Selon tes explications plus haut, on devrait donc appuyer chaque fois sur ces 3 boutons (Environnement, Power, Battery) avant d’enregistrer les valeurs dans la base de données et valider l'affichage des graphs?

Dans ce cas, si on ne clique pas sur ces boutons pendant plusieurs jours, qu'est ce qui se passe? on perdra des valeurs après une semaine?

 

Concernant  les "Main_Zwave_Devices" moi je les vois s'afficher dans la légende du graphs "Battery" ---> voir fichier attaché

 

Pour le Lumix, je vais essayer de voir dans tout le tuto, comment je devrais l'intégrer ce "data_post_light"

 

post-1368-0-48083200-1421567379_thumb.jpg

Lien vers le commentaire
Partager sur d’autres sites

@forumAD: il faut que tu mettes àjour la scène associée expliquée en 1ère page. C'est elle qui clique automatiquement sur les boutons, et donc il faut que désormais tu la fasses pointer vers ton nouvel ID du virtual device réinjecté ;-)

@Lazer: merci pour l'info, je vais regarder comment il est possible de contourner cela et te fais un retour quand j'ai trouvé :-)

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...