jeffschubert / homebridge-daikin-oneplus

Homebridge plugin to control a Daikin One+ thermostat
Apache License 2.0
20 stars 7 forks source link

Circulate Air Toggle and Speed Control #19

Closed jkomaha closed 2 years ago

jkomaha commented 2 years ago

Is your feature request related to a problem? Please describe:

Feature Request Describe the solution you'd like: Create a method of toggling the Circulate Air speed off and on, and then to set a High/Medium/Low for the speed.

Describe alternatives you've considered: No other available alternatives for controlling the fan speed.

Additional context: It would be great to be able change the fan speed at scheduled times throughout the day via HomeKit automation. The Daikin app/interface only allows one value to be selected, or to turn it off. You can not set it in the schedule.

jkomaha commented 2 years ago

Thank you, thank you, and thank you for the plugin btw.

FabianFrank commented 2 years ago

Do you know how the fan speed setting in the Daikin app works. I've never understood if that fan speed setting only applies to all HVAC activity, or only to air circulation and one clean? I might give it a try.

jeffschubert commented 2 years ago

I believe the fan speed pertains to the circulate and one clean only. Regular HVAC activity will ramp up the fan dynamically as needed. I do like the idea of being able to control the circulate settings. Should be possible.

RichieRich7777 commented 2 years ago

The fan speed only applies to air circulation when AC/Heat are not running. When running the outdoor unit will request blower speeds depending on demand.

I created this function (Change fan speed) from Jeffs source code but was never able to upload to github.

API Info return device.data.fanCirculateActive; return device.data.fanCirculateSpeed;

const requestedData = (requestedSpeed === 0)? {fanCirculate:0}: {fanCirculateSpeed: requestedSpeed, fanCirculate: 1};

Speeds 0 (low) 1 (Med) 2 (High)

Since there are only 3 speeds I gave these characteristics. .getCharacteristic(this.platform.Characteristic.RotationSpeed) .setProps({minValue: 0, maxValue: 3, minStep: 1}) The user is only able to select off, 33,66, or 100% Speed

I would be glad to help and have a lot of ideas. I have experience HVAC specifically installing Daikin and some dev background.

The first time I added OneClean I added a separation control like in verson 2.0. However, I didn't like the addition icons so after a lot trial and error I was able to integrate it with the thermostat button. But I don't like that you loose "Heating/Cooling to" on the button. See pics

IMG_1281

IMG_1282 IMG_1283

jeffschubert commented 2 years ago

It's been a while, but I had a free evening to add this in. So once I push out the 2.1 version, it'll have a new fan accessory you can enable. It'll toggle the Circulate Air feature between off and 'always on'. Thanks @RichieRich7777 for your input on the speeds. I pretty much went that way with it. You can move the slider between 0 (off), 33 (low), 66 (med), and 100 (high).

Thanks @jkomaha for the request. Apologies for taking so long to get around to it.

The thermostat does allows for scheduling the CirculateAir feature to come on, but I'm not adding support for that at this point. I'm not sure how it could be easily and intuitively added as an accessory for HomeKit. If anyone has ideas, I'm open. The API is like this:

{
    "fanCirculate": 0,           // 0=off, 1=always on, 2=scheduled
    "fanCirculateActive": false, //true=Circulate Air is currently running, false=off
    "fanCirculateSpeed": 1,      //0=low, 1=med, 2=high
    "fanCirculateDuration": 1,   //0=for entire schedule, 1=hourly for 5 min, 2=hourly for 15 min, 3=hourly for 30 min, 4=hourly for 45 min
    "fanCirculateStart": 48,     //48= noon. Each increment is 15 minute block from midnight. So midnight is 0, 12:30am is 2, 1am is 4, etc
    "fanCirculateStop": 72       //72=6pm
}