Bonsoir j'ai bien un probleme de base de données RRDtool. Je vais essayer de m’exprimer correctement pour que vous compreniez mes soucis.
Je veux enregistrer ma consommation d’eau dans une BD,j’interroge mon compteur toutes les 15 minutes, et ensuite je veux faire des Graph à bar.
Le poids de l’impulsion de mon compteur = 100 litres d’eau, (1=100) actuellement il a la valeur de 74000 Litres.
Pour faire ma base de données, et mon graph, je suis partie sur la fonction GAUGE, avec ces valeurs
rrd_format="{:.0f}"
rrd_dst="GAUGE"
rrd_heartbeat=600,
rrd_min='U'
rrd_max='U'
RRA:AVERAGE:0.5:1:288
RRA:AVERAGE:0.5:6:336
RRA:AVERAGE:0.5:24:372
RRA:AVERAGE:0.5:144:732
RRA:MIN:0.5:1:288
RRA:MIN:0.5:6:336
RRA:MIN:0.5:24:372
RRA:MIN:0.5:144:732
RRA:MAX:0.5:1:288
RRA:MAX:0.5:6:336
RRA:MAX:0.5:24:372
RRA:MAX:0.5:144:732
rrd_exports_xml start step fin_fichier
now-24h 900, "24h.xml" # … sur 24 heures
now-48h" 1800, "48h.xml" # … sur 48 heures
now-8d" 3600, "1w.xml" # … sur 1 semaine
now-1month" 14400, "1m.xml" # … sur 1 mois
now-3month" 28800, "3m.xml" # … sur 3 mois
now-1y", 43200, "1y.xml" # … sur 1 an
],
Est ce la bonne solution?
Voilà le Graph que j’obtiens.
La valeur de départ était à 74000 Litres à 18h15, Apres, il n’y a pas eu de consommation d’eau.
Pourquoi les barres du graph continu à être affiché avec la même valeur (7400) ? Comment faire pour avoir une barre a 7400, 7500, 7600, 7700, etc.
Pourquoi l’axe Y indique les valeurs 0k, 20k, 40k, 60k, 80k, 100k ?
Bonjour Néox , je suis en vacance 15 jours , un peux de calme , je me replonge dans ton projet.
Tu a viser juste, Est ce que çà ne viens pas de ma BD RRDTOOL ??? c'est la question que je me pose depuis pas mal de mois. Est ce qu'elle est bien créer ??
Quand je vais fouillez dans ma base de donnée en faisant rrdtool dump data_DS2423.rrd
voila ce que j'ai .
<!-- 2015-07-24 02:00:00 CEST / 1437696000 --> <row><v>2.3148148148e-03</v></row>
<!-- 2015-07-25 02:00:00 CEST / 1437782400 --> <row><v>1.1574074074e-03</v></row>
<!-- 2015-07-26 02:00:00 CEST / 1437868800 --> <row><v>1.1574074074e-03</v></row>
<!-- 2015-07-27 02:00:00 CEST / 1437955200 --> <row><v>4.9710270787e+04</v></row>
<!-- 2015-07-28 02:00:00 CEST / 1438041600 --> <row><v>1.1574074074e-03</v></row>
<!-- 2015-07-29 02:00:00 CEST / 1438128000 --> <row><v>2.3148148148e-03</v></row>
<!-- 2015-07-30 02:00:00 CEST / 1438214400 --> <row><v>4.9710271944e+04</v></row>
<!-- 2015-07-31 02:00:00 CEST / 1438300800 --> <row><v>1.1574074074e-03</v></row>
<!-- 2015-08-01 02:00:00 CEST / 1438387200 --> <row><v>4.9710270787e+04</v></row>
<!-- 2015-08-02 02:00:00 CEST / 1438473600 --> <row><v>2.3148148148e-03</v></row>
<!-- 2015-08-03 02:00:00 CEST / 1438560000 --> <row><v>4.9710269630e+04</v></row>
<!-- 2015-08-04 02:00:00 CEST / 1438646400 --> <row><v>1.1574074074e-03</v></row>
<!-- 2015-08-05 02:00:00 CEST / 1438732800 --> <row><v>1.1574074074e-03</v></row>
<!-- 2015-08-06 02:00:00 CEST / 1438819200 --> <row><v>2.3148148148e-03</v></row>
<!-- 2015-08-07 02:00:00 CEST / 1438905600 --> <row><v>2.3148148148e-03</v></row>
<!-- 2015-08-08 02:00:00 CEST / 1438992000 --> <row><v>1.1574074074e-03</v></row>
<!-- 2015-08-09 02:00:00 CEST / 1439078400 --> <row><v>2.3148148148e-03</v></row>
<!-- 2015-08-10 02:00:00 CEST / 1439164800 --> <row><v>1.1574074074e-03</v></row>
Merci TheBreton pour ton aide mais , excuse moi je ne comprend pas ce que veux dire (le fichier de log destination est codé en dur).
Afin de ne pas tout cassé j'ai créer un fichier hist-CPT2 a partir de mon hist-CPT ( j'ai bien sur modifier les lignes 89 et 90 de ton script avec hist-CPT2)
j'ai lancé le fichier en console de cette maniere
python 11.py
Aucune erreur , mais rien ne va s’écrire dans hist-CPT2
Pour être honnête , je souhaiterais trouver une personne qui me modifie le code , car je ne sais pas le faire et j'ai peur de tout faire planter.
J'ai oublier de dire que je récupère les valeurs du fichier txt pour faire une page Web avec 3 Bar graph (Journalier ,Mensuel ,annuel )
Il y a quelques mois j’ai essayé de le faire une BD rddtool mais je n'ai pas trouver la solution .
Bonjour oyoun j'ai un autre script qu'un membre du forum m'avait fait il y a quelques mois qui écrit dans une BD RDDTool , la BD se remplie bien mais impossible d'exploité ensuite les données , c'est pour cela que je veux repartir avec mon fichier txt
Mon niveau de programmation est très très bas !!!
Ce code n'est pas de moi c'est un ami qui me l'a fait il y a 2 ans quand j’avais commencé un projet de domotique sur un raspberry .
Toute la partie électronique est de moi, et la partie programmation c’était lui.
j'essaye donc de me débrouillé au mieux avec mes faibles connaissance .
File "readDHT22T.py", line 90
if s1 = '---' or s2 == '---':
^
SyntaxError: invalid syntax
#creation du fichier modulus#try:ifTrue:cla=get_c_locale_abbrev()s1=validatePrint(temperature)s2=validatePrint(humidity)ifs1='---'ors2=='---':old=open(Link_histEXT).read().split('/')# Pas propre, mais rapide.s1=old[1]s2=old[2]sfile=open(Temp_histEXT,'w')sfile.write(cla+" /"+s1+"/"+s2+"/1\n")sfile.close()subprocess.Popen(["/bin/ln","-fs",Temp_histEXT,Link_histEXT])#creation du link os.symlink ne marche pas si le fichier est déja linké#os.symlink(Temp_histEXT,Link_histEXT)subprocess.Popen(["/bin/ln","-fs",Temp_histEXT,Link_histEXT])#except:# print("unable to create {}".format(Temp_histEXT))
Bonsoir et merci lolop pour ton aide , j'ai oublier encore d'expliquer quelques chose !! Ma sonde capte a la fois la température et l'humidité . C'est du tout ou rien si la lecture échoue pour la température elle échoue aussi pour l'humidité (Absence automatiquement des 2 valeurs).
C'est pour cela que je ne comprend pas quoi et comment adapter ici ??
Je me suis mal exprimé , de temps en temps l’interrogation de ma sonde DHT22 échoue et je me retrouve avec comme écriture dans hist-EXT cela
Sun Jun 14 09:20:07 2015 /---/---/1 (aucune valeur)
ce fichier est créé avec un modulus % 5 de la minute.
Donc 5 fichier en alternance et le dernier sera un link sur hist-EXT
hist-EXT0.txt
hist-EXT1.txt
hist-EXT2.txt
hist-EXT3.txt
hist-EXT4.txt
je voudrais que si la lecture échoue hist-EXT se remplisse avec un des 5 fichiers qui a les valeurs .
Merci GnunuX mais le résultat attendu n'est pas la !! (ce que j'ai oublier de dire),les valeurs de ce fichier Temp_histEXT sont récupéré par un autre script donc ça ne colle pas
Voila ce que j'ai maintenant dans Temp_histEXT
Sun Jun 14 09:15:04 2015 /16.9/69.6/1
Sun Jun 14 09:20:07 2015 /---/---/1
Sun Jun 14 09:25:06 2015 /---/---/1
Sun Jun 14 09:30:06 2015 /---/---/1
Bonsoir , je reviens vers vous pour vous demander une fois de plus de l'aide , j'ai beau chercher dans tous les sens il y a un truc qui cloche au niveau de ma BD compteur d'eau ,
voila ce que j'ai mis pour faire ma Base de donnée compteur eau
j'ai interrogé ma base avec cette commande en console rrdtool dump data_DS2423 | less
Et voila la réponse ,
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rrd SYSTEM "http://oss.oetiker.ch/rrdtool/rrdtool.dtd">
<!-- Round Robin Database Dump -->
0003
300 <!-- Seconds -->
1431367207 <!-- 2015-05-11 20:00:07 CEST -->
<ds>
<name> CE1 </name>
<type> ABSOLUTE </type>
<minimal_heartbeat>600</minimal_heartbeat>
<min>0.0000000000e+00</min>
<max>1.0000000000e+00</max>
<!-- PDP Status -->
<last_ds>59800</last_ds>
<value>NaN</value>
<unknown_sec> 7 </unknown_sec>
</ds>
<!-- Round Robin Archives -->
<rra>
<cf>AVERAGE</cf>
<pdp_per_row>1</pdp_per_row> <!-- 300 seconds -->
<params>
<xff>0.0000000000e+00</xff>
</params>
<cdp_prep>
<ds>
<primary_value>NaN</primary_value>
<secondary_value>NaN</secondary_value>
<value>NaN</value>
<unknown_datapoints>0</unknown_datapoints>
</ds>
</cdp_prep>
<database>
<!-- 2015-05-11 18:05:00 CEST / 1431360300 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:10:00 CEST / 1431360600 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:15:00 CEST / 1431360900 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:20:00 CEST / 1431361200 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:25:00 CEST / 1431361500 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:30:00 CEST / 1431361800 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:35:00 CEST / 1431362100 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:40:00 CEST / 1431362400 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:45:00 CEST / 1431362700 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:50:00 CEST / 1431363000 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:55:00 CEST / 1431363300 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:00:00 CEST / 1431363600 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:05:00 CEST / 1431363900 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:10:00 CEST / 1431364200 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:15:00 CEST / 1431364500 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:20:00 CEST / 1431364800 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:25:00 CEST / 1431365100 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:30:00 CEST / 1431365400 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:35:00 CEST / 1431365700 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:40:00 CEST / 1431366000 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:45:00 CEST / 1431366300 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:50:00 CEST / 1431366600 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:55:00 CEST / 1431366900 --> <row><v>NaN</v></row>
<!-- 2015-05-11 20:00:00 CEST / 1431367200 --> <row><v>NaN</v></row>
</database>
AVERAGE
6 <!-- 1800 seconds -->
<params>
<xff>0.0000000000e+00</xff>
</params>
<cdp_prep>
<ds>
<primary_value>NaN</primary_value>
<secondary_value>NaN</secondary_value>
<value>0.0000000000e+00</value>
<unknown_datapoints>0</unknown_datapoints>
</ds>
</cdp_prep>
<database>
<!-- 2013-05-11 08:30:00 CEST / 1368253800 --> <row><v>NaN</v></row> je ne comprend pas 59800 ce matin avant de partir au travail j'avais 59600 2 impulsions du compteur sont passé pour mettre 59800 pourquoi j'ai toujours NaN a chaque interrogation ?
Je suis toujours au meme point , pour mes derniers essais je suis repassé a Gauge avec ces valeurs
rrd_heartbeat=3600, rrd_min=0, rrd_max=1,
la valeur mini acceptée est de: 0 et la valeur maxi de:1 Je ne sais pas si ça fonctionne comme çà je dit a ta base de considérer comme bonne toute valeur comprissent entre 0 et 1 car 1 = 100L
Bonjour Eric ,je viens de verifier effectivement j'ai toujours cette valeur NaN
Comment faut'il bien configurer ce heartbeat ?
Est ce que la fonction COUNTER est bien adapté ?
car il y a COUNTER,GAUGE,DERIVE,ABSOLUTE ou COMPUTE ?
Un autre truc bizard quand j'ai regardé ma BD avec rrdtool dump fic.rrd elle commence le 13 03 2015 alors que je l'ai créer le 01 05 2015
<!-- 2015-03-13 01:00:00 CET / 1426204800 --> NaNNaNNaN
Merci a tous Super ça fonctionne .
J'ai bricolé ce code que j'ai posté , pour essayé de comprendre le fonctionnement de la création et de l’écriture du fichier histINT.
je pensais pouvoir me débrouiller seul pour adapter ça a mon fichier howonpi .Mais ce n'est pas du tout le cas .
sensorInfo n'est pas bon , je récupère trop d'information .
Sat Apr 25 13:10:04 2015 /[['TDS1', '28-000005239592', 'T\xb0Interieure', 19.0]]
#!/usr/bin/env python# -*- coding: utf-8 -*-""" Scan all sensors from DS18B20.conf store data into rrdtool database export chart data """importlocaleimportdatetimeimporttimeimportsubprocessimportosimportsysimportshleximportDS18B20fromreimportsearchDS=DS18B20.DS18B20()#fonction pour changer le language de la date en anglaisdefget_c_locale_abbrev():lc=locale.setlocale(locale.LC_TIME)try:locale.setlocale(locale.LC_TIME,"C")returntime.strftime("%a %b %d %H:%M:%S %Y")finally:locale.setlocale(locale.LC_TIME,lc)#first read configuration to get DS18B20 ID and label infotry:fileH=open("/home/www/Graph/DS18B20.conf")text=fileH.read()fileH.close()sensorInfo=[s.strip().split(',')forsintext.splitlines()]except:print("Unable to read 'DS18B20.conf'")quit()NumberOfSensor=len(sensorInfo)ifNumberOfSensor==0:print("No sensor in configuration file 'DS18B20.conf'. Exit!")quit()#get Temperature of each sensor#add add it up into the sensor InfoforiinsensorInfo:i.append(DS.read(i[1]))#let's update the current status file#if the value is None just put ---defvalidatePrint(value):ifvalue==None:return"---"else:return"{}".format(value)#if the value is None tell rrdtool that the value is unknowndefvalidateRRD(value):ifvalue==None:return":U"else:return":{}".format(value)''' ********** Ici c'estlefichierhist-INTcefichierestcrééavecunmodulus%5delaminute.Donc5fichierenalternanceetledernierseraunlinksurhist-INTpourpermettred'utiliser hist-INT sans avoir de problème de lecture lorsque le fichier ce fait écrire '''#current timecurrent_time=datetime.datetime.now()histINT="/home/www/logs/hist-INT"#Nom des fichierTemp_histINT=histINT+"{}".format(current_time.minute%5)+".txt"Link_histINT=histINT+".txt"#creation du fichier modulus#try:ifTrue:sfile=open(Temp_histINT,'w')sfile.write(get_c_locale_abbrev()+" /"+validatePrint(sensorInfo))sfile.close()#creation du link os.symlink ne marche pas si le fichier est déja linké#os.symlink(Temp_histINT,Link_histINT)subprocess.Popen(["/bin/ln","-fs",Temp_histINT,Link_histINT])#except:# print("unable to create {}".format(Temp_histINT)) webdata="/home/www/Graph/webdata/"currentStatus=webdata+"DS18B20Status.txt"try:sfile=open(currentStatus,'w')forsensorinsensorInfo:sfile.write(sensor[0])sfile.write(","+sensor[1])sfile.write(","+sensor[2])sfile.write(","+validatePrint(sensor[3])+"\n")sfile.close()except:print("unable to create '/home/www/Graph/webdata/DS18B20Status.txt'")#now let's insert the result into rrdtool databasefileRrdTool="/home/www/Graph/data_DS18B20.rrd"#let's fill the command line with the #Current time (Right now)rdata="N"#add the sensors resultforsensorinsensorInfo:rdata=rdata+validateRRD(sensor[3])#now update the databasesubprocess.Popen(["/usr/bin/rrdtool","update",fileRrdTool,rdata])#data Extraction to create data point for the charts.#create a function with start and step parameters#this way we could create chart with different timingdefrrdExport(start,step,XMLfile):texte="rrdtool xport -s {0} -e now --step {1} ".format(start,step)#let's populate for each sensorforiinrange(NumberOfSensor):texte+="DEF:{}={}:{}:AVERAGE ".format(chr(ord('a')+i),fileRrdTool,sensorInfo[i][0])texte+="XPORT:{}:""{}"" ".format(chr(ord('a')+i),sensorInfo[i][2])fileout=open(webdata+XMLfile,"w")args=shlex.split(texte)subprocess.Popen(args,stdout=fileout)fileout.close()# ok extact 3 hours datarrdExport("now-3h",300,"temperature3h.xml")#ok 24 hoursrrdExport("now-24h",900,"temperature24h.xml")#ok 48 hoursrrdExport("now-48h",1800,"temperature48h.xml")#ok 1 weekrrdExport("now-8d",3600,"temperature1w.xml")#ok 1 monthrrdExport("now-1month",14400,"temperature1m.xml")#ok 3 monthrrdExport("now-3month",28800,"temperature3m.xml")#ok 1 yearrrdExport("now-1y",43200,"temperature1y.xml")#ok just print on the screen what we haveforsensorinsensorInfo:print("{}:{}".format(sensor[2],validatePrint(sensor[3])))#done
Posté par b.gwen .
En réponse au message Ecriture fichier txt.
Évalué à 1.
Dernière modification le 25 avril 2015 à 08:44.
Bonjour Neox , ce n'est pas le probleme de l'espace entre l'année et la valeur de température qui m'interpelle mais cette valeur 19.8853333333, ce que je veux obtenir dans mon fichier est 19.8
[^] # Re: au hasard
Posté par b.gwen . En réponse au message Highcharts probleme valeurs y Axis. Évalué à 1.
Je comprend ce qu'il faut faire ,et comment fonctionne mon fichier ,mais encore une fois , ne sachant pas coder je vous demande de l'aide .
Actuellement pour créer ma BD compteur (data_DS2423.rrd) j'utilise une valeur 'ce'
Cette valeur 'ce' me sert aussi pour créer le fichier DS2423Status.txt ainsi que le fichier hist-CPT.txt .
Il faut donc conserver cette valeur et en créer une autre (conso) a partir de cette valeur 'ce' .
conso=ce-cep
Ou trouver cep ??
Mon fichier a été fait par un membre du forum , n'ayant pas son autorisation je peux le poster sur le forum
PS je vous l'ai envoyé par Mail NeoX
[^] # Re: au hasard
Posté par b.gwen . En réponse au message Highcharts probleme valeurs y Axis. Évalué à 1.
Bonsoir j'ai bien un probleme de base de données RRDtool. Je vais essayer de m’exprimer correctement pour que vous compreniez mes soucis.

