Planning de chauffage

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
lost
Messages : 578
Enregistré le : 12 nov. 2016, 11:01

Re: Planning de chauffage

Message par lost »

Wolfen38 a écrit : 02 nov. 2019, 08:30 Je pensais que les scripts de type device ne s’exécutaient que lorsqu'il y avait un changement d'état d'un device, donc si pas de changement, pas d’exécution.
Oui, UN device... n'importe lequel en fait, d’où l'importance de tester que c'est bien celui sur lequel on veut agir qui a changé d'état.

Sinon on se retrouve à déclencher des actions, au mieux inutiles, dans son script chauffage alors qu'un oiseau est passé devant un capteur de mouvement sur sa terrasse!

denis_brasseur
Messages : 657
Enregistré le : 24 déc. 2018, 17:05
Localisation : (26)

Re: Planning de chauffage

Message par denis_brasseur »

Wolfen38 a écrit : 02 nov. 2019, 08:30 OK, merci Denis.

Je pensais que les scripts de type device ne s’exécutaient que lorsqu'il y avait un changement d'état d'un device, donc si pas de changement, pas d’exécution.
Effectivement, mais dans le cas où la condition est basée sur un changement d'état

Code : Tout sélectionner

if devicechanged['capteur'] then
 'ou'
 if devicechanged['capteur'] == 'On' then
Pi3 + DD PiDrive + RFXtrx433 + AEON Labs ZW090
7 Modules fil pilote ZMNHJD1
2 détecteur fumées CHACON 34131
5 Bresser Capteur thermo/hygro
1 contacteur porte Philio PST02-1A Z
OWL Micro+ CM180
D2L LINKY
FGR-223 "Roller Shutter 3"

Neutrino
Messages : 1598
Enregistré le : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)
Contact :

Re: Planning de chauffage

Message par Neutrino »

Bonjour,
Il serait peut-être bien d'avoir le script en entier, non ?
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?

Wolfen38
Messages : 1603
Enregistré le : 19 oct. 2017, 14:49

Re: Planning de chauffage

Message par Wolfen38 »

Suite aux avis de vil1driver et Denis, je suis parti sur un truc comme celà :

Code : Tout sélectionner

-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/modules.lua')

-- Récupère l'heure actuelle.
local heure = os.date('%H:%M')

local debug = false  -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir

local interon1 = otherdevices['Inter chauffage'] == 'On'
local interon2 = otherdevices['Presence-syb'] == 'On'
local alarmeon = otherdevices['Virtuel alarme'] == 'On'


commandArray = {}


if interon1 or interon2 then
	if alarmeoff then
		commandArray['Thermostat Réglage']='20'
	else
		if alarmeon and heure >= '19:00' and heure <= '06:30' then
			commandArray['Thermostat Réglage']='20'
		else
			if alarmeon and heure >= '06:31' and heure <= '18:59' then
				commandArray['Thermostat Réglage']='18'
			else
				if interoff1 and interoff2 then
					commandArray['Thermostat Réglage']='18'
				end
			end
		end
	end
end

return commandArray
Je ne sais pas si ca va fonctionner car c'est un programme qui me sert pour la semaine, mais le bon coté, c'est que pour le moment j'ai plus rien dans mes logs.

vil1driver
Messages : 5663
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Planning de chauffage

Message par vil1driver »

Tu n'as pas compris.. Tu fais probablement l'amalgame avec blocky.

Si ton script n'a pas vocation à réagir instantanément à la mise à jour d'un device. (exemple détection de mvt > lampe)
En gros un script qui ne comporte pas l'instruction devicechanged,

Il n'a pas à être de type DEVICE.
Et ne devrait donc pas être nommé
script_device_xxx.lua

Sinon il va constamment être exécuté, et peu même générer une boucle et totalement bloquer ton système.

Ton script doit être de type TIME et donc ne vérifier le statut des capteurs qu'une fois par minute (voir 10, 15min ou plus..)

Il est crucial de comprendre cela, les scripts lua ne devraient même pas être abordés avant d'avoir compris la façon dont domoticz va les exécuter.

De ce qui est de limiter les actions inutiles, il est souvent vérifié dans les scripts le status du device à modifier, modification qui n'a alors lieu que si elle est utile.

Ps: ton script actuel comporte de nouveaux plusieurs erreurs, certaines conditions sont impossibles à remplir. X ne peut être supérieur à 19 et en même temps inférieur à 6..
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien

Wolfen38
Messages : 1603
Enregistré le : 19 oct. 2017, 14:49

Re: Planning de chauffage

Message par Wolfen38 »

Bah justement, je veux que mon script agisse instantanément au changement d'un de mes deux inter.

Si "inter chauffage" ou "presence-syb" passe a ON ou a OFF, alors en fonctionne de l'heure et de l'alarme, je veux injecter la valeur de température instantanément dans mon thermostat.

Wolfen38
Messages : 1603
Enregistré le : 19 oct. 2017, 14:49

Re: Planning de chauffage

Message par Wolfen38 »

La, je dois être bourré.

J'ai réduit mon script au mini

Code : Tout sélectionner

-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/modules.lua')

local debug = true

commandArray = {}

if devicechanged['Inter chauffage'] == 'on' then
    commandArray['Thermostat Réglage']='20'
	print("Thermostat sur 20°")
			
	else
	
	if (devicechanged['Inter chauffage'] == 'off' and otherdevices['Presence-syb'] == 'Off') then
		commandArray['Thermostat Réglage']='18'
		print("Thermostat sur 18°")
		end
	
end

return commandArray
Quand je clique mon inter chauffage pour le passer de on à off, rien ne se passe, aucun script executer.

Mon script est "script_device_chauffage.lua"

vil1driver
Messages : 5663
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Planning de chauffage

Message par vil1driver »

Majuscules à On et Off ;)

Bravo ça c'est un script qui va permettre d'aller petit à petit très loin.
Un pied après l'autre, c'est la clé
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien

Wolfen38
Messages : 1603
Enregistré le : 19 oct. 2017, 14:49

Re: Planning de chauffage

Message par Wolfen38 »

Merci, désolé, j'ai raté ce petit détail....

Bon, maintenant le script ce lance, houra.

Donc tentons d'aller un peu plus loin....

Le srcipt se lance, mais mon thermostat ne se met pas à jour.... C'est un thermostat netatmo, je peux modifier manuellement la valeur dans le widget de dz, mais avec mon script, la valeur n'est pas intégrer dans le thermostat....

vil1driver
Messages : 5663
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Planning de chauffage

Message par vil1driver »

Essai cette façon de faire

Code : Tout sélectionner

commandArray['UpdateDevice']=otherdevice_idx["Thermostat Réglage"]..'|0|18'

MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien

Répondre