{"id":15140445,"url":"https://github.com/laser-yi/homebridge-mi-acpartner","last_synced_at":"2025-10-23T17:31:14.063Z","repository":{"id":57265623,"uuid":"100513508","full_name":"LASER-Yi/homebridge-mi-acpartner","owner":"LASER-Yi","description":"XiaoMi AC Partner plugins for HomeBridge(https://github.com/nfarina/homebridge).","archived":true,"fork":false,"pushed_at":"2023-02-27T20:54:28.000Z","size":1548,"stargazers_count":264,"open_issues_count":45,"forks_count":36,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-12-17T01:42:54.362Z","etag":null,"topics":["acpartner","homebridge","homebridge-plugin","mi","xiaomi"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LASER-Yi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-08-16T17:07:34.000Z","updated_at":"2024-11-21T03:55:36.000Z","dependencies_parsed_at":"2022-08-25T03:40:42.182Z","dependency_job_id":"e7b42137-9905-4313-960d-9f1de8e4d01e","html_url":"https://github.com/LASER-Yi/homebridge-mi-acpartner","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LASER-Yi%2Fhomebridge-mi-acpartner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LASER-Yi%2Fhomebridge-mi-acpartner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LASER-Yi%2Fhomebridge-mi-acpartner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LASER-Yi%2Fhomebridge-mi-acpartner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LASER-Yi","download_url":"https://codeload.github.com/LASER-Yi/homebridge-mi-acpartner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237861716,"owners_count":19378050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["acpartner","homebridge","homebridge-plugin","mi","xiaomi"],"created_at":"2024-09-26T08:21:16.070Z","updated_at":"2025-10-23T17:31:13.614Z","avatar_url":"https://github.com/LASER-Yi.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# homebridge-mi-acpartner\n[![npm version](https://badge.fury.io/js/homebridge-mi-acpartner.svg)](https://badge.fury.io/js/homebridge-mi-acpartner)\n\n[English Version](./doc/README_EN.md#) | 中文版\n\n\n小米空调伴侣的Homebridge插件\n\n感谢[takatost](https://github.com/takatost/homebridge-mi-ac-partner)，[miio](https://github.com/aholstenson/miio)，[YinHangCode](https://github.com/YinHangCode/homebridge-mi-aqara)和所有测试开发人员提供支持。\n\n**注意：此插件于0.6.0版本后修改了配置文件，请根据本文修改你的配置文件使插件正常工作。**\n\n**若要查看抓包教程，请访问此项目Github的[Wiki页面](https://github.com/LASER-Yi/homebridge-mi-acpartner/wiki)**\n\n### Support(支持)\n\n![AcPartner](./img/two.jpg)\n\n| 空调伴侣型号 | 功能 |\n| --- | --- |\n| 1代 \u0026 2代 | 功能如下 |\n| 3代（升级版） | 断路器开闭 |\n\n如需要使用空调伴侣中的网关功能，请使用``YinHangCode``提供的[Homebridge-Mi-Aqara](https://github.com/YinHangCode/homebridge-mi-aqara)插件。\n\n### Feature(功能）\n\n* 开关空调\n\n* 控制模式：\n\n  - 使用空调码或红外码控制你的空调\n  - 默认情况下，在17-30度之间调整空调温度\n  - 更改空调模式：制冷，制热，自动模式\n  - 改变风力和扫风状态。（请定义成``heaterCooler``）\n  - 使用红外功能学习红外码，并控制其他电器\n\n* 如果空调控制没有响应，可自定义你的空调码\n\n* 同步米家App中的空调状态\n\n* 自动生成空调码(请查看预设)\n\n* 使用温湿度传感器显示温度和湿度\n\n\n### Installation（安装）\n\n1. 安装[Homebridge](https://github.com/nfarina/homebridge)\n\n2. 安装此插件\n\n稳定版\n\n```\nsudo npm install -g homebridge-mi-acpartner\n```\n\n测试版（可能落后稳定版进度）\n\n```\nsudo npm i -g homebridge-mi-acpartner@beta\n```\n\n3. 在**config.json**中加入你的配置信息，请参考下方的``Config``和``Config Example``\n\n4. 启动Homebridge\n\n### Preset（预设）\n\n此插件目前支持的预设：\n\n    格力：2，8\n    大部分空调的1号预设\n\n如果使用格力2的空调只有自动和关机响应，请尝试多次在制冷模式下调节温度让空调响应\n\n你可以在米家App中更改预设信息\n\n如果使用climate时没有定义``customize``，插件会使用自动生成的空调码，空调可能不会响应。\n\n### Config（配置）\n\n**全局配置**\n\n| 参数 | 说明 | 必填 |\n| --- | --- | --- |\n| ``platform`` | “XiaoMiAcPartner\" | * |\n| ``devices`` | 此处写入空调伴侣的**IP地址**和**Token** | * |\n\n```Json\n\"platforms\": [\n        {\n            \"platform\": \"XiaoMiAcPartner\",\n            \"devices\":{\n                \"192.168.31.120\":\"acpartner_token_here\",\n                \"192.168.31.121\":\"acpartner_token_here\"\n            },\n            \"accessories\":[\n\n            ]\n        }\n    ]\n```\n\n\n空调绑定至米家后，可以在空调伴侣页面选择：\n\n**关于 -\u003e 然后点击空白部分数次 -\u003e 网关信息**\n\n即可看到空调伴侣的IP地址和Token\n\n**设备配置**\n\n*   climate（空调）\n\n如果没有特别的需求，推荐使用这种类型来设定空调\n\n**更改风速、扫风和灯光请使用米家App，更改后会自动同步到插件中**\n    \n| 参数 | 说明 | 示例 | 默认 | 必须 |\n| --- | --- | --- | --- | --- |\n| ``name`` | 显示在Homekit中的名字 | \"AC Partner\" | - | * |\n| ``type`` | 必须填写 | \"climate\" | - | * |\n| ``deviceIp`` | 空调伴侣的IP地址，只有单个空调伴侣无需填写 | \"192.168.31.120\" | 使用第一个填写的空调伴侣 |  |\n| ``customize`` | 自定义空调伴侣发送信号 | 参考下方的插件配置使用 |  |  |\n| ``maxTemp`` | 调节温度上限 | 28 | 30 |  |\n| ``minTemp`` | 调节温度下限 | 16 | 17 |  |\n| ``syncInterval`` | 同步间隔（毫秒），设置为0会关闭同步 | 30000 | 60000 |  |\n| ``autoStart`` | 关机状态下调节温度时启动的模式，设置成\"off\"不会启动空调 | \"heat\" | \"cool\" |  |\n| ``sensorSid`` | 填写你的温湿度传感器ID，此温湿度传感器**必须**绑定在空调伴侣下，可在米家空调伴侣中的**子设备信息**中查到 | \"lumi.158d000156e667\" |  |  |\n\n\n如果空调没有响应，可以使用此[方法](https://github.com/LASER-Yi/homebridge-mi-acpartner/wiki)来获取你正使用的空调码，然后填入到config中。\n\n大部分空调码以01开头，且能与空调伴侣同步信息；大部分红外码以FE开头，能否同步信息未知，所以在使用红外码控制空调时，请关闭插件的同步功能\n\n```Json\n\"accessories\":[\n                {\n                    \"name\": \"Ac Partner\",\n                    \"type\": \"climate\",\n                    \"customize\": {\n                        \"off\": \"关闭信号（必须）\",\n                        \"on\": \"有些空调需要这个信号（可不填写）\",\n                        \"auto\": \"自动模式信号（可不填写）\",\n                        \"heat\":{\n                            \"30\": \"（可不填写）\",\n                            \"29\": \"\",\n                            \"17\": \"\"\n                        },\n                        \"cool\":{\n                            \"30\": \"（必须）\",\n                            \"29\": \"\",\n                            \"17\": \"\"\n                        }\n                    }\n                }\n            ]\n```\n\n*   heaterCooler（空调）\n\n可以更改风速和扫风模式的空调\n\n**更改灯光请使用米家App，更改后会自动同步到插件中**\n    \n| 参数 | 说明 | 示例 | 默认 | 必须 |\n| --- | --- | --- | --- | --- |\n| ``name`` | 显示在Homekit中的名字 | \"AcPartner\" | - | * |\n| ``type`` | 必须填写 | \"heaterCooler\" | - | * |\n| ``deviceIp`` | 空调伴侣的IP地址，只有单个空调伴侣无需填写 | \"192.168.31.120\" | 使用第一个填写的空调伴侣 |  |\n| ``maxTemp`` | 调节温度上限 | 28 | 30 |  |\n| ``minTemp`` | 调节温度下限 | 16 | 17 |  |\n| ``syncInterval`` | 同步间隔（毫秒），设置为0会关闭同步 | 30000 | 60000 |  |\n| ``autoStart`` | 关机状态下调节温度时启动的模式，设置成\"off\"不会启动空调 | \"heat\" | \"cool\" |  |\n| ``sensorSid`` | 填写你的温湿度传感器ID，此温湿度传感器**必须**绑定在空调伴侣下，可在米家空调伴侣中的**子设备信息**中查到 | \"lumi.158d000156e667\" |  |  |\n| ``breaker`` | 第三代空调伴侣断路器支持 | true | false |  |\n\n**注意：此方法不支持自定义空调码**\n\n```Json\n\"accessories\":[\n                {\n                    \"name\": \"AC Partner\",\n                    \"type\": \"heaterCooler\"\n                }\n            ]\n```\n\n*   learnIR (红外学习开关)\n\n打开开关后，使用遥控器向空调伴侣发送信号，30秒内接收到的红外信号会显示在日志中。\n\n| 参数 | 说明 | 必须 |\n| --- | --- | --- |\n| ``name`` | 显示在Homekit中的名字 | * |\n| ``type`` | \"learnIR\" | * |\n| ``deviceIp`` | 空调伴侣的IP地址，只有单个空调伴侣无需填写 |  |\n\n请注意空调码仍然需要自己抓包，且可以使用相同的方法抓到红外码\n\n```Json\n\"accessories\":[\n                {\n                    \"name\": \"learnir_switch\",\n                    \"type\": \"learnIR\"\n                }\n            ]\n```\n\n*   switch（红外开关）\n\n标准红外开关\n\n\n| 参数 | 说明 | 必须 |\n| --- | --- | --- |\n| ``name`` | 显示在Homekit中的名字 | * |\n| ``type`` | \"switch\" | * |\n| ``deviceIp`` | 空调伴侣的IP地址，只有单个空调伴侣无需填写 |  |\n| ``data`` | 发送的红外信号，必须要包含``on``和``off`` | * |\n\n```Json\n\"accessories\":[\n                {\n                    \"name\": \"ir_switch\",\n                    \"type\": \"switch\",\n                    \"data\":{\n                        \"on\": \"FE018254234ON\",\n                        \"off\": \"FE019205313OFF\"\n                    }\n                }\n            ]\n```\n\n* switchRepeat (红外开关)\n\n使用此开关可以在设定的间隔下连续发送红外信号\n\n| 参数 | 说明 | 必须 |\n| --- | --- | --- |\n| ``name`` | 显示在Homekit中的名字 | * |\n| ``type`` | \"switchRepeat\" | * |\n| ``deviceIp`` | 空调伴侣的IP地址，只有单个空调伴侣无需填写 |   |\n| ``sendInterval`` | 发送间隔，单位为ms（默认为200ms） |   |\n| ``data`` | 发送的红外信号，必须要包含``on``和``off`` | * |\n\n```Json\n\"accessories\":[\n                {\n                    \"name\": \"repeat_switch\",\n                    \"type\": \"switchRepeat\",\n                    \"data\":{\n                        \"on\": [\n                            \"FE.....\",\n                            \"FE......\",\n                            \"FE......\"\n                        ],\n                        \"off\": [\n                            \"FE.....\",\n                            \"FE......\"\n                        ]\n                    }\n                }\n            ]\n```\n\n### Config Example（配置举例）\n\n配置单个空调伴侣\n\n```Json\n\"platforms\": [\n        {\n            \"platform\": \"XiaoMiAcPartner\",\n            \"devices\":{\n                \"192.168.31.120\":\"your_token_here\"\n            },\n            \"accessories\":[\n                {\n                    \"name\": \"AC Partner\",\n                    \"type\": \"climate\"\n                }\n            ]\n        }\n    ]\n```\n\n配置多个空调伴侣\n```Json\n\"platforms\": [\n        {\n            \"platform\": \"XiaoMiAcPartner\",\n            \"devices\":{\n                \"192.168.31.120\":\"your_token_here\",\n                \"192.168.31.121\":\"your_token_here\"\n            },\n            \"accessories\":[\n                {\n                    \"name\": \"AC Partner 1\",\n                    \"type\": \"climate\",\n                    \"deviceIp\":\"192.168.31.120\"\n                },\n                {\n                    \"name\": \"AC Partner 2\",\n                    \"type\": \"climate\",\n                    \"deviceIp\":\"192.168.31.121\"\n                }\n            ]\n        }\n    ]\n```\n\n空调和红外学习开关\n\n```Json\n\"platforms\": [\n        {\n            \"platform\": \"XiaoMiAcPartner\",\n            \"devices\":{\n                \"192.168.31.120\":\"your_token_here\"\n            },\n            \"accessories\":[\n                {\n                    \"name\": \"AC Partner\",\n                    \"type\": \"climate\"\n                },\n                {\n                    \"name\": \"learnir_switch\",\n                    \"type\": \"learnIR\"\n                }\n            ]\n        }\n    ]\n```\n\n空调和开关\n\n```Json\n\"platforms\": [\n        {\n            \"platform\": \"XiaoMiAcPartner\",\n            \"devices\":{\n                \"192.168.31.120\":\"your_token_here\"\n            },\n            \"accessories\":[\n                {\n                    \"name\": \"AC Partner\",\n                    \"type\": \"climate\"\n                },\n                {\n                    \"name\": \"ir_switch\",\n                    \"type\": \"switch\",\n                    \"data\":{\n                        \"on\": \"FE018254234ON\",\n                        \"off\": \"FE019205313OFF\"\n                    }\n                }\n            ]\n        }\n    ]\n```\n\n空调和多重红外开关\n\n```Json\n\"platforms\": [\n        {\n            \"platform\": \"XiaoMiAcPartner\",\n            \"devices\":{\n                \"192.168.31.120\":\"your_token_here\"\n            },\n            \"accessories\":[\n                {\n                    \"name\": \"AC Partner\",\n                    \"type\": \"climate\"\n                },\n                {\n                    \"name\": \"ir_switch\",\n                    \"type\": \"switch\",\n                    \"data\":{\n                        \"on\": [\n                            \"FE.....\",\n                            \"FE......\",\n                            \"FE......\"\n                        ],\n                        \"off\": [\n                            \"FE.....\",\n                            \"FE......\"\n                        ]\n                    }\n                }\n            ]\n        }\n    ]\n```\n\n### Contribute\n\n\n\n\u003e #### 空调码分析，以格力2为例\n\u003e {0100010727}{1}{1}{0}{1}{1e}{1} 100190E20500210200040190E20700200001020\n\u003e\n\u003e {空调型号(10)} {电源状态(1)} {模式(1)} {风力(1)} {扫风状态(1)} {设定温度(2,16进制)} {灯光状态(1)} {校验位(直到结束)}\n\u003e\n\u003e [空调状态] – 和你在米家中选择的预设有关\n\u003e\n\u003e (电源状态) – 0为关；1为开\n\u003e\n\u003e (模式) – 0为制热；1为制冷；2为自动；3为除湿（Homekit不支持）；4为松风（Homekit不支持）\n\u003e\n\u003e (风力) – 0为低挡位；1为中档位；2为高档位；3为自动\n\u003e\n\u003e (扫风状态) – 0为开；1为关\n\u003e\n\u003e (设定温度) – Hex，为16进制\n\u003e\n\u003e (灯光状态) - 0为开，a或者1为关\n\n\n\n**你可以以如下方式将码库增加到此插件中**\n\n\\#1\n\n将空调设定为扫风和自动风，将抓到的空调码标注上温度和模式，发一个issue\n\n这种空调码被标注为基础支持，即只支持调节温度和模式\n\n\\#2\n\n抓取下列空调码：\n\n* 每个模式不同风速空调码，如果没有发现具体规律可不用抓\n* 每个模式不同扫风状态空调码，如果没有发现具体规律可不用抓\n* 3种相同温度（如16，20，30）下不同的风速，扫风状态和模式\n\n找到这些空调码的规律，发一个issue\n\n这种空调码被标注为完全支持\n\n---\n\n以及，欢迎所有的Pull Requests\n\n### Changelog\n\n0.7.2\n\n修改：\n\n* 现在可以获取到断路器状态\n* 增加了部分空调码的基础支持\n\n0.7.1\n\n修改：\n\n* 使红外学习功能可用(感谢[python-miio](https://github.com/rytilahti/python-miio) #20)\n* 给发送信号增加了1秒的延迟，避免同一时间发送太多信号使得空调伴侣崩溃(#40 #41)\n* 支持第三代空调伴侣断路器\n\n修复:\n\n* 降级miio版本到0.14.1 (与Aqara冲突 #40)\n* 修复格力2导致空调伴侣崩溃的问题 (#36 #33)\n* 自定义空调码导致无响应的问题 （#41 #35)\n\nBUG:\n\n* 暂时无法获取断路器状态\n\n0.7.0\n\n修改:\n\n* 更新miio版本到0.15.6\n* 现在仅在设备成功连接上后，配件才会开始工作\n* 现在调节温度时默认会启动制冷模式\n* 修改同步锁解决多设备之间互相干扰的问题\n\n修复:\n\n* lockDrop导致EventEmit溢出(#36)\n\n0.6.5\n\n修复:\n* 修复了没有绑定温度传感器时，温度信息持续显示为0的问题;\n* 关闭同步时，首次启动同步后和米家中有出入(#29);\n\n修改:\n\n* 当空调伴侣的状态没有改变时，现在不会更新Homekit中的信息;\n\n\n0.6.3\n\n修复了空调伴侣信息同步到插件后显示不正确的问题\n\n给格力2更换了预设信息\n\n0.6.1\n\n修复了自定义空调码不工作的问题\n\n0.6.1-4\n\n重构几乎所有代码\n\n0.5.6\n\n修复了一个导致climate无法工作的问题\n\n0.5.4\n\n修复BUG\n\n0.5.1\n\n修复部分配件无响应的问题（感谢qqshfox）\n\n0.5.0\n\n支持使用heaterCooler定义空调\n\n0.4.4\n\n可以设置红外学习开关和更多的开关类型\n\n0.4.2\n\n添加同步锁来解决多设备导致的问题\n\n0.4.0\n\n插件转移成Platform，支持基础的红外开关\n\n0.3.0\n\n支持自动重连，增加预设\n\n0.2.9\n\n支持湿度信息显示\n\n0.2.8\n\n支持深度自定义\n\n0.2.7\n\n支持连接到空调伴侣的温湿度传感器\n\n0.2.6\n\nRemove Gateway temperature sensor support. Add automatic preset detection.\n\n0.2.5\n\nOuter temperature sensor support. \n\n0.2.3\n\nGree 2 preset support, customize IR control support.\n\n0.2.0\n\nSync State between hk and AC Partner. maxTemp \u0026 minTemp Support. Add gree 2 preset for testing.\n\n0.1.5\n\nPresets reconstruction.\n\n0.0.9\n\nAuto mode support, \"on\" signal support, code reconstruction, presets reconstruction.\n\n0.0.1\n\nADD Basic File.\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaser-yi%2Fhomebridge-mi-acpartner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaser-yi%2Fhomebridge-mi-acpartner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaser-yi%2Fhomebridge-mi-acpartner/lists"}