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

 找回密码
 立即注册
查看: 3238|回复: 5

[技术探讨] esphome怎样显示home assistant内开关状态ON/OFF 在液晶屏显示出来

[复制链接]

54

主题

317

帖子

1371

积分

金牌会员

Rank: 6Rank: 6

积分
1371
金钱
1054
HASS币
0
发表于 2022-1-11 02:49:00 | 显示全部楼层 |阅读模式
请问怎样修改以下代码能显示home assistant内开关的ON/OFF状态?

天气=多天,下雨,晴…… 能显示吗?

日期=  星期一 ~ 星期日  怎样修改?

多页显示不同的内容。

以下代码只能显示数字变化,不知怎样显示on/off  和天气状态。

display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x64"
    address: 0x3C
    id: my_display
    pages:
      - id: page1 #第一页(显示余额)
        lambda: |-
          it.printf(64, 0, id(font1), TextAlign::TOP_CENTER, "信息");
          if (id(dianfei).has_state()) {
            it.printf(0, 20, id(font1), TextAlign::TOP_LEFT, "电费余额: %.1f", id(dianfei).state);
          }
          if (id(zk).has_state()) {
            it.printf(0, 60, id(font1), TextAlign::BASELINE_LEFT, "水卡余额: %.2f", id(zk).state);
          }
         
         
      - id: page2 #第二页(显示温湿度)
        lambda: |-
          it.printf(64, 0, id(font1), TextAlign::TOP_CENTER, "信息");
          if (id(wendu).has_state()) {
            it.printf(0, 20, id(font1), TextAlign::TOP_LEFT, "室内温度: %.0f°C", id(wendu).state);
          }
          if (id(shidu).has_state()) {
            it.printf(0, 60, id(font1), TextAlign::BASELINE_LEFT, "室内湿度: %.0f%%", id(shidu).state);
          }
         
         
      - id: page3 #第三页(显示时间)
        lambda: |-
          it.printf(64, 0, id(font1), TextAlign::TOP_CENTER, "时间");
          it.strftime(64, 15, id(font2), TextAlign::CENTER_HORIZONTAL, "%H:%M", id(time1).now());
回复

使用道具 举报

8

主题

736

帖子

4574

积分

论坛元老

Rank: 8Rank: 8

积分
4574
金钱
3833
HASS币
40
QQ
发表于 2022-1-11 16:46:40 | 显示全部楼层
回复

使用道具 举报

54

主题

317

帖子

1371

积分

金牌会员

Rank: 6Rank: 6

积分
1371
金钱
1054
HASS币
0
 楼主| 发表于 2022-1-11 19:14:38 来自手机 | 显示全部楼层
Aiden1 发表于 2022-1-11 16:46
https://bbs.hassbian.com/thread-8505-1-1.html

他的代码就是只能显示数字变化,没有on/off状态显示。也没日期和天气。
回复

使用道具 举报

8

主题

736

帖子

4574

积分

论坛元老

Rank: 8Rank: 8

积分
4574
金钱
3833
HASS币
40
QQ
发表于 2022-1-13 20:12:53 | 显示全部楼层
tiani 发表于 2022-1-11 19:14
他的代码就是只能显示数字变化,没有on/off状态显示。也没日期和天气。

https://esphome.io/components/binary_sensor/homeassistant.html
可以导入实体状态属性
回复

使用道具 举报

77

主题

1391

帖子

2万

积分

元老级技术达人

积分
24360
金钱
22929
HASS币
290
发表于 2022-1-13 20:39:26 | 显示全部楼层
本帖最后由 dscao 于 2022-1-13 20:51 编辑
tiani 发表于 2022-1-11 19:14
他的代码就是只能显示数字变化,没有on/off状态显示。也没日期和天气。
- id: page4 #第四页(显示显示器状态)
        lambda: |-
         it.printf(64, 0, id(font1), TextAlign::TOP_CENTER, "显示器状态");
         if (id(statetest).has_state()) {
            it.printf(64, 30, id(font3), TextAlign::CENTER_HORIZONTAL, "%s", id(statetest).state.c_str());
          }
            it.rectangle(15, 29, 97, 35);  #画矩形

text_sensor:
    #从使用的HA实例中导入文本传感器
  - platform: homeassistant
    id: statetest
    entity_id: sensor.xiyiji_state
    internal: true
    on_value: #自动化,当有新的新值时触发时显示第四页
      then:
        - display.page.show: page4 #显示指定页
1.jpg

2.gif

状态是“on”, 这里就显示 “on”;状态值是“开机”,这里就显示“开机”

2楼链接中的这个就是显示文字的示例,天气、日期、开关都处理成文本的,用这种 %s 格式就可以。
回复

使用道具 举报

54

主题

317

帖子

1371

积分

金牌会员

Rank: 6Rank: 6

积分
1371
金钱
1054
HASS币
0
 楼主| 发表于 2022-1-14 15:46:27 来自手机 | 显示全部楼层
dscao 发表于 2022-1-13 20:39
状态是“on”, 这里就显示 “on”;状态值是“开机”,这里就显示“开机”

2楼链接中的这个就是显 ...

谢谢,可以了。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-28 02:33 , Processed in 0.080532 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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