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

标题: 【最终版本-代码开源】20元的中移铁通插排:esp+功率计量 [打印本页]

作者: szlww    时间: 2023-12-21 15:23
标题: 【最终版本-代码开源】20元的中移铁通插排:esp+功率计量
本帖最后由 szlww 于 2024-5-30 23:27 编辑

关于插排详细介绍详见之前的帖子:https://bbs.hassbian.com/thread-23623-1-1.html

更新:2024年5月30日   
Fatal exception:4 flag:1 (Hardware Watchdog)这个问题修过代码优化,应该算是不完美的解决了,之所以说不完美,是因为不能增加webserver组件,它会导致随机异常重启(可能十几天也可能几小时就会出现)。

第一台测试的设备已运行1300多小时(约58天,其他的测试设备已运行40多天,没有再出现异常重启。测试截图如下:
[attach]59808[/attach]
升级方式[与之前的方式一样,我用的esphome版本为 2023.12.5]:解压附件的yaml文件,到esphome/conf/目录下 ,清理一下原来编译的中间文件,重新编译powerboard-test.yaml后通过web ota上传到设备。
[attach]59809[/attach]
-----------------------------------------------------------------------------------------------------------------
!!!重要更新: 2024年2月22日!!!
        固件运行很长一段时间后出现崩溃,查询日志显示:Fatal exception:4 flag:1 (Hardware Watchdog) ,esp处理超时触发看门狗重置。
原因网上有多种说法:1.arduino版本的问题、2.内存不足问题,导致申请内存失败崩溃、3.其他说法,比如esp8266内存20kb以下不稳定、版本新增的apikey有问题之类。由于arduino版本验证过于复杂,就从内存占用入手调整,经过不断删减yaml测试,剩余内存由原来的15kb提高到28kb。目前已经运行7*24小时,暂时比较稳定,内存占用一直维持在27kb上下。主要修改点如下:
    1. 删除webserver组件,组件占用内存约4kb,如果访问webserver,占用内存数量应该和yaml中展示到web网页前台的组件数正相关(4 +n) kb ;
    2. 删除api key,占用内存约3kb,参考油管上一位up主的视频介绍,内网似乎没必要设置密码或密钥,并且网络状况不好的情况下,模块重连使用api key会占用更多的内存。
    3.删除配网组件,忘记计算内存占用了,应该也是几kb。
    4.其他插排相关的yaml修改,如:esp8266模块参数由2M(esp_wroom_02) 变更为4M(esp12e)等等
    5.代码优化,如果uart读取数据错误,不再上报NAN值。
    6.由于去掉了webserver,附件yaml文件中 的node_name_add_mac_suffix默认设置的是false,需要一个插排建一个yaml文件,方便直接无线ota。可以按需修改为true,需要同时增加wifi: use_address: 设备ip地址或者设备内网域名,就可以直接无线ota。


升级方式:
    由于去掉了apikey,需要先在homeassistant中删除设备,ota升级之后再添加。
    由于去掉了配网组件,需要在secrets.yaml中配置下列属性。

  1. wifi_ssid: "xxx"
  2. wifi_password: "xxx"
  3. ap_password: "xxx"
  4. api_password: "xxx"
  5. ota_password: "xxx"
复制代码

    其他跟以前一样:解压附件的yaml文件到esphome/conf/目录下 ,清理一下原来编译的中间文件,选择powerboard-test.yaml进行编译,然后Install-Wirelessly。升级后通过uptime 和reset_reason验证是否会发生异常,如果产生崩溃uptime会重置从0开始,reset_reason会显示崩溃原因,如果一直稳定,可以尝试按需增删yaml相关组件,由于验证是个比较漫长的过程,一个人测试场景有限,欢迎大家反馈的验证结果!
    [attach]56140[/attach]




更新:2024年1月3日(测试了几个小时,各项功能均正常,这应该是最后一个版本了,如果没有大问题就不再更新了)
        1.新增电度量断电记忆功能 :sy7t609的电度量是在内存中保存的,断电会丢失,因此使用esp的flash来保存电度量,对应的sensor名称为“energy-Energy Counter(Persist)”。
        2.新增重置按钮:实现重置系统的同时,清零总电度量、每日电度量,对应的按钮名称为“system-FactoryReset-WithEnergyCounter”。系统默认的重置按钮保留。
        3.代码优化:修复重置系统之后,有时会收不到uart消息,update函数无法正常进行,导致传感器数据无法采集的问题。

升级方式:解压附件的三个yaml文件,到esphome/conf/目录下 ,清理一下原来编译的中间文件,重新编译后web ota上传到设备。
        ●local模式:请修改yaml文件中sy7t609组件的源地址,改为local,同时下载新版本的驱动源码github://shzlww/esphome_custom_components@20240103
        ●git模式:直接使用下面的yaml文件即可:

        [attach]54877[/attach]


更新:2024年1月2日
        1.优化了一下计量芯片sy7t609的驱动代码,修改了轮询方式,一个loop循环(大约15ms)不读取全部寄存器数据,改为多个loop读取。这样esphome web端就不会再打印那个warning “Component sy7t609.sensor took a long time for an operation (0.23 s)”
升级方式:
        请修改yaml中的github地址,改为 source: github://shzlww/esphome_custom_components@20240101。此版本已经稳定运行10小时以上。



更新:2023年12月30日:
测试发现有些插排的“校准寄存器”出厂数据不正确,原因未知,导致电流、功率等数值错误的问题,因此新增功能“4.重置校准寄存器”,可手动将“校准寄存器”的数据改写为正确的数值。
       1.新增功率power sensor的副本power median sensor,此副本采用median_filter(中值过滤器),避免原始power sensor的数据异常抖动,导致能源统计错误。
       2.新增esphome:friendly_name节点,使用esphome:friendly_name节点和 esphome:name_add_mac_suffix: true,就可以保证homeassistant中的entity_id唯一,批量增删设备不影响自动化。
       3.新增sensor:total_daily_energy,统计每日用电量(这是esphome模拟计算的,并且使用的第1条中的power median sensor来统计的,会和寄存器的值有误差,用于前端展示不需要很高的精度)
       4.新增button/switch:button-清零每日电度量、button-清零累计电度量、button-重置校准寄存器、button-打印寄存器数据、switch-操作确认开关。
          【使用这几个功能之前需要先打开switch-操作确认开关,然后再点击对应的button,防止误操作】
       5.新增sensor: 采集cpu频率、剩余内存容量、内存碎片占比、esphome版本号、IP、MAC、Uptime等诊断信息


esphome完整配置文件(解压三个文件到esphome/conf/目录下) [attach]54758[/attach]
预编译的固件(gz格式可以通过web直接ota) [attach]54757[/attach]
  1. ###########################################################################################
  2. 升级之前,请阅读下面的文档,以免出现疑惑
  3. 注意事项:
  4. 1.固件的编译环境为esphome-v2023.11.4,可正常编译运行;不想升级esphome版本,则需要修改min_version的值,尝试编译固件。
  5. 2.OTA升级固件之后,请长按电源键5秒,等待蓝灯闪烁,重置设备并重新配网,最好对插排断电10秒以上,避免出现奇怪的问题。
  6. 3.如需重新校准、重置电度量、打印寄存器原始数据等操作,按如下步骤进行,以重新校准为例:
  7.   第一步,打开adv-Confirm 开关,第二步,点击adv-ResetCalibration
  8. 固件功能:
  9. 一.插排按钮:
  10. 1.实现智能模式与普通模式。
  11.    功能可配置,为normal或者smart模式,web界面或者homeassistant中下拉框选择。
  12.     normal: 普通模式,插排按钮按下之后全开或者全关
  13.     smart:  智能模式(此模式为默认模式),插排按钮按下之后只操作[主继电器]通断,不改变[从继电器]之前的状态
  14. 2.长按、双击、单击操作
  15.    长按:按住电源按钮5秒以上,插排会重置flash上的信息(包括插座记忆状态),并进入配网状态,
  16.    双击:双击电源键,从继电器接通或断开
  17.    单击:单击电源键,按下实现第[1]条功能配置的相应模式(智能模式/普通模式)
  18. 二.指示灯
  19.    蓝灯常亮:wifi已连接
  20.    蓝灯熄灭:wifi未连接
  21.    蓝灯闪烁:ap配网模式
  22.    红灯闪烁/熄灭:esphome status_led light
  23.    白灯常亮:从继电器 真正通电
  24.    白灯熄灭:从继电器 真正断电
  25. 三.断电记忆
  26.    记忆状态写入间隔1分钟,也就是说开关等组件状态发生变化,1分钟后才会被记录到flash,下次通电之后可恢复这个状态(可以配置成0s,所有状态变化立刻写入flash,
  27.    但频繁的状态变化会缩短flash寿命。)
  28. 四.计量功能
  29. 1.sy7t609计量芯片已驱动
  30.    (1)支持电压、电流、有功功率、无功功率、功率因数、电度量、频率、温度等esphome sensor。
  31.    (2)支持累计电度量清零、重置校准寄存器、打印寄存器原始数据的esphome action
  32. 2.yaml文件修改点
  33.    配置缺一不可:logger:[baud_rate:0]、uart:[xxxxx]、sensor:[platform: sy7t609]、external_components:[xxxx]]
  34. 3.sy7t609驱动组件与配置
  35.    (1)下载地址:https://github.com/shzlww/esphome_custom_components.git,空余时间写的,主要为了实现功能,基本没写代码注释。
  36.    (2)esphome的yaml中配置外部组件有两种方式:git和local。
  37.       (2.1)git模式直接用此yaml即可
  38.       (2.2)local模式需要下载zip源码包,解压后将components(注意是components,不是esphome_custom_components)整个目录复制到esphome的conf目录下
  39.    (3)编译之前,最好清理一下原来编译的中间文件:esphome网页端 - yaml文件 - 三个点 - Clean Build Files
  40. 4.由于是轮询寄存器模式,每次都要给串口一个延时,保证tx能完整发送数据包、rx能完整接收数据包,
  41.    因此esphome的web端会一直打印"Component sy7t609.sensor took a long time for an operation (0.23 s).",不需要理会这个warning
  42. 五.其他改动
  43. 1.新增功率power sensor的副本power median sensor,此副本采用median_filter(中值过滤器),避免原始power sensor的数据异常抖动,导致能源统计错误。
  44.      可用于homeassistant中的能源统计,之前使用pzem004t_v3的模块就遇到过上电启动后几秒内,采集到的数据都特别大,
  45.      导致homeassistant中能源统计异常还没办法删除。目前的配置是:每采集5个,升序排序后上报中间的第三个值,然后丢弃最小值,如此反复。
  46.      会和实际值有误差,但是大大降低了采集数据波动的影响。
  47. 2.新增esphome:friendly_name节点,使用esphome:friendly_name节点之后,homeassistant会对esphome的name和id重新定义,在homeassistant中新的命名方式如下:
  48.      * Entity name的格式为[friendly_name] + ' ' + [各个组件的name]
  49.      * Entity id的格式为[esphome的name]+ '_' + [mac地址后6位] + '_' + [各个组件的name]
  50.      * Device name的格式[friendly_name] + ' ' + [mac地址后6位]
  51.    使用场景:当设备较多时,从homeassistant中批量新增或者删除设备会导致entity_id发生变化,导致配置的自动化失效;
  52.    如果配置了esphome:friendly_name和 esphome:name_add_mac_suffix: true,就可以保证entity_id唯一,批量增删设备不影响自动化。
  53. 3.新增sensor:total_daily_energy,统计每日用电量(这是esphome模拟计算的,并且使用的第1条中的power median sensor来统计的,
  54.    会和寄存器的值有误差,用于前端展示不需要很高的精度)
  55. 4.新增button/switch:button-清零每日电度量、button-清零累计电度量、button-重置校准寄存器、button-打印寄存器数据、switch-操作确认开关。
  56.   【使用这几个功能之前需要先打开switch-操作确认开关,然后再点击对应的button,防止误操作】
  57. 5.其他:新增sensor: 采集cpu频率、剩余内存容量、内存碎片占比、esphome版本号、IP、MAC、Uptime等诊断信息
  58. 6.新增电度量断电记忆功能,sy7t609的电度量是在内存中保存的,断电会丢失,因此使用esp的flash来保存电度量。
  59. 7.新增重置按钮,实现重置系统的同时,清零总电度量、每日电度量。系统默认的重置按钮保留。
  60. 六.待完善部分(暂不实现)
  61. 1.由于这个计量芯片寄存器变量比较多,目前实现的基本够用,其他的都是高级功能,大部分人用不到--
  62.     --比如视在功率、反向有功电度量、设置采集精度、阈值报警、自动校准模式、自动上报模式(目前用的是主动轮询模式)等等非常多。
  63. 2.利用esphome的number组件,来配置各个校准寄存器的数据,进行手动校准。
  64. 3.利用sy7t609 MCU内置的自动校准来实现数据校准。原厂默认支持的是恒压220v、恒流1A的负载,来进行自动校准各个寄存器。
  65. 七、测试
  66. 1.固件目前稳定运行了10小时,功能正常。
  67. 2.IGAIN寄存器的电流使用的UNI-T的万用表10A电流档校准的,有更高精度的电表可以自行修改源码,设置igain寄存器。
  68.    校准公式:IGAIN_new = IGAIN_old * IRMS_TARGET / IRMS ,通俗讲就是[新igain=当前igain*设备实际电流/寄存器采集的电流]
  69. ###########################################################################################
