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

Deja un comentario

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

A %d blogueros les gusta esto: