在做一个遥控器,实现对接入ha设备的间接控制,和对esphome设备的直接控制,(没有红外和射频需求)有屏幕进行交互。
目前已经实现了屏幕显示被控制设备状态(灯的亮度,风速,空调温度),并在显示时进行对应的控制。
现在的交互方式是通过按键来实现上下页切换。
现在想实这样一个逻辑:
在page1-page10:通过旋转编码器进行页面切换。(查看信息,对只有开关状态的设备进行快速控制(按下编码器即可开关,已实现),选择可调光/调速/调温的设备(按下编码器进入控制,双击返回选择,已实现))
在Page11-pageX:旋转不切换页面,只对显示的设备进行控制。
研究了两个晚上,也没实现这个逻辑。
希望有精通esphome和lambda的大佬给个提示。。。贴下最后一个版本的代码,也试过把正在显示的页面写入变量,再来判断。。。都会出现跳到不需要切换的page。比如下面代码的page11,
on_clockwise: #编码器顺时针转的操作
then:
#切换页面
- if:
condition:
- or:
display.is_displaying_page: page11
- or:
display.is_displaying_page: page12
- or:
display.is_displaying_page: page15
then:
else:
display.page.show_next: my_display
|