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

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 9,577
» Latest member: shipprefume
» Forum threads: 4,187
» Forum posts: 20,817

Full Statistics

Online Users
There are currently 62 online users.
» 0 Member(s) | 53 Guest(s)
Amazonbot, Baidu, Crawl, PetalBot, bot

Latest Threads
Connecting sensors to Kin...
Forum: F16
Last Post: admin
29 minutes ago
» Replies: 1
» Views: 1
CT Sensor Direction
Forum: N60
Last Post: admin
Yesterday, 08:14 AM
» Replies: 1
» Views: 9
N60 Voltage reference
Forum: N60
Last Post: admin
08-11-2026, 11:09 PM
» Replies: 3
» Views: 16
4-20mA loop voltage consi...
Forum: B4M
Last Post: admin
08-11-2026, 08:05 AM
» Replies: 1
» Views: 14
K868-a32 plastic case
Forum: KC868-A series and Uair Smart Controller
Last Post: admin
08-10-2026, 08:48 AM
» Replies: 3
» Views: 1,182
CT Clamp Compatibility
Forum: KC868-M16 / M1 / MB / M30
Last Post: admin
08-09-2026, 10:32 PM
» Replies: 10
» Views: 1,682
KinCony F8 + ESPHome: Una...
Forum: F8
Last Post: admin
08-08-2026, 11:51 PM
» Replies: 6
» Views: 127
How to get started
Forum: KC868-A16
Last Post: admin
08-07-2026, 11:42 PM
» Replies: 39
» Views: 9,708
Questions on the B4M
Forum: B4M
Last Post: admin
08-07-2026, 11:19 PM
» Replies: 3
» Views: 216
cannot see KC868-A6 in ro...
Forum: "KCS" v2 firmware system
Last Post: admin
08-07-2026, 09:59 AM
» Replies: 7
» Views: 338

  B4M Smart Controller Wiring Examples
Posted by: admin - 04-18-2026, 02:23 AM - Forum: B4M - No Replies

   

Print this item

  B4M Smart Controller ESP32 system block diagram
Posted by: admin - 04-18-2026, 02:11 AM - Forum: B4M - No Replies

   

Print this item

  m16v2 energy meter - calibration issues
Posted by: PapaC - 04-17-2026, 06:04 PM - Forum: KC868-M16 / M1 / MB / M30 - Replies (13)

Hi, hopefully someone can help where I'm having issues calibrating the m16v2 energy meter in the UK which is on 240v with 1 phase.

Currently I am only focusing on CT_15 which is the Grid, I have a Shelly EM using a 120a1v CT clamp which is on the same line as CT_15.

When attempting to calibrate with 2 resistive loads (not at the same time) it just simply falls out of line when then seeing real world usage after, for example I had turned on a 3000w kettle, the Shelly shown the correct load so I then calibrated the figures as recommended in Kincony code, then I tried a 1500w electric heater but instead of the load being somewhat close to the expected reading, it was instead 1900w.

Additionally, when on normal realworld load where the house has typical appliances on which would bring it to about 300w on the Shelly, the m16 instead reports that its 600w.

I can confirm that I have connected the m16 to the consumer unit as recommended so then it shows what the voltage is, which I can confirm is accurate when compared against the Shelly which reports basically the exact same voltage.

All clamps are 1v, and are shown in order of what they're used for along with the amp:

  • 1 - Shower - 50a
  • 2 - Cooker - 50a
  • 3 - Kithcen Ring - 30a
  • 4 - Dish Washer - 30a
  • 5 - Washing Machine - 20a
  • 6 - Tumble Dryer -  30a
  • 7 - Reserved
  • 8 - Reserved
  • 9 - Fridge - 20a
  • 10 - Reserved
  • 11 - Reserved
  • 12 - Reserved
  • 13 - Reserved
  • 14 - General Ring - 30a
  • 15 - Grid - 100a
  • 16 - Reserved


