CM119 Getinfo

Comment interfacer la Zibase avec Homeseer ? Comment programmer votre Zibase avec un script ? Comment capturer les informations de la Zibase ...

CM119 Getinfo

Messagede jeromedu44 » 19 Oct 2011, 15:11

Bonjour
je voudrais bien récupérer, pour un dev en php, les infos concernant le CM119 (consommation électrique) comme le nombre de KW de la journée, enfin les info que l'on peut voir sur l'écran LCD.

Des idées ou des sites ?

Merci
jeromedu44
Membre Actif
 
Messages: 12
Inscription: 04 Oct 2011, 10:33

Publicité

La publicité est nécessaire car elle permet de pérenniser ce site, son hébergement, ses contributions ... Vous pouvez aussi faire un don pour le soutenir (cliquez sur ce texte). Pensez aux revues que vous économisez en lisant régulièrement Touteladomotique.com ...

Publicité
 

Re: CM119 Getinfo

Messagede Guillaume.C » 19 Oct 2011, 16:21

jeromedu44 a écrit:Bonjour
je voudrais bien récupérer, pour un dev en php, les infos concernant le CM119 (consommation électrique) comme le nombre de KW de la journée, enfin les info que l'on peut voir sur l'écran LCD.

Des idées ou des sites ?

Merci


Tu peux récuperer les deux valeurs Conso Totale et Conso en Cours en I0 et I1 en te basant sur le sdk php et la methode GetsensorfromInternet

Pour le reste des infos affichées sur le LCD je ne pense pas que cela soit possible puisque la Zibase ne les gère pas.

guillaume
Avatar de l’utilisateur
Guillaume.C
Dieu de domotique
 
Messages: 202
Inscription: 29 AoĂ» 2010, 09:05
Localisation: Paris

Messagede jeromedu44 » 19 Oct 2011, 19:25

Ca marche impec, merci....
<?php

require_once("ZiBase.php");

# Adresse IP de la zibase est nécessaire pour utiliser cette classe
$zibase = new ZiBase("xx.xx.xx.xx");


# Lire les valeurs d'une sonde Salon
$infoedf = $zibase->getSensorInfo("WSXXXXX");


print 'Consommation Instantanée : '.($infoedf[2]/10).'<br /><br />';
print 'Consommation Total KWH : '.($infoedf[1]/10).'<br /><br />';
print 'Consommation : '.($infoedf[0]/10).'<br /><br />';

?>


Du coup j'ai aussi essayé avec 0 mais il me renvoie la valeur 0,1 , je ne vois pas a quoi cela correspond ?

Resultat :
Consommation Instantanée : 1.9

Consommation Total KWH : 280.5

Consommation : 0.1
jeromedu44
Membre Actif
 
Messages: 12
Inscription: 04 Oct 2011, 10:33

Messagede Guillaume.C » 19 Oct 2011, 20:16

jeromedu44 a écrit:Ca marche impec, merci....
<?php

require_once("ZiBase.php");

# Adresse IP de la zibase est nécessaire pour utiliser cette classe
$zibase = new ZiBase("xx.xx.xx.xx");


# Lire les valeurs d'une sonde Salon
$infoedf = $zibase->getSensorInfo("WSXXXXX");


print 'Consommation Instantanée : '.($infoedf[2]/10).'<br /><br />';
print 'Consommation Total KWH : '.($infoedf[1]/10).'<br /><br />';
print 'Consommation : '.($infoedf[0]/10).'<br /><br />';

?>


Du coup j'ai aussi essayé avec 0 mais il me renvoie la valeur 0,1 , je ne vois pas a quoi cela correspond ?

Resultat :
Consommation Instantanée : 1.9

Consommation Total KWH : 280.5

Consommation : 0.1


A quoi correspond l'info [0] ? La 1 est la totale, la 2 est la en cours, je suis pas sur que la 0 renvoies quelque chose. Pour un calcul de conso quotidienne en ce qui me concerne je fais un fput de I0 a 00:00:01 dans un fichier que je retranche de la conso de I0 a 23:59:59, c'est la seule methode que j'ai touvé. Par curiosité, tu traites les resultats dans un graphique, et si oui par quelle methode ?

Guillaume
Avatar de l’utilisateur
Guillaume.C
Dieu de domotique
 
Messages: 202
Inscription: 29 AoĂ» 2010, 09:05
Localisation: Paris

Messagede jeromedu44 » 20 Oct 2011, 09:50

Bonjour
Tans pis pour le [0] , je n'en tiendrais pas compte....

Pour répondre à ta question, je stock toutes ces infos dans une base Mysql sur mon Synology pour les traiter à travers une interface Web. J'utilise les graphs de Google Chart pour créer des histogrammes avec des lignes mais aussi avec gauge (c'est plus sympa graphiquement)

Ceci dit j'ai quand même un problème de date sur les graphiques que je dois résoudre.... Le Chart Google ne m'affiche pas les date mais des chiffre. Il me semble avoir vu cela quelque part...

Cdt
jeromedu44
Membre Actif
 
Messages: 12
Inscription: 04 Oct 2011, 10:33

Messagede nono1024 » 20 Oct 2011, 11:45

Bonjour,

Je me permet de m'intégrer à la conversation car les graphes Google Chart, je ne connais pas.

L'API Google est-elle utilisable hors ligne ? Car j'utilise jpgraph qui donne des résultats satisfaisant mais je bute sur un petit problème date affiché sur les graphiques... pas tout a fait le même problème que toi.
Bref si un js de google est téléchargeable c'est simple à utiliser ?

Je stocke également dans un db mysql et je dois dire que c'est hallucinant la place que ça prend.... 1 Mo pour 5 mois de données.....
Je vais bien archiver tout ça pendant 50 ans :)
Zibase - Raspberry pi - Nas Synology - Zwave - Oregon - IPX800 - La crosse Tech
XBMC*2 - Synchro XBMC - Onkyo ISCP
nono1024
P'tit Dieu de domotique
 
Messages: 177
Inscription: 30 Juil 2010, 10:48

Messagede Simplearetenir » 20 Oct 2011, 11:59

nono1024 a écrit:Bonjour,

Car j'utilise jpgraph qui donne des résultats satisfaisant mais je bute sur un petit problème date affiché sur les graphiques...


C'est quoi on problème de date affichée ? Parce que moi je l''utilise sans probleme
Simplearetenir
P'tit Guru de domotique
 
Messages: 65
Inscription: 14 AoĂ» 2010, 17:30

Messagede jeromedu44 » 20 Oct 2011, 14:24

Voila ce que j'utilise avec Google Chart, je partage ... j'ai eu du mal à le trouver, on peut aussi utiliser d'autre graphes de Google comme les gauge pour afficher une température !

Code: Tout sélectionner
<?php require_once('config.php');
      
     //Connexion Ă  la base de donnĂ©e
    # Connection Ă  la base SQL (zibase)
    # Table : consommation
    # Champs : date, conso
   $db_link = @mysql_connect(SQL_SERVER,SQL_USER,SQL_PASS);
   mysql_select_db(SQL_BDD);
   
   function imp($char,$tag){
   foreach($char as $key=>$value){
   $char[$key] = $value;
   }
   $char = implode($tag,$char);
   return $char;
   }
   $time = time();
   $time = date("d/m",$time); // C'EST ICI, J'AI CHANGE d/m/Y pour d/m pour faire JJ/MM

   # Requete dans la table Conso
   $sql = "SELECT * FROM consommation";
   
   // on envoie la requĂŞte
      $req = mysql_query($sql,$db_link) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
   // on affiche les informations de l'enregistrement en cours
    while($row = mysql_fetch_array($req))
    {
      
      $date[] = $row[date];
      $conso[] = $row[conso];
   }
   // On rĂ©cupĂ©re la valeur la plus Ă©levĂ©e de la colonne conso
   $req1="select max(conso) from consommation";
   $res1=mysql_query($req1);
   $consomax=mysql_result($res1,0,"max(conso)");
   
   
    $params = array();
    $params[] = 'chx1=1:'. implode('|', $date);
    $params[] = 'chxr=0,0,'. ($consomax);
   $params[] = 'chxt=y,x';
    $params[] = 'chbh=a';
    $params[] = 'chs=520x140';
    $params[] = 'cht=lc';
    $params[] = 'chco=76A4FB,3D7930,FF9900';
    $params[] = 'chds=0,'. ($consomax);
   $params[] = 'chd=t:'. implode(',', $conso) .'|-1';

    $urlParams = implode('&', $params);
   
?>
      
      
      
               
            <img src="http://chart.apis.google.com/chart?<?php echo($urlParams); ?>" width="520" height="140" alt="Consommation Electrique" /></br>
            
            
   
            <?php


Les données sur la date affiche 10,20,30,40.... sur le graphe alors que dans la base Mysql j'ai : 2011-10-07 10:27:13

Je voudrais juste extraire la journée en cours. Mes relevés sont fait toutes les heures.

Si quelqu'un a une idée..

Merci
jeromedu44
Membre Actif
 
Messages: 12
Inscription: 04 Oct 2011, 10:33

Messagede nono1024 » 20 Oct 2011, 18:42

Simplearetenir a écrit:
nono1024 a écrit:Bonjour,

Car j'utilise jpgraph qui donne des résultats satisfaisant mais je bute sur un petit problème date affiché sur les graphiques...


