Mesure consommation virtuelle

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
zeze_31
Messages : 3
Inscription : 29 oct. 2018, 13:44

Mesure consommation virtuelle

Message par zeze_31 »

Bonjour

J'aimerai pouvoir entrer la consommation de gaz manuellement dans domoticz afin d'avoir un historique de ma conso.
Pour cela j'ai créer un dummy. Par contre après je ne sais pas comment renseigner la valeur de ce dummy.
Faut il passer par un script obligatoirement ou y a t'il une autre solution?

A terme j'aimerai remonter de la même manière mon compteur d'eau et d'électricité.
fredandrick65
Messages : 121
Inscription : 23 avr. 2016, 20:45

Re: Mesure consommation virtuelle

Message par fredandrick65 »

Perso j'utilise ce sript:

Code : Tout sélectionner

-- script_time_Compteurs_Eau.lua

--[[
Créer une Variable utilisateur			Conso_Jour_Eau	(nombre de litre estimé par jour)
Créer une Variable utilisateur			Cpt_Eau			(nombre indiqué par le compteur en décalitres soit les chiffres rouges plus les trois chiffres après par exemple pour un compteur indiquant 99,3657 M3  => 99365 dl
Toutes les x minutes(correspondant à delai)  le dummy est mis a jour
lors du relevé entrer le nouvel index dans la Variable utilisateur	Cpt_Eau
local idx_CE = 48		remplacer 48 par l'idx du Dummy Compteur d'eau
]]

commandArray = {} 
  
local ImpLog = true	
local delai = 1	
local Conso_Eau = tonumber(uservariables["Conso_Jour_Eau"])
local eau = uservariables["Cpt_Eau"]
local eauVar = (Conso_Eau/14400)*delai	-- Variation en litre par jour
local Dif_Eau = ((tonumber(uservariables["Cpt_Eau"]))-(tonumber(otherdevices_svalues['Eau'])))*10
local idx_CE = 48

time = os.time()
minutes = tonumber(os.date('%M',time))
hours = tonumber(os.date('%H',time))

if (minutes % delai == 0) then
			commandArray['Variable:Cpt_Eau'] = tostring(uservariables["Cpt_Eau"] +eauVar)
			commandArray[1]={['UpdateDevice'] = idx_CE..'|0|'..uservariables["Cpt_Eau"]}	
		if ImpLog then 
			print ("<font color='#009900'>Eau : Nouvel Index: "..string.format("%.3f", eau/100).."\tAncien Index ----------------> "..string.format("%.3f", otherdevices_svalues['Eau']/100).."\tDelta ---> "..string.format("%.3f",Dif_Eau).." Litres</font>")
		end
end

return commandArray

Domoticz V3.8153 sur Synology DS3615xs DSM 5.2-5967 Update 3
RFLink_v1.1_r46 (433.92 & 433.42 Mhz)
Sonde Oregon THGR810-Prise Everspring-OWL CM180
Humidité du sol Opus XT300-Sondes Oregon pour les nuls V2

Les non-dit font les pires malentendus ! ;)
eucliwood090
Messages : 27
Inscription : 29 juin 2019, 22:00

Re: Mesure consommation virtuelle

Message par eucliwood090 »

Bonjour, Merci pour se script c'est exactement se que je recherche . par contre je n'arrive pas à le faire fonctionner chez moi.

J'ai une erreur du type

Code : Tout sélectionner

domoticz/scripts/lua/script_time_eau.lua: domoticz/scripts/lua/script_time_eau.lua:18: attempt to perform arithmetic on a nil value

Je comprends que ne script ne fonctionne pas car il a une valeur erroné mais j'ai bien crée les 2 variables utilisateur en Décimal .

Pouvez vous m'aider a résoudre le problème .

Je suis en version beta 4.11529 .
adv
Messages : 580
Inscription : 02 févr. 2016, 13:54
Contact :

Re: Mesure consommation virtuelle

Message par adv »

Salut, nil value c'est une valeur nulle
tu as bien mis des valeurs dans le device Eau et la variable Cpt_Eau ?

Attention Eau est un device et Cpt_Eau une variable si je ne m'abuse.

Il faut au moins les initialiser qu'elles ne soient pas "vides".

Intéressant ce script, merci à fred.
Raspberry pi 3 - Domoticz 2024.4 | Piface v.2 + Téléinfo + RFXtrx433E
sondes Oregon | motorisations Somfy Yslo Flex 2 RTS
prises chacon, wifi | Sonoff easyESP, Tasmota, Espurna | ParadoxMG5050
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Mesure consommation virtuelle

Message par vil1driver »

Salut,

Si c'est totalement manuel, le mieux est probablement d'utiliser la commande json correspondante

https://www.domoticz.com/wiki/Domoticz_ ... RL%27s#Gas
Gas

Code : Tout sélectionner

/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=USAGE
USAGE= Gas usage in liter (1000 liter = 1 m³)
So if your gas meter shows f.i. 145,332 m³ you should send 145332.
The USAGE is the total usage in liters from start, not f.i. the daily usage.
Personnellement j'utiliserai plutôt un fichier Excel.. Universel, extrêmement souple.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
eucliwood090
Messages : 27
Inscription : 29 juin 2019, 22:00

Re: Mesure consommation virtuelle

Message par eucliwood090 »

Effectivement , J'ai pas appelé le Dummy Eau mais Compteur_eau

ça à l'air de fonctionner je verrais demain pour voir si les valeurs sont bonnes.

Comme solution quand on à pas de compteur à impulsion c'est formidable .

Merci

vil1driver, Justement je déjà ma consommation électricité de gaz , il me manque l'eau donc si je peux tout mettre au même endroit, apres c'est juste de la visu mes relevés je vais les faire tout les mois .
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Mesure consommation virtuelle

Message par vil1driver »

@fredandrick65

Sympa ton script.
Personnellement je l'aurais fait de type VARIABLE
Il n'aurait été lancé qu'au changement de la variable concernée

Code : Tout sélectionner

if uservariablechanged['ma var'] 
Pas forcément utile ici mais toujours bon à connaître ;)
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
fredandrick65
Messages : 121
Inscription : 23 avr. 2016, 20:45

Re: Mesure consommation virtuelle

Message par fredandrick65 »

vil1driver a écrit : 03 déc. 2019, 20:49 @fredandrick65

Sympa ton script.
Personnellement je l'aurais fait de type VARIABLE
Il n'aurait été lancé qu'au changement de la variable concernée

Code : Tout sélectionner

if uservariablechanged['ma var'] 
Pas forcément utile ici mais toujours bon à connaître ;)
Merci vil1driver
Toujours bon à connaître effectivement

En fait ce n'est qu'une partie du script que j'ai posté, car comme je ne relève pas forcement tout les jours le compteur (absences, vacances, ou trop de pluie, le compteur est au fond du jardin, et des fois sous l'eau) j'incrémente la consommation à l'aide d'une autre variable (que je change en fonction du nombre de personnes présentes) pour éviter d'avoir des pics de consommations sur la courbe
Domoticz V3.8153 sur Synology DS3615xs DSM 5.2-5967 Update 3
RFLink_v1.1_r46 (433.92 & 433.42 Mhz)
Sonde Oregon THGR810-Prise Everspring-OWL CM180
Humidité du sol Opus XT300-Sondes Oregon pour les nuls V2

Les non-dit font les pires malentendus ! ;)
Répondre