『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 10691|回复: 45

[基础教程] 汉非太阳能(光伏)控制器接入ha小白级教程

[复制链接]

9

主题

128

帖子

802

积分

高级会员

Rank: 4

积分
802
金钱
674
HASS币
0
发表于 2021-12-20 20:15:14 | 显示全部楼层 |阅读模式
本帖最后由 zjhcr 于 2021-12-25 13:49 编辑

先上成果图
haa.png

IMG_2718.JPG

前言本人从入门ha到现在也有一段时间了,从什么都不懂的小白慢慢到开始对ha稍有眉目,回顾这段时间走过来的路,曲折又受益良多。在这里非常感谢论坛里的一众大神们,是他们努力的启蒙才有今天我们从容面对各种问题的动力。
楼主玩ha能源板块有一段时间了,最开始使用PZEM-004T模块接入ha测量家庭电量消耗,到后来突发奇想到,把自家的太阳能控制器也给接入ha,方便统一察看和记录。经过多次努力,终于成功把太阳能控制器接入了ha。
本着人人为我、我为人人、饮水思源的心态,特意抽空写了这一篇文分享给各位,希望对新手也能有所启示和帮助(虽然我自己也是一个新手,很多东西不懂的还是得去问去了解,哈哈)。

首先上场的是今天的主角,来自武汉汉非科技出品的MPPT太阳能控制器,某宝上比较常见的一款控制器,光和硅能也有代理它的产品,特点是MPPT效率高,自损耗小,性价比也不错,楼主的这款是120D带WiFi通讯款。110D、130D、140D等不同数值的款仅尺寸和能接受的最大电流(光伏板功率)有所不同,其他功能大同小异
003353awjrdks1l8tnppnt.png
第一章:联网,将控制器自带的通讯从热点模式改为接入WiFi网络
原厂商家提供官方的APP,通过控制器自带的WiFi接入点接入到手机,然后打开app刷新即可看到控制器的数据,我这里仅作截图演示,没有实际连接
微信图片_20211220193650.png
使用APP看数据有诸多不便之处,例如没法显示即时数据,每次都需要手动刷新,然后就是只能在其WiFi范围下使用,远离控制器的范围就无法使用了。
根据自己多年玩数控的经验判断,控制器应该是使用了一颗内置WiFi透传的单片机,将串口数据通过以WiFi网络传输。不哆嗦,立马安排拆解以验明其真实性

拆开控制器,果不其然一颗硕大的ESP-12F芯片通过排线连接在了控制器主板的上方,排线由4根线组成,分别是电源输入的+、-和串口数据的TX和RX。引脚顺序如图示
微信图片_20211220193218.jpg

微信图片_20211220193226.jpg
考虑到通讯版和非通讯版有着几十元的差价,理论上非通讯版可以通过后期加装透传模块或引出TX、RX串口针脚来实现通讯功能,有条件的朋友可以尝试验证一下。需要注意的是,+、-的供电电压是直连电池端的电压,譬如24v的电池组,这两引脚测量出就是24v左右的电压,自带的通讯模块板子上具有3.3v稳压芯片,非通讯版自行加装透传模块的切勿直接接入ESP芯片,否则会立即烧毁。
txrx.png

印证了WiFi透传模块是ESP-12F核心之后,开始琢磨连接网络。控制器自带的WiFi是AP模式,根据连上它的热点之后获取的网关是11.11.11.254,顺藤摸瓜,浏览器打开这个地址,发现ESP-12F所使用的是esp-link这一固件
esp-link.png
点击左边的WiFi Station栏,可以切换无线网络模式,先点一下下方的Switch to,切换成STA模式,也就是从原来的AP模式改成STA终端模式接入到我们家里的WiFi网络去,然后右边就会有自动扫描出附近的WiFi,找到自己家的那个,点击,并在最下方输入密码,然后点击Connect连接
esp-link2.png

connect.png

