homeassistant 使用
用途:
Home Assistant是一个基于Python的智能家居系统,它可以帮助你构建和管理你的智慧空间。以下是一些Home Assistant的主要用途:
-
设备支持:Home Assistant支持高度定制化的设置,包括自动化(Automation)、群组化(Group)、UI客制化(Theme)等。它可以方便地连接各种外部设备,如智能设备、摄像头、邮件、短消息、云服务等。
-
自动化:你可以根据自己的需求,手动或自动化地联动这些外部设备。例如,你可以设置当你回家时,门自动解锁,灯自动开启,空调自动调到适宜的温度。
-
集中管理:通过在手机或电脑上安装Home Assistant客户端,用户可以通过简单易用的界面,对家庭设备进行集中管理、控制。
-
智能控制:Home Assistant可以实现设备的Siri控制,使你可以通过语音命令来控制你的智能家居设备。
-
开源:Home Assistant是开源的,它不属于任何商业公司,用户可以无偿使用。
docker-compose安装:
homeassistant:
container_name: homeassistant
image: ghcr.io/home-assistant/home-assistant:stable
network_mode: "bridge"
privileged: true
restart: unless-stopped
environment:
TZ: Asia/Shanghai
volumes:
- /home/tech-shrimp/homeassistant:/config
- /run/dbus:/run/dbus:ro
ports:
- "8123:8123"
user: "root"
restart: always
在国内下载 HACS,你可以尝试以下方法:
-
使用镜像站点:你可以使用
hacs-china
提供的镜像站点进行下载¹。具体的命令如下:wget -O - https://get.hacs.vip | bash -
如果上面的命令执行后卡住不动,或没有提示安装成功,你可以尝试下面的命令¹:
wget -O - https://get.hacs.vip | HUB_DOMAIN=ghproxy.com/github.com bash -
如果你的 Home Assistant 是
haos/hassio/supervisor
版本,你可以直接在宿主机或 Terminal & SSH 加载项中执行上面的命令¹。如果是core/docker
版本的 Home Assistant,你需要 ssh 登陆宿主机后,并 cd 进入到 Home Assistant 配置目录再执行安装命令¹。 -
手动安装:你也可以选择手动安装¹。首先,你需要下载安装包https://ghproxy.com/github.com/hacs-china/integration/releases/latest/download/hacs.zip并解压¹。然后,通过 samba/ftp 进入 Home Assistant 配置目录,在该目录下创建
custom_components
文件夹(如果已有请忽略),在custom_components
目录下创建hacs
文件夹(如果已有请删除重新创建),将解压出来的文件复制到刚创建的hacs
文件夹¹。最后,重启 Home Assistant¹。
手动安装(HACS装不上)
下载插件 zip 压缩包(该链接始终为最新版本)。
https://github.com/al-one/hass-xiaomi-miot/releases
依次打开压缩包中的xiaomi_miot_raw-master/custom_components文件夹。
将该文件夹中的xiaomi_miot文件夹拷贝至自己 HA 安装目录的custom_components文件夹。
重新启动 Home Assistant 容器。
3.python 控制设置(Home Assistant REST API)
此外,也请确保您的URL正确无误,并且对应于有效的Home Assistant服务端点。
如果您确认以上两点都是正确的,代码应该修改为类似下面这样:
import requests
url = "http://192.168.31.113:8123/api/services/light/turn_on"
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"content-type": "application/json",
}
data = {
"entity_id": "light.living_room" # 确保是您想要操作实体的正确ID
}
response = requests.post(url, headers=headers, json=data)
print(response.text)
请确保替换YOUR_ACCESS_TOKEN
与您的实际访问令牌和light.living_room
为您试图控制的灯具的实际entity_id
。如果在使用更正后的代码仍然遇到问题,建议您检查Home Assistant的日志文件,了解可能的错误详细内容,此外您还可以查阅Home Assistant的REST API文档以获得更多信息。
这段代码是用Python编写的,其目的是通过发送HTTP POST请求来控制连接到Home Assistant智能家居系统中的一盏灯具(例如客厅的灯)。以下是对每行代码的详细解析:
-
url = "http://192.168.31.113:8123/api/services/light/turn_on"
: 这里,url
变量被赋予了一个字符串值,该字符串代表Home Assistant REST API的URL。此URL用于向Home Assistant发送命令来控制灯具的打开。这个地址由Home Assistant的IP地址(在这个例子中是本地网络上的192.168.31.113
)和端口号(8123
)组成,后面跟着指定的API路径(/api/services/light/turn_on
)。 -
headers = { ... }
: 这个headers
字典包含了两个键值对,用于定义发送HTTP请求时需要附带的头部信息。"Authorization": "Bearer YOUR_ACCESS_TOKEN"
指的是使用Bearer
认证方式和你的访问令牌(YOUR_ACCESS_TOKEN
需要被替换为你的实际访问令牌,Bearer不能省略
),这是接入Home Assistant API的认证方式之一。"content-type": "application/json"
表明发送的数据将是JSON格式。- 获得
YOUR_ACCESS_TOKEN
:您可以通过在Home Assistant的用户界面中进入您的个人资料页面,点击安全,然后滚动到页面底部找到"长期访问令牌"部分,创建一个令牌。创建后,请妥善保管这个令牌,因为它不会再次显示。
- 获得
-
data = { ... }
: 这行代码定义了一个名为data
的字典,该字典包含一个键"entity_id"
,其值被设置为你希望控制的灯具的实体ID(在这个例子中是"light.living_room"
)。这个ID在Home Assistant平台上唯一标识了一个特定的设备或实体(获取方式:概览-点击需要获取的设备-设置齿轮-实体标志符-复制)。 -
response = requests.post(url, headers=headers, json=data)
: 使用requests
库,这行代码发送一个HTTP POST请求到之前定义的url
,并附加了headers
和json
数据。json=data
参数自动将data
字典转换为JSON格式的字符串。这个请求会告诉Home Assistant按照提供的信息去执行一个操作,比如在这个示例中是开启一盏灯。
整个过程的成功依赖于准确的URL、有效的访问令牌以及正确的entity_id
。如果配置正确,此代码将使指定的灯具开启。
在Home Assistant中,/api/services/<domain>/<service>
路由用于调用服务,这里的<domain>
和 <service>
分别代表服务的所属领域(例如light
、switch
、media_player
等)和特定服务(如turn_on
、turn_off
、toggle
)。一些常见的<domain>/<service>
组合包括:
Domain | Service | Description |
---|---|---|
light |
turn_on |
开启一盏或多盏灯。 |
light |
turn_off |
关闭一盏或多盏灯。 |
light |
toggle |
切换一盏或多盏灯的状态,术语"切换"就是指将灯从开变为关,或反过来。 |
switch |
turn_on |
开启一个或多个开关。 |
switch |
turn_off |
关闭一个或多个开关。 |
switch |
toggle |
切换一个或多个开关的状态。 |
media_player |
play_media |
在媒体播放器上播放指定的媒体。 |
media_player |
pause |
暂停正在播放的媒体。 |
media_player |
next_track |
播放下一曲目。 |
media_player |
previous_track |
播放上一曲目。 |
automation |
trigger |
触发一个自动化流程。 |
scene |
turn_on |
激活一个场景,场景是预设的一组设备状态。 |
climate |
set_temperature |
设置一个或多个空调或恒温器的温度。 |
请注意,服务的参数(例如entity_id
、亮度、颜色、媒体URL等)需要在请求体中以JSON格式提供。
关于API的使用,您可以参考Home Assistant的官方开发者文档获得更详细的信息:https://developers.home-assistant.io/docs/api/rest/
连接易微联(SONOFF)设备到Home Assistant并实现场景自动化编程,你可以按照以下步骤进行¹:
安装SonoffLAN:如果你还没有安装Home Assistant或HACS,你可以参考相关教程进行安装。在HACS中,你可以通过集成——右下角浏览并下载存储库——搜索存储库SonoffLAN——右下角下载的方式来安装SonoffLAN。安装完成后,你需要在配置——系统——左上角重新启动。然后在配置——设备与服务——右下角添加集成——搜索集成Sonoff中输入你的账户密码,手机号码需要加上国家号前缀(86)¹。
打开SONOFF输入账户密码,账户必须加86,不然提示user account +189****8075 does not exist, 正确格式如86189****8075
本文作者: 永生
本文链接: https://yys.zone/detail/?id=349
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
发表评论
评论列表 (0 条评论)
暂无评论,快来抢沙发吧!