Midea AC LAN 项目使用教程
1. 项目的目录结构及介绍
Midea AC LAN 项目的目录结构如下:
midea_ac_lan/
├── custom_components/
│ └── midea_ac_lan/
│ ├── __init__.py
│ ├── const.py
│ ├── device.py
│ ├── discovery.py
│ ├── midea_device.py
│ ├── midea_entity.py
│ ├── sensor.py
│ ├── switch.py
│ └── climate.py
├── doc/
│ └── README.md
├── .gitignore
├── LICENSE
├── README.md
├── README_hans.md
├── hacs.json
└── manifest.json
目录结构介绍
custom_components/midea_ac_lan/
: 包含项目的主要代码文件。__init__.py
: 初始化文件。const.py
: 常量定义文件。device.py
: 设备处理文件。discovery.py
: 设备发现文件。midea_device.py
: 美的设备处理文件。midea_entity.py
: 美的实体处理文件。sensor.py
: 传感器处理文件。switch.py
: 开关处理文件。climate.py
: 气候控制处理文件。
doc/
: 包含项目的文档文件。README.md
: 项目文档文件。
.gitignore
: Git 忽略文件。LICENSE
: 项目许可证文件。README.md
: 项目介绍文件。README_hans.md
: 项目中文介绍文件。hacs.json
: HACS 配置文件。manifest.json
: 项目清单文件。
2. 项目的启动文件介绍
项目的启动文件主要是 custom_components/midea_ac_lan/__init__.py
。这个文件负责初始化项目并加载必要的模块。
__init__.py
文件介绍
"""Midea AC LAN integration."""
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from .const import DOMAIN
async def async_setup(hass: HomeAssistant, config: dict):
"""Set up the Midea AC LAN component."""
hass.data.setdefault(DOMAIN, {})
return True
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry):
"""Set up Midea AC LAN from a config entry."""
hass.data[DOMAIN][entry.entry_id] = entry.data
hass.async_create_task(
hass.config_entries.async_forward_entry_setup(entry, "climate")
)
return True
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry):
"""Unload a config entry."""
unload_ok = await hass.config_entries.async_forward_entry_unload(entry, "climate")
if unload_ok:
hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok
启动文件功能
async_setup
: 初始化组件并设置默认数据。async_setup_entry
: 从配置条目设置组件。async_unload_entry
: 卸载配置条目。
3. 项目的配置文件介绍
项目的配置文件主要是 manifest.json
和 hacs.json
。
manifest.json
文件介绍
{
"domain": "midea_ac_lan",
"name": "Midea AC LAN",
"documentation": "https://github.com/georgezhao2010/midea_ac_lan",
"dependencies": [],
"codeowners": ["@georgezhao2010"],
"requirements": [],
"version": "0.1.0"
}
manifest.json
文件功能
domain
: 组件的域名。name
: 组件的名称。documentation
: 项目文档链接。dependencies
: 依赖项。codeowners
: 代码所有者。requirements
: