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

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 8,986
» Latest member: bxsteez
» Forum threads: 3,962
» Forum posts: 20,103

Full Statistics

Online Users
There are currently 19 online users.
» 0 Member(s) | 11 Guest(s)
Amazonbot, Baidu, Bing, Crawl, bot

Latest Threads
No Wifi AP Initial Setup
Forum: KC868-A16v3
Last Post: bxsteez
43 minutes ago
» Replies: 2
» Views: 7
M30 configure yaml for ES...
Forum: KC868-M16 / M1 / MB / M30
Last Post: admin
5 hours ago
» Replies: 83
» Views: 23,009
A24 configure yaml for ES...
Forum: KinCony A24
Last Post: admin
5 hours ago
» Replies: 27
» Views: 7,529
4x a16 modbus between
Forum: KC868-A16
Last Post: admin
5 hours ago
» Replies: 3
» Views: 16
KC868-16A crashing in inf...
Forum: KC868-A series and Uair Smart Controller
Last Post: admin
5 hours ago
» Replies: 11
» Views: 419
B24M: Need help connectin...
Forum: KC868-A series and Uair Smart Controller
Last Post: admin
5 hours ago
» Replies: 1
» Views: 3
N10 smart energy meter ES...
Forum: N10
Last Post: admin
Yesterday, 11:50 AM
» Replies: 0
» Views: 6
N20 smart energy meter ES...
Forum: N20
Last Post: admin
Yesterday, 11:49 AM
» Replies: 0
» Views: 6
N30 smart energy meter ES...
Forum: N30
Last Post: admin
Yesterday, 11:47 AM
» Replies: 0
» Views: 8
N60 smart energy meter ES...
Forum: N60
Last Post: admin
Yesterday, 11:46 AM
» Replies: 0
» Views: 8

Photo AS-ESP32-S3 won't initialize
Posted by: scottq - 03-19-2026, 06:49 PM - Forum: Getting Started with ESPHome and Home Assistant - Replies (10)

I just purchased a AS-ESP32-S3 device to act as a voice assistant for my Home Assistant. When I received the unit, something inside it was rattling around loosely - like something had broken inside. Not sure if that's ultimately important or not. 

When I plugged the device into the HA server, all of the lights turned blue and a tone built up in about 3 steps to a steady tone. The tone continued without stopping for as long as I had the device plugged it (up to 15 minutes, when I unplugged it). It doesn't seem to me that it was flashed with any new firmware as described in this YouTube video: https://www.youtube.com/watch?v=g-KsrZjFljY

While the tone was sounding, I did try to configure the device in my home assistant. I selected "Add Device", saw ESPHome and selected it, and was presented with a modal asking for the host ip address, which I provided. I got a "Unable to connect to the ESPHome device. Make sure the device's YAML configuration includes an 'api' section." as shown in the attached screenshot. I have no way to access any YAML that the device might be using since I can't access the device and can't do anything with it in Home Assistant.

What do I do to get this thing working?

Scott



Attached Files Thumbnail(s)
   
Image(s)
       
Print this item

  I don't understand the #Enable error on the protocols.
Posted by: H_spadacini - 03-19-2026, 05:12 PM - Forum: T16M - Replies (1)

Quand je reprends le programme pour le T16M diffuse en exemple : https://devices.esphome.io/devices/kincony-t16m/ sur site GIT, or je reçois une erreur a la compilation de cet exemple :
# Enable logging
logger:
# Enable Home Assistant API
api:
msg erreur 
 C:\Users\Herve\Downloads\Kincony\T16M\Programme_Base_T16M\Programme_Base_T16M.ino:10:3: error: invalid preprocessing directive #Enable
  10 | # Enable logging
      |  ^~~~~~
C:\Users\Herve\Downloads\Kincony\T16M\Programme_Base_T16M\Programme_Base_T16M.ino:13:3: error: invalid preprocessing directive #Enable
  13 | # Enable Home Assistant API
      |  ^~~~~~
exit status 1

