十四 Home Assistant 创建平台的检测清单

创建平台的检测清单
这是一份在添加新平台时需要完成事项的检查清单。
并非所有现有平台都遵循此检查清单中的要求。但这不能成为不遵循它们的理由!

  1. 需求
    需求版本应该固定:REQUIREMENTS = [‘phue==0.8.1’]
    我们不再希望需求托管在 GitHub 上。请上传到 PyPi。
    需求应该只在函数内部导入。这是必要的,因为需求是动态安装的。
  2. 依赖
    如果你依赖一个组件进行连接,将其添加到你的依赖项中:DEPENDENCIES = [‘nest’]
  3. 配置
    存在用于配置验证的 Volutpuous 模式
    Voluptuous 模式扩展组件的模式
    (例如light.hue.PLATFORM_SCHEMA扩展light.PLATFORM_SCHEMA)
    默认参数在 Voluptuous 模式中指定,而不是在setup_platform(…)中
    模式尽可能使用来自homeassistant.const的通用配置键
import voluptuous as vol

from homeassistant.const import CONF_FILENAME, CONF_HOST
from homeassistant.components.light import PLATFORM_SCHEMA
import homeassistant.helpers.config_validation as cv

CONF_ALLOW_UNREACHABLE = 'allow_unreachable'
DEFAULT_UNREACHABLE = False

PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
    vol.Required(CONF_HOST): cv.string,
    vol.Optional(CONF_ALLOW_UNREACHABLE,
                 default=DEFAULT_UNREACHABLE): cv.boolean,
    vol.Optional(CONF_FILENAME): cv.string,
})
  1. 设置平台
    测试传入的信息(用户 / 密码 / 主机等)是否有效。
    如果可能,对add_devices的调用进行分组。
    如果平台添加额外服务,格式应该是._。
  2. 实体
    从组件扩展实体,例如class HueLight(Light)
    不要在构造函数中调用update(),而是使用add_devices(devices, True)。
    不要在属性内部进行任何 I/O 操作。改为在update()中缓存值。
  3. 与设备 / 服务通信
    所有特定于 API 的代码必须是托管在 PyPi 上的第三方库的一部分。Home Assistant 应该只与对象交互,而不是直接调用 API。
 
# 不咋滴的做法
status = requests.get(url('/status'))

# 好的做法
from phue import Bridge
bridge = Bridge()
status = bridge.status()

总结
该网页提供了在 Home Assistant 中创建平台时的详细检查清单。从需求方面规定了版本固定、上传平台及导入位置;依赖项明确了添加连接所需组件;配置涉及验证模式、参数设置及通用键使用;设置平台包括信息测试、调用分组和服务格式;实体部分涉及扩展方式、更新调用和属性操作;通信强调使用第三方库与对象交互而非直接调用 API。此清单为开发者创建新平台提供了全面且规范的指导,确保新平台与 Home Assistant 系统的兼容性、可维护性和安全性,遵循最佳实践,提高平台质量,促进整个系统的健康发展,尽管现有平台可能不完全符合,但新开发必须遵循这些标准。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值