# 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"
        }
    }
}
```

### Set Uplink Type

*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"
        }
    }
}
```

### Get Uplink Type

*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

*\**&#x49;n 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

*\**&#x49;n 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

*\**&#x49;n 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

*\**&#x53;et 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

*\**&#x53;et 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

*\**&#x53;et 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

*\**&#x53;et 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

*\**&#x53;et 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

*\**&#x53;et 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

*\**&#x53;et 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

*\**&#x49;t 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

*\**&#x54;he 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"
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mclimate.eu/mclimate-api-documentation/control-devices/wireless-thermostat-lorawan.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
