CO2 Sensor LoRaWAN

Get device data

Request URL:

POST /provider/fetch

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Body:

{
"serial_number" : "{CO2-Sensor Serial Number}"
}

Response:

{
"provider": {
"network_provider": "the_things_industries",
"extSensorOn": [],
"extSensorIs": "",
"rssi": -66,
"spf": "7",
"CO2": 621,
"temperature": 23.9,
"humidity": 60.55,
"voltage": 3.51,
"uplinkType": "00",
"keepAliveTime": 3,
"joinRetryPeriod": 5,
"deviceVersions": {
"hardware": 0,
"software": 0
},
"watchDogParams": {
"wdpC": 0,
"wdpUc": 0
},
"createdAt": "2021-07-19T13:09:02.556Z",
"lastActive": "2021-07-20T15:36:03.672Z",
"boundaryLevels": {
"good_medium": 901,
"medium_bad": 1501
},
"autoZeroValue": 366,
"notifyPeriod": {
"good_zone": 0,
"medium_zone": 10,
"bad_zone": 10
},
"measurementPeriod": {
"good_zone": 10,
"medium_zone": 10,
"bad_zone": 10
},
"buzzerNotification": {
"duration_good_beeping": 0,
"duration_good_loud": 500,
"duration_good_silent": 500,
"duration_medium_beeping": 0,
"duration_medium_loud": 500,
"duration_medium_silent": 500,
"duration_bad_beeping": 2,
"duration_bad_loud": 500,
"duration_bad_silent": 500
},
"ledNotification": {
"red_good": 0,
"green_good": 2,
"blue_good": 0,
"duration_good": 210,
"red_medium": 3,
"green_medium": 2,
"blue_medium": 0,
"duration_medium": 4020,
"red_bad": 3,
"green_bad": 0,
"blue_bad": 0,
"duration_bad": 4020
},
"autoZeroPeriod": 192,
"online": true,
"mac": "70B3D52DD500000D"
},
"_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": “{CO2-Sensor 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": “{CO2-Sensor 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 Device Version

Request URL:

POST /provider/fetch

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Body:

{
"serial_number" : "{Co2-Sensor 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": “{Co2-Sensor 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": “{Co2-Sensor 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": “{CO2-Sensor 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": “{CO2-Sensor 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": “{CO2 Serial Number}”,
"command" : "set_watch_dog_params",
"period_confirmen_uplinks": 17, // in minutes, if it is disabled "0"
"period_unconfirmen_uplinks":24, // in hours, if it is disabled "0"
"device_keepalive":3 // in minutes
}

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": “{CO2 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 Co2 Boundary Levels

Request URL:

POST /provider/send

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Body:

{
"serial_number": “{CO2 Serial Number}”,
"command" : "set_co2_boundary_levels",
"good_medium": 900, // in PPM
"medium_bad": 1500 // in PPM
}

Response:

{
"provider": {
"status": "pending",
"_id": "60f6c24a58f6f700118ef837",
"commandName": "SetCo2BoundaryLevels",
"commandParams": {
"good_medium": 901,
"medium_bad": 1501
},
"deviceId": "70************D",
"createdAt": "2021-07-20T12:32:10.317Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get Co2 Boundary Levels

Request URL:

POST /provider/send

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Body:

{
"serial_number": “{CO2 Serial Number}”,
"command" : "get_co2_boundary_levels"
}

Response:

{
"provider": {
"status": "pending",
"_id": "60f6c0b258f6f700118ef808",
"commandName": "GetCo2BoundaryLevels",
"commandParams": [],
"deviceId": "70************D",
"createdAt": "2021-07-20T12:25:22.607Z",
"__v": 0
},
"_links": {
"self": {
"href": "\/v1\/provider\/send"
}
}
}

Set CO2 Auto Zero Value

Request URL:

POST /provider/send

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Body:

{
"serial_number": “{CO2 Serial Number}”,
"command" : "set_co2_auto_zero_value",
"ppm" : 366 //This value is used by the device for CO2
// measurements compensation in order to get 400ppm in fresh air.
// This value is represented in ppm.
}

Response:

{
"provider": {
"status": "pending",
"_id": "60f6d08758f6f700118ef9e7",
"commandName": "SetCo2AutoZeroValue",
"commandParams": {
"ppm": 366
},
"deviceId": "7**************D",
"createdAt": "2021-07-20T13:32:55.510Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get CO2 Auto Zero Value

Request URL:

POST /provider/send

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Body:

{
"serial_number": “{CO2 Serial Number}”,
"command" : "get_co2_auto_zero_value"
}

Response:

{
"provider": {
"status": "pending",
"_id": "60f6c0b258f6f700118ef808",
"commandName": "GetCo2AutoZeroValue",
"commandParams": [],
"deviceId": "70************D",
"createdAt": "2021-07-20T12:25:22.607Z",
"__v": 0
},
"_links": {
"self": {
"href": "\/v1\/provider\/send"
}
}
}

Set CO2 Auto Zero Period

Request URL:

POST /provider/send

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Auto-zero period in hours. Default auto-zero period, after the factory auto-zeroing, is 192 hours (8 days). During this period the lowest measured CO2 value is accepted as 400ppm and the auto-zero value is obtained automatically. If The period is 0, automatic auto-zero function is disabled, but the obtained or set with command auto-zero value is still used internally

Body:

{
"serial_number": “{CO2 Serial Number}”,
"command" : "set_co2_auto_zero_period",
"hours" : 192 // in hours
}

Response:

{
"provider": {
"status": "pending",
"_id": "60f6ea2158f6f700118efd12",
"commandName": "SetCo2AutoZeroPeriod",
"commandParams": {
"hours": 192
},
"deviceId": "7*************D",
"createdAt": "2021-07-20T15:22:09.105Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get CO2 Auto Zero Value

Request URL:

POST /provider/send

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Body:

{
"serial_number": “{CO2 Serial Number}”,
"command" : "get_co2_auto_zeroperiod"
}

Response:

{
"provider": {
"status": "pending",
"_id": "60f6c0b258f6f700118ef808",
"commandName": "GetCo2AutoZeroPeriod",
"commandParams": [],
"deviceId": "70************D",
"createdAt": "2021-07-20T12:25:22.607Z",
"__v": 0
},
"_links": {
"self": {
"href": "\/v1\/provider\/send"
}
}
}

Set Notify Period

Request URL:

POST /provider/send

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Body:

{
"serial_number": “{CO2 Serial Number}”,
"command" : "set_notify_period",
"good_zone" : 0, // Notification period, in minutes,
// when measured CO2 is inside the good zone. 0 means notify once.
"medium_zone": 10, // -- // --
"bad_zone": 10 // -- // --
}

Response:

{
"provider": {
"status": "pending",
"_id": "60f6d4a858f6f700118efa7f",
"commandName": "SetNotifyPeriod",
"commandParams": {
"good_zone": 0,
"medium_zone": 10,
"bad_zone": 10
},
"deviceId": "70***************D",
"createdAt": "2021-07-20T13:50:32.221Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get Notify Period

Request URL:

POST /provider/send

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Body:

{
"serial_number": “{CO2 Serial Number}”,
"command" : "get_notify_period"
}

Response:

{
"provider": {
"status": "pending",
"_id": "60f6c0b258f6f700118ef808",
"commandName": "GetNotifyPeriod",
"commandParams": [],
"deviceId": "70************D",
"createdAt": "2021-07-20T12:25:22.607Z",
"__v": 0
},
"_links": {
"self": {
"href": "\/v1\/provider\/send"
}
}
}

Set Measurement Period

Request URL:

POST /provider/send

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Body:

{
"serial_number": “{CO2 Serial Number}”,
"command" : "set_measurement_period",
"good_zone" : 10, // in minutes, used until the measured CO2 levels are
// inside the good zone
"medium_zone": 10, // -- // --
"bad_zone": 10 // -- // --
}

Response:

{
"provider": {
"status": "pending",
"_id": "60f6d8c458f6f700118efb0b",
"commandName": "SetCo2MeasurementPeriod",
"commandParams": {
"good_zone": 10,
"medium_zone": 10,
"bad_zone": 10
},
"deviceId": "70B3D52DD500000D",
"createdAt": "2021-07-20T14:08:04.903Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get Measurement Period

Request URL:

POST /provider/send

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Body:

{
"serial_number": “{CO2 Serial Number}”,
"command" : "get_measurement_period"
}

Response:

{
"provider": {
"status": "pending",
"_id": "60f6c0b258f6f700118ef808",
"commandName": "GetCo2MeasurementPeriod",
"commandParams": [],
"deviceId": "70************D",
"createdAt": "2021-07-20T12:25:22.607Z",
"__v": 0
},
"_links": {
"self": {
"href": "\/v1\/provider\/send"
}
}
}

Set Buzzer Notification

Request URL:

POST /provider/send

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Body:

{
"serial_number": “{CO2 Serial Number}”,
"command" : "set_buzzer_notification",
"duration_good_beeping": 0, // Duration of the buzzer beeping, in seconds,
// when must notify for good CO2 levels. A value of 0 means don’t notify
"duration_good_loud": 500, [ms], Duration of the buzzer loud periods, when must notify
// for good CO2 levels
"duration_good_silent": 500, [ms],
"duration_medium_beeping": 0, [s]
"duration_medium_loud": 500, [ms]
"duration_medium_silent": 500, [ms]
"duration_bad_beeping": 2,
"duration_bad_loud": 500,
"duration_bad_silent": 500
}

Response:

{
"provider": {
"status": "pending",
"_id": "60f6e18158f6f700118efc13",
"commandName": "SetBuzzerNotification",
"commandParams": {
"duration_good_beeping": 0,
"duration_good_loud": 500,
"duration_good_silent": 500,
"duration_medium_beeping": 0,
"duration_medium_loud": 500,
"duration_medium_silent": 500,
"duration_bad_beeping": 2,
"duration_bad_loud": 500,
"duration_bad_silent": 500
},
"deviceId": "70*************D",
"createdAt": "2021-07-20T14:45:21.858Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get Buzzer Notification

Request URL:

POST /provider/send

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Body:

{
"serial_number": “{CO2 Serial Number}”,
"command" : "get_buzzer_notification"
}

Response:

{
"provider": {
"status": "pending",
"_id": "60f6c0b258f6f700118ef808",
"commandName": "GetBuzzerNotification",
"commandParams": [],
"deviceId": "70************D",
"createdAt": "2021-07-20T12:25:22.607Z",
"__v": 0
},
"_links": {
"self": {
"href": "\/v1\/provider\/send"
}
}
}

Set LED Notification

Request URL:

POST /provider/send

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

*Led state:

  • 0x00: None;

  • 0x01: LED is constantly on for the given time duration;

  • 0x02: Blink fast for the given time duration;

  • 0x03: Blink slow for the given time duration

Body:

{
"serial_number": “{CO2 Serial Number}”,
"command" : "set_co2_led_notification",
"red_good": 0, // Led State*
"green_good": 2, // Led State*
"blue_good": 0, // Led State*
"duration_good": 210, // [ms]
"red_medium": 3,
"green_medium": 3,
"blue_medium": 0,
"duration_medium": 4020, // [ms]
"red_bad": 3,
"green_bad": 0,
"blue_bad": 0,
"duration_bad": 4020
}

Response:

{
"provider": {
"status": "pending",
"_id": "60f6e6c258f6f700118efcb2",
"commandName": "SetCo2Led",
"commandParams": {
"red_good": 0,
"green_good": 2,
"blue_good": 0,
"duration_good": 210,
"red_medium": 3,
"green_medium": 2,
"blue_medium": 0,
"duration_medium": 4020,
"red_bad": 3,
"green_bad": 0,
"blue_bad": 0,
"duration_bad": 4020
},
"deviceId": "7*************D",
"createdAt": "2021-07-20T15:07:46.975Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}

Get LED Notification

Request URL:

POST /provider/send

Headers:

Content-Type: application/json
Authorization: Bearer {access_token}

Body:

{
"serial_number": “{CO2 Serial Number}”,
"command" : "get_co2_led_notification"
}

Response:

{
"provider": {
"status": "pending",
"_id": "60f6e3e858f6f700118efc5b",
"commandName": "GetCo2Led",
"commandParams": [],
"deviceId": "7**************D",
"createdAt": "2021-07-20T14:55:36.249Z",
"__v": 0
},
"_links": {
"self": {
"href": "/v1/provider/send"
}
}
}