Version 5 (modified by 17 years ago) ( diff ) | ,
---|
Discussion
Network
- Use a normal home network. Assume existing DHCP server.
- Service discovery: Zeroconf (http://en.wikipedia.org/wiki/Zeroconf)
- Remote control protocol: SNMP (http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol)
Devices
- 2 types of devices
- Smart Devices
- Support SNMP
- Support Zeroconf
- Both would use UDP over existing network
- Dumb devices
- Support a variant of SNMP. We basically want SNMP without requiring any network knowledge.
- Can connect to a smart device using any means necessary.
- Smart Devices
Device Connection
When a device boots:
- Smart devices connect to network using DHCP
- Dumb devices connect to smart devices and us it as a sort of proxy
- All devices' metadata is published to the network with Zeroconf. This would probably include IP/port, name, type (i.e., dishwasher, microwave), manufacturer, model, location, and category (i.e., security, entertainment).
The genius behind the system is that we may not have to implement any new protocols at all. SNMP and Zeroconf, along with a home network, is all that is needed to make this thing work. If we decide (during implementation) SNMP and Zeroconf are simple enough for cheap devices, then there is no new development needed.
Protocol Abilities
Each device has a set of variables which can be managed using the SNMP protocol. These messages should be sent with UDP for simplicity of implementation.
- Get Bulk all varibles, values, and schema from device
- Get specific variable value from device
- Set specific variable value on device
- Will produce either an ok or error message. Error produced if the change would cause an invalid state; however, input should be limited to the schema.
- Request Notify a specify variable change from device
- A controller requests to receive a Notify when the specified variable is changed. See the uncertainty in definition of Notify.
- Notify controller
- Sent in response to a variable value that changed.
- Typically the notification was requested beforehand, however, some devices (such as a fire alarm, or security system) may want to Notify without a previous Request Notify.
- Unsure if this is a broadcast to all devices, notifying only one other device, or notifying a list of devices.
Some device metadata (i.e., location) should be modifiable via SNMP.
Other Implementation
- http://en.wikipedia.org/wiki/Domotics
- Eric and I found this while looking around for things. It is basically a system that does something very similar to what we are doing. Found it very amusing. It has use case ideas.
Note:
See TracWiki
for help on using the wiki.