Compilation error: invalid preprocessing directive #EnableC:\Users\Herve\Downloads\Kincony\T16M\Programme_Base_T16M\Programme_Base_T16M.ino:10:3: error: invalid preprocessing directive #Enable
  10 | # Enable logging
      |  ^~~~~~
C:\Users\Herve\Downloads\Kincony\T16M\Programme_Base_T16M\Programme_Base_T16M.ino:13:3: error: invalid preprocessing directive #Enable
  13 | # Enable Home Assistant API
      |  ^~~~~~
exit status 1

Compilation error: invalid preprocessing directive #Enable

comme je suis debutant en arduino/ESP32S3, il me semble que la syntaxe manquant devrait comprends une fonction disable par fonction mais sur pas encore un as en arduino..mdr
j'ai besoin de votre lumiere merci d'avance. cela parce preparant le code pour le relay T16M.
la config : AIO maitre , T16M : Esclave pour compense le manque d'entrées /sorties de l'aio Hybride en reseau modbus , avec un ecran 7 pouces en Modbus . pour la programmation suis partir sur un melange en arduino avec EditeurPlc pour la partir PLC.
en autre , pour ce dernier , on doit declarer les variables externes ESP32S3, donc partir programmation sur le T16M me semble une bonne idee , merci de votre reponse.

Print this item

  Advice for DIY underfloor heating (7 zones, 2 floors, boiler control) using KinCony b
Posted by: torokzoli - 03-18-2026, 06:21 PM - Forum: DIY Project - Replies (3)

Hi,

I would like to ask for advice on which KinCony products would be best for controlling my water‑based underfloor heating system.

System layout:
Upstairs: 4 heating loops (manifold circuits) to be controlled separately.
Ground floor: 3 heating loops to be controlled separately.

In addition, I need to:
Switch the ground floor zone valve and the upstairs zone valve. 
Provide a boiler enable signal via a volt‑free (dry) contact.

The existing “dumb” system should remain functional in parallel at first:
There is one programmable thermostat for the upstairs and one for the ground floor.These currently control the boiler and the two main zone valves.

Hardware idea:

I already have a KC868‑A8, which I plan to use for the ground floor (3 loops + ground‑floor zone valve  + upstairs zone valve + boiler enable + some spare relays).

For the upstairs I am considering a KC868‑A6, which would handle the 4 loops and the upstairs zone valve. 

A small amount of wiring between the floors is possible.

Control requirements:
I would like the basic heating logic (room thermostats, loop valves, zone valves, boiler enable) to run locally on the KinCony devices themselves, without depending on any central controller (so that heating continues to work even if Home Assistant or the network is down).

At the same time, I would like to be able to override or adjust the behaviour from Home Assistant when desired (setpoints, manual on/off, etc.).

Questions:
Does the combination KC868‑A8 (ground floor) + KC868‑A6 (upstairs) make sense for this scenario, or would you recommend a different KinCony board combination for 7 loops + 2 zone valves + boiler enable?
What is the recommended way to implement the local control logic on these boards (KinCony original firmware rules, ESPHome, Tasmota, custom ESP32 code, etc.), given that:
It should work safely and autonomously.
It should still be easy to integrate with Home Assistant.

Could you recommend any wireless room thermostats that can communicate directly with KinCony hardware (for example via LoRa, nRF24L01, 433 MHz, or another protocol supported by KC868‑A series), so that I could replace the existing wired thermostats completely in the future?

Any wiring diagrams, example projects or firmware configurations for a similar 2‑floor underfloor heating system would be very helpful.

Thank you in advance for your support!

Print this item

Sad A8 brick
Posted by: kid - 03-18-2026, 08:50 AM - Forum: KC868-A series and Uair Smart Controller - Replies (3)

Hi, unfortunately the flashing of the Kincony A8 failed. I flashed a compiled esphome bin file. It stopped always after a few percent. I tried multiple cables and an different baud rates. No success and now it is not responding anymore / seems bricked. I was working from a linux device:


.pdf   flash.pdf (Size: 74.75 KB / Downloads: 104)

It is the first time ever I had such an issue with an esp device. And I use them a lot - with WLED, custom procects etc. Is there maybe something wrong with the pcb design?

