diff --git a/Pipfile b/Pipfile
index aee52b5..ca373d4 100644
--- a/Pipfile
+++ b/Pipfile
@@ -10,6 +10,7 @@ pipenv = "*"
atomicwrites = "*"
Jinja2 = "*"
gitpython = "*"
+markdown = "*"
[packages]
click = "*"
diff --git a/Pipfile.lock b/Pipfile.lock
index 7330e59..d7d2e82 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
- "sha256": "f34ce04946b1b6bb361438828b7e6c2526254ae7bdd864264208e94bf9c3ed34"
+ "sha256": "31c4a48ffe3391b682aa58de88db95a4e11070a439c5616ee9291be2d9e5088d"
},
"pipfile-spec": 6,
"requires": {},
@@ -97,10 +97,10 @@
},
"six": {
"hashes": [
- "sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a",
- "sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c"
+ "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
+ "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
],
- "version": "==1.14.0"
+ "version": "==1.15.0"
},
"tk205": {
"editable": true,
@@ -117,25 +117,25 @@
"develop": {
"appdirs": {
"hashes": [
- "sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92",
- "sha256:d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e"
+ "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41",
+ "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"
],
- "version": "==1.4.3"
+ "version": "==1.4.4"
},
"astroid": {
"hashes": [
- "sha256:29fa5d46a2404d01c834fcb802a3943685f1fc538eb2a02a161349f5505ac196",
- "sha256:2fecea42b20abb1922ed65c7b5be27edfba97211b04b2b6abc6a43549a024ea6"
+ "sha256:4c17cea3e592c21b6e222f673868961bad77e1f985cb1694ed077475a89229c1",
+ "sha256:d8506842a3faf734b81599c8b98dcc423de863adcc1999248480b18bd31a0f38"
],
- "version": "==2.4.0"
+ "version": "==2.4.1"
},
"atomicwrites": {
"hashes": [
- "sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4",
- "sha256:75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6"
+ "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197",
+ "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"
],
"index": "pypi",
- "version": "==1.3.0"
+ "version": "==1.4.0"
},
"attrs": {
"hashes": [
@@ -166,18 +166,18 @@
},
"gitdb": {
"hashes": [
- "sha256:6f0ecd46f99bb4874e5678d628c3a198e2b4ef38daea2756a2bfd8df7dd5c1a5",
- "sha256:ba1132c0912e8c917aa8aa990bee26315064c7b7f171ceaaac0afeb1dc656c6a"
+ "sha256:91f36bfb1ab7949b3b40e23736db18231bf7593edada2ba5c3a174a7b23657ac",
+ "sha256:c9e1f2d0db7ddb9a704c2a0217be31214e91a4fe1dea1efad19ae42ba0c285c9"
],
- "version": "==4.0.4"
+ "version": "==4.0.5"
},
"gitpython": {
"hashes": [
- "sha256:6d4f10e2aaad1864bb0f17ec06a2c2831534140e5883c350d58b4e85189dab74",
- "sha256:71b8dad7409efbdae4930f2b0b646aaeccce292484ffa0bc74f1195582578b3d"
+ "sha256:864a47472548f3ba716ca202e034c1900f197c0fb3a08f641c20c3cafd15ed94",
+ "sha256:da3b2cf819974789da34f95ac218ef99f515a928685db141327c09b73dd69c09"
],
"index": "pypi",
- "version": "==3.1.1"
+ "version": "==3.1.2"
},
"importlib-metadata": {
"hashes": [
@@ -228,6 +228,14 @@
],
"version": "==1.4.3"
},
+ "markdown": {
+ "hashes": [
+ "sha256:1fafe3f1ecabfb514a5285fca634a53c1b32a81cb0feb154264d55bf2ff22c17",
+ "sha256:c467cd6233885534bf0fe96e62e3cf46cfc1605112356c4f9981512b8174de59"
+ ],
+ "index": "pypi",
+ "version": "==3.2.2"
+ },
"markupsafe": {
"hashes": [
"sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473",
@@ -275,17 +283,17 @@
},
"more-itertools": {
"hashes": [
- "sha256:5dd8bcf33e5f9513ffa06d5ad33d78f31e1931ac9a18f33d37e77a180d393a7c",
- "sha256:b1ddb932186d8a6ac451e1d95844b382f55e12686d51ca0c68b6f61f2ab7a507"
+ "sha256:558bb897a2232f5e4f8e2399089e35aecb746e1f9191b6584a151647e89267be",
+ "sha256:7818f596b1e87be009031c7653d01acc46ed422e6656b394b0f765ce66ed4982"
],
- "version": "==8.2.0"
+ "version": "==8.3.0"
},
"packaging": {
"hashes": [
- "sha256:3c292b474fda1671ec57d46d739d072bfd495a4f51ad01a055121d81e952b7a3",
- "sha256:82f77b9bee21c1bafbf35a84905d604d5d1223801d639cf3ed140bd651c08752"
+ "sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8",
+ "sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"
],
- "version": "==20.3"
+ "version": "==20.4"
},
"pipenv": {
"hashes": [
@@ -312,11 +320,11 @@
},
"pylint": {
"hashes": [
- "sha256:588e114e3f9a1630428c35b7dd1c82c1c93e1b0e78ee312ae4724c5e1a1e0245",
- "sha256:bd556ba95a4cf55a1fc0004c00cf4560b1e70598a54a74c6904d933c8f3bd5a8"
+ "sha256:b95e31850f3af163c2283ed40432f053acbc8fc6eba6a069cb518d9dbf71848c",
+ "sha256:dd506acce0427e9e08fb87274bcaa953d38b50a58207170dbf5b36cf3e16957b"
],
"index": "pypi",
- "version": "==2.5.0"
+ "version": "==2.5.2"
},
"pyparsing": {
"hashes": [
@@ -327,32 +335,32 @@
},
"pytest": {
"hashes": [
- "sha256:0e5b30f5cb04e887b91b1ee519fa3d89049595f428c1db76e73bd7f17b09b172",
- "sha256:84dde37075b8805f3d1f392cc47e38a0e59518fb46a431cfdaf7cf1ce805f970"
+ "sha256:95c710d0a72d91c13fae35dce195633c929c3792f54125919847fdcdf7caa0d3",
+ "sha256:eb2b5e935f6a019317e455b6da83dd8650ac9ffd2ee73a7b657a30873d67a698"
],
"index": "pypi",
- "version": "==5.4.1"
+ "version": "==5.4.2"
},
"six": {
"hashes": [
- "sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a",
- "sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c"
+ "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
+ "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
],
- "version": "==1.14.0"
+ "version": "==1.15.0"
},
"smmap": {
"hashes": [
- "sha256:52ea78b3e708d2c2b0cfe93b6fc3fbeec53db913345c26be6ed84c11ed8bebc1",
- "sha256:b46d3fc69ba5f367df96d91f8271e8ad667a198d5a28e215a6c3d9acd133a911"
+ "sha256:54c44c197c819d5ef1991799a7e30b662d1e520f2ac75c9efbeb54a742214cf4",
+ "sha256:9c98bbd1f9786d22f14b3d4126894d56befb835ec90cef151af566c7e19b5d24"
],
- "version": "==3.0.2"
+ "version": "==3.0.4"
},
"toml": {
"hashes": [
- "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c",
- "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e"
+ "sha256:926b612be1e5ce0634a2ca03470f95169cf16f939018233a670519cb4ac58b0f",
+ "sha256:bda89d5935c2eac546d648028b9901107a595863cb36bae0c73ac804a9b4ce88"
],
- "version": "==0.10.0"
+ "version": "==0.10.1"
},
"typed-ast": {
"hashes": [
@@ -383,10 +391,10 @@
},
"virtualenv": {
"hashes": [
- "sha256:5021396e8f03d0d002a770da90e31e61159684db2859d0ba4850fbea752aa675",
- "sha256:ac53ade75ca189bc97b6c1d9ec0f1a50efe33cbf178ae09452dcd9fd309013c1"
+ "sha256:a116629d4e7f4d03433b8afa27f43deba09d48bc48f5ecefa4f015a178efb6cf",
+ "sha256:a730548b27366c5e6cbdf6f97406d861cccece2e22275e8e1a757aeff5e00c70"
],
- "version": "==20.0.18"
+ "version": "==20.0.21"
},
"virtualenv-clone": {
"hashes": [
diff --git a/schema-205 b/schema-205
index 19144ca..84a8dca 160000
--- a/schema-205
+++ b/schema-205
@@ -1 +1 @@
-Subproject commit 19144ca53dbac27a8243df1b71d778103bb03bb0
+Subproject commit 84a8dca63b6f3a27beec8ecd08cee40cb311054b
diff --git a/test/test_tk205_unit.py b/test/test_tk205_unit.py
index e231bcc..82c7e10 100644
--- a/test/test_tk205_unit.py
+++ b/test/test_tk205_unit.py
@@ -48,14 +48,14 @@ def test_get_schema_node():
assert('ASHRAE 205' not in node['description'])
def test_get_representation_node_and_rs_selections():
- rep = tk205.load('schema-205/examples/RS0002/RS0002SimpleExampleFile.a205.json')
+ rep = tk205.load('schema-205/examples/RS0002/Unitary-Constant-Efficiency.RS0002.a205.json')
node, rs_selections = tk205.util.get_representation_node_and_rs_selections(rep, ['RS_instance','performance','DX_system_representation','RS_instance','performance','performance_map_cooling','grid_variables'])
assert(len(node) == 6)
assert(rs_selections[0] == tk205.util.get_rs_index('RS0002'))
assert(rs_selections[3] == tk205.util.get_rs_index('RS0004'))
def test_create_grid_set():
- rep = tk205.load('schema-205/examples/RS0004/RS0004SimpleExampleFile.a205.json')
+ rep = tk205.load('schema-205/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json')
schema = tk205.A205Schema(os.path.join(os.path.dirname(__file__),'..','schema-205',"schema","ASHRAE205.schema.json"))
grid_set = schema.create_grid_set(rep, ['RS_instance','performance','performance_map_cooling','grid_variables'])
table_length = 1
@@ -94,7 +94,7 @@ def test_get_grid_variable_order():
assert(order == grid_vars_names)
def test_process_grid_set():
- rep = tk205.load('schema-205/examples/RS0004/RS0004SimpleExampleFile.a205.json')
+ rep = tk205.load('schema-205/examples/RS0004/DX-Constant-Efficiency.RS0004.a205.json')
grid_vars = rep['RS_instance']['performance']['performance_map_cooling']['grid_variables']
schema = tk205.A205Schema(os.path.join(os.path.dirname(__file__),'..','schema-205',"schema","ASHRAE205.schema.json"))
grid_set = schema.create_grid_set(rep, ['RS_instance','performance','performance_map_cooling','grid_variables'])
diff --git a/web/markdown-content/about.md b/web/markdown-content/about.md
new file mode 100644
index 0000000..7fffbea
--- /dev/null
+++ b/web/markdown-content/about.md
@@ -0,0 +1,33 @@
+# ASHRAE Standard 205P: Representation of Performance Data for HVAC&R and Other Facility Equipment
+
+## Purpose
+
+To facilitate automated sharing of equipment performance characteristics by defining data models and data serialization formats.
+
+## Scope
+
+This standard applies to performance data for any HVAC&R or other facility system, equipment, or component.
+
+## About ASHRAE Standard 205P
+
+ASHRAE Standard 205P defines common data models and serialization formats for facility equipment performance data needed for engineering applications such as energy simulation. The formats allow automated exchange among data sources (manufacturers), simulation models, and other engineering applications. The formats and procedures specified in the standard are developed by SPC (Standard Project Committee) 205 under ASHRAE and ANSI consensus processes. SPC-205 membership includes equipment manufacturers, application software developers, and engineering practitioners.
+
+Review copies of Standard 205P are available until July 29, 2020 at [ASHRAE’s online review portal](https://osr.ashrae.org/default.aspx).
+
+Standard 205 defines the term *representation* to mean a Concise Binary Object Representation (CBOR) file conforming to a JSON schema defined by a human-readable (text) document called a *representation specification*. Representation specifications are included in Standard 205P appended as an open-ended set.
+
+Standard 205 structure and application can be visualized as follows:
+
+
+
+This web site hosts supporting material for each representation specification, including:
+
+- [***JSON schema***](schema.html) files are the software-readable equivalent of the data model portion of each representation specification. The files are a normative portion of Standard 205.
+
+- [***Examples files***](examples.html) provide illustrative examples of each representation. Several file formats are provided.
+
+- [***XLSX templates***](templates.html) can be downloaded, populated by hand, and then process with [Toolkit 205](tk205.html) procedures to convert to a standard CBOR representation.
+
+All representations have common structures and elements. An open source project, [open205](https://github.com/open205), is underway to provide software components for use by data publishers and application developers.
+
+SPC 205 is developing representation specifications for additional equipment types. These will be published in future revisions of the standard.
\ No newline at end of file
diff --git a/web/markdown-content/examples.md b/web/markdown-content/examples.md
new file mode 100644
index 0000000..6847429
--- /dev/null
+++ b/web/markdown-content/examples.md
@@ -0,0 +1,8 @@
+Examples provided here are for illustrative purposes only. While CBOR is the official representation format defined by ASHRAE Standard 205P, it is sometime convenient to view and edit representation data in other formats. All other file formats must be translated to CBOR for use in application software. Routines for converting between the file formats are included in [Toolkit 205](tk205.html).
+
+Each example represntation is provided in four formats:
+
+- **[CBOR](https://cbor.io/):** CBOR is machine-readable, but not human-readable.
+- **[XLSX](https://wiki.fileformat.com/spreadsheet/xlsx/):** Convenient spreadsheet format for viewing and editing representation data (see [XLSX Templates](templates.html) for empty examples for creating new representations).
+- **[JSON](https://www.json.org/):** A common, human-and-machine-readable data exchange format.
+- **[YAML](https://yaml.org/):** An alterntaive common, human-and-machine-readable data exchange format.
\ No newline at end of file
diff --git a/web/markdown-content/schema.md b/web/markdown-content/schema.md
new file mode 100644
index 0000000..11e7bf2
--- /dev/null
+++ b/web/markdown-content/schema.md
@@ -0,0 +1 @@
+***Informative note:*** The schema is maintained in the [schema-205](https://github.com/open205/schema-205) GitHub repository.
\ No newline at end of file
diff --git a/web/markdown-content/templates.md b/web/markdown-content/templates.md
new file mode 100644
index 0000000..c87d51f
--- /dev/null
+++ b/web/markdown-content/templates.md
@@ -0,0 +1 @@
+Templates set up in the XLSX format for users to generate 205 compliant data. These templates will need to be translated into CBOR, but can be validated directly using [Toolkit 205](tk205.html).
\ No newline at end of file
diff --git a/web/markdown-content/tk205.md b/web/markdown-content/tk205.md
new file mode 100644
index 0000000..7872bee
--- /dev/null
+++ b/web/markdown-content/tk205.md
@@ -0,0 +1 @@
+A software toolkit to facilitate the adoption of the ASHRAE Standard 205P data exchange specification.
\ No newline at end of file
diff --git a/web/templates/about_template.html b/web/templates/about_template.html
index 31c1d13..fbc184d 100644
--- a/web/templates/about_template.html
+++ b/web/templates/about_template.html
@@ -4,14 +4,7 @@
-
ASHRAE Standard 205P
-
-
Representation of Performance Data for HVAC&R and Other Facility Equipment
-
Purpose
-
To facilitate automated sharing of equipment performance characteristics by defining data models and data serialization formats.
-
Scope
-
This standard applies to performance data for any HVAC&R or other facility system, equipment, or component.
-
+ {{markdown}}
diff --git a/web/templates/examples_template.html b/web/templates/examples_template.html
index 65c8708..274f788 100644
--- a/web/templates/examples_template.html
+++ b/web/templates/examples_template.html
@@ -6,58 +6,30 @@
{{headline}}
+ {{markdown}}
+
- {% for key, item in content.items() %}
+ {% for RS in content %}
-
- {{key}}
+ {{RS}}: {{content[RS]['title']}}
+ {% for file in content[RS]['files'] %}
-
+ {% endfor %}
{% endfor %}
diff --git a/web/templates/schema_template.html b/web/templates/schema_template.html
index 1cf5fd1..23a4b4d 100644
--- a/web/templates/schema_template.html
+++ b/web/templates/schema_template.html
@@ -7,8 +7,9 @@
{{headline}}
-
- {% for key, item in content.items() %}
+ {{markdown}}
+
+ {% for key, item in content.items() %}
{{item['title']}}
diff --git a/web/templates/templates_template.html b/web/templates/templates_template.html
index f2b8341..98ef2c7 100644
--- a/web/templates/templates_template.html
+++ b/web/templates/templates_template.html
@@ -6,6 +6,8 @@
{{headline}}
+ {{markdown}}
+
{% for key, rs_item in content.items() %}
-
@@ -29,7 +31,7 @@
{{item['description']}}
-
+