首页 › 用户指南 › Home Assistant 仪表盘
Home Assistant · 分步教程

大约一小时,构建 Home Assistant 投影机仪表盘

同步时,应用已经会为您构建一个可用的仪表盘;本页面介绍的是豪华的手工打造版本。共十个步骤,附带每张卡片的 YAML,以及可以一次性粘贴的完整视图。绿色玻璃图块、实时画面读数、您的场景和激光使用时间图表,全部来自同一个投影机传感器。只需修改两个字符串,它就属于您了。

同步可免费生成一个4 张 HACS 卡片打造外观信息图块即时生效粘贴一次后按钮可用
Home Assistant 中完成的 Projector Pilot 仪表盘:电源和信号源、色彩模式、完整的画面菜单、HDR 与信号、RGB 校准、镜头与几何校正、带激光使用时间图表的维护,以及场景,全部是绿色玻璃图块
您要构建的成品。可滚动查看,或点击放大。
只想要一个能用的面板?您已经有了。在应用中轻点与 HA 同步,它就会在您的 Home Assistant 侧边栏中为您构建一个现成的 Projector Pilot 仪表盘,包含所有控件和实时传感器,无需卡片,无需 YAML,也无需粘贴。详见同步为您构建仪表盘。本页面适用于手动打造更丰富的绿色玻璃风格版本,或自定义同步生成的内容。
赶时间,想要自定义外观?直接跳到第 10 步,下载完整视图,修改两个字符串和三个场景 ID,然后粘贴即可。中间的步骤会解释每个部分的作用,方便您自行修改。

开始之前

这个仪表盘有两个数据来源,下面每一步都要区分清楚。

来源提供
投影机传感器 sensor.YOUR_PROJECTOR所有读数。电源、信号源、色彩模式、全部画面数值、HDR 与信号、镜头与几何校正、灯泡使用时长。登录并同步后立即生效,无需复制代码块。
应用同步的脚本 script.projpilot_YOURSERIAL_...所有控件。电源、信号源、色彩模式、镜头记忆以及您的场景。只有粘贴了复制代码块、重启了 Home Assistant 并轻点了“与 HA 同步”之后,它们才会存在。
第 1 步

从 HACS 安装四张卡片

这四个都在 HACS 默认商店中。在 Home Assistant 中:HACS › 前端 › 探索 & 下载存储库,搜索名称,点击下载,然后刷新浏览器。

搜索用途如果跳过
Mushroom所有信息图块、控制按钮和场景图块改用普通的 button 卡片。能用,只是外观更方正。
button-card顶部主视觉及其实时标签使用 entity 卡片,或使用细节较少的 Mushroom 模板卡片。
card-mod绿色玻璃背景、边框和渐变所有功能照常工作,只是少了发光效果。
mini-graph-card“维护”下的激光使用时间历史记录改用内置的 history-graph 卡片。
它们都不是必需的。下面的每个控件都可以用原生 Home Assistant 按钮卡片指向同一个脚本来运行。自定义卡片带来的是绿色玻璃外观,而不是底层功能。
第 2 步

查找您的实体 ID 和序列号

本页的每段代码都用到两个占位符。先把你的找出来,剩下的就是复制粘贴。

在完成第 1 步的复制代码块和同步之后,您还可以在“开发者工具” › “状态”中筛选 projpilot,一次看到整个同步控件列表。

还没有脚本列表?在粘贴复制代码块之前,这是正常的。传感器依然存在并持续更新;只有成功运行“与 HA 同步”之后,脚本才会出现。
第 3 步

创建视图

  1. 进入“设置” › “仪表盘” › “添加仪表盘” › “从头开始新建仪表盘”,将其命名为 Projector Pilot。
  2. 打开它,然后点击右上角的铅笔图标进行编辑。
  3. 添加一个视图。两种布局都可以;真实面板使用的是默认的卡片堆叠,一张接一张向下排列,这种方式最容易粘贴。
  4. 要粘贴 YAML,请使用卡片上的三点菜单并选择在 YAML 中编辑,或者使用仪表盘上的三点菜单选择原始配置编辑器,一次性粘贴整个视图。

