Automatisation ventilateur en fonction de la température, du moment de la journée et de la géolocalisation du téléphone

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 <\>.
ttoni0
Messages : 11
Inscription : 28 mai 2019, 14:12

Automatisation ventilateur en fonction de la température, du moment de la journée et de la géolocalisation du téléphone

Message par ttoni0 »

Bonjour,

Je souhaite automatiser mon ventilateur en fonction de 3 choses :

- S’il fait jour
- Si l’interrupteur commandé par géolocalisation de mon téléphone est “on”
- S’il fait plus de 25 degrés

J’ai fait une tentative… sans succès…

Je vous mets mon code bancal :

Code : Tout sélectionner

 return {
   on = {       
        devices = { 'iPhone' }, 
       },
      
   execute = function(domoticz, item)
      if item.active then
         if domoticz.time.isDayTime then
            domoticz.devices('Ventilo').switchOn().checkFirst()
            end
            local Sensor = domoticz.devices('TempInt')
                if Sensor.temperature >= 25 then
                domoticz.devices('Ventilo').switchOn().checkFirst()
            end
        else domoticz.devices('Ventilo').switchOff().checkFirst()
    end
end
}
Si vous avez des suggestions, je suis preneur !

Ciao
ttoni0
Messages : 11
Inscription : 28 mai 2019, 14:12

Re: Automatisation ventilateur en fonction de la température, du moment de la journée et de la géolocalisation du téléph

Message par ttoni0 »

J'ai aussi tenté ça :

Code : Tout sélectionner

 return {
   on = {       
        devices = { 'iPhone' }, 
       },
      
   execute = function(domoticz, item)
      if item.active then
         if domoticz.time.isDayTime then
             local Sensor = domoticz.devices('TempInt')
                if Sensor.temperature > 25 then
                domoticz.devices('Ventilo').switchOn().checkFirst()
        else domoticz.devices('Ventilo').switchOff().checkFirst()
            end
        end
    end
end
}
Ça ne fonctionne pas plus !

Merci de me donner un petit coup de main...
boum
Messages : 233
Inscription : 18 janv. 2019, 11:34
Localisation : France

Re: Automatisation ventilateur en fonction de la température, du moment de la journée et de la géolocalisation du téléph

Message par boum »

Je ferais qq chose comme ça :

Code : Tout sélectionner

return {
	on = {       
		devices = { 'iPhone', 'TempInt', }, 
	},

	execute = function(domoticz, item)
		if domoticz.time.isDayTime then
			local iPhone = domoticz.devices('iPhone')
			local tempSensor = domoticz.devices('TempInt')
			if iPhone.active and tempSensor.temperature > 25 then
				domoticz.devices('Ventilo').switchOn().checkFirst()
			else 
				domoticz.devices('Ventilo').switchOff().checkFirst()
			end
		else 
		        -- peut-être remplacer ce cas avec un trigger timer sur "at sunset"
			domoticz.devices('Ventilo').switchOff().checkFirst()
		end
	end
}
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
ttoni0
Messages : 11
Inscription : 28 mai 2019, 14:12

Re: Automatisation ventilateur en fonction de la température, du moment de la journée et de la géolocalisation du téléph

Message par ttoni0 »

boum a écrit : 26 mai 2020, 16:59 Je ferais qq chose comme ça :

Code : Tout sélectionner

return {
	on = {       
		devices = { 'iPhone', 'TempInt', }, 
	},

	execute = function(domoticz, item)
		if domoticz.time.isDayTime then
			local iPhone = domoticz.devices('iPhone')
			local tempSensor = domoticz.devices('TempInt')
			if iPhone.active and tempSensor.temperature > 25 then
				domoticz.devices('Ventilo').switchOn().checkFirst()
			else 
				domoticz.devices('Ventilo').switchOff().checkFirst()
			end
		else 
		        -- peut-être remplacer ce cas avec un trigger timer sur "at sunset"
			domoticz.devices('Ventilo').switchOff().checkFirst()
		end
	end
}
Merci pour la réponse rapide !
Ton code est limpide et devrait faire le taf d'après ce que je vois...
Je teste ça immédiatement.
Encore merci !
ttoni0
Messages : 11
Inscription : 28 mai 2019, 14:12

Re: Automatisation ventilateur en fonction de la température, du moment de la journée et de la géolocalisation du téléph

Message par ttoni0 »

Ça fonctionne impec !
Reste à voir comment ça se passe au coucher du soleil...
boum
Messages : 233
Inscription : 18 janv. 2019, 11:34
Localisation : France

Re: Automatisation ventilateur en fonction de la température, du moment de la journée et de la géolocalisation du téléph

Message par boum »

Au coucher du soleil, il ne se passera rien jusqu'à ce que la température change.
Comme noté dans le commentaire, il y a moyen de rajouter un déclencheur :

Code : Tout sélectionner

return {
	on = {       
		devices = { 'iPhone', 'TempInt', }, 
		timer = { 'at sunrise', 'at sunset', },
	},

	execute = function(domoticz, item)
		if domoticz.time.isDayTime or (item.trigger ~= 'at sunset') then
			local iPhone = domoticz.devices('iPhone')
			local tempSensor = domoticz.devices('TempInt')
			if iPhone.active and tempSensor.temperature > 25 then
				domoticz.devices('Ventilo').switchOn().checkFirst()
			else 
				domoticz.devices('Ventilo').switchOff().checkFirst()
			end
		else 
			domoticz.devices('Ventilo').switchOff().checkFirst()
		end
	end
}
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
Répondre