SilverWolf 发表于 2022-10-9 22:16:11

基于个人理解的新手向HA入门教程1-3

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

目录:
灰色部分还在整理尽请期待1.    集成与接入 2.    HomeKit3.    动手搭建属于自己的Home Assistant界面4.   关于homekit-infused 玩法5.   待定...前言本文面向人群以入门至进阶为主。文章多以个人实践经验为主观判断。描述多少会欠缺一定专业性。如果教程有错误,产生误导。欢迎大佬们指正。
在B站、瀚思彼岸站内教程有很多,个人推荐新手参照官方文档使用独立物理设备安装HomeAssistant OS (Supervised) 再此就不过多赘述了。HomeAssistant官网:https://www.home-assistant.io/
装好HomeAssistant后你需要做的就是安装HACS商店
HACS商店是由社区维护的、面向HomeAssistant的扩展商店,在这里你可以使用HACS商店可以安装更多的自定义集成,以便接入更多你想要添加的设备。
关于HACS商店的安装教程在B站、瀚思彼岸有很多,随便搜搜或者看看官方文档,很容易。HACS官网:https://hacs.xyz/
之后就可以添加你自己的配件啦。通常情况下大部分设备你可以在Home Assistant的以集成的方式将你的设备添加至Home Assistant当中。例如使用Xiaomimiio以小米设备云的方式把米家智能设备接入Home Assistant……
因为每个人家中的设备都不同,所以集成的需求每个人都不一样。因此,你需要根据自己的需要选择对应的集成以及相应的接入方法。
以下我以本人所持有的设备进行列举我的设备和接入方式清单
设备接入方式备注
BOSE Soundtouch原生集成:Soundtouch

Sony国行电视85X95J原生集成:Sonybravia TV原生集成:AndroidTV需要预先启用电视的adb调试。
LG ThinQ洗衣机HACS集成:LGEDevices SmartThinQ LGE

石头扫地机器人G10S
HACS集成:XiaomiCloud Map Extractor详见扫地机器人接入
HomePodmini原生集成:AppleTV

Windows10 PC原生集成+YAML配置:TCMP(ping)接入sensor

AqaraVRF空调控制器原文:bilibili.com/video/BV1Wu411r72g

YEELIGHT纤玉快装系列吸顶灯原生集成:YEELIGHT

YEELIGHT易来浴霸S20原生集成:YEELIGHT

Aqara网关及其设备HACS集成:Aqara Bridge需要注册AqaraDeveloper。后面会提到
iPhone13、Android手机通过AppStore内“Home Assistant“App接入

另外附上由论坛@muxiachuixue提供的解决国内HACS商店访问不了或访问慢的解决方案。
https://bbs.HomeAssistantssbian.com/forum.php?mod=viewthread&tid=14242&highlight=HACS
以LG洗衣机为例
通过HACS你可以寻找是否有适用于你设备的集成。
成功下载后你需要重启Home Assistant
PS:所有的集成下载完毕后都需要进行重启。重启后你会在中发现你的设备。
如果没有,你也可以点击右下角的“➕”手动通过集成的方式完成接入。
大多数设备都可以通过内置的集成或者HACS自定义集成完成接入,但也有部分情况,需要通过写入YAML来进行接入。Home Assistant代码调试环境搭建个人推荐在HomeAssistant加载项下安装Studio code server以便调试。



自定义添加实体通过编辑configuration.yaml可以实现绝大多数自定义集成的安装以及深度自定义。

图示为自定义添加的mqtt传感器实体。
configuration.yaml 使用主从文件树结构来区分主次层级。具体使用方法参阅https://www.home-assistant.io/integrations/中对应的集成
例:(本人自学的,如有错误望指正程序员和老鸟轻喷:handshake)sensor:                         #主层级(例如这里就是指配置传感器sensor)
- platform: template          #第二层级,通常在configuration.yaml里为platform(接入方法,具体使用什么需要根据文档(后期看需求看要不要汉化一篇HA官方的传感器文档以供参考))
    sensors:                  #第二层级
      Ping_tracker:          #第三层级
      friendly_name: "Ping_tracker"            #第四层级
      value_template: "{{ '在家' if is_state('device_tracker.mix2', 'home') else '离线' }}"   #第四层级


