Page 1 sur 4
Table counterCalendar
Publié : 08 avr. 2021, 23:15
par knasson
Bonsoir,
Je commence à essayer de manipuler des données qui proviennent de mes compteurs.
Les données qui m'intéressent sont les consommations journalières.Elles sont bien enregistrées sur les graphiques.Je sais accéder aux valeurs instantanées de mes compteurs en script LUA, mais je ne sais pas accéder aux valeurs journalières qui sont enregistrées dans la table counterCalendar.
Comment puis faire?
Re: Table counterCalendar
Publié : 09 avr. 2021, 05:53
par denis_brasseur
Bonjour knasson, et bienvenue sur ce forum.
depuis l'API JSON, tu peux accéder aux historiques de tes devices, dont tes sondes de température.
https://www.domoticz.com/wiki/Domoticz_ ... perature_2
Temperature
/json.htm?type=graph&sensor=temp&idx=IDX&range=day
/json.htm?type=graph&sensor=temp&idx=IDX&range=month
/json.htm?type=graph&sensor=temp&idx=IDX&range=year
/json.htm?type=graph&sensor=temp&idx=IDX&range=year&actyear=YYYY
https://easydomoticz.com/traduction-fra ... istoriques
Historiques
On affiche gràce à ces instructions l’historique des capteurs. Allumages, extinctions avec les dates pour les switches, températures et dates pour les autres.
IDX = idx de votre capteur. A obtenir depuis l’écran des dispositifs.
Tempèratures
/json.htm?type=graph&sensor=temp&idx=IDX&range=day
/json.htm?type=graph&sensor=temp&idx=IDX&range=month
/json.htm?type=graph&sensor=temp&idx=IDX&range=year
Exemple avec month
// 20210409054124
// 192.168.1.106:8060/json.htm?type=graph&sensor=temp&idx=2889&range=month
{
"result": [
{
"d": "2021-03-09",
"ta": -20.829999999999998,
"te": -9.0999999999999996,
"tm": -24.0
},
{
"d": "2021-03-10",
"ta": -20.239999999999998,
"te": -8.5999999999999996,
"tm": -22.600000000000001
},
Exemple aavec day :
/ 20210409055459
//192.168.1.106:8060/json.htm?type=graph&sensor=temp&idx=2889&range=day
{
"result": [
{
"d": "2021-04-04 05:50",
"te": -20.199999999999999
},
{
"d": "2021-04-04 05:55",
"te": -20.100000000000001
},
Ne reste plus qu'a exploiter ensuite ces données, ce qui n'est pas le plus facile.
Re: Table counterCalendar
Publié : 09 avr. 2021, 08:53
par knasson
Merci, donc ca me permet d'accéder aux données en particulier celles du mois qui me donne les cumuls journaliers,
voila ce que j'obtiens, mais la valeur que je veux utiliser c'est la 3ieme "v" comment l'extraire de ces résultats?
est ce que ces requêtes JSON sont intégrables dans un script LUA ? ou faut il passer par python ou bash?
Re: Table counterCalendar
Publié : 09 avr. 2021, 12:29
par Keros
Tu peux intégrer les information JSON en lua sans difficultés.
Tu as un exemple dans mon tuto sur OpenWeattherMap (lien en signature) : les infos des API Météo sont en JSON.
Re: Table counterCalendar
Publié : 09 avr. 2021, 19:18
par knasson
salut keros,
j'ai bien étudié ton tuto et autres info en particulier
lorsque je tape
http://192.168.1.38:8080/json.htm?type=devices&ridx=9
dans mon navigateur je reçois en retour tout les devices de mon domoticz et pas seulement les paramètres de mon device (idx=9),
du coup je ne vois pas comment extraire ma variable car j'ai plusieurs fois le même nom de variable dans plusieurs devices.
Merci de tes éclairages,
bonne soirée..
Jean-Claude
.
Re: Table counterCalendar
Publié : 09 avr. 2021, 21:15
par Keros
D'après la
documentation, je pense que ton erreur vient de la fin de ton url.
Re: Table counterCalendar
Publié : 10 avr. 2021, 07:41
par denis_brasseur
Et plus précisément de ridx
/json.htm?type=devices&rid=IDX
Re: tarifs EDF
Publié : 12 avr. 2021, 22:40
par knasson
bon je rentre dans le vif:
je veux récupérer la dernière valeur V: qui se trouve là..
http://raspberrypi:8080/json.htm?type=g ... ange=month
ca donne ca;
Code : Tout sélectionner
{
ValueQuantity: "",
ValueUnits: "",
counter: "4096.038",
result: [
{
c: "3905.098",
d: "2021-03-31",
v: "15.700"
},
{
c: "3920.732",
d: "2021-04-01",
v: "16.200"
},
{
c: "3936.903",
d: "2021-04-02",
v: "14.800"
},
{
c: "3951.731",
d: "2021-04-03",
v: "15.700"
},
{
c: "3967.431",
d: "2021-04-04",
v: "16.988"
},
{
c: "3984.419",
d: "2021-04-05",
v: "15.734"
},
{
c: "4000.153",
d: "2021-04-06",
v: "15.187"
},
{
c: "4015.340",
d: "2021-04-07",
v: "16.341"
},
{
c: "4031.681",
d: "2021-04-08",
v: "17.807"
},
{
c: "4048.488",
d: "2021-04-09",
v: "18.703"
},
{
c: "4067.191",
d: "2021-04-10",
v: "6.707"
},
{
c: "4073.898",
d: "2021-04-11",
v: "12.075"
},
{
c: "4085.973",
d: "2021-04-12",
v: "10.065"
}
],
status: "OK",
title: "Graph counter month"
}
voici ce que j'ai écrit mais le cumul_jour est vide
Code : Tout sélectionner
json = (loadfile "/home/kan/domoticz/scripts/lua/JSON.lua")()
commandArray = {}
curl='/usr/bin/curl -m 15 '
config= assert(io.popen (curl.."http://raspberrypi:8080/json.htm?type=graph&sens$
blocjson = config:read ('*all')
config:close()
jsonValeur = json:decode(blocjson)
cumul_jour = jsonValeur.v
msg = 'le cumul production du jour est'..cumul_jour..'kWh'
print (msg)
return commandArray
quel pourrait être le bon code lua d'extraction de cette valeur?
Re: Table counterCalendar
Publié : 12 avr. 2021, 23:04
par Keros
Je viens de déplacer ton message pour continuer l'autre sujet.
Le principe de ce forum est de s'entraider. Si tu rencontres des problèmes avec ton script, mets les nous. On t'aidera à avancer. Nous sommes tous des bénévoles et nous faisons cela sur notre temps libre. Nous ne sommes pas un SAV.
Re: Table counterCalendar
Publié : 13 avr. 2021, 16:57
par knasson
Je ne sais pas ce qui te laisse penser que je prends le forum pour un SAV???
C'est clair qu'en ce moment vu que je débarque, je suis davantage demandeur que fournisseur.
Donc la il s'agit de mon premier script LUA basé sur des modèles que tu as fournis dans ton tuto.
Mais l'adaptation que j'en faite ne fonctionne pas puisque la valeur est vide.
C'est pourquoi je demande de l'aide mais j'ai conscience d'avoir encore beaucoup a Apprendre.