找回密码
 立即注册
搜索
查看: 1068|回复: 3

[经验分享] 曲线解决Esphome_8266芯片EEPROM不够用的办法

[复制链接]

7

主题

63

回帖

787

积分

高级会员

积分
787
金钱
712
HASS币
20
发表于 2024-9-11 16:44:15 | 显示全部楼层 |阅读模式
本帖最后由 poiuy105 于 2024-9-11 17:36 编辑

esphome固件中,使用物美价廉的esp8266芯片时,就只有可怜96字节的eeprom可以使用。

eeprom的作用是为了断电数据保存,为了解决断电保存【大量数据时】,就可以转换思路,使用homeassistant自动化。

上效果:

上面视频,展示了是否启用自动化,esp8266重启或者断电后的自动恢复断之前数据。

原理分享:
【1】esphome代码里面做文章
①增加text,可以在ha内自定义编辑
②增加一个小灯,小灯上电循环循环开关,告知用户状态异常,也是自动化的触发条件
③esphome里面的automation,判定text是否为initial_value,决定小灯是否持续循环开关
esphome:
  name: 8266-zone-lu
  friendly_name: 8266-zone-lu
  on_boot: 
    - lambda: !lambda |-
    - while:
        condition:
          lambda: 'return id(text).state == "90000000000000009";'
        then:
        - light.toggle: Board_Led
        - delay: 1s


【2】homeassistant自动化做文章
①小灯开关作为触发条件
②text赋值成需要的值,5倍速视频



回复

使用道具 举报

176

主题

2641

回帖

8867

积分

元老级技术达人

积分
8867
金钱
6040
HASS币
50
发表于 2024-9-11 17:23:56 | 显示全部楼层
esp8266本身就支持断电保存的,我的电表就可以,用全局变量globals:,然后用# 闪存写入间隔
preferences:
  flash_write_interval: 20min

这个是20分钟写入一次闪存,基本上够了,就是好像闪存有写入次数的,不知道寿命是多少次
回复

使用道具 举报

7

主题

63

回帖

787

积分

高级会员

积分
787
金钱
712
HASS币
20
 楼主| 发表于 2024-9-11 17:35:16 | 显示全部楼层
bugensui 发表于 2024-9-11 17:23
esp8266本身就支持断电保存的,我的电表就可以,用全局变量globals:,然后用# 闪存写入间隔
preferences:
  ...

感谢指导,是我保存的字节数过多,8266就不够用了。
回复

使用道具 举报

1

主题

28

回帖

285

积分

中级会员

积分
285
金钱
256
HASS币
0
发表于 2024-9-14 21:30:45 | 显示全部楼层
用littlefs保存, 容量最大好像是3M, 我一般分1M就足够了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-22 10:54 , Processed in 0.203293 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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