HomeKit
Q: 什么是原生HomeKit?
A:可以在Apple家庭App中直接添加的设备是原生HomeKit支持的设备。通常在你所购买的产品中有如下标记的为原生HomeKit设备

Q:HomeKit集成能做什么A:HomeKit集成可以以在Apple家庭App中添加桥接器设备的方式将已经接入Home Assistant的实体接入进Apple家庭app,随后便可使用Apple家庭App或Siri来控制HomeAssistant中的设备了。
Q: 为什么我在有原生支持HomeKit设备的情况下还要使用Home Assistant进行接入?A:1.你的手机不是iPhone,但需要使用智能控制你的HomeKit认证设备;但你又不想使用你手机品牌自带的家庭智能中枢App或智能家居厂商的App来控制。   2.通常智能家居厂商所给你提供的app中仅支持你编辑最简单的自动化逻辑(当……发生时,就做……)。而这对于我全屋智能的需求来说是远远不够的。除此之外,设备接入HOMEKIT之后,不支持删除或隐藏现有实体(设备),并且HomeKit截至目前所支持的种类稀少。例如扫地机器人等设备在HomeKit中并没有相对成熟的设备卡。其次,如果未来我不再使用iPhone,全家原生接入HomeKit的设备对我来说是一个 拖累,我不能在脱离Apple生态的情况下控制设备,而先将设备接入HA再通过桥接器接入HomeKit的方法可以完美避免HomeKit生态对于人的约束。 因此,我的方法以HomeAssistant界面为主,HomeKit和Siri作为辅助功能为我的主要用法。
(某品牌自动化页面)


Homekit的两种配置方式Homekit的配置方式大体可分为两种。一种可以通过UI以界面的方式进行homekit配置。{图}另一种则以在configuration.yaml文件中写入Homekit所对应的相关配置参数。为主。
具体写法参照官方文档。https://www.home-assistant.io/integrations/homekit/

为方便英语不好的朋友使用,也可以参阅由我的好友ssapiel001基于官方文档人工翻译的文件。Home Assistant 说明书/HomeKit页汉化
列举一些简单的例子
设备:
灯类Light吸顶灯X3light.mainlight_1light.mainlight_2light.lightbulb_3(实体ID)筒灯X3light.lightbulb_1light.lightbulb_2light.lightbulb_3台灯X1light.lightbulb_4灯带X1light.lightbulb_5
开关Switch开关1switch.miswitch_1开关2switch.miswitch_2
风扇Fan风扇1fan.xiaomifan_1
温控器(空调)Climate空调1climate.kong_tiao_1

可以以如下方式写(仅供学习理解,不要照抄。按自己的设备需求写入)homekit:                           #声明作为Homekit的配置文件
- filter:                        #筛选要从主页工具包中包含/排除的实体。不做修改
    include_domains:               #包含的域(所要包含的同一类别所有设备)
      - alarm_control_panel      #包含所有的报警器
      - light                      #包含所有的灯
      - media_player               #包含所有的播放器
    include_entity_globs:            #包含除*号外名称相同的设备
      - light.lightbulb_*          #包含所有实体id带有light.lightbulb_的设备
    include_entities:                #包含单一设备
      - fan.xiaomifan_1            #包含实体id为fan.xiaomifan_1的设备
    exclude_entities:                #排除项
      - light.lightbulb_4          #包含实体id为light.lightbulb_4的设备
    exclude_entity_globs:            #排除同类项
      - climate.kong_tiao_*      #排除所有实体id带有climate.kong_tiao_的设备
    #以下部分通常用不到,但在你需要自定义配置设备时需要使用
    entity_config:                   #实体配置
      alarm_control_panel.home:      #实体ID
      code: 1234                   #实体配置内容,参阅Homekit文档。

#Homekit的一个桥接器最大可容纳150个实体。如果你有更多的设备要接入可使用下面的参数添加更多桥接器

- name: HASS Bridge 2            #名称随便起(英文就行,注意非法字符)
    port: 21065                      #端口号,不重就行
    filter:
      include_domains:
      - light
