[LUA] Délesteur

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
Répondre
Phil62
Messages : 21
Inscription : 23 juin 2015, 11:36

[LUA] Délesteur

Message par Phil62 »

Je débute avec Domoticz et Lua ,alors les scripts ne sont peut être pas parfait.

Matériel utilisé :
Raspberry avec Domoticz et RFXCom :D
1 module commutateur 3 charges ITL 3500 (compatible Chacon).
1 CM 180
1 relais à 2 contact repos 220V 16A (pour pouvoir couper une charge de 32A).
2 relais à 1 contact travail et 1 contact repos 220V 16A.

Sur les relais ne sont utilisé que les contacts repos de façon à ce que les relais ne soient pas toujours sous tension.
Le commutateur et les relais sont installé dans le tableau électrique.

J'ai voulu reproduire le principe des délesteurs du commerce vendu par les grandes marques de fournitures élec.

Soit : 3 délestages qui agissent l'un après l'autre si la puissance est au dessus d'un seuil , (ajustable dans un script)
Le réarmement se fait au bout de 10 minutes (ajustable dans le script),sur les 3 délestages pour voir ou en est la puissance totale.

Les disjoncteurs EDF ne déclenche pas instantanément (chez moi pour un réglage à 15A soit ~ 3400 watts le disjoncteur tiens jusqu'à ~4500 watts un cours moment)

Il y a 2 scripts :

Pour le délestage : script_device_delestage1.lua .Plus rapide pour délester d'être en device quand time
Pour le réarment : script_time_delestage2.lua

Enfin ,voila les scripts

Pour le délestage

Code : Tout sélectionner

-- script_device_delestage1.lua
-- Utilisé pour le délestage
-- Consommation est le nom de la valeur du CM180
local consommation = otherdevices_svalues['Consommation']

local delestage_1 = 'Delestage1'    -- relais 1
local delestage_2 = 'Delestage2'     --relais 2
local delestage_3 = 'Delestage3'     --relais 3

local consigne = 3500      -- Puisance maxi en Watts


commandArray = {}

	if devicechanged['Consommation'] then

 	-- determination de la puissance instantanee

		power, total = otherdevices_svalues['Consommation']:match("([^;]+);([^;]+)")
		local conso_instant = tonumber(power)


	-- si puissance instantanee > consigne on deleste , les 3 delestages par sequence	

	
		if (conso_instant > consigne and otherdevices['Delestage1'] == 'On' and otherdevices['Delestage2'] == 'On' and otherdevices['Delestage3'] == 'Off' ) then
			commandArray['Delestage3'] = 'On'
		end

		if (conso_instant > consigne and otherdevices['Delestage1'] == 'On' and otherdevices['Delestage2'] == 'Off'  ) then
			commandArray['Delestage2'] = 'On'
		end


		if (conso_instant > consigne and otherdevices['Delestage1'] == 'Off') then
			commandArray['Delestage1'] = 'On'
		end

	end


return commandArray

Pour le réarmement

Code : Tout sélectionner

-- script_time_delestage2.lua
-- Utilisé pour rearmer les délestages


local delestage_1 = 'Delestage1'    -- relais 1
local delestage_2 = 'Delestage2'     --relais 2
local delestage_3 = 'Delestage3'     -- relais 3


local fin_delestage = 600  -- temporisation du delestage 10 minutes



time = os.date("*t") 

-- fontion calcul difference de temps

function timedifference(d)
   s = otherdevices_lastupdate[d]
   year = string.sub(s, 1, 4)
   month = string.sub(s, 6, 7)
   day = string.sub(s, 9, 10)
   hour = string.sub(s, 12, 13)
   minutes = string.sub(s, 15, 16)
   seconds = string.sub(s, 18, 19)
   t1 = os.time()
   t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
   difference = os.difftime (t1, t2)
   return difference
end

-- calcul depuis combien de temps le premier  delestage est en fonction 

local on_delest1 = timedifference(delestage_1)


commandArray = {}

		

		-- si on est deleste plus de 10 minutes sur Delestage1 on arrete pour verifier la puissance

		if ( on_delest1 > fin_delestage ) then 
			commandArray[delestage_1]= 'Off'
			commandArray[delestage_2]= 'Off'
			commandArray[delestage_3]= 'Off'
		end


	
return commandArray
	
	
Je dois dire que j'ai 'pompé' certaine fonction sur le forum.
Voila , j'attends vos retours .
Bonne soirée
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Délesteur

Message par vil1driver »

Salut,

Merci, vraiment très sympa.

Juste un point qui me choque, pour moi il y a danger !
Phil62 a écrit :(...)
1 relais à 2 contact repos 220V 16A (pour pouvoir couper une charge de 32A).(...)
Peux tu détailler ?
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
Phil62
Messages : 21
Inscription : 23 juin 2015, 11:36

Re: Délesteur

Message par Phil62 »

Il n'y a pas de danger ,tu branches les 2 contacts en parallèle ,donc à 32A tu n'a que 16A par contact.
(J'ai édité mon profil ;) )
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Délesteur

Message par vil1driver »

C'est bien ce que j'avais crû comprendre.
Tu veux dire la phase sur un contact et le neutre sur l'autre ?

Tu te trompes, ça ne divise pas l'intensité, il y a 32A qui passe dans chaque contact.

Ça va prendre feu !

L'électricité c'est dangereux et tu ne dois pas y aller à l'instinct.
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
Phil62
Messages : 21
Inscription : 23 juin 2015, 11:36

Re: Délesteur

Message par Phil62 »

Mais non ,la si tu fais cela ,c'est certain les contacts vont fondre (au mieux).
C'est ton fil de phase que tu fait passer par les 2 contacts .Je te fais un schéma dans la journée ce sera plus parlant.
Dernière modification par Phil62 le 24 juin 2015, 15:51, modifié 1 fois.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Délesteur

Message par vil1driver »

Je veins de comprendre..ton càblage est ok..
Il y a tellement d'aprentis sorciers que je préférais prévenir.

Encore merci pour ton partage et bienvenue à toi.
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
Phil62
Messages : 21
Inscription : 23 juin 2015, 11:36

Re: Délesteur

Message par Phil62 »

Pas de problème. :D
Sinon j'avais trouvé ça ,n'étant pas un bon prof https://fr.wikipedia.org/wiki/Diviseur_de_courant
Jihem
Messages : 337
Inscription : 19 sept. 2014, 13:04
Localisation : Finistère Sud

Re: Délesteur

Message par Jihem »

Bonjour
Je déterre ce sujet car je trouve le script très intéressant mais je me demande si le temps de réponse du CM180 n’est pas trop long, 1 minute chez moi, pour éviter que l'installation ne disjoncte?
J'envisage donc d'utiliser les info du compteur EDF qui envoie les données toutes les 10 secondes.
Par contre ces données dans le retour de de la tléinfo sont du format :
33344445;0;0;0;330;0
et ne maitrisant pas la syntaxe de l'expression

Code : Tout sélectionner

power, total = otherdevices_svalues['Consommation']:match("([^;]+);([^;]+)")
je n'arrive pas à isoler la valeur de la conso instantanée qui est en 5eme position dans la chaîne.
Quelqu’un peut il m'aider?
Merci d'anace
Hard:Raspberry Pi4 + SSD Arduino Tablette murale Archos
Soft: Domoticz WireGuard vpn Homebridge Tradfri Ikea
Devices:[/colore]Rfxtrx433 DI-O Chacon Sonoff touch Anémomètre, pluviometre, sondes Orégon, capteurs humidité Miflora, téléinfo
Phil62
Messages : 21
Inscription : 23 juin 2015, 11:36

Re: Délesteur

Message par Phil62 »

Tout d'abord toutes mes excuses pour le "léger" retard de la réponse. :oops:

Pour la minute de délai ,chez moi il n'y a eu aucun problème depuis le montage.Les disjoncteurs EDF ne déclenchent pas instantanément en cas de dépassement de puissance max., sauf ,bien sur , en cas de court-circuit ou de sur-intensité "violente". Même avec Linky ;)

Chez moi ,réglage disjoncteur 15A (3KVA) ,j'arrive à monter à >4 Kw (CM180) avant que le délestage ne s'active (chauffe rapide du four + machine à laver) et le disjoncteur ne bronche pas ni le Linky.

Pour la programmation ,je ne peux pas vous aider pour le moment.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Délesteur

Message par vil1driver »

;)

Code : Tout sélectionner

Un, deux, trois, quatre, cinq, six= otherdevices_svalues['Consommation']:match("([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);([^;]+)")
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
Répondre