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

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 8,335
» Latest member: fiber6465
» Forum threads: 3,638
» Forum posts: 18,791

Full Statistics

Online Users
There are currently 18 online users.
» 0 Member(s) | 8 Guest(s)
AhrefsBot, Amazonbot, Bing, Google, bot

Latest Threads
kWh resolution
Forum: N30
Last Post: admin
3 hours ago
» Replies: 1
» Views: 3
Goes Offline
Forum: KC868-E16S/E16P
Last Post: admin
4 hours ago
» Replies: 3
» Views: 19
WHATS FIRMWARE
Forum: "KCS" v3 firmware
Last Post: admin
4 hours ago
» Replies: 7
» Views: 634
kincony a16 modbus + Wall...
Forum: KC868-A series and Uair Smart Controller
Last Post: admin
4 hours ago
» Replies: 1
» Views: 13
OUTPUT DO1
Forum: KC868-AIO
Last Post: Lupi84
Yesterday, 07:55 AM
» Replies: 8
» Views: 71
sample code to receive ht...
Forum: F16
Last Post: admin
Yesterday, 04:53 AM
» Replies: 10
» Views: 54
N20 Problem with Home Ass...
Forum: N20
Last Post: Luismical1
12-29-2025, 04:13 PM
» Replies: 5
» Views: 40
Loxone RS485
Forum: KinCony integrate with Loxone home automation
Last Post: admin
12-29-2025, 01:36 PM
» Replies: 11
» Views: 1,168
adaptor V2 and KC868 h32b...
Forum: KC868-ATC / Tuya adapter V2
Last Post: admin
12-29-2025, 08:25 AM
» Replies: 3
» Views: 55
Problems and general Feed...
Forum: N30
Last Post: admin
12-28-2025, 11:58 PM
» Replies: 1
» Views: 18

  Questions about KinCony String Protocol over RS485 for ESPHome Integration
Posted by: itzek - 06-12-2025, 05:49 AM - Forum: KC868-AK - No Replies

Hello KinCony Admin
I want to send activation commands from 1 KC868-A to 2 different H32B PRO controllers.
I'm integrating a KC868-AK ESP32 board (as an input controller) with other KinCony relay boards (as slaves) using RS485 and your String Protocol. I've seen the KC868-A-series-protocol-String_firmware_V2-2.pdf document and understand that the String Protocol is supported over RS485.

  1. String Protocol DEV_ID: How is the DEV_ID (e.g., "255" in RELAY-KEY-255,id,1) set/configured on KinCony relay boards for RS485 String Protocol? Is there a default, and can it be changed?
  2. RS485 Settings: What are the exact default/recommended RS485 settings (Baud Rate, Stop Bits, Parity) for KinCony boards using the String Protocol?
  3. RTS Pin for KC868-AK RS485: Is an RTS pin required for RS485 communicationon the KC868-AK ESP32 with the String Protocol? If so, which GPIO pin and is it active HIGH/LOW?
  4. Relay ID Mapping:  Does the id in RELAY-KEY-DEV_ID,id,1 directly correspond to the physical relay number (e.g., id=1 for Relay 1, id=16 for Relay 16)?
Thank you for your help

Print this item

  A32 Pro Cross-Controller Control
Posted by: v1rtus - 06-11-2025, 09:44 PM - Forum: KC868-A series and Uair Smart Controller - Replies (7)

I have two A32 Pro controllers—one installed on each floor. I would like to achieve the following functionality: when input 25 on controller 1 is activated, the output on controller 2 should toggle accordingly.
Is it possible to implement this directly using the controllers' software, or would I need to use an intermediate server or external device to achieve this?

Thanks in advance.

Print this item

  rs485 SHT
Posted by: Read.0h1 - 06-11-2025, 02:17 PM - Forum: F16 - Replies (5)

I apologize for my lack of knowledge here but I am trying to set up an SHT temperature and humidity sensor (purchased through your website) to my F16 board. I found YAML in a different thread and copied it and changed the pin numbers to match my board. I am using ESPhome through Homeassistant. The YAML pertaining to the temperature humidity sensor is as follows:

uart:
  - id: uart_modbus
    baud_rate: 9600
    tx_pin: 16
    rx_pin: 17
# Config Modbus
modbus:
  uart_id: uart_modbus
  id: modbus1
