Cómo añadir un modo noche a las notificaciones de Google Home de domoticz

@damian_rguez del grupo «Domoticz a lo spain» de telegram nos explica cómo añadir un modo noche a las notificaciones de Google Home de domoticz basándonos en el tutorial: «Cómo recibir notificaciones de domoticz desde Google Home (definiendo el volumen y el altavoz por el que nos notifica)«. 

Partimos de la base de que ya tenéis el sistema listo para recibir notificaciones por haber seguido el tutorial que os acabamos de enlazar.

Dividimos esta guía en varios apartados

Requisitos inciales

Como os comentábamos, partimos de la base de que ya habéis seguido el tutorial: «Cómo recibir notificaciones de domoticz desde Google Home (definiendo el volumen y el altavoz por el que nos notifica)«.

Creamos un dummy en domoticz

Vamos a domoticz y entramos en Setup > Hardware ó Configuración > Hardware (si lo tenemos en español).

Creamos un nuevo Sensor Virtual. Si esta es la primera vez que introducimos un dispositivo creamos un hardware tipo Dummy. Si ya lo tenemos creado y nos aparece en la lista superior NO CREAMOS OTRO, sino que pulsamos directamente sobre Create Virtual Sensors. En caso de que sea tu primera vez, crear el hardware introduciendo los siguientes datos en los campos inferiores, sino pasa al siguiente paso. Fíjate en las siguientes imágenes si tienes dudas.

En este caso no tenemos creado ningún hardware tipo Dummy en el listado superior, por ello creamos uno:

Sin embargo, en este otro casi SÍ tenemos un hardware tipo dummy creado en el listado, por ello NO CREAMOS OTRO, ya que creamos nuestro nuevo dummy desde él:

A partir de aquí continuamos tanto los que teníamos ya creado este hardware por haber añadido dispositivos anteriormente como los que por primera vez acaban de crearlo. Clicamos sobre Create Virtual Sensors:

Introducimos el nombre (en nuestro ejemplo: Modo noche) y el tipo de sensor: Switch o interruptor.

Creamos un nuevo script DzVents

Nos vamos a:

Domoticz > Setup > More options > Events

Creamos un script tipo dzVents > Device:

Y copiamos y pegamos el siguiente texto adaptando lo necesario, clicamos sobre On y Guardamos:

return {
on = {
timer = {'at 00:00'},
},
data = {},
logging = {},
execute = function(domoticz, triggeredItem)
domoticz.devices('Modo noche').switchOn().forHour(8)
domoticz.variables('volumen_google').set('20')
end
}

Pondremos a nuestro gusto lo siguiente:

  • 00:00: es la hora a la que empieza el modo noche. Si lo pones a las 20:00 empezará a esa hora, si lo pones a las 22:00 empezará a esa hora.
  • forHour: 8 son las horas que durará el modo noche. Si lo dejas así el modo noche durará de 00:00 a 08:00. Si pones 9, durará de 00:00 a 09:00 y así sucesivamente. Si cambias el 00:00 por otra hora, piensa que las horas empezarán a contar desde ese otro inicio.
  • 20: el volumen al que google home nos notificará durante el modo noche.

Corregimos el script que teníamos de texto_google

Una vez hemos creado el script anterior vamos a modificar el otro script DzVents que creamos cuando seguimos el tutorial de «Cómo recibir notificaciones de domoticz desde Google Home (definiendo el volumen y el altavoz por el que nos notifica)«.

Nos vamos a:

Domoticz > Setup > More options > Events

Abrimos el script de texto_google y le añadimos un pequeño texto, dejándolo como a continuación:

return {
on = {
variables = {
'texto_google'
}
},
execute = function(domoticz, device)
--Necesario tener instalado CURL en la raspberry
--sudo apt-get install curl
local destino = domoticz.variables('destino_google').value
local volume = domoticz.variables('volumen_google').value
if device.value == "" then
--cuando vale "" no hacemos nada
-- domoticz.log('Variable textoGoogle reseteada', domoticz.LOG_ERROR)
else
local Time = require('Time')
local now = Time()
if (now.hour>8)then
if(domoticz.devices('Modo noche').state=='On')then domoticz.variables('volumen_google').set('20')end
local voice_command = 'curl -G --data-urlencode "texto='..device.value..'" --data-urlencode "destino='..destino..'" --data-urlencode "volume='..volume..'" http://127.0.0.1:1880/ws/gcast --silent --output /dev/null'
os.execute(voice_command)
else
domoticz.variables('volumen_google').set('20')
local voice_command = 'curl -G --data-urlencode "texto='..device.value..'" --data-urlencode "destino='..destino..'" --data-urlencode "volume='..volume..'" http://127.0.0.1:1880/ws/gcast --silent --output /dev/null'
os.execute(voice_command)
end
domoticz.variables('texto_google').set('')
end
end
}

Comprobación del funcionamiento

Si queremos comprobar que funciona, podemos cambiar el 00:00 del primer script por una hora que esté a punto de llegar y corroboramos que ha entrado en modo noche pidiéndole algo a google home.

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!