Page 1 sur 1

Changement d'état sur dépassement de valeur de consommation

Publié : 14 nov. 2019, 18:32
par manuinfo
Bonjour,
J'ai réalisé ce petit script lua pour mettre à jour un interrupteur de type on/off si la consommation d'une prise électrique en Watt est supérieure à une valeur donnée.

Script LUA de type script_time ci-dessous:

Code : Tout sélectionner

-- print('Surveillance du fonctionnement')

commandArray = {}

conso = tonumber(otherdevices_svalues['PC Conso'])

-- Surveillance du changement de consommation pour en déduire l'état de fonctionnement de l'équipement qui est branché :
-- <5W = équipement éteint
-- >5W = équipement en fonctionnement

if (conso > 5) then
-- print('Equipement en fonctionnement')
commandArray['Equipement'] = 'On'
else
-- print('Equipement éteint')
commandArray['Equipement'] = 'Off'
end

return commandArray
Cela fonctionnement mais le problème que je rencontre c'est que comme c'est un script time, toutes les minutes il écrit dans les logs pour dire off ou on à répétition, j'aurais aimé avoir le principe de changement d'état du type script_device mais ce n'est pas possible.

J'espère avoir été clair et j'aimerais avoir votre aide, des idées pour permettre d'avoir l'état de fonctionnement basé sur la consommation électrique de ma prise, mais uniquement qd changement de dépassement de la puissance que je teste, mais en écrivant une fois dans les logs si dépassement de la valeur donnée.

Merci par avance de votre aide.

Re: Changement d'état sur dépassement de valeur de consommation

Publié : 14 nov. 2019, 18:53
par denis_brasseur
Tout est dans le titre : CHANGEMENT D'ETAT
Pourquoi ne pas passer par un script type device, en utilisant
if devicechanged['PC - Conso']
et
otherdevices['PC - Conso'] > valeur
?

Re: Changement d'état sur dépassement de valeur de consommation

Publié : 15 nov. 2019, 01:17
par lmet
Salut,
Es-tu sûr du code que tu nous proposes ?
Tu calcules "conso_insert" :

Code : Tout sélectionner

conso_insert = tonumber(otherdevices_svalues['PC Conso'])
Puis tu compares "PC - Conso" qui vaut "nil" à ce stade.

Code : Tout sélectionner

if (PC - Conso > 5) then
"PC Conso" et "PC - Conso" sont deux éléments différents.
Et c'est plutôt :

Code : Tout sélectionner

if conso_insert > 5 then ...  
Que tu devrais utiliser. N'hésites pas à remettre ton code avant de voir les problèmes de log.

Re: Changement d'état sur dépassement de valeur de consommation

Publié : 15 nov. 2019, 15:50
par manuinfo
Bonjour, désolé quelques erreurs de copier/coller avec un ancien essai de script lua.

J'ai mis à jour mon premier post avec le bon script.

Merci de votre aide.

Re: Changement d'état sur dépassement de valeur de consommation

Publié : 15 nov. 2019, 16:20
par lmet
Salut,
Pas testé mais tu envoies "On" ou "Off" toutes les minutes. En interrogeant le statut de l'équipement la commande n'est envoyée qu'une fois lors du passage du seuil de 5w

Code : Tout sélectionner

commandArray = {}

	conso = tonumber(otherdevices_svalues['PC Conso'])
	-- Surveillance du changement de consommation pour en déduire l'état de fonctionnement de l'équipement qui est branché :
	-- <5W = équipement éteint
	-- >5W = équipement en fonctionnement
	if (conso > 5) and (otherdevices ['Equipement'] == "Off") then
		-- print('Equipement en fonctionnement')
		commandArray['Equipement'] = 'On'
	elseif (conso < 5) and (otherdevices ['Equipement'] == "On") then
		-- print('Equipement éteint')
		commandArray['Equipement'] = 'Off'
	end

return commandArray

Re: Changement d'état sur dépassement de valeur de consommation

Publié : 16 nov. 2019, 11:30
par manuinfo
Bonjour et merci cela fonctionne il me manquait cette subtilité du test sur l'état pour éviter de générer toutes les minutes un on ou off comme tu l'as compris.

Merci beaucoup.

Re: Changement d'état sur dépassement de valeur de consommation

Publié : 30 avr. 2020, 23:34
par Coyote
Bonsoir,

Je débute, je commence a comprendre certains principes, ca reste encore un peu confus
Comment pourrait on adapter ce script pour s'assurer par exemple que la conso est restée sous 5W pendant disons 15 minutes avant de passer l'état a OFF?

Bonne soirée