Je veux enregistrer ma consommation d’eau dans une BD,j’interroge mon compteur toutes les 15 minutes, et ensuite je veux faire des Graph à bar.
Le poids de l’impulsion de mon compteur = 100 litres d’eau, (1=100) actuellement il a la valeur de 74000 Litres.
Pour faire ma base de données, et mon graph, je suis partie sur la fonction GAUGE, avec ces valeurs
rrd_format="{:.0f}"
rrd_dst="GAUGE"
rrd_heartbeat=600,
rrd_min='U'
rrd_max='U'
RRA:AVERAGE:0.5:1:288
RRA:AVERAGE:0.5:6:336
RRA:AVERAGE:0.5:24:372
RRA:AVERAGE:0.5:144:732
RRA:MIN:0.5:1:288
RRA:MIN:0.5:6:336
RRA:MIN:0.5:24:372
RRA:MIN:0.5:144:732
RRA:MAX:0.5:1:288
RRA:MAX:0.5:6:336
RRA:MAX:0.5:24:372
RRA:MAX:0.5:144:732
rrd_exports_xml start step fin_fichier
now-24h 900, "24h.xml" # … sur 24 heures
now-48h" 1800, "48h.xml" # … sur 48 heures
now-8d" 3600, "1w.xml" # … sur 1 semaine
now-1month" 14400, "1m.xml" # … sur 1 mois
now-3month" 28800, "3m.xml" # … sur 3 mois
now-1y", 43200, "1y.xml" # … sur 1 an
],
Est ce la bonne solution?
Voilà le Graph que j’obtiens.
La valeur de départ était à 74000 Litres à 18h15, Apres, il n’y a pas eu de consommation d’eau.
Pourquoi les barres du graph continu à être affiché avec la même valeur (7400) ? Comment faire pour avoir une barre a 7400, 7500, 7600, 7700, etc.
Pourquoi l’axe Y indique les valeurs 0k, 20k, 40k, 60k, 80k, 100k ?
Merci d’avance pour votre aide .
[^] # Re: au hasard
Posté par b.gwen . En réponse au message Highcharts probleme valeurs y Axis. Évalué à 1. Dernière modification le 12 août 2015 à 18:00.
Bonjour Néox , je suis en vacance 15 jours , un peux de calme , je me replonge dans ton projet.
Tu a viser juste, Est ce que çà ne viens pas de ma BD RRDTOOL ??? c'est la question que je me pose depuis pas mal de mois. Est ce qu'elle est bien créer ??
Quand je vais fouillez dans ma base de donnée en faisant rrdtool dump data_DS2423.rrd
voila ce que j'ai .
[^] # Re: Intuitivement...
Posté par b.gwen . En réponse au message Problème de doublons dans un fichier txt. Évalué à 1.
Super Super un grand merci ça fonctionne , je vais programmer la tache cron et le laisser tourner .
[^] # Re: Intuitivement...
Posté par b.gwen . En réponse au message Problème de doublons dans un fichier txt. Évalué à 1.
Oui tu as raison python 11.py 000dd379 écrit bien dans le fichier hist-CPT2 .
mais j'ai toujours des doublons
Tue Aug 11 17:03:29 2015 /0/74000/1
Tue Aug 11 17:04:08 2015 /0/74000/1
Tue Aug 11 17:04:11 2015 /0/74000/1
Tue Aug 11 17:04:14 2015 /0/74000/1
Tue Aug 11 17:10:26 2015 /0/74000/1
Tue Aug 11 17:10:30 2015 /0/74000/1
Pour les essais je vais le renommer en test.py
[^] # Re: Intuitivement...
Posté par b.gwen . En réponse au message Problème de doublons dans un fichier txt. Évalué à 1. Dernière modification le 11 août 2015 à 16:30.
Merci TheBreton pour ton aide mais , excuse moi je ne comprend pas ce que veux dire (le fichier de log destination est codé en dur).
Afin de ne pas tout cassé j'ai créer un fichier hist-CPT2 a partir de mon hist-CPT ( j'ai bien sur modifier les lignes 89 et 90 de ton script avec hist-CPT2)
j'ai lancé le fichier en console de cette maniere
python 11.py
Aucune erreur , mais rien ne va s’écrire dans hist-CPT2
[^] # Re: Intuitivement...
Posté par b.gwen . En réponse au message Problème de doublons dans un fichier txt. Évalué à 1.
Pour être honnête , je souhaiterais trouver une personne qui me modifie le code , car je ne sais pas le faire et j'ai peur de tout faire planter.
J'ai oublier de dire que je récupère les valeurs du fichier txt pour faire une page Web avec 3 Bar graph (Journalier ,Mensuel ,annuel )
Il y a quelques mois j’ai essayé de le faire une BD rddtool mais je n'ai pas trouver la solution .
http://linuxfr.org/forums/linux-debutant/posts/rrdtool-base-de-donnees
PS: j'ai ajouter une photos dans le post principale .
[^] # Re: Base de donnees sqlite
Posté par b.gwen . En réponse au message Problème de doublons dans un fichier txt. Évalué à 1.
Bonjour oyoun j'ai un autre script qu'un membre du forum m'avait fait il y a quelques mois qui écrit dans une BD RDDTool , la BD se remplie bien mais impossible d'exploité ensuite les données , c'est pour cela que je veux repartir avec mon fichier txt
[^] # Re: Intuitivement...
Posté par b.gwen . En réponse au message Problème de doublons dans un fichier txt. Évalué à 1.
Bonjour GuieA_7 et merci pour ta réponse , je comprend ce qu'il faut faire , mais comme j'ai dit précédemment, je ne sais pas écrire du code .
[^] # Re: Intuitivement...
Posté par b.gwen . En réponse au message Problème de doublons dans un fichier txt. Évalué à 2.
Mon niveau de programmation est très très bas !!!
Ce code n'est pas de moi c'est un ami qui me l'a fait il y a 2 ans quand j’avais commencé un projet de domotique sur un raspberry .
Toute la partie électronique est de moi, et la partie programmation c’était lui.
j'essaye donc de me débrouillé au mieux avec mes faibles connaissance .
[^] # Re: Intuitivement...
Posté par b.gwen . En réponse au message Problème de doublons dans un fichier txt. Évalué à 1. Dernière modification le 10 août 2015 à 13:10.
Voila mon code python ,
par contre c'est la tache cron qui indique ou est le fichier hist-CPT
[^] # Re: Vérifier les données avant d'écrire le fichier
Posté par b.gwen . En réponse au message Fichier hist-EXT. Évalué à 1. Dernière modification le 17 juin 2015 à 12:36.
ok Merci je vais tester
[^] # Re: Vérifier les données avant d'écrire le fichier
Posté par b.gwen . En réponse au message Fichier hist-EXT. Évalué à 1.
Aille çà bloque la.
File "readDHT22T.py", line 90
if s1 = '---' or s2 == '---':
^
SyntaxError: invalid syntax
[^] # Re: Vérifier les données avant d'écrire le fichier
Posté par b.gwen . En réponse au message Fichier hist-EXT. Évalué à 1.
Bonsoir et merci lolop pour ton aide , j'ai oublier encore d'expliquer quelques chose !! Ma sonde capte a la fois la température et l'humidité . C'est du tout ou rien si la lecture échoue pour la température elle échoue aussi pour l'humidité (Absence automatiquement des 2 valeurs).
C'est pour cela que je ne comprend pas quoi et comment adapter ici ??
if s1 = '---' or s2 == '---': # A adapter…
[^] # Re: Vérifier les données avant d'écrire le fichier
Posté par b.gwen . En réponse au message Fichier hist-EXT. Évalué à 1.
Je me suis mal exprimé , de temps en temps l’interrogation de ma sonde DHT22 échoue et je me retrouve avec comme écriture dans hist-EXT cela
Sun Jun 14 09:20:07 2015 /---/---/1 (aucune valeur)
ce fichier est créé avec un modulus % 5 de la minute.
Donc 5 fichier en alternance et le dernier sera un link sur hist-EXT
hist-EXT0.txt
hist-EXT1.txt
hist-EXT2.txt
hist-EXT3.txt
hist-EXT4.txt
je voudrais que si la lecture échoue hist-EXT se remplisse avec un des 5 fichiers qui a les valeurs .
Sun Jun 14 09:15:04 2015 /16.9/69.6/1
[^] # Re: append
Posté par b.gwen . En réponse au message Fichier hist-EXT. Évalué à 1.
Merci GnunuX mais le résultat attendu n'est pas la !! (ce que j'ai oublier de dire),les valeurs de ce fichier Temp_histEXT sont récupéré par un autre script donc ça ne colle pas
Voila ce que j'ai maintenant dans Temp_histEXT
Sun Jun 14 09:15:04 2015 /16.9/69.6/1
Sun Jun 14 09:20:07 2015 /---/---/1
Sun Jun 14 09:25:06 2015 /---/---/1
Sun Jun 14 09:30:06 2015 /---/---/1
[^] # Re: heartbeat ?
Posté par b.gwen . En réponse au message RRDTOOL base de données. Évalué à 1.
Bonsoir , je reviens vers vous pour vous demander une fois de plus de l'aide , j'ai beau chercher dans tous les sens il y a un truc qui cloche au niveau de ma BD compteur d'eau ,
voila ce que j'ai mis pour faire ma Base de donnée compteur eau
rrd_dst="ABSOLUTE"
rrd_heartbeat=600,
rrd_min='U',
rrd_max='U',
j'ai interrogé ma base avec cette commande en console rrdtool dump data_DS2423 | less
Et voila la réponse ,
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rrd SYSTEM "http://oss.oetiker.ch/rrdtool/rrdtool.dtd">
<!-- Round Robin Database Dump -->
0003
300 <!-- Seconds -->
1431367207 <!-- 2015-05-11 20:00:07 CEST -->
<ds>
<name> CE1 </name>
<type> ABSOLUTE </type>
<minimal_heartbeat>600</minimal_heartbeat>
<min>0.0000000000e+00</min>
<max>1.0000000000e+00</max>
<!-- PDP Status -->
<last_ds>59800</last_ds>
<value>NaN</value>
<unknown_sec> 7 </unknown_sec>
</ds>
<!-- Round Robin Archives -->
<rra>
<cf>AVERAGE</cf>
<pdp_per_row>1</pdp_per_row> <!-- 300 seconds -->
<params>
<xff>0.0000000000e+00</xff>
</params>
<cdp_prep>
<ds>
<primary_value>NaN</primary_value>
<secondary_value>NaN</secondary_value>
<value>NaN</value>
<unknown_datapoints>0</unknown_datapoints>
</ds>
</cdp_prep>
<database>
<!-- 2015-05-11 18:05:00 CEST / 1431360300 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:10:00 CEST / 1431360600 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:15:00 CEST / 1431360900 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:20:00 CEST / 1431361200 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:25:00 CEST / 1431361500 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:30:00 CEST / 1431361800 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:35:00 CEST / 1431362100 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:40:00 CEST / 1431362400 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:45:00 CEST / 1431362700 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:50:00 CEST / 1431363000 --> <row><v>NaN</v></row>
<!-- 2015-05-11 18:55:00 CEST / 1431363300 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:00:00 CEST / 1431363600 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:05:00 CEST / 1431363900 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:10:00 CEST / 1431364200 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:15:00 CEST / 1431364500 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:20:00 CEST / 1431364800 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:25:00 CEST / 1431365100 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:30:00 CEST / 1431365400 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:35:00 CEST / 1431365700 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:40:00 CEST / 1431366000 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:45:00 CEST / 1431366300 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:50:00 CEST / 1431366600 --> <row><v>NaN</v></row>
<!-- 2015-05-11 19:55:00 CEST / 1431366900 --> <row><v>NaN</v></row>
<!-- 2015-05-11 20:00:00 CEST / 1431367200 --> <row><v>NaN</v></row>
</database>
AVERAGE
6 <!-- 1800 seconds -->
je ne comprend pas 59800 ce matin avant de partir au travail j'avais 59600 2 impulsions du compteur sont passé pour mettre 59800 pourquoi j'ai toujours NaN a chaque interrogation ?<params>
<xff>0.0000000000e+00</xff>
</params>
<cdp_prep>
<ds>
<primary_value>NaN</primary_value>
<secondary_value>NaN</secondary_value>
<value>0.0000000000e+00</value>
<unknown_datapoints>0</unknown_datapoints>
</ds>
</cdp_prep>
<database>
<!-- 2013-05-11 08:30:00 CEST / 1368253800 --> <row><v>NaN</v></row>
[^] # Re: heartbeat ?
Posté par b.gwen . En réponse au message RRDTOOL base de données. Évalué à 1.
Je suis toujours au meme point , pour mes derniers essais je suis repassé a Gauge avec ces valeurs
rrd_heartbeat=3600, rrd_min=0, rrd_max=1,
la valeur mini acceptée est de: 0 et la valeur maxi de:1 Je ne sais pas si ça fonctionne comme çà je dit a ta base de considérer comme bonne toute valeur comprissent entre 0 et 1 car 1 = 100L
[^] # Re: heartbeat ?
Posté par b.gwen . En réponse au message RRDTOOL base de données. Évalué à 1.
Bonjour Eric , je vais essayé heartbeat a 86400 (24 heures ) et ABSOLUTE
[^] # Re: heartbeat ?
Posté par b.gwen . En réponse au message RRDTOOL base de données. Évalué à 1.
Bonjour Eric ,je viens de verifier effectivement j'ai toujours cette valeur NaN
Comment faut'il bien configurer ce heartbeat ?
Est ce que la fonction COUNTER est bien adapté ?
car il y a COUNTER,GAUGE,DERIVE,ABSOLUTE ou COMPUTE ?
Un autre truc bizard quand j'ai regardé ma BD avec rrdtool dump fic.rrd elle commence le 13 03 2015 alors que je l'ai créer le 01 05 2015
<!-- 2015-03-13 01:00:00 CET / 1426204800 --> NaNNaNNaN
[^] # Re: Est-ce que tu as un message d'erreur ?
Posté par b.gwen . En réponse au message Ecriture fichier txt. Évalué à 1.
Merci a tous Super ça fonctionne .
J'ai bricolé ce code que j'ai posté , pour essayé de comprendre le fonctionnement de la création et de l’écriture du fichier histINT.
je pensais pouvoir me débrouiller seul pour adapter ça a mon fichier howonpi .Mais ce n'est pas du tout le cas .
Pour écrire dans histINT j'ai fais ca .
sensorInfo n'est pas bon , je récupère trop d'information .
Sat Apr 25 13:10:04 2015 /[['TDS1', '28-000005239592', 'T\xb0Interieure', 19.0]]
[^] # Re: Est-ce que tu as un message d'erreur ?
Posté par b.gwen . En réponse au message Ecriture fichier txt. Évalué à 1. Dernière modification le 25 avril 2015 à 08:44.
Bonjour Neox , ce n'est pas le probleme de l'espace entre l'année et la valeur de température qui m'interpelle mais cette valeur 19.8853333333, ce que je veux obtenir dans mon fichier est 19.8
[^] # Re: Est-ce que tu as un message d'erreur ?
Posté par b.gwen . En réponse au message Ecriture fichier txt. Évalué à 1.
Merci lolop j'ai testé ça
sfile.write(get_c_locale_abbrev() + ' '.join([str(x) for x in read_all()]))
Mon fichier texte se créé et se rempli de cette façon .
Fri Apr 24 19:18:22 201519.8853333333
Cette ligne de commande m'indique toujours une erreur .
sfile.write(get_c_locale_abbrev() + str(read_all()[3]))
[^] # Re: Est-ce que tu as un message d'erreur ?
Posté par b.gwen . En réponse au message Ecriture fichier txt. Évalué à 1. Dernière modification le 24 avril 2015 à 17:09.
Effectivement il y a du mieux , le fichier hist-INT.txt se crées bien mai il est vide .
File "new05.py", line 141, in
sfile.write(get_c_locale_abbrev() + ' '.join(read_all()))
TypeError: sequence item 0: expected string, float found
Le code du premier post que j'ai posté est un assemblage de plusieurs partie de code que j'ai mélangé pour essayé de comprendre le fonctionnement.
Mon fichier original fonctionne , mais pas comme je le souhaite . Ce que je veux obtenir dans mon fichier hist-INT.txt est
Thu Apr 23 12:50:03 2015 /19.1
et ce que j'ai (Avec mon fichier original )
Fri Apr 24 17:05:04 2015 /[['TDS1', '28-000005239592', 'T\xb0Interieure', 19.75]]
[^] # Re: Est-ce que tu as un message d'erreur ?
Posté par b.gwen . En réponse au message Ecriture fichier txt. Évalué à 1.
En effet je me suis tromper l'erreur est :
File "new05.py", line 141, in
sfile.write(get_c_locale_abbrev() + ' '.join(read_all(data)))
NameError: name 'data' is not defined