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

Sarameters

InterfaceSwitchThree
DisplayInk LCD
ItemValue
§ Measurement
TemperatureLN version: measure period 10 seconds accuracy ± 1 ℃, range -20 ℃ - 60 ℃ L version measure period 10 seconds accuracy ± 3 ℃, range -20 ℃ - 60 ℃
Humiditymeasure period 10 seconds accuracy ± 3% RH, range 0 - 100%
PIRtrigger type horizontal 80°, vertical 55° effective distance 5 meters
Illuminationmeasure period 10 seconds Measuring range 0.01 lux - 83 k lux (graded by L0-L3) L0 : <100lux L1 : <200lux L2 : <500lux L3 : <500lux
CO2measure period 10 seconds accuracy ± 40.0 ppm ± 5.0 %m.v. Range 400-5000ppm
TVOCmeasure period is 10 seconds accuracy is ± 15 VOC Index points or % m.v. Range: 1 - 500 VOC Index points
PM2.5LN vesion : measure period 180 seconds accuracy: ±10%, range: 0-1000μg/m³ L version : acquisition period 3 hours, accuracy :±10%, range : 0-1000μg/m³
PM1.0LN vesion : measure period 180 seconds accuracy: ±10%, range: 0-1000μg/m³ L version : acquisition period 3 hours, accuracy :±10%, range : 0-1000μg/m³
PM10LN vesion (Hidden by default, uploaded via LoRaWAN channel): measure period 180 seconds accuracy: ±25%, range: 0-1000μg/m³ L version (Hidden by default, uploaded via LoRaWAN channel): acquisition period 3 hours, accuracy :±10%, range : 0-1000μg/m³
§ 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

画板

Example: KS618-A1-AS923-N, 2nd Generation Indoor Air Quality Sensor, seven-in-one sensor, single live wire power supply, AS923 standard

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

Temperaturemeasure period 10 secondsCOV, default 1 ℃
Humiditymeasure period 10 secondsCOV, default 5%
PIRtriggeredtrigger
Illuminationmeasure period 10 seconds,
CO2measure period 10 secondsCOV, default 100
TVOCmeasure period 10 secondsCOV, default 50
PM2.5measure period 180 seconds (LN version)
measure period 3 hours (L version)

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 ItemExampleSstart AddressLengthDescription
1version Number0x8201 byteKS61 fixed to 0x82
2control Word0x2411 byteKS61 fixed to 0x24
3identifier0x0721 byteKS61 fixed to 0x07
4status Identification0x0031 byte>0 is fault, = 0 normal
5temperature0x00ED42 bytesint16,little endian unit is 0.1 ℃
6humidity0x024962 bytesint16,littel endian unit is 0.1 rh%
7CO20x020482 bytesint16, littel endian , unit is ppm
8illumination0x0002102 bytesint16,littel endian unit lux
9TVOC0x00000004124 bytesInt32 , littel endian , unit ug/m³
10retention0x01161 byteretention
11PIR0x01171 byteuint8>0 someone, = 0 No One
12switch status0x07181 byteuint8,bit0-bit3 corresponding to 3 switch states respectively (switches 1-3 from left to right)
= 0 is open, = 1 is closed
13PM2.50x 42265027204 byteslittle endian ,unit ug/m³
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

\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 bit1521 bytebit0-bit6 corresponding to different function enable bits,
= 0 does not enable, = 1 enable
bit0: Temperature
bit1: Humidity
bit2 :TVOC
bit3: Illumination
bit4 :CO2
bit5 :PM2.5
bit6: light control enable bit
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 , in seconds
PIR unmanned status secondary confirmation delay
10illumination Threshold 11001602 bytesuint16, little endian unit lux
illumination Threshold 1
11illumination Threshold 21001622 bytesuint16, little endian , unit lux
illumination Threshold 2
12illumination Threshold 21001642 bytesuint16,little endian , unit lux
Illumination threshold 3
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.

Contact Us

Website: www.manthink.cn

Email: info@ manthink.cn

Tel: +86 15810684257