Note de ce sujet :
  • Moyenne : 3 (1 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
knxweb et base de données
#26
Super, tout marche nickel.

Un dernier truc et c'est parfais, toutes les courbes sont affichées avec °C et en titre "graphique température", hors, j'ai aussi la luminosité, valeur UV, indicateur de pluie (on/off), courant de prise... comment faut il modifier pour que se soit bien les unités de chaque valeur qui soit pris en compte dans le graphe ?
Thierry
Répondre
#27
ah oui c'est encore en chantier ... pas tout gérer complètement
moi j'ai que des température pour le moment donc je suis pas encore embêté ...

les "title" des axes sont gérés pour le moment "en dur" dans graph_highcharts.php, il faudrait qu'ils soient dynamiques ...
le problème est qu'il faudrait également des axes différents pour chaque "type" de valeur là c'est plus long ...

PS : j'ai fait un composant knx specifique qui permet d'ouviri en pop-up ça marche pas mal ... dès qu'il est ok je vous le diffuserais

@+
Anthony
Répondre
#28
@Sprint95 (thierry)

je t'ai envoyé en MP une première version d'un composant spécifique KnxWeb pour afficher en pop-up les graph avec "mes" scripts ...

PS : c'est un truc spécifique je le met a dispo sans "garanties", je ne le mettrais pas tel quel en "standard" dans KnxWeb ...

@+
Anthony
Répondre
#29
(05/09/2011, 09:05:17)Energy01 a écrit :
(04/09/2011, 20:53:03)ccaramel a écrit : Le pop-up le pop-up, on veut le pop-up ;-)
plus sérieusement, je suis intéressé par les pop-up avec knxweb pour avoir des objets de communication un peu plus sophistiqués et/ou intuitifs. Par exemple un pop-up thermostat par pièce qui permet de sélectionnes visuellement le mode et la t°C de consigne.

j'ai commencé a regarder comment faire une pop-up ...

sinon pourrais-tu détailler ton idée "d'objets de communication un peu plus sophistiqués et/ou intuitifs"
je suis preneur de toutes les propositions ...
si tu as des exemples ou même juste des idées

Oups, j'étais passé à coté de cette réponse.
Mon idée serait en gros de faire en pop-up des macros objets.
Par exemple, pour influer sur le climat d'une pièce, je devrais cliquer l'icône climat qui ouvre un pop-up dédié. Ce pop-up permettrais de changer de mode au travers d'icônes, varier les consignes, on/off clim, etc... tout cela de manière intuitive et implémentable sur interface tactile.
On peut imaginer des macros objets équivalents pour l'éclairage, les VR, le multimédia, des centralisations ou scènes courantes.
Voilà un peu l'idée de ces "pop-up sophistiques/intuitifs" même si le terme est un peu pompeux ;-)

Intégrateur Domotique et multimédias - KNX Partner n°26920 ADVANCED
http://www.ihabitation.com
Partenaire Lifedomus et SONOS
Répondre
#30
Bonjour à tous,

Message pour Anthony :
Les scripts que tu as fait pour l'affichage des graphs (il faut que je teste ta motif pour les popups), on a le choix entre plusieurs critères de durée.
Est ce que "complet" doit afficher la courbe avec toutes les data depuis le premier enregistrement dispo dans la base ?
Moi, ça m'affiche seulement ceux depuis le début du jour.

Sinon, c'est génial comme outils, j'ai pu constater comment mes sondes oregon branchées à Varuna déconnent complètement !!! Genre UV = 150 ou des temps à -38°....
Bref, oregon, pas fiable !!! Je vais tout remplacer en 1 wire ou sone KNX (zenio quad me parait pas mal...)

@+
Thierry
Répondre
#31
je comprends rien....

mais zennio quad + 4 sondes de t° ca marche nickel bien!

hyper précis et super réactif, et pas "si cher" que ca...
90€ le quad et 10€ la sonde...ca fait donc du 30€ par sonde en tout...
Répondre
#32
Salut,

en fait pour la durée il y a "complet" = la journée depuis "minuit" / "24h" 24 heures "glissants" / "48h" 48 heures "glissants"
"7jours" les 7 dernier jours depuis minuit / "semaine" les 168 derniers heures "glissants"

je n'ai pas fait plus pour le moment ... plus on ajoute de données plus le chargement est long
pour des périodes plus longues le mieux est de faire des calculs "moyen" pas besoin d'une précision de 5 minutes pour les données sur 1 mois
par contre de "superposer" des journées exemple hier et ajourd'hui ou même le même jour l'année précédente peut être pas mal mais idem pas encore pris le temps de faire ça ...

@+
Anthony
Répondre
#33
Bonjour,

Tout comme vous je stocke mes données issus du bus KNX dans une base de donnée. J'utilise la librairie highcharts de javascript pour réaliser mes courbes de température, malheureusement je n'arrive pas à récupérer mes températures de ma base de donnée pour les exploiter grâce à mon graphique.

Pourriez vous m'éclairez ?

Cordialement

PS : je ne sais pas si ce forum est encore actif.
Répondre
#34
Bonjour Iris,

