nfarina / homebridge-sonos

Sonos plugin for homebridge: https://github.com/nfarina/homebridge
155 stars 52 forks source link

HMServiceTypeAccessoryInformation #13

Open JotWee opened 8 years ago

JotWee commented 8 years ago

Hi,

would it be possible to fill out the characteristics for HMServiceTypeAccessoryInformation, so that Manufacturer is "Sonos"?

Cheers, Jörg

fwboettger commented 8 years ago

@JotWee - should not be too complex. Will look into this for version 0.0.6 :-)

fwboettger commented 8 years ago

@nfarina - may i ask for your advice towards changes of individual characteristic values of the Service.AccessoryInformation object (as with anticipated version 0.0.5, which discovers dynamic topology changes, e.g. by dynamic grouping of zones - here the AccessoryInformation attributes would need to be updated as well).

Created this object within the SonosAccessory (which works fine via a respectively adopted getServices()), and try to update its values once a (new) device is discovered and emit a change event, as per the below code snippet. However, the 'emit' doesn't seem to have any effect. Maybe i misinterpreted HomeBridge and HAP-NodeJS libraries, any advice you'd be able to provide?

... this.informationService.setCharacteristic(Characteristic.Model, model); this.informationService.getCharacteristic(Characteristic.Model).emit('change', { oldValue:oldModel, newValue:model, context:this }); ...

Thanks much!

nfarina commented 8 years ago

@fwboettger Unfortunately AccessoryInformation is a "special" service that is pre-created internally by Homebridge as a side-effect of its instantiation of the Accessory object. You can return your own AccessoryInformation service instance from the getServices() call, but the values are simply copied to the pre-created information service. This means there's no current way to change the values after the getServices() call.

fwboettger commented 8 years ago

@nfarina - thanks much, then unfortunately the possibilities here are limited then. @JotWee - yes, setting the manufacturer to "Sonos" is possible, but further information (such as exact model and identifier) not i'm afraid at this point in time....

JotWee commented 8 years ago

Thank you very much, I, personally, will already be happy when the manufacturer is set 😊

JotWee commented 7 years ago

any news on that? manufacturer = SONOS would be nice

rjanja commented 5 years ago

I came across this issue while trying to do the same thing, dynamically updating accessory information within a plugin once that info is available.

It looks like a patch was proposed in https://github.com/nfarina/homebridge/issues/697 to make this possible, but received no activity and was subsequently automatically closed.