Una de las virtudes de nuestros sistemas domóticos es mantenernos informados de lo que ocurre en nuestros hogares. Cada controlador domótico dispone de un sistema de notificaciones propio. En el caso del Home Center 2 de Fibaro disponemos de un panel de notificaciones, donde podremos configurar notificaciones predefinidas.
Sin embargo, cuando queremos elaborar mensajes complejos, las notificaciones predefinidas no son la mejor opción. Para paliar este problema el HC2 nos permite elaborar notificaciones en LUA. Hoy aprenderemos a programar una escena de control en LUA para generar notificaciones en tu HC2. El Home Center 2 de Fibaro permite tres tipos diferentes de notificaciones:
- SMS (a través de un sistema de créditos)
- e-mail, asociado a cada uno de los usuarios dados de alta en el sistema
- push, asociado a cada uno de los dispositivos móviles dados de alta en el sistema
Elaboración del mensaje
Como es evidente el primer paso es elaborar el mensaje que queremos construir. Para ello, debemos generar una variable global en el panel de variables a la que llamaremos speech.
Lo siguiente es construir el mensaje y almacenar el contenido del mismo en esa variable global. El siguiente código puede ser un ejemplo de construcción de mensaje.
local currentDate = os.date("*t"); local currentTime = string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min); local msg = currentTime .. " La alarma ha sido conectada en modo parcial" fibaro:debug(msg) fibaro:setGlobal("speech", msg)
Envío del mensaje
La idea de base es generar una escena que cada vez que detecte que la variable global speech ha sido modificada proceda a las notificaciones. De este modo, podremos incluir el anterior código en nuestras escenas ya creadas y automáticamente se notificará el mensaje a los dispositivos que creamos conveniente.
La escena que controlará está acción la llamaremos Notificaciones y su código será:
--[[ %% properties %% globals speech --]] if(fibaro:countScenes()>1)then fibaro:debug("Escena ya arrancada"); fibaro:abort(); else fibaro:debug("Escena unica"); end local dispositivos_email={4,5}; -- Dispositivos a notificar por email local dispositivos_push={10,14}; -- Dispositivos a notificar mediante push local msg=fibaro:getGlobalValue("speech"); fibaro:debug(msg); for indice = 1, #dispositivos_email, 1 do fibaro:debug("Enviando email al dispositivo " .. dispositivos_email[indice]); fibaro:call(dispositivos_email[indice], "sendEmail","Aviso domótico", msg); end for indice=1, #dispositivos_push, 1 do fibaro:debug("Enviando notificación push al dispositivo " .. dispositivos_push[indice]); fibaro:call(dispositivos_push[indice], "sendPush", msg); end
De esta forma evitaremos repetir este código en múltiples escenas. Además, podría incluirse en esta misma escena las notificaciones TTS vía el servidor PAW o ImperiHome. El resultado es espectacular en este último caso, puesto que nuestros mensajes serán leídos por el dispositivo en el que tengamos instalado PAW o ImperiHome.
Tengo un VeraLite y he hecho un switch a partir de un fibaro 2×1500 con dos pulsadores para subir y bajar tres persianas simultaneamente. Estas persianas ya están incluídas en mi sistema domotico de modo individual. Hasta ahora logro hacerlas subir y bajar desde este switch “comun” pero no consigo hacer que se comporte como los que están al lado de las persianas que al repetir el pulso hace que la persiana pare el recorrido en el que está.
No se programación, todo lo hago desde la UI.
Estimados, con este código lua funciona que las notificaciones lleguen a mi smartphone sin tener abierta la app de fibaro?
dengo un hc2 y las notificaciones sólo aparecen cuando tengo la app abierta, y encuentro que eso no es muy seguro se cierta forma que cuando abro la puerta y esta esta armada, solo suene mi telefono cuando tengo corriendo la app..
Saludos y de antemano muchas gracias.
Hola Alejandro,
Las notificaciones push llegan sin tener abierta la app de Fibaro, tanto con el sistema vía panel de notificaciones como desde esta escena.
Un saludo.
Hola Antonio;
Muchas gracias por tu respuesta, sin duda me ayudo bastaste.
Que tengas un buen día y gracias por compartir tu conocimiento.
Atte.
Alejandro.
Hola Alejandro,
Disculpa que fuera tan escueto, posiblemente fruto de mi falta de tiempo. Lo que he querido decirte es que el mecanismo es el mismo en ambos casos, únicamente que vía LUA puedes personalizar más los mensajes y sobretodo tener una única escena para mandar notificaciones a diestro y siniestro.
Cuando das de alta tu móvil encontrarás en el panel de acceso de usuarios los móviles que permiten ser notificados. Cuando mandas una notificación push (aunque tengas cerrada la app) te va a salir una nota en el sistema de notificación de iOS, Android, etc… Las únicas notificaciones que no funcionan con la app cerrada son las notificaciones popup que acaban de incorporar en los nuevos firmwares. Repasa este tema.
Puedes también notificar vía SMS, por voz (TTS a través de Imperhome u otro soft) y también por email.
Espero ser más claro en esta ocasión.
Antonio, reiteró lo dicho anteriormente, de verdad agradezco tu conocimiento, y si entendí la primera respuesta, que tengas un buen día. ( acá aún es de día en Chile)
Un abrazo.
Hi:
I’m wondering how it works the SMS service… I can not see any GSM slot for a SIM card… Is that service working in Iceland? Have any fee?
Thanks,