joe-ng / homebridge-dyson-link

MIT License
206 stars 40 forks source link

Feature requested: Filter life #12

Closed PParit closed 6 years ago

PParit commented 6 years ago

May I ask for additional feature? Ability to display filter life in homekit?

joe-ng commented 6 years ago

I would love to do that as a Christmas present but unfortunately not, Apple doesn’t support this in the HomeKit API to show this within the Home app.

Have a great Christmas!

PParit commented 6 years ago

Thanks for the swift reply. Anyway, your plugin is already working perfect for me.

Have a great Christmas too! :-)

leoneleone commented 6 years ago

@joe-ng

Would you consider adding the two relevant FilterLife Characteristics to the plugin, even though it won't show up in the Home app? I believe that even though the Characteristics listed below won't be visible inside the Home app, HomeKit will still send you a notification to change the filter and tell you what the FiletrLife level percentage is currently. This would be very useful to HomeKit users.

I hope you will reconsider adding these Characteristics 🙂

Any Characteristic can be Added to any Service, HomeKit is agnostic when it comes to Characteristics, and the Characteristics will definitely still function even though you can't see them in Home app. Just make sure to use .addCharacteristic when defining the Characteristic under Service.Fan

`/**

Characteristic.FilterChangeIndication = function() { Characteristic.call(this, 'Filter Change Indication', '000000AC-0000-1000-8000-0026BB765291'); this.setProps({ format: Characteristic.Formats.UINT8, maxValue: 1, minValue: 0, validValues: [0,1], perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY] }); this.value = this.getDefaultValue(); };

inherits(Characteristic.FilterChangeIndication, Characteristic);

Characteristic.FilterChangeIndication.UUID = '000000AC-0000-1000-8000-0026BB765291';

// The value property of FilterChangeIndication must be one of the following: Characteristic.FilterChangeIndication.FILTER_OK = 0; Characteristic.FilterChangeIndication.CHANGE_FILTER = 1;

/**

Characteristic.FilterLifeLevel = function() { Characteristic.call(this, 'Filter Life Level', '000000AB-0000-1000-8000-0026BB765291'); this.setProps({ format: Characteristic.Formats.FLOAT, maxValue: 100, minValue: 0, perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY] }); this.value = this.getDefaultValue(); };

inherits(Characteristic.FilterLifeLevel, Characteristic);

Characteristic.FilterLifeLevel.UUID = '000000AB-0000-1000-8000-0026BB765291'; `

joe-ng commented 6 years ago

sure, will check on this

joe-ng commented 6 years ago

I have added this to the fan characteristic as well as the filter maintenance service. you may try to v1.6 to see if that works for you

leoneleone commented 6 years ago

Thanks. Will give it a try. Won’t be able to report back until my dyson filter needs to be changed though... but it’s only logical to assume HomeKit will now notify me of that. I’ll try to remember to screencap the notification when it eventually appears for confirmation. 👍🏼