Project:Java-Rako
From London Hackspace Wiki
Project maintained by teabot, contact via IRC
Summary
A Java API for controlling home lighting systems. Initially I'll be working with a Rako system.
Initial project goals are to allow the setting of room scenes from a Java based API via the Rako Ethernet bridge. If this is successful the plan is to also implement features necessary to configure/program Rako devices in a similar manner to RakoSoft.
Code
The project is to available with Google Code at the following location:
Current equipment
- 500w dimmer
- 7 button control panel
- Rako Ethernet bridge
- RakoSoft
- iPhone with Rako app
Method
- Construct a minimal Rako system with one channel and an Ethernet bridge [Complete]
- Contact Rako to see if they have an API available. [Complete]
- Was sent a simple API for URL and UDP based selection of scenes.
- Obtain connectivity between the bridge and the iPhone app and/or RakoSoft on a network that allows snooping [Complete]
- I connected a wireless access point, the Rako Ethernet bridge, and a MacBook to a 10baseT hub. This allowed monitoring of the UDP commands sent from the iPhone app.
- Monitor traffic between iPhone app/RakoSoft/Bridge Web UI to determine a suitable candidate for reverse engineering
- Okay, so this is somewhat simpler with my new initial goal of using the Rako telnet protocol.
- Create some simple tests that deliver observed packets to the bridge [In progress]
- Reverse enginner protocol
- Implement the protocol with Java :-)
- Started. Have a unit test running that changes a scene.
Status
- I have had a little snoop on the RakoSoft traffic with WireShark - the iPhone app uses UDP.
- Connected via telnet - issued via RS232 commands
- Noticed that bridge eventually accepts an address by DHCP
- API coming along nicely - hosted on Google Code.
- Discovers bridge using NetBIOS
- Builds house configuration from RakoBridge XML config.
- Models Rako House/Room/Channel/Scene