thermostat simple

Vous avez crée 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.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
marsflow
Messages : 32
Inscription : 25 mai 2017, 20:42
Localisation : Landes

thermostat simple

Messagepar marsflow » 28 nov. 2017, 23:58

Bonsoir,

je vous partage mon thermostat de chauffage, j'apprend encore le lua, si c'est brouillon soyez indulgent

Code : Tout sélectionner

 --[[
mon script permet le démarrage d'un poele à granulee par infrarouge (broadlink rm2) et
allume le chauffage dans une hysteresis, c'est une amélioration de ce que j'ai trouvé sur le forum
les points que j'ai amélioré sont :
- l'amélioration du devicechanged   sonde avec mon interrupteur OnOff pour empêcher que le script s'execute
à chaque réception de la température sonde
- de l'extinction du chauffage avec mon interrupteur OnOff

--]]

 --------------------------------
 ------ Start of edit section ------
 --------------------------------
 
 local consigne = tonumber(otherdevices_svalues['thermostat granulee'])  -- Température thermostat
 local hysteresis = 2 --Valeur seuil pour éviter que le relais ne cesse de commuter dans les 2 sens
 local sonde = 'RM2Temp' --Nom de la sonde de température
 local OnOff = 'marche regulation thermostat' --Nom de l'inter virtuel de démarrage de la régulation hysteresis
 local radiateur = 'autorisation M ' --Nom du radiateur à allumer/éteindre
 
 --------------------------------
 -- End of edit section --
 --------------------------------

commandArray = {}
--ma sonde de température qui arrive du broadlink RM2 toutes les 2 min et un interrupteur virtuel autorise le démarrage du script
--pour chauffer ou non.
if (devicechanged[sonde]) and (otherdevices[OnOff]=='On') then
 
   
   local temperature = devicechanged[string.format('%s_Temperature', sonde)] --Temperature relevée
   
    if (otherdevices[OnOff]=='On') then -- si mon interrupteur est en on tout est ok pour chauffer
        print ('-- régulation chauffage actif --')
        print ('consigne : ' .. consigne)
      print ('hysteresis : ' .. hysteresis)
      print ('température : ' .. temperature)
           if (temperature < (consigne - hysteresis) and otherdevices[radiateur]=='Off') then
            print('Allumage du chauffage')
            commandArray[radiateur]='On'
           
           elseif (temperature > (consigne + hysteresis) and otherdevices[radiateur]=='On') then
           print('Extinction du chauffage')
            commandArray[radiateur]='Off'

            end
    end
   -- si je met mon interrupteur en off 2 choix
   --1er si mon radiateur fonctionne il le coupe
   --2ème si mon chauffage ne fonctionne pas parce que la température de la pièce est dans l'hysteresis.
   -- il m'indique juste qu'il est coupé je crois qu'il ne sert à rien le second choix mais c'est carré.
 
 elseif (devicechanged[OnOff]=='Off') and (otherdevices[radiateur]=='On') then
    commandArray[radiateur]='Off'
   print ('chauffage extinction')
 elseif (devicechanged[OnOff]=='Off') and (otherdevices[radiateur]=='Off') then
    print ('chauffage arrêté')
     

end
 

return commandArray
Dernière édition par marsflow le 29 nov. 2017, 17:36, édité 1 fois.
Nas
Asustor AS-608T WD2x4TB WD SE
Western Digital Sharespace WD4x2TB Green edition

Ordinateur
Asus N750JV-T4222H
(Asus M2N32-Sli Wifi édition
Nvidia Geforce 510
Processeur AMD Athlon 64 X2 Dual core 3000+)

Téléphone
Samsung Galaxy Note 1, 2 et 3, 5

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


marsflow
Messages : 32
Inscription : 25 mai 2017, 20:42
Localisation : Landes

Re: thermostat simple

Messagepar marsflow » 29 nov. 2017, 00:45

j'ai une question comment on fait pour mettre
print ('-- régulation chauffage actif --')
print ('consigne : ' .. consigne)
print ('hysteresis : ' .. hysteresis)
print ('température : ' .. temperature)
en log si on veut les afficher dans le journal ou pas ???
Nas
Asustor AS-608T WD2x4TB WD SE
Western Digital Sharespace WD4x2TB Green edition

Ordinateur
Asus N750JV-T4222H
(Asus M2N32-Sli Wifi édition
Nvidia Geforce 510
Processeur AMD Athlon 64 X2 Dual core 3000+)

Téléphone
Samsung Galaxy Note 1, 2 et 3, 5

marsflow
Messages : 32
Inscription : 25 mai 2017, 20:42
Localisation : Landes

Re: thermostat simple

Messagepar marsflow » 29 nov. 2017, 18:01

marsflow a écrit :j'ai une question comment on fait pour mettre
print ('-- régulation chauffage actif --')
print ('consigne : ' .. consigne)
print ('hysteresis : ' .. hysteresis)
print ('température : ' .. temperature)
en log si on veut les afficher dans le journal ou pas ???


