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

Body:

{
  "serial_number": “{Serial Number}”,
  "command" : "get_humidity_visibility"
}

Set Light Intensity visibility

*Set a flag to show/hide the light intensity on the display. The default state is show. (1)

Body:

{
  "serial_number": “{Serial Number}”,
  "command" : "set_light_intensity_visibility",
  "state" : 1 // possible values 1/0
}

Get Light Intensity visibility

Body:

{
  "serial_number": “{Serial Number}”,
  "command" : "get_light_intensity_visibility"
}

Set PIR init period

*Set the initialization time period of the PIR sensor. Minimum value = 3sec. Default value = 3sec.

Body:

{
  "serial_number": “{Serial Number}”,
  "command" : "set_pir_init_period",
  "time" : 3 // in seconds. default is 3sec
}

Get PIR init period

Body:

{
  "serial_number": “{Serial Number}”,
  "command" : "get_pir_init_period"
}

Set PIR measurement period

*Set the measurement time period for motion detection by a PIR sensor. Minimum value = 3sec. Default value = 3sec.

Body:

{
  "serial_number": “{Serial Number}”,
  "command" : "set_pir_measurement_period",
  "time" : 3 // in seconds. default is 3sec
}

Get PIR measurement period

Body:

{
  "serial_number": “{Serial Number}”,
  "command" : "get_pir_measurement_period"
}

Set PIR check period

*It is used to periodically check for motion detected by the PIR sensor. When the period is set to 0, then it is constantly monitored for detected motion. Minimum value = 0sec. Default value = 54sec.

Body:

{
  "serial_number": “{Serial Number}”,
  "command" : "set_pir_check_period",
  "time" : 54 // in seconds. Default is 54sec, minimum 0
}

Get PIR check period

Body:

{
  "serial_number": “{Serial Number}”,
  "command" : "get_pir_check_period"
}

Set PIR blind period

*The blind period is used after motion is detected for how long to disable detection. Minimum value = 15sec. Default value = 10min.

Body:

{
  "serial_number": “{Serial Number}”,
  "command" : "set_pir_blind_period",
  "time" : 600 // in seconds. Default is 600 sec, minimum 15
}

Get PIR blind period

Body:

{
  "serial_number": “{Serial Number}”,
  "command" : "get_pir_blind_period"
}

Last updated