Matériel utilisé :
Raspberry avec Domoticz et RFXCom
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
Voila , j'attends vos retours .
Bonne soirée