https://github.com/Yonsm/ZhiDash - 智家面板

June 23, 2021 · View on GitHub

Yet Another Dashboard for HomeAssiatant

ZhiDash 是为 Home Assistant 开发操作面板,使用 WebSocket API 作为数据通道,基于非常简单的 HTML+JS+CSS 渲染而成的高效、快速的操控面板。可完美替代 AppDaemonHADashboard

PREVIEW

1. 用法

  • 使用方法非常简单,只要把 dash.htmlcssfonts 放入 ~/.homeassistant/www 目录,然后使用 http://xxx.xxx.xxx:8123/local/dash.html 访问即可。

    • 如果曾经登录过 Home Assistant 并保存过登录会话,访问 /local/dash.html 时会自动使用 HA localStorage.hassTokens 用于 WebSocket 认证;如果没有登录并保存过,则会转到 Home Assistant 登录页并保存登录令牌。
    • 最佳姿势:在 configuration.yaml 中加入以下配置,可以在侧栏中直接访问;或在 WallPanel 中配合使用更佳:
panel_iframe:
  dash:
    title: 面板
    icon: mdi:microsoft
    url: /local/dash.html
  • 指定地址:你也可以把 dash.html 放在任何位置,用浏览器打开后,在使用 dash.html?token=xxxx&api=ws:host:8123 指定要访问的 WS API 地址,其中 token 可以是 HA Legacy Password 或者在 HA 用户管理页面中创建的“长期访问令牌”。

  • 分组排序dash.html 后面可以用#指定一个 group 名称(如 dash.html#group.default_view,依此仅显示此分组的设备,且按这个分组排序(优先依据类型排序,同类型的按分组先后排序);如果不指定则显示所有设备。

  • 移动设备:自适应移动设备,同时在 iOS 中支持 WPA 模式。添加到桌面后使用,看起来非常像个 APP。

  • 设备操作:支持大多数设备的开关操作,支持空调和风扇的操作模式和温度设置。

2. 个性化配置

可以在 customize.yaml 中对特定的设备进行个性化定制,目前支持以下配置:

key用途不配置/默认情况备注
dash_name名称使用 attributes.friendly_name支持 template 模式
dash_icon图标传感器显示 state;空调显示当前温度;其它使用 attributes.icon支持 template 模式,支持文字(如引用一个传感器属性)
dash_extra扩展信息空调和风扇显示操作模式和设定温度,其它无支持 template 模式
dash_extra_forced强制显示扩展信息off 状态下不显示扩展信息
dash_hidden不显示hidden 也不显示
dash_click点击时的动作传感器无动作,其它执行开关操作支持 http 链接或 JavaScript
dash_relation驱动关联设备用于更新另外一个引用当前状态/属性的设备

关于 template 模式:支持以下几种示例:

  • 直接输入文字如,如 我的设备
  • 插入 state 宏,如 状态 ${sate}
  • 插入 attributes 宏,如 温度 ${temperature}℃
  • 插入其它设备的 state 宏,如 气温 ${sensor.zhicai_temperature}℃
  • 插入其它设备的 attributes 宏,如 气温 ${sensor.zhicai_weather.temperature}℃
  • 使用 JavaScript eval 运算,如eval:"${status}"=="Charging" ? "充电中" : "${status}"

更多个性化配置案例可以在我的 customize.yaml 中搜索 dash,以上几种用法基本上都能找到案例。

3. 参考