动手搭建属于自己的Home Assistant界面
仪表盘Dashboard主要的前端仪表板系统被称为lovelace,它提供不同的卡片(Card)来显示信息和控制设备。卡可以显示由连接的设备提供的信息或控制资源(灯、空调和其他设备)。界面设计语言基于 Material Design 。可以使用原始配置编辑器进行整张页面的编辑。原始配置编辑器通过修改底层 YAML 代码进行自定义界面设计。
首先你需要先创建一张空白的仪表盘(Dashboard)配置——仪表盘——➕添加仪表盘在这里你可以设置仪表盘的名称图标。这里的图标使用的为Google的MDI图标输入对应的图标ID选用喜欢的图标。点我查看MDI图标列表
通过使用HA官方的卡或通过HACS下载“前端”来获得新的卡片样式。通过组合不同的卡片样式来获得你想要的效果。每张卡片的使用方式可通过阅读作者文档得知。
附上我自己写的易来浴霸卡片作为参考。如果你想更多的了解卡片的用途及写法,可以查看你所下载卡的原作者readme文档。type: custom:simple-thermostat                  #卡片类型
entity: climate.yeelink_v6_7b00_ptc_bath_heater #实体ID
header:                                       #开头部分
name: 客卫浴霸                                 #大标题
icon: mdi:radiator                            #图标
toggle:                                       #触发
    entity: light.yeelink_v6_7b00_light         #触发的实体ID
    name: 客卫灯                                 #名称
layout:                                       #布局
mode:                                       #模式
    icons: true                                 #是否显示图标 true是/false否
    headings: true                              #是否显示开头部分
control:                                        #控制部分
hvac:                                       #温控器配置部分
    'off':                                    
      name: null
    heat:
      name: null
      icon: mdi:white-balance-sunny
    dry:
      name: null
      icon: mdi:water
    fan_only:
      name: null
      icon: mdi:fan
preset:
    Ventilate:
      name: 换气
      icon: mdi:repeat
    Quick Heat:
      name: 快热
      icon: mdi:weather-sunny
    Defog:
      name: 除雾
      icon: mdi:heat-wave
    Quick Defog:
      name: 快速除雾
      icon: mdi:heat-wave
    'off':
      name: 关
fan:                                           #风扇控制部分
    low:
      name: 低
      icon: mdi:fan-speed-1
    high:
      name: 高
      icon: mdi:fan-speed-2我个人并没有使用HA原生的仪表盘作为我的个人界面。相比HA原生,有一个更加强大的界面值得你去了解。
来自github上jimz011大神的界面homekit-infused
我会在下章更新

ssapiel001 发表于 2022-10-9 22:21:44

前排学习

月亮火 发表于 2022-10-10 00:32:09

:)学习学习

lqf1206 发表于 2022-10-10 00:53:25

新手迷茫

qqkj 发表于 2022-10-10 03:21:00

非常好教程!楼主和楼主的基友 出的都是精品帖啊!!
期待后续更多的好帖!

qqkj 发表于 2022-10-10 03:36:45

楼主的Windows10 PC原生集成接入??想问下用的是哪个集成?找了半天没有发现。

紫·HA 发表于 2022-10-10 08:58:03

感谢分享;插眼学习{:3_59:}

SilverWolf 发表于 2022-10-10 10:59:47

qqkj 发表于 2022-10-10 03:21
非常好教程!楼主和楼主的基友 出的都是精品帖啊!!
期待后续更多的好帖! ...

感谢支持,后期帖子再整理中。我和朋友商量着尽可能减少术语多用通俗易懂的语言写后续教程。

SilverWolf 发表于 2022-10-10 11:01:25

qqkj 发表于 2022-10-10 03:36
楼主的Windows10 PC原生集成接入??想问下用的是哪个集成?找了半天没有发现。 ...

PC不是原生集成接入的,是写的自定义传感器,通过ping方法获取状态。通过HTTP或MCU控制关机,通过网络唤醒WOL控制开机。

bugensui 发表于 2022-10-10 11:41:02

SilverWolf 发表于 2022-10-10 11:01
PC不是原生集成接入的,是写的自定义传感器,通过ping方法获取状态。通过HTTP或MCU控制关机,通过网络唤 ...

网络唤醒WOLpc开机, pc是要有线连接才可以把,笔记本是无线上网的,不知道行不行,有没有参考代码
页: [1] 2 3 4 5 6
查看完整版本: 基于个人理解的新手向HA入门教程1-3