三十七 Home Assistant 开发hass.io插件流程&First Demo

部署运行你感兴趣的模型镜像

开发插件

Hass.io的插件允许用户扩展Home Assistant的功能。这可以是运行一个Home Assistant能够与之集成的应用程序(如MQTT代理),或者通过Samba共享配置以便于从其他计算机轻松编辑。插件可以通过Home Assistant中的Hass.io面板进行配置。

在底层,插件是发布在Docker Hub上的Docker镜像。开发者可以创建包含多个插件引用的GitHub仓库,以便于与社区轻松共享。

教程:创建你的第一个插件

  • 配置
  • 本地测试
  • 发布
  • 仓库

教程:创建你的第一个插件

你已经在使用Home Assistant,并且很享受内置插件,但你缺少某个应用程序。是时候创建自己的插件了!在Hass.io 0.24版本中,我们引入了在设备上构建本地插件的选项。这对于在本地开发新插件非常有用。

要开始开发插件,我们首先需要访问Hass.io查找本地插件的位置。为此,你可以使用Samba插件或SSH插件。

对于Samba,一旦你启用并启动它,你的Hass.io实例将出现在本地网络选项卡中,并共享一个名为“addons”的文件夹。这就是存储你自定义插件的文件夹。

如果你使用的是macOS且该文件夹没有自动显示,打开Finder并按下CMD + K,然后输入“smb://hassio.local”。
在这里插入图片描述

启用Samba插件后,你可以通过本地网络浏览到你的Hass.io服务器。它将包含一个用于存储本地插件的addons文件夹。

对于SSH,你需要安装它。在启动之前,你必须有一对私钥/公钥,并将公钥存储在插件配置中(更多信息请参阅文档)。启动后,你可以通过SSH连接到Hass.io,并将你的自定义插件存储在“/addons”中。

一旦你通过SSH连接到你的Hass.io设备,你就可以访问“/addons”中的插件。
在这里插入图片描述

一旦你找到插件目录,就可以开始了!

步骤1:基础操作

创建一个名为hello_world的新目录。
在该目录中创建三个文件。
Dockerfile

FROM %%BASE_IMAGE%%

ENV LANG C.UTF-8

# 复制插件数据
COPY run.sh /
RUN chmod a+x /run.sh

CMD [ "/run.sh" ]

config.json

{
"name": "Hello world",
"version": "1",
"slug": "hello_world",
"description": "我的第一个真正的插件!",
"startup": "before",
"boot": "auto",
"options": {},
"schema": {}
}

run.sh

echo Hello world!

步骤2:安装和测试插件

现在到了有趣的部分,打开Hass.io用户界面并安装和运行你的插件。

  1. 打开Home Assistant前端。

  2. 进入Hass.io面板。

  3. 在右上角点击购物篮进入插件商店。
    在这里插入图片描述

  4. 从Hass.io主面板打开插件商店。

  5. 在右上角点击刷新按钮。
    你现在应该看到一个名为“Local”的新卡片,列出了你的插件!
    在这里插入图片描述

点击你的插件进入插件详细信息页面。
安装你的插件。
启动你的插件。
刷新你的插件日志,你现在应该在日志中看到“Hello world!”。
在这里插入图片描述

步骤3:托管服务器

到目前为止,我们已经能够做一些基本的事情,但还不是很有用。所以让我们更进一步,托管一个在端口上公开的服务器。为此,我们将使用Python 3自带的内置HTTP服务器。
要做到这一点,我们需要更新我们的文件如下:
Dockerfile:安装Python 3。
config.json:使容器中的端口在主机上可用。
run.sh:运行Python 3命令来启动HTTP服务器。
DockerfileRUN之前添加以下内容:

# 安装插件所需的内容
RUN apk add --no-cache python3

# Python 3 HTTP服务器服务当前工作目录
# 所以让我们将其设置为插件的持久数据目录。
WORKDIR /data

config.json中添加“ports”。这将使容器内的TCP端口8000在主机上的端口8000可用。

{
"name": "Hello world",
"version": "0.2",
"slug": "hello_world",
"description": "我的第一个真正的插件!",
"startup": "before",
"boot": "auto",
"options": {},
"schema": {},
"ports": {
"8000/tcp": 8000
}
}

更新run.sh以启动Python 3服务器:

python3 -m http.server

步骤4:安装更新

由于我们更新了config.json中的版本号,Home Assistant在查看插件详细信息时将显示更新按钮。你可能需要刷新浏览器或点击插件商店中的刷新按钮才能看到它。如果你没有更新版本号,你也可以卸载并重新安装插件。重新安装插件后,确保启动它。
现在导航到http://hassio.local:8000查看我们的服务器运行情况!
在这里插入图片描述

额外内容:使用插件选项

在截图中你可能已经看到我们的服务器只提供了一个文件:options.json。这个文件包含了这个插件的用户配置。因为我们在config.json中指定了空的“config”和“schema”,所以该文件目前是空的。
让我们看看是否能在那个文件中放入一些数据!
为此,我们需要指定默认选项和一个模式,以便用户更改选项。
用以下内容更改config.json中的选项和模式条目:

{"options": {
"beer": true,
"wine": true,
"liquor": false,
"name": "world",
"year": 2017
},
"schema": {
"beer": "bool",
"wine": "bool",
"liquor": "bool",
"name": "str",
"year": "int"
},}

刷新插件商店并重新安装你的插件。你现在将在插件配置屏幕中看到可用的选项。当你现在回到我们的Python 3服务器并下载options.json时,你将看到你设置的选项。
了解有关可用架构选项的更多信息。
了解如何在run.sh中使用options.json

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值