KS61 Indoor Air Quality (IAQ) Sensor V1.0
Product Introduction

Product Introduction
KS61 is a set of multi-functional and sophisticated design in one of the 86 type wall switch type indoor environment monitoring sensor. It can monitor PM2.5 (zero fire version support), temperature, humidity, light intensity, CO₂, TVOC and human movement (PIR) and other environmental parameters in real time, and is equipped with electronic ink screen, which supports local intuitive view of air quality data, and the information is clear and easy to read.
KS61 adopts standard 86 box size design, built-in three physical buttons, easy to install, can directly replace the traditional wall switch. After the remote control function is enabled, the user can realize the intelligent control of the switch on and off through the network, taking into account the local operation habits and remote intelligent management.
The product is based on LoRa ® Wireless technology, supports standard LoRaWAN ® Protocol, with the advantages of long-distance communication and ultra-low power consumption, is suitable for large-scale, long-life IoT deployment scenarios.
KS61 compatible with ManThink and third party LoRaWAN ® Gateway, and seamless access to ThinkLink, ChirpStack, The Things Network(TTN) and other mainstream Internet of Things platforms, easy to achieve environmental data collection, remote monitoring, intelligent analysis and energy-saving linkage control, widely applicable to smart office, smart home and building management system.
Features
- 86 box installation, can directly replace the original 86 box switch
- Support 3 phiscal switches
- Support PM2.5, temperature, humidity, light, CO₂, TVOC, PIR seven environmental parameter monitoring
- Ink screen display
- Support single Live wire/LN power supply (two versions)
- Support RS-485 interface (zero fire version support)
- Support ThinkLink/ChirpStack/TTN platform docking
- Support US902,AU915,AS923,EU868,EU433,CN470 LoRaWAN standards
Specifications
Parameters
| Parameter | Value |
|---|---|
| Push-button switches | 3 |
| Display | E-ink display |
| Item | Value |
|---|---|
| § Measurement | |
| Temperature | Neutral-and-live version: 10-second acquisition interval, ±1 ℃ accuracy, -20–60 ℃ range Single-live-wire version: 10-second acquisition interval, ±3 ℃ accuracy, -20–60 ℃ range |
| Humidity | measure period 10 seconds accuracy ± 3% RH, range 0 - 100% |
| PIR | trigger type horizontal 80°, vertical 55° effective distance 5 meters |
| Illumination | 10-second acquisition interval, 0.01–83 klux range Levels: L0 < 100 lux; L1 < 200 lux; L2 < 500 lux; L3 > 500 lux |
| CO2 | measure period 10 seconds accuracy ± 40.0 ppm ± 5.0 %m.v. Range 400-5000ppm |
| TVOC | 10-second acquisition interval, ±15 VOC Index points or ±15% m.v. accuracy, 1–500 VOC Index points range |
| PM2.5 | Neutral-and-live version: 180-second acquisition interval, ±10% accuracy, 0–1000 μg/m³ range Single-live-wire version: 3-hour acquisition interval, ±10% accuracy, 0–1000 μg/m³ range |
| PM1.0 | Hidden by default and uploaded through LoRaWAN; ±10% accuracy, 0–1000 μg/m³ range Neutral-and-live version: 180-second interval; single-live-wire version: 3-hour interval |
| PM10 | Hidden by default and uploaded through LoRaWAN; ±25% accuracy, 0–1000 μg/m³ range Neutral-and-live version: 180-second interval; single-live-wire version: 3-hour interval |
| § Wireless parameters | |
| Protocol | standard LoRaWAN |
| regional Standards | CN470/EU433/EU868/AS923/AU915/Us902 |
| Transmit power | max 22dBm (LN version) maximum 14dBm (L version ) |
| receiving sensitivity | -142dBm(SF=12,BW=125kHz) |
| Working mode | OTAA/ABP Class A |
| § Configuration | |
| test /Trigger mode | long press switch 1 2 seconds trigger heartbeat data 6 seconds trigger network |
| parameter configuration | by NS issue instruction |
| § characteristics | |
| power supply mode | L/LN AC |
| receiving current | <8mA (25 ℃ at room temperature) |
| emission current | <110mA (22dBm transmit power) |
| average power consumption | <100mW |
| working temperature | -40°C ~85°C |
| relative humidity | ≤95% (no condensation) |
| protection level | IP30 |
| material &Color | ABS + PC, White |
| dimensions | 86mm * 86mm * 17mm (17mm is the thickness outside the wall) |
| installation method | 86 box embedded installation |
Product Model
Model example
KS618-A2-AS923-N
Model component breakdown
KS618: product series and RF band.KS61identifies a second-generation indoor air quality monitor.8identifies the 800 MHz-and-above RF version for EU868, AS923, AU915 and US902.- Other band option:
4identifies the 400 MHz RF version for EU433 and CN470.
-A2: sensor combination and power configuration.Aidentifies the seven-sensor configuration for temperature, humidity, illuminance, PIR, TVOC, CO₂ and PM2.5. This configuration requires live-and-neutral power.- Other sensor options:
Bincludes temperature, humidity, illuminance, PIR, TVOC and CO₂;Cincludes temperature, humidity, illuminance and PIR. BothBandCsupport single-live-wire or live-and-neutral power. 2identifies live-and-neutral power.- Other power option:
1identifies single-live-wire power.
-AS923: LoRaWAN regional standard.AS923means that the device supports the LoRaWAN AS923 regional parameters.- Other regional codes are
CN470,EU433,EU868,AU915andUS902;US902denotes the LoRaWAN US915 (902–928 MHz) regional parameters.
-N: default version.Nidentifies the default version.- Other values are reserved for customized or special versions.
Complete model meaning
The complete meaning of KS618-A2-AS923-N is:
This is a second-generation indoor air quality monitor in the 800 MHz-and-above RF class. It monitors temperature, humidity, illuminance, PIR, TVOC, CO₂ and PM2.5, uses live-and-neutral power, supports the LoRaWAN AS923 regional standard, and uses the default final version code N.
Instructions for use
Network topology
KS61 is a terminal device that conforms to the standard LoRaWAN protocol, and its normal operation depends on the complete LoRaWAN network support. The network needs to include a LoRaWAN gateway and a web server (NS). KS61 can be connected to ManThink self-developed Gateway or third-party compatible gateway, and supports connection to mainstream LoRaWAN Network servers, such as ThinkLink, ChirpStack and The Things Network(TTN).
Through the ThinkLink IoT platform, users can easily configure the object model, realize the definition of business functions, card view display and other personalized business logic, and quickly build application scenarios.
A typical LoRaWAN network topology is as follows:

Working mode
Collection and Upload
KS61 collects data according to a preset fixed period, and supports three Upload modes: periodic Upload, event trigger Upload and change value Upload (COV).
In the periodic Upload mode, KS61 will regularly report the complete data of all sensors according to the set time interval. For variables that support COV(Change of Value), the system will automatically trigger a data Upload when the Value Change exceeds the preset threshold. In addition, event-type variables such as PIR (human body sensing) and switch status trigger a single data report immediately when the status changes.
All uplink data uses a unified packet format to ensure transmission consistency and resolution efficiency. The overall acquisition and upload mechanism combines three strategies: timing, threshold and event-driven, taking into account data integrity and real-time response.
Measurement
| Data item | Acquisition method / interval | Uplink trigger |
|---|---|---|
| Temperature | Every 10 seconds | Change exceeds the COV threshold; default 1 ℃ |
| Humidity | Every 10 seconds | Change exceeds the COV threshold; default 5%RH |
| PIR | Event driven | Triggered when the detection state changes |
| Illumination | Every 10 seconds | Periodic report |
| CO₂ | Every 10 seconds | Change exceeds the COV threshold; default 100 ppm |
| TVOC | Every 10 seconds | Change exceeds the COV threshold; default 50 |
| PM2.5 | Neutral-and-live version: every 180 seconds Single-live-wire version: every 3 hours | Periodic report |
Communication Test
By switching on and off the switch once, a packet of data can be implemented to trigger uplink.
Network access
Long press Switch 3 (right most switch) for more than 6 seconds to trigger the network access operation.
Communication Protocol
Data Items and Identifiers
- [x] LoRaWAN port number = 11
KS61 supports only one data format and sends data periodically according to a set period. When a COV event occurs, it triggers one frame of uplink data.
Example (hex): 82 24 07 00 ED00 4902 2402 0200 44000000 01 01 07 40 27502642
| Number | Data Item | Example | Start Address | Length | Description |
|---|---|---|---|---|---|
| 1 | Version number | 0x82 | 0 | 1 byte | Fixed at 0x82 |
| 2 | Control word | 0x24 | 1 | 1 byte | Fixed at 0x24 |
| 3 | Identifier | 0x07 | 2 | 1 byte | Fixed at 0x07 |
| 4 | Status identifier | 0x00 | 3 | 1 byte | 0: normal; greater than 0: fault |
| 5 | Temperature | 0x00ED | 4 | 2 bytes | int16, little-endian, unit: 0.1 ℃ |
| 6 | Humidity | 0x0249 | 6 | 2 bytes | int16, little-endian, unit: 0.1%RH |
| 7 | CO₂ | 0x0204 | 8 | 2 bytes | int16, little-endian, unit: ppm |
| 8 | Illumination | 0x0002 | 10 | 2 bytes | int16, little-endian, unit: lux |
| 9 | TVOC | 0x00000004 | 12 | 4 bytes | int32, little-endian, unit: μg/m³ |
| 10 | Reserved | 0x01 | 16 | 1 byte | Reserved; do not use for application parsing |
| 11 | PIR | 0x01 | 17 | 1 byte | uint8; 0: unoccupied; greater than 0: occupied |
| 12 | Switch status | 0x07 | 18 | 1 byte | See the bit0–bit2 mapping and values below |
| 13 | PM2.5 | 0x42265027 | 20 | 4 bytes | Little-endian, unit: μg/m³ |
Switch status bit mapping
| Bit | Switch | 0 | 1 |
|---|---|---|---|
| bit0 | Switch 1 (left) | Open | Closed |
| bit1 | Switch 2 (center) | Open | Closed |
| bit2 | Switch 3 (right) | Open | Closed |
ThinkLink parsing rules
let payload = Buffer.from(msg?.userdata?.payload, "base64");
let port=msg?.userdata?.port;
//let preTelemetry = device?.telemetry_data?.[thingModelId];
function parseSharedAttrs(payload) {
if (port!=214||payload[0]!=0x2F) { return null}
let shared_attrs ={}
shared_attrs.content = payload.toString('hex')
if (payload.length<5) { return null}
let size=payload.length-4
let regAddress=payload[2]
for (let i=0; i<size; i++) {
regAddress=payload[2]+i
switch (regAddress) {
case 58:
if ( size<(2+i) ) { break }
shared_attrs.period_data = payload.readUInt16LE(4+i)
break;
case 152:
if ( size<(1+i) ) { break }
shared_attrs.enable = "0x"+payload.readUInt8(4+i).toString(16).padStart(2, '0')
break;
case 153:
if ( size<(1+i) ) { break }
shared_attrs.cov_temperatrue = payload.readUInt8(4+i)*0.1
break;
case 154:
if ( size<(1+i) ) { break }
shared_attrs.cov_humidity = payload.readUInt8(4+i)
break;
case 155:
if ( size<(1+i) ) { break }
shared_attrs.cov_tvoc = payload.readUInt8(4+i)
break;
case 156:
if ( size<(1+i) ) { break }
shared_attrs.cov_co2 = payload.readUInt8(4+i)
break;
case 157:
if ( size<(1+i) ) { break }
shared_attrs.cov_pm25 = payload.readUInt8(4+i)
break;
case 158:
if ( size<(2+i) ) { break }
shared_attrs.pir_delay = payload.readUInt16LE(4+i)
break;
case 160:
if ( size<(2+i) ) { break }
shared_attrs.lux_threshold1 = payload.readUInt16LE(4+i)
break;
case 162:
if ( size<(2+i) ) { break }
shared_attrs.lux_threshold2 = payload.readUInt16LE(4+i)
break;
case 164:
if ( size<(2+i) ) { break }
shared_attrs.lux_threshold3 = payload.readUInt16LE(4+i)
break;
case 166:
if ( size<(1+i) ) { break }
shared_attrs.pir_mask ="0x"+ payload.readUInt8(4+i).toString(16).padStart(2, '0')
break;
default: break
}
}
if (Object.keys(shared_attrs).length == 0) {
return null
}
return shared_attrs;
}
function parseTelemetry(payload){
if (port!=11) { return null}
if (payload[0]!=0x82||payload[1]!=0x24||payload[2]!=0x07){ return null }
let telemetryData={}
if (payload.length <24) { return null }
if (payload[3]>0) {
telemetryData.status="fault"
return telemetryData
}
telemetryData.temperatrue=Number((payload.readInt16LE(4)/10).toFixed(1))
telemetryData.humidity=Number((payload.readInt16LE(6)/10).toFixed(1))
telemetryData.co2=Number(payload.readInt16LE(8))
telemetryData.light=Number(payload.readInt16LE(10))
telemetryData.tvoc=Number(payload.readInt32LE(12))
let pirval=payload.readUInt8(17)
telemetryData.pir= (pirval>0)?1:0
let relayval =payload.readUInt8(18)
telemetryData.relay1=((relayval&0x01)===0x01)?1:0
telemetryData.relay2=((relayval&0x02)===0x02)?1:0
telemetryData.relay3=((relayval&0x04)===0x04)?1:0
telemetryData.pm25=Number((payload.readFloatLE(20)).toFixed(2))
return telemetryData
}
let appData= parseTelemetry(payload)
let sattrs=parseSharedAttrs(payload)
return {
telemetry_data: appData,
server_attrs: null,
shared_attrs: sattrs,
}Parameter modification
Parameter changes follow PTL-D01 ManThink Technology IoT Terminal Application Layer General Protocol V1.5.
Configuration parameter address table
| Number | Data Item | Default Value | Start Address | Length | Description |
|---|---|---|---|---|---|
| 1 | reset | write Only | 9 | 1 byte | write 0x01 |
| 2 | upload cycle | 15 | 58 | 2 bytes | upload cycle, in minutes |
| 3 | Function-enable bits | — | 152 | 1 byte | See the bit0–bit6 mapping and values below |
| 4 | temperature COV | 10 | 153 | 1 byte | unit 0.1 ℃ |
| 5 | humidity COV | 20 | 154 | 1 byte | unit 0.1 RH% |
| 6 | TVOC COV | 50 | 155 | 1 byte | |
| 7 | CO2 COV | 100 | 156 | 1 byte | unit ppm |
| 8 | pm2.5 COV | 10 | 157 | 1 byte | unit ug/m³ |
| 9 | PIR delay | 1800 | 158 | 2 bytes | uint16, little-endian, unit: seconds; used to confirm the unoccupied state |
| 10 | Illumination threshold 1 | 100 | 160 | 2 bytes | uint16, little-endian, unit: lux |
| 11 | Illumination threshold 2 | 100 | 162 | 2 bytes | uint16, little-endian, unit: lux |
| 12 | Illumination threshold 3 | 100 | 164 | 2 bytes | uint16, little-endian, unit: lux |
| 13 | PIR Control Mask | 0x07 | 166 | 1 byte | PIR someone turn on the light control mask, bit0-bit3 valid. When it is 1, PIR detects a person and turns on the light. |
Function-enable bit mapping
| Bit | Function | 0 | 1 |
|---|---|---|---|
| bit0 | Temperature | Disabled | Enabled |
| bit1 | Humidity | Disabled | Enabled |
| bit2 | TVOC | Disabled | Enabled |
| bit3 | Illumination | Disabled | Enabled |
| bit4 | CO₂ | Disabled | Enabled |
| bit5 | PM2.5 | Disabled | Enabled |
| bit6 | Lighting control | Disabled | Enabled |
Contact Us
Website: www.manthink.cn
Email: info@manthink.cn
Tel: +86 15810684257
Manual Downloads
These are permanent download URLs and will remain unchanged when the manuals are updated.