复制代码

界面图片:
[attach]54759[/attach]





以下内容为第一版测试固件
[attach]54523[/attach]
测试固件:
使用web端进行ota固件升级。升级完成后,观察蓝灯是否闪烁,如果没有就长按插排的电源键5秒以上,等待蓝灯闪烁,重置系统并配网,密码12345678。连接homeassistant时候需要用到的api key,在web端自行获取。
[attach]54524[/attach]







作者: szlww    时间: 2023-12-21 15:27
本帖最后由 szlww 于 2023-12-30 23:09 编辑

占楼备用
作者: yc0209    时间: 2023-12-21 16:13

占楼备用
作者: sailingfan    时间: 2023-12-21 16:21
牛人!!!

作者: sorrypqa    时间: 2023-12-21 18:51
楼主有空试试这插排打开继电器时耗电有没有超过2W?
作者: szlww    时间: 2023-12-21 20:24
本帖最后由 szlww 于 2023-12-21 20:27 编辑
sorrypqa 发表于 2023-12-21 18:51
楼主有空试试这插排打开继电器时耗电有没有超过2W?

简单测试了一下:
测试环境:两个同款插排串接,插排A esphome固件,插排B原厂固件。
测试场景:
1.A插排接通一个开关,此时A插排的esphome固件显示功率0.02w左右,这个作为0w基准。

  [attach]54528[/attach]

