En esta ocasión os traigo una entrada mejorada de la versión de homekit con la Raspberry Pi 2 usa el mismo protocolo de comunicación que la anterior entrada, pero ahora el servidor se arranca solo al alimentar la Raspberry y no es necesario arrancar los servicios desde el terminal o con una conexión remota.

Imagen SD Raspbian Jessie Lite

Entrar con permiso de administrador:

sudo su

Actualizar el sistema:

apt-get update

apt-get upgrade

Fijamos la IP:

Fijamos la IP para asegurarnos que los módulos se conectan siempre a la Raspberry.

Según la entrada anterior del blog dependera de la versión de Raspbian. http://mbrobotics.es/blog/raspberry-pi-ip-estatica-desde-raspbian-jessie/

Instalar  librerías:

apt-get install git-core libnss-mdns libavahi-compat-libdnssd-dev -y

Instalar NODE:

visita : http://nodejs.org/dist/latest-v6.x/ para la última version disponible…. ( y sustituye la dirección en el wget de debajo) y el numero de version en las siguientes lineas…

Yo he usado esta version a dia de hoy

wget https://nodejs.org/dist/latest-v6.x/node-v6.11.4-linux-armv7l.tar.gz

Pasos:

wget https://nodejs.org/dist/latest-v6.x/node-v6.11.4-linux-armv7l.tar.gz

tar -xvf node-v6.11.4-linux-armv7l.tar.gz

cd node-v6.11.4-linux-armv7l

sudo cp -R * /usr/local

sudo npm install -g npm

sudo npm install -g node-gyp

Instalamos HAPNodeJS:

He añadido sudo a todos los npm durante la instalación por que daba errores con los permisos.

git clone https://github.com/KhaosT/HAP-NodeJS.git

cd HAP-NodeJS/

sudo npm rebuild

sudo npm install node-persist –unsafe-perm

sudo npm install debug

sudo npm install ed25519 –unsafe-perm

sudo npm install mqtt –unsafe-perm

sudo npm install mdns –unsafe-perm

sudo npm install srp –unsafe-perm

sudo npm install curve25519-n –unsafe-perm

sudo npm install ip –unsafe-perm

sudo npm install fast-srp-hap

sudo npm install buffer-shims

sudo npm install curve25519-n2

Ejecutamos usando el comando:

sudo node Core.js

Si todo va bien saldra algo parecido a esto e ignoramos los warning. (Corrijo que en esta version  se queda en HAP-NodeJS starting… pero al entrar en homekit añadir accesorio si aparecen los accesorios, parece que es por un fallo de la version de HAP-Node)

Saldremos usando “ctrl+C”

Instalamos MOSQUITTO (MQTT Broker):

cd /

wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key

sudo apt-key add mosquitto-repo.gpg.key

cd /etc/apt/sources.list.d/

sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list

sudo apt-get install mosquitto

Vamos a hacer que el servidor se inicie solo al arrancar la RaspberryPi…

sudo nano /etc/rc.local

añadiremos lo siguiente , en la linea anterior a “exit 0”

Ojo a la ruta de ejecución de Core.js debe ser la que nosotros tengamos.

cd /home/pi/node-v6.11.4-linux-armv7l/HAP-NodeJS

sudo node Core.js

Guardaremos con “ctrl+O” y salimos “ctrl+X”

Hacemos ejecutable el archivo r.local

sudo chmod 755 /etc/rc.local

Reiniciamos la RaspberryPi

sudo reboot

Ahora eliminaremos los accesorios que se instalan por defecto…

cd /home/pi/node-v6.11.4-linux-armv7l/HAP-NodeJS/accessories/

rm Fan_accessory.js

rm GarageDoorOpener_accessory.js

rm Light_accessory.js

rm Lock_accessory.js

rm Outlet_accessory.js

rm TemperatureSensor_accessory.js

rm Thermostat_accessory.js

Una vez eliminados, vamos a crear nuestros propios accesorios…

Creamos la Conexion FTP segun la entrada http://mbrobotics.es/blog/raspberry-pi-servidor-ftp/

Necesitamos dar permisos a la carpeta accessories para editar y borrar desde ftp 

sudo chmod 777 /home/pi/node-v6.11.4-linux-armv7l/HAP-NodeJS/accessories/

Ahora editamos los accesorios que queremos y los subimos por ftp a la raspberry (en la carpeta accessories)


Editar un accesorio y ponemos nuestros datos …

  • host: pondremos la ip de nuestro servidor MQTT (la ip de la RaspberryPi)
  • clientid: pondremos el nombre de nuestro accesorio. Light1

Sustituiremos TODOS los “Light1” por el nombre de nuestro accesorio. Los que están escritos en minúsculas, por minúsculas  y los que estén escritos  en mayusculas los sustituiremos por mayusculas.

  • ligth.username = cambiaremos el numero hexadecimal.

light.username = “1A:1B:1C:1D:1E:1F”; (cambiar números o letras en cada accesorio,  hexadecimal)

Añadir accesorio a la App HomeKit

Pinchando en “+” o “Añadir accesorio”

Ahora nos aparecerán los accesorios que tengamos configurados y que no hayamos añadido al HomeKit

Seleccionamos el que nos interese…

Nos pedirá un código de emparejamiento..

  • introduciremos 031-45-154

Configuramos el nombre para siri, ubicación del accesorio y si lo queremos en favoritos


Modulo rele para activar desde HomeKit:

En esta entrada explico el modulo que he usado http://mbrobotics.es/blog/node-mcu-home-kit-raspberry-pi-con-siri-hardware-para-un-modulo-rele/

Próximamente publicare la entrada del modulo usando un triac.

En este caso de ejemplo vamos a usar:

  • Alimentador de 5V
  • Módulo esp8266
  • Modulo de relé para arduino
  • Regulador de tensión de 3,3V

Montaremos siguiendo el siguiente esquema:

homekit_esp8266_salida_rele_bb

Ojo, la conexion del ESP8266 porque segun el fabricante puede variar.

Ahora tendremos que cargar el sketch de arduino en nuestro ESP8266.

const char *ssid =  “SSID”;     // SSID de nuestra red wifi

const char *pass =  “PASSWORD”; // Contrasea de nuestra red wifi

  • Estas lineas es donde se enciende y apaga el relé, tendréis que cambiarlo segun el estado de activacion del rele.

digitalWrite(relay, LOW); // en caso de que el modulo rele funcione al reves, cambiarl LOW por HIGH

digitalWrite(relay, HIGH); // en caso de que el modulo rele funcione al reves, cambiarl HIGH por LOW

  • Cambiamos Light1 por el nombre de nuestro accesorio.

if (client.connect(“ESP8266: Light1”)) { // cambiaremos Light1 por el nombre de nuestro accesorio

  • Cambiaremos Light1, por el nombre de nuestro accesorio.

client.subscribe(“Light1”);// cambiaremos Light1 por el nombre de nuestro accesorio

Una vez editado, cargaremos los módulos ESP8266, con su accesorio correspondiente, y ahora ya podemos controlarlo desde la app HomeKit.

Mis Notas:

He conseguido que funcione asi:

  1. He realizado toda la instalación de node-v6.11.0-linux-armv7l.tar.gz con sudo delante de todos los npm, me da errores en la instalacion pero al final va.
  2. Parece que va pero se queda en Starting HAPnodeJS aunque al buscar los accesorios en el iphone estan, parece que es normal que este asi es por la version de node

Gracias por la ayuda a Ficheros originales de https://lisergio.wordpress.com/

Categorías: HomeKit

0 comentarios

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.