modbus_controller:
  - id: modbus_sensor
    address: 0x01  # device address
    modbus_id: modbus1
sensor:

  - platform: modbus_controller
    modbus_controller_id: modbus_sensor
    name: "RS485 Temperature Sensor"
    id: temperature_sensor
    address: 0x0000
    register_type: holding
    value_type: U_WORD
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    filters:
      - lambda: if (x < 10000) return x * 0.1; else return -1 * (x - 10000) * 0.1;
   
  - platform: modbus_controller
    modbus_controller_id: modbus_sensor
    name: "RS485 Humidity Sensor"
    id: humidity_sensor
    address: 0x0001
    register_type: holding
    value_type: U_WORD
    unit_of_measurement: "%"
    accuracy_decimals: 1
    filters:
      - multiply: 0.1



The sensors read as unavailalbe in homeassistant. I have a feeling that the issue may be in the address of the specific sensors, but I have no idea since I have never used the RS485 pins before.

Print this item

  DS3231 battery
Posted by: cln - 06-11-2025, 07:36 AM - Forum: KC868-A16v3 - Replies (2)

Hello,
Can you tell me the reference number of the battery to insert into the holder to keep time?
I couldn't find this information in the documentation.
Kind regards.

Print this item

  F-24: Problem using built-in 433MHz receiver with ESPHome (GPIO40 issue)
Posted by: mwsieminski - 06-10-2025, 05:23 PM - Forum: F24 - Replies (3)

Hello,
I'm using the Kincony F-24 controller and trying to get the built-in 433MHz receiver working under ESPHome.
I get the following error:

Code:
[15:27:57][C][remote_receiver.esp32:161]: Remote Receiver:
[15:27:57][C][remote_receiver.esp32:162]:   Pin: GPIO40
[15:27:57][C][remote_receiver.esp32:173]:   Channel: 0
[15:27:57][C][remote_receiver.esp32:174]:   RMT memory blocks: 3
[15:27:57][C][remote_receiver.esp32:175]:   Clock divider: 80
[15:27:57][C][remote_receiver.esp32:178]:   Tolerance: 25%
[15:27:57][C][remote_receiver.esp32:179]:   Filter out pulses shorter than: 50 us
[15:27:57][C][remote_receiver.esp32:180]:   Signal is done after 10000 us of no changes
[15:27:57][E][remote_receiver.esp32:183]: Configuring RMT driver failed: ESP_ERR_INVALID_ARG (in rmt_config)
[15:27:57][E][component:085]:   Component remote_receiver is marked FAILED


Below is part of my ESPHome YAML configuration:
Code:
esphome:
  name: f24
  friendly_name: "Kincony F24 Controller"
  project:
    name: kincony.f24-smart-home
    version: "1.0"
 
esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  id: ha_api
  encryption:
    key: !secret

ota:
  platform: esphome
  password: !secret

ethernet:
  type: W5500
  clk_pin: GPIO42
  mosi_pin: GPIO43
  miso_pin: GPIO44
  cs_pin: GPIO41
  interrupt_pin: GPIO2
  reset_pin: GPIO1
  domain: .local
  id: ethernet_interface


web_server:
  port: 80

i2c:
  - id: bus_a
    sda: GPIO8
    scl: GPIO18
    scan: true
    frequency: 400kHz

pcf8574:
  - id: 'pcf8574_outputs_9_24'
    i2c_id: bus_a
    address: 0x25
  - id: 'pcf8574_inputs_1_16'
    i2c_id: bus_a
    address: 0x24
  - id: 'pcf8574_outputs_1_8_inputs_17_24'
    i2c_id: bus_a
    address: 0x26

globals:
  - id: current_ip_address
    type: std::string
    restore_value: no
    initial_value: '"Booting..."'
  - id: ha_status_text
    type: std::string
    restore_value: no
    initial_value: '"Offline"'
  - id: rf_code_display
    type: std::string
    restore_value: no
    initial_value: '""'
  - id: click_counts
    type: int
    initial_value: '0'


# Sekcja definiująca fizyczne wyjścia (przekaźniki)
output:
  - platform: gpio
    id: output_wiatrolap
    pin: { pcf8574: pcf8574_outputs_1_8_inputs_17_24, number: 12, mode: OUTPUT, inverted: true }
  - platform: gpio
    id: output_salon
    pin: { pcf8574: pcf8574_outputs_1_8_inputs_17_24, number: 13, mode: OUTPUT, inverted: true }


