kiwi-cam / homebridge-broadlink-rm

[This fork supports TV accessories] Broadlink RM Mini and Pro plugin for homebridge: https://github.com/nfarina/homebridge
Apache License 2.0
302 stars 96 forks source link

RM Mini 3 / HomeKit & Fan Automation (Dyson/TRONIC) #682

Open JasonGoldenDDT opened 7 months ago

JasonGoldenDDT commented 7 months ago

Describe the bug Fan accessories fail to consistently power on/off, set speed and / or oscillation triggered by HomeKit scene.

To Reproduce Steps to reproduce the behavior:

  1. Add Fan accessory to Scene and define its settings (power, speed, oscillation). Example: Leave - "Fan turns off" Arrive - "Fan turns on, increases speed, turns on oscillation."
  2. Tap "Arrive" scene - expect fans to power on and adjust. They power on. They don't adjust.

Expected behavior Fan accessories should process multi-step instructions dynamically. JS should appropriately identify steps defined by scene and deploy them, allowing the user to define a pause or interval between steps.

Screenshots If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

Smartphone (please complete the following information):

Additional context

here is my current config.json. Ideal solution would accommodate "speed increase" and "speed decrease" options (dyson AM09) and proper handling of multi step instructions (power + speed + oscillation)

{ "platform": "BroadlinkRM", "name": "Broadlink RM", "hideScanFrequencyButton": true, "hideLearnButton": false, "hideWelcomeMessage": true, "trace": true, "debug": true, "accessories": [ { "name": "Desk Fan", "type": "fan", "host": "e8:16:56:70:4c:46", "alwaysResetToDefaults": false, "persistState": false, "resendHexAfterReload": true, "stepCycle": false, "allowResend": true, "hideRotationDirection": false, "data": { "on": [ { "data": "...", "pause": 1.5 } ], "off": "...", "swingToggle": "...", "clockwise": "...", "counterClockwise": "...", "fanSpeed10": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 } ], "fanSpeed20": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 1, "interval": 0.6 } ], "fanSpeed30": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 2, "interval": 0.6 } ], "fanSpeed40": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 3, "interval": 0.6 } ], "fanSpeed50": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 4, "interval": 0.6 } ], "fanSpeed60": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 5, "interval": 0.6 } ], "fanSpeed70": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 6, "interval": 0.6 } ], "fanSpeed80": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 2, "interval": 0.6 } ], "fanSpeed90": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "..." } ], "fanSpeed100": [ { "data": "...", "sendCount": 10, "interval": 0.6 } ] } }, { "name": "Tower Fan", "type": "fan", "host": "e8:16:56:70:4c:46", "alwaysResetToDefaults": true, "defaultSpeedStep": 1, "persistState": true, "speedCycle": true, "resendHexAfterReload": false, "speedSteps": 3, "allowResend": true, "hideRotationDirection": true, "data": { "on": "...", "off": "...", "swingToggle": "...", "fanSpeed": "..." } }, { "name": "Moon Light", "disabled": true, "type": "light", "host": "e8:16:56:70:4c:46", "data": { "on": "...", "off": "...", "brightness10": "...", "brightness100": "...", "hue360": "...", "hue350": "...", "hue30": "...", "hue40": "...", "hue315": "...", "hue45": "...", "hue120": "...", "hue90": "...", "hue140": "...", "white": "..." } }, { "name": "Above Cabinets", "type": "light", "host": "e8:16:56:70:4c:46", "data": { "on": "...", "off": "...", "brightness10": "...", "brightness50": "...", "brightness100": "...", "hue360": "...", "hue135": "...", "hue250": "...", "white": "..." } }, { "name": "Daryl's Fan", "disabled": true, "type": "fan", "host": "e8:16:56:70:4c:46", "alwaysResetToDefaults": false, "persistState": true, "resendHexAfterReload": false, "stepCycle": false, "allowResend": false, "hideRotationDirection": false, "data": { "on": [ { "data": "...", "pause": 1.5 } ], "off": "...", "swingToggle": "...", "clockwise": "...", "counterClockwise": "...", "fanSpeed10": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 } ], "fanSpeed20": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 1, "interval": 0.6 } ], "fanSpeed30": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 2, "interval": 0.6 } ], "fanSpeed40": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 3, "interval": 0.6 } ], "fanSpeed50": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 4, "interval": 0.6 } ], "fanSpeed60": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "....", "sendCount": 5, "interval": 0.6 } ], "fanSpeed70": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 6, "interval": 0.6 } ], "fanSpeed80": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 2, "interval": 0.6 } ], "fanSpeed90": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "..." } ], "fanSpeed100": [ { "data": "...", "sendCount": 10, "interval": 0.6 } ] } }, { "name": "Jason's Fan", "disabled": true, "type": "fan", "host": "e8:16:56:70:4c:46", "alwaysResetToDefaults": false, "persistState": true, "resendHexAfterReload": false, "stepCycle": false, "allowResend": false, "hideRotationDirection": false, "data": { "on": [ { "data": "...", "pause": 1.5 } ], "off": "...", "swingToggle": "...", "clockwise": "...", "counterClockwise": "....", "fanSpeed10": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 } ], "fanSpeed20": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 1, "interval": 0.6 } ], "fanSpeed30": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 2, "interval": 0.6 } ], "fanSpeed40": [ { "data": "....", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "....", "sendCount": 3, "interval": 0.6 } ], "fanSpeed50": [ { "data": "...", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...", "sendCount": 4, "interval": 0.6 } ], "fanSpeed60": [ { "data": "....", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "....", "sendCount": 5, "interval": 0.6 } ], "fanSpeed70": [ { "data": "....", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "....", "sendCount": 6, "interval": 0.6 } ], "fanSpeed80": [ { "data": "....", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "....", "sendCount": 2, "interval": 0.6 } ], "fanSpeed90": [ { "data": "....", "sendCount": 9, "interval": 0.6, "pause": 1.5 }, { "data": "...." } ], "fanSpeed100": [ { "data": "....", "sendCount": 10, "interval": 0.6 } ] } } ] }

JasonGoldenDDT commented 5 months ago

Quick update here. I am experiencing random device activation. Fan's turn on without user interaction.