Page 1 sur 3
Requete compteur / Stats
Publié : 02 mars 2015, 22:56
par beting
Bonjour
J'envoi une requête curl en automatique pour transmettre la valeur heure creuse de mon compteur. Cette requête est récupérée dans un virtual device de type compteur. Le soucis c'est que le graphique généré prend la valeur du comptage journalier ( chiffre en haut à droite ) qui n'est pas celui envoyé ( au milieu dans status).
Comment changer le chiffre ou les stats? Je souhaite avoir un historique de ma valeur Heure creuse.
Code : Tout sélectionner
curl "http://192.168.1.2:8080/json.htm?type=command¶m=udevice&idx=114&svalue=$var1"
Re: Requete compteur / Stats
Publié : 03 mars 2015, 13:39
par jackslayter
je suis en plein dedans pour calculer les HC et HP, si j'y arrive je posterai un tuto ou autre
Re: Requete compteur / Stats
Publié : 04 mars 2015, 19:40
par beting
Cool j'attends de tes nouvelles
Re: Requete compteur / Stats
Publié : 09 mars 2015, 09:04
par jackslayter
bon ça marche pas, j'ai essayé en envoyant chaque valeurs au compteur ou le total à la fin de journée et ça fait des graphs tout pourri
Re: Requete compteur / Stats
Publié : 09 mars 2015, 15:20
par chandler45
Salut,
Je me suis mis à Domoticz depuis peu, mais j'ai réussi à faire quelque chose pour avoir les stats HC / HP de mon compteur... Est ce que c'est quelque chose de ce genre que vous voulez ?

- Cpt.JPG (48.77 Kio) Consulté 11978 fois
Je précise, j'ai un capteur CM180 sur mon compteur qui ne m'envoie que que la conso globale (à droite sur la capture).
Re: Requete compteur / Stats
Publié : 09 mars 2015, 19:24
par manuloup
C'est top ! Moi j'ai un NorthQ NQ-9021 et je suis très frustré d'avoir un 0 en permanence sur le Dashboard.

- domoticz nq9021.png (11.46 Kio) Consulté 11962 fois
Peux-tu me montrer ton script que je vois ce que tu fais ?
Merci en tout cas.
Re: Requete compteur / Stats
Publié : 09 mars 2015, 19:45
par chandler45
Pas de soucis.. Alors j'ai commencé par créé 2 switchs : Heures Creuses / Heures Pleines. Je pilote les changements des 2 switchs par un blocky :