2.然后B插排插在A插排上,B插排的继电器处于全部断开状态,此时A插排esphome固件显示功率0.62w

[attach]54529[/attach]

3.点击B插排的电源键,让B插排的继电器处于吸合状态,此时A插排esphome固件显示功率1.74w

[attach]54530[/attach]

结论:插排B的两个继电器吸合的功耗是:1.74w-0.62w ≈ 1w?


作者: sorrypqa    时间: 2023-12-21 20:46
szlww 发表于 2023-12-21 20:24
简单测试了一下:
测试环境:两个同款插排串接,插排A esphome固件,插排B原厂固件。
测试场景:

还是买3元一个那种磁保持继电器换了吧,用一年半载就回本了,还能减少发热,我的4控+2路电量全开耗电才0.5W
[attach]54531[/attach]


作者: flyice    时间: 2023-12-21 21:21
建议把传感器更新间隔设置为3s,1s一次感觉功率有点来回跳
作者: szlww    时间: 2023-12-21 21:35
flyice 发表于 2023-12-21 21:21
建议把传感器更新间隔设置为3s,1s一次感觉功率有点来回跳

目前是2s间隔。重点看一下高、中、低功率电器设备的计量准确度,我手头没有高精度的电表,没法确定这个准确度怎么样。
作者: ptsa    时间: 2023-12-21 21:55
sorrypqa 发表于 2023-12-21 20:46
还是买3元一个那种磁保持继电器换了吧,用一年半载就回本了,还能减少发热,我的4控+2路电量全开耗电才0.5 ...

可以出一个换的教程 直接换就可以?

                               
登录/注册后可看大图

作者: flyice    时间: 2023-12-21 22:01
ptsa 发表于 2023-12-21 21:55
可以出一个换的教程 直接换就可以?

