Piloteur: A Lightweight Platform for Pilot Studies of Smart Homes John Feminella

advertisement
Piloteur: A Lightweight Platform for
Pilot Studies of Smart Homes
University of Virginia
John Feminella
Devika Pisharoty
Kamin Whitehouse
Sensing in Homes
Medical
Monitoring
Home
Automation
Energy
Management
People spend 65% of time in their homes
2
Homes are Hazardous Environments*
* Timothy Hnat, et al. The Hitchhiker's Guide to Successful Residential Sensing Deployments. SenSys’11.
4
5
Fast and Easy
Large Scale
Long Duration
Data Management
Systems
Deployment
Frameworks
Operational
Tools
7
Configuration Node
Sync Node
Monitoring Node
Bridge Node
8
Initial Setup
$> piloteur init
Pick a name for your network []: MyPilot
Enter the directory of config files: ~/mypilot
Enter the IP address of your servers [AWS]:
Setting up your network on AWS…
The monitor interface is at http://yoururl.com
Creating config files in ~/mypilot
Your network is ready to deploy.
Initial Setup
$> piloteur create_endpoint
--on=/dev/ttyUSB0 --node-id=gamma
created a new endpoint (gamma)
$> piloteur check gamma
[gamma] GREEN...
Endpoint Interface
Gamma
Drivers
stdout
stderr
Data
Logs
Sync Node Interface
Sync Node
Data
Gamma
H35-ble
Logs
~/mypilot
Drivers
Config
Checks
“syncnode": "data.cs.virginia.edu",
"data_path": "/̃smarthome/data/",
"logs_path": "/̃smarthome/logs/",
"watchdog_path": "/̃smarthome/watchdog/",
"logging_modules": [
"monitor",
"timesync",
"watchdog"
],
"keyfile_path": "/̃smarthome-remote-key",
"log_format": "[%(asctime)-15s] [%(levelname)s]
$ %(name)s: %(message)s",
MyPilot Configuration
Drivers
Config
Gamma
Checks
Drivers and Data
$> mkdir ~/mypilot/config/gamma/
$> cat > ~/mypilot/config/gamma/config.gamma.json
{ "loaded_drivers": ["tutorial"] }
$> git add ~/mypilot/config/gamma/ && git push
$> piloteur logs gamma tutorial
[2014-10-20T05:12:57.495632] It's 1413781977
[2014-10-20T05:13:07.505760] It's 1413781987
[2014-10-20T05:13:17.515909] It's 1413781997
MyPilot Configuration
Drivers
Config
Checks
Home-25
Gamma
Z-Wave
Zwave.json
"loaded_drivers": ["open_zwave“]
Home25.json
network={
ssid="deploymentEssid"
psk="piloteur"
key_mgmt=WPA-PSK
auth_alg=OPEN}
gamma.json
"node-classes": [
“Zwave",
“Home25"
],
$> piloteur config gamma
{
"ssh_bridge_host": "54.193.80.184",
"loaded_drivers": [],
"data_path": "~/piloteur/data/",
"system_alert_recipients": [
“me@mypilot.com"
],
"node-id": "gamma",
}
"alert_recipients": [
“me@mypilot.io",
“your@mypilot.io"
],
gamma
Endpoint System Log
•
•
•
•
•
•
•
•
Network connectivity
Kernel failures
Hardware reboots
CPU utilization
RAM utilization
Core temperature
Local + remote timestamp
Etc.
Logs
Design Summary
• All config and software changes are version controlled
• Can be rolled back
• Nodes requires SSH daemon
• Monitoring server requires HTTP daemon
• Client requires cron
• Data is in raw format
Deployment and Case Study
Case Study
• 315 sensors
• 180 endpoints
• 45 homes
• Up to 4 months of data collection per home
• 2 phases
• 6 homes (researchers or friends)
• 39 homes (non-researchers)
Config Node: GitHub
Storage: UVa NAS
Monitoring Node: AWS
Sync and Bridge Nodes: UVa Cluster
Endpoint nodes: Rasberry Pi
Deployment Costs
• $85 per endpoint
• 45 minutes per endpoint
• ~20 to install OS
• 12 minutes to install Piloteur
• 13 minutes to assemble hardware and peripherals
• 15 minutes per installation
• Deployed by non-expert
• Web interface was key
• WiFi feedback
Performance
• 100,000+ faults logged
• All nodes suffered 5+ potentially fatal faults
• Only 26 maintenance visits required
Conclusions
• Piloteur
• Pilot “platform”
• Not a software framework
• Mitigate operational hazards, but also fast and easy
Thank You
https://github.com/piloteur
Download