Page 1 sur 3

Requete compteur / Stats

Posté : 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&param=udevice&idx=114&svalue=$var1"

Re: Requete compteur / Stats

Posté : 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

Posté : 04 mars 2015, 19:40
par beting
Cool j'attends de tes nouvelles

Re: Requete compteur / Stats

Posté : 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

Posté : 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
Cpt.JPG (48.77 Kio) Vu 7972 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

Posté : 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
domoticz nq9021.png (11.46 Kio) Vu 7956 fois
Peux-tu me montrer ton script que je vois ce que tu fais ?

Merci en tout cas.

Re: Requete compteur / Stats

Posté : 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
blocky.JPG (54.55 Kio) Vu 7955 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

Posté : 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

Posté : 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
2015-03-10_095208.jpg (183.03 Kio) Vu 7935 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
2015-03-10_092141.jpg (133.71 Kio) Vu 7938 fois
2015-03-10_092308b.jpg
2015-03-10_092308b.jpg (61.36 Kio) Vu 7938 fois

Re: Requete compteur / Stats

Posté : 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