Automatiza Tu Hogar, Rf Switch, Raspberry Pi controlados con Siri

En publicaciones anteriores he demostrado diferentes maneras de controlar los dispositivos RF Switch y Rf Outlet (tomas corrientes), utilizando diferentes plataformas de comunicación, ahora comparto con ustedes una de las tantas formas posibles de controlar estos dispositivos mediante Gateway , lo cual nos permite controlarlos con nuestros dispositivos de uso diario como celulares y tables.

Materiales necesarios.

  • Raspberry Pi.
  • Rf outlets / Rf Swicth.
  • Modulos Rx/Tx 433/315 mhz  dependiendo de la frecuencia en que trabajan sus modulos.

Preparación del Raspberry Pi

Configuración de Red

Configuración Inicial: se debe ya tener instalada la imagen de Raspbian en nuestro equipo, dejo el link aquí para que realicen el proceso.

al iniciar el raspberry el usuario y password por defecto es pi : raspberry.

luego procedemos a configurar nuestra red inalámbrica

sudo nano /etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet dhcp

allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
    wpa-ssid "valerie"
    wpa-psk "jada4420"

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

es importante que sepamos en que direcciones ip utilizamos en nuestra red, esto nos facilitara mucho para la configuración inicial.
ifconfig

ifconfig

en mi caso la dirección ip asignada a la tarjeta inalámbrica “wlan0” es la 192.168.31.129.

Conexión vía SSH

al tener nuestro Raspberry Pi en la red ahora para facilitarnos el proceso recomiendo que habiliten conexión por SSH. esto nos permitirá trabajar desde nuestro computador desde nuestra consola o por cliente SSH.

digitamos en consola del raspberry sudo raspi-config

raspi-config

5) Interfacing Options
 7) Advanced option
opcion 5

enable ssh

Advanced Option

A1 )expand File system
Back

 Interfacing Options

P2) SSH /Enable
P6)Serial /Enable
P7) 1-Wire /Enable
P8) remote GPIO / Enable
Salimos con Back  / Finish  reiniciamos.

trabajaremos conectándonos al raspberry por SSH , mediante un cliente o por Putty.  nos facilita el copiado y pegado de los comandos que indicare en este manual.

Mac/Linux: digitamos en nuestra Terminal ssh pi@nuestra_direccion_ip

ssh

Windows: descargamos Putty  realizamos conexión por ssh, rellenando los campos con nuestros estos datos.

  • usuario: pi
  • contraseña: raspberry
  • Dirección ip de nuestro equipo.

tendremos acceso a nuestra Raspberry desde nuestro ordenador por SSH.

Actualización de Repositorios

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git make

Verificamos si tenemos instalado C++

g++-4.9 -v

Instalación de NodeJs en el Raspberry

wget https://nodejs.org/dist/v5.2.0/node-v5.2.0-linux-armv7l.tar.gz
tar -xvf node-v5.2.0-linux-armv7l.tar.gz
cd node-v5.2.0-linux-armv7l
sudo cp -R * /usr/local/

Verificamos la instalación node –v nos debe de confirmar la version nodejs instalada
node -v
actualizamos el node package manage NPM .
sudo npm install -g n
sudo n stable
instalamos librerías necesarias para la ejecución de homebridge
sudo apt-get install libavahi-compat-libdnssd-dev

Instalación de Homebridge

sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp
cd /usr/local/lib/node_modules/homebridge/
sudo npm install --unsafe-perm bignum
cd /usr/local/lib/node_modules/hap-nodejs/node_modules/mdns
sudo node-gyp BUILDTYPE=Release rebuild

iniciamos escribiendo en terminal
homebridge

Homebridge inicial

salimos pulsando las tecla ctrl+c

Ya tenemos el Homebridge instalado, ahora solo debemos de instalar los plugins y configurar el archivo config.json  para controlar los accesorios que deseamos controlar, en mi caso los RfSwitch, existen muchos plugins de otros equipos que pueden descargar .

Configuración Plugin y  config.json de Homebridge.

Para configuración del plugin es necesaria la Liberia Wiring Pi.

vamos al directorio raíz del usuario pi  cd ~
descargamos wiringPi git clone git://git.drogon.net/wiringPi
Accedamos a la carpeta descargada cd wirigPi
Instalamos ./build