点完connect之后,esp-link的页面就会失联,不用担心,这是因为WiFi接入点丢失和控制器ip地址变化了,所以会提示丢失连接。这时候只需要到路由器查看esp-link连上WiFi后的内网DHCP获取的新地址,重新浏览器输入就可以继续操作了,就像局域网内的机器那样了。如果担心DHCP获取的地址经常变化,可以再到WiFi Station页面上最下方给esp-link设置固定IP。需要注意的是,如果使用11.11.11.254以外的IP地址,手机APP客户端将无法再连接控制器,因为APP只认11.11.11.254这个地址进行通讯,无法修改。如果需要同时使用手机app和联网功能的话,那么最好想办法继续使用11.11.11.254作为地址又确保内网能访问到(举个解决办法:二级路由或者网关地址拓展)
staticip.png

以下为调试部分,如果确信接入网络的操作没有问题,可以略过这部分内容:
连接上本地网络之后,可以先用官方的PC上位机软件(附件有提供)来测试是否正常连通
上位机1.png

点击左上角设置,通信模式选以太网,IP地址输esp-link获取到的内网IP,端口8088,通过与厂家确认,我这款控制器使用的是比较常见的Modbus协议,因此通讯协议选择TCP_Modbus,控制器类型MPPT
上位机2.png

设置好后返回主界面点击连接,主界面的右侧开始跑码,而主界面的所有数据都能更新显示出来,上位机成功获取控制器数据,至此网络接入调试完成。
上位机3.png

Tips:另外也可以用ModScan32这个软件来对Modbus设备进行测试,对于其他一些不是汉非的但支持Modbus标准的控制器也可以用ModScan32来连接测试获取数据。Modbus是标准工业协议,HA也能直接支持对Modbus协议的读取和写入,这是它巨大的优势所在 ModScan32.zip (2.15 MB, 下载次数: 53)
modscan1.png

modscan2.png


                               
登录/注册后可看大图

MODBUS Point Type选择03:Holding Register
可以看到ModScan32连接成功后,下方数表就会有变化的数值出现了,对照厂家提供的协议就能知道是什么的数值(下一章讲到协议)

第二章:协议
所谓协议,用我不专业但通俗的解读就是能和设备进行握手通讯,读懂通讯内容的“字典”。通信双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,设备之间才能相互通信交流。通过查阅官方说明和厂商的文档,得知我的这个控制器使用的是一种工业上比较常见的Modbus标准协议,这是一个大框架协议,我把它称作大协议。Modbus协议的原理我们不需要懂,只需要知道这个协议规定了很多寄存地址,而寄存地址下的数值有对应的数据或者功能代码,通过对地址的数值进行读取或者写入,能达到我们对设备进行读数或者控制的目的。而厂家在开发时会有对设备数据相对应是哪个地址的数据说明书,我称它作小协议,只有拿到了小协议,我们才清楚通过Modbus读取的数据哪个对应的是设备哪个数值或者功能,大协议是我们能够建立通讯的前提,小协议是我们能解读数据内容的关键。因此拿到小协议是咱们下一步对接入HA的关键所在,一般厂家都能够提供他们的协议,咨询售后即可。汉非的太阳能控制器协议楼主附件提供上,供大家学习使用 控制器通信协议(ModBus版)公开文件V1.0.0_CN.pdf (327.16 KB, 下载次数: 40)
协议1.png

协议2.png
翻到下面,寄存器地址与名称,这才是我们需要的精华内容,每个地址分别对应了不同的数据和功能,譬如0x0001对应的是“太阳能电池板电压”数值
协议3.png

通过对比ModScan32调试软件读取的数列表可以见到40002(实际ModScan32里40001应该是代表地址起始0,而40002对应的是1也就是0x0001,ModScan32上显示的是10进制地址而协议书上的是16进制地址有所不同,但只要能找对顺序下来就很好对应解读,Modbus的最大优势就是顺序地址)这个地址的数值1261,刚好就是我控制器显示的太阳能电池板电压的数值(实际是12.61,小数点不对,没关系,后面可以在HA里取模调整)

协议4.png

如此按地址顺序对照,我们发现地址的顺序和数值与协议书上的描述都一一对应上了,接下来可以为接入HA做准备了。

第三章:接入Home Assistant终于来到了重头戏,把控制器对接入HA。前面铺垫那么多,最终目的不都是为了接入我们的HA嘛。
通过查阅HA的官方文档,发现HA是能够直接支持Modbus协议的
具体可以参照官方文档
https://www.home-assistant.io/integrations/modbus/
2.png

