HADashboard

HADashboard 是为 Home Assistant 所生的仪表盘生成工具,比起 HA 原生的操作界面,挂墙及远视效果更好。

安装及配置

Appdeamon

HADashboard 是 AppDaemon 的子项目,因此安装使用 HADashboard 前必须先安装配置 AppDaemon。

  • 通用安装:sudo pip3 install appdaemon
  • Hass.io:直接安装 Appdaemon Add-on
  • Docker:
docker run --rm -it -p 5050:5050 \
  -e HA_URL="<your HA_URL value>" \
  -e HA_KEY="<your HA_KEY value>" \
  -e DASH_URL="http://$HOSTNAME:5050" \
  acockburn/appdaemon:latest

当你已经安装并运行 AppDaemon 后,Dashboard 的配置就变得十分简单。

你只需在 AppDaemon 的配置文件中增加 dash_url 的所指路径。

同时,你也可以通过配置 dash_dir指向 HADashboard 所在的文件夹。该配置须位于 HADashboard: 项下。

  • dash_url - 你希望 dashboard 服务运行监听的地址

例如:

AppDaemon:
  ha_url: <some_url>
  ...
HADashboard:
  dash_url: http://192.168.1.20:5050

注意目前仅支持 http。

默认情况下,HADashboard 只会加载 dashboards 文件夹下的配置。你也可以通过配置 dash_dir 更改默认文件夹。

例如:

HADashboard:
dash_dir: /etc/appdaemon/dashboards

接下来,你需要在你所选定的文件夹下创建配置文件。

初次安装后,可创建下列测试文件。在默认文件夹下创建名为 Hello.dash 的文件,之后复制粘体如下代码:

#
# Main arguments, all optional
#
title: Hello Panel
widget_dimensions: [120, 120]
widget_margins: [5, 5]
columns: 8

label:
    widget_type: label
    text: Hello World

layout:
    - label(2x2)

设置完成后请重启 Appdaemon,打开网页,输入你设定的 url 地址http://192.168.1.20:5050 你将会看到一个欢迎界面。

你可以通过http://192.168.1.20:5050/<Dashboard Name>直接跳转至需要的 Dashboard。

如果你不想在 AppDaemon 使用 Apps 功能,你可以通过以下设置关闭:

AppDaemon:
  disable_apps: 1

这将为 CPU 和内存节省出一定空间。

HADashboard 默认为用户创建的 Dashboard 预加载所有适配环境,它将延迟响应用户所做的所有配置修改。如果想要禁用此项,请按如下方法修改配置文件:

HADashboard:
dash_force_compile: 1

这将让 dashboard 每次加载时强制响应修改。你也可以通过在 url 地址末尾添加 recompile=1 实现相同效果。

Dashborad 的日志及错误日志默认存储在 AppDaemon 的日志所在文件夹,你也可以通过下列设置改变默认路径:

HADashboard:
accessfile: /var/log/dash_access

强制 dashborad 加载所有面板的最新配置,请使用:

HADashboard:
dash_compile_on_start: 1

当升级软件后,这项操作能发挥不少作用。

Dashboard 变量

Dashboard 的 URL 支持一些额外变量:

  • skin - 皮肤,默认为 default
  • recompile - 设为任意值以强制 Dashboard 加载最新配置

比如,让 Dashboard 使用 obsidian 皮肤,我们可以在地址栏输入:

http://<ip 地址>:<端口>/Main?skin=obsidian

Dashboard 设置

Dashboard 设置既简单又强大。Dashboards 既可以统一在一个文件内配置,亦可分成多个文件进行模块化设置。Dashboards 的设置文件为 YAML 格式。

我们从简单的单文件设置开始讲起。在dashboards文件夹中创建一个以 .dash 结尾的文件,使用你偏好的编译器打开。

主体设置

顶层 dashboard 设置文件一般含有部分初始设定,当然它们都是可选的。 例如:

#
# Main arguments, all optional
#
title: Main Panel
widget_dimensions: [120, 120]
widget_size: [1, 1]
widget_margins: [5, 5]
columns: 8
global_parameters:
    use_comma: 0
    precision: 1
    use_hass_icon: 1

变量说明:

  • title - 页面标题,默认为 HADashboard
  • widget_dimensions - 块的高度和宽度的默认像素单位。请注意在这里绝对大小并不十分重要,因为大部分浏览器均采用响应式设计,会根据设备自动缩放页面。因此重要的应该是比例。默认值为 [120, 120] (width, height)。默认大小适合在普通 iPad 上显示。
  • widget_size - the number of grid blocks each widget will be by default if not specified
  • widget_margins - 每个块之间的间隔。
  • rows - 总行数。最大值为 15 。
  • columns - 总列数。
  • global_parameters - 全局变量。应用于所有块的设置,可以被单独的块的设置所覆盖。

再简单的 dashboard 也需要设置布局。请使用 layout 进行相关配置:

layout:
    - light.hall, light.living_room, input_boolean.heating
    - media_player(2x1), sensor.temperature

如你所见,在这里我们直接引用了 Home Assistant 中的 entities ID。HADashboard 可以直接抓取 HA 中的设备 ID 和昵称,你也可以把它们直接用于配置中。对于 clock(时钟)weather(天气) 块,因为 HA 中没有对应的 entity ,你只需直接使用 clock.clockweather.weather