hass_nuki_ng 项目教程
1. 项目的目录结构及介绍
hass_nuki_ng/
├── custom_components/
│ └── nuki_ng/
│ ├── __init__.py
│ ├── config_flow.py
│ ├── const.py
│ ├── entity.py
│ ├── lock.py
│ ├── opener.py
│ ├── sensor.py
│ └── services.py
├── .gitignore
├── LICENSE
├── README.md
└── hacs.json
目录结构介绍
-
custom_components/nuki_ng/: 这是项目的主要代码目录,包含了所有与 Nuki 设备相关的组件代码。
- init.py: 初始化文件,通常用于注册组件。
- config_flow.py: 配置流程文件,用于处理用户配置。
- const.py: 常量定义文件,包含项目中使用的常量。
- entity.py: 实体定义文件,定义了与 Nuki 设备相关的实体。
- lock.py: 锁相关的逻辑处理文件。
- opener.py: 开门器相关的逻辑处理文件。
- sensor.py: 传感器相关的逻辑处理文件。
- services.py: 服务定义文件,定义了与 Nuki 设备相关的服务。
-
.gitignore: Git 忽略文件,用于指定不需要版本控制的文件。
-
LICENSE: 项目许可证文件,通常为 MIT 许可证。
-
README.md: 项目说明文件,包含了项目的介绍、安装和使用说明。
-
hacs.json: HACS(Home Assistant Community Store)配置文件,用于在 HACS 中展示和管理该项目。
2. 项目的启动文件介绍
项目的启动文件主要是 custom_components/nuki_ng/__init__.py
。这个文件负责初始化 Nuki 组件,并注册相关的服务和实体。
__init__.py
文件介绍
# custom_components/nuki_ng/__init__.py
from homeassistant import config_entries, core
from .const import DOMAIN
async def async_setup(hass: core.HomeAssistant, config: dict) -> bool:
"""Set up the Nuki component."""
hass.data.setdefault(DOMAIN, {})
return True
async def async_setup_entry(hass: core.HomeAssistant, entry: config_entries.ConfigEntry) -> bool:
"""Set up Nuki from a config entry."""
hass.data[DOMAIN][entry.entry_id] = entry.data
hass.async_create_task(hass.config_entries.async_forward_entry_setup(entry, "lock"))
return True
- async_setup: 这是组件的初始化函数,负责设置 Nuki 组件的基本配置。
- async_setup_entry: 这是配置条目的设置函数,负责处理具体的配置项。
3. 项目的配置文件介绍
项目的配置文件主要是 configuration.yaml
,用户需要在 Home Assistant 的配置文件中添加 Nuki 组件的配置。
configuration.yaml
配置示例
# configuration.yaml
nuki_ng:
bridge:
host: 192.168.1.100
port: 8080
token: your_token_here
locks:
- name: Front Door
nuki_id: 123456789
- name: Back Door
nuki_id: 987654321
配置项说明
- bridge: 配置 Nuki Bridge 的信息。
- host: Nuki Bridge 的 IP 地址。
- port: Nuki Bridge 的端口号。
- token: Nuki Bridge 的访问令牌。
- locks: 配置 Nuki 锁的信息。
- name: 锁的名称。
- nuki_id: 锁的唯一标识符。
通过以上配置,Home Assistant 可以与 Nuki 设备进行通信,并控制和管理这些设备。