如果您想自己输入,视图本身的设置如下:

title: Projector Pilot
views:
- title: Projector Pilot
  path: projector-pilot
  icon: mdi:projector
  cards: []
第 4 步

添加实时信息图块

先从一个只读取数据的开始,这样在发送任何命令之前,您就能确认实体 ID 是否正确。只要投影机传感器存在,这个图块就是实时的,无需复制代码块,也无需同步。添加卡片,选择在 YAML 中编辑,然后粘贴:

type: custom:mushroom-template-card
primary: Brightness
secondary: '{{ state_attr(''sensor.YOUR_PROJECTOR'',''brightness'') }}'
icon: mdi:brightness-6
icon_color: green
layout: vertical
fill_container: true
card_mod:
  style: 'ha-card { background: rgba(18,26,20,0.60); border: 1px solid rgba(61,220,107,0.20);
    border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32); backdrop-filter: blur(8px);
    min-height: 104px; }'

同样的写法可以读取传感器携带的 ~80 个属性中的任意一个:把 brightness 换成 contrast、gamma、color_temp、hdr_pq、lamp_hours,或任何您想放到图块上的属性。

保存。如果出现了真实的数字或文字,说明您的实体 ID 正确,下面的所有内容都能正常工作。如果显示空白,请返回第 2 步。

第 5 步

添加绿色分区标题

单纯的标题只是空白占位。这是一张 markdown 卡片,带有 card-mod 提供的渐变背景,正是它把一堆图块变成了有名称的分区。面板上的每个分区都以这样的一张卡片开头,只是标签和表情符号不同。

type: markdown
content: '🔌    **POWER & SOURCE**'
card_mod:
  style: 'ha-card { background: linear-gradient(135deg, rgba(61,220,107,0.30), rgba(16,120,60,0.30));
    border: 1px solid rgba(61,220,107,0.45); border-radius: 14px; box-shadow: 0 6px 20px rgba(0,0,0,0.3); }
    ha-markdown { padding: 12px 20px !important; } ha-markdown p { margin: 0 !important;
    letter-spacing: 3px; color: #eafff0; font-size: 14px; font-weight: 700; }'

修改表情符号代码和标签文字即可;每个分区的 card-mod 代码块都完全相同。

第 6 步

添加控制按钮

这个按钮会发送命令,而不只是读取数值,所以脚本必须先存在。它调用 script.projpilot_YOURSERIAL_power_on,而应用只有在您把复制代码块粘贴到 configuration.yaml、重启 Home Assistant 并轻点与 HA 同步之后,才会写入这个脚本。

type: custom:mushroom-template-card
primary: Power On
icon: mdi:power
icon_color: green
layout: vertical
fill_container: true
tap_action:
  action: call-service
  service: script.projpilot_YOURSERIAL_power_on
card_mod:
  style: 'ha-card { background: linear-gradient(135deg, rgba(61,220,107,0.16), rgba(16,90,46,0.20));
    border: 1px solid rgba(61,220,107,0.34); border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32);
    min-height: 92px; }'

关机、画面遮蔽、HDMI 1、HDMI 2、A/V 静音、某个色彩模式或某个镜头记忆,都使用同一张卡片:只需修改标签、图标和 service。

如果看起来没问题,但点击后没有任何反应,说明要么复制代码块没有粘贴,要么粘贴后没有重启 Home Assistant。在断定仪表盘有问题之前,请先在应用中运行测试连接,它正好会检查这一点。
第 7 步

添加顶部主视觉

面板顶部的主视觉是一个 button-card:醒目的电源状态、综合多个属性生成的单行摘要,以及作用于整张卡片而不仅仅是边框的绿色玻璃效果。