j'ai trouvé

dans la partie edit section j'ai mit
local debug = false
ou
local debug = true

et dans mon script j'ai mit

Code : Tout sélectionner

if debug then
         print ('-- régulation chauffage actif --')
            print ('consigne : ' .. consigne)
          print ('hysteresis : ' .. hysteresis)
          print ('température : ' .. temperature)
          end
Nas
Asustor AS-608T WD2x4TB WD SE
Western Digital Sharespace WD4x2TB Green edition

Ordinateur
Asus N750JV-T4222H
(Asus M2N32-Sli Wifi édition
Nvidia Geforce 510
Processeur AMD Athlon 64 X2 Dual core 3000+)

Téléphone
Samsung Galaxy Note 1, 2 et 3, 5

marsflow
Messages : 32
Inscription : 25 mai 2017, 20:42
Localisation : Landes

Re: thermostat simple

Messagepar marsflow » 29 nov. 2017, 18:08

mon script modifié

Code : Tout sélectionner

--[[
mon script permet le démarrage d'un poele à granulee par infrarouge (broadlink rm2) et
allume le chauffage dans une hysteresis, c'est une amélioration de ce que j'ai trouvé sur le forum
les points que j'ai amélioré sont :
- l'amélioration du devicechanged   sonde avec mon interrupteur OnOff pour empêcher que le script s'execute
à chaque réception de la température sonde
- de l'extinction du chauffage avec mon interrupteur OnOff

--]]

 --------------------------------
 ------ Start of edit section ------
 --------------------------------
 
 local consigne = tonumber(otherdevices_svalues['thermostat granulee'])  -- Température thermostat
 local hysteresis = tonumber(otherdevices_svalues['hysteresisReg']) --Valeur seuil pour éviter que le relais ne cesse de commuter dans les 2 sens
 local sonde = 'RM2Temp' --Nom de la sonde de température
 local OnOff = 'marche regulation thermostat' --Nom de l'inter virtuel de démarrage de la régulation hysteresis
 local radiateur = 'autorisation M' --Nom du radiateur à allumer/éteindre
 local debug = true --true pour voir le log ou false pour pas l'afficher
 --------------------------------
 -- End of edit section --
 --------------------------------

commandArray = {}
--ma sonde de température qui arrive du broadlink RM2 toutes les 2 min et un interrupteur virtuel autorise le démarrage du script
--pour chauffer ou non.
if (devicechanged[sonde]) and (otherdevices[OnOff]=='On') then
 
   
   local temperature = devicechanged[string.format('%s_Temperature', sonde)] --Temperature relevée
   
    if (otherdevices[OnOff]=='On') then -- si mon interrupteur est en on tout est ok pour chauffer
            print ('-- régulation chauffage actif --')
      if debug then
         print ('-- régulation chauffage actif --')
            print ('consigne : ' .. consigne)
          print ('hysteresis : ' .. hysteresis)
          print ('température : ' .. temperature)
          end
            if (temperature < (consigne - hysteresis) and otherdevices[radiateur]=='Off') then
               
            print('Allumage du chauffage')
                 commandArray[radiateur]='On'
           
           elseif (temperature > (consigne + hysteresis) and otherdevices[radiateur]=='On') then
                 print('Extinction du chauffage')
                 commandArray[radiateur]='Off'

           end
    end
   -- si je met mon interrupteur en off 2 choix
   --1er si mon radiateur fonctionne il le coupe
   --2ème si mon chauffage ne fonctionne pas parce que la température de la pièce est dans l'hysteresis.
   -- il m'indique juste qu'il est coupé je crois qu'il ne sert à rien le second choix mais c'est carré.
 
 elseif (devicechanged[OnOff]=='Off') and (otherdevices[radiateur]=='On') then
    commandArray[radiateur]='Off'
   print ('chauffage extinction')
 elseif (devicechanged[OnOff]=='Off') and (otherdevices[radiateur]=='Off') then
    print ('chauffage arrêté')
     

end
 

return commandArray
Nas
Asustor AS-608T WD2x4TB WD SE
Western Digital Sharespace WD4x2TB Green edition

Ordinateur
Asus N750JV-T4222H
(Asus M2N32-Sli Wifi édition
Nvidia Geforce 510
Processeur AMD Athlon 64 X2 Dual core 3000+)

Téléphone
Samsung Galaxy Note 1, 2 et 3, 5

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


QcVictor
Messages : 62
Inscription : 17 janv. 2015, 14:52

Re: thermostat simple

Messagepar QcVictor » 26 janv. 2018, 01:14

Merci ton partage, tu ma appris a faire fonctionner la fonction interrupteur OnOff

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.



Revenir vers « La Bibliothèque Scripts et Tutos »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 7 invités