找回密码
 立即注册

微信扫码登录

搜索
查看: 2740|回复: 59

[技术探讨] AI给的s7体重秤esphome固件(无体脂功能)及AI源码+DC1固件

  [复制链接]

83

主题

1497

回帖

3万

积分

元老级技术达人

积分
33029
金钱
31404
HASS币
310
发表于 2026-1-13 00:13:32 | 显示全部楼层 |阅读模式
本帖最后由 dscao 于 2026-2-11 20:11 编辑

看到论坛中 https://bbs.hassbian.com/thread-31069-1-1.html 。 大佬一直没放出固件,于是把任务丢给了ai,给我返回了一份完全复刻版,刷机测试,能启动,但是没有数据。经过多次调试最终……,还是没能获得体脂数据。于是让它简化成只有体重功能的简易固件。原来的zs7固件已经很好了,用了好几年了,但esphome更方便ha的接入,也可以尝试一下不同的方式,于是将旧机S7PE和新买的S7都刷了一下。稳定体重10秒后会自动归零,方便自动化使用,未做较多测试。


首次刷esphome,拆机接线方法可参考以下内容:
https://github.com/a2633063/zS7/ ... F%E6%96%B9%E6%B3%95
https://bbs.hassbian.com/thread-31069-1-1.html

配网:

开机等1分钟,保持连接外电状态下,会开启热点phicomm-s7,连接热点密码:12345678,进入192.168.4.1 web界面进行配网网。ha中的esphome会自动发现。
以后有新的esphome固件或支持的固件就可以ota了。


PixPin_2026-01-12_13-27-05.png


PixPin_2026-01-12_13-26-34.png

配套的语音播报自动化:

alias: s7体重秤测量播报
description: ""
triggers:
  - entity_id:
      - sensor.fei_xun_s7ti_zhong_cheng_s1_wen_ding_ti_zhong #注意这里的实体名要一致
    not_to:
      - unknown
      - unavailable
      - "0.0"
    trigger: state
conditions:
  - condition: time
    after: "08:00:00"
    before: "23:00:00"
actions:
  - parallel:
      - action: tts.speak
        target:
          entity_id: tts.edge_tts
        data:
          message: >-
            体重秤刚刚测量{{ varuser }}的体重为{{ trigger.to_state.state | float | round(2)
            }}公斤
          media_player_entity_id: media_player.wo_shi