别听他胡扯,1W的待机功率,开一年才8.76度电,合计4块钱
作者: xiaoo    时间: 2023-12-22 00:51
大佬666,周末就刷上试试
作者: sorrypqa    时间: 2023-12-22 08:15
本帖最后由 sorrypqa 于 2023-12-22 09:42 编辑
flyice 发表于 2023-12-21 22:01
别听他胡扯,1W的待机功率,开一年才8.76度电,合计4块钱

继电器一年最多可以用(1.74-0.62)x24x365=9.8度电,这地方电费0.63元,9.8x0.63=6.17元,还不算有时进入3阶电价的时候,磁保持3元1个,用1年就能从电费中省回来,还能减少发热(温度越高,插排里面的电容寿命就越短),这是胡扯?我是宁愿钱投资在硬件上,也不会浪费在电费上
作者: [email protected]    时间: 2023-12-22 08:39
大佬 给力
作者: guoyang881017    时间: 2023-12-22 09:13
大佬给力,占楼备用
作者: scabbers    时间: 2023-12-22 11:17
买了3个前两天就到了,就等楼主的 yaml 了
作者: xiaoo    时间: 2023-12-22 11:17
sorrypqa 发表于 2023-12-22 08:15
继电器一年最多可以用(1.74-0.62)x24x365=9.8度电,这地方电费0.63元,9.8x0.63=6.17元,还不算有时进入 ...

想换磁保持,求推荐。查了嘉立创上面的,都15块以上一个。
作者: flyice    时间: 2023-12-22 12:37
还是有些问题的,1700W的功率,电流却是16A,电量计量似乎也不怎么增加
作者: szlww    时间: 2023-12-22 12:48
本帖最后由 szlww 于 2023-12-22 13:18 编辑
flyice 发表于 2023-12-22 12:37
还是有些问题的,1700W的功率,电流却是16A,电量计量似乎也不怎么增加

我想看看原始数据,截图一下esphome web端吧。你那边还有别的电表么,电表读数截图也发一下看看。看来又要肝代码了。。。
作者: sorrypqa    时间: 2023-12-22 13:05
ptsa 发表于 2023-12-21 21:55
可以出一个换的教程 直接换就可以?

我没买这款插排呀!
作者: bugensui    时间: 2023-12-22 16:44
sorrypqa 发表于 2023-12-22 08:15
继电器一年最多可以用(1.74-0.62)x24x365=9.8度电,这地方电费0.63元,9.8x0.63=6.17元,还不算有时进入 ...

磁保持是另外一种继电器对吧,相比传统的继电器,有什么优势呢,我是小白,想你之前说的sonoff是普通的继电器,还是你说的磁保持,麻烦大佬简单科普下,。
作者: sorrypqa    时间: 2023-12-22 23:53
bugensui 发表于 2023-12-22 16:44
磁保持是另外一种继电器对吧,相比传统的继电器,有什么优势呢,我是小白,想你之前说的sonoff是普通的继 ...

磁保持继电器顾名思义平时开和关的状态无需通电来维持,都是靠永磁的力量来保持状态,切换开和关的状态时只需要一个0.1秒以内的脉冲,所以这玩意几乎不用电,也完全不发热,是目前最完美的继电器,可惜嘉立创商城里卖贵得飞起,这玩意并不比普通继电器复杂多少,成本也不高多少,偏偏售价太贵。不过还是值得选用。
作者: seanhe26    时间: 2023-12-23 00:37
感谢分享,希望早日把驱动代码放github,这样大家都可以帮着贡献代码。问下原厂固件是不是只能用ttl线刷了? 能直接原厂ota刷固件吗
作者: george65    时间: 2023-12-23 01:40
sorrypqa 发表于 2023-12-22 23:53
磁保持继电器顾名思义平时开和关的状态无需通电来维持,都是靠永磁的力量来保持状态,切换开和关的状态时 ...

看了磁保持繼電器後  感覺他的操控好像比較麻煩
動作跟復歸需要的不同的信號觸發

[attach]54545[/attach]

作者: sorrypqa    时间: 2023-12-23 09:06
george65 发表于 2023-12-23 01:40
看了磁保持繼電器後  感覺他的操控好像比較麻煩
動作跟復歸需要的不同的信號觸發

2脚单线圈的我的确不喜欢,需要H桥驱动,但3脚双线圈的其实很方便的,只需2个三极管就可以驱动,所以一直买双线圈的。
作者: bugensui    时间: 2023-12-23 14:54
sorrypqa 发表于 2023-12-22 23:53
磁保持继电器顾名思义平时开和关的状态无需通电来维持,都是靠永磁的力量来保持状态,切换开和关的状态时 ...

这个跟可控硅有什么区别呢,原理我懂了。确实是个好东西,可是你的esp不还是需要有电的吗,怎么知道,自己买的开关里,是不是磁保持继电器
作者: sorrypqa    时间: 2023-12-23 16:21
bugensui 发表于 2023-12-23 14:54
这个跟可控硅有什么区别呢,原理我懂了。确实是个好东西,可是你的esp不还是需要有电的吗,怎么知道,自 ...

可控硅只需很小的电压和电流就能控制它导通,可是它导通后会产生压降,有损耗,会发热,负载功率越大,它发热就越厉害,大部分场景它比不上磁保持继电器理想,也比不上磁保持继电器省电。除了DIY产品,好像市面上的智能开关、智能插座和插排都没有磁保持继电器的型号可选
作者: ekingfan    时间: 2023-12-23 17:52
电量统计 断电后就没有了。 这个能解决吗?就是 能断电统计 再加一个重置 就完美了。
作者: sorrypqa    时间: 2023-12-24 08:44
ekingfan 发表于 2023-12-23 17:52
电量统计 断电后就没有了。 这个能解决吗?就是 能断电统计 再加一个重置 就完美了。 ...

