I need a html5/javascript implementation of my chart utility. The chart utility displays sensor time/value data
and also displays markers for ON/OFF times of outputs. I need something implmented in html5/js that provides
the same type of functionality. JSON data is available from the web server.
For example the following http request:
[login to view URL]
hardwareName=someSensor&startDate=1173551940612&endDate=2378171603111&maxDataPoints=15000
would return (shortened for readability):
{"datapoints":[{"v":"5.6","t":1381103025762},{"v":"5.6","t":1381103146752},{"v":"5.6","t":1381103266995},
{"v":"5.6","t":1381103387170},{"v":"5.6","t":1381103508142},{"v":"5.6","t":1381103628858},
{"v":"5.6","t":1381103749489},{"v":"5.6","t":1381103870488},{"v":"5.6","t":1381103991390},
{"v":"5.6","t":1381104112629},{"v":"5.6","t":1381104233148},{"v":"5.6","t":1381104353670},
{"v":"5.6","t":1381104474200},{"v":"5.6","t":1381104594957},{"v":"5.6","t":1381104715354},
{"v":"5.6","t":1381104835836},{"v":"5.6","t":1381104956338},{"v":"5.6","t":1381105077674},
{"v":"5.6","t":1381105198165},{"v":"5.6","t":1381105318671},{"v":"5.6","t":1381105439166},
{"v":"5.6","t":1381105559942},{"v":"5.6","t":1381105680416},{"v":"5.0","t":1381177680739}],"name":"someSensor"}
An outputs data would look like this:
Request:
[login to view URL]
%20Exhaust&startDate=51940612&endDate=3378171603111&maxDataPoints=15000
Response:
{"datapoints":[{"v":true,"t":1380170993272},{"v":false,"t":1380170999334},{"v":true,"t":1380171992770},
{"v":false,"t":1380171997667},{"v":true,"t":1380172054144},{"v":false,"t":1380172062683},
{"v":true,"t":1380172125078},{"v":false,"t":1380172126256},{"v":true,"t":1380172130657},
{"v":false,"t":1380172132540},{"v":true,"t":1380172135817},{"v":true,"t":1380699219967},
{"v":false,"t":1380699221454},{"v":true,"t":1381103936250},{"v":false,"t":1381104527795},
{"v":true,"t":1381182696772}],"name":"FR Exhaust"}
You can discover all the hardware using this request:
[login to view URL]
Example response:
{
"hardware":[
{
"name":"Temperature in the front room 1",
"type":"value_sensor",
"units":"°F"
},
{
"name":"CA Temperature",
"type":"value_sensor",
"units":"°F"
},
{
"name":"CA 94553 Humidity",
"type":"value_sensor",
"units":"%RH"
},
{
"name":"Res1pH",
"type":"value_sensor",
"units":"pH"
},
{
"high_reading":"Closed",
"name":"Front Door",
"low_reading":"Open",
"type":"binary_sensor"
},
{
"name":"FR Exhaust",
"type":"standard_output_device"
},
{
"name":"FR Lights",
"type":"standard_output_device"
}
]
}
binary_sensors have only 2 possible readings 0 and 5. 5 corresponds to a "high_reading" and 0 to the "low reading" tooltips for each datapoint should show the low and high reading text.
Please discuss in your bid the charting library you intend to use. We will consider commercial libraries.
Attached is a video with a walk through of the current implementation. We require similar functionality but we are open to changes/improvements.