建物内に設置した設備の機種情報の作成
建物に設置している多様なものは、部位(BuildingComponent)、設備(Device)、および機種(DeviceModel)に分けて登録します。本ケーススタディは部位の登録は無いと仮定しているので、設備と機種の登録となります。まずは、機種情報の登録から見てみましょう。以下、想定するcsvファイルとAttributeとの関係を示します。
■機種情報 (DeviceModel)
Attribute名 | 補足 | |
---|---|---|
メーカ名 | id, manufacturerName | idはメーカの法人番号と型番から生成します。メーカの法人番号は、既に作成したOrganizationのjsonファイルをツールに指定する子で、法人名から変換します。manufacturerNameはメーカ名をそのまま使用します |
型番 | id, modelName | 前記の様にidの作成に使用します。また、型番自身もmodelNameにそのまま利用します |
ブランド名 | brandName | そのまま使用します |
種別 | category | そのまま使用します |
色 | color | そのまま使用します |
説明書 | documentation | そのまま使用します |
耐用年数 | serviceLife | そのまま使用します |
想定FMシステムが出力するcsvファイルの内容は以下の通りとしました。
このデータをcsvファイルとして書き込みます。その際、”ctoj”の指定通り、utf-8で書き込みます。
次に、このcsvファイルをJSON形式に変換しますが、拡張JSON Schemaは例えば以下となります。詳細はツールのwebサイトをご覧ください。
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://ppp-database.org/spec/datamodel/DeviceModel/",
"type": "object",
"properties": {
"id": {
"type": "string",
"dataSource": [
{
"dataSource": {"csvAttr": "メーカ名"},
"entityType": "Organization",
"searchAttr": "name",
"valueAttr": "identificationGroup.identification",
"identificationType": "法人番号",
"prefix": "urn:ngsi-ld:DeviceModel:JP"
},
{
"csvAttr": "型番",
"prefix": "-"
}
]
},
"type": {"const": "DeviceModel"},
"alternateName": {
"type": "object",
"properties": {
"type": {"const": "Text"},
"value": {"type": "string"}
},
"required": ["type", "value"]
--以下略--
これをctojツールに入力すると、以下の様にFMシステムの出力を共通データ仕様に形式変換した結果が得られます。
[
{
"id": "urn:ngsi-ld:DeviceModel:JP7010001008844-RAS-DM28KE8",
"type": "DeviceModel",
"brandName": {
"type": "Text",
"value": "しろくまくん"
},
"category": {
"type": "Text",
"value": "空調機"
},
"color": {
"type": "Text",
"value": "白"
},
"documentation": {
"type": "URL",
"value": "https://kadenfan.hitachi.co.jp/support/raj/item/docs/ras_dm22ke8_b_tori.pdf"
},
"manufacturerName": {
"type": "Text",
"value": "日立製作所"
},
"modelName": {
"type": "Text",
"value": "RAS-DM28KE8"
},
"serviceLife": {
"type": "Number",
--以下略--
建物内に設置した設備情報の作成
静的情報の最後は設備(Device)情報です。以下、想定するcsvファイルとAttributeとの関係を示します。
■設備情報 (Device)
Attribute名 | 補足 | |
---|---|---|
製造番号 | id | idは製造番号の文字列の前に”urn:ngsi-ld:Device:”を付加することで生成します。 |
設置日 | dateInstalled | 標準形式(“YYYY-MM–DD”)に変換して利用します |
製造日 | dateManufactured | 標準形式(“YYYY-MM–DD”)に変換して利用します |
設備名 | name | そのまま使用します |
購入価格 | pricePurchased | そのまま使用します |
型番 | refDeviceModel | DeviceModelを検索する事で、型番からidに変換して使用します |
施設ID | refBuilding | Buildingを検索する事で、施設IDからidに変換して使用します |
場所大分類, 場所中分類, 場所小分類 | zoneInstalled | 3要素のリストとして仕様します |
場所補足 | zoneRemarks | そのまま使用します |
想定FMシステムが出力するcsvファイルの内容は以下の通りとしました。
このデータをcsvファイルとして書き込みます。その際、”ctoj”の指定通り、utf-8で書き込みます。
次に、このcsvファイルをJSON形式に変換しますが、拡張JSON Schemaは例えば以下となります。詳細はツールのwebサイトをご覧ください。
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://ppp-database.org/spec/datamodel/Device/",
"type": "object",
"properties": {
"id": {
"type": "string",
"dataSource": {
"csvAttr": "製造番号",
"prefix":"urn:ngsi-ld:Device:"
}
},
"type": {"const": "Device"},
"areaServed": {
"type": "object",
"properties": {
"type": {"const": "Text"},
"value": {"type": "string"}
},
"required": ["type", "value"]
},
"category": {
"type": "object",
"properties": {
"type": {"const": "Text"},
"value": {"type": "string"}
},
"required": ["type", "value"]
},
"controlledAsset": {
--以下略--
これをctojツールに入力すると、以下の様にFMシステムの出力を共通データ仕様に形式変換した結果が得られます。
[
{
"id": "urn:ngsi-ld:Device:RAS-DM28KE801234567XYZ",
"type": "Device",
"dateInstalled": {
"type": "Date",
"value": "2017-08-27"
},
"dateManufactured": {
"type": "Date",
"value": "2017-06-21"
},
"name": {
"type": "Text",
"value": "吉浦1F-支所空調1"
},
"pricePurchased": {
"type": "Number",
"value": 115000
},
"refDeviceModel": {
"type": "Relationship",
"value": "urn:ngsi-ld:DeviceModel:JP7010001008844-RAS-DM28KE8"
},
"refBuilding": {
"type": "Relationship",
"value": "urn:ngsi-ld:Building:JP9000020342025-01234567"
},
"serialNumber": {
"type": "Text",
--以下略--
これで、本ケーススタディで想定した静的データは全て変換できました。