Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 10,417
» Latest member: archerfleming
» Forum threads: 4,322
» Forum posts: 21,300

Full Statistics

Online Users
There are currently 441 online users.
» 0 Member(s) | 419 Guest(s)
Amazonbot, Applebot, AwarioBot, Baidu, Bytespider, Crawl, Google, HeadlessChrome, PetalBot, bot

Latest Threads
KC868-A4 – Relay 1 clicks...
Forum: KC868-A series and Uair Smart Controller
Last Post: admin
11 hours ago
» Replies: 3
» Views: 18
⚡ 40 Buttons, 36 Lighting...
Forum: DIY Project
Last Post: lulu01
Yesterday, 07:34 PM
» Replies: 24
» Views: 2,941
[arduino code examples fo...
Forum: CO16
Last Post: admin
Yesterday, 03:04 AM
» Replies: 0
» Views: 7
[arduino code examples fo...
Forum: CO16
Last Post: admin
Yesterday, 01:34 AM
» Replies: 0
» Views: 10
[arduino code examples fo...
Forum: CO16
Last Post: admin
Yesterday, 12:15 AM
» Replies: 0
» Views: 14
450 Hz allowed on input?
Forum: Development
Last Post: admin
11-02-2026, 09:41 PM
» Replies: 3
» Views: 26
How Do You Handle Relay C...
Forum: KC868-A6
Last Post: lulu01
11-02-2026, 05:41 PM
» Replies: 2
» Views: 21
"KCS" v3.27.4 firmware BI...
Forum: "KCS" v3 firmware
Last Post: admin
11-02-2026, 06:02 AM
» Replies: 0
» Views: 47
how to check i2c extend c...
Forum: T16M
Last Post: admin
11-02-2026, 12:38 AM
» Replies: 0
» Views: 14
T16M ESPHome yaml for hom...
Forum: T16M
Last Post: admin
11-02-2026, 12:35 AM
» Replies: 0
» Views: 10

  "KCS" v3 MQTT protocol document
Posted by: admin - 02-15-2025, 03:49 AM - Forum: "KCS" v3 firmware - No Replies

Note: This protocol document use for KinCony ESP32-S3 smart controller:
you need to download KCS v3 firmware to ESP32-S3 firstly.
Different board will have different channel of digital output, digital input , ADC, DAC,IR, RF. So the protocol is same , just according to the hardware resource to set channel number.
protocol document download:
.pdf   KCSv3-protocol-MQTT.pdf (Size: 287.19 KB / Downloads: 998)
for IR commands:
   
   
   

Print this item

  "KCS" v3 RS485 Modbus protocol document
Posted by: admin - 02-15-2025, 03:32 AM - Forum: "KCS" v3 firmware - No Replies

Note: This protocol document use for KinCony ESP32-S3 smart controller:
you need to download KCS v3 firmware to ESP32-S3 firstly.
Different board will have different channel of digital output, digital input , ADC, DAC,IR, RF. So the protocol is same , just according to the hardware resource to set channel number.

.pdf   KCSv3-protocol-ModBus.pdf (Size: 264.96 KB / Downloads: 1017)
for IR commands:
   
   
   

Print this item

  "KCS" v3 UDP STRING protocol document for Loxone Miniserver
Posted by: admin - 02-15-2025, 03:21 AM - Forum: "KCS" v3 firmware - No Replies

Protocol

1: control digital output (DO)
Loxone send to KCS: RELAY-SET-255,2,1  //turn ON DO2
KCS back to Loxone: RELAY-SET-255,2,1,OK
Loxone send to KCS: RELAY-SET-255,2,0  //turn OFF DO2
KCS back to Loxone: RELAY-SET-255,2,0,OK

2: digital output (DO) state feedback
KCS back to Loxone: RELAY-SET-255,3,1,OK //DO3 is ON
KCS back to Loxone: RELAY-SET-255,3,0,OK //DO3 is OFF

3: digital input (DI) state feedback
KCS back to Loxone: RELAY-GET_INPUT-255,4,1,OK  //DI4 is ON
KCS back to Loxone: RELAY-GET_INPUT-255,4,0,OK  //DI4 is OFF

4: control analog output (AO)
Loxone send to KCS: RELAY-SET_DAC_255,2,0  //channel 2 AO=0  0%
KCS back to Loxone: RELAY-SET_DAC_255,2,0,OK
Loxone send to KCS: RELAY-SET_DAC_255,3,255  //channel 3 AO=255 100%
KCS back to Loxone: RELAY-SET_DAC_255,3,255,OK

5: analog output (AO) state feedback
KCS back to Loxone: RELAY-GET_DAC_255,1,107,OK  //channel 1 AO=107
KCS back to Loxone: RELAY-GET_DAC_255,2,255,OK  //channel 2 AO=255

6: analog input (AI) state feedback
KCS back to Loxone: RELAY-GET_ADC-255,1,2670,OK  //channel1 ADC is 2670

7: RF433M receiver state feedback
KCS back to Loxone: RELAY-GET_RF-255,2,1,OK  //channel2 RF sensor is ON
KCS back to Loxone: RELAY-GET_RF-255,3,0,OK  //channel3 RF sensor is OFF

8: temperature & humidity sensor feedback
KCS back to Loxone:RELAY-GET_SENSOR-255,3,16.8,46.8,OK //channel3 sensor temperature=16.8℃ humidity=46.8%
KCS back to Loxone:RELAY-GET_SENSOR-255,4,27.8,-100,OK //channel4 sensor temperature=27.8℃ without humidity

9: Learn IR (MAX support 192 IR signals):
Loxone send to KCS: RELAY-IR-LEARN-255,1,2    // begin learn IR signal ID=1, send by IR tube-2
KCS back to Loxone: RELAY-IR-LEARN-255,1,OK  // success
KCS back to Loxone: RELAY-IR-LEARN-255,1,TIMEOUT  // timeout

10: Send IR
Loxone send to KCS: RELAY-IR-RUN-255,1  // send IR signal ID=1
KCS back to Loxone: RELAY-IR-RUN-255,1,OK

11: Delete IR
Loxone send to KCS: RELAY-IR-DEL-255,1  // delete learned IR signal ID=1
KCS back to Loxone: RELAY-IR-DEL-255,1,OK

download Loxone config demo project file from KinCony forum

Print this item

  "KCS" v3.7.0 firmware BIN file download
Posted by: admin - 02-15-2025, 03:18 AM - Forum: "KCS" v3 firmware - No Replies

v3.7.0 improvement:
1. add support KC868-A6v3, KC868-A16v3, AG8, T16M controller.
2. fixed some bugs.



Attached Files
.zip   KCS_A6V3_V3.7.0.zip (Size: 1 MB / Downloads: 876)
.zip   KCS_A16V3_V3.7.0.zip (Size: 1.08 MB / Downloads: 857)
.zip   KCS_A32PRO_V3.7.0.zip (Size: 1.04 MB / Downloads: 760)
.zip   KCS_AG8_V3.7.0.zip (Size: 1.03 MB / Downloads: 806)
.zip   KCS_B16M_V3.7.0.zip (Size: 1.07 MB / Downloads: 758)
.zip   KCS_F16_V3.7.0.zip (Size: 1.07 MB / Downloads: 748)
.zip   KCS_F24_V3.7.0.zip (Size: 1.07 MB / Downloads: 799)
.zip   KCS_T16M_V3.7.0.zip (Size: 1.02 MB / Downloads: 787)
Print this item

  KC868-A16v3 ESPHome yaml for home assistant
Posted by: admin - 02-15-2025, 03:01 AM - Forum: KC868-A16v3 - Replies (10)

Code:
esphome:
  name: a16v3
  friendly_name: a16v3
  platformio_options:
    board_build.flash_mode: dio

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: esp-idf

# Enable logging
logger:
  hardware_uart: USB_SERIAL_JTAG

api:

ethernet:
  type: W5500
  clk_pin: GPIO42
  mosi_pin: GPIO43
  miso_pin: GPIO44
  cs_pin: GPIO15
  interrupt_pin: GPIO2
  reset_pin: GPIO1

i2c:
   - id: bus_a
     sda: 9
     scl: 10
     scan: true
     frequency: 400kHz

# Example configuration entry
pcf8574:
  - id: 'pcf8574_hub_out_1'  # for output channel 1-8
    address: 0x24

  - id: 'pcf8574_hub_out_2'  # for output channel 9-16
    address: 0x25

  - id: 'pcf8574_hub_in_1'  # for input channel 1-8
    address: 0x21

  - id: 'pcf8574_hub_in_2'  # for input channel 9-16
    address: 0x22

uart:
  - id: uart_1
    baud_rate: 9600
    debug:
      direction: BOTH
      dummy_receiver: true
      after:
        timeout: 10ms
    tx_pin: 16
    rx_pin: 17



switch:

  - platform: uart
    uart_id: uart_1
    name: "RS485 Button"
    data: [0x11, 0x22, 0x33, 0x44, 0x55]

  - platform: gpio
    name: "a16v3_output1"
    pin:
      pcf8574: pcf8574_hub_out_1
      number: 0
      mode: OUTPUT
      inverted: true

  - platform: gpio
    name: "a16v3_output2"
    pin:
      pcf8574: pcf8574_hub_out_1
      number: 1
      mode: OUTPUT
      inverted: true

  - platform: gpio
    name: "a16v3_output3"
    pin:
      pcf8574: pcf8574_hub_out_1
      number: 2
      mode: OUTPUT
      inverted: true

  - platform: gpio
    name: "a16v3_output4"
    pin:
      pcf8574: pcf8574_hub_out_1
      number: 3
      mode: OUTPUT
      inverted: true

  - platform: gpio
    name: "a16v3_output5"
    pin:
      pcf8574: pcf8574_hub_out_1
      number: 4
      mode: OUTPUT
      inverted: true

  - platform: gpio
    name: "a16v3_output6"
    pin:
      pcf8574: pcf8574_hub_out_1
      number: 5
      mode: OUTPUT
      inverted: true

  - platform: gpio
    name: "a16v3_output7"
    pin:
      pcf8574: pcf8574_hub_out_1
      number: 6
      mode: OUTPUT
      inverted: true

  - platform: gpio
    name: "a16v3_output8"
    pin:
      pcf8574: pcf8574_hub_out_1
      number: 7
      mode: OUTPUT
      inverted: true

  - platform: gpio
    name: "a16v3_output9"
    pin:
      pcf8574: pcf8574_hub_out_2
      number: 0
      mode: OUTPUT
      inverted: true

  - platform: gpio
    name: "a16v3_output10"
    pin:
      pcf8574: pcf8574_hub_out_2
      number: 1
      mode: OUTPUT
      inverted: true

  - platform: gpio
    name: "a16v3_output11"
    pin:
      pcf8574: pcf8574_hub_out_2
      number: 2
      mode: OUTPUT
      inverted: true

  - platform: gpio
    name: "a16v3_output12"
    pin:
      pcf8574: pcf8574_hub_out_2
      number: 3
      mode: OUTPUT
      inverted: true

  - platform: gpio
    name: "a16v3_output13"
    pin:
      pcf8574: pcf8574_hub_out_2
      number: 4
      mode: OUTPUT
      inverted: true

  - platform: gpio
    name: "a16v3_output14"
    pin:
      pcf8574: pcf8574_hub_out_2
      number: 5
      mode: OUTPUT
      inverted: true

  - platform: gpio
    name: "a16v3_output15"
    pin:
      pcf8574: pcf8574_hub_out_2
      number: 6
      mode: OUTPUT
      inverted: true

  - platform: gpio
    name: "a16v3_output16"
    pin:
      pcf8574: pcf8574_hub_out_2
      number: 7
      mode: OUTPUT
      inverted: true


binary_sensor:

  - platform: gpio
    name: "a16v3_input1"
    pin:
      pcf8574: pcf8574_hub_in_1
      number: 0
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "a16v3_input2"
    pin:
      pcf8574: pcf8574_hub_in_1
      number: 1
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "a16v3_input3"
    pin:
      pcf8574: pcf8574_hub_in_1
      number: 2
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "a16v3_input4"
    pin:
      pcf8574: pcf8574_hub_in_1
      number: 3
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "a16v3_input5"
    pin:
      pcf8574: pcf8574_hub_in_1
      number: 4
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "a16v3_input6"
    pin:
      pcf8574: pcf8574_hub_in_1
      number: 5
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "a16v3_input7"
    pin:
      pcf8574: pcf8574_hub_in_1
      number: 6
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "a16v3_input8"
    pin:
      pcf8574: pcf8574_hub_in_1
      number: 7
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "a16v3_input9"
    pin:
      pcf8574: pcf8574_hub_in_2
      number: 0
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "a16v3_input10"
    pin:
      pcf8574: pcf8574_hub_in_2
      number: 1
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "a16v3_input11"
    pin:
      pcf8574: pcf8574_hub_in_2
      number: 2
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "a16v3_input12"
    pin:
      pcf8574: pcf8574_hub_in_2
      number: 3
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "a16v3_input13"
    pin:
      pcf8574: pcf8574_hub_in_2
      number: 4
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "a16v3_input14"
    pin:
      pcf8574: pcf8574_hub_in_2
      number: 5
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "a16v3_input15"
    pin:
      pcf8574: pcf8574_hub_in_2
      number: 6
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "a16v3_input16"
    pin:
      pcf8574: pcf8574_hub_in_2
      number: 7
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "A16v3 IO47"
    pin:
      number: 47
      inverted: true

  - platform: gpio
    name: "A16v3 IO48"
    pin:
      number: 48
      inverted: true

  - platform: gpio
    name: "A16v3 IO38"
    pin:
      number: 38
      inverted: true

  - platform: gpio
    name: "A16v3 IO39"
    pin:
      number: 39
      inverted: true

  - platform: gpio
    name: "A16v3 IO40"
    pin:
      number: 40
      inverted: true

  - platform: gpio
    name: "A16v3 IO41"
    pin:
      number: 41
      inverted: true

  - platform: gpio
    name: "A16v3 DW"
    pin:
      number: 0
      inverted: true

sensor:
  - platform: adc
    pin: 4
    name: "A16v3 A1 Voltage"
    update_interval: 5s
    attenuation: 11db
    filters:
      - lambda:
          if (x >= 3.11) {
            return x * 1.60256;
          } else if (x <= 0.15) {
            return 0;
          } else {
            return x * 1.51;
          }
  - platform: adc
    pin: 6
    name: "A16v3 A2 Voltage"
    update_interval: 5s
    attenuation: 11db
    filters:
      # - multiply: 1.51515
      - lambda:
          if (x >= 3.11) {
            return x * 1.60256;
          } else if (x <= 0.15) {
            return 0;
          } else {
            return x * 1.51;
          }
  - platform: adc
    pin: 7
    name: "A16v3 A3 Current"
    update_interval: 5s
    unit_of_measurement: mA
    attenuation: 11db
    filters:
      - multiply: 6.66666666
  - platform: adc
    pin: 5
    name: "A16v3 A4 Current"
    update_interval: 5s
    unit_of_measurement: mA
    attenuation: 11db
    filters:
      - multiply: 6.66666666

web_server:
  port: 80

# font:
#   - file: "gfonts://Roboto"
#     id: roboto
#     size: 20

# display:
#   - platform: ssd1306_i2c
#     i2c_id: bus_a
#     model: "SSD1306 128x64"
#     address: 0x3C
#     lambda: |-
#       it.printf(0, 0, id(roboto), "A16v3");
download yaml file: 
.txt   A16v3-ESPHome.txt (Size: 7.81 KB / Downloads: 1488)

Print this item

  KC868-A16v3 ESP32-S3 IO pins define
Posted by: admin - 02-15-2025, 03:00 AM - Forum: KC868-A16v3 - Replies (14)

ANALOG_A1  4
ANALOG_A2  6
ANALOG_A3  7
ANALOG_A4  5

IIC Bus:

SDA:GPIO9
SCL:GPIO10

Relay_IIC_address 0x24
Relay_IIC_address 0x25

Input_IIC_address 0x21
Input_IIC_address 0x22

24C02 EPROM i2c address: 0x50
DS3231 RTC i2c address: 0x68
SSD1306 display: i2c address:0x3c

-----------------

1-wire (pull-up resistance on PCB):
1-wire1:GPIO47
1-wire2:GPIO48
1-wire3:GPIO38

free GPIOs (without pull-up resistance on PCB):
free gpio-1:GPIO39
free gpio-2:GPIO40
free gpio-3:GPIO41
-----------------

Ethernet (W5500) I/O define:

clk_pin: GPIO42
mosi_pin: GPIO43
miso_pin: GPIO44
cs_pin: GPIO15

interrupt_pin: GPIO2
reset_pin: GPIO1

--------------------
RS485:
RXD:GPIO17
TXD:GPIO16

--------------------
SD Card:
SPI-MOSI:GPIO12
SPI-SCK:GPIO13
SPI-MISO:GPIO14
SPI-CS:GPIO11
SD-CD:GPIO21

--------------------
RF433MHz wireless receiver: GPIO8
RF433MHz wireless sender: GPIO18

free gpio on PCB (beside ESP32-S3 module)
GPIO39
GPIO40
GPIO41

Print this item

  Page kincony problem
Posted by: balcerseb - 02-14-2025, 03:34 PM - Forum: KC868-A16 - Replies (1)

Gentlemen in the manual for the KC868 A16 after logging into the software the input web page in the manual looks like this (see first picture) and I am missing the ON, OFF TOGLLE table how to fix this anyone has an idea because you can't set the control

   
   

Print this item

  KCS v3 for IR protocol
Posted by: admin - 02-14-2025, 05:27 AM - Forum: KC868-AG / AG Pro / AG8 / Z1 - Replies (17)

UDP Server / TCP Server / Loxone / RS232:

Learn IR (MAX support 192 IR signals):

send:  RELAY-IR-LEARN-255,1,2    // begin learn IR signal ID=1, send by IR tube-2
receive: RELAY-IR-LEARN-255,1,OK  // success
receive: RELAY-IR-LEARN-255,1,TIMEOUT  // timeout

send: RELAY-IR-LEARN-255,200  // if send IR exceeding the maximum IR ID(MAX=192)
receive: RELAY-IR-LEARN-255,200,ERROR  // error

Send IR:

send: RELAY-IR-RUN-255,1  // send IR signal ID=1
receive: RELAY-IR-RUN-255,1,OK

Delete IR:

send: RELAY-IR-DEL-255,1  // delete learned IR signal ID=1
receive: RELAY-IR-DEL-255,1,OK
---------------------------------------------------------------
UDP Client / TCP Client / Loxone / RS232:

IR triggered and auto feedback: (ONLY use for NEC and RC5 IR code)

RELAY-GET_IR-255,1,1,OK  // trigger
RELAY-GET_IR-255,1,0,OK  // not trigger

   
   
---------------------------------------------------------------

MQTT:

Learn IR:  // begin learn IR signal ID=1, send by IR tube-2
payload:
{
  "learn_ir": {
    "value": 1,
    "tx_channel": 2
  }
}

Delete IR:  // delete learned IR signal ID=1

payload:
{
  "run_ir": {
    "value": 1
  }
}

IR triggered and auto feedback:  // trigger when value=1  (ONLY use for NEC and RC5 IR code)

payload:

// trigger begin
{
  "ir1": {
    "value": 1
  }
}

// trigger end
{
  "ir1": {
    "value": 0
  }
}
   
   
   
---------------------------------------------------------------
RS485 Modbus

// 01: Address 
// 08: Function code - Learn IR
// 00 05: Register address, 05 means ID=6 because ID begin with 0
// 00 04: Send IR tube, values range from 1-8. 04 means the 4th channel 
// F1 C9: CRC 
[Tx] 01 08 00 05 00 04 F1 C9 

// 01: Address 
// 08: Function code - Learn IR
// 02: Data length 
// 00 05: Data value, corresponding to the register address when transmitting 
// 7A 63: CRC 
[Rx] 01 08 02 00 05 7A 63 

---------------------------

// 01: Address 
// 07: Function code - Send IR
// 00 02: Register address, send IR at index 2, which ID=3 
// 00 01: Register count, fixed value 1, only one infrared can be controlled at a time 
// D4 0A: CRC 
[Tx] 01 07 00 02 00 01 D4 0A 

// 01: Address 
// 07: Function code - Send IR
// 02: Data length 
// 00 02: Data value, corresponding to the register address when transmitting 
// 38 B5: CRC 
[Rx] 01 07 02 00 02 38 B5 

---------------------------

// 01: Address 
// 09: Function code - Delete IR
// 00 07: Register address, 07 means ID=8 
// 00 01: Register count, fixed value 1, only one infrared can be deleted at a time 
// AD CA: CRC 
[Tx][11:32:00.669] 01 09 00 07 00 01 AD CA 

// 01: Address 
// 09: Function code - Delete IR
// 02: Data length 
// 00 07: Data value, corresponding to the register address when transmitting 
// FA 5E: CRC 
[Rx][11:32:01.959] 01 09 02 00 07 FA 5E 

   
   
   

Print this item

  KCS v3 for IR protocol
Posted by: admin - 02-14-2025, 05:27 AM - Forum: KC868-AGv3 - Replies (17)

UDP Server / TCP Server / Loxone / RS232:

Learn IR (MAX support 192 IR signals):

send:  RELAY-IR-LEARN-255,1,2    // begin learn IR signal ID=1, send by IR tube-2
receive: RELAY-IR-LEARN-255,1,OK  // success
receive: RELAY-IR-LEARN-255,1,TIMEOUT  // timeout

send: RELAY-IR-LEARN-255,200  // if send IR exceeding the maximum IR ID(MAX=192)
receive: RELAY-IR-LEARN-255,200,ERROR  // error

Send IR:

send: RELAY-IR-RUN-255,1  // send IR signal ID=1
receive: RELAY-IR-RUN-255,1,OK

Delete IR:

send: RELAY-IR-DEL-255,1  // delete learned IR signal ID=1
receive: RELAY-IR-DEL-255,1,OK
---------------------------------------------------------------
UDP Client / TCP Client / Loxone / RS232:

IR triggered and auto feedback: (ONLY use for NEC and RC5 IR code)

RELAY-GET_IR-255,1,1,OK  // trigger
RELAY-GET_IR-255,1,0,OK  // not trigger

   
   
---------------------------------------------------------------

MQTT:

Learn IR:  // begin learn IR signal ID=1, send by IR tube-2
payload:
{
  "learn_ir": {
    "value": 1,
    "tx_channel": 2
  }
}

Delete IR:  // delete learned IR signal ID=1

payload:
{
  "run_ir": {
    "value": 1
  }
}

IR triggered and auto feedback:  // trigger when value=1  (ONLY use for NEC and RC5 IR code)

payload:

// trigger begin
{
  "ir1": {
    "value": 1
  }
}

// trigger end
{
  "ir1": {
    "value": 0
  }
}
   
   
   
---------------------------------------------------------------
RS485 Modbus

// 01: Address 
// 08: Function code - Learn IR
// 00 05: Register address, 05 means ID=6 because ID begin with 0
// 00 04: Send IR tube, values range from 1-8. 04 means the 4th channel 
// F1 C9: CRC 
[Tx] 01 08 00 05 00 04 F1 C9 

// 01: Address 
// 08: Function code - Learn IR
// 02: Data length 
// 00 05: Data value, corresponding to the register address when transmitting 
// 7A 63: CRC 
[Rx] 01 08 02 00 05 7A 63 

---------------------------

// 01: Address 
// 07: Function code - Send IR
// 00 02: Register address, send IR at index 2, which ID=3 
// 00 01: Register count, fixed value 1, only one infrared can be controlled at a time 
// D4 0A: CRC 
[Tx] 01 07 00 02 00 01 D4 0A 

// 01: Address 
// 07: Function code - Send IR
// 02: Data length 
// 00 02: Data value, corresponding to the register address when transmitting 
// 38 B5: CRC 
[Rx] 01 07 02 00 02 38 B5 

---------------------------

// 01: Address 
// 09: Function code - Delete IR
// 00 07: Register address, 07 means ID=8 
// 00 01: Register count, fixed value 1, only one infrared can be deleted at a time 
// AD CA: CRC 
[Tx][11:32:00.669] 01 09 00 07 00 01 AD CA 

// 01: Address 
// 09: Function code - Delete IR
// 02: Data length 
// 00 07: Data value, corresponding to the register address when transmitting 
// FA 5E: CRC 
[Rx][11:32:01.959] 01 09 02 00 07 FA 5E 

   
   
   

Print this item

  KCS v3 for IR protocol
Posted by: admin - 02-14-2025, 05:27 AM - Forum: "KCS" v3 firmware - Replies (17)

UDP Server / TCP Server / Loxone / RS232:

Learn IR (MAX support 192 IR signals):

send:  RELAY-IR-LEARN-255,1,2    // begin learn IR signal ID=1, send by IR tube-2
receive: RELAY-IR-LEARN-255,1,OK  // success
receive: RELAY-IR-LEARN-255,1,TIMEOUT  // timeout

send: RELAY-IR-LEARN-255,200  // if send IR exceeding the maximum IR ID(MAX=192)
receive: RELAY-IR-LEARN-255,200,ERROR  // error

Send IR:

send: RELAY-IR-RUN-255,1  // send IR signal ID=1
receive: RELAY-IR-RUN-255,1,OK

Delete IR:

send: RELAY-IR-DEL-255,1  // delete learned IR signal ID=1
receive: RELAY-IR-DEL-255,1,OK
---------------------------------------------------------------
UDP Client / TCP Client / Loxone / RS232:

IR triggered and auto feedback: (ONLY use for NEC and RC5 IR code)

RELAY-GET_IR-255,1,1,OK  // trigger
RELAY-GET_IR-255,1,0,OK  // not trigger

   
   
---------------------------------------------------------------

MQTT:

Learn IR:  // begin learn IR signal ID=1, send by IR tube-2
payload:
{
  "learn_ir": {
    "value": 1,
    "tx_channel": 2
  }
}

Delete IR:  // delete learned IR signal ID=1

payload:
{
  "run_ir": {
    "value": 1
  }
}

IR triggered and auto feedback:  // trigger when value=1  (ONLY use for NEC and RC5 IR code)

payload:

// trigger begin
{
  "ir1": {
    "value": 1
  }
}

// trigger end
{
  "ir1": {
    "value": 0
  }
}
   
   
   
---------------------------------------------------------------
RS485 Modbus

// 01: Address 
// 08: Function code - Learn IR
// 00 05: Register address, 05 means ID=6 because ID begin with 0
// 00 04: Send IR tube, values range from 1-8. 04 means the 4th channel 
// F1 C9: CRC 
[Tx] 01 08 00 05 00 04 F1 C9 

// 01: Address 
// 08: Function code - Learn IR
// 02: Data length 
// 00 05: Data value, corresponding to the register address when transmitting 
// 7A 63: CRC 
[Rx] 01 08 02 00 05 7A 63 

---------------------------

// 01: Address 
// 07: Function code - Send IR
// 00 02: Register address, send IR at index 2, which ID=3 
// 00 01: Register count, fixed value 1, only one infrared can be controlled at a time 
// D4 0A: CRC 
[Tx] 01 07 00 02 00 01 D4 0A 

// 01: Address 
// 07: Function code - Send IR
// 02: Data length 
// 00 02: Data value, corresponding to the register address when transmitting 
// 38 B5: CRC 
[Rx] 01 07 02 00 02 38 B5 

---------------------------

// 01: Address 
// 09: Function code - Delete IR
// 00 07: Register address, 07 means ID=8 
// 00 01: Register count, fixed value 1, only one infrared can be deleted at a time 
// AD CA: CRC 
[Tx][11:32:00.669] 01 09 00 07 00 01 AD CA 

// 01: Address 
// 09: Function code - Delete IR
// 02: Data length 
// 00 07: Data value, corresponding to the register address when transmitting 
// FA 5E: CRC 
[Rx][11:32:01.959] 01 09 02 00 07 FA 5E 

   
   
   

Print this item