Recherche script delestage en LUA

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 <\>.
joris
Messages : 5
Inscription : 08 sept. 2017, 09:46

Recherche script delestage en LUA

Message par joris »

Bonjour à tous,

Jusqu'à présent j'utilisais surtout le forum en mode lecteur, j'y ai puisé nombre d'infos précieuses pour mon installation et j'en remercie les différents contributeurs.

Je suis à la recherche d'un script de délestage en LUA qui permettrai de délester (quand j'approche la puissance max de mon abonnement EDF) prioritairement les pièces dans lesquelles la température est la plus proche de la consigne afin d'améliorer le confort des occupants.

J'ai pas mal cherché sur le forum, mais jusqu'a présent je n'ai pas trouvé mon bonheur, si un tel script n'existe pas déjà, je peux mettre les mains dans le cambouis (ou dans notepad plutôt dans ce cas) si besoin, mais je ne maîtrise pas autant LUA que d'autres languages et plus précisement je bloque sur le moyen de trier les ecart températures/consigne des différentes pièces...

En vous remerciant !!!!!
oula85
Messages : 161
Inscription : 29 avr. 2015, 18:09
Localisation : Challans

Re: Recherche script delestage en LUA

Message par oula85 »

tu dois pouvoir adapter sur la base du mien

Code : Tout sélectionner

--script_device_delestage.lua

-- script qui deleste sur 2 seuils avec un CM180 --

-- detection seuil enclenchement salon --
-- si owl supérieur à 6000 enclenchement de l'interrupteur virtuel sinon si owl inférieur a 3200 remise a zero de l'interrupteur --

commandArray = {}
owl, total = otherdevices_svalues['CM180']:match("([^;]+);([^;]+)")
owl = tonumber(owl)
if devicechanged['CM180'] then  
if (owl > 6500) and (otherdevices['Delestage Seuil 6000/3200'] == 'Off') then
commandArray['Delestage Seuil 6000/3200']='On'
elseif (owl < 3500) and (otherdevices['Delestage Seuil 6000/3200'] == 'On') then
commandArray['Delestage Seuil 6000/3200']='Off'
end
end


-- detection seuil enclenchement chambre 2 --
-- si owl supérieur à 6000 enclenchement de l'interrupteur virtuel sinon si owl inférieur a 3200 remise a zero de l'interrupteur --

owl, total = otherdevices_svalues['CM180']:match("([^;]+);([^;]+)")
owl = tonumber(owl)
if devicechanged['CM180'] then  
if (owl > 7000) and (otherdevices['Delestage Seuil 6500/5400'] == 'Off') then
commandArray['Delestage Seuil 6500/5400']='On'
elseif (owl < 6100) and (otherdevices['Delestage Seuil 6500/5400'] == 'On') then
commandArray['Delestage Seuil 6500/5400']='Off'
end
end


-- enclenchement delestage salon --
-- si l'interrupteur virtuel est a ON on active le mode eco de la zone ( repris dans un blocky de chauffe en ligne de securité ) --

if (devicechanged['Delestage Seuil 6000/3200'] == 'On') and (otherdevices['Eco chauffage Salon'] == 'Off') then
commandArray['Eco chauffage Salon']='On' 

end


-- arret delestage salon --
-- si l'interrupteur virtuel est a OFF on desactive le mode eco de la zone ( repris dans un blocky de chauffe en ligne de securité ) --

if (devicechanged['Delestage Seuil 6000/3200'] == 'Off') and (otherdevices['Eco chauffage Salon'] == 'On') then
commandArray['Eco chauffage Salon']='Off' 


end


-- enclenchement delestage chambre 2 --
-- si l'interrupteur virtuel est a ON on active le mode eco de la zone ( repris dans un blocky de chauffe en ligne de securité ) --


if (devicechanged['Delestage Seuil 6500/5400'] == 'On') and (otherdevices['Eco chauffage Chambre 2'] == 'Off') then
commandArray['Eco chauffage Chambre 2']='On' 


end


-- arret delestage chambre 2 --
-- si l'interrupteur virtuel est a OFF on desactive le mode eco de la zone ( repris dans un blocky de chauffe en ligne de securité ) --

if (devicechanged['Delestage Seuil 6500/5400'] == 'Off') and (otherdevices['Eco chauffage Chambre 2'] == 'On') then
commandArray['Eco chauffage Chambre 2']='Off' 



