Page 2 sur 2
Re: Impossible de mettre à jour une variable utilisateur
Publié : 18 mai 2022, 23:21
par boum
Oui en effet, ce n'est pas très optimal, mais si ça marche
Honnêtement, plutôt que de communiquer avec l'interface json de domoticz, j'aurais probablement stocké les consommations dans un fichier local. (probablement en lua pour l'exécuter plutot que le parser en lecture........

)
Ensuite en remarques générique, tu peux virer le commandArray au début et son return à la fin, c'est pour les "autres" scripts lua.
Le HTTP Poller fait déjà un appel à l'écocompteur je suppose et remplit la table "request"
Cf:
https://github.com/domoticz/domoticz/bl ... e_json.lua
Après libre à toi d'utiliser la bibliothèque JSON.lua pour décoder le résultat plutôt que les quelques fonctions fournies dans ces scripts un peu particuliers.
Pour ce qui est des performances, ça se mesure. mais ce serait 10 appels à curl en moins (donc créer de nouveaux process).
Re: Impossible de mettre à jour une variable utilisateur
Publié : 18 mai 2022, 23:43
par Aile
Merci encore pour tous ces conseils.
Je regarde tout ça et je reviens vers vous.
Re: Impossible de mettre à jour une variable utilisateur
Publié : 19 mai 2022, 18:13
par Aile
Rebonjour

!
Petit ennui avec le fichier log de Domoticz. il est saturé par les informations de mise à jour de mes variables :
Code : Tout sélectionner
2022-05-19 18:10:54.435 Status: LUA: Variable based event fired on 'ConsommationConsole', value '902.11333333638'
2022-05-19 18:10:55.685 Status: LUA: Variable based event fired on 'ConsommationMaison', value '11061.923611106'
2022-05-19 18:10:55.779 Status: LUA: Variable based event fired on 'ConsommationConsole', value '902.20166666971'
2022-05-19 18:10:57.107 Status: LUA: Variable based event fired on 'ConsommationMaison', value '11062.191666662'
2022-05-19 18:10:57.216 Status: LUA: Variable based event fired on 'ConsommationConsole', value '902.28944444749'
2022-05-19 18:10:58.419 Status: LUA: Variable based event fired on 'ConsommationMaison', value '11062.459166662'
2022-05-19 18:10:58.513 Status: LUA: Variable based event fired on 'ConsommationConsole', value '902.37750000305'
2022-05-19 18:10:59.716 Status: LUA: Variable based event fired on 'ConsommationMaison', value '11062.726666662'
2022-05-19 18:11:01.122 Status: LUA: Variable based event fired on 'ConsommationMaison', value '11062.99444444'
2022-05-19 18:11:01.216 Status: LUA: Variable based event fired on 'ConsommationConsole', value '902.55333333638'
2022-05-19 18:11:02.435 Status: LUA: Variable based event fired on 'ConsommationMaison', value '11063.265555551'
En plus, il occupe inutilement la CPU...
Quelqu'un sait où on règle la "Verbosity" ?
Re: Impossible de mettre à jour une variable utilisateur
Publié : 19 mai 2022, 19:03
par denis_brasseur
Aile a écrit : 19 mai 2022, 18:13
Rebonjour

!
Petit ennui avec le fichier log de Domoticz. il est saturé par les informations de mise à jour de mes variables :
En plus, il occupe inutilement la CPU...
Quelqu'un sait où on règle la "Verbosity" ?
Quelle commande envois tu pour mettre à jour tes variables ?
J'ai eu ce probleme de logs bavard, il me semble l'avoir résolu en utilisant une commande json :
Code : Tout sélectionner
/json.htm?type=command¶m=updateuservariable&idx=idx&vname=uservariablename&vtype=uservariabletype&vvalue=uservariablevalue
plutôt qu'avec :
Re: Impossible de mettre à jour une variable utilisateur
Publié : 19 mai 2022, 19:33
par Aile
J'ai peur que ce soit le contraire parce que j'utilise justement une commande JSON :
Code : Tout sélectionner
CommandeMAJ = "http://127.0.0.1:8080/json.htm?type=command¶m=updateuservariable&vname=" .. Variable .. "&vtype=1&vvalue=" .. EnergiePrec + Puissance * 1/3600
(Voir mon script complet un peu plus haut)
Je ne peux pas utiliser la commande
dans un script lua_parsers.
Donc impossible de vérifier.
Re: Impossible de mettre à jour une variable utilisateur
Publié : 19 mai 2022, 22:58
par Aile
boum a écrit : 18 mai 2022, 23:21
Honnêtement, plutôt que de communiquer avec l'interface json de domoticz, j'aurais probablement stocké les consommations dans un fichier local. (probablement en lua pour l'exécuter plutot que le parser en lecture........

)
Bonsoir Boum,
Cette idée m'intéresse. Comment concrètement stocker les consommations dans un fichier local ?
Par cette commande ?
Code : Tout sélectionner
Descripteur = io.open(Nom_du_fichier, "w")
Descripteur:write(“Datas”)
Re: Impossible de mettre à jour une variable utilisateur
Publié : 20 mai 2022, 00:45
par boum
Oui, je ferais qq chose du genre (pas testé):
Code : Tout sélectionner
local writeTable = function(nom, t)
local lf = "\n"
local f = assert(io.open(nom, "w"))
f:write("return {", lf)
for key, value in pairs(t) do
-- version simplifiée, ne marche que pour les clés sans caractères spéciaux
-- et les valeurs numériques
f:write(key, " = ", value, ",", lf)
end
f:write("}", lf)
f:close()
end
-- pour sauver une table dans le genre
local valeurs = {
ConsommationConsole = 902.20166666971,
ConsommationMaison = 11062.191666662,
}
writeTable(Nom_Fichier, valeurs)
-- pour charger, c'est un fichier lua valide
local valeursSurDisque = loadfile(Nom_Fichier)
print(valeursSurDisque.ConsommationConsole)
Re: Impossible de mettre à jour une variable utilisateur
Publié : 20 mai 2022, 19:10
par Aile
Effectivement, c'est plus élégant et plus rapide !
En plus, ça résout le problème de la saturation du log.
Merci Boum

!