binary_sensor:
  - platform: status
    name: "Kincony F24 Status"
    id: f24_status_ha
  - platform: template
    name: "Kincony F24 Ethernet Status"
    id: ethernet_connected_status
    lambda: |-
      return id(ethernet_interface).is_connected();
    on_press:
      then:
        - lambda: |-
            id(current_ip_address) = id(ethernet_interface).get_ip_addresses()[0].str();
            id(ha_status_text) = "ETH OK";
            ESP_LOGI("ethernet", "Ethernet connected. IP: %s", id(current_ip_address).c_str());
    on_release:
      then:
        - lambda: |-
            id(current_ip_address) = "AP Mode";
            id(ha_status_text) = "AP Mode";
            ESP_LOGW("ethernet", "Ethernet disconnected. Activating AP mode.");
  - platform: template
    id: wifi_ap_active
    name: "Kincony F24 WiFi AP Active"
    internal: true
    lambda: |-
      return !id(ethernet_interface).is_connected();


  - platform: gpio
    name: "Włącznik Wiatrołap"
    pin:
      pcf8574: pcf8574_inputs_1_16
      number: 0
      inverted: true
    filters:
      - delayed_on: 10ms
    on_press:
      then:
        - lambda: 'id(click_counts) = 0;'
    on_multi_click:
      - timing:
          - ON for at most 600ms
          - OFF for at most 600ms
          - ON for at most 600ms
          - OFF for at least 200ms
        then:
          - homeassistant.event:
              event: esphome.wiatrolap_double_click
              data:
                input: "1"
          - logger.log: "Włącznik Wiatrołap: Dwuklik"
      - timing:
          - ON for at most 600ms
          - OFF for at least 351ms
        then:
          - light.toggle: light_wiatrolap
          - logger.log: "Wlacznik Wiatrołap: Pojedynczy klik"

  - platform: gpio
    name: "Włącznik Salon"
    pin:
      pcf8574: pcf8574_inputs_1_16
      number: 1
      inverted: true
    filters:
      - delayed_on: 10ms
    on_press:
      then:
        - lambda: 'id(click_counts) = 0;'
    on_multi_click:
      - timing:
          - ON for at most 600ms
          - OFF for at most 600ms
          - ON for at most 600ms
          - OFF for at least 200ms
        then:
          - homeassistant.event:
              event: esphome.salon_double_click
          - logger.log: "Włącznik Salon: Dwuklik"
      - timing:
          - ON for at most 600ms
          - OFF for at least 351ms
        then:
          - light.toggle: light_salon
          - logger.log: "Wlacznik Salon: Pojedynczy klik"

 

# Sekcja definiująca logiczne encje świateł
light:
  - platform: binary
    name: "Wiatrołap"
    id: light_wiatrolap
    output: output_wiatrolap
  - platform: binary
    name: "Salon"
    id: light_salon
    output: output_salon

#normal version for RF receiver - not working
#remote_receiver:
#  pin:
#    number: GPIO40
#    inverted: true
#  dump:
#    - rc_switch
#  tolerance: 50%
#  filter: 250us
#  idle: 4ms
#  buffer_size: 2kb

#  on_rc_switch:
#    then:
#     - logger.log:
#         format: "RC Switch received. Code: %u"
#         args: [ 'x.code' ]
#    - lambda: |-
#        id(rf_code_display) = "RC: " + to_string(x.code);
#    - homeassistant.event:
#         event: esphome.f24_rf_received
#         data:
#          code: !lambda 'return x.code;'

# Minimal version for testing - not working
remote_receiver:
  pin:
    number: GPIO40
    inverted: true
  dump: rc_switch
 
button:
  - platform: restart
    name: "Kincony F24 Restart"

font:
  - file: "gfonts://Roboto"
    id: roboto_12
    size: 12
  - file: "gfonts://Roboto"
    id: roboto_10
    size: 10

