<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Smart Home Automation Forum - N10]]></title>
		<link>https://www.kincony.com/forum/</link>
		<description><![CDATA[Smart Home Automation Forum - https://www.kincony.com/forum]]></description>
		<pubDate>Sat, 06 Jun 2026 15:56:01 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[N series Energy Meter for Loxone UDP Protocol]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9313</link>
			<pubDate>Mon, 04 May 2026 16:19:04 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=1">admin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=9313</guid>
			<description><![CDATA[Energy Loxone Protocol<br />
=======================<br />
<br />
Overview<br />
--------<br />
This document describes the Loxone string protocol for Energy module.<br />
Default delimiter is comma (,). Chip ID: 1-6, Channel: 1-10.<br />
<br />
<br />
Commands<br />
--------<br />
<br />
1. GET_ENERGY_CURRENT - Get current (A) for specific channel<br />
  Request:  RELAY-GET_ENERGY_CURRENT-255,{chip},{channel}<br />
  Response: RELAY-GET_ENERGY_CURRENT-255,{chip},{channel},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_CURRENT-255,1,1<br />
    Response: RELAY-GET_ENERGY_CURRENT-255,1,1,2.350,OK<br />
<br />
2. GET_ENERGY_POWER - Get power (W) for specific channel<br />
  Request:  RELAY-GET_ENERGY_POWER-255,{chip},{channel}<br />
  Response: RELAY-GET_ENERGY_POWER-255,{chip},{channel},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_POWER-255,1,1<br />
    Response: RELAY-GET_ENERGY_POWER-255,1,1,512.5,OK<br />
<br />
3. GET_ENERGY_KWH - Get energy (kWh) for specific channel<br />
  Request:  RELAY-GET_ENERGY_KWH-255,{chip},{channel}<br />
  Response: RELAY-GET_ENERGY_KWH-255,{chip},{channel},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_KWH-255,1,1<br />
    Response: RELAY-GET_ENERGY_KWH-255,1,1,1250,OK<br />
<br />
4. GET_ENERGY_VOLT - Get voltage (V) for chip<br />
  Request:  RELAY-GET_ENERGY_VOLT-255,{chip}<br />
  Response: RELAY-GET_ENERGY_VOLT-255,{chip},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_VOLT-255,1<br />
    Response: RELAY-GET_ENERGY_VOLT-255,1,220.50,OK<br />
<br />
5. GET_ENERGY_FREQ - Get frequency (Hz) for chip<br />
  Request:  RELAY-GET_ENERGY_FREQ-255,{chip}<br />
  Response: RELAY-GET_ENERGY_FREQ-255,{chip},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_FREQ-255,1<br />
    Response: RELAY-GET_ENERGY_FREQ-255,1,50.00,OK<br />
<br />
6. GET_ENERGY_TEMP - Get temperature &copy; for chip<br />
  Request:  RELAY-GET_ENERGY_TEMP-255,{chip}<br />
  Response: RELAY-GET_ENERGY_TEMP-255,{chip},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_TEMP-255,1<br />
    Response: RELAY-GET_ENERGY_TEMP-255,1,35.5,OK<br />
<br />
7. GET_ENERGY_PF - Get power factor for chip<br />
  Request:  RELAY-GET_ENERGY_PF-255,{chip}<br />
  Response: RELAY-GET_ENERGY_PF-255,{chip},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_PF-255,1<br />
    Response: RELAY-GET_ENERGY_PF-255,1,0.95,OK<br />
<br />
8. GET_ENERGY_SUM - Get total energy (kWh) for chip<br />
  Request:  RELAY-GET_ENERGY_SUM-255,{chip}<br />
  Response: RELAY-GET_ENERGY_SUM-255,{chip},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_SUM-255,1<br />
    Response: RELAY-GET_ENERGY_SUM-255,1,12500,OK<br />
<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9750" target="_blank" title="">Nx-Energy-meter-udp-loxone.png</a> (Size: 141.99 KB / Downloads: 66)
<!-- end: postbit_attachments_attachment --><br />
protocol download:<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9751" target="_blank" title="">Nx-energy_loxone_protocol.txt</a> (Size: 2.34 KB / Downloads: 42)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Energy Loxone Protocol<br />
=======================<br />
<br />
Overview<br />
--------<br />
This document describes the Loxone string protocol for Energy module.<br />
Default delimiter is comma (,). Chip ID: 1-6, Channel: 1-10.<br />
<br />
<br />
Commands<br />
--------<br />
<br />
1. GET_ENERGY_CURRENT - Get current (A) for specific channel<br />
  Request:  RELAY-GET_ENERGY_CURRENT-255,{chip},{channel}<br />
  Response: RELAY-GET_ENERGY_CURRENT-255,{chip},{channel},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_CURRENT-255,1,1<br />
    Response: RELAY-GET_ENERGY_CURRENT-255,1,1,2.350,OK<br />
<br />
2. GET_ENERGY_POWER - Get power (W) for specific channel<br />
  Request:  RELAY-GET_ENERGY_POWER-255,{chip},{channel}<br />
  Response: RELAY-GET_ENERGY_POWER-255,{chip},{channel},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_POWER-255,1,1<br />
    Response: RELAY-GET_ENERGY_POWER-255,1,1,512.5,OK<br />
<br />
3. GET_ENERGY_KWH - Get energy (kWh) for specific channel<br />
  Request:  RELAY-GET_ENERGY_KWH-255,{chip},{channel}<br />
  Response: RELAY-GET_ENERGY_KWH-255,{chip},{channel},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_KWH-255,1,1<br />
    Response: RELAY-GET_ENERGY_KWH-255,1,1,1250,OK<br />
<br />
4. GET_ENERGY_VOLT - Get voltage (V) for chip<br />
  Request:  RELAY-GET_ENERGY_VOLT-255,{chip}<br />
  Response: RELAY-GET_ENERGY_VOLT-255,{chip},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_VOLT-255,1<br />
    Response: RELAY-GET_ENERGY_VOLT-255,1,220.50,OK<br />
<br />
5. GET_ENERGY_FREQ - Get frequency (Hz) for chip<br />
  Request:  RELAY-GET_ENERGY_FREQ-255,{chip}<br />
  Response: RELAY-GET_ENERGY_FREQ-255,{chip},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_FREQ-255,1<br />
    Response: RELAY-GET_ENERGY_FREQ-255,1,50.00,OK<br />
<br />
6. GET_ENERGY_TEMP - Get temperature &copy; for chip<br />
  Request:  RELAY-GET_ENERGY_TEMP-255,{chip}<br />
  Response: RELAY-GET_ENERGY_TEMP-255,{chip},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_TEMP-255,1<br />
    Response: RELAY-GET_ENERGY_TEMP-255,1,35.5,OK<br />
<br />
7. GET_ENERGY_PF - Get power factor for chip<br />
  Request:  RELAY-GET_ENERGY_PF-255,{chip}<br />
  Response: RELAY-GET_ENERGY_PF-255,{chip},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_PF-255,1<br />
    Response: RELAY-GET_ENERGY_PF-255,1,0.95,OK<br />
<br />
8. GET_ENERGY_SUM - Get total energy (kWh) for chip<br />
  Request:  RELAY-GET_ENERGY_SUM-255,{chip}<br />
  Response: RELAY-GET_ENERGY_SUM-255,{chip},{value},OK<br />
  Example:<br />
    Request:  RELAY-GET_ENERGY_SUM-255,1<br />
    Response: RELAY-GET_ENERGY_SUM-255,1,12500,OK<br />
<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9750" target="_blank" title="">Nx-Energy-meter-udp-loxone.png</a> (Size: 141.99 KB / Downloads: 66)
<!-- end: postbit_attachments_attachment --><br />
protocol download:<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9751" target="_blank" title="">Nx-energy_loxone_protocol.txt</a> (Size: 2.34 KB / Downloads: 42)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[N10 smart energy meter ESP32 system block diagram]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9306</link>
			<pubDate>Sat, 02 May 2026 19:50:27 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=1">admin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=9306</guid>
			<description><![CDATA[N10 smart energy meter ESP32 system block diagram<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9734" target="_blank" title="">KinCony-N10-smart-energy-meter-diagram.png</a> (Size: 1.53 MB / Downloads: 69)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[N10 smart energy meter ESP32 system block diagram<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9734" target="_blank" title="">KinCony-N10-smart-energy-meter-diagram.png</a> (Size: 1.53 MB / Downloads: 69)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[SOLVED] N10 - no KWH shown]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9299</link>
			<pubDate>Fri, 01 May 2026 08:47:28 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=10806">Lattkincon</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=9299</guid>
			<description><![CDATA[Hi, I have just received my N10 and its all working - except the kwh is always zero in homeassistant and on the "monitor" page on kc3<br />
<br />
I have tried the ESPhome firmware and the KC3 firmware &gt; MQTT &gt; Homeassistant with the same results - screenshots below for reference<br />
<br />
When i used the ESPhome firmware i used this config file which mentions fixing the kwh  <a href="https://www.kincony.com/forum/attachment.php?aid=9373" target="_blank" rel="noopener" class="mycode_url">https://www.kincony.com/forum/attachment.php?aid=9373</a><br />
<br />
I found this post - <a href="https://www.kincony.com/forum/showthread.php?tid=9107" target="_blank" rel="noopener" class="mycode_url">https://www.kincony.com/forum/showthread.php?tid=9107</a>, and tried flashing via USBC port but it will not work - must this use the RS485? <br />
<br />
Thank you<br />
 <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9725" target="_blank" title="">Screenshot 2026-05-01 085712.png</a> (Size: 30.68 KB / Downloads: 97)
<!-- end: postbit_attachments_attachment --><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9726" target="_blank" title="">Screenshot 2026-05-01 085842.png</a> (Size: 10.55 KB / Downloads: 96)
<!-- end: postbit_attachments_attachment --><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9727" target="_blank" title="">Screenshot 2026-05-01 090209.png</a> (Size: 53.89 KB / Downloads: 82)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Hi, I have just received my N10 and its all working - except the kwh is always zero in homeassistant and on the "monitor" page on kc3<br />
<br />
I have tried the ESPhome firmware and the KC3 firmware &gt; MQTT &gt; Homeassistant with the same results - screenshots below for reference<br />
<br />
When i used the ESPhome firmware i used this config file which mentions fixing the kwh  <a href="https://www.kincony.com/forum/attachment.php?aid=9373" target="_blank" rel="noopener" class="mycode_url">https://www.kincony.com/forum/attachment.php?aid=9373</a><br />
<br />
I found this post - <a href="https://www.kincony.com/forum/showthread.php?tid=9107" target="_blank" rel="noopener" class="mycode_url">https://www.kincony.com/forum/showthread.php?tid=9107</a>, and tried flashing via USBC port but it will not work - must this use the RS485? <br />
<br />
Thank you<br />
 <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9725" target="_blank" title="">Screenshot 2026-05-01 085712.png</a> (Size: 30.68 KB / Downloads: 97)
<!-- end: postbit_attachments_attachment --><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9726" target="_blank" title="">Screenshot 2026-05-01 085842.png</a> (Size: 10.55 KB / Downloads: 96)
<!-- end: postbit_attachments_attachment --><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9727" target="_blank" title="">Screenshot 2026-05-01 090209.png</a> (Size: 53.89 KB / Downloads: 82)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[N10 wire case diagram for 1 phase load]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9206</link>
			<pubDate>Fri, 03 Apr 2026 08:22:52 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=1">admin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=9206</guid>
			<description><![CDATA[N10 wire case diagram for 1 phase load<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9523" target="_blank" title="">N10-1-phase.JPG</a> (Size: 102.43 KB / Downloads: 107)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[N10 wire case diagram for 1 phase load<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9523" target="_blank" title="">N10-1-phase.JPG</a> (Size: 102.43 KB / Downloads: 107)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[N60 N30 N20 N10 ARM CPU firmware V20_260324SP]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9169</link>
			<pubDate>Tue, 24 Mar 2026 12:59:27 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=1">admin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=9169</guid>
			<description><![CDATA[fixed bug can't remember energy data when power off.<br />
you can download by bootloader.exe tool by RS485.<br />
ARM BIN file download:<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9480" target="_blank" title="">N10203060_KU_V20_260324SP.zip</a> (Size: 14.42 KB / Downloads: 82)
<!-- end: postbit_attachments_attachment --><br />
<br />
bootloader.exe tool: <br />
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" loading="lazy"  alt="[Image: zip.png]" class="mycode_img" />   <a href="https://www.kincony.com/forum/attachment.php?aid=8890" target="_blank" rel="noopener" class="mycode_url"><span style="color: #0072bc;" class="mycode_color">KC868 Controller Bootloader.zip</span></a> <br />
<img src="https://www.kincony.com/forum/attachment.php?aid=8891" loading="lazy"  alt="[Image: attachment.php?aid=8891]" class="mycode_img" />   <br />
1. set baud rate=38400bps.<br />
2. open com port.<br />
3. power on Nx board, during LED fast blink when the "bootloader Detect" button right now. Then board will go to bootloader mode.<br />
4. open BIN file<br />
5. press "Download" button, begin download firmware, after finished, press "Run" button, ARM CPU begin work.<br />
<img src="https://www.kincony.com/forum/attachment.php?aid=8892" loading="lazy"  alt="[Image: attachment.php?aid=8892]" class="mycode_img" />]]></description>
			<content:encoded><![CDATA[fixed bug can't remember energy data when power off.<br />
you can download by bootloader.exe tool by RS485.<br />
ARM BIN file download:<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9480" target="_blank" title="">N10203060_KU_V20_260324SP.zip</a> (Size: 14.42 KB / Downloads: 82)
<!-- end: postbit_attachments_attachment --><br />
<br />
bootloader.exe tool: <br />
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" loading="lazy"  alt="[Image: zip.png]" class="mycode_img" />   <a href="https://www.kincony.com/forum/attachment.php?aid=8890" target="_blank" rel="noopener" class="mycode_url"><span style="color: #0072bc;" class="mycode_color">KC868 Controller Bootloader.zip</span></a> <br />
<img src="https://www.kincony.com/forum/attachment.php?aid=8891" loading="lazy"  alt="[Image: attachment.php?aid=8891]" class="mycode_img" />   <br />
1. set baud rate=38400bps.<br />
2. open com port.<br />
3. power on Nx board, during LED fast blink when the "bootloader Detect" button right now. Then board will go to bootloader mode.<br />
4. open BIN file<br />
5. press "Download" button, begin download firmware, after finished, press "Run" button, ARM CPU begin work.<br />
<img src="https://www.kincony.com/forum/attachment.php?aid=8892" loading="lazy"  alt="[Image: attachment.php?aid=8892]" class="mycode_img" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[how to read BL0910 energy chip RAW data by modbus pull via RS485]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9163</link>
			<pubDate>Tue, 24 Mar 2026 10:13:44 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=1">admin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=9163</guid>
			<description><![CDATA[1: open NX_chip.mbp in modbus pull software.<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9399" target="_blank" title="">modbus-open-config.png</a> (Size: 92.01 KB / Downloads: 96)
<!-- end: postbit_attachments_attachment --><br />
<br />
2: set COM port. you can use USB-RS485 adapter connect to your computer:<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9400" target="_blank" title="">modbus-pull-COM-setting.png</a> (Size: 87.06 KB / Downloads: 106)
<!-- end: postbit_attachments_attachment --><br />
<br />
3: <br />
you can read BL0910-1 chip from address 100 , register count: 68<br />
you can read BL0910-2 chip from address 200 , register count: 68 <br />
you can read BL0910-3 chip from address 300 , register count: 68 <br />
you can read BL0910-4 chip from address 400 , register count: 68 <br />
you can read BL0910-5 chip from address 500 , register count: 68 <br />
you can read BL0910-6 chip from address 600 , register count: 68 <br />
<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9401" target="_blank" title="">modbus-pull-read-BL0910-1.png</a> (Size: 96.25 KB / Downloads: 101)
<!-- end: postbit_attachments_attachment --><br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9402" target="_blank" title="">modbus-pull-read-BL0910-2.png</a> (Size: 98.36 KB / Downloads: 110)
<!-- end: postbit_attachments_attachment --><br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9403" target="_blank" title="">modbus-pull-read-BL0910-3.png</a> (Size: 94.91 KB / Downloads: 114)
<!-- end: postbit_attachments_attachment --><br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9404" target="_blank" title="">modbus-pull-read-BL0910-4.png</a> (Size: 96.68 KB / Downloads: 106)
<!-- end: postbit_attachments_attachment --> <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9405" target="_blank" title="">modbus-pull-read-BL0910-5.png</a> (Size: 95.49 KB / Downloads: 110)
<!-- end: postbit_attachments_attachment --> <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9406" target="_blank" title="">modbus-pull-read-BL0910-6.png</a> (Size: 95.27 KB / Downloads: 119)
<!-- end: postbit_attachments_attachment --><br />
<br />
<img src="https://www.kincony.com/forum/attachment.php?aid=9381" loading="lazy"  alt="[Image: attachment.php?aid=9381]" class="mycode_img" /> <br />
<img src="https://www.kincony.com/forum/attachment.php?aid=9387" loading="lazy"  alt="[Image: attachment.php?aid=9387]" class="mycode_img" /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9398" target="_blank" title="">NX_chip.zip</a> (Size: 654 bytes / Downloads: 87)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[1: open NX_chip.mbp in modbus pull software.<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9399" target="_blank" title="">modbus-open-config.png</a> (Size: 92.01 KB / Downloads: 96)
<!-- end: postbit_attachments_attachment --><br />
<br />
2: set COM port. you can use USB-RS485 adapter connect to your computer:<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9400" target="_blank" title="">modbus-pull-COM-setting.png</a> (Size: 87.06 KB / Downloads: 106)
<!-- end: postbit_attachments_attachment --><br />
<br />
3: <br />
you can read BL0910-1 chip from address 100 , register count: 68<br />
you can read BL0910-2 chip from address 200 , register count: 68 <br />
you can read BL0910-3 chip from address 300 , register count: 68 <br />
you can read BL0910-4 chip from address 400 , register count: 68 <br />
you can read BL0910-5 chip from address 500 , register count: 68 <br />
you can read BL0910-6 chip from address 600 , register count: 68 <br />
<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9401" target="_blank" title="">modbus-pull-read-BL0910-1.png</a> (Size: 96.25 KB / Downloads: 101)
<!-- end: postbit_attachments_attachment --><br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9402" target="_blank" title="">modbus-pull-read-BL0910-2.png</a> (Size: 98.36 KB / Downloads: 110)
<!-- end: postbit_attachments_attachment --><br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9403" target="_blank" title="">modbus-pull-read-BL0910-3.png</a> (Size: 94.91 KB / Downloads: 114)
<!-- end: postbit_attachments_attachment --><br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9404" target="_blank" title="">modbus-pull-read-BL0910-4.png</a> (Size: 96.68 KB / Downloads: 106)
<!-- end: postbit_attachments_attachment --> <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9405" target="_blank" title="">modbus-pull-read-BL0910-5.png</a> (Size: 95.49 KB / Downloads: 110)
<!-- end: postbit_attachments_attachment --> <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9406" target="_blank" title="">modbus-pull-read-BL0910-6.png</a> (Size: 95.27 KB / Downloads: 119)
<!-- end: postbit_attachments_attachment --><br />
<br />
<img src="https://www.kincony.com/forum/attachment.php?aid=9381" loading="lazy"  alt="[Image: attachment.php?aid=9381]" class="mycode_img" /> <br />
<img src="https://www.kincony.com/forum/attachment.php?aid=9387" loading="lazy"  alt="[Image: attachment.php?aid=9387]" class="mycode_img" /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9398" target="_blank" title="">NX_chip.zip</a> (Size: 654 bytes / Downloads: 87)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[N10 configure yaml for ESPhome 0.001kwh precision]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9154</link>
			<pubDate>Mon, 23 Mar 2026 09:54:55 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=1">admin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=9154</guid>
			<description><![CDATA[note: ARM CPU firmware version should &gt;= V20_260305SP<br />
ARM CPU firmware download: <a href="https://www.kincony.com/forum/showthread.php?tid=9107" target="_blank" rel="noopener" class="mycode_url">https://www.kincony.com/forum/showthread.php?tid=9107</a><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>esphome:<br />
  name: n10<br />
  friendly_name: n10<br />
<br />
esp32:<br />
  board: esp32-s3-devkitc-1<br />
  framework:<br />
    type: arduino<br />
<br />
logger:<br />
  # baud_rate: 0<br />
<br />
api:<br />
<br />
ota:<br />
  platform: esphome<br />
<br />
ethernet:<br />
  type: W5500<br />
  clk_pin: GPIO42<br />
  mosi_pin: GPIO43<br />
  miso_pin: GPIO44<br />
  cs_pin: GPIO41<br />
  interrupt_pin: GPIO2<br />
  reset_pin: GPIO1<br />
<br />
uart:<br />
  id: uart_modbus<br />
  rx_pin: 9<br />
  tx_pin: 10<br />
  baud_rate: 115200<br />
  stop_bits: 1<br />
  data_bits: 8<br />
  parity: NONE<br />
<br />
web_server:<br />
  port: 80<br />
<br />
text_sensor:<br />
  - platform: ethernet_info<br />
    ip_address:<br />
      name: ESP IP Address<br />
      id: eth_ip<br />
    dns_address:<br />
      name: ESP DNS Address<br />
    mac_address:<br />
      name: ESP MAC Address<br />
<br />
font:<br />
  - file: "gfonts://Roboto"<br />
    id: roboto<br />
    size: 15<br />
<br />
i2c:<br />
  sda: 18<br />
  scl: 17<br />
<br />
display:<br />
  - platform: ssd1306_i2c<br />
    model: "SSD1306 128x64"<br />
    address: 0x3C<br />
    lambda: |-<br />
      it.printf(0, 15, id(roboto), "IP: %s", id(eth_ip).state.c_str());<br />
<br />
modbus:<br />
  id: mb1<br />
  uart_id: uart_modbus<br />
<br />
modbus_controller:<br />
  - id: energy_meter<br />
    modbus_id: mb1<br />
    address: 1<br />
    update_interval: 5s<br />
    command_throttle: 200ms<br />
<br />
sensor:<br />
  # Protocol notes for this PR:<br />
  # - current: U_DWORD_R, scaled by 0.001 A<br />
  # - power: &nbsp;&nbsp;S_DWORD_R, scaled by 0.1 W<br />
  # - energy:  FP32_R, unit kWh<br />
  # - voltage/frequency remain U_WORD * 0.01<br />
  # - temperature remains FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 100<br />
    register_type: holding<br />
    name: bl0910_1_current_1<br />
    id: n10_1_current_1<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 102<br />
    register_type: holding<br />
    name: bl0910_1_current_2<br />
    id: n10_1_current_2<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 104<br />
    register_type: holding<br />
    name: bl0910_1_current_3<br />
    id: n10_1_current_3<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 106<br />
    register_type: holding<br />
    name: bl0910_1_current_4<br />
    id: n10_1_current_4<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 108<br />
    register_type: holding<br />
    name: bl0910_1_current_5<br />
    id: n10_1_current_5<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 110<br />
    register_type: holding<br />
    name: bl0910_1_current_6<br />
    id: n10_1_current_6<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 112<br />
    register_type: holding<br />
    name: bl0910_1_current_7<br />
    id: n10_1_current_7<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 114<br />
    register_type: holding<br />
    name: bl0910_1_current_8<br />
    id: n10_1_current_8<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 116<br />
    register_type: holding<br />
    name: bl0910_1_current_9<br />
    id: n10_1_current_9<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 118<br />
    register_type: holding<br />
    name: bl0910_1_current_10<br />
    id: n10_1_current_10<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 120<br />
    register_type: holding<br />
    name: bl0910_1_power_1<br />
    id: n10_1_watt_1<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 122<br />
    register_type: holding<br />
    name: bl0910_1_power_2<br />
    id: n10_1_watt_2<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 124<br />
    register_type: holding<br />
    name: bl0910_1_power_3<br />
    id: n10_1_watt_3<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 126<br />
    register_type: holding<br />
    name: bl0910_1_power_4<br />
    id: n10_1_watt_4<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 128<br />
    register_type: holding<br />
    name: bl0910_1_power_5<br />
    id: n10_1_watt_5<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 130<br />
    register_type: holding<br />
    name: bl0910_1_power_6<br />
    id: n10_1_watt_6<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 132<br />
    register_type: holding<br />
    name: bl0910_1_power_7<br />
    id: n10_1_watt_7<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 134<br />
    register_type: holding<br />
    name: bl0910_1_power_8<br />
    id: n10_1_watt_8<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 136<br />
    register_type: holding<br />
    name: bl0910_1_power_9<br />
    id: n10_1_watt_9<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 138<br />
    register_type: holding<br />
    name: bl0910_1_power_10<br />
    id: n10_1_watt_10<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 140<br />
    register_type: holding<br />
    name: bl0910_1_energy_1<br />
    id: n10_1_energy_1<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 142<br />
    register_type: holding<br />
    name: bl0910_1_energy_2<br />
    id: n10_1_energy_2<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 144<br />
    register_type: holding<br />
    name: bl0910_1_energy_3<br />
    id: n10_1_energy_3<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 146<br />
    register_type: holding<br />
    name: bl0910_1_energy_4<br />
    id: n10_1_energy_4<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 148<br />
    register_type: holding<br />
    name: bl0910_1_energy_5<br />
    id: n10_1_energy_5<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 150<br />
    register_type: holding<br />
    name: bl0910_1_energy_6<br />
    id: n10_1_energy_6<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 152<br />
    register_type: holding<br />
    name: bl0910_1_energy_7<br />
    id: n10_1_energy_7<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 154<br />
    register_type: holding<br />
    name: bl0910_1_energy_8<br />
    id: n10_1_energy_8<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 156<br />
    register_type: holding<br />
    name: bl0910_1_energy_9<br />
    id: n10_1_energy_9<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 158<br />
    register_type: holding<br />
    name: bl0910_1_energy_10<br />
    id: n10_1_energy_10<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 160<br />
    register_type: holding<br />
    name: bl0910_1_energy_sum<br />
    id: n10_1_energy_sum<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 162<br />
    register_type: holding<br />
    name: bl0910_1_voltage<br />
    id: n10_1_voltage<br />
    unit_of_measurement: V<br />
    device_class: voltage<br />
    state_class: measurement<br />
    accuracy_decimals: 2<br />
    value_type: U_WORD<br />
    filters:<br />
      - multiply: 0.01<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 163<br />
    register_type: holding<br />
    name: bl0910_1_frequency<br />
    id: n10_1_frequency<br />
    unit_of_measurement: Hz<br />
    device_class: frequency<br />
    state_class: measurement<br />
    accuracy_decimals: 2<br />
    value_type: U_WORD<br />
    filters:<br />
      - multiply: 0.01<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 164<br />
    register_type: holding<br />
    name: bl0910_1_temperature<br />
    id: n10_1_temperature<br />
    unit_of_measurement: °C<br />
    device_class: temperature<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 166<br />
    register_type: holding<br />
    name: bl0910_1_power_factor<br />
    id: n10_1_power_factor<br />
    accuracy_decimals: 3<br />
    state_class: measurement<br />
    value_type: FP32_R</code></div></div> yaml download:  <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9373" target="_blank" title="">n10_esphome.txt</a> (Size: 12.27 KB / Downloads: 90)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[note: ARM CPU firmware version should &gt;= V20_260305SP<br />
ARM CPU firmware download: <a href="https://www.kincony.com/forum/showthread.php?tid=9107" target="_blank" rel="noopener" class="mycode_url">https://www.kincony.com/forum/showthread.php?tid=9107</a><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>esphome:<br />
  name: n10<br />
  friendly_name: n10<br />
<br />
esp32:<br />
  board: esp32-s3-devkitc-1<br />
  framework:<br />
    type: arduino<br />
<br />
logger:<br />
  # baud_rate: 0<br />
<br />
api:<br />
<br />
ota:<br />
  platform: esphome<br />
<br />
ethernet:<br />
  type: W5500<br />
  clk_pin: GPIO42<br />
  mosi_pin: GPIO43<br />
  miso_pin: GPIO44<br />
  cs_pin: GPIO41<br />
  interrupt_pin: GPIO2<br />
  reset_pin: GPIO1<br />
<br />
uart:<br />
  id: uart_modbus<br />
  rx_pin: 9<br />
  tx_pin: 10<br />
  baud_rate: 115200<br />
  stop_bits: 1<br />
  data_bits: 8<br />
  parity: NONE<br />
<br />
web_server:<br />
  port: 80<br />
<br />
text_sensor:<br />
  - platform: ethernet_info<br />
    ip_address:<br />
      name: ESP IP Address<br />
      id: eth_ip<br />
    dns_address:<br />
      name: ESP DNS Address<br />
    mac_address:<br />
      name: ESP MAC Address<br />
<br />
font:<br />
  - file: "gfonts://Roboto"<br />
    id: roboto<br />
    size: 15<br />
<br />
i2c:<br />
  sda: 18<br />
  scl: 17<br />
<br />
display:<br />
  - platform: ssd1306_i2c<br />
    model: "SSD1306 128x64"<br />
    address: 0x3C<br />
    lambda: |-<br />
      it.printf(0, 15, id(roboto), "IP: %s", id(eth_ip).state.c_str());<br />
<br />
modbus:<br />
  id: mb1<br />
  uart_id: uart_modbus<br />
<br />
modbus_controller:<br />
  - id: energy_meter<br />
    modbus_id: mb1<br />
    address: 1<br />
    update_interval: 5s<br />
    command_throttle: 200ms<br />
<br />
sensor:<br />
  # Protocol notes for this PR:<br />
  # - current: U_DWORD_R, scaled by 0.001 A<br />
  # - power: &nbsp;&nbsp;S_DWORD_R, scaled by 0.1 W<br />
  # - energy:  FP32_R, unit kWh<br />
  # - voltage/frequency remain U_WORD * 0.01<br />
  # - temperature remains FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 100<br />
    register_type: holding<br />
    name: bl0910_1_current_1<br />
    id: n10_1_current_1<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 102<br />
    register_type: holding<br />
    name: bl0910_1_current_2<br />
    id: n10_1_current_2<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 104<br />
    register_type: holding<br />
    name: bl0910_1_current_3<br />
    id: n10_1_current_3<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 106<br />
    register_type: holding<br />
    name: bl0910_1_current_4<br />
    id: n10_1_current_4<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 108<br />
    register_type: holding<br />
    name: bl0910_1_current_5<br />
    id: n10_1_current_5<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 110<br />
    register_type: holding<br />
    name: bl0910_1_current_6<br />
    id: n10_1_current_6<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 112<br />
    register_type: holding<br />
    name: bl0910_1_current_7<br />
    id: n10_1_current_7<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 114<br />
    register_type: holding<br />
    name: bl0910_1_current_8<br />
    id: n10_1_current_8<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 116<br />
    register_type: holding<br />
    name: bl0910_1_current_9<br />
    id: n10_1_current_9<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 118<br />
    register_type: holding<br />
    name: bl0910_1_current_10<br />
    id: n10_1_current_10<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    state_class: measurement<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 120<br />
    register_type: holding<br />
    name: bl0910_1_power_1<br />
    id: n10_1_watt_1<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 122<br />
    register_type: holding<br />
    name: bl0910_1_power_2<br />
    id: n10_1_watt_2<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 124<br />
    register_type: holding<br />
    name: bl0910_1_power_3<br />
    id: n10_1_watt_3<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 126<br />
    register_type: holding<br />
    name: bl0910_1_power_4<br />
    id: n10_1_watt_4<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 128<br />
    register_type: holding<br />
    name: bl0910_1_power_5<br />
    id: n10_1_watt_5<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 130<br />
    register_type: holding<br />
    name: bl0910_1_power_6<br />
    id: n10_1_watt_6<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 132<br />
    register_type: holding<br />
    name: bl0910_1_power_7<br />
    id: n10_1_watt_7<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 134<br />
    register_type: holding<br />
    name: bl0910_1_power_8<br />
    id: n10_1_watt_8<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 136<br />
    register_type: holding<br />
    name: bl0910_1_power_9<br />
    id: n10_1_watt_9<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 138<br />
    register_type: holding<br />
    name: bl0910_1_power_10<br />
    id: n10_1_watt_10<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: S_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 140<br />
    register_type: holding<br />
    name: bl0910_1_energy_1<br />
    id: n10_1_energy_1<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 142<br />
    register_type: holding<br />
    name: bl0910_1_energy_2<br />
    id: n10_1_energy_2<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 144<br />
    register_type: holding<br />
    name: bl0910_1_energy_3<br />
    id: n10_1_energy_3<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 146<br />
    register_type: holding<br />
    name: bl0910_1_energy_4<br />
    id: n10_1_energy_4<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 148<br />
    register_type: holding<br />
    name: bl0910_1_energy_5<br />
    id: n10_1_energy_5<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 150<br />
    register_type: holding<br />
    name: bl0910_1_energy_6<br />
    id: n10_1_energy_6<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 152<br />
    register_type: holding<br />
    name: bl0910_1_energy_7<br />
    id: n10_1_energy_7<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 154<br />
    register_type: holding<br />
    name: bl0910_1_energy_8<br />
    id: n10_1_energy_8<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 156<br />
    register_type: holding<br />
    name: bl0910_1_energy_9<br />
    id: n10_1_energy_9<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 158<br />
    register_type: holding<br />
    name: bl0910_1_energy_10<br />
    id: n10_1_energy_10<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 160<br />
    register_type: holding<br />
    name: bl0910_1_energy_sum<br />
    id: n10_1_energy_sum<br />
    unit_of_measurement: kWh<br />
    device_class: energy<br />
    state_class: total_increasing<br />
    accuracy_decimals: 3<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 162<br />
    register_type: holding<br />
    name: bl0910_1_voltage<br />
    id: n10_1_voltage<br />
    unit_of_measurement: V<br />
    device_class: voltage<br />
    state_class: measurement<br />
    accuracy_decimals: 2<br />
    value_type: U_WORD<br />
    filters:<br />
      - multiply: 0.01<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 163<br />
    register_type: holding<br />
    name: bl0910_1_frequency<br />
    id: n10_1_frequency<br />
    unit_of_measurement: Hz<br />
    device_class: frequency<br />
    state_class: measurement<br />
    accuracy_decimals: 2<br />
    value_type: U_WORD<br />
    filters:<br />
      - multiply: 0.01<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 164<br />
    register_type: holding<br />
    name: bl0910_1_temperature<br />
    id: n10_1_temperature<br />
    unit_of_measurement: °C<br />
    device_class: temperature<br />
    state_class: measurement<br />
    accuracy_decimals: 1<br />
    value_type: FP32_R<br />
<br />
  - platform: modbus_controller<br />
    modbus_controller_id: energy_meter<br />
    address: 166<br />
    register_type: holding<br />
    name: bl0910_1_power_factor<br />
    id: n10_1_power_factor<br />
    accuracy_decimals: 3<br />
    state_class: measurement<br />
    value_type: FP32_R</code></div></div> yaml download:  <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9373" target="_blank" title="">n10_esphome.txt</a> (Size: 12.27 KB / Downloads: 90)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[N10 port modbus]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9085</link>
			<pubDate>Tue, 03 Mar 2026 18:41:09 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=10509">R43</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=9085</guid>
			<description><![CDATA[There's no way to change the speed and port using Modbus. Please fix this or send me a firmware update with port 4 instead of the default 1. Thank you.]]></description>
			<content:encoded><![CDATA[There's no way to change the speed and port using Modbus. Please fix this or send me a firmware update with port 4 instead of the default 1. Thank you.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Problem when connecting USB-C]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=8673</link>
			<pubDate>Fri, 24 Oct 2025 02:27:46 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=9741">aym55</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=8673</guid>
			<description><![CDATA[Hello,<br />
I just bought N10 module, i connected it to 24V power and it works. However when i try to put USB-C cable from computer to Kincony for download firmware it suddenly have short cut and my 24V power supply turn off , i must take off usb-c for it to work again, this situation is from early begining.I get deffective Unit ?<br />
<br />
Thanks.]]></description>
			<content:encoded><![CDATA[Hello,<br />
I just bought N10 module, i connected it to 24V power and it works. However when i try to put USB-C cable from computer to Kincony for download firmware it suddenly have short cut and my 24V power supply turn off , i must take off usb-c for it to work again, this situation is from early begining.I get deffective Unit ?<br />
<br />
Thanks.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[N10 configure yaml for ESPhome]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=8645</link>
			<pubDate>Mon, 13 Oct 2025 18:22:57 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=1">admin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=8645</guid>
			<description><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>esphome:<br />
  name: n10<br />
  friendly_name: n10<br />
<br />
esp32:<br />
  board: esp32-s3-devkitc-1<br />
  framework:<br />
    type: arduino<br />
<br />
# Enable logging<br />
logger:<br />
  # baud_rate: 0<br />
<br />
# Enable Home Assistant API<br />
api:<br />
<br />
ota:<br />
  platform: esphome<br />
<br />
ethernet:<br />
  type: W5500<br />
  clk_pin: GPIO42<br />
  mosi_pin: GPIO43<br />
  miso_pin: GPIO44<br />
  cs_pin: GPIO41<br />
  interrupt_pin: GPIO2<br />
  reset_pin: GPIO1<br />
<br />
uart:<br />
  rx_pin: 9<br />
  tx_pin: 10<br />
  baud_rate: 115200<br />
  stop_bits: 1<br />
  data_bits: 8<br />
  parity: NONE<br />
<br />
web_server:<br />
  port: 80<br />
<br />
text_sensor:<br />
  - platform: ethernet_info<br />
    ip_address:<br />
      name: ESP IP Address<br />
      id: eth_ip<br />
      address_0:<br />
        name: ESP IP Address 0<br />
      address_1:<br />
        name: ESP IP Address 1<br />
      address_2:<br />
        name: ESP IP Address 2<br />
      address_3:<br />
        name: ESP IP Address 3<br />
      address_4:<br />
        name: ESP IP Address 4<br />
    dns_address:<br />
      name: ESP DNS Address<br />
    mac_address:<br />
      name: ESP MAC Address<br />
<br />
font:<br />
  - file: "gfonts://Roboto"<br />
    id: roboto<br />
    size: 15<br />
<br />
i2c:<br />
  sda: 18<br />
  scl: 17<br />
<br />
display:<br />
  - platform: ssd1306_i2c<br />
    model: "SSD1306 128x64"<br />
    address: 0x3C<br />
    lambda: |-<br />
      it.printf(0, 15, id(roboto), "IP: %s", id(eth_ip).state.c_str());<br />
<br />
modbus:<br />
<br />
modbus_controller:<br />
  - address: 1<br />
    update_interval: 5s<br />
<br />
sensor:<br />
  - platform: modbus_controller<br />
    address: 100<br />
    register_type: holding<br />
    name: bl0910_1_current_1<br />
    id: n10_1_current_1<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 102<br />
    register_type: holding<br />
    name: bl0910_1_current_2<br />
    id: n10_1_current_2<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 104<br />
    register_type: holding<br />
    name: bl0910_1_current_3<br />
    id: n10_1_current_3<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 106<br />
    register_type: holding<br />
    name: bl0910_1_current_4<br />
    id: n10_1_current_4<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 108<br />
    register_type: holding<br />
    name: bl0910_1_current_5<br />
    id: n10_1_current_5<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 110<br />
    register_type: holding<br />
    name: bl0910_1_current_6<br />
    id: n10_1_current_6<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 112<br />
    register_type: holding<br />
    name: bl0910_1_current_7<br />
    id: n10_1_current_7<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 114<br />
    register_type: holding<br />
    name: bl0910_1_current_8<br />
    id: n10_1_current_8<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 116<br />
    register_type: holding<br />
    name: bl0910_1_current_9<br />
    id: n10_1_current_9<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 118<br />
    register_type: holding<br />
    name: bl0910_1_current_10<br />
    id: n10_1_current_10<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 120<br />
    register_type: holding<br />
    name: bl0910_1_power_1<br />
    id: n10_1_watt_1<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 122<br />
    register_type: holding<br />
    name: bl0910_1_power_2<br />
    id: n10_1_watt_2<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 124<br />
    register_type: holding<br />
    name: bl0910_1_power_3<br />
    id: n10_1_watt_3<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 126<br />
    register_type: holding<br />
    name: bl0910_1_power_4<br />
    id: n10_1_watt_4<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 128<br />
    register_type: holding<br />
    name: bl0910_1_power_5<br />
    id: n10_1_watt_5<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 130<br />
    register_type: holding<br />
    name: bl0910_1_power_6<br />
    id: n10_1_watt_6<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 132<br />
    register_type: holding<br />
    name: bl0910_1_power_7<br />
    id: n10_1_watt_7<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 134<br />
    register_type: holding<br />
    name: bl0910_1_power_8<br />
    id: n10_1_watt_8<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 136<br />
    register_type: holding<br />
    name: bl0910_1_power_9<br />
    id: n10_1_watt_9<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 138<br />
    register_type: holding<br />
    name: bl0910_1_power_10<br />
    id: n10_1_watt_10<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 140<br />
    register_type: holding<br />
    name: bl0910_1_energy_1<br />
    id: n10_1_energy_1<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 142<br />
    register_type: holding<br />
    name: bl0910_1_energy_2<br />
    id: n10_1_energy_2<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 144<br />
    register_type: holding<br />
    name: bl0910_1_energy_3<br />
    id: n10_1_energy_3<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 146<br />
    register_type: holding<br />
    name: bl0910_1_energy_4<br />
    id: n10_1_energy_4<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 148<br />
    register_type: holding<br />
    name: bl0910_1_energy_5<br />
    id: n10_1_energy_5<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 150<br />
    register_type: holding<br />
    name: bl0910_1_energy_6<br />
    id: n10_1_energy_6<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 152<br />
    register_type: holding<br />
    name: bl0910_1_energy_7<br />
    id: n10_1_energy_7<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 154<br />
    register_type: holding<br />
    name: bl0910_1_energy_8<br />
    id: n10_1_energy_8<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 156<br />
    register_type: holding<br />
    name: bl0910_1_energy_9<br />
    id: n10_1_energy_9<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 158<br />
    register_type: holding<br />
    name: bl0910_1_energy_10<br />
    id: n10_1_energy_10<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 160<br />
    register_type: holding<br />
    name: bl0910_1_energy_sum<br />
    id: n10_1_energy_sum<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    address: 162<br />
    register_type: holding<br />
    name: bl0910_1_voltage<br />
    id: n10_1_voltage<br />
    unit_of_measurement: V<br />
    device_class: voltage<br />
    accuracy_decimals: 1<br />
    value_type: U_WORD<br />
    filters:<br />
      - multiply: 0.01<br />
<br />
  - platform: modbus_controller<br />
    address: 163<br />
    register_type: holding<br />
    name: bl0910_1_frequency<br />
    id: n10_1_period<br />
    unit_of_measurement: Hz<br />
    device_class: frequency<br />
    accuracy_decimals: 1<br />
    value_type: U_WORD<br />
    filters:<br />
      - multiply: 0.01<br />
<br />
  - platform: modbus_controller<br />
    address: 164<br />
    register_type: holding<br />
    name: bl0910_1_tps1<br />
    id: n10_1_tps_1<br />
    unit_of_measurement: °C<br />
    device_class: temperature<br />
    accuracy_decimals: 1<br />
    value_type: FP32_R</code></div></div> yaml download:  <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8458" target="_blank" title="">N10-HA.txt</a> (Size: 10.03 KB / Downloads: 314)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>esphome:<br />
  name: n10<br />
  friendly_name: n10<br />
<br />
esp32:<br />
  board: esp32-s3-devkitc-1<br />
  framework:<br />
    type: arduino<br />
<br />
# Enable logging<br />
logger:<br />
  # baud_rate: 0<br />
<br />
# Enable Home Assistant API<br />
api:<br />
<br />
ota:<br />
  platform: esphome<br />
<br />
ethernet:<br />
  type: W5500<br />
  clk_pin: GPIO42<br />
  mosi_pin: GPIO43<br />
  miso_pin: GPIO44<br />
  cs_pin: GPIO41<br />
  interrupt_pin: GPIO2<br />
  reset_pin: GPIO1<br />
<br />
uart:<br />
  rx_pin: 9<br />
  tx_pin: 10<br />
  baud_rate: 115200<br />
  stop_bits: 1<br />
  data_bits: 8<br />
  parity: NONE<br />
<br />
web_server:<br />
  port: 80<br />
<br />
text_sensor:<br />
  - platform: ethernet_info<br />
    ip_address:<br />
      name: ESP IP Address<br />
      id: eth_ip<br />
      address_0:<br />
        name: ESP IP Address 0<br />
      address_1:<br />
        name: ESP IP Address 1<br />
      address_2:<br />
        name: ESP IP Address 2<br />
      address_3:<br />
        name: ESP IP Address 3<br />
      address_4:<br />
        name: ESP IP Address 4<br />
    dns_address:<br />
      name: ESP DNS Address<br />
    mac_address:<br />
      name: ESP MAC Address<br />
<br />
font:<br />
  - file: "gfonts://Roboto"<br />
    id: roboto<br />
    size: 15<br />
<br />
i2c:<br />
  sda: 18<br />
  scl: 17<br />
<br />
display:<br />
  - platform: ssd1306_i2c<br />
    model: "SSD1306 128x64"<br />
    address: 0x3C<br />
    lambda: |-<br />
      it.printf(0, 15, id(roboto), "IP: %s", id(eth_ip).state.c_str());<br />
<br />
modbus:<br />
<br />
modbus_controller:<br />
  - address: 1<br />
    update_interval: 5s<br />
<br />
sensor:<br />
  - platform: modbus_controller<br />
    address: 100<br />
    register_type: holding<br />
    name: bl0910_1_current_1<br />
    id: n10_1_current_1<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 102<br />
    register_type: holding<br />
    name: bl0910_1_current_2<br />
    id: n10_1_current_2<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 104<br />
    register_type: holding<br />
    name: bl0910_1_current_3<br />
    id: n10_1_current_3<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 106<br />
    register_type: holding<br />
    name: bl0910_1_current_4<br />
    id: n10_1_current_4<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 108<br />
    register_type: holding<br />
    name: bl0910_1_current_5<br />
    id: n10_1_current_5<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 110<br />
    register_type: holding<br />
    name: bl0910_1_current_6<br />
    id: n10_1_current_6<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 112<br />
    register_type: holding<br />
    name: bl0910_1_current_7<br />
    id: n10_1_current_7<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 114<br />
    register_type: holding<br />
    name: bl0910_1_current_8<br />
    id: n10_1_current_8<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 116<br />
    register_type: holding<br />
    name: bl0910_1_current_9<br />
    id: n10_1_current_9<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 118<br />
    register_type: holding<br />
    name: bl0910_1_current_10<br />
    id: n10_1_current_10<br />
    unit_of_measurement: A<br />
    device_class: current<br />
    accuracy_decimals: 3<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.001<br />
<br />
  - platform: modbus_controller<br />
    address: 120<br />
    register_type: holding<br />
    name: bl0910_1_power_1<br />
    id: n10_1_watt_1<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 122<br />
    register_type: holding<br />
    name: bl0910_1_power_2<br />
    id: n10_1_watt_2<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 124<br />
    register_type: holding<br />
    name: bl0910_1_power_3<br />
    id: n10_1_watt_3<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 126<br />
    register_type: holding<br />
    name: bl0910_1_power_4<br />
    id: n10_1_watt_4<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 128<br />
    register_type: holding<br />
    name: bl0910_1_power_5<br />
    id: n10_1_watt_5<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 130<br />
    register_type: holding<br />
    name: bl0910_1_power_6<br />
    id: n10_1_watt_6<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 132<br />
    register_type: holding<br />
    name: bl0910_1_power_7<br />
    id: n10_1_watt_7<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 134<br />
    register_type: holding<br />
    name: bl0910_1_power_8<br />
    id: n10_1_watt_8<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 136<br />
    register_type: holding<br />
    name: bl0910_1_power_9<br />
    id: n10_1_watt_9<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    address: 138<br />
    register_type: holding<br />
    name: bl0910_1_power_10<br />
    id: n10_1_watt_10<br />
    unit_of_measurement: W<br />
    device_class: power<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
    filters:<br />
      - multiply: 0.1<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 140<br />
    register_type: holding<br />
    name: bl0910_1_energy_1<br />
    id: n10_1_energy_1<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 142<br />
    register_type: holding<br />
    name: bl0910_1_energy_2<br />
    id: n10_1_energy_2<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 144<br />
    register_type: holding<br />
    name: bl0910_1_energy_3<br />
    id: n10_1_energy_3<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 146<br />
    register_type: holding<br />
    name: bl0910_1_energy_4<br />
    id: n10_1_energy_4<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 148<br />
    register_type: holding<br />
    name: bl0910_1_energy_5<br />
    id: n10_1_energy_5<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 150<br />
    register_type: holding<br />
    name: bl0910_1_energy_6<br />
    id: n10_1_energy_6<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 152<br />
    register_type: holding<br />
    name: bl0910_1_energy_7<br />
    id: n10_1_energy_7<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 154<br />
    register_type: holding<br />
    name: bl0910_1_energy_8<br />
    id: n10_1_energy_8<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 156<br />
    register_type: holding<br />
    name: bl0910_1_energy_9<br />
    id: n10_1_energy_9<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 158<br />
    register_type: holding<br />
    name: bl0910_1_energy_10<br />
    id: n10_1_energy_10<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    state_class: total_increasing<br />
    device_class: energy<br />
    address: 160<br />
    register_type: holding<br />
    name: bl0910_1_energy_sum<br />
    id: n10_1_energy_sum<br />
    unit_of_measurement: kWh<br />
    accuracy_decimals: 1<br />
    value_type: U_DWORD_R<br />
<br />
  - platform: modbus_controller<br />
    address: 162<br />
    register_type: holding<br />
    name: bl0910_1_voltage<br />
    id: n10_1_voltage<br />
    unit_of_measurement: V<br />
    device_class: voltage<br />
    accuracy_decimals: 1<br />
    value_type: U_WORD<br />
    filters:<br />
      - multiply: 0.01<br />
<br />
  - platform: modbus_controller<br />
    address: 163<br />
    register_type: holding<br />
    name: bl0910_1_frequency<br />
    id: n10_1_period<br />
    unit_of_measurement: Hz<br />
    device_class: frequency<br />
    accuracy_decimals: 1<br />
    value_type: U_WORD<br />
    filters:<br />
      - multiply: 0.01<br />
<br />
  - platform: modbus_controller<br />
    address: 164<br />
    register_type: holding<br />
    name: bl0910_1_tps1<br />
    id: n10_1_tps_1<br />
    unit_of_measurement: °C<br />
    device_class: temperature<br />
    accuracy_decimals: 1<br />
    value_type: FP32_R</code></div></div> yaml download:  <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8458" target="_blank" title="">N10-HA.txt</a> (Size: 10.03 KB / Downloads: 314)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[N10 Energy RS485 Modbus Protocol]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=8642</link>
			<pubDate>Mon, 13 Oct 2025 10:04:32 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=1">admin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=8642</guid>
			<description><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>N10 Energy Module Modbus Protocol Specification<br />
==============================================<br />
<br />
1. Overview<br />
-----------<br />
<br />
This document specifies the Modbus communication protocol for the N10 Energy Module.<br />
The device communicates using the Modbus RTU protocol and provides access to electrical<br />
measurement parameters including current, power, energy consumption, voltage, frequency,<br />
temperature, and power factor.<br />
<br />
2. Module Characteristics<br />
-------------------------<br />
<br />
- Energy Monitoring Chips: 1<br />
- Communication Protocol: Modbus RTU<br />
- Wireless Technology: Not applicable (wired connection)<br />
- Maximum Sensors Supported: 32<br />
- Board Features: Display, Ethernet (W5500), 4G, SD Card support<br />
- GPIO Availability: 2 free GPIOs (pins 15, 16)<br />
<br />
3. Communication Parameters<br />
---------------------------<br />
<br />
- Protocol: Modbus RTU<br />
- Baud Rate: 38400<br />
- Function Codes:<br />
  * 0x03: Read Holding Registers (for reading data)<br />
  * 0x05: Write Single Coil (for control operations)<br />
  * 0x10: Write Multiple Registers (for configuration)<br />
<br />
4. Chip Addressing<br />
------------------<br />
<br />
The N10 Energy Module contains 1 measurement chip with base address:<br />
<br />
+-------------+--------------+--------------------+<br />
| Chip Number | Base Address | Physical Location  |<br />
+-------------+--------------+--------------------+<br />
| Chip 1      | 100          | Main board       &nbsp;&nbsp;|<br />
+-------------+--------------+--------------------+<br />
<br />
5. Data Structure<br />
-----------------<br />
<br />
The chip provides the following data (accessible via Function Code 0x03):<br />
<br />
5.1 Current Measurements (RMS)<br />
------------------------------<br />
<br />
+----------------+------------+-------+--------+---------------+<br />
| Register Offset| Parameter  | Units | Format | Resolution    |<br />
+----------------+------------+-------+--------+---------------+<br />
| 0              | RMS_1      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 2              | RMS_2      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 4              | RMS_3      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 6              | RMS_4      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 8              | RMS_5      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 10           &nbsp;&nbsp;| RMS_6      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 12           &nbsp;&nbsp;| RMS_7      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 14           &nbsp;&nbsp;| RMS_8      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 16           &nbsp;&nbsp;| RMS_9      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 18           &nbsp;&nbsp;| RMS_10   &nbsp;&nbsp;| A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
+----------------+------------+-------+--------+---------------+<br />
<br />
Example: To read RMS_1 from Chip 1, read registers 100 and 101 (2 registers for uint32).<br />
Display: Reading of 5432 represents 5.432A (5432 × 0.001A)<br />
<br />
5.2 Power Measurements (WATT)<br />
-----------------------------<br />
<br />
+----------------+------------+-------+--------+---------------+<br />
| Register Offset| Parameter  | Units | Format | Resolution    |<br />
+----------------+------------+-------+--------+---------------+<br />
| 20           &nbsp;&nbsp;| WATT_1   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 22           &nbsp;&nbsp;| WATT_2   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 24           &nbsp;&nbsp;| WATT_3   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 26           &nbsp;&nbsp;| WATT_4   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 28           &nbsp;&nbsp;| WATT_5   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 30           &nbsp;&nbsp;| WATT_6   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 32           &nbsp;&nbsp;| WATT_7   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 34           &nbsp;&nbsp;| WATT_8   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 36           &nbsp;&nbsp;| WATT_9   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 38           &nbsp;&nbsp;| WATT_10    | W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
+----------------+------------+-------+--------+---------------+<br />
<br />
Example: To read WATT_1 from Chip 1, read registers 120 and 121 (2 registers for uint32).<br />
Display: Reading of 12345 represents 1234.5W (12345 × 0.1W)<br />
<br />
5.3 Energy Consumption Measurements<br />
-----------------------------------<br />
<br />
+----------------+-------------+-------+--------+---------------------+<br />
| Register Offset| Parameter &nbsp;&nbsp;| Units | Format | Resolution          |<br />
+----------------+-------------+-------+--------+---------------------+<br />
| 40           &nbsp;&nbsp;| Energy_1    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 42           &nbsp;&nbsp;| Energy_2    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 44           &nbsp;&nbsp;| Energy_3    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 46           &nbsp;&nbsp;| Energy_4    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 48           &nbsp;&nbsp;| Energy_5    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 50           &nbsp;&nbsp;| Energy_6    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 52           &nbsp;&nbsp;| Energy_7    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 54           &nbsp;&nbsp;| Energy_8    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 56           &nbsp;&nbsp;| Energy_9    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 58           &nbsp;&nbsp;| Energy_10 &nbsp;&nbsp;| kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 60           &nbsp;&nbsp;| Energy_Sum  | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
+----------------+-------------+-------+--------+---------------------+<br />
<br />
Note: The maximum measurable energy per channel is 65535 kWh.<br />
<br />
5.4 Other Measurements<br />
----------------------<br />
<br />
+----------------+-------------+-------+--------+---------------------+<br />
| Register Offset| Parameter &nbsp;&nbsp;| Units | Format | Resolution          |<br />
+----------------+-------------+-------+--------+---------------------+<br />
| 62           &nbsp;&nbsp;| RMS_V     &nbsp;&nbsp;| V   &nbsp;&nbsp;| uint16 | 0.01V/LSB         &nbsp;&nbsp;|<br />
| 63           &nbsp;&nbsp;| Period      | Hz    | uint16 | 0.01Hz/LSB          |<br />
| 64           &nbsp;&nbsp;| TPS1        | °C    | float  | 0.1°C/LSB         &nbsp;&nbsp;|<br />
| 66           &nbsp;&nbsp;| PF          | -   &nbsp;&nbsp;| float  | Power Factor (0-1)  |<br />
+----------------+-------------+-------+--------+---------------------+<br />
<br />
6. Control Functions (Function Code 0x05)<br />
------------------------------------------<br />
<br />
The following control registers can be written to using the Modbus function code 0x05:<br />
<br />
+----------+------------------------------+--------------------------------------------+<br />
| Register | Function                   &nbsp;&nbsp;| Description                                |<br />
+----------+------------------------------+--------------------------------------------+<br />
| 500      | Warm Reset                 &nbsp;&nbsp;| Resets the device                          |<br />
| 501      | Save Parameters to Flash   &nbsp;&nbsp;| Save communication parameters to flash   &nbsp;&nbsp;|<br />
| 503      | Save Coefficients to Flash &nbsp;&nbsp;| Save calibration coefficients to flash   &nbsp;&nbsp;|<br />
| 504      | Clear Coefficients         &nbsp;&nbsp;| Reset all coefficients to 1.0 (use caution)|<br />
| 510      | Restore Factory Settings   &nbsp;&nbsp;| Restore factory communication parameters &nbsp;&nbsp;|<br />
+----------+------------------------------+--------------------------------------------+<br />
<br />
7. Energy Clearing Functions (Function Code 0x05)<br />
--------------------------------------------------<br />
<br />
The following registers clear energy consumption data when written with function code 0x05:<br />
<br />
7.1 Clear All Channels on the Chip<br />
-----------------------------------<br />
<br />
+----------+--------------------------------+<br />
| Register | Function                     &nbsp;&nbsp;|<br />
+----------+--------------------------------+<br />
| 520      | Clear all energy on Chip 1   &nbsp;&nbsp;|<br />
+----------+--------------------------------+<br />
<br />
7.2 Clear Individual Channels<br />
------------------------------<br />
<br />
+----------------+------------------------------------------------+<br />
| Register Range | Function                                     &nbsp;&nbsp;|<br />
+----------------+------------------------------------------------+<br />
| 526-535        | Clear energy on Chip 1, channels 1-10          |<br />
| 586            | Clear sum energy on Chip 1                   &nbsp;&nbsp;|<br />
+----------------+------------------------------------------------+<br />
<br />
8. Calibration Coefficients (Function Code 0x03 to read, 0x10 to write)<br />
------------------------------------------------------------------------<br />
<br />
All coefficients are stored as floating-point values in CDBA format.<br />
<br />
8.1 Current (RMS) Coefficients for Chip 1<br />
------------------------------------------<br />
<br />
+----------+---------------------+---------+<br />
| Register | Parameter         &nbsp;&nbsp;| Default |<br />
+----------+---------------------+---------+<br />
| 3000   &nbsp;&nbsp;| FACTOR OF RMS1      | 1.0   &nbsp;&nbsp;|<br />
| 3002   &nbsp;&nbsp;| FACTOR OF RMS2      | 1.0   &nbsp;&nbsp;|<br />
| 3004   &nbsp;&nbsp;| FACTOR OF RMS3      | 1.0   &nbsp;&nbsp;|<br />
| 3006   &nbsp;&nbsp;| FACTOR OF RMS4      | 1.0   &nbsp;&nbsp;|<br />
| 3008   &nbsp;&nbsp;| FACTOR OF RMS5      | 1.0   &nbsp;&nbsp;|<br />
| 3010   &nbsp;&nbsp;| FACTOR OF RMS6      | 1.0   &nbsp;&nbsp;|<br />
| 3012   &nbsp;&nbsp;| FACTOR OF RMS7      | 1.0   &nbsp;&nbsp;|<br />
| 3014   &nbsp;&nbsp;| FACTOR OF RMS8      | 1.0   &nbsp;&nbsp;|<br />
| 3016   &nbsp;&nbsp;| FACTOR OF RMS9      | 1.0   &nbsp;&nbsp;|<br />
| 3018   &nbsp;&nbsp;| FACTOR OF RMS10   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
+----------+---------------------+---------+<br />
<br />
8.2 Power (WATT) Coefficients for Chip 1<br />
-----------------------------------------<br />
<br />
+----------+---------------------+---------+<br />
| Register | Parameter         &nbsp;&nbsp;| Default |<br />
+----------+---------------------+---------+<br />
| 3020   &nbsp;&nbsp;| FACTOR OF WATT1   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3022   &nbsp;&nbsp;| FACTOR OF WATT2   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3024   &nbsp;&nbsp;| FACTOR OF WATT3   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3026   &nbsp;&nbsp;| FACTOR OF WATT4   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3028   &nbsp;&nbsp;| FACTOR OF WATT5   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3030   &nbsp;&nbsp;| FACTOR OF WATT6   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3032   &nbsp;&nbsp;| FACTOR OF WATT7   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3034   &nbsp;&nbsp;| FACTOR OF WATT8   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3036   &nbsp;&nbsp;| FACTOR OF WATT9   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3038   &nbsp;&nbsp;| FACTOR OF WATT10    | 1.0   &nbsp;&nbsp;|<br />
+----------+---------------------+---------+<br />
<br />
8.3 Energy Coefficients for Chip 1<br />
-----------------------------------<br />
<br />
+----------+-----------------------+---------+<br />
| Register | Parameter           &nbsp;&nbsp;| Default |<br />
+----------+-----------------------+---------+<br />
| 3040   &nbsp;&nbsp;| FACTOR OF ENERGY1   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3042   &nbsp;&nbsp;| FACTOR OF ENERGY2   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3044   &nbsp;&nbsp;| FACTOR OF ENERGY3   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3046   &nbsp;&nbsp;| FACTOR OF ENERGY4   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3048   &nbsp;&nbsp;| FACTOR OF ENERGY5   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3050   &nbsp;&nbsp;| FACTOR OF ENERGY6   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3052   &nbsp;&nbsp;| FACTOR OF ENERGY7   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3054   &nbsp;&nbsp;| FACTOR OF ENERGY8   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3056   &nbsp;&nbsp;| FACTOR OF ENERGY9   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3058   &nbsp;&nbsp;| FACTOR OF ENERGY10    | 1.0   &nbsp;&nbsp;|<br />
| 3060   &nbsp;&nbsp;| FACTOR OF ENERGY SUM  | 1.0   &nbsp;&nbsp;|<br />
+----------+-----------------------+---------+<br />
<br />
9. Programming Notes<br />
--------------------<br />
<br />
1. After modifying communication parameters, write to register 501 to save them to flash.<br />
2. After modifying calibration coefficients, write to register 503 to save them to flash.<br />
3. Read the entire data structure for the chip by reading 68 registers starting at base<br />
 &nbsp;&nbsp;address 100.<br />
4. For 32-bit values (uint32, float), read/write two consecutive registers.<br />
5. When writing float values, use the CDBA format.<br />
6. All energy measurements have a maximum value of 65535 kWh per channel.<br />
<br />
10. Comparison with Other N-Series Modules<br />
------------------------------------------<br />
<br />
+------------------+------------------+------------------+------------------+<br />
| Feature          | N10           &nbsp;&nbsp;| N20              | N30              |<br />
+------------------+------------------+------------------+------------------+<br />
| Communication    | Modbus RTU      | Modbus RTU     &nbsp;&nbsp;| Modbus RTU     &nbsp;&nbsp;|<br />
| Energy Chips   &nbsp;&nbsp;| 1             &nbsp;&nbsp;| 2                | 3                |<br />
| Channels       &nbsp;&nbsp;| 10              | 20             &nbsp;&nbsp;| 30             &nbsp;&nbsp;|<br />
| Base Addresses &nbsp;&nbsp;| 100           &nbsp;&nbsp;| 100, 200       &nbsp;&nbsp;| 100, 200, 300    |<br />
| Data Structure &nbsp;&nbsp;| Standard        | Dual-chip        | Triple-chip      |<br />
| Installation   &nbsp;&nbsp;| Wired         &nbsp;&nbsp;| Wired            | Wired            |<br />
+------------------+------------------+------------------+------------------+<br />
<br />
11. Conclusion<br />
--------------<br />
<br />
The N10 Energy Module provides single-chip energy monitoring with Modbus RTU<br />
communication, making it ideal for small-scale installations requiring precise<br />
electrical measurement and monitoring. The device offers 10 channels of current,<br />
power, and energy monitoring with comprehensive calibration and control capabilities.<br />
<br />
==============================================================================<br />
Document generated for N10 Energy Module Modbus Protocol<br />
For technical support, please contact Kincony support team.</code></div></div> protocol document download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8455" target="_blank" title="">N10_Energy_Modbus_Protocol.txt</a> (Size: 11.62 KB / Downloads: 243)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>N10 Energy Module Modbus Protocol Specification<br />
==============================================<br />
<br />
1. Overview<br />
-----------<br />
<br />
This document specifies the Modbus communication protocol for the N10 Energy Module.<br />
The device communicates using the Modbus RTU protocol and provides access to electrical<br />
measurement parameters including current, power, energy consumption, voltage, frequency,<br />
temperature, and power factor.<br />
<br />
2. Module Characteristics<br />
-------------------------<br />
<br />
- Energy Monitoring Chips: 1<br />
- Communication Protocol: Modbus RTU<br />
- Wireless Technology: Not applicable (wired connection)<br />
- Maximum Sensors Supported: 32<br />
- Board Features: Display, Ethernet (W5500), 4G, SD Card support<br />
- GPIO Availability: 2 free GPIOs (pins 15, 16)<br />
<br />
3. Communication Parameters<br />
---------------------------<br />
<br />
- Protocol: Modbus RTU<br />
- Baud Rate: 38400<br />
- Function Codes:<br />
  * 0x03: Read Holding Registers (for reading data)<br />
  * 0x05: Write Single Coil (for control operations)<br />
  * 0x10: Write Multiple Registers (for configuration)<br />
<br />
4. Chip Addressing<br />
------------------<br />
<br />
The N10 Energy Module contains 1 measurement chip with base address:<br />
<br />
+-------------+--------------+--------------------+<br />
| Chip Number | Base Address | Physical Location  |<br />
+-------------+--------------+--------------------+<br />
| Chip 1      | 100          | Main board       &nbsp;&nbsp;|<br />
+-------------+--------------+--------------------+<br />
<br />
5. Data Structure<br />
-----------------<br />
<br />
The chip provides the following data (accessible via Function Code 0x03):<br />
<br />
5.1 Current Measurements (RMS)<br />
------------------------------<br />
<br />
+----------------+------------+-------+--------+---------------+<br />
| Register Offset| Parameter  | Units | Format | Resolution    |<br />
+----------------+------------+-------+--------+---------------+<br />
| 0              | RMS_1      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 2              | RMS_2      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 4              | RMS_3      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 6              | RMS_4      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 8              | RMS_5      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 10           &nbsp;&nbsp;| RMS_6      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 12           &nbsp;&nbsp;| RMS_7      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 14           &nbsp;&nbsp;| RMS_8      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 16           &nbsp;&nbsp;| RMS_9      | A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
| 18           &nbsp;&nbsp;| RMS_10   &nbsp;&nbsp;| A   &nbsp;&nbsp;| uint32 | 0.001A/LSB    |<br />
+----------------+------------+-------+--------+---------------+<br />
<br />
Example: To read RMS_1 from Chip 1, read registers 100 and 101 (2 registers for uint32).<br />
Display: Reading of 5432 represents 5.432A (5432 × 0.001A)<br />
<br />
5.2 Power Measurements (WATT)<br />
-----------------------------<br />
<br />
+----------------+------------+-------+--------+---------------+<br />
| Register Offset| Parameter  | Units | Format | Resolution    |<br />
+----------------+------------+-------+--------+---------------+<br />
| 20           &nbsp;&nbsp;| WATT_1   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 22           &nbsp;&nbsp;| WATT_2   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 24           &nbsp;&nbsp;| WATT_3   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 26           &nbsp;&nbsp;| WATT_4   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 28           &nbsp;&nbsp;| WATT_5   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 30           &nbsp;&nbsp;| WATT_6   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 32           &nbsp;&nbsp;| WATT_7   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 34           &nbsp;&nbsp;| WATT_8   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 36           &nbsp;&nbsp;| WATT_9   &nbsp;&nbsp;| W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
| 38           &nbsp;&nbsp;| WATT_10    | W   &nbsp;&nbsp;| uint32 | 0.1W/LSB      |<br />
+----------------+------------+-------+--------+---------------+<br />
<br />
Example: To read WATT_1 from Chip 1, read registers 120 and 121 (2 registers for uint32).<br />
Display: Reading of 12345 represents 1234.5W (12345 × 0.1W)<br />
<br />
5.3 Energy Consumption Measurements<br />
-----------------------------------<br />
<br />
+----------------+-------------+-------+--------+---------------------+<br />
| Register Offset| Parameter &nbsp;&nbsp;| Units | Format | Resolution          |<br />
+----------------+-------------+-------+--------+---------------------+<br />
| 40           &nbsp;&nbsp;| Energy_1    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 42           &nbsp;&nbsp;| Energy_2    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 44           &nbsp;&nbsp;| Energy_3    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 46           &nbsp;&nbsp;| Energy_4    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 48           &nbsp;&nbsp;| Energy_5    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 50           &nbsp;&nbsp;| Energy_6    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 52           &nbsp;&nbsp;| Energy_7    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 54           &nbsp;&nbsp;| Energy_8    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 56           &nbsp;&nbsp;| Energy_9    | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 58           &nbsp;&nbsp;| Energy_10 &nbsp;&nbsp;| kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
| 60           &nbsp;&nbsp;| Energy_Sum  | kWh &nbsp;&nbsp;| uint32 | 1kWh/LSB            |<br />
+----------------+-------------+-------+--------+---------------------+<br />
<br />
Note: The maximum measurable energy per channel is 65535 kWh.<br />
<br />
5.4 Other Measurements<br />
----------------------<br />
<br />
+----------------+-------------+-------+--------+---------------------+<br />
| Register Offset| Parameter &nbsp;&nbsp;| Units | Format | Resolution          |<br />
+----------------+-------------+-------+--------+---------------------+<br />
| 62           &nbsp;&nbsp;| RMS_V     &nbsp;&nbsp;| V   &nbsp;&nbsp;| uint16 | 0.01V/LSB         &nbsp;&nbsp;|<br />
| 63           &nbsp;&nbsp;| Period      | Hz    | uint16 | 0.01Hz/LSB          |<br />
| 64           &nbsp;&nbsp;| TPS1        | °C    | float  | 0.1°C/LSB         &nbsp;&nbsp;|<br />
| 66           &nbsp;&nbsp;| PF          | -   &nbsp;&nbsp;| float  | Power Factor (0-1)  |<br />
+----------------+-------------+-------+--------+---------------------+<br />
<br />
6. Control Functions (Function Code 0x05)<br />
------------------------------------------<br />
<br />
The following control registers can be written to using the Modbus function code 0x05:<br />
<br />
+----------+------------------------------+--------------------------------------------+<br />
| Register | Function                   &nbsp;&nbsp;| Description                                |<br />
+----------+------------------------------+--------------------------------------------+<br />
| 500      | Warm Reset                 &nbsp;&nbsp;| Resets the device                          |<br />
| 501      | Save Parameters to Flash   &nbsp;&nbsp;| Save communication parameters to flash   &nbsp;&nbsp;|<br />
| 503      | Save Coefficients to Flash &nbsp;&nbsp;| Save calibration coefficients to flash   &nbsp;&nbsp;|<br />
| 504      | Clear Coefficients         &nbsp;&nbsp;| Reset all coefficients to 1.0 (use caution)|<br />
| 510      | Restore Factory Settings   &nbsp;&nbsp;| Restore factory communication parameters &nbsp;&nbsp;|<br />
+----------+------------------------------+--------------------------------------------+<br />
<br />
7. Energy Clearing Functions (Function Code 0x05)<br />
--------------------------------------------------<br />
<br />
The following registers clear energy consumption data when written with function code 0x05:<br />
<br />
7.1 Clear All Channels on the Chip<br />
-----------------------------------<br />
<br />
+----------+--------------------------------+<br />
| Register | Function                     &nbsp;&nbsp;|<br />
+----------+--------------------------------+<br />
| 520      | Clear all energy on Chip 1   &nbsp;&nbsp;|<br />
+----------+--------------------------------+<br />
<br />
7.2 Clear Individual Channels<br />
------------------------------<br />
<br />
+----------------+------------------------------------------------+<br />
| Register Range | Function                                     &nbsp;&nbsp;|<br />
+----------------+------------------------------------------------+<br />
| 526-535        | Clear energy on Chip 1, channels 1-10          |<br />
| 586            | Clear sum energy on Chip 1                   &nbsp;&nbsp;|<br />
+----------------+------------------------------------------------+<br />
<br />
8. Calibration Coefficients (Function Code 0x03 to read, 0x10 to write)<br />
------------------------------------------------------------------------<br />
<br />
All coefficients are stored as floating-point values in CDBA format.<br />
<br />
8.1 Current (RMS) Coefficients for Chip 1<br />
------------------------------------------<br />
<br />
+----------+---------------------+---------+<br />
| Register | Parameter         &nbsp;&nbsp;| Default |<br />
+----------+---------------------+---------+<br />
| 3000   &nbsp;&nbsp;| FACTOR OF RMS1      | 1.0   &nbsp;&nbsp;|<br />
| 3002   &nbsp;&nbsp;| FACTOR OF RMS2      | 1.0   &nbsp;&nbsp;|<br />
| 3004   &nbsp;&nbsp;| FACTOR OF RMS3      | 1.0   &nbsp;&nbsp;|<br />
| 3006   &nbsp;&nbsp;| FACTOR OF RMS4      | 1.0   &nbsp;&nbsp;|<br />
| 3008   &nbsp;&nbsp;| FACTOR OF RMS5      | 1.0   &nbsp;&nbsp;|<br />
| 3010   &nbsp;&nbsp;| FACTOR OF RMS6      | 1.0   &nbsp;&nbsp;|<br />
| 3012   &nbsp;&nbsp;| FACTOR OF RMS7      | 1.0   &nbsp;&nbsp;|<br />
| 3014   &nbsp;&nbsp;| FACTOR OF RMS8      | 1.0   &nbsp;&nbsp;|<br />
| 3016   &nbsp;&nbsp;| FACTOR OF RMS9      | 1.0   &nbsp;&nbsp;|<br />
| 3018   &nbsp;&nbsp;| FACTOR OF RMS10   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
+----------+---------------------+---------+<br />
<br />
8.2 Power (WATT) Coefficients for Chip 1<br />
-----------------------------------------<br />
<br />
+----------+---------------------+---------+<br />
| Register | Parameter         &nbsp;&nbsp;| Default |<br />
+----------+---------------------+---------+<br />
| 3020   &nbsp;&nbsp;| FACTOR OF WATT1   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3022   &nbsp;&nbsp;| FACTOR OF WATT2   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3024   &nbsp;&nbsp;| FACTOR OF WATT3   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3026   &nbsp;&nbsp;| FACTOR OF WATT4   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3028   &nbsp;&nbsp;| FACTOR OF WATT5   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3030   &nbsp;&nbsp;| FACTOR OF WATT6   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3032   &nbsp;&nbsp;| FACTOR OF WATT7   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3034   &nbsp;&nbsp;| FACTOR OF WATT8   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3036   &nbsp;&nbsp;| FACTOR OF WATT9   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3038   &nbsp;&nbsp;| FACTOR OF WATT10    | 1.0   &nbsp;&nbsp;|<br />
+----------+---------------------+---------+<br />
<br />
8.3 Energy Coefficients for Chip 1<br />
-----------------------------------<br />
<br />
+----------+-----------------------+---------+<br />
| Register | Parameter           &nbsp;&nbsp;| Default |<br />
+----------+-----------------------+---------+<br />
| 3040   &nbsp;&nbsp;| FACTOR OF ENERGY1   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3042   &nbsp;&nbsp;| FACTOR OF ENERGY2   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3044   &nbsp;&nbsp;| FACTOR OF ENERGY3   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3046   &nbsp;&nbsp;| FACTOR OF ENERGY4   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3048   &nbsp;&nbsp;| FACTOR OF ENERGY5   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3050   &nbsp;&nbsp;| FACTOR OF ENERGY6   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3052   &nbsp;&nbsp;| FACTOR OF ENERGY7   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3054   &nbsp;&nbsp;| FACTOR OF ENERGY8   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3056   &nbsp;&nbsp;| FACTOR OF ENERGY9   &nbsp;&nbsp;| 1.0   &nbsp;&nbsp;|<br />
| 3058   &nbsp;&nbsp;| FACTOR OF ENERGY10    | 1.0   &nbsp;&nbsp;|<br />
| 3060   &nbsp;&nbsp;| FACTOR OF ENERGY SUM  | 1.0   &nbsp;&nbsp;|<br />
+----------+-----------------------+---------+<br />
<br />
9. Programming Notes<br />
--------------------<br />
<br />
1. After modifying communication parameters, write to register 501 to save them to flash.<br />
2. After modifying calibration coefficients, write to register 503 to save them to flash.<br />
3. Read the entire data structure for the chip by reading 68 registers starting at base<br />
 &nbsp;&nbsp;address 100.<br />
4. For 32-bit values (uint32, float), read/write two consecutive registers.<br />
5. When writing float values, use the CDBA format.<br />
6. All energy measurements have a maximum value of 65535 kWh per channel.<br />
<br />
10. Comparison with Other N-Series Modules<br />
------------------------------------------<br />
<br />
+------------------+------------------+------------------+------------------+<br />
| Feature          | N10           &nbsp;&nbsp;| N20              | N30              |<br />
+------------------+------------------+------------------+------------------+<br />
| Communication    | Modbus RTU      | Modbus RTU     &nbsp;&nbsp;| Modbus RTU     &nbsp;&nbsp;|<br />
| Energy Chips   &nbsp;&nbsp;| 1             &nbsp;&nbsp;| 2                | 3                |<br />
| Channels       &nbsp;&nbsp;| 10              | 20             &nbsp;&nbsp;| 30             &nbsp;&nbsp;|<br />
| Base Addresses &nbsp;&nbsp;| 100           &nbsp;&nbsp;| 100, 200       &nbsp;&nbsp;| 100, 200, 300    |<br />
| Data Structure &nbsp;&nbsp;| Standard        | Dual-chip        | Triple-chip      |<br />
| Installation   &nbsp;&nbsp;| Wired         &nbsp;&nbsp;| Wired            | Wired            |<br />
+------------------+------------------+------------------+------------------+<br />
<br />
11. Conclusion<br />
--------------<br />
<br />
The N10 Energy Module provides single-chip energy monitoring with Modbus RTU<br />
communication, making it ideal for small-scale installations requiring precise<br />
electrical measurement and monitoring. The device offers 10 channels of current,<br />
power, and energy monitoring with comprehensive calibration and control capabilities.<br />
<br />
==============================================================================<br />
Document generated for N10 Energy Module Modbus Protocol<br />
For technical support, please contact Kincony support team.</code></div></div> protocol document download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/txt.png" title="Text Document" border="0" alt=".txt" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8455" target="_blank" title="">N10_Energy_Modbus_Protocol.txt</a> (Size: 11.62 KB / Downloads: 243)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[N60/N30/N20/N10/M30 CT selection and Load MAX current formula]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=8603</link>
			<pubDate>Thu, 04 Sep 2025 07:47:15 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=1">admin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=8603</guid>
			<description><![CDATA[<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8392" target="_blank" title="">CT-1.png</a> (Size: 47.07 KB / Downloads: 335)
<!-- end: postbit_attachments_attachment --><br />
every CT clamp input channel will have two resistance. for example, CT2 channel are R23, R24<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8393" target="_blank" title="">CT-2.png</a> (Size: 119.56 KB / Downloads: 345)
<!-- end: postbit_attachments_attachment --><br />
use the formula let input voltage &lt;700mV<br />
<br />
if your CT clamp sensor is 2000:1<br />
Load current=30A, <br />
input voltage = 5.1R*2*30A/2000=153mA (VIPN)<br />
<br />
so if input voltage &lt;700mA , use 5.1R resistance on PCB, 2000:1 MAX can detect 137A AC220V load.<br />
<br />
if you want support more large current, you can change the  resistance or change CT 2000:1 with other models. Just use by the  formula.]]></description>
			<content:encoded><![CDATA[<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8392" target="_blank" title="">CT-1.png</a> (Size: 47.07 KB / Downloads: 335)
<!-- end: postbit_attachments_attachment --><br />
every CT clamp input channel will have two resistance. for example, CT2 channel are R23, R24<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8393" target="_blank" title="">CT-2.png</a> (Size: 119.56 KB / Downloads: 345)
<!-- end: postbit_attachments_attachment --><br />
use the formula let input voltage &lt;700mV<br />
<br />
if your CT clamp sensor is 2000:1<br />
Load current=30A, <br />
input voltage = 5.1R*2*30A/2000=153mA (VIPN)<br />
<br />
so if input voltage &lt;700mA , use 5.1R resistance on PCB, 2000:1 MAX can detect 137A AC220V load.<br />
<br />
if you want support more large current, you can change the  resistance or change CT 2000:1 with other models. Just use by the  formula.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[N60 N30 N20 N10 firmware BL0910 energy chip register RAW data structure]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9164</link>
			<pubDate>Sun, 03 Aug 2025 11:31:20 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=1">admin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=9164</guid>
			<description><![CDATA[<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9407" target="_blank" title="">N60-meter-data-structure.png</a> (Size: 31.39 KB / Downloads: 378)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9407" target="_blank" title="">N60-meter-data-structure.png</a> (Size: 31.39 KB / Downloads: 378)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[arduino code examples for N10]-05 collect N10 all data demo]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=8601</link>
			<pubDate>Sun, 03 Aug 2025 11:27:07 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=1">admin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=8601</guid>
			<description><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>/*<br />
 * Made by KinCony IoT: https://www.kincony.com<br />
 * <br />
 * Demo Program for Reading Data from KinCony N60 Energy Meter (60-channel version)<br />
 * via RS485 Modbus using ESP32 and NonBlockingModbusMaster library.<br />
 * <br />
 * This example:<br />
 * - Initializes RS485 Modbus communication<br />
 * - Reads current, power, energy, voltage, frequency, temperature, power factor from 6 chips<br />
 * - Prints all data to Serial Monitor<br />
 * - Uses TaskScheduler to run periodic tasks<br />
 */<br />
<br />
#include "TaskScheduler.h"<br />
#include "HardwareSerial.h"<br />
//#include "modbus-rtu.h"<br />
#include "NonBlockingModbusMaster.h"  // Include non-blocking Modbus master library<br />
<br />
/////defined anything here====================<br />
#define MAX_U16DATA_LEN  68  // Number of 16-bit registers to read per chip<br />
<br />
// Define RS485 serial and control pins<br />
#define TX_PIN 8<br />
#define DE_PIN 3<br />
#define RX_PIN 18<br />
<br />
// Define Modbus function codes<br />
typedef enum{<br />
  FC_READ_COIL = 1,<br />
  FC_READ_HOLDREG = 3,<br />
  FC_READ_INPUTREG = 4,<br />
  FC_FORCE_COIL = 5,<br />
  FC_FORCE_COILS = 15,<br />
  FC_WRITE_REG = 6,<br />
  FC_WRITE_REGS = 16,<br />
}FC_DEF;<br />
<br />
// Define structure to hold all the electrical parameters per chip<br />
typedef struct<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;&nbsp;&nbsp;&nbsp;//XX.XXX&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.001A/LSB<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_3;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_4;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_5;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_6;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_7;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_8;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_9;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_10; <br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//20 XXXX.X&nbsp;&nbsp;&nbsp;&nbsp;W&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.1W/LSB<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_3;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_4;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_5;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_6;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_7;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_8;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_9;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_10;//<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//40 XXXXXX&nbsp;&nbsp;&nbsp;&nbsp;kWh &nbsp;&nbsp;1kWh/LSB,MAX:65535kWh<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_3;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_4;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_5;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_6;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_7;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_8;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_9;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_10; //<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_Sum; //60<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint16_t RMS_V;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//62 XXX.X&nbsp;&nbsp;&nbsp;&nbsp;V&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.01V/LSB<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint16_t Period;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//63 XX.XX&nbsp;&nbsp;&nbsp;&nbsp;Hz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.01Hz/LSB<br />
&nbsp;&nbsp;&nbsp;&nbsp;float TPS1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//64 XX.XX ℃&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.1℃/LSB<br />
&nbsp;&nbsp;&nbsp;&nbsp;float PF;  //66<br />
}Elect_StructDef_JKE;<br />
<br />
typedef union{<br />
  Elect_StructDef_JKE jke_n60_str[6]; ////6 chips each have MAX_STRU_LEN data<br />
  ushort read_regs_arr[6][MAX_U16DATA_LEN];<br />
}COLLECT_UNION;<br />
 <br />
////define instance here================================================================<br />
COLLECT_UNION jke_n60_data_union = {0};<br />
HardwareSerial collectSerial(2);<br />
Scheduler ts; &nbsp;&nbsp;// Task scheduler<br />
NonBlockingModbusMaster nbModbusMaster;<br />
<br />
////define macros here===================<br />
static void collectAllChipData();<br />
static void PrintfInfo();<br />
 <br />
////define my work task==================================<br />
Task collectDataTask(200,TASK_FOREVER,[]()<br />
{<br />
  collectAllChipData();<br />
});<br />
<br />
Task heartBeatTask(1000,TASK_FOREVER,[]()<br />
{<br />
  ////do anything in heartBeatTask to make sense for anyone or other.<br />
  Serial.println("heartbeat task is running.");<br />
});<br />
<br />
<br />
void setup() {<br />
  // put your setup code here, to run once:<br />
<br />
  // Open serial communications and wait for port to open:<br />
    Serial.begin(115200);<br />
    collectSerial.begin(115200,SERIAL_8N1,9,10);///RX &amp; TX<br />
    float bitduration = 1.f / 115200;<br />
    float charlen = 10.0f; // 8 bits + 1 stop, parity ?<br />
    float preDelayBR = bitduration * charlen * 3.5f * 1e6  + 1; // in us<br />
    float postDelayBR = bitduration * charlen * 3.5f * 1e6 + 1; // in us <br />
    nbModbusMaster.initialize(collectSerial, preDelayBR, postDelayBR,1000);<br />
<br />
  ////add task to scheduler<br />
  ts.addTask(collectDataTask);<br />
  ts.addTask(heartBeatTask);<br />
<br />
  ////start task<br />
  collectDataTask.enable(); ///start task<br />
  heartBeatTask.enable();<br />
}<br />
<br />
bool isMbConnect = false;<br />
int cnt_chip = 0;<br />
<br />
void loop() {<br />
  static int retryCount = 0;<br />
  // put your main code here, to run repeatedly:<br />
  ts.execute();<br />
<br />
  if (nbModbusMaster.justFinished()) <br />
  {<br />
    <br />
    // check for errors<br />
    int err = nbModbusMaster.getError(); // 0 for OK<br />
    if (err) {<br />
      isMbConnect = false; &nbsp;&nbsp;<br />
      Serial.print("Error: "); nbModbusMaster.printHex(err, Serial); Serial.println();<br />
      if ((err == nbModbusMaster.ku8MBResponseTimedOut) ) {<br />
        retryCount++; <br />
        Serial.println("Mbtask Retry");<br />
        nbModbusMaster.retry(); // send same cmd again<br />
      }<br />
    } else {<br />
      retryCount = 0; // success<br />
    }<br />
    if (err == 0) {<br />
      isMbConnect = true;<br />
      if(cnt_chip==5)<br />
      {<br />
        PrintfInfo();<br />
      } <br />
<br />
      for (int i = 0; i &lt; nbModbusMaster.getResponseBufferLength(); i++) {<br />
        jke_n60_data_union.read_regs_arr[cnt_chip][i] = nbModbusMaster.getResponseBuffer(i);<br />
        //nbModbusMaster.printHex(nbModbusMaster.getResponseBuffer(i), Serial); Serial.print(" ");<br />
      } <br />
<br />
      cnt_chip++; <br />
      if(cnt_chip &gt;= 6) cnt_chip = 0;<br />
<br />
    }<br />
  }<br />
<br />
}<br />
<br />
static void PrintfInfo()<br />
{<br />
  char send_buf[100] = {0}; <br />
  uint32_t *ptr; <br />
  uint16_t *ptr2;<br />
  float *ptr3;<br />
<br />
  memset(send_buf,0,100);<br />
    ///// PRINTF ALL DATA READ FROM CHIP REGISTER.<br />
<br />
    for(int j=0;j&lt;6;j++)<br />
    {<br />
    sprintf(send_buf,"&gt;&gt;chip/socket : %d Info:",j+1);<br />
    Serial.println(send_buf);      <br />
<br />
    ptr= &amp;jke_n60_data_union.jke_n60_str[j].RMS_1;<br />
    ptr2 = &amp;jke_n60_data_union.jke_n60_str[j].RMS_V;<br />
    ptr3 = &amp;jke_n60_data_union.jke_n60_str[j].TPS1;<br />
<br />
    for(int i=0;i&lt;35;i++) <br />
    {<br />
      if(i &lt; 10)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"RMS_%d:    %.2f A,",i+1,*(ptr+i) * 0.001);<br />
        Serial.println(send_buf); <br />
      }<br />
      else if(i &lt; 20)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"WATT_%d:    %.2f W,",i+1-10,*(ptr+i) * 0.1);<br />
        Serial.println(send_buf); <br />
      }<br />
      else if(i &lt; 30)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"Energy_%d:    %d kWh,",i+1-20,*(ptr+i) );<br />
        Serial.println(send_buf); <br />
      }<br />
      else if(i == 30)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"Energy_sum:    %d kWh,",*(ptr+i) );<br />
        Serial.println(send_buf);<br />
        memset(send_buf,0,100);<br />
      }<br />
      else if(i == 31)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"RMS_V:    %.2f V,",*ptr2 *0.01); ///62<br />
        Serial.println(send_buf);<br />
        memset(send_buf,0,100);<br />
      }<br />
      else if(i == 32)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"Period:    %.2f Hz,",*(ptr2+1) *0.01);<br />
        Serial.println(send_buf);<br />
        memset(send_buf,0,100);<br />
      }<br />
      else if(i == 33)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"Chip_Temp:    %.1f ^C,",*ptr3  );<br />
        Serial.println(send_buf);<br />
        memset(send_buf,0,100);<br />
      }<br />
      else if(i == 34)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"PF:    %.4f .",*(ptr3+1) );<br />
        Serial.println(send_buf);<br />
        memset(send_buf,0,100);<br />
      }<br />
    }<br />
<br />
    if(j==5)<br />
      Serial.println("&gt;&gt;Data Finished!&gt;&gt;");  <br />
<br />
  }<br />
}<br />
<br />
static void collectAllChipData()<br />
{<br />
  int read_addr_start = (cnt_chip+1) * 100; <br />
  <br />
  String str = "";<br />
  uint16_t size = MAX_U16DATA_LEN;<br />
<br />
  nbModbusMaster.readHoldingRegisters(1, read_addr_start, size);<br />
  <br />
}</code></div></div> arduino ino file download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8384" target="_blank" title="">collect_n60_data_demo.zip</a> (Size: 2.45 KB / Downloads: 409)
<!-- end: postbit_attachments_attachment --><br />
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8385" target="_blank" title="">collect_n60_data_demo.ino.merged.zip</a> (Size: 189.94 KB / Downloads: 417)
<!-- end: postbit_attachments_attachment --><br />
<br />
before run the code, you need to install NonBlockingModbusMaster arduino library.<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8386" target="_blank" title="">NonBlockingModbusMaster.png</a> (Size: 110.95 KB / Downloads: 435)
<!-- end: postbit_attachments_attachment --><br />
<br />
modify library .h file replace the number as photo.<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8387" target="_blank" title="">N60-library-setting-change-number.png</a> (Size: 171.03 KB / Downloads: 437)
<!-- end: postbit_attachments_attachment --><br />
<br />
after running code, will print all data by USB port:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>y_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
<br />
RMS_V:    233.58 V,<br />
Period:    49.70 Hz,<br />
Chip_Temp:    25.5 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;Data Finished!&gt;&gt;<br />
heartbeat task is running.<br />
&gt;&gt;chip/socket : 1 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    24.4 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 2 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    23.8 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 3 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    25.0 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 4 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    23.8 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 5 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    25.5 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 6 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    3.20 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    233.50 V,<br />
Period:    49.71 Hz,<br />
Chip_Temp:    25.7 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;Data Finished!&gt;&gt;<br />
heartbeat task is running.<br />
&gt;&gt;chip/socket : 1 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    24.2 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 2 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    23.8 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 3 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    25.0 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 4 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    23.6 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 5 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    24.8 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 6 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    1.50 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    233.57 V,<br />
Period:    49.71 Hz,<br />
Chip_Temp:    25.5 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;Data Finished!&gt;&gt;<br />
heartbeat task is running.<br />
heartbeat task is running.<br />
&gt;&gt;chip/socket : 1 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    24.0 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 2 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    23.8 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 3 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    25.3 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 4 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    23.6 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 5 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    25.3 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 6 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    1.50 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    233.49 V,<br />
Period:    49.71 Hz,<br />
Chip_Temp:    25.7 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;Data Finished!&gt;&gt;<br />
heartbeat task is running.</code></div></div>]]></description>
			<content:encoded><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>/*<br />
 * Made by KinCony IoT: https://www.kincony.com<br />
 * <br />
 * Demo Program for Reading Data from KinCony N60 Energy Meter (60-channel version)<br />
 * via RS485 Modbus using ESP32 and NonBlockingModbusMaster library.<br />
 * <br />
 * This example:<br />
 * - Initializes RS485 Modbus communication<br />
 * - Reads current, power, energy, voltage, frequency, temperature, power factor from 6 chips<br />
 * - Prints all data to Serial Monitor<br />
 * - Uses TaskScheduler to run periodic tasks<br />
 */<br />
<br />
#include "TaskScheduler.h"<br />
#include "HardwareSerial.h"<br />
//#include "modbus-rtu.h"<br />
#include "NonBlockingModbusMaster.h"  // Include non-blocking Modbus master library<br />
<br />
/////defined anything here====================<br />
#define MAX_U16DATA_LEN  68  // Number of 16-bit registers to read per chip<br />
<br />
// Define RS485 serial and control pins<br />
#define TX_PIN 8<br />
#define DE_PIN 3<br />
#define RX_PIN 18<br />
<br />
// Define Modbus function codes<br />
typedef enum{<br />
  FC_READ_COIL = 1,<br />
  FC_READ_HOLDREG = 3,<br />
  FC_READ_INPUTREG = 4,<br />
  FC_FORCE_COIL = 5,<br />
  FC_FORCE_COILS = 15,<br />
  FC_WRITE_REG = 6,<br />
  FC_WRITE_REGS = 16,<br />
}FC_DEF;<br />
<br />
// Define structure to hold all the electrical parameters per chip<br />
typedef struct<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;&nbsp;&nbsp;&nbsp;//XX.XXX&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.001A/LSB<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_3;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_4;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_5;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_6;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_7;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_8;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_9;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t RMS_10; <br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//20 XXXX.X&nbsp;&nbsp;&nbsp;&nbsp;W&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.1W/LSB<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_3;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_4;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_5;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_6;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_7;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_8;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_9;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t WATT_10;//<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//40 XXXXXX&nbsp;&nbsp;&nbsp;&nbsp;kWh &nbsp;&nbsp;1kWh/LSB,MAX:65535kWh<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_3;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_4;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_5;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_6;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_7;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_8;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_9;<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_10; //<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint32_t Energy_Sum; //60<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint16_t RMS_V;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//62 XXX.X&nbsp;&nbsp;&nbsp;&nbsp;V&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.01V/LSB<br />
&nbsp;&nbsp;&nbsp;&nbsp;uint16_t Period;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//63 XX.XX&nbsp;&nbsp;&nbsp;&nbsp;Hz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.01Hz/LSB<br />
&nbsp;&nbsp;&nbsp;&nbsp;float TPS1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//64 XX.XX ℃&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.1℃/LSB<br />
&nbsp;&nbsp;&nbsp;&nbsp;float PF;  //66<br />
}Elect_StructDef_JKE;<br />
<br />
typedef union{<br />
  Elect_StructDef_JKE jke_n60_str[6]; ////6 chips each have MAX_STRU_LEN data<br />
  ushort read_regs_arr[6][MAX_U16DATA_LEN];<br />
}COLLECT_UNION;<br />
 <br />
////define instance here================================================================<br />
COLLECT_UNION jke_n60_data_union = {0};<br />
HardwareSerial collectSerial(2);<br />
Scheduler ts; &nbsp;&nbsp;// Task scheduler<br />
NonBlockingModbusMaster nbModbusMaster;<br />
<br />
////define macros here===================<br />
static void collectAllChipData();<br />
static void PrintfInfo();<br />
 <br />
////define my work task==================================<br />
Task collectDataTask(200,TASK_FOREVER,[]()<br />
{<br />
  collectAllChipData();<br />
});<br />
<br />
Task heartBeatTask(1000,TASK_FOREVER,[]()<br />
{<br />
  ////do anything in heartBeatTask to make sense for anyone or other.<br />
  Serial.println("heartbeat task is running.");<br />
});<br />
<br />
<br />
void setup() {<br />
  // put your setup code here, to run once:<br />
<br />
  // Open serial communications and wait for port to open:<br />
    Serial.begin(115200);<br />
    collectSerial.begin(115200,SERIAL_8N1,9,10);///RX &amp; TX<br />
    float bitduration = 1.f / 115200;<br />
    float charlen = 10.0f; // 8 bits + 1 stop, parity ?<br />
    float preDelayBR = bitduration * charlen * 3.5f * 1e6  + 1; // in us<br />
    float postDelayBR = bitduration * charlen * 3.5f * 1e6 + 1; // in us <br />
    nbModbusMaster.initialize(collectSerial, preDelayBR, postDelayBR,1000);<br />
<br />
  ////add task to scheduler<br />
  ts.addTask(collectDataTask);<br />
  ts.addTask(heartBeatTask);<br />
<br />
  ////start task<br />
  collectDataTask.enable(); ///start task<br />
  heartBeatTask.enable();<br />
}<br />
<br />
bool isMbConnect = false;<br />
int cnt_chip = 0;<br />
<br />
void loop() {<br />
  static int retryCount = 0;<br />
  // put your main code here, to run repeatedly:<br />
  ts.execute();<br />
<br />
  if (nbModbusMaster.justFinished()) <br />
  {<br />
    <br />
    // check for errors<br />
    int err = nbModbusMaster.getError(); // 0 for OK<br />
    if (err) {<br />
      isMbConnect = false; &nbsp;&nbsp;<br />
      Serial.print("Error: "); nbModbusMaster.printHex(err, Serial); Serial.println();<br />
      if ((err == nbModbusMaster.ku8MBResponseTimedOut) ) {<br />
        retryCount++; <br />
        Serial.println("Mbtask Retry");<br />
        nbModbusMaster.retry(); // send same cmd again<br />
      }<br />
    } else {<br />
      retryCount = 0; // success<br />
    }<br />
    if (err == 0) {<br />
      isMbConnect = true;<br />
      if(cnt_chip==5)<br />
      {<br />
        PrintfInfo();<br />
      } <br />
<br />
      for (int i = 0; i &lt; nbModbusMaster.getResponseBufferLength(); i++) {<br />
        jke_n60_data_union.read_regs_arr[cnt_chip][i] = nbModbusMaster.getResponseBuffer(i);<br />
        //nbModbusMaster.printHex(nbModbusMaster.getResponseBuffer(i), Serial); Serial.print(" ");<br />
      } <br />
<br />
      cnt_chip++; <br />
      if(cnt_chip &gt;= 6) cnt_chip = 0;<br />
<br />
    }<br />
  }<br />
<br />
}<br />
<br />
static void PrintfInfo()<br />
{<br />
  char send_buf[100] = {0}; <br />
  uint32_t *ptr; <br />
  uint16_t *ptr2;<br />
  float *ptr3;<br />
<br />
  memset(send_buf,0,100);<br />
    ///// PRINTF ALL DATA READ FROM CHIP REGISTER.<br />
<br />
    for(int j=0;j&lt;6;j++)<br />
    {<br />
    sprintf(send_buf,"&gt;&gt;chip/socket : %d Info:",j+1);<br />
    Serial.println(send_buf);      <br />
<br />
    ptr= &amp;jke_n60_data_union.jke_n60_str[j].RMS_1;<br />
    ptr2 = &amp;jke_n60_data_union.jke_n60_str[j].RMS_V;<br />
    ptr3 = &amp;jke_n60_data_union.jke_n60_str[j].TPS1;<br />
<br />
    for(int i=0;i&lt;35;i++) <br />
    {<br />
      if(i &lt; 10)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"RMS_%d:    %.2f A,",i+1,*(ptr+i) * 0.001);<br />
        Serial.println(send_buf); <br />
      }<br />
      else if(i &lt; 20)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"WATT_%d:    %.2f W,",i+1-10,*(ptr+i) * 0.1);<br />
        Serial.println(send_buf); <br />
      }<br />
      else if(i &lt; 30)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"Energy_%d:    %d kWh,",i+1-20,*(ptr+i) );<br />
        Serial.println(send_buf); <br />
      }<br />
      else if(i == 30)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"Energy_sum:    %d kWh,",*(ptr+i) );<br />
        Serial.println(send_buf);<br />
        memset(send_buf,0,100);<br />
      }<br />
      else if(i == 31)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"RMS_V:    %.2f V,",*ptr2 *0.01); ///62<br />
        Serial.println(send_buf);<br />
        memset(send_buf,0,100);<br />
      }<br />
      else if(i == 32)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"Period:    %.2f Hz,",*(ptr2+1) *0.01);<br />
        Serial.println(send_buf);<br />
        memset(send_buf,0,100);<br />
      }<br />
      else if(i == 33)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"Chip_Temp:    %.1f ^C,",*ptr3  );<br />
        Serial.println(send_buf);<br />
        memset(send_buf,0,100);<br />
      }<br />
      else if(i == 34)     &nbsp;&nbsp;<br />
      {<br />
        sprintf(send_buf,"PF:    %.4f .",*(ptr3+1) );<br />
        Serial.println(send_buf);<br />
        memset(send_buf,0,100);<br />
      }<br />
    }<br />
<br />
    if(j==5)<br />
      Serial.println("&gt;&gt;Data Finished!&gt;&gt;");  <br />
<br />
  }<br />
}<br />
<br />
static void collectAllChipData()<br />
{<br />
  int read_addr_start = (cnt_chip+1) * 100; <br />
  <br />
  String str = "";<br />
  uint16_t size = MAX_U16DATA_LEN;<br />
<br />
  nbModbusMaster.readHoldingRegisters(1, read_addr_start, size);<br />
  <br />
}</code></div></div> arduino ino file download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8384" target="_blank" title="">collect_n60_data_demo.zip</a> (Size: 2.45 KB / Downloads: 409)
<!-- end: postbit_attachments_attachment --><br />
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8385" target="_blank" title="">collect_n60_data_demo.ino.merged.zip</a> (Size: 189.94 KB / Downloads: 417)
<!-- end: postbit_attachments_attachment --><br />
<br />
before run the code, you need to install NonBlockingModbusMaster arduino library.<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8386" target="_blank" title="">NonBlockingModbusMaster.png</a> (Size: 110.95 KB / Downloads: 435)
<!-- end: postbit_attachments_attachment --><br />
<br />
modify library .h file replace the number as photo.<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8387" target="_blank" title="">N60-library-setting-change-number.png</a> (Size: 171.03 KB / Downloads: 437)
<!-- end: postbit_attachments_attachment --><br />
<br />
after running code, will print all data by USB port:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>y_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
<br />
RMS_V:    233.58 V,<br />
Period:    49.70 Hz,<br />
Chip_Temp:    25.5 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;Data Finished!&gt;&gt;<br />
heartbeat task is running.<br />
&gt;&gt;chip/socket : 1 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    24.4 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 2 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    23.8 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 3 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    25.0 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 4 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    23.8 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 5 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    25.5 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 6 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    3.20 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    233.50 V,<br />
Period:    49.71 Hz,<br />
Chip_Temp:    25.7 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;Data Finished!&gt;&gt;<br />
heartbeat task is running.<br />
&gt;&gt;chip/socket : 1 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    24.2 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 2 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    23.8 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 3 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    25.0 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 4 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    23.6 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 5 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    24.8 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 6 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    1.50 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    233.57 V,<br />
Period:    49.71 Hz,<br />
Chip_Temp:    25.5 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;Data Finished!&gt;&gt;<br />
heartbeat task is running.<br />
heartbeat task is running.<br />
&gt;&gt;chip/socket : 1 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    24.0 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 2 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    23.8 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 3 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    25.3 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 4 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    23.6 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 5 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    0.00 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    0.00 V,<br />
Period:    9.53 Hz,<br />
Chip_Temp:    25.3 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;chip/socket : 6 Info:<br />
RMS_1:    0.00 A,<br />
RMS_2:    0.00 A,<br />
RMS_3:    0.00 A,<br />
RMS_4:    0.00 A,<br />
RMS_5:    0.00 A,<br />
RMS_6:    0.00 A,<br />
RMS_7:    0.00 A,<br />
RMS_8:    0.00 A,<br />
RMS_9:    0.00 A,<br />
RMS_10:    0.00 A,<br />
WATT_1:    0.00 W,<br />
WATT_2:    1.50 W,<br />
WATT_3:    0.00 W,<br />
WATT_4:    0.00 W,<br />
WATT_5:    0.00 W,<br />
WATT_6:    0.00 W,<br />
WATT_7:    0.00 W,<br />
WATT_8:    0.00 W,<br />
WATT_9:    0.00 W,<br />
WATT_10:    0.00 W,<br />
Energy_1:    0 kWh,<br />
Energy_2:    0 kWh,<br />
Energy_3:    0 kWh,<br />
Energy_4:    0 kWh,<br />
Energy_5:    0 kWh,<br />
Energy_6:    0 kWh,<br />
Energy_7:    0 kWh,<br />
Energy_8:    0 kWh,<br />
Energy_9:    0 kWh,<br />
Energy_10:    0 kWh,<br />
Energy_sum:    0 kWh,<br />
RMS_V:    233.49 V,<br />
Period:    49.71 Hz,<br />
Chip_Temp:    25.7 ^C,<br />
PF:    0.0000 .<br />
&gt;&gt;Data Finished!&gt;&gt;<br />
heartbeat task is running.</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[arduino code examples for N10]-04 Print TEXT on SSD1306 OLED displayer]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=8600</link>
			<pubDate>Sun, 03 Aug 2025 11:21:58 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=1">admin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=8600</guid>
			<description><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>/*<br />
 * Made by KinCony IoT: https://www.kincony.com<br />
 * <br />
 * This Arduino program demonstrates how to display text on an SSD1306 128x64 OLED display using the U8g2 library.<br />
 * The program draws two lines of text on the display:<br />
 * - The first line is "KINCONY" in a larger font.<br />
 * - The second line is "www.kincony.com" in a smaller font.<br />
 * <br />
 * The display is connected via I2C (software implementation) with:<br />
 * - SCL (clock) on pin IO17<br />
 * - SDA (data) on pin IO18<br />
 * <br />
 * The display's I2C address is set to 0x3C.<br />
 */<br />
