跳到主要内容

HomeAssistant杂记

阅读量: 101阅读人次: 102

Integration(集成)

Integration(集成) 是 Home Assistant 中用于连接外部设备、服务或平台的模块化组件。每个集成专注于一个特定领域(称为 domain),例如智能灯泡、传感器、天气服务等。其核心功能包括:

  • 数据交互:与第三方设备或服务通信(如通过 API、协议等)。
  • 状态管理:生成并维护设备或服务的实时状态(如温度传感器的当前数值)。
  • 事件处理:监听设备触发的事件(如门锁被打开)或主动触发事件。
  • 服务暴露:提供可被其他集成调用的自动化服务(如控制灯光开关)。

Entity(实体)

实体 是 Home Assistant 中表示设备、传感器或功能的最小逻辑单元。

每个实体对应一个具体的实例,例如:

  • 一盏智能灯泡(light.bedroom_light)
  • 一个温度传感器(sensor.living_room_temperature)

每个实体包含以下核心信息:

  • 唯一标识符(Unique ID):全局唯一,用于区分不同实体(如 button.wake_pc)。

  • 状态(State):

    • 表示当前状态(如 on/off、温度值 23.5°C)。
    • 例外:button 实体是无状态的,点击后状态会立即重置。
  • 属性(Attributes):

    附加信息(如传感器的单位 unit_of_measurement: "°C")。

  • 能力(Capabilities): 定义实体能执行的操作(如灯光可调亮度、颜色)。

Service(服务)

服务 是 Home Assistant 提供的 可调用功能,用于执行具体操作或修改实体状态。

例如:

  • 发送唤醒包(wake_on_lan.send_magic_packet
  • 开灯(light.turn_on
  • 更新传感器数据(homeassistant.update_entity)。

自定义设备接入 Home Assistant,推荐使用MQTT。

Configuration.yaml 配置文件

MQTT

代理(Broker)

这里推荐使用 NanoMQ,它比较轻量小巧,而且还集成了 ZeroMQ、NNG等桥接功能。

设备发现(Discovery)

设备实现 Discovery 功能,可使得设备接入时, Home Assistant 只需要做最少配置即可。

主题(Topic)

<discovery_prefix>/<component>/[<node_id>/]<object_id>/config
  • <discovery_prefix>:设备发现的主题前缀默认为 homeassistant,也可以变更,DIY 期间一般不做变动。
  • <component>:MQTT集成支持的类型,例如:binary_sensor,待会我要自己实现的调温灯带属于 light。在 Home Assistant 的 Integrations 的页面搜索 MQTT 能够看到各种各样的已支持的组件类型。
  • <node_id>:可选字段,Home Assistant 不会使用,一般由使用者或开发者使用,方便进行区分及管理。
  • <object_id>:设备ID,用于区分不同的设备。