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:

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.

Clica aquí para entrar en él

Cualquier duda, sugerencia o comentario será bien recibida en la web!