树莓派+
树莓派+HomeAssistant+HomeKit
通过本篇教程,你将完成对HomeAssistant的进⼀步配置,个性化设置与管理你的智能家居设备。
题外话
关于智能家居,我与很多⼈⼀样,因新房装修⽽开始关注,2014年智能家居市场⽅兴未艾,还是传统智能家居⼚商的天下,同年Apple在
WWDC上发布了HomeKit智能家居平台,到了2015年才在iOS9中内置了“家庭”App。⽽在这⼀年,国内也诞⽣了⼩⽶智能家庭、阿⾥
智能、京东微联等平台,可以说,智能家居领域我们是和世界同步的。
有⼈跟我说,还是太复杂,99%的有智能化需求的客户不会花时间去整这些。那么,这就是为了那1%不满⾜现有平台和App的⽤户⽽⽣的,⾜矣。
⼀、检查配置
有不少⼈反馈,在安装和配置中遇到了问题,或是HomeAssistant界⾯直接⽆法显⽰,⼜或是某⼀个组件没有正常显⽰,通常后者还能在系统⾸页看到相关提⽰。
每当组件或配置选项导致警告时,相关信息将存储在配置⽬录下的
⽂件中。此⽂件在HomeAssistant开始时重置。
HomeAssistant⼤多数异常情况都是因为
⽂件错误⽽导致的,⽽新⼿通常在不同地⽅取得这些配置,不同论坛、⽹站对于代
码的显⽰效果是不同的,⾮常容易导致YAML⽂件语法错误,在修改
配置⽂件后,可在侧⾯板Configuration>General>
ConfigurationValidation处检查,通过后再重启服务。
检查配置⽂件
复习⼀下YAML基本语法规则:⼤⼩写敏感
使⽤缩进表⽰层级关系
缩进时不允许使⽤Tab键,只允许使⽤空格。
缩进的空格数⽬不重要,只要相同层级的元素左侧对齐即可
nsor:#组件名,在配置⽂件中不能重复
-
-
⼆、⾃定义设备
⼀般设备接⼊后,显⽰的名称是⼀护理会诊制度 长串信息,如下图左边第⼀⾏设备所⽰,⽽⾃定义后,如下图右边所⽰。
设备显⽰
获取设备ID
所有设备在HomeAssistant中进⾏配置,都有⼀个唯⼀的ID,这个ID在侧⾯板DeveloperTools中的“<>”States中获得。
获取设备ID
别问我怎么区分同⼀类的不同设备,名字那么像,在⾸页操作项目符号 哪个,哪个有反应,就是哪个。
配置⽂件
在
⽂件中,添加
customize:,⽰例如下:
homeassistant:
name:Homeunit_system:metric
#⽰例
customize:#注意缩进customize属于homeassistant下级,与name同级
_room_motion:#设备ID
friendly_name:客厅动作传感器#昵称即你想要的设备名
icon:mdi:run#图标即设备左侧显⽰,详情见下⽅引⽤
hidden:true#是否在HomeAssistant中隐藏
homebridge_name:动作传感器#在iOS家庭App中的名称
homebridge_hidden:fal#是否在iOS家庭App中隐藏_room:
entity_picture:/images/#显⽰图⽚,与图标⼆选⼀
friendly_name:Nest
_switch_1:
friendly_name:Toaster
entity_picture:/local/
_switch_2:
friendly_name:Kitchenkettleicon:mdi:kettle
保存后,可在侧⾯板找到
Configuration>General>ConfigurationReloading>RELOADCORE,重载相关配置,⽽⽆需重启HomeAssistant服务。
图标名
三、分组分页
设备显⽰
设备添加后默认都是独⽴的,⼀部分可控制的以卡⽚(Card)形式显⽰,还有⼀部分仅显⽰信息的以徽章(Badge)形式显⽰。有些同类设备也会有默认分组(Light、Switch等)。设备数量增多后就会显得⼗分不便。
默认显⽰
⽽下图中,⽞关、客厅、餐厅等等,虽然同处于⼀个页⾯内,每⼀个⼜包含了多个设备,但是明确的分类与组合,使得使⽤效率与体验⼤⼤提升。
HomeAssistant采⽤组(Group)的概念来组合设备,⽞关、客厅等,每个都是⼀个组(Group),你可以根据⾃⾝需求,任意设置不同的“组”,同⼀设备可加⼊多个“组”,甚⾄“组”也能嵌套“组”。
设备分组
设备分组
继续图中房间分类为例,要实现这样的效果,需要在
⽂件中,添加
group:,⽰例如下:
homeassistant:
name:Homeunit_system:metric
#⽰例
group:#注意缩进group与homeassistant同级
rooms_view:#这是整个ROOMS页的设置下节会讲解分页
name:ROOMS#显⽰名称
view:yes#是否分页即在页头显⽰
entities:#ROOM分页下的组
-ce#⽞关
-Room
-Room
-om
-m2
Entrance:#⼀个典型的group,这⼀⾏名字⾃定义
name:⽞关#显⽰名称
view:no#不分页,
icon:mdi:home-variant#组作为⼀个整体时的图标
entities:#组下包含设备
-binary__window_nsor_xxxxxx#⽞关⼊户门ID
-binary__nsor_xxxxxxxxxx#⽞关⼈体传感器ID
-_158d0000fa791f#⽞关⼊户灯ID
LivingRoom:
name:客厅
view:no
icon:mdi:sofaentities:
-ature_ty_xxxxxxxxxx
-binary__nsor_xxxxxxxxxx
-binary__nsor_xxxxxxxxxx
-_switch_right_xxxxxxxxxx
-_switch_right_xxxxxxxxxx
-_xxxxxxxxxx
-media_z_nr1504
DinnerRoom:
name:餐厅view:no
icon:mdi:glass-tulipentities:
-_switch_left_xxxxxxxxxx
-_switch_left_xxxxxxxxxx
-_xxxxxxxxxx
CookRoom:
name:厨房
view:no
icon:mdi:potentities:
-binary__nsor_xxxxxxxxxx
-_switch_xxxxxxxxxx
-_xxxxxxxxxx
BedRoom1:
name:主卧
view:n万科宝能 o
icon:mdi:hotelentities:
-ature_xxxxxxxxxx
-ty_xxxxxxxxxx
-_switch_xxxxxxxxxx
-_xxxxxxxxxx
-_xxxxxxxxxx
-_xxxxxxxxxx
-_xxxxxxxx我的玩具小汽车 xx
BedRoom2:
name:次卧
view:no
icon:mdi:hotelentities:
-ature_1xxxxxxxxxx
-ty_1xxxxxxxxxx
-_switch__1xxxxxxxxxx
保存后,可在侧⾯板找到
Configurati女排夺冠 on>General>ConfigurationReloading>RELOADGROUP
,重载相关配置,⽽⽆需重启HomeAssistant服务。
设备分页
当设备进⼀步增多后,可以设置分页,来更好地显⽰设备。如下图中,我分了“HOME”、“ROOMS”、“DEVICES”、“WEATHER”四个页⾯。
设备分页
继续在
group:中修改配置,结合上节内容,⽰例如下:
homeassistant:name:Home
unit_system:metric
#⽰例
group:#注意缩进group与homeassistant同级
default_view:#默认⾸页即HOME页
view:yes#是否分页即在页头显⽰
entities:#第⼀个分页下的设备与组-
-_weather
-_tmp
-
-
rooms_view:#这是整个ROOMS页的设置
name:ROOMS#显⽰名称
view:yes#是否分页即在页头显⽰
entities:#ROOM分页下的组
-ce#⽞关
-Room
-Room
-om
-m2
devices_view:#这是整个DEVICES页的设置
name:DEVICES#显⽰名称
view:yes#是否分页即在页头显⽰entities:
-
-media_z_y
weather_view:#这是整个WEATHER页的设置
name:WEATHER#显⽰名称
view:yes#是否分页即在页头显⽰entities:
-rNow
-rToday
-
保存后,可在侧⾯板找到
Configuration>General>ConfigurationReloading>RELOADGROUP
,重载相关配置,⽽⽆需重启HomeAssistant服务。
如果你⾜够细⼼,你会发现,在DeveloperTools中的“<>”States中,所有的“组禁毒素材 ”也有⾃⼰的ID。
四、拓展配置
拆分配置
所有的配置信息都集成在
中,可以想象,当设备配置信息增多时,
将变得⼗分臃肿,在没有更好的可视化配
置⽅法之前,我们可以对
进⾏拆分,以提⾼可读性。
以上⽂⾃定义设备为例,在配置⽂件夹内新建
⽂件独⽴存放设备的⾃定义信息,其中内容如下。
_room_motion:#设备ID通常会配置以下内容
friendly_name:客厅动作传感器#昵称即你想要的设备名
icon:mdi:run#图标即设备左侧显⽰,详情见下⽅引⽤
hidden:true#是否在HomeAssistant中隐藏
homebridge_name:动作传感器#在iOS家庭App中的名称
homebridge_hidden:fal#是否在iOS家庭App中隐藏
再修改
⽂件,以
!include引⽤独⽴出来的配置信息,如下所⽰。
homeassistant:
name:Home
unit_system:metric
#⽰例
customize:!
group:!#group同理
请注意,
homeassistant:
之后每⼀⾏缩进两个空格。由于HomeAssistant中的配置⽂件是基于YAML语⾔的,因此缩进和
间距很重要。还要注意,
customize:
是
homeassistant:
的⼦级,⽽
group:
与
homeassistant:同级。
打包配置
HomeAssistant还提供了⼀个⽅法,可以将多个组件、个性化设置、⾃动化信息捆绑在⼀起,⼀同管理。
⽐如,我有⼀个“灯+开关”的组合,我对其进⾏了⾃定义,并设置了⾃动化,我可以建⽴⼀个名为
my_light_switch_
之类名字的⽂件,来存放这⼀组合的所有信息,其内容如下:
homeassistant:customize:
:
friendly_name:XXX
homebridge_
switch:
-platform:rest
...light:
-platform:rpi
...
group:
light&switch:
name:XXXview:no
icon:mdi:lightentities:
-
在这个⽂件中,不但对接⼊了组件,还对其进⾏了⾃定义,并建⽴了分组。
接下来在HomeAssistant配置⽬录中创建⼀个名为“packages”的⽂件夹,将
my_light_switch_
放⼊其中,在
中添加
packages信息,。
homeassistant:
packages:!include_dir_namedpackages#此语句表⽰会⾃动调⽤packages⽂件夹下的⽂件。注意层级。
五、⾃定义前端显⽰
⾃定义侧⾯板
我使⽤HomeAssistant其中的⼀个⽬的就是只⽤打开⼀个App(Web)就可以控制所有设备,利⽤
PaneliFrame
组件,我们可以将⼀些常⽤的Web页⾯集成到侧⾯板。⽐如路由器管理页⾯、个⼈博客页⾯、媒体服务器等等。
⾃定义侧⾯板
以路由器为例添加如下内容到
⽂件中:
panel_iframe:
netgear:#⾯板名称
title:Netgear#标题(必填),在侧⾯板中显⽰。
icon:mdi:router-wireless#图标(可选)
url:192.168.2.1/#要打开的URL(必填)。
⾃定义主题
⾃定义主题
主题(Themes)提供了字体、颜⾊等的⾃定义,⽽主题的设置,涉及前端相关知识,这⾥不做过多讲解(主要在官⽹也没找到⼏个好看的……),仅提供⼀个主题配置供⼤家参考。
在
⽂件中的
frontend:下进⾏配置:
frontend:
themes:midnight:
#主体
primary-color:'#5294E2'
accent-color:'#E45E65'
dark-primary-color:'var(--accent-color)'
light-primary-color:'var(--accent-color)'
#⽂字
primary-text-color:'#FFFFFF'
text-primary-color:'var(--primary-text-color)'
condary-text-color:'#5294E2'
disabled-text-color:'#7F848E'
label-badge-border-color:'green'
#背景
p好看的手机图片壁纸 rimary-background-color:'#383C45'
condary-background-color:'#383C45'
divider-color:'rgba(0,0,0巨蟹座狮子座 ,.12)'
#表格
table-row-background-color:'#353840'
table-row-alternative-background-color:'#3E424B'
#导航菜单
paper-listbox-color:'var(--primary-color)'
paper-listbox-background-color:'#2E333A'paper-grey-50:'var(--primary-text-color)'
paper-grey-200:'#414A59'
#卡⽚
paper-card-header-color:'var(--accent-color)'
paper-card-background-color:'#434954'
paper-dialog-background-color:'#434954'
paper-item-icon-color:'var(--primary-text-color)'
paper-item-icon-active-color:'#F9C536'paper-item-icon_-_color:'green'
paper-item-lected_-_background-color:'#434954'paper-tabs-lection-bar-color:'green'
#标签
label-badge-red:'var(--accent-color)'
label-badge-text-color:'var(--primary-text-color)'
label-badge-background-color:'#2E333A'
#开关
paper-toggle-button-checked-button-color:'var(--accent-color)'
paper-toggle-button-checked-bar-color:'var(--accent-color)'paper-toggle-button-checked-ink-color:'var(--accent-color)'
paper-toggle-button-unchecked-button-color:'var(--disabled-text-color)'
paper-toggle-button-unchecked-bar-color:'var(--disabled-text-color)'
paper-toggle-button-unchecked-ink-color:'var(--disabled-text-color)'
#滑块
paper-slider-knob-color:'var(--accent-color)'
paper-slider-knob-start-color:'var(--accent-color)'paper-slider-pin-color:'var(--accent-color)'
paper-slider-active-color:'var(--accent-color)'
paper-slider-container-color:'linear-gradient(var(--primary-background-color),var(--condary-background-color))no-repeat'
paper-slider-condary-color:'var(--condary-background-color)'
paper-slider-disabled-active-color:'var(--disabled-text-color)'
paper-slider-disabled-condary-color:'var(--disabled-text-color)'#Google
google-red-500:'#E45E65'google-green-500:'#39E949'
重启HomeAssistant服务之后,我们可以在侧边栏
Configuration>General>Setatheme选择相关主题。
选择主题
六、下节预告
经过前期所有的设置,我们已经可以在HomeAssistant中较好地使⽤所有接⼊设备。但这个“智能”家居还是显得⼀点都不智能,并没有达到
理想中的样⼦。⽽我们将在下节开始涉及整个智能家居系统的灵魂——⾃动化(Automation)。HomeAssistant⾃动化
本文发布于:2023-04-14 03:50:50,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/90/93271.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |