Page 1 sur 1

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

Publié : 26 mai 2020, 12:17
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

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

Publié : 26 mai 2020, 13:21
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...

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

Publié : 26 mai 2020, 16:59
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
}

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

Publié : 26 mai 2020, 17:17
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 !

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

Publié : 26 mai 2020, 17:51
par ttoni0
Ça fonctionne impec !
Reste à voir comment ça se passe au coucher du soleil...

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

Publié : 26 mai 2020, 20:29
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
}