Page 1 sur 1
Comparaison de temperature pour chauffage
Publié : 15 févr. 2018, 18:18
par koody
Bonjour à tous,
Je possède une sonde qui m'envoie la température et l'humidité de ma pièce.
J'aimerai utiliser cette sonde pour réguler mon chauffage mais je ne sais pas comment aller chercher uniquement la valeur de la température en lua. Quelqu'un pourrait-il m'aider ?
Je veux juste enclencher un relais si la temperature est plus basse que 21 degrés et couper le relais si la temperature est supérieure ou égale à 21 degrés.
Merci pour votre aide
Re: Comparaison de temperature pour chauffage
Publié : 15 févr. 2018, 19:20
par balajol
Bonsoir,
Le script de vil1driver ma servi de base pour réaliser le mien
J' utilise principalement des sondes Oregon T+ H% . Tu devrais y retrouver les commandes de base.
Code : Tout sélectionner
-- Ce script permet de maintenir la température------ http://easydomoticz.com/forum/viewtopic.php?f=10&t=233-----Scipt_time_Thermostat_14_Sans_EASY--Fonctionnel
--------------------------------
------ Variables à éditer ------
--------------------------------
local consigne_conf_semaine = tonumber(string.match(otherdevices_svalues['Consigne-Danfoss-Confort'], "(%d+%.*%d*)"))-- 20 --'Consigne-Danfoss-Confort' -- Température de consigne confort en semaine
local consigne_conf_plus = tonumber(string.match(otherdevices_svalues['Consigne-Danfoss-Confort-Plus'], "(%d+%.*%d*)"))--21 -- Température de consigne confort plus le weekend
local consigne_eco = tonumber(string.match(otherdevices_svalues['Consigne-Danfoss-Eco'], "(%d+%.*%d*)"))--17 --'Consigne-Danfoss-Eco' -- Température de consigne économique
local consigne_abs = tonumber(string.match(otherdevices_svalues['Consigne-Danfoss-Hors-Gel'], "(%d+%.*%d*)"))--10 --'Consigne-Danfoss-Hors-Gel' -- Température de consigne lors d'abscence prolongée
local moyenne_sondes= 'Moyenne_T_Cuisine_Salon' -- Capteur virtuel, calculé par Lua, moyenne des Temp cuisine et salon
local sonde_Salon = 'Oregon_Salle_4' -- Nom de la sonde de température Salon
local sonde_cuisine = 'Oregon_Cuisine_3' -- Nom de la sonde de température Cuisine
local Temperature_TOPP_Bureau_Rdc_ = "Temperature_TOPP_Bureau_Rdc"
local Oregon_Bureau_C2_ = "Oregon_Bureau_C2"
local mode = 'mode_Eco-Conf-(Off:Eco--On:Conf)' -- Nom de l'interrupteur virtuel de sélection de mode Off=eco On=confort
local Presence = 'Presence_Partielle(On)_Hors_Gel(Off)' -- Nom de l'interrupteur virtuel de thermostat (Off=abscence prolongée)
local Easymatic_Domoticz= 'Mode-Chaudière' --Selecteur pour passer de la commande déportée filaire de la chaudière à Domoticz, connecteur à enficher sur la carte de la chaudiere poue revenir
--à l' Easymatic + cavalier sur entree thermostat
HeureFinConfort=uservariables["Heure-Fin_Confort"]---Variables utilisateur renseignées par sélecteur et blocky
HeureDebutConfort=uservariables["Heure-Debut_Confort"]-- " " "
--------------------------------
-- Fin des variables à éditer --
--------------------------------
time = os.date("*t")
commandArray = {}
if ( time.min%4 == 0 ) then--Lancement Script toutes les 4 minutes
if (otherdevices['Choix_sonde_chauf'] == 'Sonde_Cuisine') then
sonde = sonde_cuisine
elseif (otherdevices['Choix_sonde_chauf'] == 'Sonde_Salon') then
sonde = sonde_Salon
elseif (otherdevices['Choix_sonde_chauf'] == 'Moyenne_sondes') then
sonde = moyenne_sondes
elseif (otherdevices['Choix_sonde_chauf'] == 'Sonde_Ch_Rdc') then
sonde = Temperature_TOPP_Bureau_Rdc_
elseif (otherdevices['Choix_sonde_chauf'] == 'Sonde_Bureau') then
sonde = Oregon_Bureau_C2_
end
if (otherdevices['Presence_Partielle(On)_Hors_Gel(Off)'] == 'Off') then
sonde = moyenne_sondes
end
local temperature = math.floor(10*tonumber(otherdevices_temperature[sonde]))/10
local today = os.date("%A")
if (otherdevices['Presence_Jour_Vacances'] == 'Off') and ((today == "Saturday" or (today == "Sunday" and time.hour < 1)) or
(otherdevices['Jour_Ferie'] == 'On' and time.hour < 1 ) or (otherdevices['ToucheB-Telec2-Mode_Presence_Jour'] == 'On')) then
--Si WE ou Jour_Ferie = "On" ou Forcage Manuel par telecommande 2 Touche B: Presence_Jour_Vacances= "On" . Après 23 h, Mise à Off par Planning..
--Si presence Lundi, Mettre à On après 23 H.
--sans cela impossible de mettre à Off avant Minuit, on ne pourrait le faire que Manuellement le Matin ou automatiquement à 18 H le Lundi par Planning.
--Laisse la possibilité Lundi Presence_Jour programmé la veille après 23 H
commandArray['Presence_Jour_Vacances'] = 'On'
end
if (otherdevices['Presence_Jour_Vacances'] == 'On') then--Le WE, Ferie ou Mode-confort-plus Application Consigne thermostat "Consigne-Danfoss-Confort-Plus"
consigne_conf = consigne_conf_plus
else
consigne_conf = consigne_conf_semaine-- Sinon Application "Consigne-Danfoss-Confort"
end
-- si le swicth " Presence(On)_Hors-Gel(Off)" est actif (On:Presence)
if (otherdevices[Presence] == 'On') then
--Si on est en Mode confort entre "Heure_depart_confort" et "Heure_Arret_Confort", journée de présence totale type "vacances à la Maison" et plage Journée totale
--OU Mode confort, Journée Fractionnée (travail) consigne = Confort
if ((otherdevices[mode] == 'On') and (otherdevices['Presence_Jour_Vacances'] == 'On') and (time.hour >= HeureDebutConfort and time.hour < HeureFinConfort)) or
((otherdevices[mode] == 'On') and (otherdevices['Presence_Jour_Vacances'] == 'Off') and ((time.hour >= 6 and time.hour < 7) or (time.hour >= 17 and time.hour < 23))) then
consigne = consigne_conf
else
consigne = consigne_eco
end
else
consigne = consigne_abs -- Si " Presence(On)_Hors-Gel(Off)" = Off, Consigne "hors Gel"
end
--Chaudiere en Marche (Chauffe) si:"Mode-Chaudière" sur "Cde-Domoticz" et Sortie thermostat à On (Contact thermostat sur carte chaudiere fermé) ou demande ECS et
--tempEcsChaudiere < Consigne Seuil_Bas T° ECS
if ((otherdevices['Mode-Chaudière'] == 'Cde-Domoticz') and (temperature < consigne) and (otherdevices['Autorisation-chauffe-ECS-Chaud'] == 'Off')) then-- Passage retour chauffage par ballon solaire
commandArray['Soutient_Solaire_Chauffage'] = 'On'
else
commandArray['Soutient_Solaire_Chauffage'] = 'Off'
end
if (otherdevices['Mode-Chaudière'] == 'Cde-Domoticz') and ((temperature < consigne) or (otherdevices['Autorisation-chauffe-ECS-Chaud'] == 'On')) then
commandArray['Marche_Chaudiere'] = 'On'
print('Marche Chaudiere -. Marche .-')
else
-- Chaudiere arrêtée si: "Marche_Chaudiere" sur Off (Position DOMOTICZ) et interupteur autorisation ECS à Off (Bruleur arreté et circulateur quelques minutes apres)
if (otherdevices['Mode-Chaudière'] == 'Cde-Domoticz') and (otherdevices['Autorisation-chauffe-ECS-Chaud'] == 'Off' ) then
commandArray['Marche_Chaudiere'] = 'Off'
print('Chaudiere -. Stop .-')
end
end
print('il fait '..temperature..'°C pour '..consigne..'°C souhaité par thermostat Domoticz')--Imprime dans les Logs T° mesurée actuelle et consigne thermostat
-- commandArray['Variable:consigne_thermostat']= tostring(consigne)--Renseignement Variable utilisateur de la consigne utilisée par le thermostat
--Plus utilisé, Nécessaire pour "scipt_time_val_consigne.."
commandArray['OpenURL'] = 'http://Adresse DOMOTICZ:Port/json.htm?type=command¶m=udevice&idx=IDXduDEVICE&nvalue=0&svalue='..consigne..''--renseigne directement le thermostat virtuel " Val_Cons_Actu" qui permet
--d' afficher dans un dummy thermostat la valeur de consigne
end
return commandArray
Cdt
Bertrand
Re: Comparaison de temperature pour chauffage
Publié : 15 févr. 2018, 20:04
par koody
Merci pour les conseils.
Si j'ai bien compris, tout se passe dans cette ligne de commande pour aller stocker la valeur de la température dans une variable:
Code : Tout sélectionner
local temperature = math.floor(10*tonumber(otherdevices_temperature[sonde]))/10
Corrigez-moi si je me trompe
Re: Comparaison de temperature pour chauffage
Publié : 16 févr. 2018, 16:05
par landaisbenj
Pour etre clair tu stock bien une valeur dans une variable, mais il s'agit d'une variable interne au script au moment de son execution.
--Indication de la creation d'une variable propre a l'execution du script:
...Nom de la variable:
--Ouverture d'une methode mathematique:
...d'arrondi inferieur du parametre entre parenthese:
...ou le paramètre etant un calcul simple avec un device: otherdevices_temperature[sonde]
Re: Comparaison de temperature pour chauffage
Publié : 16 févr. 2018, 18:48
par koody
Merci pour le décorticage
Grace à votre aide, j'ai pu isoler la valeur de l'humidité avec:
Par contre, pour comparer simplement la valeur de ma sonde de température avec un thermostat virtuel dans domoticz, c'est plutôt galère!
pourtant le thermostat ne possède qu'une valeur en réel, non?
Jérôme
Re: Comparaison de temperature pour chauffage
Publié : 16 févr. 2018, 19:09
par landaisbenj
Il faut que tu découvre tout ce qui se cache derrière otherdevice...etc
Créer un bouton virtuel test. Et créer un script device pour se bouton.
Tu mets juste un print dedans avec otherdevice[sonde] ex:
Code : Tout sélectionner
commandArray{}
If devicechanged['test'] then
print(otherdevice_temperature['sonde'])
End
Return commandArray
Et à la place de otherdevice_temperature tu en essai plein. Tu verra tout ce qui t'affiche.
Re: Comparaison de temperature pour chauffage
Publié : 17 févr. 2018, 09:13
par koody
landaisbenj a écrit :Il faut que tu découvre tout ce qui se cache derrière otherdevice...etc
Créer un bouton virtuel test. Et créer un script device pour se bouton.
Tu mets juste un print dedans avec otherdevice[sonde] ex:
Code : Tout sélectionner
commandArray{}
If devicechanged['test'] then
print(otherdevice_temperature['sonde'])
End
Return commandArray
Et à la place de otherdevice_temperature tu en essai plein. Tu verra tout ce qui t'affiche.
J'ai compris le principe.
Merci pour les conseils