{ "@context": "dtmi:dtdl:context;2", "@id": "dtmi:com:example:Thermostat;1", "@type": "Interface", "displayName": "Thermostat", "description": "Reports current temperature and provides desired temperature control.", "contents": [ { "@type": [ "Telemetry", "Temperature" ], "name": "temperature", "displayName" : "Temperature", "description" : "Temperature in degrees Celsius.", "schema": "double", "unit": "degreeCelsius" }, { "@type": [ "Property", "Temperature" ], "name": "targetTemperature", "schema": "double", "displayName": "Target Temperature", "description": "Allows to remotely specify the desired target temperature.", "unit" : "degreeCelsius", "writable": true }, { "@type": [ "Property", "Temperature" ], "name": "maxTempSinceLastReboot", "schema": "double", "unit" : "degreeCelsius", "displayName": "Max temperature since last reboot.", "description": "Returns the max temperature since last device reboot." }, { "@type": "Command", "name": "getMaxMinReport", "displayName": "Get Max-Min report.", "description": "This command returns the max, min and average temperature from the specified time to the current time.", "request": { "name": "since", "displayName": "Since", "description": "Period to return the max-min report.", "schema": "dateTime" }, "response": { "name" : "tempReport", "displayName": "Temperature Report", "schema": { "@type": "Object", "fields": [ { "name": "maxTemp", "displayName": "Max temperature", "schema": "double" }, { "name": "minTemp", "displayName": "Min temperature", "schema": "double" }, { "name" : "avgTemp", "displayName": "Average Temperature", "schema": "double" }, { "name" : "startTime", "displayName": "Start Time", "schema": "dateTime" }, { "name" : "endTime", "displayName": "End Time", "schema": "dateTime" } ] } } } ] }