阅山

  • WIN
    • CSharp
    • JAVA
    • OAM
    • DirectX
    • Emgucv
  • UNIX
    • FFmpeg
    • QT
    • Python
    • Opencv
    • Openwrt
    • Twisted
    • Design Patterns
    • Mysql
    • Mycat
    • MariaDB
    • Make
    • OAM
    • Supervisor
    • Nginx
    • KVM
    • Docker
    • OpenStack
  • WEB
    • ASP
    • Node.js
    • PHP
    • Directadmin
    • Openssl
    • Regex
  • APP
    • Android
  • AI
    • Algorithm
    • Deep Learning
    • Machine Learning
  • IOT
    • Device
    • MSP430
  • DIY
    • Algorithm
    • Design Patterns
    • MATH
    • X98 AIR 3G
    • Tucao
    • fun
  • LIFE
    • 美食
    • 关于我
  • LINKS
  • ME
Claves
长风破浪会有时,直挂云帆济沧海
  1. 首页
  2. Platforms
  3. LINUX
  4. 正文

Python获取米家智能家居设备并控制

2025-11-03

经过博主测试后,博主选择了Home Assistant+API的方案。

一、需求概要

RT。博主百度了一下,发现大概有3种路径:

  • 使用Home Assistant集成米家设备,并调用HA的httpapi控制;
  • 使用python-miio库来控制,使用micloud或者Xiaomi-cloud-tokens-extractor获取设备的Token。

二、Home Assistant方案

REST API | Home Assistant Developer Docs

2.1 获取状态接口

GET /api/states/<entity_id>

2.2 控制下发接口

POST /api/services/<domain>/<service>

基本格式:

POST http://<HA地址>:8123/api/services/<domain>/<service>
Authorization: Bearer <Long-Lived Access Token>
Content-Type: application/json

{
  "entity_id": "<实体ID>",
  ...其它参数...
}

domain的分类:

在 Home Assistant 中,每一种设备类型或逻辑组件,都属于一个 domain(领域)。
domain 就像模块名,每个 domain 内提供若干个可执行的 service(服务)。

例如:

Domain说明常见实体类型常用服务
light灯光控制light.xxxturn_on, turn_off, toggle, turn_on
switch开关类设备switch.xxxturn_on, turn_off, toggle
climate空调、地暖、温控器climate.xxxset_temperature, set_hvac_mode, turn_on, turn_off
fan风扇fan.xxxturn_on, turn_off, set_percentage
cover窗帘、卷帘门cover.xxxopen_cover, close_cover, stop_cover
media_player音响、电视media_player.xxxplay_media, volume_set, turn_on, turn_off
scene场景调用scene.xxxturn_on
script自动化脚本script.xxxturn_on, reload
automation自动化任务automation.xxxtrigger, turn_on, turn_off
notify通知服务无固定实体notify.notify, notify.mobile_app_xxx
input_boolean自定义开关input_boolean.xxxturn_on, turn_off, toggle
input_number数值输入input_number.xxxset_value
input_select选项选择input_select.xxxselect_option
lock智能门锁lock.xxxlock, unlock
alarm_control_panel安防控制面板alarm_control_panel.xxxarm_home, arm_away, disarm
vacuum扫地机器人vacuum.xxxstart, stop, return_to_base, set_fan_speed
tts语音合成tts.google_translate_saysay
homeassistant系统级操作-restart, stop, update_entity, reload_core_config

(还有几十个 domain,如 camera、binary_sensor、sensor、input_text、person、zone、group、timer、counter、shell_command 等)

标签: 暂无
最后更新:2025-11-03

代号山岳

知之为知之 不知为不知

点赞
< 上一篇

COPYRIGHT © 2099 登峰造极境. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备14031139号-5

川公网安备51012202000587号