-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathParameter Database Specifications.txt
115 lines (101 loc) · 4.62 KB
/
Parameter Database Specifications.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
Parameter Database Specifications{
Table storage location{
Each of the following tables will likely need to be present both within the device and on our servers.
Save location within device. SD info sectors could be dedicated if EEPROM doesn't have enough room.
Device and server will sync if a "change of settings" flag has been set from either device or on server.
To keep syncing straight, any setting changes may need an additional table recording the change date.
}
Device-Server communication method:{ //This belongs somewhere else in the specification documentation.
TBD, but standard TCP/IP transfer is within the capability of our processor and wifi module, using existing standards. We would like to minimize the need for extra drivers.
}
Tables that will be have unique values that should not be mirrored between SERVER and DEVICE{
Server Specific Parameters:{
update_flag BOOLEAN //quick reference for if parameter sync is needed due to updates since last sync.
}
Device Specific Parameters:{
update_flag BOOLEAN //quick reference for if parameter sync is needed due to updates since last sync.
}
}
Device Parameters Table:{
local_wifi_ssid VARCHAR(256)
local_ssid_pw VARCHAR(256)
head_commit_freq INTEGER
analyst_port INTEGER
analyst_hostname VARCHAR(256)
analyst_ssid VARCHAR(256)
analyst_pass VARCHAR(256)
cloud_hostname VARCHAR(256)
cloud_url_base VARCHAR(256)
cloud_port INTEGER
cloud_upload_freq INTEGER
du_pairing_limit INTEGER
display_pair_mac HEX(12)
display_pair_mac_pw VARCHAR
controller_pair_mac HEX(12)
controller_pair_mac_pw VARCHAR
analyst_sync_res INTEGER
cloud_sync_res INTEGER
time_zone TIME
bucket_reset_time TIME
bucket_multiplier INTEGER
transition_table_code INTEGER
L-transition INTEGER
}
Energy Level Transition Tables{
id INTEGER
L-transition INTEGER
transition-value INTEGER
}
Power Level Transition Tables{
id INTEGER
L-transition INTEGER
transition-value INTEGER
}
Color Transition Lookup Tables{
id INTEGER
color_transition_table_code INTEGER
transitions INT ARRAY(15036)
}
Changed Settings Table:{ // (if update_flag is set on either SERVER or DEVICE, compare timestamps and sync using values with latest timestamp)
local_wifi_ssid TIMESTAMP
local_ssid_pw TIMESTAMP
head_commit_freq TIMESTAMP
analyst_port TIMESTAMP
analyst_hostname TIMESTAMP
analyst_ssid TIMESTAMP
analyst_pass TIMESTAMP
cloud_hostname TIMESTAMP
cloud_url_base TIMESTAMP
cloud_port TIMESTAMP
cloud_upload_freq TIMESTAMP
du_pairing_limit TIMESTAMP
analyst_sync_res TIMESTAMP
cloud_sync_res TIMESTAMP
time_zone TIMESTAMP
bucket_reset_time TIMESTAMP
bucket_multiplier TIMESTAMP
transition_table_code TIMESTAMP
L-transition TIMESTAMP
color_transition_table_code TIMESTAMP
}
Additional features to consider after above is working:{
Energy and Power transition values.{
We may develop an algorithmically driven adjustment curve to help increase the information value of the color changes.
{
Disaggregation and Classification{
Appliance Identification Table{
This could be very useful once disaggregation is implemented. This data should be mirrored in the Cloud and on SD storage.
Unique_POWERSIGNATURE_ID INTEGER(10-bit should be enough) // we'll need to balance how many signatures we'll want to keep track of with how many SD sectors we want to designate for this table.
Assignable_Appliance_Name STRING(ID# used until Name assigned)
Manually Identified or Statistically assigned Name BOOLEAN
Signature_Vector_Space MATRIX //statistically acceptible indenfication space for for new signatures to be compared against.
Quality_Rating_of_V-Space INTEGER (4-bit) //Improves over time as SERVER gians more confidence for each appliance. Helps determine boundary for whether a detected power change is assigned a new ID or not. Also, will be used to recycle Signature_ID values if we run out of space in the predetermined table size. If we run out of room, higher confidence ratings will replace the lowest confidence ratings.
}
Signature Event Table{
//This might be better inline with the energy data, adding signature ID after any identified data timestamp. Not sure if that's a simple solution considering events that span across SD storage sectors.
Timestamp (ID) TIMESTAMP
Unique_POWERSIGNATURE_ID INTEGER
//This table would be cleaned to match the locally recorded data. If local data only holds 1 year, timestamps in this table should directly match what's stored locally.
}
}
}