利用ha目录下新建packages文件夹,把原本要修改configuration.yaml的内容都新建成yaml文件往packages文件夹里放,方便增减配置文件和排错,这个新手都应该学会的技能了吧
新手必备技能 【package】【检测配置】https://bbs.hassbian.com/thread-1114-1-1.html
packages目录下新建一个名为mppt.yaml的文件,用NotePad++打开编辑
把以下代码复制粘贴进去

(论坛字数限制,接第16楼继续,附件链接在16楼)顺便在1楼向各位路过的大佬咨询,如何解决模板sensor无法增加state_class: total_increasing 参数,致使发电量数据暂时还没有办法接入HA的能源板块的问题















评分

参与人数 2金钱 +7 收起 理由
froyo + 2 论坛有你更精彩!
zero_33 + 5 墙都不扶,就服楼主!

查看全部评分

回复

使用道具 举报

9

主题

519

帖子

2280

积分

金牌会员

Rank: 6Rank: 6

积分
2280
金钱
1761
HASS币
0
发表于 2021-12-20 21:10:37 | 显示全部楼层
在海鲜市场看到了块2*1 450W的 太阳能板
回复

使用道具 举报

9

主题

128

帖子

802

积分

高级会员

Rank: 4

积分
802
金钱
674
HASS币
0
 楼主| 发表于 2021-12-20 21:12:23 来自手机 | 显示全部楼层
yylwhy 发表于 2021-12-20 21:10
在海鲜市场看到了块2*1 450W的 太阳能板

我的板子都是捡的二手,隔壁城市的玩家升级下来的,150元2块380瓦便宜捡,自己开车拉回来
回复

使用道具 举报

25

主题

547

帖子

4155

积分

论坛元老

Rank: 8Rank: 8

积分
4155
金钱
3608
HASS币
0
发表于 2021-12-21 06:49:48 | 显示全部楼层
一直没搞懂能源板块怎么调出来的,家里电表介接入了HA,能看功率 电压 电流,配置文件里要输啥命令吗
回复

使用道具 举报

9

主题

128

帖子

802

积分

高级会员

Rank: 4

积分
802
金钱
674
HASS币
0
 楼主| 发表于 2021-12-21 09:22:08 来自手机 | 显示全部楼层
nuaawmy 发表于 2021-12-21 06:49
一直没搞懂能源板块怎么调出来的,家里电表介接入了HA,能看功率 电压 电流,配置文件里要输啥命令吗 ...

什么样的电表?只有功率电压电流没有用电量计量吗。能源板块要求有用电量的实体并且具备一些特定属性
回复

使用道具 举报

8

主题

111

帖子

849

积分

高级会员

Rank: 4

积分
849
金钱
738
HASS币
0
发表于 2021-12-21 09:49:22 | 显示全部楼层
wc  太强了 之后家里打算安装太阳能板 插个眼
回复

使用道具 举报

0

主题

2

帖子

30

积分

新手上路

Rank: 1

积分
30
金钱
28
HASS币
0
发表于 2021-12-21 09:59:53 | 显示全部楼层
太阳能板??是不是太阳能热水器的板子也能利用起来了?
回复

使用道具 举报

9

主题

128

帖子

802

积分

高级会员

Rank: 4

积分
802
金钱
674
HASS币
0
 楼主| 发表于 2021-12-21 10:41:34 | 显示全部楼层
marinefei 发表于 2021-12-21 09:59
太阳能板??是不是太阳能热水器的板子也能利用起来了?

不一样的东西,咱们说的太阳能板是指光伏板
回复

使用道具 举报

5

主题

265

帖子

1899

积分

金牌会员

Rank: 6Rank: 6

积分
1899
金钱
1634
HASS币
0
发表于 2021-12-21 10:41:40 | 显示全部楼层
啥时候更新呢。
回复

使用道具 举报

9

主题

128

帖子

802

积分

高级会员

Rank: 4

积分
802
金钱
674
HASS币
0
 楼主| 发表于 2021-12-21 10:57:59 | 显示全部楼层
zkxa 发表于 2021-12-21 10:41
啥时候更新呢。

今晚。白天上班哈哈哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-1 10:14 , Processed in 0.936125 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表