display:
  - platform: ssd1306_i2c
    id: oled_display
    model: "SSD1306 128x64"
    address: 0x3C
    i2c_id: bus_a
    update_interval: 2s
    pages:
      - id: page1
        lambda: |-
          it.strftime(0, 0, id(roboto_10), "%H:%M:%S", id(homeassistant_time).now());
          it.print(0, 12, id(roboto_12), id(current_ip_address).c_str());
          it.print(0, 28, id(roboto_12), id(ha_status_text).c_str());
          if (!id(rf_code_display).empty()) {
            it.print(0, 44, id(roboto_12), id(rf_code_display).c_str());
          }
          it.horizontal_line(0, 57, 128);
          it.printf(0, 58, id(roboto_10), "F24 Controller");;
         
time:
  - platform: homeassistant
    id: homeassistant_time
    on_time:
      - seconds: 0
        minutes: 0
        then:
          - logger.log: "Synchronizing time with Home Assistant."

interval:
  - interval: 5s
    then:
      - lambda: |-
          if (id(ethernet_interface).is_connected()) {
            id(current_ip_address) = id(ethernet_interface).get_ip_addresses()[0].str();
            if (id(f24_status_ha).state) {
               id(ha_status_text) = "ETH HA OK";
            } else {
               id(ha_status_text) = "ETH OK";
            }
          } else if (id(wifi_ap_active).state) {
            id(current_ip_address) = "AP: 192.168.4.1";
            id(ha_status_text) = "AP Mode";
          } else {
            id(current_ip_address) = "No Network";
            id(ha_status_text) = "Offline";
          }
 

sensor:
  - platform: adc
    pin: GPIO5
    name: "F24 A1 Voltage"
    update_interval: 60s
    attenuation: 12db
  - platform: adc
    pin: GPIO7
    name: "F24 A2 Voltage"
    update_interval: 60s
    attenuation: 12db
  - platform: adc
    pin: GPIO6
    name: "F24 A3 Current"
    update_interval: 60s
    unit_of_measurement: mA
    attenuation: 12db
    filters:
      - multiply: 6.66666666
  - platform: adc
    pin: GPIO4
    name: "F24 A4 Current"
    update_interval: 60s
    unit_of_measurement: mA
    attenuation: 12db
    filters:
      - multiply: 6.66666666

My questions:
  1. Is the 433MHz receiver really connected to native GPIO40 of the ESP32?
  2. Is this GPIO compatible with the RMT hardware required by remote_receiver in ESPHome?
  3. Could the RF receiver be connected via an I²C expander (like PCF8574), or is it mapped internally in another way?

Thanks for your support!

Print this item

  free sample
Posted by: peisenberg - 06-10-2025, 01:44 PM - Forum: Apply for free sample product - No Replies

I would like to request a KC868-A4 Free Sample to start a new project (B) for a smart home product for grow automation of hydroponic lettuce. System will be connected to LLM
Thank you.

Print this item

  revive old broken H32B
Posted by: belar - 06-10-2025, 10:16 AM - Forum: KC868-HxB series Smart Controller - Replies (7)

Hi, I have an old H32B,
H32B200526353

I once flashed it with too big a firmware, and it stopped working for me, you said that I need ch341a to flash it now.
Please tell me the order of actions
I have a problem with it, I need to revive it

bootloader tool not work
i have MiniPro TL866

Print this item

Photo What's H32B firmware how to download
Posted by: kenlgj - 06-10-2025, 09:02 AM - Forum: KC868-HxB series Smart Controller - Replies (3)

dear:  l have a device ATT some photos. can you tell me what's firmware for it?

PLS




Attached Files Thumbnail(s)
           
Print this item

  Sharing My ESP-IDF Project: KC868-A32M and KC868-HAv2 with Modbus
Posted by: mrwolfj - 06-09-2025, 05:20 PM - Forum: DIY Project - Replies (2)

I'm sharing a project I developed using ESP-IDF with the KC868-A32M and KC868-HAv2 boards, incorporating Modbus communication. 

While I won't be continuing active development on this particular project, I wanted to open-source my work to help others who might be embarking on a similar journey.

Developing with these boards and Modbus can present unique challenges, and my aim here is to provide a starting point and demonstrate how I approached the integration using ESP-IDF. 

My hope is that this project will serve as a valuable reference and save you some time and effort in your own development. Feel free to explore the code, adapt it to your needs, and build upon it  Smile

You can find the project files here TrigPLC-ESP

Print this item

  Communication between two A16 over RS485 on ESPHOME with uart not working
