Requete compteur / Stats

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
jackslayter
Messages : 956
Enregistré le : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: Requete compteur / Stats

Message par jackslayter »

script en test ;)
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte

manuloup
Messages : 535
Enregistré le : 18 févr. 2015, 13:05

Re: Requete compteur / Stats

Message par manuloup »

Lol c'est moi qui ai lancé ce sujet sur le forum de domoticz.com :)
Rapberry PI 2 (RaspBian), RFplayer, Aeon Labs Z-Stick Gen5, Everspring ST814 Temperature Sensor, Everspring SF812 Smoke Detector, 4x Fibaro Wallplug, Aeon Zwave Miniremote , Teleinfo USB

jackslayter
Messages : 956
Enregistré le : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: Requete compteur / Stats

Message par jackslayter »

par contre il faut mettre à zéro le virtuel non utilisé (si HC alors HP = 0) car actuellement il garde la dernière valeur et elle reste alors qu'elle devrait être à 0
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte

chandler45
Messages : 49
Enregistré le : 09 mars 2015, 15:05

Re: Requete compteur / Stats

Message par chandler45 »

@manuloup : ah oups, désolé j'avais pas vu !... du coup effectivement tu dois être au courant ! :D
Domoticz (dernière beta)
Raspberry Pi / RFXTrx433e
Sondes : 3 Sonde Oregon THN132N + 1 OWL Micro+ CM180
Interrupteurs : 3 Prises COCO (AWS APA3-1500R) + 3 Micro modules COCO AWS3500

chandler45
Messages : 49
Enregistré le : 09 mars 2015, 15:05

Re: Requete compteur / Stats

Message par chandler45 »

@jackslayter : Effectivement j'ai eu ce problème là aussi... et je comprenais plus parce qu'il me semblait que je l'avais corrigé... Ce que j'ai effectivement fait, mais j'avais oublié ce point là sur la description de ma solution... désolé pour l'oubli :-(

Donc en plus du script principal, j'ai 2 scripts (script_device_bascule-CompteurHC.lua et script_device_bascule-CompteurHP.lua) qui permettent de mettre la conso instantanée à 0 lors de la bascule HC/HP... Maintenant je suis pas revenu dessus, mais il y a peut être moyen de le faire en moins de scripts...

script_device_bascule-CompteurHC.lua

Code : Tout sélectionner

local flagHC = uservariables['FlagHC']
local capteurCptHP = uservariables['CapteurCptHP']
local idxCptHP = uservariables['IdxCptHP']

function update(device, id, power, energy, index)
	commandArray[index] = {['UpdateDevice'] = id .. "|0|" .. power .. ";" .. energy}
	return
end

commandArray = {}
if (devicechanged[flagHC] == 'On') then
	-- Mise à 0 de la conso intantanee du compteur HP
	local consoInstantHP
	local consoCumuleHP
	consoInstantHP, consoCumuleHP = otherdevices_svalues[capteurCptHP]:match("([^;]+);([^;]+)")
	consoInstantHP = 0
	update(capteurCptHP, idxCptHP, consoInstantHP, consoCumuleHP, 1)
end

return commandArray
script_device_bascule-CompteurHP.lua

Code : Tout sélectionner

local flagHP = uservariables['FlagHP']
local capteurCptHC = uservariables['CapteurCptHC']
local idxCptHC = uservariables['IdxCptHC']

function update(device, id, power, energy, index)
	commandArray[index] = {['UpdateDevice'] = id .. "|0|" .. power .. ";" .. energy}
	return
end

commandArray = {}
if (devicechanged[flagHP] == 'On') then
	-- Mise à 0 de la conso intantanee du compteur HC
	local consoInstantHC
	local consoCumuleHC
	consoInstantHC, consoCumuleHC = otherdevices_svalues[capteurCptHC]:match("([^;]+);([^;]+)")
	consoInstantHC = 0
	update(capteurCptHC, idxCptHC, consoInstantHC, consoCumuleHC, 1)
end
return commandArray
Domoticz (dernière beta)
Raspberry Pi / RFXTrx433e
Sondes : 3 Sonde Oregon THN132N + 1 OWL Micro+ CM180
Interrupteurs : 3 Prises COCO (AWS APA3-1500R) + 3 Micro modules COCO AWS3500

jackslayter
Messages : 956
Enregistré le : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: Requete compteur / Stats

Message par jackslayter »

vala ;)

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)
      -- Mise à 0 de la conso intantanee du compteur HP
      consoInstantHP, consoCumuleHP = otherdevices_svalues[capteurCptHP]:match("([^;]+);([^;]+)")
      consoInstantHP = 0
      update(capteurCptHP, idxCptHP, consoInstantHP, consoCumuleHP, 2)
      
   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)
		-- Mise à 0 de la conso intantanee du compteur HC
		consoInstantHC, consoCumuleHC = otherdevices_svalues[capteurCptHC]:match("([^;]+);([^;]+)")
		consoInstantHC = 0
		update(capteurCptHC, idxCptHC, consoInstantHC, consoCumuleHC, 4)
   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
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte

chandler45
Messages : 49
Enregistré le : 09 mars 2015, 15:05

Re: Requete compteur / Stats

Message par chandler45 »

Super !!! Merci, je vais mettre ça en place de suite ! :D

Parce que moins de scripts c'est quand même plus facile. Ca évite d'en oublier quand on fait une modif... ou quand on explique le fonctionnement sur un forum !! :lol:

Au passage, je vois que tu as aussi un CM180... Est ce qu'il t'arrive d'avoir des valeurs "farfelues" par moment ? soit juste à l'affichage, soit des fois qui viennent pourrir les stats (des valeurs en millions voir plus sur 1 ou 2 relevés)...
Domoticz (dernière beta)
Raspberry Pi / RFXTrx433e
Sondes : 3 Sonde Oregon THN132N + 1 OWL Micro+ CM180
Interrupteurs : 3 Prises COCO (AWS APA3-1500R) + 3 Micro modules COCO AWS3500

jackslayter
Messages : 956
Enregistré le : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: Requete compteur / Stats

Message par jackslayter »

peut être à mettre dans les tutos
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte

chandler45
Messages : 49
Enregistré le : 09 mars 2015, 15:05

Re: Requete compteur / Stats

Message par chandler45 »

Oui tu as raison... Je m'en occupe dans l'après midi ! :)
Domoticz (dernière beta)
Raspberry Pi / RFXTrx433e
Sondes : 3 Sonde Oregon THN132N + 1 OWL Micro+ CM180
Interrupteurs : 3 Prises COCO (AWS APA3-1500R) + 3 Micro modules COCO AWS3500

manuloup
Messages : 535
Enregistré le : 18 févr. 2015, 13:05

Re: Requete compteur / Stats

Message par manuloup »

Bonjour,

Je n'ai jamais utilisé de script de ce type. C'est possible de faire un tuto complet pour expliquer où le mettre, screenshots etc ? Ca serait top.

Merci !

Bonne journée.

Manu
Rapberry PI 2 (RaspBian), RFplayer, Aeon Labs Z-Stick Gen5, Everspring ST814 Temperature Sensor, Everspring SF812 Smoke Detector, 4x Fibaro Wallplug, Aeon Zwave Miniremote , Teleinfo USB

Répondre