mode: single
variables:
  varuser: |-
    {%if 65 <= trigger.to_state.state | float < 75 %}
      {% set user = '姓名A%}
    {%elif 46 <= trigger.to_state.state | float < 60 %}
      {% set user = '姓名B'%}
    {%elif 10 <= trigger.to_state.state | float < 30 %}
      {% set user = '姓名C'%}
    {%endif%} {{ user }}




顺带再发一个DC1的esphome固件,下面的那个自制固件已经用了好几年,也是非常好用的。这次就是想换个esphome方式折腾一下。
原来有3个插排在用的,应该20年7月买,到现在一点问题没有,质量没得说。为测试这个又买了2个旧的,100包邮。
这几天将4个硬改成独立开关,还有1个没改用于测试总分联动。

代码来源:https://github.com/Samuel-0-0/phicomm_dc1-esphome ,
功能仿制于:自制固件 https://github.com/qlwz/esp_dc1/releases

让AI进行了一些修改优化,新版esphome内置组件完全支持,不再需要自定义组件,经过一周的测试和再修改的版本。

功能:
1、长按总开关5秒以上进行重置配网,要多等一会儿反应,logo闪几次后再等一会儿,热点:phicomm-dc1 密码:12345678
2、上电状态:断电记忆、总是开启、总是关闭 (默认断电记忆)
3、总分联动策略:独立模式、分开总开、总关禁开(默认独立模式适合改线路的,原装未改线路的适合分开总开)
4、logo灯模式:跟随总开关、常开、常关
5、互锁模式 是否开启(默认关闭)

为了节省资源,固件不开启web。后续刷机可通过重置配网界面最下方的ota进行。电量统计由esphome内置组件计算,精度上可能会有误差。

界面如下:

PixPin_2026-01-27_14-32-29.png

刷机有风险,小白勿试。如果出问题了风险自担,小的可能需要重新拆机,大的可能我也不知道。总之来个免责提醒。

第一次AI给的全功能复刻版固件源码如下,但因为没有逆向算法,全部是猜测的。所以功能并不可用,算法或思路可能并不正确。以下是AI的回复内容:

游客,本帖隐藏的内容需要积分高于 500 才可浏览,您当前积分为 0

游客,如果您要查看本帖隐藏内容请回复



发现电量不准确,体脂数据不简单,AI 最终都没能猜出来,估计不逆向又没有现成可用的抓包数据都很难搞成功。没精力研究了,想要全功能的还是找sauron大佬吧,研究成功是真得不容易。

phicomm-s7 (仅体重).bin

432.91 KB, 阅读权限: 30, 下载次数: 28

售价: 10 金钱  [记录]

s7

phicomm-dc1.bin

438.34 KB, 阅读权限: 30, 下载次数: 7

售价: 10 金钱  [记录]

dc1

esphome-ota.bin

377.92 KB, 阅读权限: 20, 下载次数: 2

ota最简固件

评分

参与人数 9金钱 +127 HASS币 +20 收起 理由
zzzqqq + 5 感谢楼主分享!
gky008 + 10 不错,虽然简易,但分享就值得感谢。体脂是 ...
admin + 20 + 20 厉害了word楼主!
咸味土豆 + 20 赠人玫瑰,手留余香!
laojimigu + 10 感谢楼主分享!
keyi5566 + 10 感谢楼主分享!
隔壁的王叔叔 + 12 感谢楼主分享!
Mr.G + 20 膜拜大神!
冬瓜HA + 20 论坛有你更精彩!

查看全部评分

回复

使用道具 举报

5

主题

167

回帖

2185

积分

金牌会员

积分
2185
金钱
2008
HASS币
20
发表于 2026-1-13 03:35:10 | 显示全部楼层
前排,看看效果
回复

使用道具 举报

3

主题

108

回帖

1799

积分

金牌会员

积分
1799
金钱
1688
HASS币
10
发表于 2026-1-13 08:09:41 | 显示全部楼层
谢谢分享,有源码就更好了
回复

使用道具 举报

Mr.G 手机认证

24

主题

478

回帖

9232

积分

元老级技术达人

略懂一些皮毛而已!

积分
9232
金钱
8715
HASS币
40
发表于 2026-1-13 08:13:26 | 显示全部楼层
AI确实是牛啊
回复

使用道具 举报

75

主题

535

回帖

2555

积分

金牌会员

积分
2555
金钱
1945
HASS币
50
发表于 2026-1-13 08:19:48 | 显示全部楼层
坐等大佬完善 体脂数据!
回复

使用道具 举报

1

主题

64

回帖

623

积分

高级会员

积分
623
金钱
558
HASS币
0
发表于 2026-1-13 09:56:23 | 显示全部楼层
老哥把代码放出来,我再喂给ai在基础上看看能不能把体脂搞出来
3D打印代打https://m.tb.cn/h.7NA9TT2?tk=eES7UfH4J0S
回复

使用道具 举报

43

主题

527

回帖

3509

积分

论坛元老

积分
3509
金钱
2939
HASS币
10
发表于 2026-1-13 10:26:28 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

26

回帖

1055

积分

金牌会员

积分
1055
金钱
1029
HASS币
0
发表于 2026-1-13 11:05:20 | 显示全部楼层
李凯 发表于 2026-1-13 09:56
老哥把代码放出来,我再喂给ai在基础上看看能不能把体脂搞出来

我这里有个4电极算体脂的:
template:
  - sensor:
      - name: "Real Body Fat"
        unique_id: real_body_fat_percentage
        unit_of_measurement: "%"
        icon: mdi:human
        state: >
          {% set weight = states('sensor.weight') | float(0) %}
          {% set impedance = states('sensor.impedance') | float(0) %}
          
          {# === 请在此处填入你的个人信息 === #}
          {% set height = 175 %}   {# 身高 cm #}
          {% set age = 30 %}       {# 年龄 #}
          {% set sex = 'male' %}   {# 性别: male 或 female #}
          {# =============================== #}

          {% if weight > 10 and impedance > 0 %}
            {# 1. 计算 LBM (瘦体重/去脂体重) - 通用公式 #}
            {# LBM = coefficient * height^2 / impedance + ... #}
            {# 这里使用针对亚洲人体质优化的通用公式 #}
            {% set h2 = height * height %}
            
            {% if sex == 'female' %}
               {% set lbm = (0.252 * h2 / impedance) + (0.473 * weight) + (0.13 * age) - 10.5 %}
            {% else %}
               {% set lbm = (0.252 * h2 / impedance) + (0.473 * weight) + (0.13 * age) - 13.5 %} 
            {% endif %}

            {# 2. 计算体脂率: (总重 - 瘦体重) / 总重 #}
            {% set fat_rate = (1 - (lbm / weight)) * 100 %}
            
            {# 3. 安全限制,防止出现负数或离谱数值 #}
            {% if fat_rate < 5 %}
              5.0
            {% elif fat_rate > 60 %}
              60.0
            {% else %}
              {{ fat_rate | round(1) }}
            {% endif %}
          {% else %}
            0
          {% endif %}

      - name: "BMI"
        unique_id: body_mass_index
        unit_of_measurement: "kg/m²"
        icon: mdi:calculator
        state: >
          {% set weight = states('sensor.weight') | float(0) %}
          {% set height = 175 / 100.0 %} {# 填入你的身高(米) #}
          {% if weight > 0 %}
            {{ (weight / (height * height)) | round(1) }}
          {% else %}
            0
          {% endif %}
回复

使用道具 举报

15

主题

307

回帖

2855

积分

金牌会员

积分
2855
金钱
2528
HASS币
50
发表于 2026-1-13 11:54:58 | 显示全部楼层
老哥把代码放出来吧,我学习学习。
回复

使用道具 举报

16

主题

303

回帖

2729

积分

金牌会员

积分
2729
金钱
2410
HASS币
0
发表于 2026-1-13 16:28:43 | 显示全部楼层
刚送人呀
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2026-2-19 02:10 , Processed in 0.017238 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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