<br />
#include &lt;U8g2lib.h&gt;  // Include the U8g2 library for controlling the OLED display<br />
#include &lt;Wire.h&gt;   &nbsp;&nbsp;// Include the Wire library for I2C communication<br />
<br />
// Initialize the display using the software I2C method (SCL = IO18, SDA = IO8)<br />
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,  17, 18, U8X8_PIN_NONE);  // Screen rotation: U8G2_R0<br />
<br />
// Function to display page 1 content<br />
void page1() {<br />
  // Set font size 18 for the larger "KINCONY" text<br />
  u8g2.setFont(u8g2_font_timR18_tf);  // Use the Times Roman font, size 18<br />
  u8g2.setFontPosTop();             &nbsp;&nbsp;// Set the text position at the top of the display<br />
  u8g2.setCursor(5, 0);             &nbsp;&nbsp;// Position the cursor at coordinates (5, 0)<br />
  u8g2.print("KINCONY");              // Display the text "KINCONY" on the screen<br />
<br />
  // Set font size 12 for the smaller "www.kincony.com" text<br />
  u8g2.setFont(u8g2_font_timR12_tf);  // Use the Times Roman font, size 12<br />
  u8g2.setCursor(0, 40);              // Position the cursor at coordinates (0, 40)<br />
  u8g2.print("www.kincony.com");      // Display the text "www.kincony.com"<br />
}<br />
<br />
// Setup function, runs once when the program starts<br />
void setup() {<br />
  // Set the I2C address for the display to 0x3C<br />
  u8g2.setI2CAddress(0x3C*2);  // I2C address shift for 8-bit format<br />
  <br />
  // Initialize the display<br />
  u8g2.begin();<br />
  <br />
  // Enable UTF-8 character printing for the display<br />
  u8g2.enableUTF8Print();  // Allow UTF-8 encoded text to be printed<br />
}<br />
<br />
// Main loop function, continuously runs after setup()<br />
void loop() {<br />
  // Begin the display drawing process<br />
  u8g2.firstPage();  // Prepare the first page for drawing<br />
  do {<br />
    // Call the page1() function to draw content on the display<br />
    page1();<br />
  } while (u8g2.nextPage());  // Continue to the next page until all pages are drawn<br />
}</code></div></div> arduino ino file download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8382" target="_blank" title="">4-oled-ssd1306.zip</a> (Size: 1.11 KB / Downloads: 378)
<!-- end: postbit_attachments_attachment --><br />
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8383" target="_blank" title="">4-oled-ssd1306.ino.merged.zip</a> (Size: 202.58 KB / Downloads: 420)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>/*<br />
 * Made by KinCony IoT: https://www.kincony.com<br />
 * <br />
 * This Arduino program demonstrates how to display text on an SSD1306 128x64 OLED display using the U8g2 library.<br />
 * The program draws two lines of text on the display:<br />
 * - The first line is "KINCONY" in a larger font.<br />
 * - The second line is "www.kincony.com" in a smaller font.<br />
 * <br />
 * The display is connected via I2C (software implementation) with:<br />
 * - SCL (clock) on pin IO17<br />
 * - SDA (data) on pin IO18<br />
 * <br />
 * The display's I2C address is set to 0x3C.<br />
 */<br />
