Description
Hello all,
We are working closely with this data model and it is very difficult for us to deal with the value attribute, maybe it is a good moment to split the data model into more specific structures.
Allow me to make a brief description of my proposal.
Current data model representation example:
Device Datamodel:
{
"id": "device-9845A",
"type": "Device",
"category": ["sensor"],
"controlledProperty": ["humidity","temperature"],
"controlledAsset": ["wastecontainer-Osuna-100"],
"ipAddress": ["192.14.56.78"],
"mcc": "214",
"mnc": "07",
"batteryLevel": 0.75,
"serialNumber": "9845A",
"refDeviceModel": "myDevice-wastecontainer-sensor-345",
"value": "h=65;t=21.2",
"deviceState": "ok",
"dateFirstUsed": "2014-09-11T11:00:00Z",
"owner": ["http://person.org/leon"]
}
Proposed data model representation example:
Device Datamodel
{
"id": "device-9845A",
"type": "Device",
"controlledAsset": ["wastecontainer-Osuna-100"],
"ipAddress": ["192.14.56.78"],
"mcc": "214",
"mnc": "07",
"batteryLevel": 0.75,
"serialNumber": "9845A",
"refDeviceModel": "myDevice-wastecontainer-sensor-345",
"deviceState": "ok",
"dateFirstUsed": "2014-09-11T11:00:00Z",
"owner": ["http://person.org/leon"]
}
Sensor Datamodel
{
"id": "temperature-9845A",
"refDevice": "device-9845A",
"characteristic": ["readable"],
"target": "temperature",
"type": "Sensor",
"metric": "ºC",
"value": "28.5"
}
{
"id": "humidity-9845A",
"refDevice": "device-9845A",
"characteristic": ["readable"],
"target": "humidity",
"type": "Sensor",
"metric": "%",
"value": "68"
}
Going a little further it would interesting even extract the communication protocol, leaving to the device data model the only responsibility of representing a device itself.
Best regards and thanks for your contributions. 👍