Créer une temporisation sur un setpoint

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
PatriceN
Messages : 65
Inscription : 26 nov. 2017, 18:53

Créer une temporisation sur un setpoint

Message par PatriceN »

Bonjour,

L'hiver arrive à grands pas et les frileux sont là!
J'aimerais savoir comment réussir à changer temporairement un setpoint pendant une durée déterminée. Je m'explique : La température de la salle de bains est à 18, et en fonction d'un événement que je choisis, je voudrais mettre le setpoint à 22 pour 30 min et qu'il revienne ensuite à la consigne initiale (Attention, je ne veux pas utiliser un timer, mais bien changer temporairement le setpoint pour revenir ensuite à la consigne initiale).
J'ai bien trouvé dans Blockly une fonction set xxx for xx min, mais cette fonction est incompatible avec un setpoint.


Avez-vous des idées?

Merci.
balajol
Messages : 864
Inscription : 13 nov. 2015, 18:54
Localisation : 62

Re: Créer une temporisation sur un setpoint

Message par balajol »

Bonsoir PAtrice,
Tu créer un DUMMY on/Off

Dans Action On de ton Dummy (Menu Modifier):

http://192.168.x.xx:xxxx/json.htm?type=command&param=setsetpoint&idx=556&setpoint=22

Tu modifie l' adresse locale et le port après les 2 points, de ton domoticz dans l'exemple ci-dessus, 556 est l' Idx de ton setpoint 22 la consigne


Dans action Off:

http:///192.168.x.xx:xxxx/json.htm?type=command&param=setsetpoint&idx=556&setpoint=18

Il ne te reste plus qu'à mettre la tempo que tu désires dans "délai d'extinction" (ensecondes)

Et Voilà, Dummy à On setpoint à 22, à Off: 18

Modif-Setpoint.JPG
Modif-Setpoint.JPG (77.08 Kio) Consulté 5640 fois
cdt
Bertrand
2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
PatriceN
Messages : 65
Inscription : 26 nov. 2017, 18:53

Re: Créer une temporisation sur un setpoint

Message par PatriceN »

Bonsoir Bertrand,

En fait j'utilise des timerplan pour le chauffage, ex T° SdB =18 jusqu'à 6h, puis 21 jusqu'à 8h à nouveau 18 à partir de 8h.
L'idée est que si je me lève avant 6h, en déclenchant à l'aide d'un switch, je passe la température à 22°C pendant 1h et une fois l'heure écoulée je reprends le cours normal du timerplan (si à la fin de l'heure écoulée je suis toujours avant 6h, la température de consigne passe à 18, si à la fin de l'heure écoulée je suis entre 6 et 8, la consigne passe à 21), mais là je sèche...
balajol
Messages : 864
Inscription : 13 nov. 2015, 18:54
Localisation : 62

Re: Créer une temporisation sur un setpoint

Message par balajol »

Re,
Le problème n'est plus le même si tu as en parallèle des plannings..
Je pense que tu n'as pas d'autre choix que de passer en LUA pour les Conditions On et Off.
LA condition Off (revenir à 18) ne s'effectuant pas si la consigne actuelle est supérieure ou l'heure (sup ou égale à 6) et (inf ou égale à 8h)
cdt
Bertrand
2024.6 PC Windows10 ; 2ème DEBIAN 10;DANFOSS LC13, Topp; Senseurs univ FIBARO FGBS001, Flood Sensor, ZMNHBD1 Flush 2 Relays ; FIBARO FGS222-FGS212;RFXCOM-RFXtrx433 USB 433.92MHz , Prises Phénix, Prises et Eclairage DI-O, SOMFY RTS,Sonoff ..
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Créer une temporisation sur un setpoint

Message par thier »

C'est ce que je fais en lua. Un interrupteur marche forcé avec retour à Off au bout de 30mn. Quand j'appuie sur le bouton le script change la valeur de consigne du thermostat de la salle de bain. Quand il passe à Off il remet la consigne normale.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
PatriceN
Messages : 65
Inscription : 26 nov. 2017, 18:53

Re: Créer une temporisation sur un setpoint

Message par PatriceN »

Thier,
Je peux avoir un exemple de code ?
Je suis totalement incompétent dans le domaine !
Patrice
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Créer une temporisation sur un setpoint