C'est quoi on problème de date affichée ? Parce que moi je l''utilise sans probleme


Mon problème avec jpgraph (j'ai pas non plus fouillé comme un malade) :
Je récupère mes températures + EDF toutes les 5 minutes avec la date et heure du relevé.
Ce qui fait 288 relevé, et je ne sais comment dire à Jpgraph tu utilise la date et l'heure pour classer x mais tu affiches uniquement ces valeurs : 1h, 2h, 3h, 4h, 5h, 6h, 7h(...etc) sur l'abscisse.

Je sais pas si je m'exprime bien.... j'y arrive quand mĂŞme en faisant un
Code: Tout sélectionner
$graph->xaxis->SetTextTickInterval(12,10);

Donc pour les graphes journaliers ça passe, mais j'aimerais générer des graphes à la demande (via formulaires php), et la du coup je sais pas ce que ça va me génerer......On va dire que je le maitrise pas :)

@jeromedu44 : a voir le code, je dirais que jpgraph à l'air pas si mal que ça :), par contre si tu veux utiliser jpgraph et faire uniquement du journalier, j'ai mon code qu'il faudra un peu adapter car j'ai plus de relevés....
Zibase - Raspberry pi - Nas Synology - Zwave - Oregon - IPX800 - La crosse Tech
XBMC*2 - Synchro XBMC - Onkyo ISCP
nono1024
P'tit Dieu de domotique
 
Messages: 177
Inscription: 30 Juil 2010, 10:48

Messagede jeromedu44 » 21 Oct 2011, 14:59

C'est pourtant dingue ! Dans ma base SQL j'ai la date au format TIMESTAMP, en PHP si je fais un :
Code: Tout sélectionner
$sql = "SELECT date,conso FROM `consommation` WHERE date >= current_date ";


et plus loin un
Code: Tout sélectionner
echo $date;


Le résultat : 2011-10-21 14:59:03 (pour tout les enregistrement du jour)

ALORS : comment afficher QUE l'heure (pour mettre sur les axis du graphe)

Merci de vos idées
jeromedu44
Membre Actif
 
Messages: 12
Inscription: 04 Oct 2011, 10:33

Messagede nono1024 » 21 Oct 2011, 15:55

C'est normal si tu es dans le mĂŞme cas que moi tu lui dis de chercher les enregistrements date et conso de la table consommation ou date = date du jour et heure (lors de l'insertion dans ta base mysql).

Mysql ne modifie pas les enregistrements, il ne fait que sortir ce qui est enregistré à l’intérieur... sauf si bien sur il existe des commandes pour le faire mais je ne les connais pas. j'ai appris sur le tas php mysql il y a 6 mois pour faire mon site, donc je suis loin d'être un expert.

Bref il faut que tu enlèves la date pour ne garder que l'heure.
Mon script est celui-ci pour ma température(et je tiens à prévenir que certains vont saigner des yeux, j'en suis désolé :))

Code: Tout sélectionner
$req = mysql_query($sql);


On récupère le résultat de la requête, on fait ensuite un tableau pour récupérer les données de date et température.

Code: Tout sélectionner
$i=0;
while($tableau = @mysql_fetch_array($req)) {
$date_x_ext[$i] = $tableau['date'];
$temp_y_ext[$i] = $tableau['temp'];

On scinde la date récupéré avec le caractère ' ' (espacement), donc d'un coté tu aura la date du jour et de l'autre l'heure :
Code: Tout sélectionner
$time_temp = explode(' ', $date_x_ext[$i]);

On garde que la partie avec l'heure et on enlève les secondes + le ':' :
Code: Tout sélectionner
$date_x_ext[$i] = substr($time_temp[1], 0, -3);

on ferme la boucle :
Code: Tout sélectionner
$i = $i + 1;
}

et la boucle est bouclée.... \o/

Si tu ne veux garder que les heures, il faudra que tu mettes un -6 Ă  la place du -3 dans le substr()
Zibase - Raspberry pi - Nas Synology - Zwave - Oregon - IPX800 - La crosse Tech
XBMC*2 - Synchro XBMC - Onkyo ISCP
nono1024
P'tit Dieu de domotique
 
Messages: 177
Inscription: 30 Juil 2010, 10:48

Messagede jeromedu44 » 26 Oct 2011, 11:37

Je n'y arrive vraiment pas ! J'ai beau chercher sur le net et faire des essais, je n'arrive pas Ă  avoir l'heure sur l'axe X !! :( :(

Est ce que quelqu'un aurait un code complet... avec Google Chart, Jgraph, pgraph... peu importe, je m'adapterais.

Merci
jeromedu44
Membre Actif
 
Messages: 12
Inscription: 04 Oct 2011, 10:33

Suivante

Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

Copyright © 2011 - Touteladomotique.com - Tous droits réservés.