- blocky.JPG (54.55 Kio) Consulté 11961 fois
Ensuite j'ai créé 2 capteurs virtuels de type "Electrique (Instant+Compteur)". J'ai pris ces capteurs vu qu'ils correspondent à celui qui est branché à mon compteur.
ET voici le scipt que j'ai derrière :
Code : Tout sélectionner
--script /domoticz/scripts/lua/script_device_compteurHC-HP.lua
local capteurGlobal = uservariables['CapteurGlobal']
local capteurCptHP = uservariables['CapteurCptHP']
local capteurCptHC = uservariables['CapteurCptHC']
local idxCptHP = uservariables['IdxCptHP']
local idxCptHC = uservariables['IdxCptHC']
local flagHC = uservariables['FlagHC']
local flagHP = uservariables['FlagHP']
local lastValueCptElecGlobal = uservariables['LastValueCptElecGlobal']
local debug = uservariables['debug']
function update(device, id, power, energy, index)
commandArray[index] = {['UpdateDevice'] = id .. "|0|" .. power .. ";" .. energy}
return
end
commandArray = {}
-- On prend en compte a chaque changement de valeur du compteur global
if (devicechanged[capteurGlobal]) then
if (debug == 'OUI') then
print('-- Calcul Compteurs HC / HP --')
print('CapteurGlobal = '..capteurGlobal)
print('CapteurCptHP = '..capteurCptHP)
print('CapteurCptHC = '..capteurCptHC)
print('idxCptHP = '..tostring(idxCptHP))
print('idxCptHC = '..tostring(idxCptHC))
print('flagHP = '..tostring(flagHP))
print('flagHC = '..tostring(flagHC))
print('LastValueCptElecGlobal = '..tostring(lastValueCptElecGlobal))
end
-- Recuperation des valeurs du compteur global
local consoCumule
local consoInstant
consoInstant, consoCumule = otherdevices_svalues[capteurGlobal]:match("([^;]+);([^;]+)")
consoInstant = tonumber(consoInstant)
consoCumule = tonumber(consoCumule)
if (debug == 'OUI') then
print('Conso Instant = '..tostring(consoInstant)..' / Conso Cumule = '..tostring(consoCumule)..' ')
end
-- Calcul de l'ecart avec le dernier envoi de donnees
lastValueCptElecGlobal = tonumber(lastValueCptElecGlobal)
local consoDelta = consoCumule - lastValueCptElecGlobal
if (debug == 'OUI') then
print('Delta conso = '..tostring(consoDelta))
end
local consoCumuleCible
local consoInstantCible
if (otherdevices[flagHC] == 'On') then
-- Periode heures creuse
-- Recuperation des valeurs du compteur global
consoInstantCible, consoCumuleCible = otherdevices_svalues[capteurCptHC]:match("([^;]+);([^;]+)")
-- Seul le cumule du compteur nous interesse pour calculer la nouvelle valeur
consoCumuleCible = tonumber(consoCumuleCible)
if (debug == 'OUI') then
print('Compteur cible = HC')
print('Valeur precedente = '..tostring(consoCumuleCible))
print('Valeur ajustee = '..tostring(consoCumuleCible + consoDelta))
end
consoCumuleCible = consoCumuleCible + consoDelta
-- Mise à jour du compteur
update(capteurCptHC, idxCptHC, consoInstant, consoCumuleCible, 1)
else
-- Periode heures pleines
-- Recuperation des valeurs du compteur global
consoInstantCible, consoCumuleCible = otherdevices_svalues[capteurCptHP]:match("([^;]+);([^;]+)")
-- Seul le cumule du compteur nous interesse pour calculer la nouvelle valeur
consoCumuleCible = tonumber(consoCumuleCible)
if (debug == 'OUI') then
print('Compteur cible = HP')
print('Valeur precedente = '..tostring(consoCumuleCible))
print('Valeur ajustee = '..tostring(consoCumuleCible + consoDelta))
end
consoCumuleCible = consoCumuleCible + consoDelta
-- Mise à jour du compteur
update(capteurCptHP, idxCptHP, consoInstant, consoCumuleCible, 3)
end
-- Sauvegarde de la valeur du compteur global pour prochain calcul
commandArray['Variable:LastValueCptElecGlobal'] = tostring(consoCumule)
if (debug == 'OUI') then
print('-- Fin Calcul Compteur HC / HP --')
end
end
return commandArray
Pour les variables :
- CapteurGlobal : Nom du capteur physique
- CapteurCptHP : nom du capteur virtuelle HP
- CapteurCptHC : nom du capteur virtuelle HC
- idxCptHP : IDX du capteur virtuelle HP
- idxCptHC : IDX du capteur virtuelle HC
- flagHP : Nom du switch HP
- flagHC : Nom du switch HC
- LastValueCptElecGlobal : valeur du compteur cumulé pour calculer l'écart par rapport au dernier relevé
J'ai essayé de commenter un minimum mon code en le faisant...
Re: Requete compteur / Stats
Publié : 09 mars 2015, 19:47
par chandler45
manuloup, ta capture, c'est ton capteur "réel" ou un capteur virtuel ? Parce que le zéro c'est la consommation instantanée... Si c'est ton capteur physique, est ce que tu es sûr que ton capteur renvoi cette information là ? Parce qu'il a l'air de fonctionner sinon... Et si c'est un capteur virtuel, il faut lui envoyer les 2 informations (cumulé + instantané) lors de la mise à jour, comme tu pourras le voir dans le script...
Re: Requete compteur / Stats
Publié : 10 mars 2015, 09:49
par manuloup
Bonjour Chandler45,
C'est le capteur qui apparait sur le dashboard et dans l'onglet Utility. J'imagine que c'est un capteur virtuel créé automatiquement par Domoticz à partir du device.

- 2015-03-10_095208.jpg (183.03 Kio) Consulté 11941 fois
Par contre, si je regarde dans les logs du device, dans la page Devices, je vois bien les chiffres corrects dans les logs. En gros j'aimerais avoir la dernière valeur en watts (ici 922) à la place du 0 sur le Dashboard.

- 2015-03-10_092141.jpg (133.71 Kio) Consulté 11944 fois

- 2015-03-10_092308b.jpg (61.36 Kio) Consulté 11944 fois
Re: Requete compteur / Stats
Publié : 10 mars 2015, 10:33
par chandler45
Alors, le capteur qui apparait sur ton dashboard est bien ton capteur "physique", c'est à dire celui qui correspond réellement à ton matériel... donc celui qui doit fonctionner tout seul... J'ai regardé un peu, et je pense que c'est Domoticz qui ne gère pas l'information de consommation instantanée envoyée par ton capteur.
Je connais pas vraiment les capteurs ZWave... mais tu n'es pas le seul à te poser la question, j'ai trouvé ce post sur le forum de Domoticz :
http://www.domoticz.com/forum/viewtopic.php?f=6&t=4226