CO2 Display 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": 18,
        "CO2": 617,
        "activeFrom": "2023-05-30 14:12:21",
        "application": "mclimate-dev",
        "batteryVoltage": 3.31,
        "deviceVersions": {
            "hardware": 26,
            "software": 10
        },
        "frameCount": 32,
        "keepAliveTime": 2,
        "lastActive": "2023-09-08 11:21:53",
        "lux": 307,
        "network_provider": "the_things_industries",
        "pir": false,
        "powerSourceStatus": 0,
        "relativeHumidity": 52.73,
        "rssi": -67,
        "sensorTemperature": 23.9,
        "spf": "7",
        "uplinkType": "00",
        "currentTemperatureVisibility": 1,
        "measurementBlindTime": 15,
        "displayRefreshPeriod": 12,
        "imagesVisibility": {
            "chart": 1,
            "digital_value": 1,
            "emoji": 0
        },
        "joinRetryPeriod": 10,
        "watchDogParams": {
            "wdpC": 37,
            "wdpUc": 24
        },
        "mac": "70B3D52DD9000007",
        "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": “{CO2 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",
  "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"
}

Set CО2 Measurement Blind Time

*More info: https://docs.mclimate.eu/mclimate-lorawan-devices/devices/mclimate-co2-display/co2-display-device-communication-protocol/co2-measurement-settings#co2-measurement-blind-time

Body:

{
  "serial_number": “{Serial Number}”,
  "command" : "set_co2_measurement_blind_time",
  "time": 15 // in minutes
}

Set CО2 Images Visibility

*More info: https://docs.mclimate.eu/mclimate-lorawan-devices/devices/mclimate-co2-display/co2-display-device-communication-protocol/hiding-data-from-the-display#co2-related-images-to-be-shown-on-the-display

Body:

{
  "serial_number": “{Serial Number}”,
  "command" : "set_co2_images_visibility",
  "chart": 1, // 1-show; 0-hide
  "digital_value": 1, // 1-show; 0-hide
  "emoji": 0 // 1-show; 0-hide
}

Last updated