Posted by: MarioR - 06-09-2025, 04:50 PM - Forum: KC868-A16 - Replies (5)

Hello,

i would like to have two A16s communicate with uart via the RS485 in the ESPHome.
The two RS485 are cross-connected A=>B and B=>A.

One A16 is the transmitter and the other is the receiver.

When the binary sensor is triggered, a message should be sent to the receiver, which should then trigger an action.

So far the log says that the transmitter is transmitting, but according to the log nothing arrives at the receiver.

Transmitter, i have shortened the yaml to the essential parts:

Code:
substitutions:
  mydelay_on: 50ms
  mydelay_off: 300ms
  uartcommand_allup: 0xAC, 0xAB, 0x01, 0x99
  uartcommand_alldown: 0xAC, 0xAB, 0x02, 0x99

esphome:
  name: roller-shutter-2
  friendly_name: Roller_Shutter_2
  on_boot:
    priority: -100
    then:
      - lambda: |-
          id(rollershutter_2).MySetup();
          id(rollershutter_2).InitialRun();

esp32:
  board: esp32dev
  framework:
    type: esp-idf

debug:

# Logger must be at least debug (default)
logger:
  level: DEBUG
  baud_rate: 9600

uart:
  - id: rs485
    tx_pin: GPIO13
    rx_pin: GPIO16
    baud_rate: 9600
    stop_bits: 1
    parity: NONE
    data_bits: 8
    debug:
      direction: BOTH
      dummy_receiver: false
      sequence:
        - lambda: |-
            UARTDebug::log_binary(direction, bytes, ';');
button:
  - platform: uart
    id: uart_master_all_up
    uart_id: rs485
    data: $uartcommand_allup
  - platform: uart
    uart_id: rs485
    id: uart_master_all_down
    data: $uartcommand_alldown

pcf8574:
  - id: inputs_1_8
    address: 0x22
    pcf8575: false
  - id: inputs_9_16
    address: 0x21
    pcf8575: false
  - id: outputs_1_8
    address: 0x24
    pcf8575: false
  - id: outputs_9_16
    address: 0x25
    pcf8575: false

binary_sensor:
  - platform: gpio
    name: "ZEN_I_U"
    pin:
      pcf8574: inputs_9_16
      number: 2
      mode: INPUT
      inverted: true
    filters:
      - delayed_on: $mydelay_on
      - delayed_off: $mydelay_off
    on_press:
      then:
        - uart.write: [0xAC, 0xAB, 0x01, 0x99]

  - platform: gpio
    name: "ZEN_I_D"
    pin:
      pcf8574: inputs_9_16
      number: 3
      mode: INPUT
      inverted: true
    filters:
      - delayed_on: $mydelay_on
      - delayed_off: $mydelay_off
    on_press:
      then:
        - uart.write: [0xAC, 0xAB, 0x02, 0x99]

  - platform: gpio
    name: "URL_I_UD"
    pin:
      pcf8574: inputs_9_16
      number: 4
      mode: INPUT
      inverted: true
    filters:
      - delayed_on: $mydelay_on
      - delayed_off: $mydelay_off
    on_press:
      then:
        - switch.turn_on: uart_master_holiday
    on_release:
      then:
        - switch.turn_off: uart_master_holiday

switch:
  - platform: template
    id: uart_master_holiday
    optimistic: True
    on_turn_on:
      then:
        - uart.write: [0xAC, 0xAB, 0x03, 0x99]
    on_turn_off:
      then:
        - uart.write: [0xAC, 0xAB, 0x04, 0x99]

Receiver, also  shortened:

Code:
esphome:
  name: roller-shutter-1
  friendly_name: Roller_Shutter_1

esp32:
  board: esp32dev
  framework:
    type: esp-idf

debug:

# Logger must be at least debug (default)
logger:
  level: DEBUG
  baud_rate: 9600

uart:
  - id: rs485
    tx_pin: GPIO13
    rx_pin: GPIO16
    baud_rate: 9600
    stop_bits: 1
    parity: NONE
    data_bits: 8
    debug:
      direction: RX
      dummy_receiver: true
      sequence:
        - lambda: |-
            UARTDebug::log_binary(direction, bytes, ';');

Where can i search the problem?

Best regards Mario

Print this item