找回密码
 立即注册
查看: 16378|回复: 13

[技术探讨] (已解决)ESPHome是否可以实现类似米家灵动功能呢?

[复制链接]

103

主题

657

回帖

2665

积分

金牌会员

积分
2665
金钱
1905
HASS币
0
发表于 2021-8-11 22:48:05 | 显示全部楼层 |阅读模式
本帖最后由 Clark 于 2021-8-12 16:16 编辑

sonoff basic通断器刷入ESPHome固件后,是否可以实现“反转断电前的状态”功能呢? 这个功能如何配合自回弹开关,是否每次短按开关瞬时断电再恢复通电,就会切换亮灯和灭灯呢。
易微联通断器官方固件,通电反应只有“开启”,“关闭”,“恢复断电前状态”三个选项,所以无法配合类似灵动功能的自回弹开关使用。


https://www.esphome.io/components/light/index.html

restore_mode (Optional): Control how the light attempts to restore state on bootup. For restoring on ESP8266s, also see esp8266_restore_from_flash in the esphome section.

        RESTORE_DEFAULT_OFF (Default) - Attempt to restore state and default to OFF if not possible to restore.

        RESTORE_DEFAULT_ON - Attempt to restore state and default to ON.

        RESTORE_INVERTED_OFF - Attempt to restore state inverted from the previous state and default to OFF.

        RESTORE_INVERTED_ON - Attempt to restore state inverted from the previous state and default to ON.

        ALWAYS_OFF - Always initialize the light as OFF on bootup.

        ALWAYS_ON - Always initialize the light as ON on bootup.



回复

使用道具 举报

105

主题

2849

回帖

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

积分
12158
金钱
9139
HASS币
460

教程狂人突出贡献

发表于 2021-8-11 23:39:33 来自手机 | 显示全部楼层
本帖最后由 XCray 于 2021-8-12 15:19 编辑

你都已经把答案贴出来了呀……配合restore from flash,当然你要不心疼flash芯片,这东西写入次数是有限的,手头备上几个模块或flash芯片并且会焊接更好。
~~~~~~~~~~
补充:赞同10楼朋友的观点,flash芯片的寿命其实足够长了,10万次写入也是一个很普通的指标,完全不用担心。不要被我上面那句话吓到
回复

使用道具 举报

2

主题

388

回帖

2650

积分

金牌会员

积分
2650
金钱
2255
HASS币
30
发表于 2021-8-12 02:06:01 | 显示全部楼层
本帖最后由 fung1006 于 2021-8-12 02:09 编辑

反轉斷電前的狀態用意為何?
回复

使用道具 举报

105

主题

2849

回帖

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

积分
12158
金钱
9139
HASS币
460

教程狂人突出贡献

发表于 2021-8-12 07:41:01 | 显示全部楼层
fung1006 发表于 2021-8-12 02:06
反轉斷電前的狀態用意為何?

这才是“灵动”的意义呀,配合自回弹开关,在不影响既有电路、不走新线的情况下尽可能照顾到原有使用习惯。
回复

使用道具 举报

27

主题

2126

回帖

9105

积分

论坛元老

积分
9105
金钱
6947
HASS币
30

论坛元老

发表于 2021-8-12 10:10:23 | 显示全部楼层
用essphome的automation自动化写吧,断电重启默认switch为on,然后switch turn off的时候,delay 100ms,然后turn on自己的id,

这样既可以避免flash擦写1000次数,也模拟除了所谓灵动的流程
回复

使用道具 举报

103

主题

657

回帖

2665

积分

金牌会员

积分
2665
金钱
1905
HASS币
0
 楼主| 发表于 2021-8-12 11:50:35 来自手机 | 显示全部楼层
情非殇 发表于 2021-8-12 10:10
用essphome的automation自动化写吧,断电重启默认switch为on,然后switch turn off的时候,delay 100ms,然 ...

用essphome的automation自动化写,断电重启默认switch为on,然后switch turn off的时候,delay 100ms,然后turn on自己的id。

switch turn off延迟100毫秒,也就是瞬时按回弹开关,开关状态并不会切换到关闭?
然后turn on自己的id,请问这个怎样理解呢?
回复

使用道具 举报

27

主题

2126

回帖

9105

积分

论坛元老

积分
9105
金钱
6947
HASS币
30

论坛元老

发表于 2021-8-12 11:59:26 | 显示全部楼层
Clark 发表于 2021-8-12 11:50
用essphome的automation自动化写,断电重启默认switch为on,然后switch turn off的时候,delay 100ms,然 ...

自回弹,灵动系列是默认是常通的,你按下去后会断电,松手后会复位通电。

继电器的话就是模拟灵动,默认常通,关闭作为触发条件,只要关闭就延时一丢丢时间,然后执行打开操作。

这不就跟灵动开关是一样的么
回复

使用道具 举报

27

主题

2126

回帖

9105

积分

论坛元老

积分
9105
金钱
6947
HASS币
30

论坛元老

发表于 2021-8-12 12:01:46 | 显示全部楼层
回复

使用道具 举报

103

主题

657

回帖

2665

积分

金牌会员

积分
2665
金钱
1905
HASS币
0
 楼主| 发表于 2021-8-12 13:45:00 来自手机 | 显示全部楼层
情非殇 发表于 2021-8-12 11:59
自回弹,灵动系列是默认是常通的,你按下去后会断电,松手后会复位通电。

继电器的话就是模拟灵动,默认 ...

关闭作为出发条件,通电后应该执行切换操作才对啊。要不然按一下亮灯,再按一下还是亮灯,岂不是回弹开关无法关灯么?
回复

使用道具 举报

105

主题

2849

回帖

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

积分
12158
金钱
9139
HASS币
460

教程狂人突出贡献

发表于 2021-8-12 15:04:19 | 显示全部楼层
ryanh7 发表于 2021-8-12 13:53
自动化是搞不定的,方法还是二楼的方法。flash平均可以擦写10万以上,继电器也差不多这个寿命,加上软件上 ...

正解!

Flash芯片的寿命确实够长的,绝对比继电器长很多。

如果实在担心写入次数,可以借助网络让HA来储存原来的状态,也很容易。

灵动可以实现的关键是必须有地方保存触发之前的状态(也就是一个二进制位)触发后进行反转操作,这个状态要么保存在flash里,要么保存在ha里(当然还可以保存在其他地方比如数据库里),都可以实现想要的效果。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-14 22:45 , Processed in 0.072557 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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