如果ESPHome的传感器能像Total Daily Energy Sensor那样有个restore的选项,启用后能将中间结果存储在设备上,可以在断电或重新启动时恢复该值,就完美了
作者: Sisu    时间: 2023-12-24 09:14
牛,感谢分享
作者: 121665460    时间: 2023-12-24 12:20
web.esphome.io 连接失败。。
可能手不稳扶不住rx和tx
作者: xiaoo    时间: 2023-12-24 22:32
反馈下刷机后的结果

1. 开关控制一切正常,单击是总开关切换,双击是分支开关切换。
2.功耗和小米智能插座二代对比了下,功率不好说是否一致,因为小米的更新周期长,ESPHome更新周期短,上下浮动比较多。
电流和累计电量看着不太对,因为电流与电压的乘积与功率不一致;电量累计比实际小很多,图上显示的是44Wh,实际应该为400Wh左右。

感谢楼主的贡献,让大家又多一个捡垃圾的选择。希望楼主早日开源,大家一起帮忙找bug
[attach]54580[/attach]

作者: xiaoo    时间: 2023-12-24 22:43
本帖最后由 xiaoo 于 2023-12-24 22:49 编辑

说下刷固件的过程,3.3v、GND、GPIO0留有焊盘,还算比较好焊接。串口就比较难焊了,手扶排针不太稳,不得不把旁边的大电容先拆掉再焊。
[attach]54584[/attach]
作者: sorrypqa    时间: 2023-12-25 07:20
本帖最后由 sorrypqa 于 2024-1-20 22:29 编辑
xiaoo 发表于 2023-12-24 22:32
反馈下刷机后的结果

1. 开关控制一切正常,单击是总开关切换,双击是分支开关切换。

的确是不准确,计量功能形同虚设
作者: szlww    时间: 2023-12-25 09:59
xiaoo 发表于 2023-12-24 22:32
反馈下刷机后的结果

1. 开关控制一切正常,单击是总开关切换,双击是分支开关切换。

功率可以用烧水壶、灯泡这种功率恒定的来测试。冰箱功率可能一直变化
作者: 骚年快来    时间: 2023-12-25 14:51
大佬还得是大佬啊
作者: gtyun    时间: 2023-12-25 15:31
sorrypqa 发表于 2023-12-22 23:53
磁保持继电器顾名思义平时开和关的状态无需通电来维持,都是靠永磁的力量来保持状态,切换开和关的状态时 ...

抗干扰性怎么样
作者: sorrypqa    时间: 2023-12-25 15:41
gtyun 发表于 2023-12-25 15:31
抗干扰性怎么样

除了贵,没任何其它问题,重要的是它解决了普通继电器带几百瓦以上的容性负载容易触点粘连的头疼问题。
作者: chazikai24    时间: 2023-12-26 08:06
用石墨烯取暖器接上去,跟一个普通的功率计对比了下,基本一样,大功率误差可以忽略不计。
坐等大佬放出yaml跟驱动组件源码。
之前下单了5个,刷好固件,想再下单的时候发现下架了,还以为要涨价了,没想到又放出来了,准备再囤5个。
作者: sorrypqa    时间: 2023-12-26 08:54
chazikai24 发表于 2023-12-26 08:06
用石墨烯取暖器接上去,跟一个普通的功率计对比了下,基本一样,大功率误差可以忽略不计。
坐等大佬放出yam ...

用电的取暖设备没有什么比变频空调更省电的吧?
作者: kpxx    时间: 2023-12-26 09:38
这个固件直接ttl刷进去可以吗?
cmcc-powerboard_v1.0b.bin
作者: szlww    时间: 2023-12-26 10:16
kpxx 发表于 2023-12-26 09:38
这个固件直接ttl刷进去可以吗?
cmcc-powerboard_v1.0b.bin

可以ttl线刷
作者: roanstar    时间: 2023-12-26 11:51
绝对的高手啊
作者: chazikai24    时间: 2023-12-26 13:49
sorrypqa 发表于 2023-12-26 08:54
用电的取暖设备没有什么比变频空调更省电的吧?

温度不算太低的时候,用电的取暖器。温度低就直接开地暖了。家里没有装空调。
作者: flyice    时间: 2023-12-29 00:44
老哥,加油啊,坐等完整固件
作者: szlww    时间: 2023-12-30 12:18
完整代码已开源
作者: szlww    时间: 2023-12-30 12:19
flyice 发表于 2023-12-29 00:44
老哥,加油啊,坐等完整固件

下载二楼的试试吧
作者: ekingfan    时间: 2023-12-30 13:36
szlww 发表于 2023-12-30 12:18
完整代码已开源

谢谢,正想学习WIFI 设置这些。有你的代码可以学习到更多,,不过还是懂的懂,不懂的,你怎么开源他们也不懂。谢谢先。 大神你好。
作者: lky213    时间: 2023-12-30 17:33
顶起来 大佬6666666
作者: xiaoo    时间: 2023-12-30 22:15
升级成功了,功能正常,就是有个警告日志
[attach]54749[/attach]


作者: szlww    时间: 2023-12-30 22:24
xiaoo 发表于 2023-12-30 22:15
升级成功了,功能正常,就是有个警告日志

二楼的第【四.4】条有说明
作者: szlww    时间: 2023-12-30 23:02
4.由于是轮询寄存器模式,每次都要给串口一个延时,保证tx能完整发送数据包、rx能完整接收数据包,
   因此esphome的web端会一直打印"Component sy7t609.sensor took a long time for an operation (0.23 s).",不需要理会这个warning
作者: xiaoo    时间: 2023-12-30 23:54
szlww 发表于 2023-12-30 23:02
4.由于是轮询寄存器模式,每次都要给串口一个延时,保证tx能完整发送数据包、rx能完整接收数据包,
   因 ...

