Skip to content

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

ParameterValue
Push-button switches3
DisplayE-ink display
ItemValue
§ Measurement
TemperatureNeutral-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
Humiditymeasure period 10 seconds accuracy ± 3% RH, range 0 - 100%
PIRtrigger type horizontal 80°, vertical 55° effective distance 5 meters
Illumination10-second acquisition interval, 0.01–83 klux range
Levels: L0 < 100 lux; L1 < 200 lux; L2 < 500 lux; L3 > 500 lux
CO2measure period 10 seconds accuracy ± 40.0 ppm ± 5.0 %m.v. Range 400-5000ppm
TVOC10-second acquisition interval, ±15 VOC Index points or ±15% m.v. accuracy, 1–500 VOC Index points range
PM2.5Neutral-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.0Hidden 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
PM10Hidden 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
Protocolstandard LoRaWAN
regional StandardsCN470/EU433/EU868/AS923/AU915/Us902
Transmit powermax 22dBm (LN version) maximum 14dBm (L version )
receiving sensitivity-142dBm(SF=12,BW=125kHz)
Working modeOTAA/ABP Class A
§ Configuration
test /Trigger modelong press switch 1 2 seconds trigger heartbeat data 6 seconds trigger network
parameter configurationby NS issue instruction
§ characteristics
power supply modeL/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 levelIP30
material &ColorABS + PC, White
dimensions86mm * 86mm * 17mm (17mm is the thickness outside the wall)
installation method86 box embedded installation

Product Model

Model example

KS618-A2-AS923-N

Model component breakdown

  • KS618: product series and RF band.
    • KS61 identifies a second-generation indoor air quality monitor.
    • 8 identifies the 800 MHz-and-above RF version for EU868, AS923, AU915 and US902.
    • Other band option: 4 identifies the 400 MHz RF version for EU433 and CN470.
  • -A2: sensor combination and power configuration.
    • A identifies the seven-sensor configuration for temperature, humidity, illuminance, PIR, TVOC, CO₂ and PM2.5. This configuration requires live-and-neutral power.
    • Other sensor options: B includes temperature, humidity, illuminance, PIR, TVOC and CO₂; C includes temperature, humidity, illuminance and PIR. Both B and C support single-live-wire or live-and-neutral power.
    • 2 identifies live-and-neutral power.
    • Other power option: 1 identifies single-live-wire power.
  • -AS923: LoRaWAN regional standard.
    • AS923 means that the device supports the LoRaWAN AS923 regional parameters.
    • Other regional codes are CN470, EU433, EU868, AU915 and US902; US902 denotes the LoRaWAN US915 (902–928 MHz) regional parameters.
  • -N: default version.
    • N identifies 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 itemAcquisition method / intervalUplink trigger
TemperatureEvery 10 secondsChange exceeds the COV threshold; default 1 ℃
HumidityEvery 10 secondsChange exceeds the COV threshold; default 5%RH
PIREvent drivenTriggered when the detection state changes
IlluminationEvery 10 secondsPeriodic report
CO₂Every 10 secondsChange exceeds the COV threshold; default 100 ppm
TVOCEvery 10 secondsChange exceeds the COV threshold; default 50
PM2.5Neutral-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

NumberData ItemExampleStart AddressLengthDescription
1Version number0x8201 byteFixed at 0x82
2Control word0x2411 byteFixed at 0x24
3Identifier0x0721 byteFixed at 0x07
4Status identifier0x0031 byte0: normal; greater than 0: fault
5Temperature0x00ED42 bytesint16, little-endian, unit: 0.1 ℃
6Humidity0x024962 bytesint16, little-endian, unit: 0.1%RH
7CO₂0x020482 bytesint16, little-endian, unit: ppm
8Illumination0x0002102 bytesint16, little-endian, unit: lux
9TVOC0x00000004124 bytesint32, little-endian, unit: μg/m³
10Reserved0x01161 byteReserved; do not use for application parsing
11PIR0x01171 byteuint8; 0: unoccupied; greater than 0: occupied
12Switch status0x07181 byteSee the bit0–bit2 mapping and values below
13PM2.50x42265027204 bytesLittle-endian, unit: μg/m³

Switch status bit mapping

BitSwitch01
bit0Switch 1 (left)OpenClosed
bit1Switch 2 (center)OpenClosed
bit2Switch 3 (right)OpenClosed
javascript
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

NumberData ItemDefault ValueStart AddressLengthDescription
1resetwrite Only91 bytewrite 0x01
2upload cycle15582 bytesupload cycle, in minutes
3Function-enable bits1521 byteSee the bit0–bit6 mapping and values below
4temperature COV101531 byteunit 0.1 ℃
5humidity COV201541 byteunit 0.1 RH%
6TVOC COV501551 byte
7CO2 COV1001561 byteunit ppm
8pm2.5 COV101571 byteunit ug/m³
9PIR delay18001582 bytesuint16, little-endian, unit: seconds; used to confirm the unoccupied state
10Illumination threshold 11001602 bytesuint16, little-endian, unit: lux
11Illumination threshold 21001622 bytesuint16, little-endian, unit: lux
12Illumination threshold 31001642 bytesuint16, little-endian, unit: lux
13PIR Control Mask0x071661 bytePIR 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

BitFunction01
bit0TemperatureDisabledEnabled
bit1HumidityDisabledEnabled
bit2TVOCDisabledEnabled
bit3IlluminationDisabledEnabled
bit4CO₂DisabledEnabled
bit5PM2.5DisabledEnabled
bit6Lighting controlDisabledEnabled

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.