Message par thier »

j'ai extrais et simplifié pour toi la partie de mon script qui concerne la marche forcée du chauffage la sdb

Code : Tout sélectionner

local hysteresisinf2 = 0.2 --Valeur seuil en dessous de la consigne basse du thermostat
local temp_sdb = 'temperature sdb' --Nom de la sonde de température
local tempsdb = otherdevices_temperature[temp_sdb]
local consigne_sdb = tonumber(otherdevices_svalues['consigne sdb'])  -- nom du thermostat salle de bain
local radiateur_sdb = 'radiateur sdb' --Nom du radiateur à allumer/éteindre
local marche_forcee = 'marche forcee chauffage sdb' --nom du bp qui gere la marche forcée
local domoticz_url = '192.652.48.25:8080' --adresse IP de domoticz
local thermostat_sdb = '875' --idx du thermostat virtuel de consigne chauffage de la salle de bain
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- fin des variables 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
commandArray = {}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	--gestion du bp marche forcee sdb On.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	
if (devicechanged['marche forcee chauffage sdb'] == 'On') then				
    local consigne_sdb = tonumber(otherdevices_svalues['thermostat sdb marche forcee'])		
	local urlsdb = domoticz_url..'/json.htm?type=command&param=udevice&idx='..thermostat_sdb..'&nvalue=0&svalue='..consigne_sdb --met à jour la consigne pour réguler le chauffage et gérer le défaut température trop haute
	commandArray['OpenURL'] = urlsdb 		
			if (tempsdb < (consigne_sdb - hysteresisinf2)) then --pour que le radiateur demarre tout de suite sans attendre le scriptime suivant
				commandArray[radiateur_sdb]='On'
				print('Allumage du radiateur sdb en mode forcée')
			end
end
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	--gestion du bp marche forcee sdb off. On remet la consigne du thermostat.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
if (devicechanged[marche_forcee] == 'Off') then 		
	local consigne_sdb = tonumber(otherdevices_svalues['salle de bain'])
	local urlsdb = domoticz_url..'/json.htm?type=command&param=udevice&idx='..thermostat_sdb..'&nvalue=0&svalue='..consigne_sdb --on met à jour la consigne de chauffage
	commandArray['OpenURL'] = urlsdb 		
	commandArray[radiateur_sdb] = 'Off'
