Script para comprobar si hay alguien en casa (detectores de presencia) preguntando por google home, y si no hay nadie apaga las luces
@damian_rguez del grupo «Domoticz a lo spain» de telegram comparte con nosotros este script para comprobar si hay alguien en casa (detectores de presencia) preguntando por google home, y si no hay nadie apaga las luces:
Prerrequisitos:
- Disponer de dummys de presencia.
- Tener habilitado el google home según el manual: «Uso de Google Home con Domoticz mediante Node Red (actualmente NO requiere suscripción mensual)«.
- Disponer de una escena de apagado de luces (en el caos del ejemplo, o lo que se quiera apagar).
- Disponer de un dummy virtual para el control de google home (sirve para controlar si alguien responde a la pregunta).
Donde:
- Para los dummys de presencia hemos usado el plugin de ping (ping a los moviles): «Cómo saber si un dispositivo en concreto está conectado a la red Wifi«.
- PRESENCIA_GOOGLE es un dummy con auto apagado a los 60 min, este tiempo es el que controlará cada cuanto nos preguntara google si hay alguien en casa despues de haber respondido que sí.
- PRESENCIA_GOOGLE debe estar añadido en Node Red (Nora) como un dispositivo más de casa (como una luz más).
- La escena apaga luces contiene todas las luces de la casa, para que en caso que nos olvidemos una se apague automáticamente.
- El campo presencia.google lastupdate > 5 es el tiempo de espera que le asigno a google antes de que interprete que no hay nadie.
- Damian_movil y Maria_movil son los dummys de presencia podéis poner todos los que queráis.
- Si apaga las luces tras no recibir respuesta envía un telegram hay que configurar la url.
- En google home hay que añadir una rutina para que cuando digamos ‘ok google si estoy en casa’ o lo que queramos se desactive el presencia google.
return {
on = {
timer = {'every 1 minutes'}
},
execute = function(domoticz)
if (domoticz.devices('Maria_movil').state == 'Off') and (domoticz.devices('Damian_movil').state == 'Off') then
domoticz.log('todos en off')
if (domoticz.devices('Maria_movil').lastUpdate.minutesAgo > 15) and (domoticz.devices('Damian_movil').lastUpdate.minutesAgo > 15) then
domoticz.devices('PRESENCIA_GOOGLE').switchOn().checkFirst()
domoticz.log('hace mas de 15 min')
if (domoticz.scenes('Apaga luces').state == 'Off') then
domoticz.log('luces apagadas')
-- no hago nada por que esta todo apagado
else
domoticz.log('luces encendidas')
if (domoticz.devices('PRESENCIA_GOOGLE').state == 'On') then
domoticz.variables('textoGoogle').set('¿hay alguien en casa?')
domoticz.log('Google pregunta ¿hay alguien en casa?')
end
if (domoticz.devices('PRESENCIA_GOOGLE').lastUpdate.minutesAgo > 5) then
if (domoticz.scenes('Apaga luces').state == 'Off') then
-- no hago nada por que esta todo apagado
-- compruebo de nuevo por si acaso
else
domoticz.scenes('Apaga luces').switchOn().checkFirst()
domoticz.openURL({
url = "https://api.telegram.org/botTelegrambot/sendMessage?chat_id=IDTELEGRAM&text=He apagado las luces, por no estar en casa.",
method = 'GET'
})
end
end
end
end
else domoticz.devices('PRESENCIA_GOOGLE').switchOff().checkFirst() end
end
}
Para cualquier duda o consulta tienes disponible el grupo de telegram «Domoticz a lo Spain» para entrar, ponerte cómodo y participar cuanto quieras.
Cualquier duda, sugerencia o comentario será bien recibida en la web!