Manual
Manual
Manual
Fecha: 15/02/19
Y por supuesto a mis padres que han sido, como siempre, un apoyo constante e incondicional
Resumen
Este trabajo, enmarcado dentro del ámbito de la domótica, aborda una perspectiva de software
libre, multidispositivo y multifabricante, el diseño y construcción de un sistema domótico
completo para una vivienda unifamiliar tipo. Para ello, integra diversos fabricantes y utiliza
herramientas de software libre para abordar áreas tan diversas que van desde la seguridad y el
confort hasta el riego inteligente, con el fin de convertir la vivienda en un hogar inteligente y
sostenible.
Resum
Aquest treball, emmarcat dins de l'àmbit de la domòtica, aborda una perspectiva de software
lliure, multidispositiu i multifabricant, el disseny i construcció d'un sistema domòtic complet per
a una vivenda unifamiliar estàndard. Per aquesta raó integra diversos fabricants i utilitza
ferramentes de software lliure, per a tractar àrees tan diferents que van des de la seguretat i el
confort fins el reg intel·ligent, amb la finalitat de convertir la vivenda en una llar intel·ligent i
sostenible.
Abstract
This study is framed within the area of automotion, which adresses a free software perspective,
multi-devices and multi-producers, the design and construction of a complet automotion system
for a single family home. In order to this, different producers are integrated and free sofwtare
resources are used so that different areas can be adressed not only security and comfort but
also intelligent irrigation, achieving as a result an intelligent and sustainable housing.
Introducción .................................................................................................................. 1
1.1. Motivación .................................................................................................................... 1
1.2. Objetivos ...................................................................................................................... 4
1.3. Estructura de la memoria .......................................................................................... 4
1.4. Principales referencias utilizadas ............................................................................. 5
1.5. Relación con las asignaturas cursadas .................................................................. 6
Estado del arte.............................................................................................................. 7
2.1. Jeedom......................................................................................................................... 7
2.2. Home Assistant ........................................................................................................... 8
2.3. OpenHAB ..................................................................................................................... 8
2.4. Otras alternativas........................................................................................................ 9
Especificación de requisitos ........................................................................................ 10
3.1. Alcance....................................................................................................................... 10
3.2. Perspectiva del sistema domótico ......................................................................... 10
3.3. Tipos de dispositivos ................................................................................................ 10
3.3.1. Funcionalidad del sistema domótico ............................................................. 11
3.3.2. Restricciones ..................................................................................................... 11
Planificación y costes.................................................................................................. 12
4.1. Fases de desarrollo .................................................................................................. 12
4.2. Recursos .................................................................................................................... 15
4.2.1. Hardware. .......................................................................................................... 15
4.2.2. Software ............................................................................................................. 15
4.3. Proyección de costes ............................................................................................... 16
Herramientas y tecnologías utilizadas ......................................................................... 17
5.1. HPE ProLiant MicroServer Gen10 ......................................................................... 17
5.2. Raspberry Pi .............................................................................................................. 18
5.2.1. Raspberry Pi 3B ................................................................................................ 18
5.2.2. Puesta en marcha ............................................................................................ 18
5.2.3. Consumo energético ........................................................................................ 19
5.3. Protocolo MQTT........................................................................................................ 19
5.4. Mosquitto (Eclipse) ................................................................................................... 22
5.5. Protocolo ZigBee ...................................................................................................... 23
5.5.1. Bandas de operación ....................................................................................... 23
5.5.2. Nodos y topología de red ................................................................................ 23
5.5.3. Seguridad........................................................................................................... 25
5.5.4. Debilidades en ZigBee ..................................................................................... 25
5.6. Proyecto openHAB ................................................................................................... 25
5.7. Sonoff (ITEAD) .......................................................................................................... 27
5.8. Chip ESP8266........................................................................................................... 28
5.9. Firmware Tasmota.................................................................................................... 28
5.10. FTDI ........................................................................................................................... 29
5.11. Xiaomi Router 3........................................................................................................ 29
5.12. Dispositivos ZigBee en Mi Home ........................................................................... 30
Instalación y configuración .......................................................................................... 32
6.1. Configuración del servidor HP .................................................................................... 32
6.2. Configuración Raspberry Pi 3 ..................................................................................... 33
6.3. Instalación y configuración de Mosquitto .................................................................. 34
6.4. Modificación y configuración del firmware Tasmota ............................................... 35
6.5. Instalación y configuración de openHAB .................................................................. 37
6.5.1. Descarga e instalación .................................................................................... 37
6.5.2. Interfaz gráfica de usuario............................................................................... 39
6.5.3. Configuración y funcionamiento inicial. ......................................................... 40
Configuración automática............................................................................................ 41
Configuración manual .................................................................................................. 43
6.5.4. Sitemaps ............................................................................................................ 44
6.5.5. Bindings utilizados ............................................................................................ 45
6.5.6. Automatizaciones (Rules) ............................................................................... 46
6.5.7. Integración myOpenHAB ................................................................................. 47
6.5.8. Configuración de MQTT .................................................................................. 47
6.6. Otras Instalaciones y configuraciones ....................................................................... 49
6.6.1. Instalación y configuración del router ............................................................ 49
6.6.2. Instalación y configuración de la aplicación Mi Home ................................ 49
6.6.3. Instalación y configuración de Visual Studio Code ..................................... 50
Instalación SMB ............................................................................................................ 51
Acceso remoto .............................................................................................................. 52
Descripción gráfica del entorno real, automatizaciones y pruebas de funcionamiento 53
7.1. Descripción ................................................................................................................ 53
7.2. Plano 2D .................................................................................................................... 53
7.3. Ejemplos de automatizaciones ............................................................................... 54
7.4. Pruebas en automatizaciones ................................................................................ 55
7.5. Pruebas relacionadas con el sitio web myopenHAB .......................................... 56
Conclusiones y líneas futuras ..................................................................................... 57
8.1. Líneas futuras ........................................................................................................... 58
8.2. Opinión personal....................................................................................................... 58
Referencias y bibliografía ........................................................................................... 59
Ficheros de configuración openHAB ........................................................................... 64
Índice de ilustraciones
Introducción
En este apartado de introducción se recogerán los conceptos básicos tratados en esta memoria,
como la relevancia que está adquiriendo en el presente el “Internet de las Cosas”, especialmente
en la vida de las personas y empresas.
Este proyecto surge por un interés propio respecto al ámbito de “Internet de las cosas”, en
adelante IoT, aplicada al hogar, conocido como domótica. Además, este trabajo busca una
solución alcanzable para muchas personas, ya que uno de los requisitos indispensables siempre
ha sido el tener “un bajo coste” y eso se consigue gracias a la utilización de software de código
abierto (open-source) y hardware a precio razonable.
1.1. Motivación
La principal motivación de este proyecto es la expansión de las soluciones y tecnología que han
ido apareciendo, relacionadas con el IoT. Económicamente hablando, la gran mayoría de estas
tecnologías son muy elevadas en el mercado, lo que supone que se lo pueda permitir un
reducido campo de clientes.
Se dividen en diferentes ramificaciones, como puede ser el uso del IoT en el hogar, en ciudades,
en la industria, o incluso en los diferentes dispositivos que las personas utilizan de uso cotidiano.
Un buen ejemplo de eso puede ser: una lavadora conectada a Internet que te avisa cuando ha
acabado, un frigorífico que te indique que alimentos faltan en él, y que decir de la automoción
con la conducción autónoma de algunos modelos.
La expansión de internet y su acceso han crecido de forma exponencial en los últimos años.
Vivimos en una sociedad hiperconectada ya que podemos comunicarnos con cualquier persona
del mundo en tiempo real, por lo que no sabremos convivir sin esta tecnología.
El IoT está vigente en una gran diversidad de entornos, muy diferentes entre sí, como pueden
ser:
La industria
La tecnología IoT en industrias ayuda a la cooperación conjunta entre los seres
humanos, las máquinas y los sistemas empresariales, mejorando en gran parte la
eficiencia de producción y en la reducción de costes.
1
Los edificios inteligentes
Con las nuevas implementaciones de IoT se está consiguiendo una seguridad,
eficiencia y confort de las personas que lo utilizan, gracias a la recopilación y analizado
de datos diariamente.
La automoción
Los vehículos del futuro estarán altamente conectados y dispondrán de sensores que,
unidos con otros vehículos, formarán una gran red que recopilarán y enviarán datos a
los servidores, los cuales manipularán para recopilar información sobre tráfico,
aparcamientos libres, etc.
Por otra parte, IoT amplia otros campos de trabajo. Por ejemplo, según (BlinkEdTech,2015) en
[1], el uso en la educación permitirá que los estudiantes aprendan más y mejor en tiempo real.
Lo más importante será el aprendizaje en tiempo real y adaptado, es decir, que la universidad
aprenderá de sus estudiantes y podrá mejorar simultáneamente sus procesos al aplicar esos
cambios. Otro ejemplo, tal y como comenta (Marta B, 2017) en [2], seria referente al uso de IoT
en la salud mediante la conectividad constante y segura entre profesionales y pacientes. Otro
sector imprescindible en la implementación del IoT según (Microsoft, 2016) en [3], será
proporcionar un transporte conectado para mejorar el tráfico en ciudades con mayor movilidad
y eficiencia buscando una mejora del tráfico incrementando una mayor calidad respecto a los
pasajeros y reducir la congestión.
En resumidas cuentas, podemos observar que las empresas más importantes a nivel mundial
ven en el IoT una gran oportunidad de negocio. Por ejemplo, (Microsoft, 2017) en [4], informa
sobre las pautas necesarias para transformar una empresa en una inteligente. Dichas pautas
serían: desarrollar productos que efectúen tecnologías basadas en IoT, como dispositivos o
sensores inteligentes y mantener un control de los datos capturados en tiempo real para
posteriormente realizar un análisis de los mismos con el objetivo de mejorar la eficiencia y
rendimiento de la empresa.
Para (Intel, 2016) en [5], la evolución de IoT viene fundamentada por 3 pasos:
1. Conectar los dispositivos que aún no lo estén mediante sensores con los que recopilar
información y que el centro de datos los analice.
2. Crear sólo dispositivos con inteligencia artificial directamente conectados a los
servidores de datos.
2
3. Creación de un mundo autónomo donde los datos recogidos y analizados por los
centros de datos puedan actuar libremente en la toma de decisiones.
La domótica aporta mejoras en la calidad de vida del usuario, como, por ejemplo:
Accesibilidad: facilitar el manejo de los elementos del hogar a las personas con
discapacidad de la forma que más se ajuste a sus necesidades.
3
1.2. Objetivos
En este apartado serán expuestos los objetivos principales de este trabajo. Hay dos objetivos
generales bien estructurados y diferenciados uno del otro que a su vez están compuestos por
otros específicos.
El segundo de los objetivos está relacionado con el diseño e implementación de la interfaz web
para el sistema domótico. Debe permitir su monitorización y control de forma remota y segura
a través de cualquier dispositivo conectado a Internet. Dicha interfaz tiene que ser entendible,
dinámica e intuitiva.
Capítulo 1. Introducción.
En este apartado se realizará una breve introducción de los conceptos de IoT y
domótica, además de la situación actual y el crecimiento que se está experimentando.
Por otra parte, se explicarán los objetivos perseguidos en este documento, la
estructura, algunas referencias a modo de información bibliográfica y una relación con
las asignaturas cursadas en la carrera universitaria.
4
Capítulo 5. Herramientas y tecnologías a utilizar.
En esta sección se realizará un estudio detallado de las diferentes tecnologías y
protocolos utilizados. Además, se explicarán las herramientas usadas para llegar a la
solución del problema.
En este apartado se explicarán las principales referencias utilizadas para el estudio y realización
de este proyecto:
Documentación de la página web oficial de openHAB [7]. Este sitio dispone de toda
la documentación necesaria para la instalación y configuración del sistema
domótico. Además, dispone de una amplia comunidad de usuarios para generar
dudas y solucionar problemas.
Documentación del sitio web oficial del protocolo MQTT [8]. Esta web dispone de
toda la documentación necesaria para la instalación y configuración de MQTT.
5
1.5. Relación con las asignaturas cursadas
Tal y como se ha comentado anteriormente, la mayor parte del desarrollo de este proyecto se
basa en los conocimientos adquiridos a lo largo de estos cuatro años de carrera. Las asignaturas
con una vinculación directa han sido las referentes a la programación, gestión de proyectos,
ingeniería del Software, etc.
Aunque no todas las asignaturas se han visto vinculadas directamente con el proyecto, en su
conjunto han sido muy importantes para proporcionarme habilidades, conocimientos y
competencias.
A continuación, se muestra la relación directa de las asignaturas cursadas con las partes de este
proyecto:
6
CAPÍTULO 2
En esta sección se realizará un estudio del estado del arte, donde se expondrán las
características más relevantes de las diferentes alternativas software que existen actualmente
en el mercado. Además, se explicará la elección del sistema domótico que se va a decido utilizar
en este proyecto.
2.1. Jeedom
Jeedom [9], es un software de código abierto. Una persona con conocimientos básicos de Linux
puede hacer uso de él sin mayores problemas. La instalación y configuración se puede realizar
sobre una Raspberry Pi, aunque el desarrollador ha puesto en el mercado sus propios tipos de
controladores domóticos.
Ventajas Inconvenientes
Código abierto Plugins de pago (2-6€)
Multi-protocolo
Autónomo
Personalizable
7
2.2. Home Assistant
Home Assistant [10] también es de software libre. Esta plataforma de automatización del hogar
funciona sobre Python3. Es una alternativa muy interesante para la instalación en una Raspberry
Pi. Además, permite manejar los dispositivos inteligentes sin necesidad de un servidor externo,
aumentando la privacidad.
Home Assistant funciona con reglas programables ante posibles cambios en el sistema del hogar.
Además, dispone de una comunidad muy grande de usuarios y un sitio web para realizar
cualquier consulta.
Ventajas Inconvenientes
Código abierto Actualizaciones inestables
Multi-protocolo
Autónomo
Personalizable
Comunidad de usuarios
2.3. OpenHAB
OpenHAB [11] es una tecnología cuyo software es de código abierto, diseñado para integrar
diferentes sistemas de automatización de viviendas, dispositivos y tecnologías dentro de una
misma solución.
OpenHAB es una solución basada en Java y proporciona una interfaz de usuario uniforme,
centralizado y con un enfoque común para las reglas de automatización de todo el sistema.
Ventajas Inconvenientes
Código abierto
Multi-protocolo
Autónomo
Personalizable
Actualizaciones estables
8
2.4. Otras alternativas
Las tres alternativas software comentadas anteriormente son ahora mismo las más utilizadas
por los usuarios. No obstante, existen muchas más alternativas existentes, como, por ejemplo:
Eedomus.
Consta de un controlador, aplicaciones y dispone de un servicio en la nube opcional.
Este controlador dispone de un puerto Ethernet y dos puertos USB. Soporta la
tecnología Z-Wave, de serie, y EnOcean de manera opcional. Además dispone de un
sinfín de dispositivos para la automatización del hogar.
El precio del controlador oscila entre 250-300 euros.
Zipato Zipatile.
Utiliza los protocolos Z-Wave y ZigBee. Es un dispositivo muy útil para situarlo junto a la
pared del hogar. Cuenta con un gran número de sensores y módulos, además de
termostato, cámara IP, controlador de automatización y alarma.
El precio es de unos 350 euros y está disponible en el sitio web oficial.
9
CAPÍTULO 3
Especificación de requisitos
3.1. Alcance
Este proyecto nace de la necesidad de diseñar e integrar un sistema domótico inteligente que
actúe de manera lo más autónomo posible para la mejora de calidad de vida de los usuarios. El
sistema tiene que ser capaz de comunicarse de manera fiable, rápida y segura.
Otro aspecto a tener en cuenta será el alcance de las señal inalámbrica del sistema, que tendrá
que ser capaz de alcanzar todas y cada una de las estancias de la vivienda.
El sistema domótico a desarrollar debe tener compatibilidad con los dispositivos móviles
Android e iOS. Además, deben ser de bajo consumo y se alimentarán mediante red eléctrica o
pila.
Por otra parte, los dispositivos que forman el sistema domótico se comunicarán de forma
inalámbrica mediante WI-FI, Bluetooth, ZigBee o MQTT.
10
Actuadores. Este tipo de dispositivos se utilizarán para controlar el apagado y
encendido de luces, riego, calefacción, subir y bajar persianas, etc. Depende de la
funcionalidad se dispondrá de un tipo de actuador, como por ejemplo: enchufes
inteligentes, interruptores de pared, pulsadores inalámbricos, etc. La comunicación se
realizará a través de los protocolos ZigBee, MQTT o WI-FI. La alimentación de estos
dispositivos será a través de pilas de botón o directamente a la red eléctrica.
Funcionalidad Descripción
Temperatura Lectura de la temperatura en grados centígrados.
Humedad Lectura de la humedad relativa.
Gestión de luces Controlar mediante un interruptor o relé el
apagado / encendido de luces.
Gestión de puertas Controlar el estado de puertas o ventanas.
Gestión de enchufes Controlar mediante un relé o enchufe inteligente
un determinado punto de corriente.
Gestión de riego Actuar sobre una electroválvula para encendido /
apagado del riego.
Gestión termostato Actuar sobre calefactores en función de la
temperatura de cada estancia.
Autonomía de baterías Conocer el estado de las de batería de los
dispositivos.
Temporización Controlar el tiempo de apagado o encendido de
algunos de los dispositivos.
Sistema inteligente El sistema gestionará persianas, modos, luces,
temperaturas, etc.
3.3.2. Restricciones
Las restricciones existentes más relevantes de este proyecto son las siguientes:
La función de cada dispositivo tiene que estar disponible para cada usuario en
todo momento.
El sistema tiene que ser escalable para poder añadir más dispositivos en un futuro.
La comunicación entre los diferentes dispositivos tiene que ser rápida, segura y
fiable.
La distancia entre dos dispositivos tiene que ser la correcta para una buena
comunicación entre ellos.
11
CAPÍTULO 4
Planificación y costes
En las fases de desarrollo se recogerán los aspectos más importantes en este proyecto y se
realizará una estimación del tiempo de dedicación. Por último, se incluirá un diagrama de Gantt
con todas las tareas realizadas en periodos de tiempo.
12
Fase 6. Instalación y configuración.
Se realizará el montaje, instalación y configuración del servidor domótico. Esta fase es
la más laboriosa de todas ya que alberga una gran parte de acciones que deben ser
realizadas correctamente para un funcionamiento óptimo del sistema.
Una vez definidas todas las fases del proyecto, se realizará una estimación del tiempo invertido
en cada una de ellas en el estudio de tecnologías, en la implementación y en la documentación.
Esta planificación se puede estudiar siguiendo el diagrama de Gantt.
Tabla resumen con el tiempo de dedicación que se le ha asignado a cada una de las fases:
La totalidad de horas invertidas en este proyecto asciende a 397. Como se puede observar, la
inversión de mayor número de horas ha sido en la implantación y en la instalación y
configuración del sistema domótico.
13
Ilustración 6. Diagrama de Gantt.Imagen propi
14
4.2. Recursos
En esta apartado se definirán los recursos hardware y software utilizados en este proyecto. Los
recursos humanos se sobreentiende que es el creador de este proyecto.
4.2.1. Hardware.
4.2.2. Software
15
Aplicación Mi Home de Xiaomi para la vinculación de las centralitas y dispositivos
domóticos.
El programa Floorplanner para diseñar un plano de la vivienda con sus respectivos
sensores y actuadores.
En este apartado se realizará un análisis de los costes que suponen los recursos hardware y
software. Como se ha visto en puntos anteriores, la gran mayoría del software utilizado es de
código abierto, por esta razón no conllevará ningún incremento en la cuantía total al proyecto.
Por otro lado, los recursos hardware tendrán los siguientes costes:
Total 1082€
*Precio de los dispositivos redondeados al alza*
16
CAPÍTULO 5
HPE ProLiant MicroServer Gen10 [12], ofrece un servidor de nivel básico, compacto y asequible,
diseñado específicamente para entornos de pequeñas oficinas o pequeñas empresas. Este
servidor compacto y fácil de usar se puede colocar casi en cualquier lugar. El fácil acceso a las
unidades de disco duro, memoria y ranuras PCIe permiten una gestión, instalación y
actualización sencilla.
Las especificaciones técnicas son las siguientes: procesador AMD Opteron™ Serie X3000, 2
núcleos a una velocidad de 3,4 GHz, memoria RAM de 8GB DDR4, 2 PCIe 3.0 y 2 controladoras
de red Broadcom 5720.
17
5.2. Raspberry Pi
Raspberry Pi [13] nace del trabajo de una organización benéfica con sede en el Reino Unido, con
el objetivo de poner en manos de la gente de todo el mundo un enfoque digital.
5.2.1. Raspberry Pi 3B
En la actualidad se pueden encontrar varios modelos de minicomputadoras de este tipo,
pero para la realización de este proyecto nos centraremos en la Raspberry Pi 3.
18
En segundo lugar, con la imagen del sistema operativo dentro de la SD, se introducirá en la
ranura de la RPI3. A continuación, para una primera configuración, es conveniente conectar
la placa a una pantalla mediante HDMI, teclado y ratón.
MQTT (Message Queue Telemetry Transport), según su sitio web oficial [18] y (según Geeky
Theory, 2018) en [19], es un protocolo usado para la comunicación machine-to-machine
(M2M) en el "Internet de las cosas". Este protocolo está orientado a la comunicación de
sensores, debido al poco consumo de ancho de banda y puede ser utilizado en la mayoría de los
dispositivos empotrados con pocos recursos.
19
El protocolo MQTT permite a diferentes dispositivos publicar información sobre un tema en un
servidor que actúa de intermediario entre los publicadores de datos y los consumidores. Una
vez que el servidos haya recibido los datos, este los envía a aquellos clientes que se han suscrito
a ellos. Los topic o temas en MQTT, tienen una estructura jerarquizada, donde los clientes
deciden en qué nivel se suscriben. Con esta jerarquía, este protocolo es una buena alternativa
para redes inalámbricas donde hay restricciones de ancho de banda o conexiones no confiables.
Por ejemplo, si se interrumpe la comunicación con un cliente, el servidor mantendrá la
información y se la volverá a enviar cuando la comunicación haya sido restablecida.
MQTT, según su estudio en [20], [21], [22] fue desarrollado por el Dr. Andy Standford-Clark de
IBM y Arlen Nipper de Arcom en el año 1999, para conectar diferentes dispositivos de
monitorización utilizados en la industria petrolífera cuyos servidores estaban en ubicaciones
distintas. El desafío consistía en enviar datos desde los sensores estando en lugares alejados.
Por ello, diseñaron una topología de comunicación publicación/suscripción basado en el modelo
TCP/IP.
A sus inicios, era un protocolo específicamente para IBM, pero desde 2013, es un protocolo
abierto.
El protocolo MQTT posee puertos TCP/IP estandarizados. El 1883 está reservado para su uso
básico, y, por otro lado, tiene registrado el puerto 8883 para conexiones seguras mediante
TLS/SSL.
El servidor puede gestionar una o varias comunicaciones con uno o múltiples clientes
simultáneamente. Las comunicaciones MQTT se dividen en diferentes etapas: conexión,
autenticación, suscripción, anulación de suscripción, publicación y desconexión.
En la etapa de conexión, el cliente intenta establecer una unión con el intermediario o servidor
del protocolo MQTT. Seguidamente, se realiza la autenticación con la secuencia de paquetes
CONNECT/CONACK.
20
Ilustración 12.Garcia Soria, A. Comunicación establecida entre cliente
y bróker [Consulta: 27 de diciembre de 2018]. Disponible en:
http://wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_AlejandroGarciaS
oria.pdf
Para realizar una anulación de suscripción, también de deben utilizar estas cadena de caracteres,
pero en este caso se realizaría un intercambio con el servidor mediante el mensaje
UNSUSCRIBE/UNSUBACK.
Otra de las alternativas que posee el cliente en la comunicación con el bróker consta del cierre
de la conexión, el envío del mensaje DISCONNECT.
MQTT reconoce tres niveles diferentes de calidad del servicio. Los niveles superiores permiten
una mayor calidad del servicio, pero esto puede llevar mayor latencia y ancho de banda.
En primer lugar, está el nivel más básico, recibe el nombre de “como máximo una vez” (QoS0).
Este nivel envía una secuencia de paquetes PUBLISH al bróker para un topic determinado y este
lo reenvía una sola vez hacia los clientes suscritos a dicho topic. Por lo tanto, no se hace uso de
ningún mecanismo que compruebe su recepción y el servidor no mantiene los mensajes en su
memoria.
El segundo nivel de calidad de servicio es llamado “al menos una vez” (QoS1). Utiliza una
secuencia de mensajes PUBLISH/PUBACK entre el publicador y el bróker. Además, se utilizará un
acuse de recibo para indicar la correcta recepción de la información. De este modo, si no se
recibe la información, el bróker la reenviará de nuevo.
21
Ilustración 14.Garcia Soria, A. Calidad de nivel QoS1
[Consulta: 27 de diciembre de 2018]. Disponible en:
http://wpd.ugr.es/~jorgenavarro/thesis/2017_TFG_Alejand
roGarciaSoria.pdf
Para finalizar, se tiene el tercer nivel de calidad, denominado como “exactamente una vez”
(QoS2) o servicio asegurado. La entrega se realiza en dos mensajes. Un primer mensaje
compuesto por paquetes PUBLISH/PUBREC y un segundo por PUBREL/PUBCOM. Este
mecanismo asegura que la información sea enviada solamente una vez, independientemente
del número de intentos realizados.
22
referente a IoT en un sistema con recursos limitados. Se utiliza para mensajería ligera, tanto en
máquinas potentes como en sistemas de baja potencia.
Habitualmente, el bróker Mosquitto consume 3MB de RAM con una conexión máxima de 1000
clientes conectados simultáneamente. Además, es capaz de establecer conexiones con otros
servidores MQTT a modo de puente, consiguiendo una conectividad total entre diferentes
puntos de este tipo de redes.
Un servidor Mosquitto.
El cliente “mosquitto_pub”, utilizado para realizar publicaciones en el servidor y el
cliente “mosquitto_sub”, utilizado para poder suscribirse a un tema.
ZigBee (según Marín Moreno, J y Ruiz Fernández, D. 2007) en [24], es una tecnología inalámbrica
de corto alcance y bajo consumo que se define como una solución de baja capacidad para
aplicaciones del hogar como la seguridad y la automatización.
El objetivo de esta tecnología no es obtener velocidades muy altas, ya que solo puede alcanzar
una tasa de 20 a 250kbps en un rango de 10 a 75 metros, si no conseguir que los sensores tengan
un bajo consumo energético. De hecho, algunos dispositivos alimentados con pilas pueden
aguantar hasta 2 años. Por tanto, estos dispositivos pasan su mayor parte “durmiendo” para
consumir menos.
902.928 MHz: Norte América, hasta cinco canales, extendidos a treinta en 2006.
La banda ISM de 2,4 GHz es la más popular ya que no limita geográficamente el ámbito de
uso de los dispositivos.
23
poder tener 64770 nodos. Existe la posibilidad de utilizar varias tipologías de red: en estrella,
en malla o en grupos de árboles, como pueden ver a continuación:
Si hablamos de los tipos de dispositivos, nos encontramos con tres categorías de nodos:
24
5.5.3. Seguridad
La seguridad en la comunicación es uno de los puntos fuertes de ZigBee. El protocolo
proporciona mecanismos de control de acceso de los dispositivos a la red (autenticación) y
de cifrado (utilizando criptografía de clave simétrica) así como de integridad, asegurando
que las tramas transmitidas sufran manipulación con comprobaciones de integridad de
mensaje (MIC).
Los aspectos relacionados con las claves criptográficas en ZigBee son fundamentales en la
seguridad. ZigBee fundamenta su arquitectura de seguridad en la utilización de criptografía
de clave simétrica contando con un elaborado protocolo para la gestión de claves. ZigBee
utiliza 3 tipos distintos de claves según se asocien a una red, a un grupo de dispositivos o
bien a un enlace entre dos elementos:
Clave maestra (master key): Clave a partir de la cual se generan las diferentes claves
de enlace. Dada su importancia, la clave maestra inicial ha de obtenerse por medios
seguros.
Clave de enlace (link key): Cifra las comunicaciones punto a punto a nivel de
aplicación, y sólo es conocida por los elementos que participan en dicho enlace. Esta
clave sólo se comparte entre dos elementos de la red y varía para cada pareja de
elementos.
Clave de red (network key): Clave utilizada a nivel de red y conocida por todos los
elementos pertenecientes a ésta. La clave de red también se utiliza en agrupaciones
de más de dos elementos dentro de una red.
Las claves utilizadas en los dispositivos ZigBee se guardan en memoria, por lo que un
intruso puede simplemente leer la clave directamente de la memoria si tiene acceso físico
al mismo (con software específico) y no se encuentran implementados mecanismos de
seguridad. [26]
OpenHAB es un proyecto de software libre creado por Kai Kreuzer. Es un software desarrollado
en Java y basado en Eclipse SmartHome. Está diseñado para ser absolutamente independiente
del proveedor, así como del hardware y del protocolo de comunicación, haciendo de esto su
principal característica.
La interoperabilidad es una de las principales barreras a las que se enfrenta el IoT. Existen
muchas soluciones en el mercado pero resulta casi imposible combinarlas entre sí, ya que es el
25
fabricante el que define los casos de uso y protocolos. OpenHAB surge para salvar esta barrera
y reivindicar las necesidades de los usuarios, pudiendo conectar dispositivos de proveedores
diferentes a un mismo sistema.
OpenHAB es una apuesta muy acertada, ya que la privacidad de los datos de los usuarios se los
gestionan ellos mismos, dicho de otra forma, el usuario decide qué información sale al exterior
de la red. Esta solución puede ser utilizada sin acceso remoto, por lo que todos los datos
recogidos por los diferentes elementos que compongan el sistema domótico se mantendrán
seguros dentro de la intranet del hogar.
El sistema openHAB no nace como una alternativa del sector del “Internet de las cosas” que
pretende desbancar a otras soluciones, su pretensión es mejorar el funcionamiento y la
integración entre los diferentes sistemas utilizados.
Cada Item representa una funcionalidad que puede ser utilizada por una aplicación, una interfaz
de usuario o para reglas de automatización. Los Items pueden tener estados y son capaces de
recibir comandos. La unión entre las things y los ítems son los “enlaces”, en adelante bindings.
Ilustración 18.Funcionamiento
bindings openHAB. Imagen propia
26
5.7. Sonoff (ITEAD)
Sonoff (según Luis, Llamas, 2018) en [27] y [28], es una empresa productos referentes a la
domótica muy interesantes. Es una alternativa atractiva y económica para convertir tu casa en
domótica. La gama Sonoff de ITEAD se presenta como una alternativa de bajo coste y muy bien
implementada, motivo por el cual está cogiendo una gran popularidad.
De momento, en este proyecto, solo se va a tener esta marca para dispositivos de tipo relé. Los
dispositivos de la marca Sonoff utilizados están basados en el chip ESP8266 y su uso es muy
sencillo. Dispone de una entrada (input) y una salida (output). Además, el relé incorpora un
botón para accionarlo de forma manual.
Sonoff Basic
Especificaciones
Rango de voltaje: 90-250v AC (50/60Hz)
Corriente máxima: 10ª
Potencia máxima: 2200W
Dimensiones: 88 * 38 * 23 mm
Material de la caja: ABS ignífugo
Humedad: 5% -90% HR, anti
condensación.
Estándar inalámbrico: 802.11 b / g / n
Mecanismo de seguridad: WPA-PSK / WPA2-PSK
Temp. de funcionamiento: 0ºC-40ºC
1 Interruptor por dispositivo.
Sonoff Dual R2
Especificaciones
Rango de voltaje: 90-250v AC (50/60Hz)
Corriente máxima: 16A
Potencia máxima: 3500W
Dimensiones: 114 * 52 * 32 mm
Material de la caja: ABS ignífugo
Humedad: 5% -90% HR, anti condensación.
Estándar inalámbrico: 802.11 b / g / n
Mecanismo de seguridad: WPA-PSK / WPA2-PSK
Temperatura de funcionamiento: 0ºC-40ºC
2 Interruptores por dispositivo.
La empresa Sonoff [29] dispone de aplicación propia para sus dispositivos, disponible tanto para
iOS como para Android. De momento, la empresa no ha dado el salto a la integración de sus
servicios en el sistema domótico openHAB, aunque existe un firmware alternativo para hacer
posible dicha unificación mediante MQTT, denominado “Tasmota”.
27
5.8. Chip ESP8266
El chip ESP8266E-X según su documentación oficial en [30], presenta una solución completa de
Wi-Fi en un SoC integrado desarrollado para satisfacer las necesidades de los usuarios en
implementaciones de eficiencia energética y diseños compactos relacionados directamente con
el IoT.
Una característica muy importante presente en todas las versiones de este módulo es la
posibilidad de conectar sensores u otros dispositivos mediante los pines GPIOs.
Este tipo de módulos son utilizados principalmente para proyectos relacionados con IoT.
Algunas de sus aplicaciones más frecuentes son referentes a la automatización del hogar,
control de la iluminación, redes de sensores, cámaras IP, etc.
Hay diferentes módulos del chip ESP8266 (según Community Wiki, 2018) en [31], los cuales se
diferencian en la distribución y número de pines GPIO, el valor de resistencias, limitadores de
corriente, etc.
Tasmota (según Michael Ingraham, 2018) en [32], es un firmware alternativo para dispositivos
basados en el chip ESP8266, permitiendo interactuar y configurar el dispositivo por vía web.
Además, permite configurar temporizaciones, actualizaciones de firmware y es compatible con
28
sensores de todo tipo. Con la modificación de este firmware en placas con chip ESP8266, se
hace posible la integración en la plataforma openHAB mediante el protocolo MQTT.
Existen varias opciones para la modificación del chip ESP8266; mediante el IDE de Arduino, con
el programa SonOTA o mediante ESPEasy.
5.10. FTDI
FTDI (Future Technology Devices International) [33], es una empresa privada escocesa de
dispositivos semiconductores, especializada en tecnología Universal Serial Bus (USB).
Para una mejor gestión y configuración de los dispositivos se ha decidido presidir del router de
la compañía. Los motivos han sido los siguientes: mayor rendimiento, mejor rango de señal,
portabilidad y seguridad.
Con el cambio de firmware (según U/Dr_Schmoctor, 2015) en [35], este dispositivo de convierte
en un producto más potente, incorporando una interfaz mucho más configurable e intuitiva. El
firmware de Padavan dispondrá de soporte de descargas, Servidor y cliente VPN, FTP, cliente
Torrent, servidor SMB, UPnP/DLNA y muchas más funcionalidades.
29
5.12. Dispositivos ZigBee en Mi Home
Mi Home (según Juan Jesús, 2016) en [36], es la aplicación Oficial de Xiaomi que permitirá
vincular y gestionar todos los productos de la marca. Así, la aplicación puede comportarse
perfectamente como un sistema domótico. Se podrán automatizar luces, sensores, aspiradora,
ventilador, cámaras, etc.
Características técnicas.
A la centralita domótica se vincularán todos los dispositivos de la marca que funcionen mediante
el protocolo ZigBee. En la siguiente tabla se pueden ver los dispositivos vinculados a la centralita
domótica:
Dispositivos ZigBee
30
Sensor de temperatura Xiaomi Mijia
31
CAPÍTULO 6
Instalación y configuración
En este apartado se recopilarán los pasos necesarios para la instalación y configuración de los
diferentes servicios y/o herramientas utilizadas en este proyecto.
En primer lugar, se realizará la descarga e instalación de los sistemas operativos para los dos
servidores. Una vez instalados los sistemas operativos, se realizará la instalación de openHAB y
el bróker MQTT, denominado Mosquitto.
Como se ha dicho en apartados anteriores, este modelo de servidor será el que contendrá,
además del servidor domótico, albergará un gestor para las cámaras y un NAS de datos en red.
El sistema elegido para el servidor será un Ubuntu Server 18.04. La descarga de la imagen se
realizará desde la página oficial de Ubuntu, en [37]. Una vez descargada, se montará con la
herramienta “win32DiskImager” [38]. Su utilización es sencilla, basta con buscar la imagen del
sistema operativo, seleccionar le letra del USB correcta donde se quiera cargar y pulsar sobre
“Write”.En pocos minutos estará disponible la imagen para instalar en el servidor.
32
A continuación, se accederá a la BIOS del servidor HP y se elegirá la opción de arranque mediante
USB. Después del reinicio del sistema aparecerá por pantalla la configuración de instalación.
El primer paso será seleccionar el idioma y la distribución del teclado que se desee.
El siguiente paso será la gestión de particiones del disco duro. En este caso, se utilizará toda la
memoria del disco para la instalación del sistema operativo.
En esta sección se llevará a cabo una explicación de los pasos necesarios para la descarga y
configuración de openHABian en la RPi3. Es una distribución basada en Raspbian [39] y contiene
en su interior la última versión de openHAB. La RPI3 contendrá tanto el servidor Mosquitto como
una versión a modo de prueba de openHAB, por lo que antes de realizar cualquier prueba de
riesgo directamente en el servidor HP, se realiza en el servidor de la RPi3 para prevenir posibles
errores y no entorpecer el funcionamiento correcto del servidor HP.
33
finalización. El siguiente paso será inserta la tarjeta SD en la Rpi3 y esperar a que el sistema
(aproximadamente 15-45 minutos).
OpenHABian asigna un usuario y contraseña por defecto, por lo que se deberá cambiar para
mayor seguridad. Se accederá a la configuración del sistema en “sudo raspi-config” para realizar
los siguientes cambios:
$ sudo raspi-config
1. Cambiar contraseña.
2. Cambiar usuario.
3. Cambiar el nombre del host.
4. Habilitar el SSH para conexiones remotas.
Con la habilitación del protocolo SSH se podrá acceder de forma remota mediante el programa
“PuTTY”. Este programa, según Wikipedia [40] es un cliente SSH con licencia libre.
Se buscará entre todas las opciones el servicio Mosquitto y ejecutaremos la instalación del
servicio.
34
Si todo el proceso ha finalizado satisfactoriamente, el servidor Mosquitto deberá estar
funcionando. Su puerto por defecto es el 1883. Para la comprobación de funcionamiento del
servicio, basta con ejecutar el comando “netstat” en consola y observar si está escuchando por
su puerto. Además, para más seguridad, con el comando “sudo systemctl status
mosquitto.service” podemos comprobar su estado de ejecución.
netstat
sudo systemctl status mosquitto.service
Los accesorios necesarios para la modificación de este tipo de dispositivos son los siguientes:
Depende de los modelos disponibles en el mercado, los pines a soldar estarán situados en un
lugar u otro. En internet se puede encontrar mucha información al respecto.
Una vez realizada la soldadura, se procederá a la conexión la placa con el FTDI, tal y observa en
la siguiente ilustración:
35
A continuación, se procederá a la descarga del firmware Tasmota [41], el programa ESPEasy [42]
y el programa Ternite [43] para la configuración de red del dispositivo. El firmware sonoff.bin
descargado se colocará en la raíz del programa ESPEasy.
Para el cambio de firmware, el relé Sonoff tiene que estar en modo flasheo. Depende del modelo
de relé se realizará de una manera u otra.
Estando el Sonoff en modo flasheo, se conectará el FTDI al ordenador mediante la conexión USB
y se ejecutará el programa ESPEasy. Aparecerá una ventana donde se añadirá el puerto COM y
se seleccionará el firmware previamente puesto en la raíz del programa. Finalmente, se esperará
a que finalice el proceso.
Una vez finalizado el cambio de firmware, se deberá utilizar el programa Ternite, que contactará
vía chat (mediante el puerto COM correspondiente) al relé. Con este programa se realizará la
conexión de red entre el dispositivo y el router, asignándole al dispositivo una dirección IP para
poder acceder vía web. Los comandos a utilizar para la conexión de red en la consola del
programa Ternite son:
Ssid [ssid_router]
Password [contraseña_router]
36
6.5. Instalación y configuración de openHAB
Se definirá un apartado con la configuración del protocolo MQTT y su vinculación con el sistema
domótico openHAB.
Para finalizar, se definirán otras configuraciones no presentes en el sistema domótico pero que
son de una gran transcendencia para su buen funcionamiento.
¡wget-qO-
'https://bintray.com/user/downloadSubjectPublicKey?username=openhab'|
sudo apt-key add -
sudo apt-get install apt-transport-https
37
Versión beta: compilación que posee alguna característica en fase de
pruebas, por lo tanto, puede que no estén revisadas y comprobadas
completamente.
6. Hay una serie de comandos que serán de gran ayuda a lo largo de todo el
proceso de aprendizaje de este sistema domótico. Los comandos para poder
iniciar y controlar el servicio openHAB:
sudo systemctl start openhab2.service
sudo systemctl status openhab2.service
http://<IP_servidorHP_gen10>:8080.
38
Ilustración 30. Interfaz de bienvenida de openHAB. Imagen Propia
Basic UI: Es un panel de control para los diferentes interfaces de usuario o sitemaps
que se tengan creados. Es la parte visual del sistema y dispone de un diseño
adaptable a cualquier tipo de pantalla y actualización en tiempo real.
39
Ilustración 32. Interfaz Basic UI. Imagen Propia
40
Configuración automática
Para una primera configuración de los dispositivos o servicios reconocidos por el sistema
domótico openHAB, se debe utilizar la interfaz “Paper UI”.
Cabe destacar, tal y como se ha comentado anteriormente, que las things pueden ser tanto
dispositivos físicos como no físicos. Por ejemplo, un sensor es un dispositivo físico, mientras
que la predicción del tiempo se considera un servicio de openHAB no físico.
41
Si la configuración se ha realizado correctamente, en “Configuration > Things” aparecerá el
servicio enlazado con el estado “en línea”.
En este momento entran en juego los canales o channels. Se deberán enlazar los things a
los ítems y cada ítem con sus correspondientes canales. Por ejemplo, el binding NTP
dispone de dos canales. El primer canal devuelve un dato de tipo fecha (datetime) mientras
que el segundo devuelve un dato de tipo texto (string).
A continuación, haciendo clic sobre el punto azul, aparecerá el procedimiento para enlazar
el canal al ítem. Para ello, se deberá de seleccionar el ítem creado anteriormente, tal y como
se muestra en la siguiente ilustración:
42
Finalmente, la pestaña de “Control” mostrará por pantalla la configuración realizada
previamente.
Configuración manual
La integración de dispositivos y servicios de forma manual tiene una mayor dificultad, pero
con la experiencia, se obtienen unos resultados mucho más óptimos.
El primer paso será crear un nuevo archivo dentro de la carpeta things, como por ejemplo
“ntp.things”.
43
Para la creación de los ítems, se utilizará como ejemplo la sintaxis siguiente:
itemtype itemname "labeltext [stateformat]" <iconname> (group1) ["tag1",
"tag2", ...] {bindingconfig}
Finalmente, se ajustará la nomenclatura del ítem descrito arriba al binding NTP, así:
DateTime Datos_NTP "Fecha completa [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]"
<time> { channel="ntp:ntp:local:dateTime"}
6.5.4. Sitemaps
La implementación de los archivos de configuración sitemaps es fundamental para un
aspecto visual detallado y ordenado de la interfaz de usuario “Basic UI”.
Es obligatorio que el archivo comience con la palabra sitemap, seguido del nombre y una
etiqueta con el título. Los ítems ItemType e ItemName deberá ser el mismo que el fichero
de definición, tal que así:
sitemap Home label= "Menú principal"
{
Default item=Datos_NTP label="Prueba Fecha y Hora"
}
44
6.5.5. Bindings utilizados
En este apartado se definirán todos los bindings que se han ido instalando a lo largo del
presente proyecto. Como se puede estudiar en [46], existen muchos más.
Astro Binding
Este binding hace referencia a información sobre la luna y el sol. Por ejemplo, puede
dar datos de cuando amanece, atardece, la estación del año, la radiación solar, el
día que se producirá un eclipse, etc.
GPSTracker Binding
GPSTracker proporciona información sobre la situación en tiempo real de las
personas inquilinas en la vivienda. Es muy interesante para, por ejemplo, la
desconexión de la alarma automáticamente cuando el usuario esté relativamente
cerca de su hogar.
HTTP Binding
Útil para enviar comandos a los elementos con la pretensión que actualice su estado
mediante sondeos en una URL. Por ejemplo, se utilizará para acceder al servicio de
las cámaras de vigilancia.
KODI Binding
Este binding enlazará cualquier dispositivo que se tenga KODI con openHAB para la
reproducción de películas, videos, imágenes, etc.
Network Binding
Útil para saber si los dispositivos de nuestra red están en conexión, además de
indicar la latencia y la hora a la que se ha actualizado dicho estado.
NTP Binding
Es utilizado para mostrar la fecha y hora basándose en el servidor NTP que
tengamos configurado.
SystemInfo Binding
Proporciona información del dispositivo donde esté instalado openHAB. Es muy
útil para saber la memoria RAM que está utilizando el sistema, la memoria ROM
disponible, la temperatura del servidor, etc.
Xiaomi Mi IO Binding
Útil para la integración de diferentes dispositivos fabricados por la marca china
Xiaomi. Por ejemplo, se puede integrar el robot aspirados, lámparas de escritorio,
purificadores de aire, etc.
45
Yeelight Binding
Útil para la integración de productos de la marca Yeelight, empresa dedicada a
la iluminación.
MQTT Binding
Permite que openHAB actúe como servidor MQTT. Puede ser utilizado para
accionar relés desde la mota MQTT y encender / apagar cualquier dispositivo
conectado.
Wheather Binding
Proporciona información sobre el tiempo actual, como la temperatura exterior,
humedad, condición meteorológica, velocidad del viento, etc.
Un buen ejemplo de uso de automatizaciones sería con la utilización del binding de Astro,
mediante la ejecución de un interruptor ON/OFF, con estado ON cuando se atardezca y OFF
cuando amanezca. De este modo se podría programar automatizaciones como luces, subir
y bajar persianas, etc.
rule "Amanecer"
when
Channel 'astro:sun:home:rise#event' triggered START
then
modoNoche.postUpdate(OFF)
end
rule "Atardecer"
when
Channel 'astro:sun:home:set#event' triggered START
then
modoNoche.postUpdate(ON)
end
46
6.5.7. Integración myOpenHAB
MyopenHab [47] es un servicio de nube creado por los desarrolladores de openHAB que
permite el acceso remoto a las instancias sin la necesidad de una configuración VPN.
Además, permite el envío de notificaciones “Push” al teléfono.
La instalación del binding generará dos ficheros, UUID y Secret. Estos se pueden encontrar
en las rutas /var/lib/openhab2 y /var/lib/openhab2/openhabcloud respectivamente. El
contenido de estos ficheros se añadirá junto al registro en la web oficial
https://myopenhab.org/.
47
En el fichero mqtt.cfg se modificarán las siguientes líneas:
# URL to the MQTT broker, e.g. tcp://localhost:1883 or
ssl://localhost:8883
ejemplobroker.url=tcp://192.168.X.X:1883
Este proyecto, solo dispone de los relés de Sonoff y del sensor de plantas funcionando con
el protocolo MQTT. En un futuro, se pretende añadir muchos más dispositivos mediante
este protocolo.
El siguiente ejemplo hace referencia al extractor de aire de la cocina, donde la acción que
implementa es la de apagado/encendido. Para ello, se utilizará el relé Sonoff Basic y se
accederá con su dirección IP a su configuración.
Una vez accedido a la dirección IP del dispositivo, en “configuration > Configure MQTT”, se
configurarán los parámetros para la conexión con el servidor Mosquitto, tal y como muestra
la siguiente imagen:
48
Finalmente, siguiendo la sintaxis proporcionada por la documentación oficial y teniendo
configurado el servidor y cliente MQTT, se procederá a la creación del ítem.
Switch Extractor_Cocina "Extractor cocina" <pump> {mqtt="> [broker:cmnd/sonoff-
Basic_3/POWER:command:*:default],<[broker:stat/sonoff-Basic_3/POWER:state:
default]"}
En este apartado se definirán otras instalaciones y configuraciones. Por una parte, la instalación
y configuración del router que aportará portabilidad, escalabilidad y seguridad. Por otra parte,
para mejorar la accesibilidad a los archivos de configuración, se instalará el editor de código VS
Code. Finalmente se explicará la integración de la centralita domótica mediante la aplicación de
Mi Home de Xiaomi a la plataforma openHAB.
49
2. A continuación se elegirá la red Wi-Fi a la que se vinculará con su respectiva
contraseña.
50
Ilustración 46. VS Code Plugin openHAB. Imagen Propia
Instalación SMB
SMB es un protocolo de red que permitirá compartir archivos, impresoras, etc. La
instalación se realizará con este comando:
Sudo apt-get install samba samba-common-bin
[openHAB2-conf]
comment=openHAB2 site configuration
path=/etc/openhab2
browseable=Yes
writeable=Yes
only guest=no
public=no
create mask=0777
directory mask=0777
51
Finalmente, se reiniciará el servicio SMB.
sudo systemctl restart smbd.service
Acceso remoto
El acceso remoto a las carpetas compartidas del servidor openHAB, se accederá desde el
PC local mediante la dirección IP. Se deberá de poner el usuario y contraseña para
autenticarse.
52
CAPÍTULO 7
En este apartado se presentan los aspectos más importantes referentes a la vivienda. Además,
se creará un plano 2D para localizar todos los dispositivos. Finalmente, se detallarán las
automatizaciones que se han implementado en la vivienda y se describirá brevemente el
proceso general llevado para las baterías de pruebas realizadas para testear el correcto
funcionamiento.
7.1. Descripción
Las estancias del inmueble se dividen en una solo planta: comedor, cocina, oficina, dos baños,
dos habitaciones, pasillo, una terraza interior y un balcón exterior. La vivienda tiene un total de
90 metros cuadrados y dispone de ventanas de luz exterior.
7.2. Plano 2D
El siguiente plano 2D dispone de todos los dispositivos utilizados en este proyecto localizados
por estancias. El diseño se ha realizado por mediación de la plataforma online “floorplanner”
[49].
53
Sensor de presencia Cámara de vigilancia
Sensor de temperatura Servidor openHAB y MQTT
Luz con interruptor Extractor de humo
Red Sensor de puertas / ventanas
Enchufe inteligente Electroválvula
Medidor de consumo Reproductor multimedia KODI
Detector de humo Router WI-FI
Pulsador
Se denomina automatización (Según Julián Pérez Porto y María Merino. 2016) en [50], a hacer
que determinadas acciones se vuelvan automáticas, es decir, que se desarrollen por sí solas y
sin la participación directa de un individuo.
Las automatizaciones en la domótica tienen como objetivo principal hacer la vida más fácil,
mejorar la seguridad y el confort. Las automatizaciones que dispone la vivienda unifamiliar a día
de hoy son las siguientes:
Automatización total de la iluminación en gran parte de la vivienda. Las luces del pasillo
y entrada tienen inteligencia propia para encenderse y apagarse automáticamente
dependiendo de la luminosidad o de la salida y puesta del sol. Por ejemplo, cuando
amanece, se dispara el “trigger” y cambia el disparador del estado ON a OFF, por lo
tanto, las luces pasan a ser manuales, mientras que si se atardece y el estado cambia a
ON, las luces del pasillo son automáticas siempre y cuando detecte movimiento (sensor
de presencia).
54
El control del sistema de riego lo gestionará el sensor de plantas. Si la tierra está por
debajo de la humedad que necesita, activara el relé Sonoff Basic a ON y él mismo
accionará la electroválvula de agua. Cuando la humedad llegue al porcentaje que se
necesita, automáticamente el sensor de plantas dará la señal al relé, cambiando el
estado a OFF de la electroválvula.
La alarma está configurada con las tres centralitas domóticas disponibles en la vivienda.
Cuando se sale de la vivienda, se activa la alarma mediante un pulsador y se dispone de
60 segundos para abandonar el hogar antes de que se active la alarma. Pasados ese
tiempo la alarma será activada. Por lo tanto, cuando la puerta vuelva a ser abierta, se
accionará el estado del sensor de puerta de CERRADA a ABIERTA y se dispondrán de 10
segundos de cortesía para desactivar la alarma. Si trascurridos esos 10 segundos no se
ha desactivado la alarma, los tres altavoces integrados de las controladoras harán de
sirena.
Cabe resaltar, que todas las automatizaciones definidas anteriormente tienen configurado
aviso de mensajería al usuario mediante Telegram. Por lo tanto, nos avisará de todo lo que
está pasando en la vivienda vía chat.
55
Una vez programada una automatización, hay que ver si afecta a otra indirectamente, por lo que
es una tarea que puede llevar muchas horas o incluso días en la detección de bugs del sistema.
Además, se deben contemplar todos los casos posibles que puedan afectar a esa
automatización.
En las diferentes pruebas que se han realizado en este proyecto, se ha ido depurando el sistema
hasta llegar a un punto donde se comporta de la manera que tiene que comportase, sin errores
no fallos.
Otra prueba a realizar la conexión remota desde un dispositivo móvil al sistema. Esta conexión
se realizar mediante el sitio web https://myopenhab.org/. Se accederá desde el móvil a la URL
indicada y se deberá poner el usuario y contraseña para acceder al sitio.
Una vez realizada la conexión correctamente se seleccionará una de las tres opciones, en este
caso, “Basic UI”. De este modo se tendrá acceso remotamente a la plataforma openHAB para
interactuar con los dispositivos de cualquier lugar.
Esta prueba ha sido verificada para la comprobación correcta del funcionamiento del sistema ya
que es muy importante saber el estado de los dispositivos a distancia.
56
CAPÍTULO 8
El segundo objetivo consistía en crear una interfaz de usuario básica e intuitiva. Además, dicha
interfaz debía permitir la monitorización y control en cualquier dispositivo móvil o tableta, desde
cualquier lugar y distancia. Por otra parte, la vivienda debía de tener inteligencia con la
programación de automatizaciones de todo tipo para mejorar la calidad de vida y confort de los
usuarios
Tras la finalización de este proyecto se puede considerar que los objetivos descritos
anteriormente han sido alcanzados.
Los beneficios que aporta este tipo de sistemas son muy importantes tanto para la utilización
empresarial como a nivel de usuario. El futuro está preparando para el uso de este tipo de
sistemas. Por otro lado, cada vez hay más empresas que ofrecen este tipo de servicios a los
clientes. Este tipo de servicios serán fundamentales para la mejora de la calidad de vida y el
confort de los usuarios, convirtiéndose en imprescindibles.
Algunas de las limitaciones que se han experimentado en este trabajo es la poca información en
sus inicios. Además, el desarrollo de este tipo de sistemas es complejo si no se tienen nociones
de programación. Otra de las limitaciones podría el precio de los dispositivos, ya que a nivel
regional es bastante elevado.
La motivación para realizar este proyecto fue por interés del autor, ya que es aficionado en este
ámbito desde hace años. Además, gracias al estudio para la realización de este trabajo se ha
descubierto el verdadero potencial de este tipo de sistemas, con la motivación de continuarlo
en un futuro.
57
8.1. Líneas futuras
En este proyecto se ha conseguido la gran mayoría de los objetivos propuestos, pero como se
ha comentado anteriormente, el término domótica es tan amplio que la palabra “final” no
existe.
A continuación, se definirán las líneas futuras que se van a alcanzar en un futuro próximo que:
Otra línea futura será la de aplicar más seguridad al sistema domótico. Investigadores
han comprobado los peligros que presenta la domótica inalámbrica, es decir, el control
automatizado del hogar. Sus comunicaciones pueden ser accesibles por terceros, que
pueden conocer los patrones de comportamientos de los habitantes, e incluso planear
un robo.
Por estos motivos, se intentará aplicar seguridad lo más rápido posible para afianzar el
sistema ante intrusos.
Se pretende integrar un módulo CC2531 para los dispositivos ZigBee para que funcionen
independientemente de la centralita domótica. Por lo tanto, ya no se requerirá de la
aplicación Mi Home.
Este Trabajo Final de Grado es el final de un largo trayecto donde he aprendido y adquirido
capacidades tanto a nivel personal como profesional. Los cuatro años universitarios me han
servido para afrontar los problemas encontrados y darles solución.
Respecto al proyecto, he conseguido cada uno de los objetivos que tenía en mente presentar en
él. Para ello, han sido necesarios varios meses de estudio y aprendizaje.
En un principio pensé que el proyecto no seguiría adelante, pero poco a poco las cosas iban
saliendo y eso me creó una motivación extra.
A día de hoy creo que tengo un sistema bastante completo y de fácil utilización para todos los
usuarios de la casa, pero esto solo es el principio. En un futuro, en mi propia vivienda, me
gustaría implementar un hogar domótico al 100%, a grande escala.
Para concluir, se puede decir que no hay mayor satisfacción que haber logrado finalizar este
proyecto, ya que en un futuro me gustaría dedicarme profesionalmente a implementar este tipo
de sistemas
58
CAPÍTULO 9
Referencias y bibliografía
Referencias
[1]
[2]
[3]
[4]
Microsoft, 2017. Internet de las cosas (IoT) para cada empresa. [WWW Document].URL
<https://azure.microsoft.com/es-es/overview/iot/?site=mscom_iot>
[Consulta: 11 de noviembre de 2017]
[5]
[6]
[14]
59
[17]
Raspi.TV, 2017. How much power does Pi Zero W use? [WWW Document].URL
<http://raspi.tv/2017/how-much-power-does-pi-zero-w-use>
[Consulta: 11 de enero de 2018]
[19]
[20]
[21]
[24]
Marín Moreno, J y Ruiz Fernández, D. 2007. Informe Técnico: Protocolo ZigBee (IEEE 802.15.4)
[WWW Document].URL
<https://rua.ua.es/dspace/bitstream/10045/1109/7/Informe_ZigBee.pdf>
[Consulta: 15 de enero de 2019]
[25]
[26]
[30]
[27]
Luis Llamas, 2018. Tú casa domótica con los dispositivos Sonoff de Itead [WWW
Document].URL <https://www.luisllamas.es/tu-casa-domotica-con-los-dispositivos-sonoff-de-
itead/> [Consulta: 1 de noviembre de 2018]
60
[30]
[31]
[32]
[33]
[34]
[35]
U/Dr_Schmoctor, 2015. How to install Padavan custom firmware on the Xiaomi Mi Router 3.
[WWW Document].URL
<https://www.reddit.com/r/Xiaomi/comments/5d0wmx/guide_how_to_install_padavan_cust
om_firmware_on/> [Consulta: 25 de Abril de 2018]
[36]
Juan Jesús, 2016. Gestiona tus dispositivos de Xiaomi desde el móvil. [WWW Document].URL
<https://mi-home.uptodown.com/android> [Consulta: 10 de enero de 2019]
[40]
[48]
[50]
61
[51]
Pedro Santamaría. 2015. Souliss, el proyecto que gustará a los makers fans de Arduino y la
internet de las cosas. [WWW Document].URL
<https://www.xatakahome.com/domotica/souliss-el-proyecto-que-gustara-a-los-makers-fans-
de-arduino-y-la-internet-de-las-cosas>
Bibliografia
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[15]
[16]
[18]
[23]
62
[28]
[29]
[37]
[38]
[39]
[41]
[42]
[43]
[44]
[45]
[46]
[47]
[49]
[52]
63
CAPÍTULO 10
En este anexo se recogerán los ficheros de configuración de openHAB. Algunos de esos ficheros
han sido simplificados por redundantes.
Things
xiaomi.things
// Dispositivos XIAOMI
// Gateway OFICINA
Bridge mihome:bridge:34ce00... "Bridge Xiaomi Gateway Oficina"
[ serialNumber="34ce00...", ipAddress="192.168.X.X" , port=9898, key="30io...",
pollingInterval=6000]
{
// GATEWAY
Thing mihome:gateway:34ce00... "Gateway Oficina" [itemId="34ce00..."]
//SENSORES
// Sensores de puertas / ventanas
Thing mihome:sensor_magnet:158d0... "Sensor ventana OficinaD"
[itemId="158d0..."]
Thing mihome:sensor_magnet_aq2:158d0..."Sensor ventana OficinaI"
[itemId="158d0..."]
// Sensor de presencia
Thing mihome:sensor_motion:158d0... "Sensor de presencia Oficina"
[itemId="158d0..."]
//INTERRUPTORES
Thing mihome:86sw2:158d0... "Interruptor 1 doble Oficina"
[itemId="158d0..."]
Thing mihome:86sw2:158d0... "Interruptor 2 doble Oficina"
[itemId="158d0..."]
64
//PULSADORES
Thing mihome:sensor_switch:158d0... "Pulsador 1: Flexo oficina"
[itemId="158d0..."]
//ENCHUFES INTELIGENTES
Thing mihome:sensor_plug:158d0... "Enchufe inteligente 1"
[itemId="158d0..."]
}
// Gateway COMEDOR
Bridge mihome:bridge:34ce0... "Bridge Xiaomi Gateway Comedor"
[ serialNumber="34ce0...", ipAddress="192.168.X.X" , port=9898, key="nzlcr...",
pollingInterval=6000]
{
// GATEWAY
Thing mihome:gateway:34ce0... "Gateway Comedor" [itemId="34ce0..."]
//SENSORES
// Sensores de puertas / ventanas
Thing mihome:sensor_magnet_aq2:158d0... "Sensor Puerta Comedor"
[itemId="158d0..."]
// Sensor de inundación
Thing mihome:sensor_wleak_aq1:158d0... "Detector de inundación Terraza
interior" [itemId="158d0..."]
//PULSADORES
Thing mihome:sensor_switch_aq2:158d0... "PulsadorC 3: Extractor Cocina"
[itemId="158d0..."]
}
// Gateway ENTRADA
Bridge mihome:bridge:7811d... "Bridge Xiaomi Gateway Entrada"
[ serialNumber="7811d...", ipAddress="192.168.X.X" , port=9898, key="rkole...",
pollingInterval=6000]
{
// GATEWAY
Thing mihome:gateway:7811d... "Gateway Entrada" [itemId="7811d..."]
// Interruptores Wireless
Thing mihome:86sw1:158d0... "Interruptor pasillo"
65
[itemId="158d0..."]
Thing mihome:86sw1:158d0... "Interruptor pasillo2" [itemId="158d0..."]
//SENSORES
// Sensores de puertas / ventanas
Thing mihome:sensor_magnet_aq2:158d0... "Sensor Puerta Entrada"
[itemId="158d0..."]
// Sensor de presencia
Thing mihome:sensor_motion_aq2:158d0... "Sensor de presencia Entrada"
[itemId="158d0..."]
Thing mihome:sensor_motion:158d0... "Sensor de presencia Pasillo"
[itemId="158d0..."]
// Sensor de vibración
Thing mihome:sensor_vibration:158d0...Sensor de vibracion Entrada"
[itemId="158d0..."]
//PULSADORES
Thing mihome:sensor_switch:158d0... "Pulsador 2: Alarma oficina"
[itemId="158d0..."]
}
astro.things
// Astro binding
astro:sun:home "Astro: Datos sobre el sol " [ geolocation="30.0,-0.2662300",
interval=300]
iluminacion.things
// Bombillas Yeelight
// Bola blanca
Thing yeelight:Dolphin:0x00000... "Yeelight Blanca Oficina" [itemId="0x00000..."]
// Bola RGB
Thing yeelight:Wonder:0x00000... "Yeelight RGB Oficina1" [itemId="0x00000..."]
Thing yeelight:Wonder:0x00000... "Yeelight RGB Oficina2" [itemId="0x00000..."]
Thing yeelight:Wonder:0x00000... "Yeelight RGB Oficina3" [itemId="0x00000..."]
66
// Bombillas Xiaomi Philips
Thing miio:basic:039... "Philips Xiaomi " [ host="192.168.X.X", token="f9b..." ]
kodi.things
// Kodi OrangPi comedor
Thing kodi:kodi:c1e862c0... "Kodi OrangePi Comedor" [ipAddress="192.168.X.X",
port=9090, httpPort=8080]
network.things
// Network binding
// DISPOSITIVOS
// Gateway
Thing network:pingdevice:gateway_1 "Dispositivo de red: Gateway 1" [
hostname="192.168.X.X" , retry=1, timeout=5000, refreshInterval=60000 ]
Thing network:pingdevice:gateway_2 "Dispositivo de red: Gateway 2" [
hostname="192.168.X.X" , retry=1, timeout=5000, refreshInterval=60000 ]
Thing network:pingdevice:gateway_3 "Dispositivo de red: Gateway 3" [
hostname="192.168.X.X" , retry=1, timeout=5000, refreshInterval=60000 ]
// Robot aspirador
Thing network:pingdevice:robot "Dispositivo de red: Robot aspirador Xiaomi" [
hostname="192.168.X.X" , retry=1, timeout=5000, refreshInterval=60000 ]
ntp.things
// Ntp Binding
Thing ntp:ntp:local "NTP" [ hostname="nl.pool.ntp.org", refreshInterval=60,
refreshNtp=30 ]
robotAspirador.things
// Robot aspirador
Thing miio:vacuum:0... "Robot aspirador Xiaomi" [ host="192.168.X.X",
token="6a6e..."]
servidorHP.things
// System info binding
// Información del servidor HP
67
systeminfo:computer:acamarena "Información del servidor HP"[ interval_high=3,
interval_medium=60 ]
Items
grupos.items
// Grupos de la casa
Group gComedor "Comedor" <sofa>
Group gCocina "Cocina" <kitchen>
Group gPasillo "Pasillo" <corridor>
Group gEntrada "Entrada" <corridor>
Group gHab1 "Habitación pequeña" <bedroom_red>
Group gHab2 "Habitación matrimonio" <bedroom_blue>
Group gTerrazaInt "Terraza interior" <greenhouse>
Group gTerrazaExt "Terraza exterior" <terrace>
Group gBanoP "Baño principal" <bath>
Group gBanoS "Baño secundario" <bath>
Group gOficina "Oficina" <office>
// Subgrupo Oficina
Group gOficinaGateway "Gateway Oficina" (gOficina)
Group gOficinaSensores "Sensores" (gOficina)
Group gOficinaIluminacion "Iluminación" (gOficina)
Group:Switch:OR(ON,OFF) gAllOficina "Luces techo [(%d)]" [ "Lighting" ]
Group gLumOficina "Brillo [%d %%]"
Group gColorOficina "Color"
Group gTempOficina "Color temperatura [%d]"
// Subgrupo Comedor
Group gComedorGateway "Gateway Comedor" (gComedor)
68
Group gComedorSensores "Sensores" (gComedor)
Group gComedorCalefaccion "Calefacción" (gComedor)
// Subgrupo Entrada
Group gEntradaGateway "Gateway Entrada" (gEntrada)
Group gEntradaSensores "Sensores" (gEntrada)
Group gEntradaPulsadores "Pulsadores" (gEntrada)
Group gEntradaCalefaccion "Calefacción" (gEntrada)
// Subgrupo Pasillo
Group gPasilloSensores "Sensores" (gPasillo)
Group gPasilloIluminacion "Iluminación" (gPasillo)
Group gPasilloInterruptores "Interruptores" (gPasillo)
Group gPasilloCalefaccion "Calefacción" (gPasillo)
// Subgrupo Cocina
Group gCocinaSensores "Sensores" (gCocina)
Group gCocinaExtractor "Extractor" (gCocina)
Group gCocinaCalefaccion "Calefacción" (gCocina)
69
// Temperatura min,max,AVG de toda la casa (Comedor,Cocina,Oficina)
Group:Number:AVG gTempAVG "Temp. Media interior [%.1f ºC]" <temperature>
Group:Number:MIN gTempMIN "Temp. Mínima interior [%.1f ºC]" <temperature>
Group:Number:MAX gTempMAX "Temp. Máxima interior [%.1f ºC]" <temperature>
// Group gSensores
Group:Contact:OR(OPEN,CLOSED) gSensorV_Oficina // Sensores de ventana
// MODOS
Switch modoNoche "Modo noche [%s]" // Modo noche (Astro)
tiempo.items
// Tiempo
// Grupos
Group gTiempo "Más información" <zoom>
Group gAtmosfera "Atmósfera" (gTiempo)
Group gNubes "Nubes" (gTiempo)
Group gCondicion "Condición" (gTiempo)
Group gPrecipitacion "Precipitaciones" (gTiempo)
Group gTemperaturaExt "Temperatura exterior" (gTiempo)
Group gViento "Viento" (gTiempo)
Group gEstacionMete "Estación meteorológica"(gTiempo)
// Atmósfera
Number Atmosfera_Hum "Humedad [%d %%]" <humidity> (gAtmosfera)
{weather="locationId=f, type=atmosphere, property=humidity"}
Number Atmosfera_Pres "Presión atmosférica [%.2f mb]" <pressure> (gAtmosfera)
{weather="locationId=f, type=atmosphere, property=pressure"}
// Nubes
Number Nubes_Por "Nubes [%.0f %%]" (gNubes)
{weather="locationId=f, type=clouds, property=percent"}
// Condición
String Condicion "Condición [%s]" <sun_clouds> (gCondicion)
{weather="locationId=f, type=condition, property=text"}
70
// Precipitationes
Number Precipitacion_LL "Lluvia [%.2f mm/h]" (gPrecipitacion)
{weather="locationId=casaW, type=precipitation, property=rain"}
Number Precipitacion_Nieve "Nieve [%.2f mm/h]" (gPrecipitacion)
{weather="locationId=casaW, type=precipitation, property=snow"}
Number Precipitacion_Prob "Probabilidad [%d %%]" (gPrecipitacion)
{weather="locationId=casaW, type=precipitation, property=probability"}
// Temperatura
Number Temperatura "Temperatura [%.1f °C]" <temperature> (gTemperaturaExt)
{weather="locationId=f, type=temperature, property=current"}
// Viento
Number Viento_Vel "Velocidad del viento [%.2f km/h]" <wind> (gViento)
{weather="locationId=f, type=wind, property=speed"}
servidorHP.items
// Servidor HP
// Parámetros de red
String Server_IP "Dirección IP [%d]" (gParamRed)
{ channel="systeminfo:computer:acamarena:network#ip" }
String Server_Nom "Red" (gParamRed)
{ channel="systeminfo:computer:acamarena:network#networkName" }
// Memoria RAM
Number Server_MemD "Memoria RAM disponible" (gMemRAM)
{ channel="systeminfo:computer:acamarena:memory#available" }
// Almacenamiento ROM
Number Server_ADisp "Almacenamiento disponible"(gMemROM)
{ channel="systeminfo:computer:acamarena:storage#available" }
// Informaciones sensores
Number Server_SensorCPU "Temperatura de la CPU" (gSensores)
{ channel="systeminfo:computer:acamarena:sensors#cpuTemp" }
Number Server_SensorCPUV "Voltaje de la CPU" (gSensores)
{ channel="systeminfo:computer:acamarena:sensors#cpuVoltage" }
71
sensores.items
// OFICINA
// Sensores de ventana Oficina
Contact SensorV_Izda_Oficina "Estado ventana izquierda [MAP(es.map):%s]"
<window> (gOficinaSensores,gSensoresPVall,gSensorV_Oficina,gAllSensoresPV)
{ channel="mihome:sensor_magnet_aq2:158d0...:isOpen" }
// Sensor de presencia
Switch SensorPresE_Oficina "Estado [%s]" <motion> (gOficinaSensores)
{ channel="mihome:sensor_motion:158d0...:motion" }
// ENTRADA
// Sensor de vibracion
DateTime SensorVibU_Entrada " Última actividad [%1$tY-%1$tm-%1$td %1$tH:%1$tM]"
<time> (gEntradaSensores)
{ channel="mihome:sensor_vibration:158d0...:lastAction" }
72
Number SensorVibA_Entrada "Ángulo" <line> (gEntradaSensores)
{ channel="mihome:sensor_vibration:158d0...:tiltAngle" }
// COCINA
// Sensor de detección de humos
Number SensorHumoD_Cocina "Densidad de las partículas [%d]" <fire>
(gCocinaSensores) { channel="mihome:smoke:158d0...:density" }
// TERRAZA INTERIOR
// Sensor detector de inundación de aguas
Switch SensorAguaD_TeInt "Fuga de agua detectada [%s]" <water>
(gTerrazaIntSensores) {channel="mihome:sensor_wleak_aq1:158d0...:leak"}
73
reles.items
// Relés
// COCINA
Switch Extractor_Cocina "Extractor cocina" <pump> (gCocinaExtractor)
{mqtt=">[broker:cmnd/sonoff- Basic_3/POWER:command:*:default],<[broker:
stat/sonoff-Basic_3/POWER:state:default]"}
pulsadores.items
// OFICINA
// Pulsadores redondos
// Flexo escritorio
Number PulsadorB_Oficina "Nivel de batería" <battery> (gOficinaPulsadores)
{ channel="mihome:sensor_switch:158d0...:batteryLevel" }
// OFICINA
// Pulsador cuadrado
// Alarma
Number PulsadorB_Cocina "Nivel de batería" <battery> (gEntradaPulsadores)
{ channel="mihome:sensor_switch_aq2:158d0...:batteryLevel" }
ntp.items
// NTP binding
DateTime Datos_NTP "Fecha completa [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]"
<time> { channel="ntp:ntp:local:dateTime"}
network.items
// Dispositivos Online
// OFICINA
// Gateway
Switch DispGat1_Oficina "Gateway oficina" <network> (dispositivos)
{ channel="network:pingdevice:gateway_1:online" }
Number DispGat1L_Oficina "Latencia" (dispositivos)
{ channel="network:pingdevice:gateway_1:latency" }
DateTime DispGat1U_Oficina "Última vez vista [%1$tH:%1$tM]"(dispositivos)
{ channel="network:pingdevice:gateway_1:lastseen" }
74
kodi.items
// Kodi
//COMEDOR
Group gKodiComedor "Kodi Comedor" (gComedor)
interruptores.items
// OFICINA
// Interruptores inalámbricos
Number Inte2B_Oficina "Nivel de batería" <battery> (gOficinaInterruptores)
{ channel="mihome:86sw2:158d0...:batteryLevel" }
iluminacion.items
// Bombillas Yeelight
// Bombilla blanca Xioami Yeelight
Switch Luz_Flexo_Oficina "Flexo" (gOficinaIluminacion,gAllLuces)[ "Lighting" ]
{ channel="yeelight:Dolphin:0x00000...:Brightness" }
75
Dimmer Luz_TechoB_Oficina1 "Brillo [%d %%]"
(gOficinaIluminacion,gLumOficina )
{ channel="yeelight:Wonder:0x00000...:Brightness " }
gateway.items
//Centralita domótica Oficina
76
Dimmer GatewayO_SonidoVol "Volumen" <soundvolume>
(gOficinaGateway,gAjustesExtra)
{ channel="mihome:gateway:34ce0...:volume" }
// Grupos
Group gAjustesOficina "Más ajustes" <settings>
enchufes.items
// OFICINA
// Enchufes inteligentes Xiaomi Plug
Switch Plug_Switch "Calefacción [%s]" <poweroutlet> (gOficinaEnchufes)
{ channel="mihome:sensor_plug:158d0...:power" }
Rules
alarma.rules
var Timer timer = null
var Timer timer2= null
77
}
}
case "DOUBLE_PRESSED":
{
if (Alarma_Entrada.state== ON)
{
Alarma_Entrada.postUpdate(OFF)
sendCommand(GatewayO_Mute,OFF)
sendTelegram("bot1","Alarma desactivada")
}
}
case "LONG_PRESSED":
{
}
case "LONG_RELEASED":
{
}
}
end
calefacción.rules
// OFICINA /////////////////////////////////////////////////////////////////////
rule "OFICINA Encender calefacción"
when
Item SensorTempT_Oficina changed or
Item CalefaccionA_Oficina changed or
Item gSensorV_Oficina changed
then
if (CalefaccionA_Oficina.state == ON &&
SensorTempT_Oficina.state <= 22 && gSensorV_Oficina.state == CLOSED)
{
Plug_Switch.sendCommand(ON)
CalefaccionA_Oficina.sendCommand(ON)
sendTelegram("bot1","Calefacción encendida")
78
}
else if ((CalefaccionA_Oficina.state == ON &&
SensorTempT_Oficina.state >= 22.5) ||
gSensorV_Oficina.state == OPEN)
{
Plug_Switch.sendCommand(OFF)
sendTelegram("bot1","Calefacción apagada")
}
end
iluminación.rules
var Timer timer = null
// OFICINA /////////////////////////////////////////////////////////////////////
// Flexo escritorio
rule "Pulsador redondo Xiaomi"
when
Channel "mihome:sensor_switch:158d0...:button" triggered
then
var actionName = receivedEvent.getEvent()
switch(actionName) {
case "SHORT_PRESSED":
{
if (Luz_Flexo_Oficina.state == OFF)
{
Luz_Flexo_Oficina.sendCommand(ON)
}else if (Luz_Flexo_Oficina.state == ON)
{
Luz_Flexo_Oficina.sendCommand(OFF)
}
}
case "DOUBLE_PRESSED":
{
sendCommand(GatewayE_Sonido,10004)
}
case "LONG_PRESSED":
{
79
}
case "LONG_RELEASED":
{
}
}
end
// Lámpara techo
rule "Interruptor Aqara Wirelss (2 Botones)"
when
Channel "mihome:86sw2:158d0...:ch1" triggered SHORT_PRESSED
then
if (gAllOficina.state == OFF)
{
gAllOficina.sendCommand(ON)
}else if (gAllOficina.state == ON){
gAllOficina.sendCommand(OFF)
}
end
80
timer = createTimer(now.plusSeconds(5))
[ gAllOficina.sendCommand(OFF) timer = null ]
}
else if (SensorPresE_Oficina.state == OFF)
{
}
end
// PASILLO ///////////////////////////////////////////////////////////////////
// Lámpara techo
rule "Interruptor Aqara Wirelss (1 Boton)"
when
Channel "mihome:86sw1:158d0...:ch1" triggered SHORT_PRESSED
then
if (Luz_Techo_Pasillo.state == OFF)
{
Luz_Techo_Pasillo.sendCommand(ON)
}else if (Luz_Techo_Pasillo.state == ON){
Luz_Techo_Pasillo.sendCommand(OFF)
}
end
}
else if (SensorPresE_Pasillo.state == OFF)
{
81
}
end
// ENTRADA ///////////////////////////////////////////////////////////////////
// Rule Sensor de presencia + luz
rule "Sensor presencia pasillo update"
when
Item SensorPresE_Entrada changed
then
if (SensorPresE_Entrada.state == ON && modoNoche.state==ON)
{
GatewayE_LuzSwitch.sendCommand(ON)
timer = createTimer(now.plusSeconds(5))
[ GatewayE_LuzSwitch.sendCommand(OFF) timer = null ]
}
else if (SensorPresE_Entrada.state == OFF)
{
}
end
modo.rules
// Rules de todos los modos del sistema domótico
// MODO NOCHE /////////////////////////////////////////////////////////////////
rule "Amanecer"
when
Channel 'astro:sun:home:rise#event' triggered START
then
modoNoche.postUpdate(OFF)
sendTelegram("bot1","Modo Noche OFF")
end
rule "Atardecer"
when
Channel 'astro:sun:home:set#event' triggered START
then
modoNoche.postUpdate(ON)
sendTelegram("bot1","Modo Noche ON")
end
82
sensores.rules
rule "Aviso si hay alguna puerta o ventana abierta al salir"
when
Item SensorP_Entrada changed from CLOSED to OPEN
then
if (gSensoresPVall.state == OPEN && SensorPresE_Entrada.state == ON)
{
sendTelegram("bot1","Hay alguna puerta o ventana abierta")
// Sonido como que se ha dejado algo abierto
}else{
sendTelegram("bot1","Todas las puertas y ventanas cerradas")
}
end
83