Video demostración:

Descripción de proceso:

Vamos a usar una Raspberry PI y un NodeMCU para controlar las luces (o lo que queramos) mediante Siri (en un iphone) y con la App HomeKit.

  • HAP-NodeJS en Raspberry Pi
  • MQTT Broker en Raspberry Pi
  • iPhone con HomeKit accesorio pareado y configurado
  • ESP8266 modulo o NodeMcu
  • Conexión wireless router

1- Instalación de programas y librerías en Raspberry.

HAP-NodeJS

Install required libraries

Install Node


He tenido que reinstalar todo pero clonando el repositorio de Ady https://github.com/AdySan/HAP-NodeJS

Prueba si va bien con node BridgedCore.j

 MQTT Broker

Instalar  MQTT broker Mosca

Prueba si va bien con mosca -v | bunyan

2-Comandos para arrancar servicios y servidores en Raspberry PI.

Se puede arrancar de dos formas:

1-Con un teclado raton y pantalla y abrir dos terminales.

2-Con dos conexiones SSH, ejecutar en dos terminales SSH, si cierras la conexión SSH se interrumpe el proceso, lo ideal es poner una pantalla tft pequeña y un scrip para arrancar los dos procesos al inicio:

Para ejecutar este comando nos movemos hasta la carpeta:

*con el comando “ls” listamos los archivos

* HAP-NodeJS node -> sudo node BidgedCore.js

HAP-NodeJS

*MQTT broker ->  mosca -v | bunyan

mosca

3-Configuración y programación de NodeMcu desde IDE Arduino

Installing with Boards Manager

Starting with 1.6.4, Arduino allows installation of third-party platform packages using Boards Manager. We have packages available for Windows, Mac OS, and Linux (32 and 64 bit).

  • Install Arduino 1.6.8 from the Arduino website.
  • Start Arduino and open Preferences window.
  • Enter http://arduino.esp8266.com/stable/package_esp8266com_index.json into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas.
  • Open Boards Manager from Tools > Board menu and install esp8266 platform (and don’t forget to select your ESP8266 board from Tools > Board menu after installation).

 

Lo he probado con el IDE de Arduino 1.6.7, 1.6.8 y 1.6.9

Añadir la Librería MQTT necesaria para compilar en Arduino pubsubclient-master

Ojo no Actualizar la librería, solo funciona con la 1.99.1, si actualizas da error al compilar.

MQTT-HomeKitLight Arduino 1.6.9

EL Codigo de Arduino para que funcione con SIRI es el HomeKitLight.ino

https://github.com/AdySan/HomeKitLight

christmas_light

4-Configuracion y creación de un accesorio Homekit

Dar Nombre al Nuevo accesorio

Todo debe llamarse igual ademas del archivo del accesorio, cambiar el username para que no coincida con el de otro accesorio (te lo puedes inventar).

Ejemplo de accesorio ChristmasLight

Codigo en ARDUINO

ESP8266 siri homekit_Arduino_HomeKitLight__nombre de accesorio

Codigo en Accesorio.js ademas debe de llamarse igual que en el archivo seguido de _accessory. ChristmasLight_accessory.js

ESP8266 siri homekit_HAP-NodeJS_accessories_nombre de accesorio

 

ESP8266 siri homekit_HAP-NodeJS_accessories_nombre y username_accesorio

HAPworking moscaconnected

 5-Parear el accesorio HomeKit con la App de iphone

light.pincode = "031-45-154";

ESP8266 based HomeKit accessories


Post donde explico como crear el Nodemcu con alimentación y rele.

Modulo 1 (Proximamente)

 


Configuracion de IP Arduino y Raspberry

En el accesorio de “connection to MQTT broker” ponemos la IP de la Raspberry, debe ser la misma que la de la conexión SSH

 

En Arduino ponemos la IP de la Raspberry también, que en el servidor

 


Archivos para Descargar:

Codigo Arduino HomeKitLight-master

Accesorios HomeKit HAP-NodeJS-master Mis accesorios MIS____accessories

Añadir todos los archivos una vez finalizado.


¿Cómo se restablece la base de datos de configuración HomeKit?

Cuando no aparece un accesorio al buscarlo para añadirlo puede ser porque se ha restablecido la configuración de HomeKit. Para ello:

Ir a Ajustes> Privacidad> HomeKit en el dispositivo y pulse Restablecer configuración HomeKit. Ver como se hace para IOS10 esto no es necesario cuando no aparece el accesorio.

Se recomienda que elimine la carpeta “persist”  que se encuentra en “HAP-NodeJS” después de realizar este paso para restablecer las cosas, tanto del cliente y de servidor. Con esto funciona siempre, ya que borramos la vinculacion del accesorio para volverlo a añadir. 

Tenga en cuenta que al restablecer en el cliente o eliminar ./persist en el servidor va a desvincular los accesorios emparejados y tendrá que volver a emparejarlos.

TIP para eliminar carpeta desde el terminal en la Raspberry

*Borrar un directorio o carpeta no vacíos:

rm –rf carpeta


Tareas Pendientes y Dudas:

1-Se puede pisar el rele desde el EPS8266 a 3V? No, es necesario tener dos alimentaciones 3V y 5V para el rele.

2-Sigue funcionando el terminal si cerramos las conexiones SSH? No, se interrumpe el proceso, falta buscar una solución.

3-Puede funciona el servidor desde una Raspberry PI con TFT de 3.5 pulgadas?

4-Añadir pulsador para actuar sin Siri, pero debe ser la misma orden que si lo haces con siri, para poder preguntar el estado del sensor.

5-Hacer scrip para arrancar los comandos necesarios del servidor de la raspberry PI

http://muyraspi.blogspot.com.es/2013/06/script-como-servicio.html

http://muyraspi.blogspot.com.es/2013/06/ejecutar-algo-al-arrancar-la-raspi.html

 

 

Node MCU – Home kit – Raspberry PI – Con Siri
Etiquetado en:        

Deja un comentario

A %d blogueros les gusta esto: