lecture de donnée a une heure précise

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 <\>.
Répondre
kurb77
Messages : 39
Inscription : 14 avr. 2015, 08:04

lecture de donnée a une heure précise

Message par kurb77 »

hello,
je voudrais calculer ma consommation électrique sur ma periode HC/HP, j'ai regarder dans les requetes JSON, il semble qu'il n'y ai rien qui permette de faire cela.

une idée de comment je pourrais faire cela, a part lancer des lectures au heure de changement de periode ?

merci par avance
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: lecture de donnée a une heure précise

Message par Keros »

DomoticZ donne des graphes avec la répartition HC/HP avec la possibilité d'export du graphique en Excel.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: lecture de donnée a une heure précise

Message par Flying Domotic »

Les données sont dans la base, dans la table Multimeter pour la période courante (en général les dernières 24h, réglable dans les options), et dans la table Multimeter_Calendar pour les valeurs par jour. C'est de là que les données sont extraites pour les graphes.

Quel est le besoin, de façon un peu plus détaillée ?
kurb77
Messages : 39
Inscription : 14 avr. 2015, 08:04

Re: lecture de donnée a une heure précise

Message par kurb77 »

je voudrais avoir ma consommation a 6h, 22h, et 0h, de manière a pouvoir calculer ma consommation electrique suivant les periode HC/HP
sinon je vais faire un scripte qui ce déclenchera a ces horaires...,

merci
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: lecture de donnée a une heure précise

Message par Flying Domotic »

Si je comprends bien, tu as une mesure de conso sans indication HP/HC, et tu veux pouvoir afficher la distinction entre les 2 tarifs ?

Si oui, est-ce que tu as un indicateur HP/HC dans un device Domoticz, ou tu veux simplement te baser sur l'heure (genre HC de 22h à 6h) ?

Donnes-moi les noms du/des devices Domoticz concernés chez toi, que j'adapte un de mes scripts.
kurb77
Messages : 39
Inscription : 14 avr. 2015, 08:04

Re: lecture de donnée a une heure précise

Message par kurb77 »

oui, c'est tout a fait cela, j'ai pas de remonté d'info sur les HC/HP, je voudrais faire cela sur l'heure (tempo dans mon cas)
l'id de mon module est le 337

merci par avance
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: lecture de donnée a une heure précise

Message par Flying Domotic »

Merci !

Quel est le nom associé au device 337 ?

D'autre part, est-ce qu'il y a un contact HP/HC connecté à Domoticz (sinon, on utilisera la tranche horaire 22h/6h) ?
kurb77
Messages : 39
Inscription : 14 avr. 2015, 08:04

Re: lecture de donnée a une heure précise

Message par kurb77 »

il n'y a pas de contacteur HC/HP, 6h-22h
le nom associer est 'consomation_total'

merci
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: lecture de donnée a une heure précise

Message par Flying Domotic »

Voilà le code à mettre dans la partie "Configuration" -> "Plus d'options" -> "Évènements", dans un nouveau script ("+" -> "Lua" -> "Device")

Il faut au préalable, créer un dispositif virtuel de type "P1 compteur intelligent (électrique)", et le nommer "Conso HP/HC globale". On peut lui donner n'importe quel nom en fait, il suffit de l'indiquer dans le second paramètre du script lord de l'appel de "dispatchEnergy".

Avec quelques modifs, on peut même se passer du cumul d'énergie si on a un dispositif qui n'envoie que la conso instantanée. On peut aussi gérer la partie réinjection, lorsqu'on a une production locale.

Code : Tout sélectionner

-- Gestion de la consommation standard (sans réinjection)

function dispatchEnergy(energyName, p1Name)						-- Répartit les données d'énergie d'un dispositif sans HP/HC dans un dispositif bi-tarif
	if (devicechanged[energyName]) then							-- Est-ce que le dispositif d'origine a été modifié ?
		lastP1 = otherdevices_svalues[p1Name]					-- Récupérer les valeurs précédentes du dispositif bi-tarif
		energyT1, energyT2, providedT1, providedT2, lastPower = lastP1:match("([^;]+);([^;]+);([^;]+);([^;]+);([^;]+)")	-- Découper les données
		energyT1 = tonumber(energyT1)							-- Convertir l’énergie tarif 1 en numérique
		energyT2 = tonumber(energyT2)							-- Même chose avec T2
		energyValues = otherdevices_svalues[energyName]			-- Récupérer la puissance instantanée et l'énergie du dispositif d'origine
		power, energy = energyValues:match("([^;]+);([^;]+)")	-- Découper les données
		energy = tonumber(energy)								-- Convertir l'énergie en numérique
		if (energy < (energyT1 + energyT2)) then				-- Est-ce qu'on a eu un reset depuis la dernière passe ?Do we got a reset ?
			energyT1 = 0										-- Oui, effacer les énergies 1 et 2
			energyT2 = 0
		end
		time = os.date("*t")									-- Récupérer date et heure courante
		if (time.hour < 6 or time.hour >= 22) then 				-- Est-ce qu'on est dans l'intervalle du tarif 2 ?
			energyT2 = energy - energyT1						-- Calculer l'énergie T2
		else													-- Sinon, on est en tarif 1
			energyT1 = energy - energyT2						-- Calculer le T1
		end
		p1Id = otherdevices_idx[p1Name]							-- Récupérer l'IDX du dispositif bi-tarif et le mettre à jour
		commandArray['UpdateDevice'] = p1Id.."|0|"..tostring(energyT1)..";".. tostring(energyT2)..";0;0;"..tostring(power)..";0"
	end
end

commandArray = {}												-- Initialiser la table de retour
dispatchEnergy('consomation_total', 'Conso HP/HC globale')		-- Dispositif d'origine, dispositif virtuel bi-tarif
return commandArray												-- Retour de la table

--[[
	Ce script convertit les données un dispositif de mesure de puissance instantanée/énergie totale standard (passé à dispatchEnergy en premier paramètre)
		dans un dispositif virtuel bi-tarif (à créer préalablement avec un type "P1 compteur intelligent (électrique)").
		A défaut d'indicateur de tarif, le tarif 2 est défini dans la période 22h - 6h, la période 1 en dehors.

	Flying Domotic - Décembre 2023
--]]
kurb77
Messages : 39
Inscription : 14 avr. 2015, 08:04

Re: lecture de donnée a une heure précise

Message par kurb77 »

merci,
je test cela
Répondre