I've attached code currently being used.

Code:
esphome:
  name: m16v2

esp32:
  board: esp32dev
  framework:
    type: arduino

ota:
  - platform: esphome

external_components:
  - source:
      type: git
      url: https://github.com/hzkincony/esphome-zmpt101b
      ref: v2.1.0

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "D69bY/GXlmjYkovak6WIhgmbOH8vwyqvMxIHBriYoaY="

# Wifi Configuration
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  fast_connect: true

i2c:
  sda: 4
  scl: 5
  scan: true
  id: bus_a

cd74hc4067:
  - id: cd74hc4067_1
    pin_s0: 32
    pin_s1: 33
    pin_s2: 13
    pin_s3: 16

web_server:
  port: 80

font:

  - file: "gfonts://Roboto"
    id: roboto
    size: 16

sensor:
  - platform: adc
    pin: 34
    id: adc34
    update_interval: never
    attenuation: 12db

  - platform: adc
    pin: 36
    id: adc36
    update_interval: never
    attenuation: 12db

  - platform: adc
    pin: 39
    id: adc39
    update_interval: never
    attenuation: 12db

  - platform: zmpt101b
    name: "L1 Voltage"
    # name: "m16--AI zmpt 34"
    sensor: adc34
    id: voltage_1
    sensitivity: 538

  - platform: adc
    pin: 35
    id: adc35
    update_interval: never
    attenuation: 12db

  - platform: cd74hc4067
    id: ai1
    number: 0
    sensor: adc35
    update_interval: 5s

  - platform: cd74hc4067
    id: ai2
    number: 1
    sensor: adc35
    update_interval: 5s

  - platform: cd74hc4067
    id: ai3
    number: 2
    sensor: adc35
    update_interval: 5s

  - platform: cd74hc4067
    id: ai4
    number: 3
    sensor: adc35
    update_interval: 5s

  - platform: cd74hc4067
    id: ai5
    number: 4
    sensor: adc35
    update_interval: 5s

  - platform: cd74hc4067
    id: ai6
    number: 5
    sensor: adc35
    update_interval: 5s

  - platform: cd74hc4067
    id: ai9
    number: 8
    sensor: adc35
    update_interval: 5s

  - platform: cd74hc4067
    id: ai14
    number: 13
    sensor: adc35
    update_interval: 5s

  - platform: cd74hc4067
    id: ai15
    number: 14
    sensor: adc35
    update_interval: 5s

  - platform: ct_clamp
    sensor: ai1
    id: CT_1_Current
    name: "CT 1 Current"
    update_interval: 5s
    filters:
      # 50a 1v CT clamp on a known 8.5kw shower
      - calibrate_linear:
          - 0 -> 0
          - 1 -> 50
      - lambda: if(x < 0.2) return 0; else return x;

  - platform: template
    id: CT_1_Power
    name: "CT 1 Power"
    lambda: return id(CT_1_Current).state * id(voltage_1).state;
    device_class: power
    unit_of_measurement: "W"
    update_interval: 5s

  - platform: ct_clamp
    sensor: ai2
    id: CT_2_Current
    name: "CT 2 Current"
    update_interval: 5s
    filters:
      # 50a 1v CT clamp on a cooker
      - calibrate_linear:
          - 0 -> 0
          - 1 -> 50
      - lambda: if(x < 0.25) return 0; else return x;

  - platform: template
    id: CT_2_Power
    name: "CT 2 Power"
    lambda: return id(CT_2_Current).state * id(voltage_1).state;
    device_class: power
    unit_of_measurement: "W"
    update_interval: 5s

  - platform: ct_clamp
    sensor: ai3
    id: CT_3_Current
    name: "CT 3 Current"
    update_interval: 5s
    filters:
      - calibrate_linear:
          - 0 -> 0
          - 8.24 -> 11.68
      - lambda: if(x < 0.05) return 0; else return x;

  - platform: template
    id: CT_3_Power
    name: "CT 3 Power"
    lambda: return id(CT_3_Current).state * id(voltage_1).state;
    device_class: power
    unit_of_measurement: "W"
    update_interval: 5s

  - platform: ct_clamp
    sensor: ai4
    id: CT_4_Current
    name: "CT 4 Current"
    update_interval: 5s
    filters:
      # 30a 1v CT clamp - Dish Washer
      - calibrate_linear:
          - 0 -> 0
          - 1 -> 30
      - lambda: if(x < 0.1) return 0; else return x;

  - platform: template
    id: CT_4_Power
    name: "CT 4 Power"
    lambda: return id(CT_4_Current).state * id(voltage_1).state;
    device_class: power
    unit_of_measurement: "W"
    update_interval: 5s

  - platform: ct_clamp
    sensor: ai5
    id: CT_5_Current
    name: "CT 5 Current"
    update_interval: 5s
    filters:
      # 20a 1v CT clamp - washing machine
      - calibrate_linear:
          - 0 -> 0
          - 1 -> 20
      - lambda: if(x < 0.1) return 0; else return x;

  - platform: template
    id: CT_5_Power
    name: "CT 5 Power"
    lambda: return id(CT_5_Current).state * id(voltage_1).state;
    device_class: power
    unit_of_measurement: "W"
    update_interval: 5s

  - platform: ct_clamp
    sensor: ai6
    id: CT_6_Current
    name: "CT 6 Current"
    update_interval: 5s
    filters:
      # 30a 1v CT clamp - tumble dryer
      - calibrate_linear:
          - 0 -> 0
          - 1 -> 30
      - lambda: if(x < 0.1) return 0; else return x;

  - platform: template
    id: CT_6_Power
    name: "CT 6 Power"
    lambda: return id(CT_6_Current).state * id(voltage_1).state;
    device_class: power
    unit_of_measurement: "W"
    update_interval: 5s

  - platform: ct_clamp
    sensor: ai9
    id: CT_9_Current
    name: "CT 9 Current"
    update_interval: 5s
    filters:
      # 20a 1v CT clamp - Fridge
      - calibrate_linear:
          - 0 -> 0
          - 1 -> 20
      - lambda: if(x < 0.05) return 0; else return x;

  - platform: template
    id: CT_9_Power
    name: "CT 9 Power"
    lambda: return id(CT_9_Current).state * id(voltage_1).state;
    device_class: power
    unit_of_measurement: "W"
    update_interval: 5s

  - platform: ct_clamp
    sensor: ai14
    id: CT_14_Current
    name: "CT 14 Current"
    update_interval: 5s
    filters:
      # 30a 1v CT clamp - General ring
      - calibrate_linear:
          - 0 -> 0
          - 1 -> 30
      - lambda: if(x < 0.05) return 0; else return x;

  - platform: template
    id: CT_14_Power
    name: "CT 14 Power"
    lambda: return id(CT_14_Current).state * id(voltage_1).state;
    device_class: power
    unit_of_measurement: "W"
    update_interval: 5s

  - platform: ct_clamp
    sensor: ai15
    id: CT_15_Current
    name: "CT 15 Current"
    update_interval: 5s
    filters:
      - calibrate_linear:
          method: exact
          datapoints:
            - 0.0 -> 0.0
            - 0.016 -> 1.62
            - 4.85 -> 5.88
            - 8.26 -> 13.58
 
  - platform: template
    id: CT_15_Power
    name: "CT 15 Power"
    lambda: return id(CT_15_Current).state * id(voltage_1).state;
    device_class: power
    unit_of_measurement: "W"
    update_interval: 5s
 
  - platform: total_daily_energy
    name: "CT 15 Total Daily Energy"
    power_id: CT_15_Power
    unit_of_measurement: kWh
    accuracy_decimals: 3
    device_class: energy
    state_class: total_increasing
    filters:
      - multiply: 0.001