好的,没仔细看说明
作者: wangshao032    时间: 2023-12-31 20:43
楼主厉害
作者: chazikai24    时间: 2023-12-31 22:47
编译通过,使用正常。
补充下,通过haos加载项安装的esphome,直接把3个yaml文件,通过ssh放到/homeassistant/esphome下即可,进入esphome菜单,通过CMCC.CMPOWER-W1编译即可。
唯一的缺点是,esphome无法自动添加设备并显示online了,只能手动填入api_key添加设备。
作者: szlww    时间: 2023-12-31 23:30
本帖最后由 szlww 于 2023-12-31 23:40 编辑
chazikai24 发表于 2023-12-31 22:47
编译通过,使用正常。
补充下,通过haos加载项安装的esphome,直接把3个yaml文件,通过ssh放到/homeassista ...

为了能编译一次固件然后ota所有设备,yaml添加了name_add_mac_suffix这个键值,esphome只有在运行的时候才能知道mac地址是多少,编译期是不知道mac地址的,所以esphome确实没法显示online,不过homeassistant是可以正常识别的。    如果介意esphome的online状态,可以手动修改node_name键值,添加后缀"-mac地址后6位",把节点改成真实的节点名称(cmcc-powerboard-1a2b3c) ,并且去掉esphome:name_add_mac_suffix这个键值。这样在homeassistant中entity_id不会变。如果有多个铁通插排的话,建议保持现状。
[attach]54787[/attach]

作者: 娄凉生    时间: 2024-1-1 20:28
大佬牛逼
作者: scabbers    时间: 2024-1-2 10:38
假期刷了3个,正常使用。 感谢楼主无私奉献
作者: 58199856    时间: 2024-1-2 11:46
感谢分享
作者: szlww    时间: 2024-1-2 12:20
新版本更新!
作者: houhd    时间: 2024-1-2 19:45
szlww 发表于 2024-1-2 12:20
新版本更新!

昨天晚上在github上发现有更新,就下下来,删掉了些例如cpu、内存、连接状态、mac、api key等对我来说没什么用的sensor,采用local方式编译了固件刷入食用了,挺好的,感谢。
作者: 634144102    时间: 2024-1-2 21:46


占楼备用
作者: netlu    时间: 2024-1-3 10:04
太好了,折腾起来。
作者: chazikai24    时间: 2024-1-3 14:29
14:27:33        [W]        [component:214]       
Component preferences took a long time for an operation (0.05 s).
14:27:33        [W]        [component:215]       
Components should block for at most 20-30ms.

最新版本固件,偶尔还是会有这个告警信息,观察了下没有规律。

作者: szlww    时间: 2024-1-3 14:54
chazikai24 发表于 2024-1-3 14:29
14:27:33        [W]        [component:214]       
Component preferences took a long time for an operation (0.05 s).
14:2 ...

“Component preferences”这个不是我的模块,是esp内置的组件preferences,用于将数据持久化到内置的flash中,可能写flash需要时间吧,一分钟写一次。
作者: szlww    时间: 2024-1-3 19:03
新版本更新。
作者: chazikai24    时间: 2024-1-3 20:41
szlww 发表于 2024-1-3 14:54
“Component preferences”这个不是我的模块,是esp内置的组件preferences,用于将数据持久化到内置的fla ...

原来如此,差不多,1分钟左右会出现一次
作者: owenY    时间: 2024-1-3 21:18
感谢大佬
作者: qxdnzx    时间: 2024-1-3 21:28
感谢楼主,
作者: Juices    时间: 2024-1-4 16:08
奇怪了1.03的固件我用最新的esphome 和你说的11.4的esphome三个文件都有不同程度的报警
作者: lky213    时间: 2024-1-4 16:26
感谢大佬无私奉献 我已食用 怒刷五个
作者: sorrypqa    时间: 2024-1-4 16:44
天呀!!一个插排的配置文件看得我头晕脑胀........感觉我都玩不转ESPHome了。
作者: 第一个    时间: 2024-1-4 17:02
紧跟大佬脚步已下单三个70
作者: szlww    时间: 2024-1-4 18:17
sorrypqa 发表于 2024-1-4 16:44
天呀!!一个插排的配置文件看得我头晕脑胀........感觉我都玩不转ESPHome了。 ...

大佬谦虚了
作者: kpxx    时间: 2024-1-6 13:43
ttl刷固件提示。。。Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
- Flash Size: 4MB
- Flash Mode: dout
- Flash Frequency: 40MHz
Erasing flash (this may take a while)...
Chip erase completed successfully in 0.0s
Flash params set to 0x0340
Compressed 598304 bytes to 407593...
Unexpected error: Error while writing flash: Timed out waiting for packet content

,这个怎么解决

作者: Juices    时间: 2024-1-6 13:53
求助啊大佬三个都编译不过,我用的ephome 2023.11.4 和其他各种版本都编译不过
INFO ESPHome 2023.11.4
INFO Reading configuration /config/1-common-component.yaml...
ERROR Error while reading config: Invalid YAML syntax:

Secret 'api_key' not defined
  in "/config/1-common-component.yaml", line 2, column 19:
        node_api_key: !secret api_key
                      ^
INFO ESPHome 2023.11.4
INFO Reading configuration /config/1-common-esp8266-2m.yaml...
ERROR Error while reading config: Invalid YAML syntax:

Secret 'ap_password' not defined
  in "/config/1-common-esp8266-2m.yaml", line 64, column 15:
        password: !secret ap_password
                  ^