type: custom:button-card
entity: sensor.YOUR_PROJECTOR
name: Epson QB1000
show_state: true
show_label: true
size: 48px
state_display: '[[[ return entity.state==''on'' ? ''Powered on'' : ''Standby''; ]]]'
label: '[[[ var a=entity.attributes; return (a.input||''-'')+''  •  ''+(a.color_mode||''-'')+
  ''  •  ''+(a.video_range||''-'')+''  •  ''+(a.lamp_hours||0)+''  h''; ]]]'
styles:
  card:
  - height: 176px
  - background: linear-gradient(135deg, rgba(61,220,107,0.32), rgba(11,64,34,0.6))
  - border: 1px solid rgba(61,220,107,0.5)
  - border-radius: 22px
  - box-shadow: 0 12px 36px rgba(0,0,0,0.42)
  - padding: 20px
  state:
  - color: '[[[ return entity.state==''on'' ? ''#3ddc6b'' : ''#8a9'' ]]]'

这里只保留了每次安装会变化的部分。完整的卡片还会设置图标、名称和标签的网格位置,完整内容请参阅第 10 步中的下载文件。

更喜欢更纤薄的横条?mushroom-chips-card 用一行小标签就能完成同样的工作:电源状态、信号源、色彩模式、视频范围和灯泡使用时长,每个都是读取 state_attr('sensor.YOUR_PROJECTOR', ...) 的模板。面板顶部二选一,不要同时使用。

第 8 步

添加你的场景

您在应用中保存的每个场景,在同步后都会成为一个名为 script.projpilot_YOURSERIAL_scene_<id> 的脚本,而场景图块就是第 6 步中的同一张控制按钮卡片,换上场景名称和图标即可。

type: custom:mushroom-template-card
primary: Movie Night
icon: mdi:movie-open
icon_color: green
layout: vertical
fill_container: true
tap_action:
  action: call-service
  service: script.projpilot_YOURSERIAL_scene_YOURSCENE1
card_mod:
  style: 'ha-card { background: linear-gradient(135deg, rgba(61,220,107,0.16), rgba(16,90,46,0.20));
    border: 1px solid rgba(61,220,107,0.34); border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32);
    min-height: 92px; }'

把 YOURSCENE1 替换为应用同步控件列表中该场景显示的 ID。每个场景一个图块,放在 horizontal-stack 中。

第 9 步

添加激光使用时间历史记录

投影机传感器和其他传感器一样会被 Home Assistant 记录,所以 lamp_hours 天然带有历史数据。无需额外传感器,无需辅助实体,也无需预先配置,放在“维护”分区下即可。

type: custom:mini-graph-card
entities:
- entity: sensor.YOUR_PROJECTOR
  attribute: lamp_hours
  name: Laser hours
name: Laser hours
icon: mdi:lightbulb-on-outline
line_color: '#3ddc6b'
line_width: 4
hours_to_show: 336
points_per_hour: 0.5
height: 96
animate: true
card_mod:
  style: 'ha-card { background: rgba(18,26,20,0.60); border: 1px solid rgba(61,220,107,0.20);
    border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32); backdrop-filter: blur(8px); }'

336 小时即两周。激光和灯泡使用时长是稳步增长的,不会忽高忽低,所以两周的窗口通常足以看出趋势,同时图表又不会显得过于平坦。

第 10 步

或者直接拿走全部

完整视图包含本页顶部截图中的所有分区和所有卡片,其中用占位符代替了实体 ID。

  1. 下载视图 YAML。
  2. 用任意文本编辑器打开它,并替换所有出现之处:把 YOUR_PROJECTOR 替换为第 2 步中得到的投影机传感器实体 ID,把 YOURSERIAL 替换为第 2 步中得到的由序列号派生的 ID。
  3. 在靠近底部的“场景”分区中,把 YOURSCENE1、YOURSCENE2 和 YOURSCENE3 替换为您自己的三个场景 ID,或者根据您实际拥有的场景数量添加或删除图块。
  4. 在 Home Assistant 中,打开您的仪表盘,点击铅笔图标和三点菜单,选择原始配置编辑器,然后将其作为视图粘贴进去。