Verificamos la instalación de wiring pi.
gpio -v
gpio readall

Instalamos el Plugin rfoutlets

ingresamos en “https://www.npmjs.com/package/homebridge-rfoutlets” es el plugin Node que utilizaremos.
lo instalamos sudo npm install -g homebridge-rfoutlets

verificamos la instalacion del Plugin
cd /usr/local/lib/node_modules 
ls -l

rfoutlet

debe de salir el directorio con el pluginhomebridge-rfoutlets

Configuración del config.json

para realizar la configuración del archivo config.json debemos de obtener los códigos de control de nuestros dispositivos Rf para esto realizaremos un Sniffer, simplemente conectaremos el receptor RF433/315mhz a nuestro raspberry y pasamos los controles remotos que vienen con estos equipos.

Conectamos el Receptor Rf

pin2 +5v dc

pin 13 data

pin 9 Gnd

Para realizar el sniffer es necesario el programa rfoutlet 

vamos al directorio raíz del usuario pi cd~

Descargamos rfoutlet git clone git://github.com/timleland/rfoutlet.git /home/pi/rfoutlet

Cambiamos permisos de usuario y atributos de acceso a los archivos descargados.
ingresamos en la carpeta cd rfoutlet
ls -l verificamos los permisos actuales

cambiamos los permisos y atributos de acceso.
sudo chown root.root /home/pi/rfoutlet/codesend
sudo chmod 4755 /home/pi/rfoutlet/codesend
ls -l  verificamos cambios en las propiedades del archivos
ejecutamos el sniffer ./RFSniffer presionamos cada botón y guardamos los códigos que obtenemos.
sniffer

salimos pulsando las tecla ctrl+c

ahora creamos el archivo config.json en base a los códigos rf obtenidos.

JSON

estructura del archivo config.json para este plugin

ingresamos en la carpeta .homebridge carpeta oculta en la raíz del usuario pi.

vamos al directorio raíz del usuario pi  cd ~

para visualizar esta carpeta ingresamos ls -a

ingresamos en la carpeta oculta homebridge cd .homebridge

dentro de la carpeta .homebridge creamos el archivo config.json sudo nano config.json ahora reemplazamos los datos por los obtenidos

"rf_on": 1234567,
"rf_off": 7654321,
"pulselength": "195",
"pin": "0"  "este pin es equivalente en wiringpi" el fisico GPIO es el 11

config json

 {
    "bridge": {
        "name": "Homebridge",
        "username": "CB:22:3D:E3:CE:30",
        "port": 51826,
        "pin": "000-11-222"
    },
"description": "My homebridge server",

"platforms": [],

"accessories": [{
"accessory": "RFOutlet",
"name": "Switch 1",
"type": "Switch",
"manufacturer": "Lasko",
"model": "Weather Shield Box Fan",
"serial": " ",
"rf_on": 1234567,
"rf_off": 7654321,
"pulselength": "195",
"pin": "0"
},
{
"accessory": "RFOutlet",
"name": "Switch 2",
"type": "Switch",
"manufacturer": "Lasko",
"model": "Weather Shield Box Fan",
"serial": " ",
"rf_on": 1098765,
"rf_off": 1056789,
"pulselength": "195",
"pin": "0"
}]

}

salimos presionando Ctrl+x  salvamos "Y" confirmamos pulsando enter

ver asignaciones de pines GPIO a Wiring pi.

Conexión de Transmisor Rf .

pin2 +5v dc

pin 11 data

pin 9 Gnd

iniciar homebridge

homedridge

vemos que al iniciar se cargan los Rfsswitch que hemos configurado en nuestro archivo config.json

Configuración de Siri en Iphone

Ahora en el iPhone Abrimos la aplicación home.

añadir dispositivos saldrá homebridge con los Rfswitch que hemos agregado.

add home nombre casa

New Scene sala

ahora agregamos los switch a la escena sala

luego utilizamos siri para controlar nuestro hogar.

Siri enciende switch 1 de la sala.

Siri enciende switch 2 de la sala.

Siri apaga el Switch 1 de la sala.

Siri apaga el Switch 2 de la sala.

Saludos

Javier Brathwaite

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s