end
return commandArray 







joris
Messages : 5
Inscription : 08 sept. 2017, 09:46

Re: Recherche script delestage en LUA

Message par joris »

salut,

J'étais tombé sur son script lors de mes recherches, mais plutôt que de délester certains pièces spécifiques, je me disais qu'il pourrait être plus agréable en terme de confort, de delester les pièces les plus proches de leur consigne (donc les plus chaudes) en priorité.

L'idée de base serait de comparer toutes les pièces à leur consigne et de trier tout ça par ordre croissant mais je ne sais pas si une telle fonction est faisable en lua. En python par exemple, on pourrait creer un tableau clé, écart et le trier en fonction de l'écart, mais de ce que j'ai lu Lua ne permet pas de le faire sur les valeurs, uniquement sur les clé ...



[Edit] j'ai trouvé comment trier mon tableau, reste plus qu'a passer à la phase de test :lol:
oula85
Messages : 161
Inscription : 29 avr. 2015, 18:09
Localisation : Challans

Re: Recherche script delestage en LUA

Message par oula85 »

Pas idiot du tout reste à savoir comment tu vas pouvoir couper la zone choisie...te faudra autant d inter virtuels que de pièces pour pouvoir les couper séparement je pense.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Recherche script delestage en LUA

Message par vil1driver »

Salut,

Le mieux est je pense, de mettre 20€ de plus par an
Pour un abonnement qui t'évitera d'avoir à délester.

Ceci dit je veux bien aider avec le tri des temps.
Dernière modification par vil1driver le 22 oct. 2017, 18:42, modifié 1 fois.
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
joris
Messages : 5
Inscription : 08 sept. 2017, 09:46

Re: Recherche script delestage en LUA

Message par joris »

oula85 a écrit :Pas idiot du tout reste à savoir comment tu vas pouvoir couper la zone choisie...te faudra autant d inter virtuels que de pièces pour pouvoir les couper séparement je pense.
C'est déjà le cas de façon à piloter au plus juste les plages horaires des différentes pièces, notemment des chambres étant donné que tout le monde à des horaires de présence radicalement différents.
oula85
Messages : 161
Inscription : 29 avr. 2015, 18:09
Localisation : Challans

Re: Recherche script delestage en LUA

Message par oula85 »

joris a écrit :
oula85 a écrit :Pas idiot du tout reste à savoir comment tu vas pouvoir couper la zone choisie...te faudra autant d inter virtuels que de pièces pour pouvoir les couper séparement je pense.
C'est déjà le cas de façon à piloter au plus juste les plages horaires des différentes pièces, notemment des chambres étant donné que tout le monde à des horaires de présence radicalement différents.
oui ça j'ai bien compris comme chez moi mais si tu as par exemple salon et chambre 1 et que tu veux couper seulement dans le salon comment va tu modifier ton programme pour qu'il prenne en compte le delestage seulement dans cette zone ? tu ne peux pas désactiver le programme déja actif ou alors rajouter une condition qui bloquera le chauffage dans la zone propre à chaque zone ( ce que j'ai fais dans mon script un inter eco qui bascule avec des conditions pour chaque zone ), les 2 principales energivores.
joris
Messages : 5
Inscription : 08 sept. 2017, 09:46

Re: Recherche script delestage en LUA

Message par joris »

Mon install est la suivante (les radiateurs sont tous des panneaux rayonnants sauf la salle de bain ou c'est sèche serviette à inertie):
  • 3 chambres avec 1 sonde T° par chambre et 1 module par radiateur
  • 1 Salle de bain avec 1 sonde T°+Hygro pour piloter par la suite la vitesse de la VMC et 1 module sur le radiateur (ça me permet également de lui coller 1° de plus sur la consigne de T° c'est plus agréable pour une salle de bain)
  • 1 Séjour avec une sonde de T° et 1 module pour 3 radiateurs (sans conteste mon plus gros poste énergivore)
  • 1 module teleinfo pour surveiller les infos en provenance du compteur
Je me suis basé sur ce script (Time) en incluant une valeur de conso à ne pas dépasser pour pouvoir activer un nouveau radiateur.
Enfin un script Device sur le compteur qui deleste la(les) pièce(s) les plus chaudes si la conso dépasse un seuil défini.
Répondre