0.0.8 • Published 6 years ago

homebridge-mi-heatercooler v0.0.8

Weekly downloads
9
License
ISC
Repository
github
Last release
6 years ago

homebridge-mi-heatercooler

npm version

Mi / Aqara AC partner plugin for Homebridge

Feature

Control

  • Mode
    • heat
    • cool
    • auto
  • Temperature
    • 17 - 30 Celsius
  • Fan speed
    • 1 : low
    • 2 : medium
    • 3 : high
    • 4 : auto
  • Oscillate
  • LED
    • if set enableLED in config

npm.io

Display

  • Sync state with AC partner
  • Idle / Working color
    • idle : green
    • heating : orange
    • cooling : blue
  • Current power percent
    • if set ratedPower in config
    • display as Battery Level
  • Current temperature & humidity
    • if set sensorId in config
    • would add a humidity sensor in Home app

npm.io

Installation

npm i -g miio@0.14.1 homebridge homebridge-mi-heatercooler

Configuration

"accessories": [
  {
    "accessory": "MiHeaterCooler",
    "name": "AC Partner",
    "address": "192.168.1.154",
    "token": "71b4e85d8527aab32c8f9175124c0d59",
    "sensorId": "158d0001a4c582",
    "enableLED": true,
    "ratedPower": 735
  },
  ...
]
Parameter                              Description                              Required
accessory"MiHeaterCooler"                                                                      ✓  
name    unique name                                                                            ✓  
address  your AC partner ip address                                                            ✓  
token    run miio --discover to get it                                                        ✓  
sensorId  humidity-temperature sensor (bound to your AC partner) id. run miio --control yourACPartnerIP --method get_device_prop --params '["lumi.0", "device_list"]' to get it (without 'lumi.' prefix)                 
enableLED  true or 'true' to enable LED control                                                       
ratedPowerWatt, your AC Normal Rated Power, used for displaying power percent by battery level     
idlePowerWatt, determine whether current working state is idle, default value is 100                 

Extra

Auto supports most of brands set 1 solution

Otherwise, you should use an Android simulator (like BlueStacks) and Wireshark to collect and analyze your AC partner command codes by miio --token yourACPartnerToken --json-dump packetFile, then modify template.json in plugin directory

{
  "010500378033333102": {
    "tpl": "0180333331${p}${m}${w}${s}${th}${l}2",
    "brand": "haier",
    "set": "1"
  },
  ...
}

The key is your current AC partner solution model, you can get it by miio --control yourACPartnerIP --method get_model_and_state

"tpl" is this model's command template, you can use ES 6 Template Literals with these params:

/**
 * generate command
 *
 * if your ac partner sends commands like 01xxxxxxxxpmwstlx (most of brands set 1 do)
 * then you don't need template config
 *
 * template uses ES 6 Template Literals to generate commands
 * supports +, -, *, /, %, ?:, [], toString(16) and so on
 *
 * @param p number power, 0 : off, 1 : on
 * @param m number mode, 0 : heat, 1 : cool, 2 : auto
 * @param w number wind speed, 0 : low, 1 : medium, 2 : high, 3 : auto
 * @param s number swing, 0 : enabled, 1 : disabled
 * @param td number temperature, decimal
 * @param th string temperature, hexadecimal
 * @param l string led, '0' : on, 'a' : off
 */
0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago