Chauffage et planning

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 <\>.
gonzo47
Messages : 19
Inscription : 10 oct. 2017, 16:10

Chauffage et planning

Message par gonzo47 »

Bonjour à tous.

Je suis un peu coincé sur la création de la gestion de mon chauffage suivant un planning prédéfini.

Explication de l'existant :
- La composition :
1 switch saison (été/hiver) : permet de passer en été ou en hiver. (avec été qui stop tous les radiateurs)
1 switch heure creuse : En heure creuse, les thermostat passe à confort, heure pleine en éco
1 switch thermostat (3 valeurs : Off, eco, confort) (allume ou éteint le radiateur)

Et bien sur, 1 sonde de température et 1 température de consigne réglable.

Pour faire tourner le tout, les heure creuse sont gérées via le planning du switch?
Un script lua gère le passage en eco/confort du thermostat.
Un script gère le chauffage (inspirer de plusieurs scripts trouver ici)


Tout fonction très bien, mais il y a un gros défaut : régulièrement je chauffe hors heure creuse et surtout, je chauffe en début de nuit (vers 2h au moment du passage en heure creuse) ce qui fait que la température devient trop importante dans les chambre.

Dans une précédente maison, j'avais réalisé un script avec Blocky qui permettait de chauffer quand je le souhaitais (genre chauffer la chambre 1h avant le réveil et 1h avant d'aller dormir...)

J'aimerai reproduire cela mais sans le blocky.
J'ai eu comme idée de faire sauter les heures creuses et de gérer les thermostats suivant leur propre planning.
Inconvénient, le planning tournera en été...


Actuellement, je n'ai aucune idée de comment le réalisé. Si vous avez des idées, des liens.. je suis preneur.


Merci d'avance
gonzo47
Messages : 19
Inscription : 10 oct. 2017, 16:10

Re: Chauffage et planning

Message par gonzo47 »

Je pense avoir trouver ma solution.

Je vais essayer de la mettre en place au plus vite et je vous la présenterai.
vr6man
Messages : 627
Inscription : 18 juil. 2017, 12:15

Re: Chauffage et planning

Message par vr6man »

BOnjour

as tu pu avancer sur ton projet car je serais intéressé ?

Merci
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: Chauffage et planning

Message par Flying Domotic »

Bonjour,

En ce qui me concerne, j'ai implémenté le chauffage à partir de thermostats avec planning selon un principe simple :
  • Chaque clim a un thermostat sans planning
  • Chaque clim a un sélecteur de mode : off (géré dans un autre script), normal, inoccupé
  • J'ai créé des thermostats virtuels avec planning pour chaque type de pièce, plus un pour inoccupation
  • J'ai crée un interrupteur virtuel '"Maison vide" (géré dans un autre script)
Ne reste plus qu'à implémenter la logique souhaitée lors des changements, dans le code, en "forçant" le thermostat de chaque clim à la consigne du planning virtuel souhaité (voire à une constante) :

Code : Tout sélectionner

--[[	Gestion de la température des clims
	
	La température des clims est gérée sur la base de thermostats virtuels globaux ("Pièces de vie", "Chambres", "Inoccupé") pour lesquels on fixe des heures et des températures.
	
	Pour chaque clim, on crée un switch sélecteur de type mode, ayant 2 valeurs (Off (géré ailleurs), Normal, Inoccupé).
	
	Globalement, un switch "Maison vide" permet de mettre temporairement toutes les clims en mode "Inoccupé"
	
	La règle de gestion est simple :
		- si la maison est vide, on utilise le planning "Inoccupé"
		- si le mode de la pièce est "Inoccupé", on utilise le planning de même nom
		- sinon, on utilise un des planning génériques
	
]]--

local scriptVar = 'Clims V1.0'
local planningPieceDeVie = 1081
local planningChambres = 1082
local planningInoccupe = 1084
local maisonVide = 1088
local sejour = 1085
local modeSejour = 1086
local chambreNord = 1090
local modeChambreNord = 1089
local modeChambreSud = 1094
local chambreSud = 1091
local modeChambreOuest = 1095
local chambreOuest = 1092
local modeSalon = 1093
local salon = 1093

return
{   on = {
		devices = { planningPieceDeVie, planningChambres, planningInoccupe, maisonVide, modeSejour, modeChambreNord, modeChambreOuest, modeChambreOuest, modeSalon }
    },
    logging = {
        level = domoticz.LOG_INFO,
        marker = scriptVar,
    },

    execute = function(dz, device)
		local function setTemperature(thermostat, mode, planning)
			local plan = planning
			if dz.devices(maisonVide).active == true then
				plan = planningInoccupe
			elseif dz.devices(mode).state == "Inoccupé" then
				plan = planningInoccupe
			end
			local target = dz.devices(plan).setPoint
			local device = dz.devices(thermostat)
			if device.setPoint ~= target then
				dz.log(device.name.." set to "..target, dz.LOG_INFO)
				device.updateSetPoint(target)
			end
		end
		setTemperature(chambreNord, modeChambreNord, planningChambres)
		setTemperature(chambreOuest, modeChambreOuest, planningChambres)
		setTemperature(chambreSud, modeChambreSud, planningChambres)
		setTemperature(sejour, modeSejour, planningPieceDeVie)
		setTemperature(salon, modeSalon, planningPieceDeVie)
		
	end
}
Ca doit pouvoir servir de base/d'inspiration.
Répondre