这是我个人的 Home Assistant 配置和扩展插件库,请酌情参考。
一、dash.html 操作面板
dash.html 是为 Home Assistant 开发操作面板,使用 HA WebSocket API 作为数据通道,基于非常简单的 HTML+JS+CSS 渲染而成的高效、快速的操控面板。可完美替代 AppDaemon 的 HADashboard。
-
使用方法非常简单,只要把 dash.html 放入 www 目录,然后使用
https://xxx.xxx.xxx:8123/local/dash.html
访问即可。- 如果曾经登录过 Home Assistant 并保存过登录会话,访问 /local/dash.html 时会自动复用 HA localStorage accessToken 用于 WebSocket 认证。如果没有会提示转到 Home Assistant 主页登录,请选择保存本次登录才会记录 accessToken。
- 最佳姿势:在 configuration.yaml 中加入以下配置,可以在侧栏中直接访问(在 WallPanel 中配合使用更佳):
panel_iframe:
dash:
title: 面板
icon: mdi:microsoft
url: /local/dash.html
-
指定地址:你也可以把 dash.html 放在任何位置,用浏览器打开后,在使用
dash.html?password@ws:host:8123
指定要访问的 WS API 地址,其中 password 可以是 HA Legacy Password 或者永久有效的 accessToken(在 HA 用户管理页面中创建“长期访问令牌”)。 -
分组排序:dash.html 后面可以用
#
指定一个 group 名称(如dash.html#group.dash
,依此仅显示此分组的设备,且按这个分组排序(优先依据类型排序,同类型的按分组先后排序)。如果不指定,默认情况下使用group.default_view
分组;如果不想使用分组,可以使用dash.html#NA
来显示所有设备(如果你的 HA 中未使用分组功能,即 group.default_view 不存在,也会 fallback 到显示所有设备)。 -
移动设备:自适应移动设备,同时在 iOS 中支持 WPA 模式(添加到桌面后使用,看起来非常像个 APP)。
-
设备操作:支持大多数设备的开关操作,支持空调和风扇的操作模式和温度设置。
可以在 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 |
关于 template 模式
:支持以下几种示例:
- 直接输入文字如,如
我的设备
- 插入 state 宏,如
状态 ${sate}
- 插入 attributes 宏,如
温度 ${temperature}℃
- 插入其它设备的 state 宏,如
气温 ${sensor.caiyun_temperature}℃
- 插入其它设备的 attributes 宏,如
气温 ${sensor.caiyun_weather.temperature}℃
- 使用 JavaScript eval 运算,如
eval:"${status}"=="Charging" ? "充电中" : "${status}"
更多个性化配置案例可以在我的 customize.yaml 中搜索 dash
,以上几种用法基本上都能找到案例。
二、custom_components 插件
通用 ModBus 空调插件,详情请参考 https://yonsm.github.io/modbus
SasWell 温控面板插件(地暖),详情请参考 https://yonsm.github.io/saswell
基于 broadlink 万能遥控器的窗帘插件(支持 RF),详情请参考 https://bbs.hassbian.com/thread-1924-1-1.html
这个并非我原创,我只是使用者
,我的修改点:
- 依赖库升级到
broadlink==0.9.0
,解决 N1 armbian HA 0.8x 下面 segment fault 的问题; self._travel == 0
改成self._travel <= 0
避免相关 BUG。
彩云天气插件,详情请参考https://yonsm.github.io/caiyun
基于斐讯在线云数据实现的斐讯悟空空间检测仪 M1 插件,详情请参考 https://yonsm.github.io/phicomm
基于 DNS 拦截实现的斐讯悟空空间检测仪 M1 插件,详情请参考网友发的帖子 https://bbs.hassbian.com/thread-4601-1-1.html
基于 mqtt swicth 扩展的 MQTT 开关,支持以下功能:
- 支持 icon_template 配置,可以使用 Jinja 脚本运算出不同的图标(参考我的 configuration.yaml 中的 mqtt2 Speaker);
- 支持 original_state attribute。
解决 broadlink SP3 Mini 在 Python 3.5.3 环境中 int 类型判断的问题(否则一堆错误日志)。目前暂未使用,待优化(建议升级到 Python 3.6/3.7 或可以避免相关问题)。
7. aligenie.py
几乎零配置,一键接入 Home Assistant 的大部分设备到天猫精灵,可以语音控制相关设备开关。详情请参考 https://bbs.hassbian.com/thread-2700-1-1.html
但上述文章是老的实现方式,不适用于此插件。此插件使用姿势更妙,无需第三方服务器,直接使用 Home Assistant 作为服务器和 OAuth,链路更高效。具体可参考网友的帖子 https://bbs.hassbian.com/thread-4758-1-1.html
8.miai.py
类似 aligenie.py,一键接入 Home Assistant 的大部分设备到小爱同学。但小爱同学的智能设备使用控制方式没有天猫精灵好,需要唤醒词语。
详情请参考 https://bbs.hassbian.com/thread-4680-1-1.html
小爱同学 TTS 播报插件,可以参考 automation.yaml 中大量使用到相关功能;还可以 在HomeAssistant中输入文本,让小爱音TTS箱朗读出来;我并非原创者,源自 https://bbs.hassbian.com/thread-3669-1-1.html
这是我的 Home Assistant 配置文件。
这是我的 Home Assistant 自动化文件,其中有些脚本可以参考,如只用 Motion Sensor 解决洗手间自动开关灯的难题。
3. groups.yaml
这是我的 Home Assistant 分组文件。
这是我的 Home Assistant 个性化配置文件,主要是中文名称和部分插件的个性化扩展配置。
5. scripts.yaml
这是我的 Home Assistant 脚本文件,主要是开关投影仪的批量处理脚本。
四、extra 其它
1. setup.sh
树莓派和斐讯 N1 armbian 下安装 Home Assistant 的脚本,仅供参考,请按需逐步执行,不要整个脚本直接运行。
2. 其它
主要是一些过期的或者不用的文件,仅供备忘参考。