<br />
#include &lt;U8g2lib.h&gt;  // Include the U8g2 library for controlling the OLED display<br />
#include &lt;Wire.h&gt;   &nbsp;&nbsp;// Include the Wire library for I2C communication<br />
<br />
// Initialize the display using the software I2C method (SCL = IO18, SDA = IO8)<br />
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,  17, 18, U8X8_PIN_NONE);  // Screen rotation: U8G2_R0<br />
<br />
// Function to display page 1 content<br />
void page1() {<br />
  // Set font size 18 for the larger "KINCONY" text<br />
  u8g2.setFont(u8g2_font_timR18_tf);  // Use the Times Roman font, size 18<br />
  u8g2.setFontPosTop();             &nbsp;&nbsp;// Set the text position at the top of the display<br />
  u8g2.setCursor(5, 0);             &nbsp;&nbsp;// Position the cursor at coordinates (5, 0)<br />
  u8g2.print("KINCONY");              // Display the text "KINCONY" on the screen<br />
<br />
  // Set font size 12 for the smaller "www.kincony.com" text<br />
  u8g2.setFont(u8g2_font_timR12_tf);  // Use the Times Roman font, size 12<br />
  u8g2.setCursor(0, 40);              // Position the cursor at coordinates (0, 40)<br />
  u8g2.print("www.kincony.com");      // Display the text "www.kincony.com"<br />
}<br />
<br />
// Setup function, runs once when the program starts<br />
void setup() {<br />
  // Set the I2C address for the display to 0x3C<br />
  u8g2.setI2CAddress(0x3C*2);  // I2C address shift for 8-bit format<br />
  <br />
  // Initialize the display<br />
  u8g2.begin();<br />
  <br />
  // Enable UTF-8 character printing for the display<br />
  u8g2.enableUTF8Print();  // Allow UTF-8 encoded text to be printed<br />
}<br />
<br />
// Main loop function, continuously runs after setup()<br />
void loop() {<br />
  // Begin the display drawing process<br />
  u8g2.firstPage();  // Prepare the first page for drawing<br />
  do {<br />
    // Call the page1() function to draw content on the display<br />
    page1();<br />
  } while (u8g2.nextPage());  // Continue to the next page until all pages are drawn<br />
}</code></div></div> arduino ino file download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8382" target="_blank" title="">4-oled-ssd1306.zip</a> (Size: 1.11 KB / Downloads: 378)
<!-- end: postbit_attachments_attachment --><br />
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=8383" target="_blank" title="">4-oled-ssd1306.ino.merged.zip</a> (Size: 202.58 KB / Downloads: 420)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
	</channel>
</rss>