SilverWolf 发表于 2022-10-11 02:20:51

基于个人理解的新手向HA入门教程4 (HKI篇)

本帖最后由 SilverWolf 于 2022-10-11 02:19 编辑

Homekit infused 5(HKI)
目录:
灰色部分还在整理尽请期待
1.   集成与接入
2.   HomeKit
3.   动手搭建属于自己的Home Assistant界面
4. 关于homekit-infused 玩法5.   HA自动化
什么是HKIHomekit infused是一个适用于HA的lovelace仪表盘套装。由Github作者jimz011开发。简单来说,通过使用HKI你可以快速搭建一个Homekit风格的仪表盘(dashboard),并且相对HA原本的界面,HKI在手机端会视觉更加统一,更简洁易用。
注意:HKI是一个 YAML编辑的仪表板,这意味着你需要对YAML 具备基本的了解。遵循作者的文档教程,应该能够毫不费力地创建一个漂亮的仪表板。我会翻译原作者的文档以供大家使用。Homekit Infused 的安装不会影响现有的任何仪表板,因此可以放心安装。
特色功能可自定义的通知栏,可滚动通知你想要的内容。可自定义的导航栏优秀的菜单插件仅需10几行代码便可快速创建一个界面自定义插件,允许您使用任何可用的HA卡,无论是核心卡还是前端创建的卡。完全可自定义的每个用户配置文件菜单完全可定制的警报面板。

安装:本安装教程基于HKI2022.5.1版本撰写
注意:原作者在HKI4和HKI5之间改了很多代码,所以你需要从头开始全新安装HKI 5如果你没用装过HKI4忽略这条。
温馨提示:在正式安装前强烈建议对你的HA进行完整备份。推荐运行ha内置备份,并保存好以下文件配置文件:configuration.yaml插件文件夹:custom_components自动化:automations.yaml场景:scenes.yaml脚本:scripts.yaml
在安装前你还需要在HA目录/config目录下创建文件secrets.yaml并在里面写入alarm_code: 000000      #数字替换为你要为家庭警报器插件设置的安全密码。如果你不用,也要写,随便写。要不会报错

安装HACS商店(这个前面文章说过不讲了)
安装下列所有插件所有插件都必须安装
插件名HACS类型描述
auto-entities前端这张卡可以方便快捷填充某些域/实体
card-mod前端这个模组允许在任何卡和堆栈上自定义css效果
button-card前端这是整个HKI中使用的按钮。注意:请确保您选择“显示测试版本”并选择最新的测试版本进行安装!
state-switch前端之前是基于某种情况来让看片显示与否的功能。和conditional-card类似,但更好。
card-tools前端这是运行各种自定义卡所必需的
Search Card前端易于使用的搜索卡
Swipe Card前端此卡主要用于滚动通知
Config Template Card前端允许某些特定的模板,配置文件按钮需要它
fold-entity-row前端允许实体卡具有可折叠/折叠的行
Lovelace Text Input Row前端允许文本输入行更宽
layout-card前端排版需要此卡
browser_mod集成Browser_mod使浏览器更有用,显示/创建自定义弹出窗口等等!
lovelace_gen集成这是设置中最重要的部分,没有这个HKI将不起作用!不要将其添加到您的文件中,因为包含的软件包已经为您这样做了。如果您已经在您的configuration.yaml中添加lovelace_gen请删除或注释掉


正式安装下载包地址:Releases· jimz011/homekit-infused (github.com)数据包下载完成后解压,你将获得3个文件,分别为hki-base文件夹hki-user文件夹packages 文件夹将这三个文件夹放置在HA的/config目录下并在configuration.yaml中添加下列代码homeassistant:
packages: !include_dir_named packages/
提示:你需要在装完所有插件后先重启一遍,然后再拷贝安装文件,拷完重启第二遍。 HKI的安装阶段至此完成。 下一章HKI界面配置
HomeKit Infused5 配置说明——————————————————————————HomeKit Infused 5 2022
配置在 Homekit Infused 5中,为内置插件或自定义卡片设置和配置视图非常容易。不要忘记阅读本页末尾的提示和技巧部分!
*注意:要使以下配置中的任何更改生效,您必须重新启动 Home Assistant!最低代码示例设置视图Homekit Infused 是一个基于YAML文件配置的仪表盘,因此您必须通过 YAML 文件对其进行配置。为了简单起见,Homekit Infused 主要通过/hki-user/config/下的views.yaml文件进行管理,您应该使用它views.yaml文件来编辑 Homekit Infused。
开始打开上述文件。您会发现文件一开始已经为您配置了 2 个视图,要写新的视图或者基于这2个视图更改都直接在这个文件写就行。
要创建新视图,您必须设置一个对象(在本例中为房间名称)以启动新视图。这是你新视图的第一行。
# views.yaml (最少代码示例)
living_room:
    icon: mdi:floor-lamp
