Rich Noordam
Published © GPL3+

Sensor Network with NodeMCU and si7021 Sensor

In a multi-node sensor network, use the NodeMCU and si7021, a database to collect the readings and Javascript to display it!

BeginnerShowcase (no instructions)1 hour4,031
Sensor Network with NodeMCU and si7021 Sensor

Things used in this project

Hardware components

SparkFun Humidity and Temperature Sensor Breakout - Si7021
SparkFun Humidity and Temperature Sensor Breakout - Si7021
×1
NodeMCU ESP8266 Breakout Board
NodeMCU ESP8266 Breakout Board
×1
Jumper wires (generic)
Jumper wires (generic)
×1
female barrel jack
×1
power supply - 9v 1a
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

3D Printer (generic)
3D Printer (generic)
Hot glue gun (generic)
Hot glue gun (generic)

Story

Read more

Custom parts and enclosures

project box file

print with 3d printer

Schematics

fritz file

Code

Powershell example script

Powershell
NOTE: the date time is handled by a default value of getdate() upon insert, for our event datetime.
$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()
}

temperature.csv

Plain text
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.

NodeMCU Webserver with Si7021

Arduino
#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();
  }
}

view SQL

SQL
returns all temperature events (EventType=1), in the last 30 days.
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

sensor data web page

JavaScript
example web page for displaying temperature data.
<!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] + '">&nbsp;&nbsp;</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>&nbsp;</span></td><td><span>&nbsp;</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>&nbsp;</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">&nbsp;</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>

LCARS css interface

Credits

Rich Noordam

Rich Noordam

10 projects • 33 followers
Many interests, computing obviously being one of them. MS SQL Server Database Administration, Reporting, Data Science, and more.

Comments