time:
  - platform: sntp
    id: my_time

Print this item

  B4 Smart Controller Wiring Examples
Posted by: admin - 04-17-2026, 12:05 PM - Forum: B4 - Replies (5)

B4 Smart Controller Wiring Examples
   

Print this item

  Complete Home Assistant configuration.yaml with yaml anchor for mqtt integration A16
Posted by: korl - 04-16-2026, 09:14 PM - Forum: KC868-A16 - Replies (3)

Hello everyone,

I see many people asking for configuration.yaml for A16, A6..etc.

Every person is spending time, building their own yaml-file.

Could you just provide a complete template for each board (A16, A6), that combines all switches, binary_sensors, ADCs, DACs, Temperature sensors... in one text block, combines as one device (with yaml anchor) ready to copy into Home Assistant configuration.yaml?

I think it would make the boards more attractive, if there is an easier start for integration.

Does anyone want to share their configuration.yaml?

Best wishes

Print this item

  E8v3 PCB layout CAD file
Posted by: admin - 04-15-2026, 09:35 PM - Forum: Schematic & diagram & Dimensions of KinCony PCB layout CAD file - Replies (2)

E8v3 PCB layout CAD file

.zip   KINCONY-E8V3-V1.1.zip (Size: 12.98 MB / Downloads: 255)

