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

 找回密码
 立即注册
查看: 422|回复: 3

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

[复制链接]

5

主题

48

帖子

522

积分

高级会员

Rank: 4

积分
522
金钱
474
HASS币
0
发表于 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倍速视频



回复

使用道具 举报

146

主题

2267

帖子

7002

积分

元老级技术达人

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

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

使用道具 举报

5

主题

48

帖子

522

积分

高级会员

Rank: 4

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

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

使用道具 举报

1

主题

29

帖子

255

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 23:16 , Processed in 0.166553 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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