您的场景名称和数量不会与示例一致。该文件自带三个示例场景:观影之夜、游戏、体育日。请重命名这些图块,指向您自己的场景 ID,并根据您实际保存的场景数量增删图块,使该分区与之匹配。
粘贴后信息图块立即生效。它们只需要传感器存在。控制和场景按钮则需要先把复制代码块粘贴到 configuration.yaml、重启 Home Assistant 并轻点“与 HA 同步”,否则不会有反应。

故障排除

某个图块显示未知

请对照传感器实际携带的属性名称进行检查:打开“开发者工具” › “状态”,找到您的 sensor.YOUR_PROJECTOR 实体并查看其属性列表。像 HDR PQ 或 HDR HLG 这类读数,只有在投影机正在接收对应类型的信号时才会有值,所以这两项显示未知可能是正常的,而不是出了故障。如果整个传感器的数据都很少,请唤醒投影机:待机中的设备发布的信息非常少。

某个按钮没有反应

您可能还没有粘贴复制代码块,或者粘贴之后没有重启 Home Assistant。控制和场景按钮调用的是应用写入的脚本,而这些脚本只有在应用的设置 › 家庭自动化 › Home Assistant中,复制代码块已粘贴到 configuration.yaml、Home Assistant 已重启一次,并且轻点了与 HA 同步之后才会存在。请先在应用中运行测试连接,它会告诉您代码块是否存在,免得您去排查并不存在的仪表盘错误。

“开发者工具” › “状态”中缺少我预期的脚本

请筛选 projpilot,而不是完整序列号,这样更容易看到整个列表。如果您最近添加的控件或场景缺失,请再次轻点与 HA 同步;它会就地更新,无需重新设置。如果删除场景后,列表里残留着失效的旧脚本,请使用应用中的移除孤立脚本。

我的实体 ID 和本指南中的不一样

命名规律是固定的,但中间部分不是。您的传感器以您自己投影机的型号命名,每个脚本都带有您自己投影机的序列号,而不是本页面上的占位符。请像第 2 步那样,从“开发者工具” › “状态”和应用的 Home Assistant 界面获取这两项,并使用它们,而不是照抄示例文本。

整台投影机,一面墙搞定

家庭自动化是一次性购买的附加组件。无需订阅,无需账号,无需云端。一次购买,即可在您拥有的所有平台上解锁。

Google Play - 现已上架 App Store - 等待审核 Microsoft Store - 等待审核 Mac App Store - 等待审核

返回家庭自动化 → · 完整用户指南 →

常见问题

快速解答

我必须手动搭建这个仪表盘吗?

不需要。当您在应用中轻点“与 HA 同步”时,它会直接在 Home Assistant 中为您构建一个现成的 Projector Pilot 仪表盘:包含实时的投影机传感器,以及每个控件和场景对应的按钮,并以 Projector Pilot 的名称出现在侧边栏中。本页面适用于手动打造更丰富的绿色玻璃风格版本,或自定义同步创建的内容。

搭建它需要 HACS 的自定义卡片吗?

要还原截图中的外观,需要安装:Mushroom、button-card、card-mod 和 mini-graph-card。不过底层控制功能并不依赖它们:每个按钮都只是一次普通的脚本调用,自定义卡片只是外层的样式。

为什么信息图块有数值,按钮却没反应?

您在应用中登录并同步后,投影机传感器就会立即发布读数,所以信息图块马上就有实时数据。而控制和场景按钮调用的脚本,需要您把应用的复制代码块粘贴到 configuration.yaml、重启 Home Assistant,并轻点一次“与 HA 同步”之后,才会存在于 Home Assistant 中。

我的实体 ID 会和本指南中的一致吗?

命名规律是一样的,但具体字符不会一样。您的投影机传感器以投影机的型号命名,每个脚本则以投影机的序列号命名。本页面凡是写着 YOUR_PROJECTOR 的地方,请填入您自己传感器的实体 ID;凡是写着 YOURSERIAL 的地方,请填入应用 Home Assistant 界面上显示的、由序列号派生的 ID。