I hoped by buying a more expensive relais board to get not into trouble.

Print this item

  Kincony KC868-A16 (ESP32) - I2C PCF8574 entities visible in HA but not responding (I2
Posted by: bobbisasha - 03-17-2026, 05:41 PM - Forum: KC868-A16 - Replies (3)

Hi everyone,
I’m struggling with a Kincony KC868-A16 board (ESP32-based) integrated with ESPHome in Home Assistant. I can see all the entities (switches and binary sensors) in my HA dashboard, but none of the physical relays or digital inputs are responding.
The Hardware:

  • Board: Kincony KC868-A16 (V1.5 or similar with 4x PCF8574 IO Expanders).
  • Power: Externally powered with a stable 12V 2A DC supply.
  • Checked with Multimeter: PCF8574 chips are correctly powered at 3.3V.
The Problem: When I toggle a switch in Home Assistant, the UI icon turns "ON" for a split second and then immediately reverts to "OFF". This suggests an I2C communication timeout or write failure. No physical "click" is heard from the relays, and LEDs don't light up.
ESPHome Logs: The I2C scan successfully finds all 4 chips at the expected addresses:
  • Code:
    Found device at address 0x21
     (Inputs)
  • Code:
    Found device at address 0x22
     (Inputs)
  • Code:
    Found device at address 0x24
     (Outputs/Relays)
  • Code:
    Found device at address 0x25
     (Outputs/Relays)
Log output: 
Code:
[C][pcf8574:024]: PCF8574: Is PCF8575: NO, Address: 0x24
 However, when I trigger a relay, nothing happens physically.

here some .yaml config examples for my digital sensors and outputs: 
Code:
remote_receiver:
  pin:
    number: GPIO2
    ignore_strapping_warning: true # Could this be interfering with I2C boot?

remote_transmitter:
  pin:
    number: GPIO15
    ignore_strapping_warning: true
  carrier_duty_percent: 100%

i2c:
  sda: GPIO4
  scl:
    number: GPIO5
    #ignore_strapping_warning: true
  scan: true
  id: bus_a

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: 0x22
  - id: 'pcf8574_hub_in_2' # for input channel 9-16
    address: 0x21

binary_sensor:
  - platform: gpio
    name: 'Digital Input 01'
    id: input1
    pin:
      pcf8574: pcf8574_hub_in_1
      number: 0
      mode: INPUT
      inverted: true
    internal: false

switch:
  - platform: gpio
    name: 'Ouput Relay 01'
    id: sensor_relay_1
    restore_mode: RESTORE_DEFAULT_OFF
    pin:
      pcf8574: pcf8574_hub_out_1
      number: 0
      mode: OUTPUT
      inverted: false
    internal: false

Print this item

  DM32 ESPHome yaml for home assistant without tuya
Posted by: admin - 03-17-2026, 12:50 AM - Forum: DM32 - No Replies

Code:
esphome:
  name: dm32
  friendly_name: dm32

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:

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

uart:
  - id: uart_1 # RS485
    baud_rate: 9600
    debug:
      direction: BOTH
      dummy_receiver: true
      after:
        timeout: 10ms
    tx_pin: 39
    rx_pin: 38

  - id: dac_uart
    rx_pin: 4
    tx_pin: 6
    baud_rate: 115200
    stop_bits: 1
    data_bits: 8
    parity: NONE
    debug:

modbus:
  uart_id: dac_uart

modbus_controller:
  - address: 1
    update_interval: 5s

i2c:
  - id: bus_a
    sda: 8
    scl: 18
    scan: true
    frequency: 400kHz

text_sensor:
  - platform: ethernet_info
    ip_address:
      name: ESP IP Address
      id: eth_ip
      address_0:
        name: ESP IP Address 0
      address_1:
        name: ESP IP Address 1
      address_2:
        name: ESP IP Address 2
      address_3:
        name: ESP IP Address 3
      address_4:
        name: ESP IP Address 4
    dns_address:
      name: ESP DNS Address
    mac_address:
      name: ESP MAC Address

font:
  - file: "gfonts://Roboto"
    id: roboto
    size: 15

display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x64"
    address: 0x3C
    lambda: |-
      it.printf(0, 15, id(roboto), "IP: %s", id(eth_ip).state.c_str());

output:
  # CH1 (0x0FA0 / 4000)
  - platform: modbus_controller
    id: dac_ch1_out
    address: 0x0FA0
    value_type: U_WORD
    write_lambda: |-
      // state = 0.0 ~ 1.0 → 0 ~ 4095
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH2 (0x0FA1 / 4001)
  - platform: modbus_controller
    id: dac_ch2_out
    address: 0x0FA1
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH3
  - platform: modbus_controller
    id: dac_ch3_out
    address: 0x0FA2
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH4
  - platform: modbus_controller
    id: dac_ch4_out
    address: 0x0FA3
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH5
  - platform: modbus_controller
    id: dac_ch5_out
    address: 0x0FA4
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH6
  - platform: modbus_controller
    id: dac_ch6_out
    address: 0x0FA5
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH7
  - platform: modbus_controller
    id: dac_ch7_out
    address: 0x0FA6
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH8
  - platform: modbus_controller
    id: dac_ch8_out
    address: 0x0FA7
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH9
  - platform: modbus_controller
    id: dac_ch9_out
    address: 0x0FA8
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH10
  - platform: modbus_controller
    id: dac_ch10_out
    address: 0x0FA9
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH11
  - platform: modbus_controller
    id: dac_ch11_out
    address: 0x0FAA
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH12
  - platform: modbus_controller
    id: dac_ch12_out
    address: 0x0FAB
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH13
  - platform: modbus_controller
    id: dac_ch13_out
    address: 0x0FAC
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH14
  - platform: modbus_controller
    id: dac_ch14_out
    address: 0x0FAD
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH15
  - platform: modbus_controller
    id: dac_ch15_out
    address: 0x0FAE
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH16
  - platform: modbus_controller
    id: dac_ch16_out
    address: 0x0FAF
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH17 (0x0FB0 / 4016)
  - platform: modbus_controller
    id: dac_ch17_out
    address: 0x0FB0
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH18
  - platform: modbus_controller
    id: dac_ch18_out
    address: 0x0FB1
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH19
  - platform: modbus_controller
    id: dac_ch19_out
    address: 0x0FB2
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH20
  - platform: modbus_controller
    id: dac_ch20_out
    address: 0x0FB3
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH21
  - platform: modbus_controller
    id: dac_ch21_out
    address: 0x0FB4
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH22
  - platform: modbus_controller
    id: dac_ch22_out
    address: 0x0FB5
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH23
  - platform: modbus_controller
    id: dac_ch23_out
    address: 0x0FB6
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH24
  - platform: modbus_controller
    id: dac_ch24_out
    address: 0x0FB7
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH25
  - platform: modbus_controller
    id: dac_ch25_out
    address: 0x0FB8
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH26
  - platform: modbus_controller
    id: dac_ch26_out
    address: 0x0FB9
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH27
  - platform: modbus_controller
    id: dac_ch27_out
    address: 0x0FBA
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH28
  - platform: modbus_controller
    id: dac_ch28_out
    address: 0x0FBB
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH29
  - platform: modbus_controller
    id: dac_ch29_out
    address: 0x0FBC
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH30
  - platform: modbus_controller
    id: dac_ch30_out
    address: 0x0FBD
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH31
  - platform: modbus_controller
    id: dac_ch31_out
    address: 0x0FBE
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH32 (0x0FBF / 4031)
  - platform: modbus_controller
    id: dac_ch32_out
    address: 0x0FBF
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

light:
  - platform: monochromatic
    name: "DAC CH1"
    output: dac_ch1_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH2"
    output: dac_ch2_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH3"
    output: dac_ch3_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH4"
    output: dac_ch4_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH5"
    output: dac_ch5_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH6"
    output: dac_ch6_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH7"
    output: dac_ch7_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH8"
    output: dac_ch8_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH9"
    output: dac_ch9_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH10"
    output: dac_ch10_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH11"
    output: dac_ch11_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH12"
    output: dac_ch12_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH13"
    output: dac_ch13_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH14"
    output: dac_ch14_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH15"
    output: dac_ch15_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH16"
    output: dac_ch16_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH17"
    output: dac_ch17_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH18"
    output: dac_ch18_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH19"
    output: dac_ch19_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH20"
    output: dac_ch20_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH21"
    output: dac_ch21_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH22"
    output: dac_ch22_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH23"
    output: dac_ch23_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH24"
    output: dac_ch24_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH25"
    output: dac_ch25_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH26"
    output: dac_ch26_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH27"
    output: dac_ch27_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH28"
    output: dac_ch28_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH29"
    output: dac_ch29_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH30"
    output: dac_ch30_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH31"
    output: dac_ch31_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH32"
    output: dac_ch32_out
    default_transition_length: 0s

pcf8574:
  - id: pcf8574_hub_1 # for input channel 1-16
    i2c_id: bus_a
    address: 0x22
    pcf8575: true

  - id: pcf8574_hub_2 # for input channel 17-32
    i2c_id: bus_a
    address: 0x24
    pcf8575: true

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

binary_sensor:
  - platform: gpio
    name: "dm32-input01"
    id: dm32_input01
    pin:
      pcf8574: pcf8574_hub_1
      number: 8
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input02"
    id: dm32_input02
    pin:
      pcf8574: pcf8574_hub_1
      number: 9
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input03"
    id: dm32_input03
    pin:
      pcf8574: pcf8574_hub_1
      number: 10
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input04"
    id: dm32_input04
    pin:
      pcf8574: pcf8574_hub_1
      number: 11
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input05"
    id: dm32_input05
    pin:
      pcf8574: pcf8574_hub_1
      number: 12
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input06"
    id: dm32_input06
    pin:
      pcf8574: pcf8574_hub_1
      number: 13
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input07"
    id: dm32_input07
    pin:
      pcf8574: pcf8574_hub_1
      number: 14
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input08"
    id: dm32_input08
    pin:
      pcf8574: pcf8574_hub_1
      number: 15
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input09"
    id: dm32_input09
    pin:
      pcf8574: pcf8574_hub_1
      number: 0
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input10"
    id: dm32_input10
    pin:
      pcf8574: pcf8574_hub_1
      number: 1
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input11"
    id: dm32_input11
    pin:
      pcf8574: pcf8574_hub_1
      number: 2
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input12"
    id: dm32_input12
    pin:
      pcf8574: pcf8574_hub_1
      number: 3
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input13"
    id: dm32_input13
    pin:
      pcf8574: pcf8574_hub_1
      number: 4
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input14"
    id: dm32_input14
    pin:
      pcf8574: pcf8574_hub_1
      number: 5
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input15"
    id: dm32_input15
    pin:
      pcf8574: pcf8574_hub_1
      number: 6
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input16"
    id: dm32_input16
    pin:
      pcf8574: pcf8574_hub_1
      number: 7
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input17"
    id: dm32_input17
    pin:
      pcf8574: pcf8574_hub_2
      number: 0
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input18"
    id: dm32_input18
    pin:
      pcf8574: pcf8574_hub_2
      number: 1
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input19"
    id: dm32_input19
    pin:
      pcf8574: pcf8574_hub_2
      number: 2
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input20"
    id: dm32_input20
    pin:
      pcf8574: pcf8574_hub_2
      number: 3
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input21"
    id: dm32_input21
    pin:
      pcf8574: pcf8574_hub_2
      number: 4
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input22"
    id: dm32_input22
    pin:
      pcf8574: pcf8574_hub_2
      number: 5
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input23"
    id: dm32_input23
    pin:
      pcf8574: pcf8574_hub_2
      number: 6
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input24"
    id: dm32_input24
    pin:
      pcf8574: pcf8574_hub_2
      number: 7
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input25"
    id: dm32_input25
    pin:
      pcf8574: pcf8574_hub_2
      number: 8
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input26"
    id: dm32_input26
    pin:
      pcf8574: pcf8574_hub_2
      number: 9
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input27"
    id: dm32_input27
    pin:
      pcf8574: pcf8574_hub_2
      number: 10
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input28"
    id: dm32_input28
    pin:
      pcf8574: pcf8574_hub_2
      number: 11
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input29"
    id: dm32_input29
    pin:
      pcf8574: pcf8574_hub_2
      number: 12
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input30"
    id: dm32_input30
    pin:
      pcf8574: pcf8574_hub_2
      number: 13
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input31"
    id: dm32_input31
    pin:
      pcf8574: pcf8574_hub_2
      number: 14
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm32-input32"
    id: dm32_input32
    pin:
      pcf8574: pcf8574_hub_2
      number: 15
      mode: INPUT
      inverted: true

  ## pull-up resistance on PCB
  - platform: gpio
    name: "dm32-W1-io47"
    pin:
      number: 47
      inverted: true

  - platform: gpio
    name: "dm32-W1-io48"
    pin:
      number: 48
      inverted: true

  - platform: gpio
    name: "dm32-W1-io7"
    pin:
      number: 7
      inverted: true

  - platform: gpio
    name: "dm32-W1-io40"
    pin:
      number: 40
      inverted: true

  ## without resistance on PCB
  - platform: gpio
    name: "dm32-W1-io13"
    pin:
      number: 13
      inverted: false

  - platform: gpio
    name: "dm32-W1-io14"
    pin:
      number: 14
      inverted: false

  - platform: gpio
    name: "dm32-W1-io21"
    pin:
      number: 21
      inverted: false

ads1115:
  - address: 0x48

sensor:
  - platform: ads1115
    multiplexer: 'A0_GND'
    gain: 6.144
    resolution: 16_BITS
    name: "ADS1115 Channel A0-GND"
    update_interval: 5s

  - platform: ads1115
    multiplexer: 'A1_GND'
    gain: 6.144
    name: "ADS1115 Channel A1-GND"
    update_interval: 5s

  - platform: ads1115
    multiplexer: 'A2_GND'
    gain: 6.144
    name: "ADS1115 Channel A2-GND"
    update_interval: 5s

  - platform: ads1115
    multiplexer: 'A3_GND'
    gain: 6.144
    name: "ADS1115 Channel A3-GND"
    update_interval: 5s

web_server:
  port: 80
esphome yaml file download:

.txt   esphome_dm32.txt (Size: 17.6 KB / Downloads: 63)

Print this item

  DM8 ESPHome yaml for home assistant without tuya
Posted by: admin - 03-17-2026, 12:49 AM - Forum: DM8 - No Replies

Code:
esphome:
  name: dm8
  friendly_name: dm8

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:

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

uart:
  - id: uart_1 # RS485
    baud_rate: 9600
    debug:
      direction: BOTH
      dummy_receiver: true
      after:
        timeout: 10ms
    tx_pin: 39
    rx_pin: 38

  - id: dac_uart
    rx_pin: 4
    tx_pin: 6
    baud_rate: 115200
    stop_bits: 1
    data_bits: 8
    parity: NONE
    debug:

modbus:
  uart_id: dac_uart

modbus_controller:
  - address: 1
    update_interval: 5s

i2c:
  - id: bus_a
    sda: 8
    scl: 18
    scan: true
    frequency: 400kHz

text_sensor:
  - platform: ethernet_info
    ip_address:
      name: ESP IP Address
      id: eth_ip
      address_0:
        name: ESP IP Address 0
      address_1:
        name: ESP IP Address 1
      address_2:
        name: ESP IP Address 2
      address_3:
        name: ESP IP Address 3
      address_4:
        name: ESP IP Address 4
    dns_address:
      name: ESP DNS Address
    mac_address:
      name: ESP MAC Address

font:
  - file: "gfonts://Roboto"
    id: roboto
    size: 15

display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x64"
    address: 0x3C
    lambda: |-
      it.printf(0, 15, id(roboto), "IP: %s", id(eth_ip).state.c_str());

output:
  # CH1 (0x0FA0 / 4000)
  - platform: modbus_controller
    id: dac_ch1_out
    address: 0x0FA0
    value_type: U_WORD
    write_lambda: |-
      // state = 0.0 ~ 1.0 → 0 ~ 4095
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH2 (0x0FA1 / 4001)
  - platform: modbus_controller
    id: dac_ch2_out
    address: 0x0FA1
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH3
  - platform: modbus_controller
    id: dac_ch3_out
    address: 0x0FA2
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH4
  - platform: modbus_controller
    id: dac_ch4_out
    address: 0x0FA3
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH5
  - platform: modbus_controller
    id: dac_ch5_out
    address: 0x0FA4
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH6
  - platform: modbus_controller
    id: dac_ch6_out
    address: 0x0FA5
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH7
  - platform: modbus_controller
    id: dac_ch7_out
    address: 0x0FA6
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

  # CH8 (0x0FA7 / 4007)
  - platform: modbus_controller
    id: dac_ch8_out
    address: 0x0FA7
    value_type: U_WORD
    write_lambda: |-
      uint16_t reg = (uint16_t) round(x * 4095.0);
      return reg;

# -------------------
# 8 路 Light (调光灯)
# -------------------
light:
  - platform: monochromatic
    name: "DAC CH1"
    output: dac_ch1_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH2"
    output: dac_ch2_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH3"
    output: dac_ch3_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH4"
    output: dac_ch4_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH5"
    output: dac_ch5_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH6"
    output: dac_ch6_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH7"
    output: dac_ch7_out
    default_transition_length: 0s

  - platform: monochromatic
    name: "DAC CH8"
    output: dac_ch8_out
    default_transition_length: 0s

pcf8574:
  - id: pcf8574_hub_1 # for input channel 1-8
    i2c_id: bus_a
    address: 0x24

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

binary_sensor:
  - platform: gpio
    name: "dm8-input01"
    id: dm8_input01
    pin:
      pcf8574: pcf8574_hub_1
      number: 0
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm8-input02"
    id: dm8_input02
    pin:
      pcf8574: pcf8574_hub_1
      number: 1
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm8-input03"
    id: dm8_input03
    pin:
      pcf8574: pcf8574_hub_1
      number: 2
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm8-input04"
    id: dm8_input04
    pin:
      pcf8574: pcf8574_hub_1
      number: 3
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm8-input05"
    id: dm8_input05
    pin:
      pcf8574: pcf8574_hub_1
      number: 4
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm8-input06"
    id: dm8_input06
    pin:
      pcf8574: pcf8574_hub_1
      number: 5
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm8-input07"
    id: dm8_input07
    pin:
      pcf8574: pcf8574_hub_1
      number: 6
      mode: INPUT
      inverted: true

  - platform: gpio
    name: "dm8-input08"
    id: dm8_input08
    pin:
      pcf8574: pcf8574_hub_1
      number: 7
      mode: INPUT
      inverted: true

  ## pull-up resistance on PCB
  - platform: gpio
    name: "dm8-W1-io47"
    pin:
      number: 47
      inverted: true

  - platform: gpio
    name: "dm8-W1-io48"
    pin:
      number: 48
      inverted: true

  - platform: gpio
    name: "dm8-W1-io17"
    pin:
      number: 17
      inverted: true

  - platform: gpio
    name: "dm8-W1-io40"
    pin:
      number: 40
      inverted: true

  ## without resistance on PCB
  - platform: gpio
    name: "dm8-W1-io13"
    pin:
      number: 13
      inverted: false

  - platform: gpio
    name: "dm8-W1-io14"
    pin:
      number: 14
      inverted: false

  - platform: gpio
    name: "dm8-W1-io21"
    pin:
      number: 21
      inverted: false

ads1115:
  - address: 0x48

sensor:
  - platform: ads1115
    multiplexer: 'A0_GND'
    gain: 6.144
    resolution: 16_BITS
    name: "ADS1115 Channel A0-GND"
    update_interval: 5s

  - platform: ads1115
    multiplexer: 'A1_GND'
    gain: 6.144
    name: "ADS1115 Channel A1-GND"
    update_interval: 5s

  - platform: ads1115
    multiplexer: 'A2_GND'
    gain: 6.144
    name: "ADS1115 Channel A2-GND"
    update_interval: 5s

  - platform: ads1115
    multiplexer: 'A3_GND'
    gain: 6.144
    name: "ADS1115 Channel A3-GND"
    update_interval: 5s

web_server:
  port: 80
esphome yaml file download:

.txt   esphome_dm8.txt (Size: 6.63 KB / Downloads: 62)

Print this item

  How restart а board using IFTTT and Custom Protocol?
Posted by: apps4check - 03-16-2026, 07:59 PM - Forum: "KCS" v2 firmware system - Replies (1)

Hello, is it possible to restart the board (KC868-A2 or KC868-A4S, KCS v2 firmware) using IFTTT and Custom Protocol?
Any advice would be greatly appreciated.

Print this item

  Battery backup model on AOI
Posted by: H_spadacini - 03-16-2026, 09:42 AM - Forum: AIO Hybrid - Replies (1)

Francais :
Serait-il possible de connaitre la référence de la pile bouton qui doit va dans le rtc battery socket  qui peut-être mis sur le AIO pour maintenir sa sauvegarde.
Cordialement.

English :
 Could you please provide the part number for the button cell battery that fits into the RTC battery socket, which can be installed on the AIO to maintain its backup?

Regards.

Print this item

  KinCony DM8 8CH ESP32 Dimmer Board released
Posted by: admin - 03-16-2026, 08:16 AM - Forum: News - No Replies

KinCony DM8 ESP32 smart dimmer controller based on ESP32-S3-WROOM-1U (N16R8) wifi chip. Support 8 channel DC 0-10v output, 7 channel 1-wire GPIOs, 4 channel ADS1115 16bit analog input ports. One SD card using SPI bus. DM8 include DS3231 high precision RTC clock chip. OLED display will show wifi and ethernet IP address and Tuya connection state. DM8 have 2pcs of RS485 port. one RS485 connect with ARM CPU, support use by modbus directly. Another RS485 work with ESP32. You can write any code by Arduino IDE / MicroPython / ESP-IDF development tool to ESP32 module. We will supply Arduino / ESP-IDF demo code for different samples. Everyone can modify and change the code for your own smart home automation system project. it support use by ESPHome for home assistant or tasmota firmware for smart home automation DIY. DM8 use KCS v3 firmware, it support home assistant auto discovery function by MQTT, so without write any config code (zero code) for home assistant. KCS v3 support KinCony cloud service (official shop customer free 2 years), remote monitor and control device by webpage in anywhere. KCS v3 support KinCony board integrate to Loxone Miniserver. Support Apple HomeKit for Siri.
[Image: DM8-1.jpg]
Model No. KinCony DM8
Description: KinCony 8 Channel ESP32-S3 Smart Dimmer Controller – DM8
Power supply: 12-24V DC
Processor: ESP32-S3-WROOM-1U (N16R8)
Size: 140mm*83mm*59mm
interfaces: Ethernet(RJ45)-LAN 100Mbps IPv4/IPv6,WiFi,RS485,Bluetooth,USB-C,OLED,Tuya Module
RTC: DS3231 high precision chip (battery socket on PCB)
SD Card: SPI bus
Installation method: DIN RAIL
OLED: SSD1306 I2C display
Outputs:
8CH 0-10v Outputs.
Inputs:
ADS1115 16bit ADC: 2CH analog input DC0-5V (A1,A2) 2CH analog input 4-20mA (A3,A4)
8CH dry contact inputs (optocoupler isolation, long distance circuit for MAX 500 meters cable)
4 buttons: 1:ESP32 Reset 2:ESP32 Download 3:Tuya config 4: ARM CPU Reset
1-Wire GPIO: 4CH (with pull-up resistance on PCB)
Free GPIO: 4CH (ESP32 pin directly, without pull-up resistance on PCB)
[Image: DM8-1.jpg]

Print this item