INFO ESPHome 2023.11.4
INFO Reading configuration /config/cmcc-powerbord-sy7t609.yaml...
ERROR Error while reading config: Invalid YAML syntax:

Secret 'ap_password' not defined
  in "/config/1-common-esp8266-2m.yaml", line 64, column 15:
        password: !secret ap_password
                  ^
作者: vr7jj    时间: 2024-1-6 20:38
牛人!!
作者: szlww    时间: 2024-1-6 21:23
kpxx 发表于 2024-1-6 13:43
ttl刷固件提示。。。Uploading stub...
Running stub...
Stub running...

线没接好,重新试试
作者: szlww    时间: 2024-1-6 21:24
Juices 发表于 2024-1-6 13:53
求助啊大佬三个都编译不过,我用的ephome 2023.11.4 和其他各种版本都编译不过
INFO ESPHome 2023. ...

secret.yaml中配置上缺少的键值。
wifi_ssid:
wifi_password:
ap_password:
api_password:
ota_password:
api_key:
作者: hyiqun    时间: 2024-1-7 14:18
也卡在API_KEY上了,求大佬指正API_KEY该咋填
INFO ESPHome 2023.12.5
INFO Reading configuration /config/esphome/cmcc-powerbord-sy7t609.yaml...
Failed config

substitutions: None
  node_api_key: !secret api_key
  
  Must be string, got <class 'esphome.helpers.EInt'>. did you forget putting quotes around the value?.
  node_ap_password: 12345678
  button_pin: GPIO4
  relay_master_pin: GPIO0
  relay_slave_pin: GPIO12
  relay_enable_pin: GPIO15
  led_blue_pin: GPIO16
  led_red_pin: GPIO14
  led_white_pin: GPIO5
  node_name: cmcc-powerboard
  node_name_friendly: CMCC.CMPOWER-W1
  node_name_add_mac_suffix: true
  node_project_name: CMCC.CMPOWER-W1
  node_project_version: v3.0.0(espressif-esp12s-sy7t609)
  node_build_min_version: 2023.12.5
作者: yongfal    时间: 2024-1-7 15:36
hyiqun 发表于 2024-1-7 14:18
也卡在API_KEY上了,求大佬指正API_KEY该咋填
INFO ESPHome 2023.12.5
INFO Reading configuration /config ...

新建一个就有 +new device
作者: 左下角    时间: 2024-1-7 15:58

牛人!!!
作者: Juices    时间: 2024-1-8 13:54
szlww 发表于 2024-1-6 21:24
secret.yaml中配置上缺少的键值。
wifi_ssid:
wifi_password:

大佬能给个示范么,这个确实是有点知识盲区了非常感谢
作者: Juices    时间: 2024-1-8 14:02
Juices 发表于 2024-1-8 13:54
大佬能给个示范么,这个确实是有点知识盲区了非常感谢

搞定了。感谢大佬提示
作者: gl695133087    时间: 2024-1-9 20:26
已购3个,配置已下载,抽时间在弄了,感谢楼主!
作者: ekingfan    时间: 2024-1-10 11:50
大佬好。 我就是用了你上一个版本。 就是出现两三天就没有信号。闪灯。。没有出热点 。必须 重置。。上来看就看到你的0103的版本的YAML了。 但没有看到你生成的BIN。 我想直接上传用。用麻烦你发一下你0103版本的BIN.谢谢。
作者: yukiooo    时间: 2024-1-10 12:41
哪位大佬写个刷机教程吧,翻评论看知道那几个触点了,剩下用什么工具刷呢?USB转ttl吗,电脑要下什么软件刷?小白求指教
作者: szlww    时间: 2024-1-10 13:19
本帖最后由 szlww 于 2024-1-10 13:24 编辑
ekingfan 发表于 2024-1-10 11:50
大佬好。 我就是用了你上一个版本。 就是出现两三天就没有信号。闪灯。。没有出热点 。必须 重置。。上来看 ...

试试这个吧,不用解压直接web ota,ota之后需要重新配网,配网完成后,如果能正常访问插排的web页面,就断电10秒再重新通电。插排离wifi远么?是不是信号不好。放到路由器边上,跑几天看看,如果有问题我再查查。
[attach]55100[/attach]
[attach]55102[/attach]
  1. ap_password: "12345678"
  2. api_password: "12345678"
  3. ota_password: "12345678"
  4. api_key: "Uo5EDAtxfUi/R1IS9JQZyj1KQf+UkbEDHK93g24g14o="
复制代码





作者: 592nba    时间: 2024-1-10 23:13
占楼备用
作者: cvip    时间: 2024-1-11 08:53
感谢大佬无私付出,造福大家。请教您几个问题。
1.api_password:是作么用的?在哪里用,我没设置好像也能编译没报错;
2.api_key。我有多个插座,每个插座的这个值要修改吗?

另外请教您一个其它问题,我刷联想341A的插座,应当有2M内存,为什么我OTA刷机501K的bin文件,会提示内存不足?
谢谢啦。
作者: szlww    时间: 2024-1-11 10:12
本帖最后由 szlww 于 2024-1-11 10:21 编辑
cvip 发表于 2024-1-11 08:53
感谢大佬无私付出,造福大家。请教您几个问题。
1.api_password:是作么用的?在哪里用,我没设置好像也能编 ...

1.esphome新版本api_password改用api_key替代了,旧版本esphome用api_password。
2.联想的341a是涂鸦的tywe3s,好像只能用1m的模式,你ttl刷的时候用的esp01_1m的模式还是esp_wroom_02?我也有这个芯片的设备,试过了,如果ota改到2m,下次ota就会报错,原因未知。参考:https://github.com/esphome/issues/issues/1006
  1. evadim commented on Mar 1, 2020
  2. Got same issue and there is a thing:
  3. Compiled firmware with esp_wroom_02, flash by com port = OK.
  4. Try to update via OTA = fail.
  5. Changed type to esp01_1m, flash via OTA = fail. Flash via com works fine.
  6. Now, OTA works fine vith esp01_1m
  7. Changed back to esp_wroom_02, updated via OTA works fine (did several times, turn of power, etc).
