• Skype for Business - Lync Server
  • Comunicaciones Unificadas (UM)
  • Virtualización
  • Proyectos
  • openHAB, Casa Inteligente y mas...
  • Sobre el autor Guillermo Sanchez (ITSanchez)

OpenHAB

Bus de automatización para el Hogar (Casa Inteligente)

openHAB, Snoff POW cambio de firmware con MQTT

Creado en Lunes, 29 Octubre 2018 Última actualización el Jueves, 01 Noviembre 2018 Publicado el Lunes, 29 Octubre 2018
Escrito por Guillermo Sanchez
Ratio:  / 0

Buenas a todos, en este caso voy a comenzar por compartir un procedimiento mas que interesante para utilizar los dispositivos Snoff en este caso particular el modelo exacto es Snoff POW

 

Cuando utilizamos cualquier dispositivo Snoff el mismo viene con el firmware de fabrica el cual esta preparado para utilizar el software EWeLink https://sonoff.itead.cc/en/ewelink, en este intructivo lo que vamos a hacer es cambiar ese firmware por uno libre ESPurna, hay otras posibilidades como tasmota, segun mi experiencia es el mas adecuado para openHAB.

Para poder realizar este procedimiento vamos a necesitar cumplir con los siguientes requisitos ademas de tener el Snoff POW es necesario contar con un adaptador USB a TTL en mi caso estoy utilizando el CP2012 V4 como pueden ver en las siguientes imagenes 

 

Antes de comenzar con este procedimiento se deben instalar los drivers del adaptador que suman un puerto serie en nuestro equipo, si utilizan el mismo los drivers los pueden descargar desde aqui https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers 

En mi caso estoy utilizando una Mac y para ver si el dispositivo funciona correctamente luego de instalar los drivers, al conectarlo valido que este el puerto serial utilizando el comando ls /dev/tty.* en mi caso el adaptador esta en /dev/tty.SLAB_USBtoUART

Si utilizan Windows pueden buscar el puerto como COMx desde el administrador de dispositivos de su equipo.

El firmware que utilizo es ESPurna es un desarrollo de un español Xose Perez, la informacion completa del proyecto la pueden encontrar aqui https://github.com/xoseperez/espurna

Las descargas del firmare se realizan desde aqui https://github.com/xoseperez/espurna/releases y el archivo que necesitamos es el que corresponde a Snoff Pow que tiene el nombre https://github.com/xoseperez/espurna/releases/download/1.13.3/espurna-1.13.3-itead-sonoff-pow.bin, existe una version para el hardware R2 si tienen esa version descarguen ese archivo.

Ademas es necesario instalar esptool, es la herramienta con la cual se realiza el flash del dispositivo tienen toda la informacion en ingles desde aqui https://github.com/espressif/esptool (proximanente voy a realizar un manual en otro articulo)

Cumpliendo estos requisitos el proximo paso a realizar es soldar 4 pines en la plaqueta del dispositivo, hay que desarmarlo y soldar los cuatro pines para llegar al siguiente resultado final 

Ahora si con nuestro dispositivo soldado podemos seguir adelante es muy importante tener presente que esta operacion se realiza con el programador y no se debe tener conectado a 220V (Corriente Alterna) ya que puede dañar el dispositivo o nuestra computadora.

Para realizar la operacion se debe conecat el adatador USB a TTL conectando 3.3V y GND (Tierra), sumando TX y RX como se puede ver en la siguiente imagen 

Para poder realizar este procedimiento tengo armado un script muy sencillo en mismo se llama its_flash.sh, donde ejecuto el siguiente comando 

esptool.py --port /dev/tty.SLAB_USBtoUART write_flash -fs 1MB -fm dout 0x0 espurna-1.12.6-itead-sonoff-pow.bin

Lo voy cambiando en funcion al firmware que necesito utilizar, algo muy importante a tener en cuenta antes de correr el script es que para que los dispositivos Snoff se pongan en modo Flash al conectar el adaptador USB-TTL se debe tener presionado el pulsador en caso contrario el procedimiento fallara si lo ejecutan en forma correcta este es el resultado 

Cuando el procedimeinto termina veran lo siguiente 

En este momento el firmware ya fue reemplazado, se debe desconectar el adaptador USB-TTL para que el dispositvo reinicie y luego buscar redes WIFI hasta que encontremos una que comience con el nombre ESPURNA_XXXXX, como pueden ver en la siguiente imagen

Nos conectamos utilizando como clave fibonacci

Al estar conectados desde un navegador (Firefox o Google Chome), buscamos la siguiente url http://192.168.4.1 y validamos el usuario admin con la password fibonacci 

Inmediatamente se pide el cambio por la contraseña de administrador que vamos a utilizar

Ya tenemos nuestro firmware funcionando, como podemos ver en la siguiente imagen

Ahora solo nos queda configurar la conexion WIFI para terminar con la configuracion inicial, buscamos la solapa WIFI y seleccionamos Scan Now

Seleccionamos Add network y ponemos los datos de nuestro WIFI en mi caso ITSanchez, si quieren dejar la ip en forma estatica la configuracion la realizan desde aqui en mi caso no es necesario ya que con MQTT puedo trabajar sin problemas con IPs dinamicas

 

Seleccionamos Save

Veremos el suguiente resultado, seleccionamos OK

Podemos utilizar el boton Reconnect o desconectar el adaptador USB-TTL y conectar el dispositvo a 220V, una vez que lo conectamos a nuestra red va a trabajar en forma correcta en mi caso utiliza la ip 192.168.200.131

En proximos articulos voy a explicar como instalar openHAB y cual es el procedimeinto para integrar este tipo de dispositivos utlizando MQTT, si tienen algun comentario o duda me lo hacen saber.

Para la gente que viene en Argentina y esta interesada en comprar estos productos pueden buscarlos en Tienda Elektrom www.elektrom.com.ar, el telefono es 4611-5726

Saludos, Guillermo!

 

openHAB, que es?

Creado en Viernes, 17 Agosto 2018 Última actualización el Lunes, 08 Octubre 2018 Publicado el Viernes, 17 Agosto 2018
Escrito por Guillermo Sanchez
Ratio:  / 0

openHAB empowering vertical

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

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!