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
- 2016-09-23-raspbian-jessie-lite Descargar
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)
- Descargamos un ejemplo de accesorio Light1_accessory
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:
Ojo, la conexion del ESP8266 porque segun el fabricante puede variar.
Ahora tendremos que cargar el sketch de arduino en nuestro ESP8266.
- Necesitaremos de una librería pubsubclient.
- Descargaremos el sketch , wifi_homekit_esp8266_Light editamos los parámetros…
- Colocaremos el SSID de nuestra red WiFI
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
- Cambiaremos Light1, por el nombre de nuestro accesorio.
client.subscribe(“Light1”);// cambiaremos Light1 por el nombre de nuestro accesorio
Mis Notas:
He conseguido que funcione asi:
- 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.
- 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/
0 comentarios