Wireless Thermostat LoRaWAN

Get device data

Request URL:
POST /provider/fetch
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number" : "{Serial Number}"
}
Response:
{
"provider": {
"joinRequestCount": 23,
"activeFrom": "2023-01-30 15:44:21",
"application": "mc-devices-testing",
"batteryVoltage": 3.18,
"frameCount": 53,
"lastActive": "2023-02-01 14:01:24",
"network_provider": "the_things_industries",
"relativeHumidity": 43.75,
"rssi": -73,
"sensorTemperature": 25.9,
"spf": "7",
"uplinkType": "00",
"targetTemperature": 20,
"thermistorProperlyConnected": false,
"deviceVersions": {
"hardware": 19,
"software": 17
},
"displayRefreshPeriod": 12,
"joinRetryPeriod": 10,
"keepAliveTime": 1,
"sendTargetTempDelay": 10,
"watchDogParams": {
"wdpC": 17,
"wdpUc": 24
},
"childLock": false,
"heatingStatus": 1,
"mac": "70B3D52DD8000001",
"online": true,
"scheduleInfo": {
"inSchedule": false,
"mainTarget": null,
"inPriority": false
}
},
"_links": {
"self": {
"href": "/v1/provider/fetch"
}
}
}

Set KeepAlive Time

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "set_keepalive_time",
"time" : 3 // in minutes
}
Response:
{
"provider": {
"status": "pending",
"_id": "60366d3cbc2b0345b984da00",
"commandName": "SetKeepAlive",
"commandParams": {
"time": 3
},
"deviceId": "70B************4",
"createdAt": "2021-02-24T15:14:04.444Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get KeepAlive Time

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "get_keepalive_time"
}
Response:
{
"provider": {
"status": "pending",
"_id": "6036b85b25304f575e082397",
"commandName": "GetKeepAliveTime",
"commandParams": [],
"deviceId": "70B************4",
"createdAt": "2021-02-24T20:34:35.934Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get Pending Commands

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{WT Serial Number}”,
"command" : "get_pending_commands"
}
Response:
{
"provider": [
{
"_id": "652d43a7c4ff3228464dfb08",
"deviceId": "70B**********8B",
"commandName": "GetKeepAliveTime",
"commandParams": [],
"status": "queued",
"createdAt": "2023-10-16T14:07:35.872Z",
"__v": 0
}
],
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get Device Version

Request URL:
POST /provider/fetch
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number" : "{Serial Number}",
"command" : "get_device_version"
}
Response:
{
"provider": {
"status": "pending",
"_id": "603672f5bc2b0345b984da43",
"commandName": "GetDeviceVersion",
"commandParams": [],
"deviceId": "70B************4",
"createdAt": "2021-02-24T15:38:29.537Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Set Join Retry Period

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "set_join_retry_period",
"period" : 2, //minutes, cannot be 0
}
Response:
{
"provider": {
"status": "pending",
"_id": "603675a7bc2b0345b984da63",
"commandName": "SetJoinRetryPeriod",
"commandParams": {
"period": 2
},
"deviceId": "70B************4",
"createdAt": "2021-02-24T15:49:59.095Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get Join Retry Period

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "get_join_retry_period"
}
Response:
{
"provider": {
"status": "pending",
"_id": "6036caaf994ab35c7c701bbe",
"commandName": "GetJoinRetryPeriod",
"commandParams": [],
"deviceId": "70B************4",
"createdAt": "2021-02-24T21:52:47.045Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}
Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "set_uplink_type",
"type" : "01" // string, "00" - unconfirmed, "01" - confirmed
}
Response:
{
"provider": {
"status": "pending",
"_id": "6036bf46ed10eb592440aea5",
"commandName": "SetUplinkType",
"commandParams": {
"type": "01"
},
"deviceId": "70B************4",
"createdAt": "2021-02-24T21:04:06.611Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}
Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "get_uplink_type"
}
Response:
{
"provider": {
"status": "pending",
"_id": "6036be66ed10eb592440ae9b",
"commandName": "GetUplinkType",
"commandParams": [],
"deviceId": "70B************4",
"createdAt": "2021-02-24T21:00:22.088Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Set Watch Dog Params

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "set_watch_dog_params",
"confirmed_uplinks": 17, // in minutes, if it is disabled "0"
"unconfirmed_uplinks":24, // in hours, if it is disabled "0"
}
Response:
{
"provider": {
"status": "pending",
"_id": "6035505708f81715fffd19c0",
"commandName": "SetWatchDogParams",
"commandParams": {
"periodConfirmenUplinks": 17,
"periodUnconfirmenUplinks": 24,
"deviceKeepAlive": 3
},
"deviceId": "36*************8",
"createdAt": "2021-02-23T18:58:31.945Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get Watch Dog Params

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "get_watch_dog_params"
}
Response:
{
"provider": {
"status": "pending",
"_id": "6036ce5bf6c1b85f22d280cc",
"commandName": "GetWatchDogParams",
"commandParams": [],
"deviceId": "36*************8",
"createdAt": "2021-02-24T22:08:27.116Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Set Thermostat Target Temperature

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "set_wireless_thermostat_target",
"temp" : 20
}
Response:
{
"provider": {
"status": "pending",
"_id": "63da71643e482a0027bc77b1",
"commandName": "SetWirelessThermostatTarget",
"commandParams": {
"targetTemperature": 20
},
"deviceId": "70************1",
"createdAt": "2023-02-01T14:04:20.907Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Set Child Lock

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "child_lock",
"enabled" : true, // true if we want to enable it or false if we want to
disable it
}
Response:
{
"provider": {
"status": "pending",
"_id": "60353b9308f81715fffd18fb",
"commandName": "SetChildLock",
"commandParams": {
"enabled": true
},
"deviceId": "70*************E",
"createdAt": "2021-02-23T17:29:55.911Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get Child Lock

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "get_child_lock"
}
Response:
{
"provider": {
"status": "pending",
"_id": "63da7f5a3e482a0027bc7c09",
"commandName": "GetChildLock",
"commandParams": [],
"deviceId": "70*************E",
"createdAt": "2023-02-01T15:03:54.453Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Set Heating status

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number" : "{Serial Number}",
"command" : "set_heating_status",
"status": 0 // 1-on heating status, 0-off
}
Response:
{
"provider": {
"status": "pending",
"_id": "63da80cd3e482a0027bc7c63",
"commandName": "SetHeatingStatus",
"commandParams": {
"status": 0
},
"deviceId": "70*************E",
"createdAt": "2023-02-01T15:10:05.324Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get Heating status

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "get_heating_status"
}
Response:
{
"provider": {
"status": "pending",
"_id": "63da7f5a3e482a0027bc7c09",
"commandName": "GetHeatingStatus",
"commandParams": [],
"deviceId": "70*************E",
"createdAt": "2023-02-01T15:03:54.453Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Set Display refresh period

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number" : "{Serial Number}",
"command" : "set_display_refresh_period",
"period": 10 // in hours. The default is 10hours. range(1hour – 24hours).
}
Response:
{
"provider": {
"status": "pending",
"_id": "63da80cd3e482a0027bc7c63",
"commandName": "SetDisplayRefreshPeriod",
"commandParams": {
"period": 10
},
"deviceId": "70*************E",
"createdAt": "2023-02-01T15:10:05.324Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get Display refresh period

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "get_display_refresh_period"
}
Response:
{
"provider": {
"status": "pending",
"_id": "63da7f5a3e482a0027bc7c09",
"commandName": "GetDisplayRefreshPeriod",
"commandParams": [],
"deviceId": "70*************E",
"createdAt": "2023-02-01T15:03:54.453Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Set Target Send Delay

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number" : "{Serial Number}",
"command" : "set_target_send_delay",
"time": 10// Time delay in seconds. The default value is 10sec (0sec. – 255sec).
}
Response:
{
"provider": {
"status": "pending",
"_id": "63da80cd3e482a0027bc7c63",
"commandName": "SetTargetSendDelay",
"commandParams": {
"time": 10
},
"deviceId": "70*************E",
"createdAt": "2023-02-01T15:10:05.324Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get Target Send Delay

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "get_target_send_delay"
}
Response:
{
"provider": {
"status": "pending",
"_id": "63da7f5a3e482a0027bc7c09",
"commandName": "getTargetSendDelay",
"commandParams": [],
"deviceId": "70*************E",
"createdAt": "2023-02-01T15:03:54.453Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Set Min/Max Range

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Vicki Serial Number}”,
"command" : "set_range",
"min" : 10, // the minimum value* for the device range
"max" : 20 // the maximum value* for the device range
}
*Note that the min/max values should be between 5 and 30!
Response:
{
"provider": {
"status": "pending",
"_id": "60353c9e08f81715fffd1907",
"commandName": "SetTemperatureRange",
"commandParams": {
"min": 10,
"max": 20
},
"deviceId": "70B3D52DD300015E",
"createdAt": "2021-02-23T17:34:22.884Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get Min/Max Range

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Vicki Serial Number}”,
"command" : "get_range"
}
Response:
{
"provider": {
"min": 10,
"max": 20
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Set Min/Max Range

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "set_range",
"min" : 10, // the minimum value* for the device range
"max" : 20 // the maximum value* for the device range
}
*Note that the min/max values should be between 5 and 30!
Response:
{
"provider": {
"status": "pending",
"_id": "60353c9e08f81715fffd1907",
"commandName": "SetTemperatureRange",
"commandParams": {
"min": 10,
"max": 20
},
"deviceId": "70B3D52DD300015E",
"createdAt": "2021-02-23T17:34:22.884Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get Min/Max Range

Request URL:
POST /provider/send
Headers:
Content-Type: application/json
Authorization: Bearer {access_token}
Body:
{
"serial_number": “{Serial Number}”,
"command" : "get_range"
}
Response:
{
"provider": {
"min": 10,
"max": 20
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Set automatic heating status mode

*In automatic mode, the heating state is on when the target temperature is above the measured temperature.
Body:
{
"serial_number": “{Serial Number}”,
"command" : "set_automatic_heating_status",
"state" : 1 // possible values 1/0
}

Get automatic heating status mode

Body:
{
"serial_number": “{Serial Number}”,
"command" : "get_automatic_heating_status"
}

Set device sensor mode

*In sensor mode, the device only displays measurements from available sensors.
Body:
{
"serial_number": “{Serial Number}”,
"command" : "set_sensor_mode",
"state" : 1 // possible values 1/0
}

Get device sensor mode

Body:
{
"serial_number": “{Serial Number}”,
"command" : "get_automatic_heating_status"
}

Set device deep sleep mode

*In deep sleep mode, the consumption of the device is significantly reduced.
Body:
{
"serial_number": “{Serial Number}”,
"command" : "set_deep_sleep_mode",
"state" : 1 // possible values 1/0
}

Set PIR sensor Status

*Set the status of the PIR sensor to on or off.
Body:
{
"serial_number": “{Serial Number}”,
"command" : "set_pir_sensor_status",
"state" : 1 // possible values 1/0
}

Get PIR sensor Status

Body:
{
"serial_number": “{Serial Number}”,
"command" : "get_pir_sensor_status"
}

Set PIR sensor sensitivity

*Set the sensitivity of the PIR sensor. The default value is 20.
Body:
{
"serial_number": “{Serial Number}”,
"command" : "set_pir_sensor_sensitivity",
"sensitivity" : 20
}

Get PIR sensor sensitivity

Body:
{
"serial_number": “{Serial Number}”,
"command" : "get_pir_sensor_sensitivity"
}

Set Current temperature visibility

*Set a flag to show/hide the current temperature on the display. Default is show (1)
Body:
{
"serial_number": “{Serial Number}”,
"command" : "set_current_temperature_visibility",
"state" : 1 // possible values 1/0
}

Get Current temperature visibility

Body:
{
"serial_number": “{Serial Number}”,
"command" : "get_current_temperature_visibility"
}

Set Humidity visibility

*Set a flag to show/hide the humidity on the display. Default is show (1)
Body:
{
"serial_number": “{Serial Number}”,
"command" : "set_humidity_visibility",
"state" : 1 // possible values 1/0
}

Get Humidity visibility