上面的示例将为您创建一个名为Living Room 的视图,并自动执行以下操作: l设置的视图标题(在本例中为 Living Room)l设置浏览器使用的视图路径(在本例中为https://hassio.local/homekit-infused/living_room)l为导航栏、副标题和菜单/收藏夹按钮设置图标(mdi:xxxx)l在菜单中创建一个条目 要创建一个新视图,这五项是最低要求。但是如果没有任何其他代码,那新创建的视图将是空的。Homekit Infused 能够为您填充视图,也可以使用你导入进去的视图代码 。以下是您可以添加到视图中的所有选项,以完全根据您的喜好自定义每个视图。
名称必须写?默认值描述
‘object’是none设置视图的名称、路径和标题。这不是实际组件,而是视图的第一行,注意:这不能包含特殊字符,只能使用小写字符!建议就用a-z字母和0-9数字。
title否view_name设置视图的标题。如果不写的话,它将使用视图的名称,您不能用template作为title!
subtitle否undefined设置subtitle(可以用js模板)如果不设置subtitle,它会显示一行hki的默认通知。要隐藏字幕栏,就写subtitle: hide
logo否undefined设置一个logo来代替title和subtitle。即使您已设置title和subtitle,设置logo会隐藏title和subtitle。
icon否mdi:home设置navigation_bar, shortcut buttons和subtitle的图标(和logo不一样)这个也接受FA图标。如果你设置这个图标不显示在nav_bar的话,你可以使用JS模板。
show_header否True设置为 true 以在此视图上完全隐藏标题
show_in_favorites否False如果您希望此视图自动包含在收藏夹中,请设置为true
show_in_menu否undefinedmenu:这会强制在菜单中显示视图。这在使用menu: 或者view_selector:插件时很有用
button_label否No lable设置按钮标签文本,可以用JS 模板写。
button_badge否undefined这将为菜单和收藏夹按钮设置一个状态显示,它将始终显示输入实体的状态,您可以使用任何entity_id(例如sensor.current_temperature)
show_in_navbar否False如果您希望此视图在 navigation_bar 中可见,请设置为true(和menu不一样)
visible否undefined如果show_in_navbar是 true的话,将仅为特定设置的用户显示nav_bar 图标,这里必须定义用户列表。查看官方文档了解更多信息。注意:就算你写了用户组,所有人还是可以通过URL访问!
addons否undefined将addon添加到您的视图中,请参阅插件部分以获取文档
layout否undefined更改视图布局,请参阅文档的布局部分
view_selector否undefined将 视图选择器 添加到视图顶部,请参阅视图选择器部分以获取文档
custom_legacy否undefined禁用所有addons并只用YAML文件创建视图。请参阅旧版自定义 部分以获取文档。
# views.yaml (示例)
kitchen:
    subtitle: My Kitchen
    button_badge: sensor.kitchen_temp
    icon: mdi:fridge
    show_in_navbar: true
    show_in_favorites: true

通用设置下列的选项可以在/hki-user/config/config.yaml找到。这些选项都提前给你定义了状态,其中有的内容可以看你喜欢自己改成你喜欢的。不是让HKI运行的必要选项,但你将来会用到这些。
名称描述
Alarm更改header中alarm的行为或者弹窗。
header更改header badges和/或 是否全局显示subtitle
popups更改弹窗中关闭按钮的位置并用RGB颜色代码(#123DEF)改变里面的颜色。
profile更改profile menu的内容,您可以为每个用户设置profile menu
其他配置
名称描述
DeviceCounters设置一个设备计数器entity给你,推荐这么弄。
Find My点开链接跟着弄就能设置你的Find My页面
NotificationsSetupnotifications to show in the subtitle of the header
Splittingthe config会教你:怎么把views.yaml文件切分成几个单独的文件和 怎么管理代码。
Theming会教你:怎么把自己的HKI界面变成绝地武士主题。(你喜欢什么看你自己这里是举例子)
小技巧&提示HKI加载的时间快的一批而且应该很稳定。就算如此,用了一堆addons的超大配置文件还是会影响启动时间。只会在HA刚启动的时候慢。超大配置文件可能会用超过3分钟来启动完毕。Lovelace重新加载的时间取决于配置文件的规模。超大配置文件的重载时间大概在5-40秒。
像上文说的一样,超大配置文件只会影响启动时间,不会影响其他任何的HA功能。一旦界面加载完毕,也不会卡。
很明显,改一行代码就重启一次谁都绷不住,为了解决这个问题,你应该一个视图一个视图来创建/修改。把你写完的视图加上注释。(Home视图不要写注释!)之后在重启ha。你会发现重启只要几秒。这样一来,就会加速你修改的效率。一旦你的视图测试好了写完了。你就可以用#号注释好,在创建下一个视图了。等你全都弄完之后,把注释都删了再重启。(我也不知道为什么要删,建议还是备份一下免得到时候忘了,我只翻译)更多案例
举例子永远举不完。但看看我发在这的范例config会更好。

HomeKit Infused 5 addons说明——————————————————————————HomeKit Infused 5 2022
插件 addonsaddons已经在提前集成在配置好的卡片上了,任意视图内你可以随意开关的那种。你也可以通过添加key到你的视图配置 /hki-user/config/views.yaml 文件里来添加addons。所有的addons都提前配置了父子树文件结构和一个标题,你必须照猫画虎的按照这个结构写你自己定义的addon。每个addon都有父子树文件结构的一些额外选项,所以第一章节肯定是讲你能添加什么选项,会有个文档告诉你额外的选项。
你可以通过layout addon来控制addon的顺序或改变它们的位置。在yaml文件里,写在上面的addon会被先渲染出来。具体怎么配置addon取决于你在配置之前提前阅读并理解好的介绍文档。说人话就是得先读懂文档在配置。Read FIRST!
# views.yaml (举例子咋添加addon)

my_view:
    subtitle: Overview
    icon: mdi:thermostat
    addons:
      thermostat:
      - title: My thermostats
          entities:
            - # 配置空调/恒温器/温度调节器(中国名怎么叫取决于产品名称和使用场景)的addon配置写在这。

my_second_view:
    subtitle: Overview
    icon: mdi:vacuum-cleaner
    addons:
      button:
      - title: My lights
          entities:
            - # 按钮的addon配置写在这。
我到底能创建哪些addons呢?
名称描述
air_visual看起来很几把帅的空气质量卡
areas*即将推出* 一张展示你房间信息的卡
battery一张告诉你所有设备电池信息总览的卡
button全功能按钮卡。可能是你唯一需要用到的卡了。
calendar默认日历卡。
camera用来添加你摄像头画面到卡片的卡。
custom允许任何卡片或众多卡片的终极附加组件!
energy在Lovalace重建HA的能源卡片
entities很容易用的entity卡
favorites能在最爱视图里面展示一堆快捷方式的卡
gauge给你的entity显示一个简单的仪表盘
glance易于使用的总览卡
googleGoogle Home TTS卡片
iframe方便好用的iFrame,可以添加到你的视图里面。
history是HA默认的图标卡,也是可以添加进HKI的另一种图表卡的选择。
logbook追踪entity事件的日志卡
map把entity显示在地图上的位置追踪卡。
media_player媒体播放器
menu在其他视图上展示菜单的。
meteoalarm展示气象预警用的卡
picture_elements图片元素,插图用的
plant_status展示自动植物状态的卡
plex展示Plex媒体服务器的卡
remote_control给nvidia shield或appletv的遥控器卡
sensor核心的玩意,sensor状态卡
statistics用这个可以创建漂亮的统计表卡
sun_card告诉你太阳在哪的卡
upcoming_media展示即将推出/最近添加的媒体的卡
thermostat可以在view添加的调温遥控器(可以是空调什么的设备)
weatherHKI的天气插件,core和simple-weather二选一
xboxXbox遥控卡
高端的玩意Addon可以被多次定义,这在你想创建一个按钮堆叠的/地图在上边按钮在下面什么的view时特别有用。
在相同视图中去额外定义一个同样类型的addon,你必须在addon name里添加一个后缀,无所谓后缀是什么,但你必须写。# views.yaml (定义同一类型的多个addons的示例代码)

my_view:
    title: Location
    addons:
      button:
      - title: My Quicktoggles
          entities:
            - switch.phone
      button_2:
      - title: My second quicktoggles
          entities:
            - switch.iphone
      button_whatever:
      - title: Another button addon
          entities:
            - switch.galaxy

Addon也可以根据entity的状态来显示对应的状态。
# views.yaml (定义同一类型的多个addons的示例代码)

my_view:
    title: Location
    addons:
      button:
      - title: This will only show when Jimmy is home
          conditional: true
          conditions:
            - entity: person.jimmy
            state: "home"
          entities:
            - switch.phone
      button_2:
      - title: This will only show when Jimmy AND Stephanie are home
          conditional: true
          conditions:
            - entity: person.jimmy
            state: "home"
            - entity: person.stephanie
            state: "home"
          entities:
            - switch.iphone
      button_3:
      - title: This will only show when Jimmy is NOT home AND Stephanie IS home
          conditional: true
          conditions:
            - entity: person.jimmy
            state_not: "home"
            - entity: person.stephanie
            state: "home"
          entities:
            - switch.iphone
额外的玩意以前在HKI 4里面的simple_weather,devices, rooms, sun_card, find_my, layout, columns, mini-media-player, searchvacuum 和 graph 扩展(addon)去哪了?
原因在这里:l对于sun_card, mini-media-player 和 graph来说,要么给他们弄个模板太繁琐,要么实在没必要添加。你还是可以用custom:插件(addon)。写了这个就可以解锁对于上面三个addons的额外option,同时也能提供更多的自定义空间。lFind_my和layout并没有被移除。只是他们的文档被移动到了HKI 5 配置设置那页去了。lColumns很容易被人误解,而且有点多余了。现在,Columns的配置遵循每个addon的配置。lDevice现在已经被合并到新的button:插件了(addon)lRooms插件现在重做成areas:了lSimple_weather已经合并到weather:插件了,可以找到。lSearch现在集成在了profile菜单里。
lVacuum太难写模板了,而且已经有很多其他很好的方式添加进来了。我建议用custom插件配合一个精致的vaccum卡来用(类似xiaomi vacuum card或Xiaomi Vacuum Map Card)


米奇妙妙屋,妙妙屋里有什么呢?
**** Hidden Message *****

SilverWolf 发表于 2022-10-11 02:24:01

特别感谢ssapiel001对原作者HKI文档本地化翻译工作的支持

ssapiel001 发表于 2022-10-11 02:27:21

开摆time!

qqkj 发表于 2022-10-11 05:33:13

又出高质量教程了。。楼主能展示下你最终实现的效果么。。

ucomeito 发表于 2022-10-11 08:42:43

谢谢分享

t0cker 发表于 2022-10-11 09:20:53

支持一下,感谢分享~

SilverWolf 发表于 2022-10-11 09:34:40

qqkj 发表于 2022-10-11 05:33
又出高质量教程了。。楼主能展示下你最终实现的效果么。。

我过几天出一个吧。

Yakullt 发表于 2022-10-11 09:48:07

学习学习

vanscer 发表于 2022-10-11 10:21:06

能否出一个效果展示

yc0209 发表于 2022-10-11 12:31:10

感谢分享后面仔细看看
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 基于个人理解的新手向HA入门教程4 (HKI篇)