Print this item

  KC868-A16 rev1.6 firmware
Posted by: maurus44 - 04-15-2026, 06:42 PM - Forum: "KCS" v2 firmware system - Replies (5)

Hello,
I am using a KC868-A16 board (REV: 1.6) and I would like to confirm which firmware is correct for this device.
I have been flashing firmware using the ESP32 Flash Download Tool (v3.9.2). So far, I have tested the following firmware versions:

  • KCS_A16V3_V3.24.3 → I was not able to access the controller after flashing
  • KCS_KC868_A16_V2.2.4 → I could access the controller, but the input table was incomplete / partially missing
At the moment, I am using:
  • KC868_A16_V1.0.10 → this version works, and I can access the controller
My question is:
Am I using the correct firmware for KC868-A16 REV: 1.6, or is there a newer recommended version that is fully compatible?
Thank you in advance for your help!

Print this item

  Http protocol
Posted by: Saif Kitany - 04-15-2026, 06:03 AM - Forum: News - Replies (18)

If i want to control relay controller by another relay controller with http protocol (for example: controlling B16 by A32 pro ), what i should write in the URL, what i should enable?

I would like if you give full explanation.

Print this item

  4 - 20 mA adc not giving correct values
Posted by: upstream - 04-14-2026, 10:06 PM - Forum: KC868-AIO - Replies (3)

I am testing the KC868-AIO 4-20 mA analog input with a Fluke 705 Loop Calibrator, but I am not getting correct values.

Source voltage: 24 VDC
Channel AI-16 (see red wire). Black wire is disconnected.

Power source for signal is the same as the source for the AIO board.

Monitor Configuration:

Custom value1: 32
Custom value2: 180

Signal generated: 4.000 mA
value provided: ~52 (it should be 32)

Signal generated: 8.000 mA
value provided: ~79 (it should be 69)

Signal generated: 12.000 mA
value provided: ~104 (it is close to what it should be at 106)

Signal generated: 16.000 mA
value provided: ~131 (it should be 143)

Signal generated: 20.000 mA
value provided: ~167 (it should be 180)

Pictures:
705 Connection Example
Connections Pic
adc settings
adc output

Any idea what is going on?

Print this item

  N60 Sensor channel label
Posted by: marekd1 - 04-14-2026, 02:44 PM - Forum: N60 - Replies (15)

Hello,

Is there a way to assign custom label to each channel defining monitoring node function on local N60.  

As far as I know I think you can do this on Kincony Cloud page but I am looking to do this at local N60 node level.  Example Chanel 1  Server, Channel 2 Sump, etc...

If not could this be added in the update firmware release?

thank you!

Print this item