à mon tour de partager mon script de chauffage (version PID)
fortement inspiré du travail de certain (merci à eux..), j'ai fais ceci
pas bien gros hein-- Ce script permet réguler la température de la zone
-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/modules.lua')
--------------------------------
------ Variables à éditer ------
--------------------------------
local pid={}
pid['debug'] = true -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
pid['zone'] = 'thomas' -- nom de la zone pour affichage dans les logs et distinction de variables
pid['sonde'] = 'thomas' -- Nom de la sonde de température
pid['sonde_ext'] = '' -- Nom de la sonde de température ext si présente (option)
pid['OnOff'] = 'chauffage' -- Nom de l'interrupteur virtuel de mise en route (été/hiver)
pid['thermostat'] = 19 -- consigne ou 'nom' de l'interrupteur virtuel de thermostat
pid['ref'] = 8 -- écart entre temp ext et consigne au moment de l'autotune (option)
-- actionneur
pid['radiateur'] = 'radiateur thomas' -- Nom de l'interrupteur de chauffage
pid['invert'] = false -- si On et Off doivent être inversé ou non
-- PID
pid['Kp'] = 45 -- Coefficient proportionnel
pid['Ki'] = 20 -- Coefficient intégrateur
pid['Kd'] = 45 -- Coefficient dérivateur
pid['Kb'] = 1 -- Coefficient de boucle ouverte (option)
pid['cycle'] = 10 -- temps en minute d'un cycle PID
pid['secu'] = 30 -- temps mini en seconde entre 2 ordres opposés
--------------------------------
-- Fin des variables à éditer --
--------------------------------
commandArray = {}
compute(pid)
--autotune(pid)
return commandArray
/!\ ce script doit être de type TIME /!\
seul pré requis à son bon fonctionnement est la création d'un fichier nommé modules.lua dans votre dossier lua, qui aura la charge des calculs utiles.
vous trouverez le lien vers ce fichier dans ma signature.acefx a écrit : 13 avr. 2019, 21:02 le chemin des scripts Lua sur syno 6.2 c'est
volume1/@appstore/domoticz/var/scripts/lua
fichier dans lequel vous devrez juste changer ceci
Code : Tout sélectionner
domoticzIP = '192.168.22.100'
domoticzPORT = '8080'
une fonction permet de les déterminer automatiquement, par une très légère modification du script.
il suffit simplement de passer le script en type DEVICE et de remplacer compute(pid) par autotune(pid)
votre chauffage va du coups fonctionner en mode hystérésis +-0.1°C
l'autotune va alors analyser sur plusieurs heures (la consigne doit être fixe) votre courbe de température
et vous proposer (dans les logs) un triplet de valeurs adéquates.
ne restera plus qu'a indiquer ces valeurs dans le script et à le repasser en type TIME, sans oublier de remplacer autotune(pid) par compute(pid)
-Optionnel-
ajustement dynamique des coefficients pid selon les fluctuations de température extérieure et/ou de consigne
indiquer l'écart approximatif entre consigne et température extérieure au moment de l'autotune -> pid['ref']
Kb corresponds en gros à la qualité de votre isolation (0 pour une isolation parfaite ou pour désactiver)
exemple si l'autotune à été réalisé avec 10°C extérieur pour une consigne de 19°C
indiquer ref = 9
si Kb = 1, alors 1% de modification sera appliqué aux 3 coeff pid, par degré d'écart
soit +5% s'il venait à faire 5°C dehors ou si vous passez la consigne à 24°C