Hardware components | ||||||
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
Software apps and online services | ||||||
![]() |
| |||||
Hand tools and fabrication machines | ||||||
![]() |
| |||||
![]() |
|
This is a Temperature and Humidity project, using the si7021 temperature/humidty sensor. Also included are details that focus more on the whole sensor network.
Sensors:I've been working on creating a sensor network throughout my home. Using this project with the si7021, one using the DHT22, and another, using the DHT11. All code has been converted to use a 60 second averaging, for the current temperature or humidity returned when requested on all devices.
I collect the data via a set of Powershell scripts, that are ran via the Task Scheduler, collecting data which is then inserted into a SQL server database called SensorDataRepository.
With this data, I created a data view that holds the data I'm interested in, called vwDailyTemperature. This is a 30 day listing of all temperature sensor data, which is spit out every few minutes through a SQL server job to a file.
At this point, i have output data in a file called 'temperature.csv". So now what?
Graphic OutputWell a graphic would be nice... Using HTML5, Jquery, and D3js, the following graphic is created in a web page, using the Sensors (included file), consuming the "temperature.csv" file. The temperature file is actually a tab delimited file, and I'll make that clearer in my next version.
Code Features
- Auto-checkbox creation by Location, based on data file. 1 location= 1 location checkboxs, 10 locations = 10 location checkboxes.
- Auto-color of lines (no hard coding), and legend creation.
- Mouseover shows details for each line for that time spot.
- Ajax calls show locations current Temperature and Humidity.
24 hrs of data
1 Week of data
1 Month of data
The jquery/javascript specifically ignores my WeatherStation (WS) data, which I use on another page. This example can also be modified to show humidity either on the same graphic (too messy), or in a new one (easier).
ConclusionThe si7021 temperature/humidity module is very easy to use, and wire up. The graphic coding is rather modular, and one positive aspect to that is that with a few minor code modifications, the graphic could be humidity, or some other metered data output.
One interesting thing that I've found, is that all of my devices work much smoother off of a breadboard and fully soldered and/or connected and glue-gunned in place, in a 3D printed project box. Device reliability went up by a factor of at least 10 fold, and has stayed solid, in both connections, and most importantly, data retrieval. I had begun to think about abandoning this entire project, as my life will NOT consist of wandering around my house resetting IoT devices. This would be like a personal purgatory, or even minor level of hell... to be avoided.
The next thing to do is to redesign the Powershell scripts, as their number are getting large enough, and with corresponding tasks, are cumbersome to handle. The modification pathway is clear, if you look at the Powershell script. Some sort of URL array, with a looping structure.
Also some code refactoring and some extra commenting will be done.
Anyway, I hope you have enjoyed my continued delving into temperature and humidity.
I think my next two projects will be one to control my yard fountain via my wifi, and a controller for an attic fan that operates automatically and logs usage data.
Powershell example script
Powershell$URI = “http://192.168.1.215/TemperatureF“
$URI2 = “http://192.168.1.215/Humidity“
$HTML = (Invoke-WebRequest -Uri $URI).content
Start-Sleep 2
$HTML2 = (Invoke-WebRequest -Uri $URI2).content
if ($HTML.Length -eq 0){
$HTML = (Invoke-WebRequest -Uri $URI).content
Start-Sleep 2
}
if ($HTML2.Length -eq 0){
$HTML2 = (Invoke-WebRequest -Uri $URI2).content
}
$HTML = $HTML -replace '\s',''
$HTML2 = $HTML2 -replace '\s',''
$SQLServer = "192.168.1.83"
$SQLDBName = "SensorDataRepository"
$uid = "SensorInput"
$pwd = "<password>"
if ($HTML.Length -gt 0){
# [assembly.reflection]::loadwithpartialname('System.Data')
$conn = New-Object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; User ID = $uid; Password = $pwd;"
$conn.open()
$cmd = New-Object System.Data.SqlClient.SqlCommand
$cmd.connection = $conn
$cmd.commandtext = "INSERT INTO SensorEvents (EventType,EventDetail,LocationID) VALUES('{0}','{1}','{2}')" -f 1,$HTML, 5
$successful = $cmd.executenonquery()
$conn.close()
}
if ($HTML2.Length -gt 0){
# [assembly.reflection]::loadwithpartialname('System.Data')
$conn = New-Object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; User ID = $uid; Password = $pwd;"
$conn.open()
$cmd = New-Object System.Data.SqlClient.SqlCommand
$cmd.connection = $conn
$cmd.commandtext = "INSERT INTO SensorEvents (EventType,EventDetail, LocationID) VALUES('{0}','{1}','{2}')" -f 3,$HTML2, 5
$successful = $cmd.executenonquery()
$conn.close()
}
Start-Sleep 56
$HTML = (Invoke-WebRequest -Uri $URI).content
Start-Sleep 2
$HTML2 = (Invoke-WebRequest -Uri $URI2).content
if ($HTML.Length -eq 0){
$HTML = (Invoke-WebRequest -Uri $URI).content
Start-Sleep 2
}
if ($HTML2.Length -eq 0){
$HTML2 = (Invoke-WebRequest -Uri $URI2).content
}
$HTML = $HTML -replace '\s',''
$HTML2 = $HTML2 -replace '\s',''
$SQLServer = "192.168.1.83"
$SQLDBName = "SensorDataRepository"
$uid = "SensorInput"
$pwd = "<password>"
if ($HTML.Length -gt 0){
# [assembly.reflection]::loadwithpartialname('System.Data')
$conn = New-Object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; User ID = $uid; Password = $pwd;"
$conn.open()
$cmd = New-Object System.Data.SqlClient.SqlCommand
$cmd.connection = $conn
$cmd.commandtext = "INSERT INTO SensorEvents (EventType,EventDetail,LocationID) VALUES('{0}','{1}','{2}')" -f 1,$HTML, 5
$successful = $cmd.executenonquery()
$conn.close()
}
if ($HTML2.Length -gt 0){
# [assembly.reflection]::loadwithpartialname('System.Data')
$conn = New-Object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; User ID = $uid; Password = $pwd;"
$conn.open()
$cmd = New-Object System.Data.SqlClient.SqlCommand
$cmd.connection = $conn
$cmd.commandtext = "INSERT INTO SensorEvents (EventType,EventDetail, LocationID) VALUES('{0}','{1}','{2}')" -f 3,$HTML2, 5
$successful = $cmd.executenonquery()
$conn.close()
}
location date temp
GameArea 2017-10-30 00:00 72.11
TVArea 2017-10-30 00:00 77.70
BedRoom 2017-10-30 00:00 76.06
Sewing 2017-10-30 00:00 72.38
Storage 2017-10-30 00:00 71.82
Garage 2017-10-30 00:00 65.80
Laboratory 2017-10-30 00:00 79.84
WS 2017-10-30 00:00 43.7
GameArea 2017-10-30 00:01 72.13
TVArea 2017-10-30 00:01 77.70
BedRoom 2017-10-30 00:01 76.05
Storage 2017-10-30 00:01 71.81
Laboratory 2017-10-30 00:01 79.88
Garage 2017-10-30 00:01 65.80
Sewing 2017-10-30 00:01 72.32
WS 2017-10-30 00:01 43.7
WS 2017-10-30 00:02 43.7
Laboratory 2017-10-30 00:03 79.92
Garage 2017-10-30 00:03 65.81
TVArea 2017-10-30 00:03 77.69
Sewing 2017-10-30 00:03 72.20
GameArea 2017-10-30 00:03 72.10
BedRoom 2017-10-30 00:03 76.04
Storage 2017-10-30 00:03 71.81
WS 2017-10-30 00:03 43.7
Laboratory 2017-10-30 00:04 79.93
Garage 2017-10-30 00:04 65.87
TVArea 2017-10-30 00:04 77.70
Sewing 2017-10-30 00:04 72.22
GameArea 2017-10-30 00:04 72.10
Storage 2017-10-30 00:04 71.80
BedRoom 2017-10-30 00:04 76.02
WS 2017-10-30 00:04 43.9
WS 2017-10-30 00:05 43.9
Garage 2017-10-30 00:06 66.00
GameArea 2017-10-30 00:06 72.09
Storage 2017-10-30 00:06 71.79
TVArea 2017-10-30 00:06 77.69
Laboratory 2017-10-30 00:06 79.93
BedRoom 2017-10-30 00:06 76.02
Sewing 2017-10-30 00:06 72.16
WS 2017-10-30 00:06 43.9
TVArea 2017-10-30 00:07 77.70
Garage 2017-10-30 00:07 66.00
GameArea 2017-10-30 00:07 72.10
BedRoom 2017-10-30 00:07 76.03
Storage 2017-10-30 00:07 71.80
Laboratory 2017-10-30 00:07 79.93
Sewing 2017-10-30 00:07 72.18
WS 2017-10-30 00:07 43.7
WS 2017-10-30 00:08 43.7
BedRoom 2017-10-30 00:09 76.03
Laboratory 2017-10-30 00:09 79.94
GameArea 2017-10-30 00:09 72.08
Storage 2017-10-30 00:09 71.79
TVArea 2017-10-30 00:09 77.67
Sewing 2017-10-30 00:09 72.11
Garage 2017-10-30 00:09 66.00
WS 2017-10-30 00:09 43.7
Laboratory 2017-10-30 00:10 79.94
BedRoom 2017-10-30 00:10 76.03
GameArea 2017-10-30 00:10 72.12
Storage 2017-10-30 00:10 71.79
TVArea 2017-10-30 00:10 77.67
Sewing 2017-10-30 00:10 72.09
Garage 2017-10-30 00:10 66.00
WS 2017-10-30 00:10 43.5
WS 2017-10-30 00:11 43.3
Laboratory 2017-10-30 00:12 79.95
GameArea 2017-10-30 00:12 72.10
BedRoom 2017-10-30 00:12 76.00
TVArea 2017-10-30 00:12 77.63
Garage 2017-10-30 00:12 66.00
Sewing 2017-10-30 00:12 72.01
Storage 2017-10-30 00:12 71.80
WS 2017-10-30 00:12 43.3
Laboratory 2017-10-30 00:13 79.97
GameArea 2017-10-30 00:13 72.12
BedRoom 2017-10-30 00:13 75.99
Garage 2017-10-30 00:13 66.00
TVArea 2017-10-30 00:13 77.59
Sewing 2017-10-30 00:13 72.00
Storage 2017-10-30 00:13 71.78
WS 2017-10-30 00:13 43.3
WS 2017-10-30 00:14 43.3
BedRoom 2017-10-30 00:15 75.96
Laboratory 2017-10-30 00:15 80.00
Garage 2017-10-30 00:15 66.00
Sewing 2017-10-30 00:15 72.00
GameArea 2017-10-30 00:15 72.12
TVArea 2017-10-30 00:15 77.53
Storage 2017-10-30 00:15 71.80
WS 2017-10-30 00:15 43.3
Laboratory 2017-10-30 00:16 80.01
BedRoom 2017-10-30 00:16 75.96
Garage 2017-10-30 00:16 66.00
Sewing 2017-10-30 00:16 72.01
GameArea 2017-10-30 00:16 72.08
TVArea 2017-10-30 00:16 77.53
Storage 2017-10-30 00:16 71.80
WS 2017-10-30 00:16 43.2
WS 2017-10-30 00:17 43.0
Sewing 2017-10-30 00:18 72.02
GameArea 2017-10-30 00:18 72.11
Storage 2017-10-30 00:18 71.80
TVArea 2017-10-30 00:18 77.51
Garage 2017-10-30 00:18 65.90
Laboratory 2017-10-30 00:18 80.04
BedRoom 2017-10-30 00:18 75.93
WS 2017-10-30 00:18 43.0
Sewing 2017-10-30 00:19 72.03
GameArea 2017-10-30 00:19 72.10
Storage 2017-10-30 00:19 71.80
Garage 2017-10-30 00:19 65.84
Laboratory 2017-10-30 00:19 80.05
BedRoom 2017-10-30 00:19 75.94
TVArea 2017-10-30 00:19 77.51
WS 2017-10-30 00:19 42.8
WS 2017-10-30 00:20 42.8
BedRoom 2017-10-30 00:21 75.89
Laboratory 2017-10-30 00:21 80.07
TVArea 2017-10-30 00:21 77.48
Sewing 2017-10-30 00:21 72.01
GameArea 2017-10-30 00:21 72.08
Garage 2017-10-30 00:21 65.81
Storage 2017-10-30 00:21 71.79
WS 2017-10-30 00:21 42.8
BedRoom 2017-10-30 00:22 75.87
TVArea 2017-10-30 00:22 77.46
Laboratory 2017-10-30 00:22 80.08
GameArea 2017-10-30 00:22 72.08
Garage 2017-10-30 00:22 65.80
Sewing 2017-10-30 00:22 72.01
Storage 2017-10-30 00:22 71.79
WS 2017-10-30 00:22 42.8
WS 2017-10-30 00:23 42.6
GameArea 2017-10-30 00:24 72.06
Sewing 2017-10-30 00:24 71.97
TVArea 2017-10-30 00:24 77.40
BedRoom 2017-10-30 00:24 75.84
Laboratory 2017-10-30 00:24 80.08
Storage 2017-10-30 00:24 71.75
Garage 2017-10-30 00:24 65.80
WS 2017-10-30 00:24 42.6
GameArea 2017-10-30 00:25 72.06
BedRoom 2017-10-30 00:25 75.83
Laboratory 2017-10-30 00:25 80.08
Sewing 2017-10-30 00:25 71.97
TVArea 2017-10-30 00:25 77.40
Storage 2017-10-30 00:25 71.77
Garage 2017-10-30 00:25 65.80
WS 2017-10-30 00:25 42.6
WS 2017-10-30 00:26 42.4
Laboratory 2017-10-30 00:27 80.08
Sewing 2017-10-30 00:27 71.95
Garage 2017-10-30 00:27 65.74
BedRoom 2017-10-30 00:27 75.81
TVArea 2017-10-30 00:27 77.40
GameArea 2017-10-30 00:27 72.07
Storage 2017-10-30 00:27 71.71
WS 2017-10-30 00:27 42.6
Laboratory 2017-10-30 00:28 80.08
Garage 2017-10-30 00:28 65.74
TVArea 2017-10-30 00:28 77.40
BedRoom 2017-10-30 00:28 75.80
GameArea 2017-10-30 00:28 72.07
Sewing 2017-10-30 00:28 71.95
Storage 2017-10-30 00:28 71.70
WS 2017-10-30 00:28 42.4
WS 2017-10-30 00:29 42.4
TVArea 2017-10-30 00:30 77.38
Storage 2017-10-30 00:30 71.70
Garage 2017-10-30 00:30 65.75
GameArea 2017-10-30 00:30 72.06
Laboratory 2017-10-30 00:30 80.07
BedRoom 2017-10-30 00:30 75.78
Sewing 2017-10-30 00:30 71.89
WS 2017-10-30 00:30 42.4
TVArea 2017-10-30 00:31 77.36
Laboratory 2017-10-30 00:31 80.07
GameArea 2017-10-30 00:31 72.04
Storage 2017-10-30 00:31 71.73
BedRoom 2017-10-30 00:31 75.78
Sewing 2017-10-30 00:31 71.86
Garage 2017-10-30 00:31 65.73
WS 2017-10-30 00:31 42.4
WS 2017-10-30 00:32 42.4
Laboratory 2017-10-30 00:33 80.06
BedRoom 2017-10-30 00:33 75.79
TVArea 2017-10-30 00:33 77.32
Garage 2017-10-30 00:33 65.70
GameArea 2017-10-30 00:33 72.03
Sewing 2017-10-30 00:33 71.84
Storage 2017-10-30 00:33 71.63
WS 2017-10-30 00:33 42.6
Laboratory 2017-10-30 00:34 80.07
BedRoom 2017-10-30 00:34 75.78
GameArea 2017-10-30 00:34 72.05
TVArea 2017-10-30 00:34 77.26
Garage 2017-10-30 00:34 65.70
Sewing 2017-10-30 00:34 71.83
Storage 2017-10-30 00:34 71.62
WS 2017-10-30 00:34 42.8
WS 2017-10-30 00:35 42.8
Laboratory 2017-10-30 00:36 80.08
Garage 2017-10-30 00:36 65.70
Storage 2017-10-30 00:36 71.61
TVArea 2017-10-30 00:36 77.21
GameArea 2017-10-30 00:36 72.05
Sewing 2017-10-30 00:36 71.81
BedRoom 2017-10-30 00:36 75.78
WS 2017-10-30 00:36 42.8
TVArea 2017-10-30 00:37 77.19
Laboratory 2017-10-30 00:37 80.09
GameArea 2017-10-30 00:37 72.03
BedRoom 2017-10-30 00:37 75.78
Sewing 2017-10-30 00:37 71.80
Garage 2017-10-30 00:37 65.69
Storage 2017-10-30 00:37 71.60
WS 2017-10-30 00:37 42.8
WS 2017-10-30 00:38 42.8
Laboratory 2017-10-30 00:39 80.12
BedRoom 2017-10-30 00:39 75.76
Garage 2017-10-30 00:39 65.63
TVArea 2017-10-30 00:39 77.20
GameArea 2017-10-30 00:39 72.05
Sewing 2017-10-30 00:39 71.75
Storage 2017-10-30 00:39 71.59
WS 2017-10-30 00:39 42.8
Laboratory 2017-10-30 00:40 80.13
Garage 2017-10-30 00:40 65.61
BedRoom 2017-10-30 00:40 75.77
TVArea 2017-10-30 00:40 77.20
GameArea 2017-10-30 00:40 72.05
Storage 2017-10-30 00:40 71.59
Sewing 2017-10-30 00:40 71.71
WS 2017-10-30 00:40 42.8
WS 2017-10-30 00:41 42.4
Sewing 2017-10-30 00:42 71.66
Laboratory 2017-10-30 00:42 80.16
BedRoom 2017-10-30 00:42 75.77
TVArea 2017-10-30 00:42 77.20
GameArea 2017-10-30 00:42 72.01
Storage 2017-10-30 00:42 71.59
Garage 2017-10-30 00:42 65.58
WS 2017-10-30 00:42 42.3
Sewing 2017-10-30 00:43 71.63
BedRoom 2017-10-30 00:43 75.75
Laboratory 2017-10-30 00:43 80.17
GameArea 2017-10-30 00:43 72.00
Storage 2017-10-30 00:43 71.59
TVArea 2017-10-30 00:43 77.20
Garage 2017-10-30 00:43 65.62
WS 2017-10-30 00:43 42.3
WS 2017-10-30 00:44 42.3
TVArea 2017-10-30 00:45 77.20
Storage 2017-10-30 00:45 71.60
BedRoom 2017-10-30 00:45 75.74
Sewing 2017-10-30 00:45 71.69
GameArea 2017-10-30 00:45 72.02
Garage 2017-10-30 00:45 65.63
Laboratory 2017-10-30 00:45 80.19
WS 2017-10-30 00:45 42.4
TVArea 2017-10-30 00:46 77.18
BedRoom 2017-10-30 00:46 75.73
Sewing 2017-10-30 00:46 71.69
Storage 2017-10-30 00:46 71.60
GameArea 2017-10-30 00:46 71.99
Garage 2017-10-30 00:46 65.69
Laboratory 2017-10-30 00:46 80.20
WS 2017-10-30 00:46 42.4
WS 2017-10-30 00:47 42.4
Sewing 2017-10-30 00:48 71.66
GameArea 2017-10-30 00:48 72.02
Storage 2017-10-30 00:48 71.59
TVArea 2017-10-30 00:48 77.17
Laboratory 2017-10-30 00:48 80.21
BedRoom 2017-10-30 00:48 75.72
Garage 2017-10-30 00:48 65.70
WS 2017-10-30 00:48 42.4
GameArea 2017-10-30 00:49 72.00
Storage 2017-10-30 00:49 71.60
Laboratory 2017-10-30 00:49 80.20
BedRoom 2017-10-30 00:49 75.72
TVArea 2017-10-30 00:49 77.14
Sewing 2017-10-30 00:49 71.69
Garage 2017-10-30 00:49 65.71
WS 2017-10-30 00:49 42.4
WS 2017-10-30 00:50 42.4
Laboratory 2017-10-30 00:51 80.20
Storage 2017-10-30 00:51 71.60
Sewing 2017-10-30 00:51 71.66
BedRoom 2017-10-30 00:51 75.70
GameArea 2017-10-30 00:51 72.02
TVArea 2017-10-30 00:51 76.99
Garage 2017-10-30 00:51 65.73
WS 2017-10-30 00:51 42.4
Laboratory 2017-10-30 00:52 80.19
Storage 2017-10-30 00:52 71.59
Sewing 2017-10-30 00:52 71.66
GameArea 2017-10-30 00:52 72.00
BedRoom 2017-10-30 00:52 75.69
TVArea 2017-10-30 00:52 77.00
Garage 2017-10-30 00:52 65.73
WS 2017-10-30 00:52 42.4
WS 2017-10-30 00:53 42.4
GameArea 2017-10-30 00:54 72.02
TVArea 2017-10-30 00:54 77.00
Garage 2017-10-30 00:54 65.80
Storage 2017-10-30 00:54 71.61
Sewing 2017-10-30 00:54 71.59
BedRoom 2017-10-30 00:54 75.69
Laboratory 2017-10-30 00:54 80.17
WS 2017-10-30 00:54 42.4
GameArea 2017-10-30 00:55 72.01
TVArea 2017-10-30 00:55 76.97
Garage 2017-10-30 00:55 65.80
Storage 2017-10-30 00:55 71.60
BedRoom 2017-10-30 00:55 75.68
Laboratory 2017-10-30 00:55 80.16
Sewing 2017-10-30 00:55 71.60
WS 2017-10-30 00:55 42.4
WS 2017-10-30 00:56 42.3
Storage 2017-10-30 00:57 71.61
Laboratory 2017-10-30 00:57 80.16
BedRoom 2017-10-30 00:57 75.67
Garage 2017-10-30 00:57 65.80
Sewing 2017-10-30 00:57 71.62
GameArea 2017-10-30 00:57 72.02
TVArea 2017-10-30 00:57 77.01
WS 2017-10-30 00:57 42.3
Laboratory 2017-10-30 00:58 80.16
Storage 2017-10-30 00:58 71.56
BedRoom 2017-10-30 00:58 75.66
Garage 2017-10-30 00:58 65.80
Sewing 2017-10-30 00:58 71.60
GameArea 2017-10-30 00:58 72.01
TVArea 2017-10-30 00:58 77.01
WS 2017-10-30 00:58 42.3
WS 2017-10-30 00:59 42.1
Laboratory 2017-10-30 01:00 80.17
TVArea 2017-10-30 01:00 76.94
BedRoom 2017-10-30 01:00 75.65
Storage 2017-10-30 01:00 71.54
Sewing 2017-10-30 01:00 71.59
Garage 2017-10-30 01:00 65.74
GameArea 2017-10-30 01:00 72.00
WS 2017-10-30 01:00 42.1
Laboratory 2017-10-30 01:01 80.18
TVArea 2017-10-30 01:01 76.96
BedRoom 2017-10-30 01:01 75.65
Storage 2017-10-30 01:01 71.55
Sewing 2017-10-30 01:01 71.61
Garage 2017-10-30 01:01 65.74
GameArea 2017-10-30 01:01 72.00
WS 2017-10-30 01:01 42.1
WS 2017-10-30 01:02 42.1
GameArea 2017-10-30 01:03 72.00
Laboratory 2017-10-30 01:03 80.20
Garage 2017-10-30 01:03 65.71
Storage 2017-10-30 01:03 71.52
BedRoom 2017-10-30 01:03 75.65
TVArea 2017-10-30 01:03 76.87
Sewing 2017-10-30 01:03 71.62
WS 2017-10-30 01:03 41.9
Garage 2017-10-30 01:04 65.70
Laboratory 2017-10-30 01:04 80.21
Storage 2017-10-30 01:04 71.56
BedRoom 2017-10-30 01:04 75.64
TVArea 2017-10-30 01:04 76.84
GameArea 2017-10-30 01:04 71.99
Sewing 2017-10-30 01:04 71.63
WS 2017-10-30 01:04 41.9
WS 2017-10-30 01:05 41.5
Sewing 2017-10-30 01:06 71.60
GameArea 2017-10-30 01:06 71.98
TVArea 2017-10-30 01:06 76.81
Garage 2017-10-30 01:06 65.70
Storage 2017-10-30 01:06 71.45
Laboratory 2017-10-30 01:06 80.23
BedRoom 2017-10-30 01:06 75.62
WS 2017-10-30 01:06 41.5
GameArea 2017-10-30 01:07 71.91
Garage 2017-10-30 01:07 65.70
Storage 2017-10-30 01:07 71.41
Laboratory 2017-10-30 01:07 80.23
Sewing 2017-10-30 01:07 71.59
TVArea 2017-10-30 01:07 76.81
BedRoom 2017-10-30 01:07 75.62
WS 2017-10-30 01:07 41.2
WS 2017-10-30 01:08 41.2
BedRoom 2017-10-30 01:09 75.60
Storage 2017-10-30 01:09 71.41
TVArea 2017-10-30 01:09 76.79
Laboratory 2017-10-30 01:09 80.24
GameArea 2017-10-30 01:09 71.89
Garage 2017-10-30 01:09 65.56
Sewing 2017-10-30 01:09 71.56
WS 2017-10-30 01:09 41.2
TVArea 2017-10-30 01:10 76.81
BedRoom 2017-10-30 01:10 75.60
Laboratory 2017-10-30 01:10 80.24
Storage 2017-10-30 01:10 71.41
Garage 2017-10-30 01:10 65.57
GameArea 2017-10-30 01:10 71.91
Sewing 2017-10-30 01:10 71.55
WS 2017-10-30 01:10 41.2
WS 2017-10-30 01:11 41.2
BedRoom 2017-10-30 01:12 75.59
TVArea 2017-10-30 01:12 76.78
Laboratory 2017-10-30 01:12 80.25
Sewing 2017-10-30 01:12 71.56
Garage 2017-10-30 01:12 65.51
GameArea 2017-10-30 01:12 71.88
Storage 2017-10-30 01:12 71.41
WS 2017-10-30 01:12 41.2
BedRoom 2017-10-30 01:13 75.58
TVArea 2017-10-30 01:13 76.77
Garage 2017-10-30 01:13 65.50
GameArea 2017-10-30 01:13 71.85
Laboratory 2017-10-30 01:13 80.24
Sewing 2017-10-30 01:13 71.55
Storage 2017-10-30 01:13 71.40
WS 2017-10-30 01:13 41.2
WS 2017-10-30 01:14 41.2
Storage 2017-10-30 01:15 71.40
Laboratory 2017-10-30 01:15 80.22
GameArea 2017-10-30 01:15 71.80
TVArea 2017-10-30 01:15 76.69
Garage 2017-10-30 01:15 65.50
Sewing 2017-10-30 01:15 71.52
BedRoom 2017-10-30 01:15 75.57
WS 2017-10-30 01:15 41.2
Storage 2017-10-30 01:16 71.41
Laboratory 2017-10-30 01:16 80.21
Garage 2017-10-30 01:16 65.50
TVArea 2017-10-30 01:16 76.66
BedRoom 2017-10-30 01:16 75.57
Sewing 2017-10-30 01:16 71.51
GameArea 2017-10-30 01:16 71.80
WS 2017-10-30 01:16 41.4
WS 2017-10-30 01:17 41.5
Garage 2017-10-30 01:18 65.49
BedRoom 2017-10-30 01:18 75.55
Laboratory 2017-10-30 01:18 80.19
Sewing 2017-10-30 01:18 71.52
GameArea 2017-10-30 01:18 71.80
Storage 2017-10-30 01:18 71.40
TVArea 2017-10-30 01:18 76.61
WS 2017-10-30 01:18 41.5
Garage 2017-10-30 01:19 65.47
BedRoom 2017-10-30 01:19 75.54
GameArea 2017-10-30 01:19 71.79
Laboratory 2017-10-30 01:19 80.18
Storage 2017-10-30 01:19 71.40
Sewing 2017-10-30 01:19 71.50
TVArea 2017-10-30 01:19 76.60
WS 2017-10-30 01:19 41.4
WS 2017-10-30 01:20 41.4
Sewing 2017-10-30 01:21 71.50
BedRoom 2017-10-30 01:21 75.53
Laboratory 2017-10-30 01:21 80.18
GameArea 2017-10-30 01:21 71.80
TVArea 2017-10-30 01:21 76.61
Storage 2017-10-30 01:21 71.39
Garage 2017-10-30 01:21 65.41
WS 2017-10-30 01:21 41.2
BedRoom 2017-10-30 01:22 75.52
Laboratory 2017-10-30 01:22 80.18
Sewing 2017-10-30 01:22 71.49
TVArea 2017-10-30 01:22 76.62
GameArea 2017-10-30 01:22 71.78
Storage 2017-10-30 01:22 71.37
Garage 2017-10-30 01:22 65.33
WS 2017-10-30 01:22 41.2
WS 2017-10-30 01:23 41.4
Storage 2017-10-30 01:24 71.37
BedRoom 2017-10-30 01:24 75.51
TVArea 2017-10-30 01:24 76.61
Garage 2017-10-30 01:24 65.30
GameArea 2017-10-30 01:24 71.80
Laboratory 2017-10-30 01:24 80.19
Sewing 2017-10-30 01:24 71.45
WS 2017-10-30 01:24 41.4
Storage 2017-10-30 01:25 71.36
TVArea 2017-10-30 01:25 76.61
Garage 2017-10-30 01:25 65.31
GameArea 2017-10-30 01:25 71.78
Laboratory 2017-10-30 01:25 80.20
BedRoom 2017-10-30 01:25 75.51
Sewing 2017-10-30 01:25 71.45
WS 2017-10-30 01:25 41.5
WS 2017-10-30 01:26 41.5
Garage 2017-10-30 01:27 65.30
Laboratory 2017-10-30 01:27 80.22
GameArea 2017-10-30 01:27 71.78
TVArea 2017-10-30 01:27 76.58
BedRoom 2017-10-30 01:27 75.50
Sewing 2017-10-30 01:27 71.47
Storage 2017-10-30 01:27 71.24
WS 2017-10-30 01:27 41.5
GameArea 2017-10-30 01:28 71.78
Garage 2017-10-30 01:28 65.30
TVArea 2017-10-30 01:28 76.56
Laboratory 2017-10-30 01:28 80.23
BedRoom 2017-10-30 01:28 75.50
Sewing 2017-10-30 01:28 71.43
Storage 2017-10-30 01:28 71.24
WS 2017-10-30 01:28 41.5
WS 2017-10-30 01:29 41.5
Sewing 2017-10-30 01:30 71.42
Garage 2017-10-30 01:30 65.30
BedRoom 2017-10-30 01:30 75.48
GameArea 2017-10-30 01:30 71.78
Storage 2017-10-30 01:30 71.21
TVArea 2017-10-30 01:30 76.54
Laboratory 2017-10-30 01:30 80.25
WS 2017-10-30 01:30 41.4
Garage 2017-10-30 01:31 65.30
Storage 2017-10-30 01:31 71.21
GameArea 2017-10-30 01:31 71.79
BedRoom 2017-10-30 01:31 75.47
Laboratory 2017-10-30 01:31 80.25
Sewing 2017-10-30 01:31 71.40
TVArea 2017-10-30 01:31 76.50
WS 2017-10-30 01:31 41.5
WS 2017-10-30 01:32 41.5
Laboratory 2017-10-30 01:33 80.25
GameArea 2017-10-30 01:33 71.76
BedRoom 2017-10-30 01:33 75.46
TVArea 2017-10-30 01:33 76.49
Garage 2017-10-30 01:33 65.31
Storage 2017-10-30 01:33 71.21
Sewing 2017-10-30 01:33 71.38
WS 2017-10-30 01:33 41.5
Laboratory 2017-10-30 01:34 80.25
GameArea 2017-10-30 01:34 71.73
BedRoom 2017-10-30 01:34 75.46
TVArea 2017-10-30 01:34 76.50
Storage 2017-10-30 01:34 71.20
Garage 2017-10-30 01:34 65.38
Sewing 2017-10-30 01:34 71.37
WS 2017-10-30 01:34 41.5
WS 2017-10-30 01:35 41.4
Storage 2017-10-30 01:36 71.21
BedRoom 2017-10-30 01:36 75.44
GameArea 2017-10-30 01:36 71.74
TVArea 2017-10-30 01:36 76.51
Garage 2017-10-30 01:36 65.49
Sewing 2017-10-30 01:36 71.34
Laboratory 2017-10-30 01:36 80.24
WS 2017-10-30 01:36 41.2
Storage 2017-10-30 01:37 71.21
GameArea 2017-10-30 01:37 71.75
Garage 2017-10-30 01:37 65.50
Laboratory 2017-10-30 01:37 80.23
TVArea 2017-10-30 01:37 76.49
BedRoom 2017-10-30 01:37 75.44
Sewing 2017-10-30 01:37 71.36
WS 2017-10-30 01:37 41.0
WS 2017-10-30 01:38 41.0
Laboratory 2017-10-30 01:39 80.21
TVArea 2017-10-30 01:39 76.45
Storage 2017-10-30 01:39 71.21
BedRoom 2017-10-30 01:39 75.42
Garage 2017-10-30 01:39 65.50
Sewing 2017-10-30 01:39 71.37
GameArea 2017-10-30 01:39 71.63
WS 2017-10-30 01:39 41.0
Laboratory 2017-10-30 01:40 80.20
TVArea 2017-10-30 01:40 76.46
Storage 2017-10-30 01:40 71.21
BedRoom 2017-10-30 01:40 75.41
Garage 2017-10-30 01:40 65.55
Sewing 2017-10-30 01:40 71.37
GameArea 2017-10-30 01:40 71.63
WS 2017-10-30 01:40 41.0
WS 2017-10-30 01:41 41.0
Laboratory 2017-10-30 01:42 80.18
BedRoom 2017-10-30 01:42 75.41
Storage 2017-10-30 01:42 71.20
TVArea 2017-10-30 01:42 76.38
Sewing 2017-10-30 01:42 71.37
GameArea 2017-10-30 01:42 71.60
Garage 2017-10-30 01:42 65.62
WS 2017-10-30 01:42 41.0
Laboratory 2017-10-30 01:43 80.17
BedRoom 2017-10-30 01:43 75.41
Storage 2017-10-30 01:43 71.20
TVArea 2017-10-30 01:43 76.32
GameArea 2017-10-30 01:43 71.60
Sewing 2017-10-30 01:43 71.36
Garage 2017-10-30 01:43 65.57
WS 2017-10-30 01:43 41.0
WS 2017-10-30 01:44 41.0
BedRoom 2017-10-30 01:45 75.40
Garage 2017-10-30 01:45 65.51
Laboratory 2017-10-30 01:45 80.18
Sewing 2017-10-30 01:45 71.35
Storage 2017-10-30 01:45 71.17
GameArea 2017-10-30 01:45 71.60
TVArea 2017-10-30 01:45 76.31
WS 2017-10-30 01:45 41.2
Laboratory 2017-10-30 01:46 80.18
Garage 2017-10-30 01:46 65.50
BedRoom 2017-10-30 01:46 75.39
Storage 2017-10-30 01:46 71.17
Sewing 2017-10-30 01:46 71.37
GameArea 2017-10-30 01:46 71.60
TVArea 2017-10-30 01:46 76.30
WS 2017-10-30 01:46 41.2
WS 2017-10-30 01:47 41.2
TVArea 2017-10-30 01:48 76.31
Storage 2017-10-30 01:48 71.16
BedRoom 2017-10-30 01:48 75.38
Sewing 2017-10-30 01:48 71.34
Garage 2017-10-30 01:48 65.50
Laboratory 2017-10-30 01:48 80.20
GameArea 2017-10-30 01:48 71.58
WS 2017-10-30 01:48 41.2
TVArea 2017-10-30 01:49 76.30
Storage 2017-10-30 01:49 71.13
BedRoom 2017-10-30 01:49 75.37
Garage 2017-10-30 01:49 65.50
Sewing 2017-10-30 01:49 71.32
Laboratory 2017-10-30 01:49 80.20
GameArea 2017-10-30 01:49 71.60
WS 2017-10-30 01:49 41.0
WS 2017-10-30 01:50 41.2
TVArea 2017-10-30 01:51 76.25
GameArea 2017-10-30 01:51 71.60
Laboratory 2017-10-30 01:51 80.22
Sewing 2017-10-30 01:51 71.37
BedRoom 2017-10-30 01:51 75.36
Storage 2017-10-30 01:51 71.11
Garage 2017-10-30 01:51 65.46
WS 2017-10-30 01:51 41.2
GameArea 2017-10-30 01:52 71.60
TVArea 2017-10-30 01:52 76.26
Laboratory 2017-10-30 01:52 80.22
Sewing 2017-10-30 01:52 71.37
BedRoom 2017-10-30 01:52 75.34
Garage 2017-10-30 01:52 65.39
Storage 2017-10-30 01:52 71.10
WS 2017-10-30 01:52 41.2
WS 2017-10-30 01:53 41.2
TVArea 2017-10-30 01:54 76.26
BedRoom 2017-10-30 01:54 75.31
GameArea 2017-10-30 01:54 71.60
Garage 2017-10-30 01:54 65.33
Storage 2017-10-30 01:54 71.09
Laboratory 2017-10-30 01:54 80.23
Sewing 2017-10-30 01:54 71.34
WS 2017-10-30 01:54 41.2
GameArea 2017-10-30 01:55 71.59
Garage 2017-10-30 01:55 65.30
Storage 2017-10-30 01:55 71.10
Laboratory 2017-10-30 01:55 80.23
TVArea 2017-10-30 01:55 76.21
BedRoom 2017-10-30 01:55 75.30
Sewing 2017-10-30 01:55 71.33
WS 2017-10-30 01:55 41.0
WS 2017-10-30 01:56 41.0
GameArea 2017-10-30 01:57 71.60
Storage 2017-10-30 01:57 71.09
Garage 2017-10-30 01:57 65.30
TVArea 2017-10-30 01:57 76.17
Sewing 2017-10-30 01:57 71.29
BedRoom 2017-10-30 01:57 75.29
Laboratory 2017-10-30 01:57 80.23
WS 2017-10-30 01:57 40.8
Garage 2017-10-30 01:58 65.30
GameArea 2017-10-30 01:58 71.59
Storage 2017-10-30 01:58 71.10
TVArea 2017-10-30 01:58 76.12
Sewing 2017-10-30 01:58 71.30
BedRoom 2017-10-30 01:58 75.30
Laboratory 2017-10-30 01:58 80.23
WS 2017-10-30 01:58 40.8
WS 2017-10-30 01:59 40.6
Storage 2017-10-30 02:00 71.09
TVArea 2017-10-30 02:00 76.11
GameArea 2017-10-30 02:00 71.58
Garage 2017-10-30 02:00 65.29
Laboratory 2017-10-30 02:00 80.21
Sewing 2017-10-30 02:00 71.32
BedRoom 2017-10-30 02:00 75.30
WS 2017-10-30 02:00 40.6
Storage 2017-10-30 02:01 71.10
GameArea 2017-10-30 02:01 71.55
TVArea 2017-10-30 02:01 76.11
Laboratory 2017-10-30 02:01 80.20
Garage 2017-10-30 02:01 65.24
BedRoom 2017-10-30 02:01 75.29
Sewing 2017-10-30 02:01 71.29
WS 2017-10-30 02:01 40.3
WS 2017-10-30 02:02 40.3
BedRoom 2017-10-30 02:03 75.27
Garage 2017-10-30 02:03 65.19
GameArea 2017-10-30 02:03 71.53
TVArea 2017-10-30 02:03 76.11
Laboratory 2017-10-30 02:03 80.18
Sewing 2017-10-30 02:03 71.30
Storage 2017-10-30 02:03 71.10
WS 2017-10-30 02:03 40.3
BedRoom 2017-10-30 02:04 75.26
Garage 2017-10-30 02:04 65.10
TVArea 2017-10-30 02:04 76.10
GameArea 2017-10-30 02:04 71.55
Laboratory 2017-10-30 02:04 80.17
Sewing 2017-10-30 02:04 71.30
Storage 2017-10-30 02:04 71.10
WS 2017-10-30 02:04 40.3
WS 2017-10-30 02:05 40.3
BedRoom 2017-10-30 02:06 75.25
Sewing 2017-10-30 02:06 71.29
Laboratory 2017-10-30 02:06 80.15
TVArea 2017-10-30 02:06 76.10
Storage 2017-10-30 02:06 71.10
Garage 2017-10-30 02:06 65.10
GameArea 2017-10-30 02:06 71.56
WS 2017-10-30 02:06 40.3
BedRoom 2017-10-30 02:07 75.24
TVArea 2017-10-30 02:07 76.08
Storage 2017-10-30 02:07 71.09
Garage 2017-10-30 02:07 65.10
GameArea 2017-10-30 02:07 71.49
Laboratory 2017-10-30 02:07 80.14
Sewing 2017-10-30 02:07 71.32
WS 2017-10-30 02:07 40.1
WS 2017-10-30 02:08 40.1
Storage 2017-10-30 02:09 71.09
BedRoom 2017-10-30 02:09 75.23
Laboratory 2017-10-30 02:09 80.14
TVArea 2017-10-30 02:09 76.05
Garage 2017-10-30 02:09 65.10
GameArea 2017-10-30 02:09 71.44
Sewing 2017-10-30 02:09 71.32
WS 2017-10-30 02:09 39.9
Storage 2017-10-30 02:10 71.09
BedRoom 2017-10-30 02:10 75.22
Laboratory 2017-10-30 02:10 80.15
GameArea 2017-10-30 02:10 71.43
TVArea 2017-10-30 02:10 76.04
Garage 2017-10-30 02:10 65.10
Sewing 2017-10-30 02:10 71.34
WS 2017-10-30 02:10 39.7
WS 2017-10-30 02:11 39.7
BedRoom 2017-10-30 02:12 75.21
Storage 2017-10-30 02:12 71.09
TVArea 2017-10-30 02:12 75.89
Laboratory 2017-10-30 02:12 80.16
Garage 2017-10-30 02:12 65.07
GameArea 2017-10-30 02:12 71.41
Sewing 2017-10-30 02:12 71.32
WS 2017-10-30 02:12 39.7
Storage 2017-10-30 02:13 71.10
GameArea 2017-10-30 02:13 71.42
Garage 2017-10-30 02:13 64.98
BedRoom 2017-10-30 02:13 75.21
TVArea 2017-10-30 02:13 75.89
Laboratory 2017-10-30 02:13 80.17
Sewing 2017-10-30 02:13 71.34
WS 2017-10-30 02:13 39.4
WS 2017-10-30 02:14 39.6
Garage 2017-10-30 02:15 64.91
GameArea 2017-10-30 02:15 71.38
TVArea 2017-10-30 02:15 75.91
Sewing 2017-10-30 02:15 71.30
BedRoom 2017-10-30 02:15 75.19
Laboratory 2017-10-30 02:15 80.17
Storage 2017-10-30 02:15 71.09
WS 2017-10-30 02:15 39.9
TVArea 2017-10-30 02:16 75.89
GameArea 2017-10-30 02:16 71.38
Garage 2017-10-30 02:16 64.95
BedRoom 2017-10-30 02:16 75.19
Sewing 2017-10-30 02:16 71.31
Laboratory 2017-10-30 02:16 80.17
Storage 2017-10-30 02:16 71.10
WS 2017-10-30 02:16 40.1
WS 2017-10-30 02:17 40.1
Sewing 2017-10-30 02:18 71.26
Storage 2017-10-30 02:18 71.09
Garage 2017-10-30 02:18 65.06
BedRoom 2017-10-30 02:18 75.17
TVArea 2017-10-30 02:18 75.83
GameArea 2017-10-30 02:18 71.42
Laboratory 2017-10-30 02:18 80.18
WS 2017-10-30 02:18 39.9
Storage 2017-10-30 02:19 71.07
Sewing 2017-10-30 02:19 71.26
BedRoom 2017-10-30 02:19 75.15
TVArea 2017-10-30 02:19 75.76
Garage 2017-10-30 02:19 65.07
GameArea 2017-10-30 02:19 71.40
Laboratory 2017-10-30 02:19 80.18
WS 2017-10-30 02:19 39.9
WS 2017-10-30 02:20 39.7
Laboratory 2017-10-30 02:21 80.18
Garage 2017-10-30 02:21 65.09
TVArea 2017-10-30 02:21 75.69
GameArea 2017-10-30 02:21 71.40
Storage 2017-10-30 02:21 71.08
Sewing 2017-10-30 02:21 71.23
BedRoom 2017-10-30 02:21 75.13
WS 2017-10-30 02:21 39.6
Laboratory 2017-10-30 02:22 80.17
GameArea 2017-10-30 02:22 71.40
TVArea 2017-10-30 02:22 75.70
Garage 2017-10-30 02:22 65.10
Storage 2017-10-30 02:22 71.09
BedRoom 2017-10-30 02:22 75.11
Sewing 2017-10-30 02:22 71.22
WS 2017-10-30 02:22 39.4
WS 2017-10-30 02:23 39.6
TVArea 2017-10-30 02:24 75.69
Storage 2017-10-30 02:24 71.07
BedRoom 2017-10-30 02:24 75.12
GameArea 2017-10-30 02:24 71.40
Laboratory 2017-10-30 02:24 80.15
Garage 2017-10-30 02:24 65.13
Sewing 2017-10-30 02:24 71.22
WS 2017-10-30 02:24 39.7
TVArea 2017-10-30 02:25 75.69
Storage 2017-10-30 02:25 71.05
GameArea 2017-10-30 02:25 71.38
BedRoom 2017-10-30 02:25 75.12
Laboratory 2017-10-30 02:25 80.14
Garage 2017-10-30 02:25 65.25
Sewing 2017-10-30 02:25 71.20
WS 2017-10-30 02:25 40.1
WS 2017-10-30 02:26 40.1
TVArea 2017-10-30 02:27 75.66
Laboratory 2017-10-30 02:27 80.12
Sewing 2017-10-30 02:27 71.18
Garage 2017-10-30 02:27 65.29
GameArea 2017-10-30 02:27 71.40
BedRoom 2017-10-30 02:27 75.09
Storage 2017-10-30 02:27 71.01
WS 2017-10-30 02:27 40.1
TVArea 2017-10-30 02:28 75.65
Laboratory 2017-10-30 02:28 80.11
Garage 2017-10-30 02:28 65.30
GameArea 2017-10-30 02:28 71.42
BedRoom 2017-10-30 02:28 75.08
Sewing 2017-10-30 02:28 71.18
Storage 2017-10-30 02:28 70.95
WS 2017-10-30 02:28 39.9
WS 2017-10-30 02:29 39.6
Storage 2017-10-30 02:30 70.91
Garage 2017-10-30 02:30 65.30
BedRoom 2017-10-30 02:30 75.06
GameArea 2017-10-30 02:30 71.40
TVArea 2017-10-30 02:30 75.59
Laboratory 2017-10-30 02:30 80.10
Sewing 2017-10-30 02:30 71.21
WS 2017-10-30 02:30 39.4
BedRoom 2017-10-30 02:31 75.06
GameArea 2017-10-30 02:31 71.40
TVArea 2017-10-30 02:31 75.60
Laboratory 2017-10-30 02:31 80.11
Sewing 2017-10-30 02:31 71.19
Garage 2017-10-30 02:31 65.30
Storage 2017-10-30 02:31 70.90
WS 2017-10-30 02:31 39.0
WS 2017-10-30 02:32 38.8
BedRoom 2017-10-30 02:33 75.04
Storage 2017-10-30 02:33 70.90
TVArea 2017-10-30 02:33 75.59
Sewing 2017-10-30 02:33 71.13
GameArea 2017-10-30 02:33 71.37
Garage 2017-10-30 02:33 65.24
Laboratory 2017-10-30 02:33 80.12
WS 2017-10-30 02:33 38.5
TVArea 2017-10-30 02:34 75.60
Storage 2017-10-30 02:34 70.89
BedRoom 2017-10-30 02:34 75.03
Sewing 2017-10-30 02:34 71.11
GameArea 2017-10-30 02:34 71.36
Garage 2017-10-30 02:34 65.17
Laboratory 2017-10-30 02:34 80.13
WS 2017-10-30 02:34 38.5
WS 2017-10-30 02:35 38.5
Sewing 2017-10-30 02:36 71.14
BedRoom 2017-10-30 02:36 75.02
Laboratory 2017-10-30 02:36 80.14
GameArea 2017-10-30 02:36 71.32
Storage 2017-10-30 02:36 70.90
Garage 2017-10-30 02:36 65.10
TVArea 2017-10-30 02:36 75.55
WS 2017-10-30 02:36 38.7
GameArea 2017-10-30 02:37 71.35
Storage 2017-10-30 02:37 70.90
Garage 2017-10-30 02:37 65.11
Laboratory 2017-10-30 02:37 80.15
BedRoom 2017-10-30 02:37 75.00
Sewing 2017-10-30 02:37 71.13
TVArea 2017-10-30 02:37 75.49
WS 2017-10-30 02:37 38.7
WS 2017-10-30 02:38 38.7
Sewing 2017-10-30 02:39 71.05
TVArea 2017-10-30 02:39 75.39
Laboratory 2017-10-30 02:39 80.16
BedRoom 2017-10-30 02:39 74.97
GameArea 2017-10-30 02:39 71.32
Storage 2017-10-30 02:39 70.91
Garage 2017-10-30 02:39 65.10
WS 2017-10-30 02:39 38.8
GameArea 2017-10-30 02:40 71.26
TVArea 2017-10-30 02:40 75.39
Sewing 2017-10-30 02:40 71.05
BedRoom 2017-10-30 02:40 74.96
Laboratory 2017-10-30 02:40 80.16
Storage 2017-10-30 02:40 70.89
Garage 2017-10-30 02:40 65.08
WS 2017-10-30 02:40 38.8
WS 2017-10-30 02:41 39.2
Sewing 2017-10-30 02:42 71.03
Garage 2017-10-30 02:42 65.00
BedRoom 2017-10-30 02:42 74.93
Laboratory 2017-10-30 02:42 80.17
GameArea 2017-10-30 02:42 71.23
Storage 2017-10-30 02:42 70.89
TVArea 2017-10-30 02:42 75.41
WS 2017-10-30 02:42 39.2
Sewing 2017-10-30 02:43 71.01
Garage 2017-10-30 02:43 64.92
GameArea 2017-10-30 02:43 71.25
Storage 2017-10-30 02:43 70.90
Laboratory 2017-10-30 02:43 80.17
BedRoom 2017-10-30 02:43 74.92
TVArea 2017-10-30 02:43 75.41
WS 2017-10-30 02:43 39.2
WS 2017-10-30 02:44 39.0
Sewing 2017-10-30 02:45 70.97
BedRoom 2017-10-30 02:45 74.90
GameArea 2017-10-30 02:45 71.20
Storage 2017-10-30 02:45 70.91
Garage 2017-10-30 02:45 64.90
TVArea 2017-10-30 02:45 75.40
Laboratory 2017-10-30 02:45 80.15
WS 2017-10-30 02:45 38.8
GameArea 2017-10-30 02:46 71.19
Storage 2017-10-30 02:46 70.91
BedRoom 2017-10-30 02:46 74.91
Garage 2017-10-30 02:46 64.91
Sewing 2017-10-30 02:46 70.97
TVArea 2017-10-30 02:46 75.40
Laboratory 2017-10-30 02:46 80.14
WS 2017-10-30 02:46 39.0
WS 2017-10-30 02:47 39.2
Sewing 2017-10-30 02:48 70.93
TVArea 2017-10-30 02:48 75.41
BedRoom 2017-10-30 02:48 74.91
Storage 2017-10-30 02:48 70.89
GameArea 2017-10-30 02:48 71.21
Laboratory 2017-10-30 02:48 80.12
Garage 2017-10-30 02:48 64.90
WS 2017-10-30 02:48 39.2
Sewing 2017-10-30 02:49 70.94
TVArea 2017-10-30 02:49 75.41
BedRoom 2017-10-30 02:49 74.91
Storage 2017-10-30 02:49 70.90
GameArea 2017-10-30 02:49 71.20
Laboratory 2017-10-30 02:49 80.11
Garage 2017-10-30 02:49 64.90
WS 2017-10-30 02:49 39.2
WS 2017-10-30 02:50 39.2
Laboratory 2017-10-30 02:51 80.08
GameArea 2017-10-30 02:51 71.20
Storage 2017-10-30 02:51 70.90
BedRoom 2017-10-30 02:51 74.90
TVArea 2017-10-30 02:51 75.39
Garage 2017-10-30 02:51 64.86
Sewing 2017-10-30 02:51 70.89
WS 2017-10-30 02:51 39.0
Laboratory 2017-10-30 02:52 80.07
GameArea 2017-10-30 02:52 71.22
TVArea 2017-10-30 02:52 75.40
Storage 2017-10-30 02:52 70.89
BedRoom 2017-10-30 02:52 74.89
Garage 2017-10-30 02:52 64.85
Sewing 2017-10-30 02:52 70.88
WS 2017-10-30 02:52 39.0
WS 2017-10-30 02:53 39.0
GameArea 2017-10-30 02:54 71.20
Storage 2017-10-30 02:54 70.90
TVArea 2017-10-30 02:54 75.39
BedRoom 2017-10-30 02:54 74.87
Sewing 2017-10-30 02:54 70.89
Garage 2017-10-30 02:54 64.80
Laboratory 2017-10-30 02:54 80.07
WS 2017-10-30 02:54 38.8
GameArea 2017-10-30 02:55 71.22
Storage 2017-10-30 02:55 70.90
TVArea 2017-10-30 02:55 75.39
BedRoom 2017-10-30 02:55 74.86
Garage 2017-10-30 02:55 64.80
...
This file has been truncated, please download it to see its full contents.
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include "SparkFun_Si7021_Breakout_Library.h"
#include <Wire.h>
Weather sensor;
// IP address
IPAddress ip (192, 168, 1, 221);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
const char* ssid = "<YOURSSID>";
const char* password = "<YOURPASSWORD>";
// built in LED to show activity
#define led 13
ESP8266WebServer server(80);
class TemperatureReader
{
// Class Member Variables
// Array variables
float temperatureCArray[60]; // array to generate mean C Temperature value of last 60 readings.
float temperatureFArray[60]; // array to generate mean F Temperature value of last 60 readings.
float humidityArray[60]; // array to generate mean Humidity value of last 60 readings.
// public variables
public: bool readerReady; // determine if enough readings have been taken to allow mean data return.
public: float currTempF; // current Mean temperature.
public: float currTempC;
public: float currHumidity;
// These maintain the counter state
int counter; // array positioner.
unsigned long previousMillis; // determines if new Temperature Reading is necessary
// Constructor - creates TempeatureReader
// and initializes the member variables and state
public: TemperatureReader()
{
// initialize variables.
counter = 0;
previousMillis = 0;
currTempF = 0.0;
currTempC = 0.0;
currHumidity = 0.0;
readerReady=false;
for (int i=0; i < 60; i++){
temperatureFArray[i] = 0.0;
temperatureCArray[i] = 0.0;
humidityArray[i] = 0.0;
}
}
public: void Update()
{
float humidity = 0.0;
float temperatureC = 0.0;
float temperatureF = 0.0;
// Check to see if we need to do reading.
unsigned long currentMillis = millis();
if(currentMillis - previousMillis >= 1000)
{
humidity = sensor.getRH();
temperatureF = sensor.getTempF();
temperatureC = sensor.getTemp();
// Serial.println(humidity);
// Serial.println(temperatureF);
humidityArray[counter] = humidity;
temperatureFArray[counter] = temperatureF;
temperatureCArray[counter] = temperatureC;
if (readerReady == true){
// set reader ready to get mean data from.
float sumHumidity = 0.0;
float sumTemperatureF = 0.0;
float sumTemperatureC = 0.0;
for (int i=0; i < 60; i++){
sumHumidity = sumHumidity + humidityArray[i];
sumTemperatureF = sumTemperatureF + temperatureFArray[i];
sumTemperatureC = sumTemperatureC + temperatureCArray[i];
}
currHumidity = sumHumidity/60;
currTempF = sumTemperatureF/60;
currTempC = sumTemperatureC/60;
//Serial.println("TemperatureF: " + String(currTempF));
} else {
Serial.println("Calibrating:" + String(counter));
if (counter == 59){
readerReady = true;
}
}
previousMillis = currentMillis; // Reset to currentmillis after temperature taken.
counter = counter + 1;
if (counter > 59){
counter = 0;
}
}
}
};
TemperatureReader tempReader;
void handleNotFound(){
String message = "File Not Found\n\n";
message += "URI: ";
message += server.uri();
message += "\nMethod: ";
message += (server.method() == HTTP_GET)?"GET":"POST";
message += "\nArguments: ";
message += server.args();
message += "\n";
for (uint8_t i=0; i<server.args(); i++){
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
server.send(404, "text/plain", message);
}
void handleHumidity(){
digitalWrite(led, 1);
String output;
output = String(tempReader.currHumidity);
//output = "<html><head>Access-Control-Allow-Origin: 192.168.1.*</head>
Serial.println(output);
server.send(200, "text/plain", output );
digitalWrite(led, 0);
}
void handleTemperatureC(){
digitalWrite(led, 1);
String output;
output = String(tempReader.currTempC);
Serial.println(output);
server.send(200, "text/plain", output );
digitalWrite(led, 0);
}
void handleTemperatureF(){
digitalWrite(led, 1);
String output;
output = String(tempReader.currTempF);
Serial.println(output);
server.send(200, "text/plain", output );
//Serial.println(output);
digitalWrite(led, 0);
}
void handleRoot() {
digitalWrite(led, 1);
String output = "Got here";
server.send(200, "text/plain", output );
Serial.println(output);
digitalWrite(led, 0);
}
void setup()
{
Serial.begin(9600);
WiFi.begin(ssid, password);
WiFi.config(ip, gateway, subnet);
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
if (MDNS.begin("esp8266")) {
Serial.println("MDNS responder started");
}
//Initialize the I2C sensors and ping them
sensor.begin();
server.on("/", handleRoot);
server.on("/TemperatureF", [](){
handleTemperatureF();
});
server.on("/TemperatureC", [](){
handleTemperatureC();
});
server.on("/Humidity", [](){
handleHumidity();
});
server.onNotFound(handleNotFound);
server.begin();
Serial.println("HTTP server started");
}
void loop()
{
tempReader.Update();
if (tempReader.readerReady == true){
server.handleClient();
}
}
SELECT TOP (100) PERCENT LocationName AS location, CONVERT(varchar(16), EventInsertDateTime, 120) AS date, EventDetail AS temp
FROM dbo.vwSensorEventsDetail
WHERE (EventInsertDateTime > CONVERT(varchar(10), GETDATE() - 30, 120)) AND (EventType = 1)
ORDER BY EventInsertDateTime
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sensor</title>
<link rel="stylesheet" href="css/lcars.css">
<style>
html,
body {
background: black
}
.line {
fill: none;
stroke-width: 1.5px
}
.overlay {
fill: none;
pointer-events: all;
}
.focus circle {
fill: none;
stroke: steelblue;
}
.svg-container {
display: inline-block;
position: relative;
width: 100%;
padding-bottom: 100%;
vertical-align: top;
overflow: hidden;
}
.svg-content {
display: inline-block;
position: absolute;
top: 0;
left: 0;
}
</style>
<script src="https://d3js.org/d3.v4.min.js"></script>
<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
<script>
function processMenu(menuObject, menuItems, menuLinks, menuButtonSize){
var subMenuFlag = 0;
var maxMenuCount = 0;
menu = $('#' + menuObject);
menuMaxCount = menuItems.length;
for (i = 0; i < menuMaxCount; i++) {
if (menuItems[i].length > 0) {
if (subMenuFlag == 0) {
menu.append('<li class="lcars-tan-bg ' + menuButtonSize[i] + '"><a href="' + menuLinks[i] + '">' + menuItems[i] + '</a></li>');
} else {
menu.append('<li class="lcars-blue-bg ' + menuButtonSize[i] + '"><a href="' + menuLinks[i] + '">' + menuItems[i] + '</a></li>');
}
} else {
menu.append('<li class="lcars-blue-bg ' + menuButtonSize[i] + '"> </li>');
subMenuFlag = 1;
}
}
}
function setPage(){
var PageName = 'Sensors';
// set document/page stuff
document.title = PageName;
$('#pageHeader').append('<h1 class="right">' + PageName + '</h1>');
// Set Elbows
$('#topLeftElbow').append('<a href="./Home.html">Home</a>');
$('#topRightElbow').append('<a href="#">Sensors</a>');
$('#bottomLeftElbow').append('');
$('#bottomRightElbow').append('');
// end Elbows
// Fill Menus - menus are independent, and may not have same amount of items
var leftMenuItems = ['Internal', 'External', '', '-Sensors-', '', '', '', '', ''];
var leftMenuLinks = ['./Internal.html', './External.html', '', '#', '', '', '', '', ''];
var leftMenuButtonSize = ['tall', 'tall', 'tall', 'tall', 'tall', 'tall', 'tall', 'tall', 'tall'];
var rightMenuItems = ['', '', '', '', '', '', '', '', ''];
var rightMenuLinks = ['', '', '', '', '', '', '', ''];
var rightMenuButtonSize = ['tall', 'tall', 'tall', 'tall', 'tall', 'tall', 'tall', 'tall', 'tall'];
processMenu("leftMenu", leftMenuItems, leftMenuLinks, leftMenuButtonSize);
processMenu("rightMenu",rightMenuItems, rightMenuLinks, rightMenuButtonSize);
}
</script>
<script>
function setSVGObject(minHeight){
var svgContainer = $("#centerContainer").find("svg")[0];
// getting container width/height to set svg size.
var containerWidth = $("#centerContainer").width();
svgContainer.setAttribute('width', containerWidth);
var containerHeight = $("#centerContainer").height();
if (containerHeight < minHeight){
containerHeight = minHeight;
}
svgContainer.setAttribute('height', containerHeight);
}
var data =[];
function doGraphTemperature(inFile, svgContainer) {
var svgContainer;
var svg;
svgContainer = $("#centerContainer").find("svg")[0];
// empties SVG container for redraw.
while (svgContainer.lastChild) { svgContainer.removeChild(svgContainer.lastChild); };
var svg = d3.select(".d3-viz"),
margin = { top: 10, right: 50, bottom: 30, left: 40 },
width = svg.attr("width") - margin.left - margin.right,
height = svg.attr("height") - margin.top - margin.bottom,
g = svg.append("g").attr("transform", "translate(" + margin.left + "," + margin.top + ")");
var rightTopControls = $("#rightTopControls");
var parseTime = d3.timeParse("%Y-%m-%d %H:%M");
var bisect = d3.bisector(function (d) { return d.date; }).left;
var x = d3.scaleTime().range([0, width]),
y = d3.scaleLinear().range([height, 0]),
z = d3.scaleOrdinal(d3.schemeCategory10);
var line = d3.line()
.x(function (d) {
return x(d.date);
})
.y(function (d) {
return y(d.temp);
});
d3.tsv("temperatureData.csv", function (d) {
d.location = d.location;
d.date = parseTime(d.date);
//console.log(d.date);
d.temp = (Math.round(+d.temp * 10) / 10).toFixed(1);
return d;
}, function (error, data) {
if (error) throw error;
data = data.filter(function (d) { return d.location != "WS" });
// date range filter
var dateFilter = $('input[name=timePeriod]:checked').val();
var checkVal = new Date();
checkVal.setDate(checkVal.getDate());
switch (dateFilter) {
case "TODAY":
checkVal.setHours(0, 0, 0, 0);
break;
case "24HR":
checkVal.setDate(checkVal.getDate() - 1);
break;
case "48HR":
checkVal.setDate(checkVal.getDate() - 2);
break;
case "1WEEK":
checkVal.setDate(checkVal.getDate() - 7);
break;
case "4WEEKS":
checkVal.setDate(checkVal.getDate() - 28);
break;
default:
checkVal.setHours(0, 0, 0, 0);
break;
}
// Date Filter
data = data.filter(function (d) {
return d.date > checkVal;
});
$(".filterCheckbox").each(function () {
//console.log("Object?")
var out = $(this);
var checked = $(this)[0].checked;
var id = $(this)[0].id;
if (out[0].checked == false) {
data = data.filter(function (d) {
return d.location != id;
})
}
})
// nest data off location key
function compareValues(a, b) { return a.date - b.date; }
var readings = d3.nest()
.key(function (d) { return d.location; })
//.sortKeys(d3.ascending)
.sortValues(compareValues)
.entries(data);
//console.log(data);
//console.log(readings);
x.domain(d3.extent(data, function (d) { return d.date; }));
x.ticks(10);
y.domain(d3.extent(data, function (d) { return d.temp; }));
//y.ticks(10);
z.domain(readings, function (d) { return d.key; });
var output = d3.values(readings);
var counter = 0
var checkCheckBoxes = null;
checkCheckBoxes = $(".filterCheckbox").html();
console.log(checkCheckBoxes);
if (checkCheckBoxes == undefined) {
output.forEach(function (d) {
//console.log(d.key)
if (counter == 3) {
//console.log("3");
$("#rightTopControls").append("<input type='checkbox' onchange='doGraphTemperature();doGraphHumidity();' class='filterCheckbox' id='" + d.key + "' checked name='" + d.key + "' value='" + d.key + "'>" + d.key + "<br>");
counter = 0;
} else {
//console.log(counter);
$("#rightTopControls").append("<input type='checkbox' onchange='doGraphTemperature();doGraphHumidity();' class='filterCheckbox' id='" + d.key + "' checked name='" + d.key + "' value='" + d.key + "'>" + d.key);
counter = counter + 1
}
});
}
//console.log(output);
var xAxis = d3.axisBottom(x);
//.ticks(d3.timeHour);
//g.selectAll(".domain")
// .styles({ fill:"#fff", stroke: "#fff"});
g.append("g")
.attr("class", "axis axis--x")
.style("fill","white")
.style("stroke-width","1px")
.attr("transform", "translate(0," + height + ")")
.call(xAxis);
g.append("g")
.attr("class", "axis axis--y")
.attr("class", "axisWhite")
.style("fill","white")
.call(d3.axisLeft(y))
.append("text")
.attr("transform", "rotate(-90)")
.attr("y", 10)
//.attr("dy", "0.71em")
.attr("fill", "#fff")
.text("Temperature, ºF");
var legend = g.selectAll(".legend")
.data(readings)
.enter().append("g")
.attr("class", "legend");
legend.append("rect")
.attr("x", 20)
.attr("y", function (d, i) {
return i * 20;
})
.attr("width", 10)
.attr("height", 10)
.style("fill", function (d) {
return z(d.key);
});
legend.append("text")
.attr("x", 32)
.attr("y", function (d, i) {
return (i * 20) + 9;
})
.text(function (d) {
return d.key;
});
var location = g.selectAll(".location")
.data(readings)
.enter().append("g")
.attr("class", "location");
location.append("path")
.attr("class", "line")
.attr("d", function (d) { return line(d.values); })
.style("stroke", function (d) { return z(d.key); });
var focus = svg.append("g")
.attr("class", "focus")
.style("display", "none");
for (var i = 0; i < readings.length; i++) {
focus.append("g")
.attr("class", "focus" + i)
.append("circle")
.style("stroke", z(readings[i].key))
.style("fill", z(readings[i].key))
.attr("transform", "translate(" + margin.left + "," + margin.top + ")")
.attr("r", 2);
svg.select(".focus" + i)
.append("text")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")")
.attr("x", 9)
.attr("dy", ".66em");
}
svg.append("rect")
.attr("class", "overlay")
.attr("width", width)
.attr("height", height)
.attr("transform", "translate(" + margin.left + "," + margin.top + ")")
.on("mouseover", function () { focus.style("display", null); })
.on("mouseout", function () { focus.style("display", "none"); })
.on("mousemove", mousemove);
function mousemove() {
var x0 = x.invert(d3.mouse(this)[0]);
var dategraphPeriod;
var series = readings.map(function (e) {
//console.log(e.values);
var i = bisect(e.values, x0, 1);
var d0 = e.values[i - 1];
var d1 = e.values[i];
var retVal;
//console.log(d0);
//console.log(d1);
if (d1 === undefined) {
retVal = d0;
} else {
if (x0 - d0.x > d1.x - x0) {
retVal = d1;
} else {
retVal = d0;
}
}
return retVal
});
//console.log(series.length);
for (var i = 0; i < series.length; i++) {
var selectedFocus = svg.selectAll(".focus" + i);
$("#dategraphPeriod").text("");
$("#dategraphPeriod").text(series[i].date.toString().substring(0, 21));
selectedFocus.attr("transform", "translate(" + x(series[i].date) + "," + y(series[i].temp) + ")");
selectedFocus.select("text").text(series[i].temp);
}
}
d3.selectAll("text").style("fill", "#fff");
d3.selectAll("text").style("font-family", "courier");
});
}
</script>
<script>
var requests = [];
var urlArray = ["http://192.168.1.210/TemperatureF","http://192.168.1.210/Humidity",
"http://192.168.1.211/TemperatureF","http://192.168.1.211/Humidity",
"http://192.168.1.213/TemperatureF","http://192.168.1.213/Humidity",
"http://192.168.1.216/TemperatureF","http://192.168.1.216/Humidity",
"http://192.168.1.215/TemperatureF","http://192.168.1.215/Humidity",
"http://192.168.1.217/TemperatureF","http://192.168.1.217/Humidity",
"http://192.168.1.214/TemperatureF","http://192.168.1.214/Humidity",
];
var idArray =["GarageTemp","GarageHumHumidity",
"PoolRoomTemp","PoolRoomHumHumidity",
"TVAreaTemp","TVAreaHumHumidity",
"StorageTemp","StorageHumHumidity",
"LaboratoryTemp","LabHumHumidity",
"SewingTemp","SewingHumHumidity",
"BedroomTemp","BedroomHumHumidity",
];
var callType = [" ºF", " %"," ºF", " %"," ºF", " %"," ºF", " %"," ºF", " %"," ºF", " %"," ºF", " %"];
function genericTemp_ajax() {
//var def = $.Deferred();
var arrayCount = urlArray.length;
for(i=0; i < arrayCount; i++){
var currURL = urlArray[i];
var currID = idArray[i];
var currCallType = callType[i];
requests.push(ajax_call(currURL, currID, currCallType));
}
}
function ajax_call(URL, ID, currCallType){
var def = $.Deferred();
$.ajax({
url: URL,
success: function (result) {
var output = (Math.round(result * 10) / 10).toFixed(1);
$("#" + ID).text(output + currCallType);
$.when.apply($, requests).then(function(){
def.resolve();
});
}
});
return def.promise();
}
function setCurrentDetails(){
var counter=0;
var insertVal="";
var arrayLength = idArray.size-1;
idArray.forEach(function(d){
var ID = d;
var Name;
if (ID.includes('Temp')){
Name = ID.substring(0,ID.length-4);
}
if (ID.includes('Humidity')){
Name = ID.substring(0,ID.length-8);
}
if (counter % 3 == 0){
if (arrayLength!=counter){
insertVal = insertVal + "<tr><td><span>" + Name + "</span></td><td><span id='" + ID + "'></span></td>";
}else {
insertVal = insertVal + "<tr><td><span>" + Name + "</span></td><td><span id='" + ID + "'></span></td><td><span> </span></td><td><span> </span></td></tr>";
}
}
if (counter % 3 == 1){
if (arrayLength!=counter){
insertVal = insertVal + "<td><span>" + Name + "</span></td><td><span id='" + ID + "'></span></td>";
} else {
insertVal = insertVal + "<td><span>" + Name + "</span></td><td><span id='" + ID + "'></span></td><td><span> </span></td></tr>"
}
}
if (counter % 3 == 2){
insertVal = insertVal + "<td><span>" + Name + "</span></td><td><span id='" + ID + "'></span></td></tr>";
}
counter = counter + 1;
//console.log(d);
})
$("#currTemps").append(insertVal);
}
</script>
</head>
<body>
<div class="lcars-container">
<!-- TOP ROW
=========================================================== -->
<div class="lcars-row spaced">
<!-- TOP LEFT ELBOW
=========================================================== -->
<div id="topLeftElbow" class="lcars-column u-1-8 lcars-elbow left bottom lcars-tan-bg">
</div>
<!-- TOP DIVIDER AND BUTTONS
=========================================================== -->
<div class="lcars-column u-6-8 lcars-divider lcars-tan-blue-divide">
<div class="lcars-row">
<div id="leftTopControls" class="lcars-column u-1-2">
<table width='100%'>
<tr>
<td>
<span>
<input id='rdo_TODAY' type="radio" name="timePeriod" checked="checked" value="TODAY"><label for="rdo_TODAY">TODAY</label>
<input id='rdo_24HR' type="radio" name="timePeriod" value="24HR"><label for="rdo_24HR">24Hr</label>
<input id='rdo_48HR' type="radio" name="timePeriod" value="48HR"><label for="rdo_48HR">48Hr</label><br>
<input id='rdo_1WEEK' type="radio" name="timePeriod" value="1WEEK"><label for="rdo_1WEEK">1 Week</label>
<input id='rdo_4WEEKS' type="radio" name="timePeriod" value="4WEEKS"><label for="rdo_4WEEKS">1 Month</label>
</span>
</td>
<td>
<span id="dategraphPeriod"></span>
</td>
</tr>
</table>
</div>
<div id="rightTopControls" class="lcars-column u-1-2">
</div>
</div>
</div>
<!-- TOP RIGHT ELBOW
=========================================================== -->
<div id="topRightElbow" class="lcars-column u-1-8 lcars-elbow right bottom lcars-blue-bg">
</div>
</div>
<div class="lcars-row">
<!-- LEFT MENU
=========================================================== -->
<div class="lcars-column u-1-8">
<ul id="leftMenu" class="lcars-menu">
</ul>
</div>
<!-- CENTER SECTION
=========================================================== -->
<div class="lcars-column u-6-8">
<div class="lcars-row">
<div id="centerContainer" class="lcars-column u-1-1" style="border-style:solid;border-width:1px; border-color:white;">
<svg id="svg1" class="d3-viz"> </svg>
<script>
$(document).ready(function () {
setPage();
setSVGObject(200);
doGraphTemperature();
setInterval(doGraphTemperature, 900000)// update every 15 minutes
$("input[name='timePeriod'").change(function () {
doGraphTemperature();
});
setCurrentDetails();
setInterval(genericTemp_ajax, 120000); // every 2 minutes.
});
</script>
<span width="100%">
<table style="margin-left:20px" id='currTemps' width='75%' >
</table>
</span>
</div>
</div>
</div>
<!--RIGHT MENU
=========================================================== -->
<div class="lcars-column u-1-8">
<ul id="rightMenu" class="lcars-menu right">
</ul>
</div>
</div>
<!--BOTTOM ROW
=========================================================== -->
<div class="lcars-row spaced">
<!-- BOTTOM LEFT ELBOW
=========================================================== -->
<div id="bottomLeftMenu" class="lcars-column u-1-8 lcars-elbow left top lcars-blue-bg">
</div>
<!-- BOTTOM DIVIDER AND BUTTONS
=========================================================== -->
<div class="lcars-column u-6-8 lcars-divider bottom lcars-blue-tan-divide">
<div class="lcars-row">
<div class="lcars-column u-1-1"> </div>
</div>
</div>
<!-- BOTTOM RIGHT ELBOW
=========================================================== -->
<div id="bottomRightElbow" class="lcars-column u-1-8 lcars-elbow right top lcars-blue-bg">
</div>
</div>
</div>
</body>
</html>
Comments
Please log in or sign up to comment.