Skip to content

Latest commit

 

History

History
43 lines (27 loc) · 1.72 KB

README.md

File metadata and controls

43 lines (27 loc) · 1.72 KB

nexa-controller-rpi

This small project was written in order to use Raspberry Pi as a central controller for Nexa remote-controlled electrical outlets.

Hardware

Besides Nexa electrical outlets itself and Raspberry Pi, you will need a 433 MHz transmitter module for Rasberry Pi like this one.

Configuration

All tests were performed on Raspberry Pi with Raspbian OS.

RPi.GPIO python package is required.

Currently I run this installation on Raspberry Pi 2 with Raspbian Wheezy.

Configuration can be done via controller_config.ini or the web interface (web_interface.py)

Manual switch

To perform manual switch on/off (e.g. to pair RPi with the outlet), use:

python manual_switch.py on|off data_pin_number transmitter_code

How to start

Start it using ./restart.sh

It also starts a simple REST server on port 8080, which accepts /open and /close GET requests.

Log will be written to /run/nexa_controller.log and /run/nexa_rest_server.log

Modules

  • TimeController module enables selected electric outlet between sunrise and sunset for your geographical location (fetched by public IP of Raspberry Pi gateway)
  • PresenceController module allows to enable selected electric outlet only when configured MAC addresses are connected to the local router (tested on ASUS RT-AC66U).

Many thanks to this blog author for a comprehensive Nexa protocol analysis

freegeoip.io public API is used to fetch geo position based on public IP address

sunrise-sunset.org public API is used to calculate twilight timings based on location