end
return commandArray
Toute la première partie de déclaration des variables est a adapter en fonction de ton installation.
Il y a trois thermostats. "thermostat sdb marche forcee" qui est la consigne en marche forcée, "consigne sdb" qui est la marche 24/24 et consigne_sdb (idx 875) qui est celui qui gère directement le fonctionnement du radiateur
Dans ce script, la salle de bain est chauffée 24/24 selon la consigne de "salle de bain".
Quand tu veux monter la température, tu click sur l'interrupteur "marche forcee chauffage sdb". Cette action prend la valeur du "thermostat sdb marche forcee" et la met dans le thermostat idx 875 (thermostat_sdb). En même temps il allume le radiateur.
Sur ton interrupteur "marche forcée" tu mets un délai d'extinction ainsi quand il repasse tout seul à Off il exécutera la deuxième partie du script, Il prend la consigne du thermostat "consigne sdb" et la met dans le thermostat "consigne_sdb" (idx 875). En même temps il éteint le radiateur.
Ce script doit être un script de type device (if (devicechanged...)
Ce script ne fait que gérer la partie changement de consigne du chauffage. Il ne fait pas la partie régulation.
Dernière modification par thier le 31 oct. 2018, 18:53, modifié 1 fois.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
PatriceN
Messages : 65
Inscription : 26 nov. 2017, 18:53

Re: Créer une temporisation sur un setpoint

Message par PatriceN »

thier a écrit : 31 oct. 2018, 18:38 j'ai extrais et simplifié pour toi la partie de mon script qui concerne la marche forcée du chauffage la sdb

Code : Tout sélectionner

local hysteresisinf2 = 0.2 --Valeur seuil en dessous de la consigne basse du thermostat
local temp_sdb = 'temperature sdb' --Nom de la sonde de température
local tempsdb = otherdevices_temperature[temp_sdb]
local consigne_sdb = tonumber(otherdevices_svalues['consigne sdb'])  -- nom du thermostat salle de bain
local radiateur_sdb = 'radiateur sdb' --Nom du radiateur à allumer/éteindre
local marche_forcee = 'marche forcee chauffage sdb' --nom du bp qui gere la marche forcée
local domoticz_url = '192.652.48.25:8080' --adresse IP de domoticz
local thermostat_sdb = '875' --idx du thermostat virtuel de consigne chauffage de la salle de bain
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- fin des variables 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
commandArray = {}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	--gestion du bp marche forcee sdb On.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	
if (devicechanged['marche forcee chauffage sdb'] == 'On') then				
    local consigne_sdb = tonumber(otherdevices_svalues['thermostat sdb marche forcee'])		
	local urlsdb = domoticz_url..'/json.htm?type=command&param=udevice&idx='..thermostat_sdb..'&nvalue=0&svalue='..consigne_sdb --met à jour la consigne pour réguler le chauffage et gérer le défaut température trop haute
	commandArray['OpenURL'] = urlsdb 		
			if (tempsdb < (consigne_sdb - hysteresisinf2)) then --pour que le radiateur demarre tout de suite sans attendre le scriptime suivant
				commandArray[radiateur_sdb]='On'
				print('Allumage du radiateur sdb en mode forcée')
			end
end
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	--gestion du bp marche forcee sdb off. On remet la consigne du thermostat.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
if (devicechanged[marche_forcee] == 'Off') then 		
	local consigne_sdb = tonumber(otherdevices_svalues['salle de bain'])
	local urlsdb = domoticz_url..'/json.htm?type=command&param=udevice&idx='..thermostat_sdb..'&nvalue=0&svalue='..consigne_sdb --on met à jour la consigne de chauffage
	commandArray['OpenURL'] = urlsdb 		
	commandArray[radiateur_sdb] = 'Off'
end
return commandArray
Toute la première partie de déclaration des variables est a adapter en fonction de ton installation.
Il y a trois thermostats. "thermostat sdb marche forcee" qui est la consigne en marche forcée, "salle de bain" qui est la marche 24/24 et consigne_sdb (idx 875) qui est celui qui gère directement le fonctionnement du radiateur
Dans ce script, la salle de bain est chauffée 24/24 selon la consigne de "salle de bain".
Quand tu veux monter la température, tu click sur l'interrupteur "marche forcee chauffage sdb". Cette action prend la valeur du "thermostat sdb marche forcee" et la met dans le thermostat "consigne_sdb". En même temps il allume le radiateur.
Sur ton interrupteur "marche forcée" tu mets un délai d'extinction ainsi quand il repasse tout seul à Off il exécutera la deuxième partie du script, Il prend la consigne du thermostat "salle de bain" et la met dans le thermostat "consigne_sdb". En même temps il éteint le radiateur.
Ce script doit être un script de type device (if (devicechanged...)
Ce script ne fait que gérer la partie changement de consigne du chauffage. Il ne fait pas la partie régulation.
Génial, apparemment c'est exactement ce que je recherche. Je vais tester, merci!
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Créer une temporisation sur un setpoint

Message par thier »

Edit: relie mes explications du dessus je m'étais emmêlé dans les explications.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
PatriceN
Messages : 65
Inscription : 26 nov. 2017, 18:53

Re: Créer une temporisation sur un setpoint

Message par PatriceN »

Compris!

D'après ce que je vois, c'est un radiateur électrique et tu le mets en route (on/off) en fonction de la consigne de température de marche forcée en tenant compte de l'hystérésis.

Ma problématique est un peu différente, j'ai un robinet thermostatique ZWave et au lieu de lui passer la commande "On/Off", je lui donne directement la valeur du setpoint, mais je ne sais pas comment faire en Lua. As-tu une idée?
Cela reprendrait ton script mais il doit falloir ignorer les timers et passer le paramètre de température de consigne "marche forcée", puis quand la commande passe à off, remettre le timer en service et passer la température de consigne du timer au robinet thermostatique.

if (devicechanged['Marche forcée chauffage SdB'] == 'On') then
Donne la consigne de température de marche forcée au radiateur et ignore le timer.
print('Température du radiateur sdb en mode forcée')
end
end

if (devicechanged[marche_forcee] == 'Off') then
Reprendre la consigne de chauffage du timer et réactiver le timer
end
Répondre