par quelle moyen stock tu tes infos dans mysql ?
utilises-tu linknx et les log mysql ?

pour pouvoir t'aider il faudrait un peu plus d'infos sur la base la structure et le format des données
puis savoir ce que tu as fais et ce qui te bloque exactement
arrive tu a avoir des graphs d'autres "type" de données ?

@+
Anthony.


PS : si toujours actif a ma connaissance
Répondre
#35
Sad 
Merci de répondre aussi vite à mon message.

Pour l'instant mes données sont remplies aléatoirement grâce au logiciel Data Generator for MySQL.
J'ai un bout de code tout simple en php qui me permet de récupérer ces données, tout fonctionne, je me suis dis que je pouvais mettre ce bout de code dans du java script pour récupérer les données.. Je vous montre mon bout de code..

Code PHP :
<?php
                $host 
"localhost";
                
$user "root";
                
$password "";
                
$bdd "base_test";
                
                
//Connexion au serveur
                
mysql_connect("localhost","root","") or die("Impossible de se connecter");;
                
                
mysql_select_db("base_test") or die("Impossible de trouver la base");

                
$result mysql_query("SELECT * FROM table_mesure");
                
$nblignes mysql_numrows($result);    

                    echo 
"TEST TEMPERATURE<br><br>";
                    
                    for (
$i=0;$i<$nblignes;$i=$i+1
                    {
                        
$valeur mysql_result($result,$i,"valeur");
                        
                        echo 
"$valeur, ";
                    }
                                    
                    
mysql_close();
                
                
?>

Ce code me permet donc de récupérer mes températures sous cette forme : -4, 6, 3, 15, -2 et je l'ai donc "incorporé" dans mon code javascript :

Code :
series: [{
         name: 'Capteur 1',
         data: [<?php
                $host = "localhost";
                $user = "root";
                $password = "";
                $bdd = "base_test";
                
                //Connexion au serveur
                mysql_connect("localhost","root","") or die("Impossible de se connecter");;
                
                mysql_select_db("base_test") or die("Impossible de trouver la base");

                $result = mysql_query("SELECT * FROM table_mesure");
                $nblignes = mysql_numrows($result);    

                    echo "TEST TEMPERATURE<br><br>";
                    
                    for ($i=0;$i<$nblignes;$i=$i+1)
                    {
                        $valeur = mysql_result($result,$i,"valeur");
                        
                        echo "$valeur, ";
                    }
                    
                    echo "</table>";
                    
                    mysql_close();
                
                ?>]
      }, {
         name: 'Capteur 2',
         data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
      }, {
         name: 'Capteur 3',
         data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
      }

Je pense que cela ne fonctionne pas car on ne peut pas ajouté du php à du JS comme çela.. Enfin, je ne suis pas sur du tout..
Répondre
#36
Non, tu ne peux pas faire ça. Il faut passer par des appels à XMLHttpRequest. Mais regarde des choses de plus haut niveau, comme Ajax ; tu te feras moins ch... !
Répondre
#37
Ah d'accord, je vais me renseigner sur XMLHttpRequest.. Moi qui ne suis pas doué en programmation, je suis servi Smile
Répondre
#38
il y a plusieurs points les bases déjà :

le javascript est réçu par le navigatuer (IE, FF, chrome, ...) et ensuite ce navigateur l'interprète
et le php c'est le "serveur" qui execute le script cela n'a rien a voir tu peux pas "malanger" du php dans du javascript
par contre dans une page générée en php tu peux mettre du javascript qui sera interpréter par le navigateur

ton besoin donc remonter dans une page web (pas knxweb a priori ?) le code Js (Javascript) pour highcharts
puis également les valeurs à afficher dans la courbe soit tes températures

il y a donc éventuellement 2 méthodes :
- via ajax comme le dit fma38, ayant jquery de charger je te préconise si tu choisi cette solution , d'utilise jquery.ajax(...) de la doc en fr : http://www.jquery-fr.com/
- ou sinon plus simplement générer ta page en php en incluant le code highcharts et les valeurs récupérée de ta base
soit combiner tes 2 code et ne faire que 1 seul "graph.php" par exemple (solution la plus simple ...)

@+
Anthony.
Répondre
#39
Doit bien y avoir des exemples dans la librairie highcharts, non ? C'est un cas très courant.
Genre :

http://stackoverflow.com/questions/37227...arts-mysql
Répondre
#40
La librairie HighCharts est en anglais et je vous avoue que ce n'est pas mon point fort ! Smile Peut être qu'il y a des info dessus que je n'ai pas vu, il faut que je m'y mette dedans à fond.

Je vais tester la deuxième solution que propose Anthony, car en effet il me faut quelque chose de simple..
Répondre
#41
l'exemple donné par Frédéric (fma38) devrait t'aider ...

sinon si tu utilise knxweb, la nouvelle version, j'ai fais un composant "charts" qui est dispo sur le cvs
encore en dev ça peut être amener à évoluer mais ça permet de tester et d'avoir des graphs assez sympa
marche que l'on soit avec log des objects dans une base mysql mais aussi sous forme de fichiers à plat

@+
Anthony.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)