homebridge-broadlink-rm-enhanced
Version:
Broadlink RM plugin (including the mini and pro) for homebridge: https://github.com/nfarina/homebridge
162 lines (150 loc) • 5.28 kB
Markdown
| key | description | example | default |
| -- | -- | -- | -- |
| *name* | Name that you would like to give the device. | Lasko Fan | - |
| *type* | Recognizes device as a fan and parses it accordingly. | fan | fan |
| hideSwingMode | Hide oscillation controls in Home app. | true | false |
| hideRotationDirection | Hide rotation direction controls in Home app. | true | false |
| defaultFanSpeed | Default fan speed to set when turning on device. | 50 | 100 |
| defaultSwingMode | Default oscillation to show in Home app UI when turning on device. | on | off |
| alwaysResetToDefaults | Reset the Home app UI to default state according to defaultFanSpeed and defaultSwingMode. | true | false |
| powerOnMemoryAvailable | Set to true if your 'on' hex code automatically sets the fan to last known setting. | true | false |
| *data* | Object with hex codes for device operation. | - | - |
| key | description |
| -- | -- |
| *on* | Hex code or object to send for powering on the fan. |
| *off* | Hex code or object to send for powering off the fan. |
| swingOn | Hex code of object to enable fan oscillation. Set to "on" when configuring hex codes for combined fan speed and oscillation. |
| swingOff | Hex code of object to disable fan oscillation. Set to "off" when configuring hex codes for combined fan speed and oscillation. |
| swingToggle | Hex code of object to toggle fan oscillation (use if device accepts a single IR code for enabling and disabling oscillation). |
| clockwise | A hex code string or object to be sent to make the fan go clockwise. Should be defined when hideRotationDirection is set to false. |
| counterClockwise | A hex code string or object to be sent to make the fan go counter clockwise. Should be defined when hideRotationDirection is set to false. |
| stepSize | Increments of fan speed. This will update Home app UI so that fan speed increases in steps. If your fan support 4 speeds then the step size should be 100/4 = 25. If no values is provided this setting defaults to 1. |
| fanSpeedX | Hex code or object to support set the fan to speed X. |
1. All *italicized* keys are required.
2. This accessory supports combined hex codes for fan speed and oscillation/swing. Please check the config-sample.json file for more details and examples.
3. When hideSwingMode is set to false, either "swingOn/swingOff" OR "swingToggle" must be provided.
This plugin support fan accessories of different types. Below is an example of building your config.json based on your device.
1. Basic configuration
```
{
"name": "My Fan",
"type": "fan",
"data": {
"on": "20443...",
"off": "20443..."
}
}
```
2. Fan with speed control. In the example below the fan support 2 speeds.
```
{
"name": "My Fan",
"type": "fan",
"data": {
"on": "20443...",
"off": "20443...",
"stepSize": 50,
"fanSpeed50": "20500..",
"fanSpeed100": "20500.."
}
}
```
3. Fan does not memorize last set speed i.e. Powering on the fan resets it to a default speed. In the example below the IR code for data.on will start the fan and set to 50% speed with oscillation disabled and Home app UI will be updated to show correct state. This is recorded by setting up the keys alwaysResetToDefaults, defaultFanSpeed and defaultSwingMode.
```
{
"name": "My Fan",
"type": "fan",
"alwaysResetToDefaults": true,
"defaultFanSpeed": 50,
"defaultSwingMode": "off",
"data": {
"on": "20443...",
"off": "20443...",
"stepSize": 50,
"fanSpeed50": "20500..",
"fanSpeed100": "20550.."
}
}
```
4. Fan with oscillation/swing control and no speed control.
```
{
"name": "My Fan",
"type": "fan",
"alwaysResetToDefaults": true,
"defaultSwingMode": "off",
"data": {
"on": "20443...",
"off": "20443...",
"swingOn": "20600..",
"swingOff": "20660.."
}
}
```
5. Fan uses a common IR code to enable oscillation/swing at all speeds.
```
{
"name": "My Fan",
"type": "fan",
"alwaysResetToDefaults": true,
"defaultFanSpeed": 50,
"defaultSwingMode": "off",
"data": {
"on": "20443...",
"off": "20443...",
"stepSize": 50,
"swingOn": "20600...",
"swingOff": "20660...",
"fanSpeed50": "20500...",
"fanSpeed100": "20550..."
}
}
```
6. Fan uses a common IR code to enable and disable oscillation/swing at all speeds.
```
{
"name": "My Fan",
"type": "fan",
"alwaysResetToDefaults": true,
"defaultFanSpeed": 50,
"defaultSwingMode": "off",
"data": {
"on": "20443...",
"off": "20443...",
"stepSize": 50,
"swingToggle": "20600...",
"fanSpeed50": "20500...",
"fanSpeed100": "20550..."
}
}
```
7. Fan uses a unique IR code to enable or disable oscillation/swing at all speeds.
```
{
"name": "My Fan",
"type": "fan",
"alwaysResetToDefaults": true,
"defaultFanSpeed": 50,
"defaultSwingMode": "off",
"data": {
"on": "20443...",
"off": "20443...",
"stepSize": 50,
"swingOn": "on" // this has to be "on"
"swingOff": "off" // this has to be "off"
"fanSpeed50": {
"swingOn": "20500...", // replace with hex codes to turn on swing at the corresponding speed
"swingOff": "20550..." // replace with hex codes to turn off swing at the corresponding speed
},
"fanSpeed100": {
"swingOn": "20700...",
"swingOff": "20770..."
}
}
}
```