openHAB, que es?
Hola a todos a partir de este articulo voy a comenzar a colaborar con openHAB un software excelente para poder tener nuestra casa inteligente, si quieren conocer que se puede hacer lo pueden ver aqui https://www.itsanchez.com.ar/index.php/29-gsanchez/351-41-iot-itsanchez
Ahora si vamos a comenzar desde el principio openHAB es un bus de automatizacion para el Hogar, una solución de software desarrollada en Java que conecta componentes para la automatización de edificios de una amplia gama de proveedores en una sola plataforma, independientemente del fabricante y el protocolo.
El proyecto fue iniciado por Kai Kreuzer en 2010 hoy tiene muchos co-desarrolladores. a findes de 2013, se decidio utilizar como base el proyecto Eclipse SmartHome hoy ambos proyectos se desarrollan en paralelo.
La arquitectura y caracteristicas se desarrollan en Eclipse SmartHome para los usuarios de complementos openHAB es el primer lugar de contacto.
openHAB 2 se enfoca en la comodidad del usuario durante la instalación y configuración. Para esto, se han introducido numerosas mejoras en comparación con la versión 1, comenze utilizando la version 2 del producto no puedo comentarles como era la 1 pero realmente es muy facil de utilizar e intutivo desde que comence a utilizar el producto.
openHAB tiene independiente del sistema operativo y se puede ampliar agregando enlaces adicionales a tecnologías / protocolos adicionales.
openHAB está desarrollado bajo la Licencia Pública de Eclipse y es de código abierto. Las interfaces de usuario son compatibles con navegadores web, sistemas Android o Apple iOS.
Arquitectura
El proyecto se divide en:
- openHAB-runtime, corresponde al proceso que se ejecuta en el servidor donde corre las acciones.
- openHAB-designer, es una interfaz facil de utilizar para la configuracion basada en eclipse.
openHAB-runtime, es un paquete de paquetes OSGi integrados en el marco OSGi (Equinox). Es una solución pura de Java y, por lo tanto, requiere una JVM. Basado en OSGi, se proporciona una arquitectura altamente modular que permite agregar o eliminar características durante el tiempo de ejecución.
openHAB, tiene dos canales de comunicacion interna
- Bus de eventos asincronico
- un repositorio de elementos (items)
Bus de eventos asincronicos
Es el servicio básico de openHAB. Todos los paquetes no estatales informarán a otros paquetes sobre el estado de los eventos. Todos los enlaces de protocolo (que crean un enlace físico al hardware real) deberían comunicarse a través de este bus de eventos. La base técnica es el Servicio OSGi EventAdmin.
Repositorio de elementos (items)
Para las funciones relacionadas con el estado, openHAB ofrece el repositorio de elementos, que está conectado al bus de eventos y rastrea el estado actual de los elementos. Por lo tanto, el repositorio de elementos se puede utilizar para consultar el estado actual de un elemento, por ejemplo, para visualizarlo en una visualización, para procesarlo en lógica o para el servicio de persistencia. El repositorio de elementos evita que los servicios vinculados tengan que guardar los estados por sí mismos y los pone a disposición en un servicio central
Mapa de Sitio (Sitemap)
openHAB tiene una interfaz de usuario configurable genéricamente (UI), el llamado mapa de sitio (sitemap). El Sitemap es un árbol de widgets que define las diversas páginas y el contenido de la interfaz de usuario. Los widgets pueden ser elementos que representan el estado actual o interruptores o gráficos. Se pueden definir diferentes mapas de sitio, por ejemplo, para dispositivos móviles u otras variantes de visualización.
Proveedores de interfaz de usuario (UI)
Los proveedores de interfaz de usuario de artículos proporcionan una forma de generar dinámicamente la interfaz de usuario. En las definiciones de elementos y grupos, la apariencia de los widgets se puede configurar para que el mapa del sitio se pueda generar dinámicamente. Un caso de uso es mostrar todos los elementos de un grupo al declarar solo el grupo en el archivo de sitio.
openHAB, Plugin para Visual Studio Code
Para editar los archivos de openHAB existe una extensión para el Editor de código de Visual Studio, pueden ver mas informacion aqui https://marketplace.visualstudio.com/items?itemName=openhab.openhab
Tecnologias Compatibles
La plataforma OSGi permite una extensión flexible de las tecnologías debido a la arquitectura modular. Por lo tanto, la funcionalidad se puede adaptar fácilmente mediante la incorporación de enlaces. Los siguientes enlaces están disponibles:
Amazon Alexa, Asterisk, Astro (Sonnenstandsberechnungen), Bluetooth, Comfo Air, CUPS, Daikin, digitalSTROM, DMX512, eKey, EnOcean, Epson Projector, Exec (Execute Command), Fritz!Box, Fritz AHA, GPIO, HDAnywhere, Heatmiser, HomeMatic, HTTP, IHC / ELKO, INSTEON Hub, IRTrans, KNX, Koubachi, LCN Gebäudeleittechnik, Leviton/HAI Omnilink, MAX!Cube, MiLight, Modbus TCP und RTU, MPD, MQTT, Netatmo, Network Health, Nibe Heatpump, Nikobus, Novelan/Luxtronic Heatpump, NTP, One-Wire, Onkyo AV Receiver, Open energy monitor, OpenPaths, OpenSprinkler, OSGi Configuration Admin, Philips Hue, Piface, Pioneer AV receiver, PLCBus, Plex, Plugwise, Prowl, PulseAudio, Pulseaudio Server, Pushover, RFXCOM, Samsung TV, Serial, SNMP, Somfy URTSI II, Sonos, Souliss, Squeezebox, Swegon ventilation, System Info, TCP/UDP, Tellstick, TinkerForge, Tivo, Twitter, VDR, Wake-on-LAN, XBMC, Xively, xPL, Z-Wave
Existen otras extensiones disponibles y van creciendo dia a dia por el aporte de la comunidad
Persistencia (Persistence)
El Servicio de persistencia le permite guardar el estado de los elementos individuales. Por lo tanto, es posible visualizar procesos, recuperar datos históricos o restaurar el estado cuando se reinicia el sistema. Entre otras cosas, los siguientes servicios están disponibles, el alcance se expande constantemente:
- db4o: una base de datos de objetos Java
- rrd4j: una versión de Java de la base de datos Round Robin RRDtool.
- MySQL: una interfaz para una base de datos MySQL.
- Open.Sen.Se: una plataforma de internet de cosas
- Registro utilizando Logback: escribe el estado del elemento en un archivo de registro con definición de sintaxis flexible
- influxdb: una base de datos de "series temporales"
Interfaces de usuario
- Paper UI: Interface WEB de instalacion y configuracion
- Basic UI: Interface WEB
- iPhone: Aplicacion Oficial Apple iOS
- Android: Aplcacion Oficial androd
- HABDroid: interface de codigo abierto para openHAB
- Windows 10: Cliente openHAB
- HABPanel: Dashboards web
myopenHAB
El servicio en la nube myopenHAB permite el acceso remoto y notificaciones push directas en la aplicación de Android (HABDroid) e iOS sin la activación del puerto o las entradas DynDNS. El servicio IFTTT está integrado en myopenHAB.
MQTT
Usando el enlace MQTT, los estados de los elementos se pueden intercambiar entre los intermediarios MQTT y openHAB, MQTT es un estandard en todos los productos de iOT.
Vinculos Utiles
- openHAB, sitio del proyecto
- Eclipse SmartHome, sitio del proyecto
- openHAB, sitio de documentacion
- openHAB, sitio de la comunidad
Por ahora es todo a estar atentos que se viene mas material sobre la instalacion de la herramienta configuracion y demostraciones de uso.
Espero les sea de utilidad!