复制代码

单纯一个插座我觉着用esp01_1m应该足够,就一个继电器,代码不会很多。你这个501k的固件压缩成gz格式再ota试试。


作者: cvip    时间: 2024-1-11 10:48
szlww 发表于 2024-1-11 10:12
1.esphome新版本api_password改用api_key替代了,旧版本esphome用api_password。
2.联想的341a是涂鸦的tyw ...

谢谢您提供的思路。我用的esp_01m。明白了这个这个01m是代表1M内存的意思,这样就能理解了。
作者: cvip    时间: 2024-1-11 10:49
只要是500K以下ota是没有问题的。到时我再试试.gz能否正常。
作者: sorrypqa    时间: 2024-1-11 21:11
xiaoo 发表于 2023-12-24 22:43
说下刷固件的过程,3.3v、GND、GPIO0留有焊盘,还算比较好焊接。串口就比较难焊了,手扶排针不太稳,不得不 ...

拆电容?那是大工程啊!感觉拆主板功夫很大

作者: Mr.G    时间: 2024-1-12 08:16
插排固件非常完美,刷了5个,刷机的时候焊GND 5v   IO0 三根线即可,TX RX 用手扶着,特别稳, 我看到其他大佬说IO0可以一直接地,但是我实测上电的时候需要接地,然后得断开才能进入刷机模式!
作者: Mr.G    时间: 2024-1-12 08:18
大佬不知道为啥给您评分变成-16了,对不起
作者: sauron    时间: 2024-1-12 22:25
连mqtt好像会不断重启,不知道是不是个例
作者: jjcs    时间: 2024-1-13 19:42
贴主的esphome代码格式堪称典范,高内聚低耦合,这下其他电表数据都可以交给esphome处理了。话说能研究一下电费谷峰计算吗
作者: yuyuye    时间: 2024-1-14 10:25
szlww 发表于 2024-1-10 13:19
试试这个吧,不用解压直接web ota,ota之后需要重新配网,配网完成后,如果能正常访问插排的web页面,就断 ...

先感谢大佬作品。
我第一次接触esphome,有些问题请教下,如有路过的大佬也请不吝赐教,再次谢过。
我是通过docker安装了esphome 2023.11.4,然后将3个yaml文件复制到config目录下,接着编辑好secret文件后开始manual download cmcc-powerbord-sy7t609.yaml文件(编译?)
但是到最后总是报错:
  1. Compiling .pioenvs/cmcc-powerboard/src/esphome/components/api/api_connection.cpp.o
  2. sh: 1: xtensa-lx106-elf-g++: not found
  3. Compiling .pioenvs/cmcc-powerboard/src/esphome/components/api/api_frame_helper.cpp.o
  4. sh: 1: xtensa-lx106-elf-g++: not found
  5. Compiling .pioenvs/cmcc-powerboard/src/esphome/components/api/api_pb2.cpp.o
  6. sh: 1: xtensa-lx106-elf-g++: not found
  7. Compiling .pioenvs/cmcc-powerboard/src/esphome/components/api/api_pb2_service.cpp.o
  8. sh: 1: xtensa-lx106-elf-g++: not found
  9. Compiling .pioenvs/cmcc-powerboard/src/esphome/components/api/api_server.cpp.o
  10. sh: 1: xtensa-lx106-elf-g++: not found
  11. Compiling .pioenvs/cmcc-powerboard/src/esphome/components/api/list_entities.cpp.o
  12. sh: 1: xtensa-lx106-elf-g++: not found
  13. Compiling .pioenvs/cmcc-powerboard/src/esphome/components/api/proto.cpp.o
  14. sh: 1: xtensa-lx106-elf-g++: not found
  15. *** [.pioenvs/cmcc-powerboard/src/esphome/components/api/api_connection.cpp.o] Error 127
  16. *** [.pioenvs/cmcc-powerboard/src/esphome/components/api/api_frame_helper.cpp.o] Error 127
  17. *** [.pioenvs/cmcc-powerboard/src/esphome/components/api/api_pb2.cpp.o] Error 127
  18. *** [.pioenvs/cmcc-powerboard/src/esphome/components/api/api_pb2_service.cpp.o] Error 127
  19. *** [.pioenvs/cmcc-powerboard/src/esphome/components/api/api_server.cpp.o] Error 127
  20. Compiling .pioenvs/cmcc-powerboard/src/esphome/components/api/subscribe_state.cpp.o
  21. *** [.pioenvs/cmcc-powerboard/src/esphome/components/api/list_entities.cpp.o] Error 127
  22. *** [.pioenvs/cmcc-powerboard/src/esphome/components/api/proto.cpp.o] Error 127
  23. sh: 1: xtensa-lx106-elf-g++: not found
  24. *** [.pioenvs/cmcc-powerboard/src/esphome/components/api/subscribe_state.cpp.o] Error 127
  25. ========================= [FAILED] Took 158.13 seconds =========================
复制代码
走不下去了,一方面问下这个报错可以解决吗?

另一方面问下,是不是可以直接用大佬提供的bin.gz通过ESPHome-Flasher-1.2.0-windows-x64.exe刷入呢?

作者: wangshao032    时间: 2024-1-14 14:04
大佬,ota最新版本后,网页端不显示设备密匙了,需要重新线刷以前的版本吗




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5