use state machine to keep history for a few transitions to ensure valid readings
only store status update if it resulted in a state change to save on datastore writes.
log on state change only
update simulator with duty cycle support and better floating point randomization and a parameter for how many devices to simulate
use variable for max
use from Name in email
document status expiration
Include copyright and license
move state property to status object model.
moved state field to Status model and modified getting and setting state in controller and viewing state in the template.
fix check for valid device
device may not have ever been ready, don't display last ready status if None
use global uptime
fix display of last known state time
recreated index.yaml
include bootstrap front-end and use the dashboard template for the main page
move dashboard css to main page where it is used from the base template
start using bootstrap cover template for device status page
add and use device location, make dashboard icon view reflect devices and status
remove header jinja2 block because it's not used in this stylesheet. fix text on the device status page.