Homekit: Combining accessories doesn't work

Hello,

the openHAB Homekit documentation states, that it should be possible to combine two different accessory types into one Homekit device. I tried to combine a speaker and switch to create an enhanced television accessory (onState, volume, mute) - unfortunately this attempt failed. Until yet, I haven’t figured out what my problem is, so I tried another approach.

Therefore, I have copied the example from the documentation and tried it again:

Group           FanWithLight        "Fan with Light"                           {homekit = "Fan,Light"}
Switch          FanActiveStatus     "Fan Active Status"     (FanWithLight)     {homekit = "Fan.ActiveStatus"}
Number          FanRotationSpeed    "Fan Rotation Speed"    (FanWithLight)     {homekit = "Fan.RotationSpeed"}
Switch          Light               "Light"                 (FanWithLight)     {homekit = "Lighting.OnState"}

Main UI:

Regarding my openhab logs, an additional Homekit device has been created successfully. But it won’t show up in my “Home” app. I even tried to reconnect my openHAB bridge to Home but this didn’t work out too.

Is combining two different openHAB accessories to one Homekit device still supported? Am I missing something?

wrong tag. Light must be Lighting.
i see it is wrong in the documentation as well :frowning:
could you please try

Group FanWithLight "Fan with Light" {homekit = "Fan,Lighting"}

and let me know?

1 Like

Ah yes, that did the trick in this test case, thank you!
So far so good - but then I have to figure out what the problem with my television device is. As mentioned, I try to combine a speaker and a switchable accessory to control at least the onState and volume of my television.
Therefore, my group and items look like:

Group           TV       	"TV-Test"                        {homekit = "Switchable,Speaker"}
Switch          TVonState   "TV-Test onState"     	(TV)     {homekit = "Switchable.OnState"}
Number          TVVolume    "TV-Test Volume"	    (TV)     {homekit = "Speaker.Volume"}
Switch          TVMute      "TV-Test Mute"          (TV)     {homekit = "Speaker.Mute"}

It should contain every mandatory item for the switchable and speaker accessory. But in Home the device is displayed as switch only:

Any ideas?

Okay, quick update: If I create a standalone speaker object like this:

Group           Speaker       	"Speaker-Test"                        {homekit = "Speaker"}
Number          SpeakerVolume	"Speaker-Test Volume"	(Speaker)     {homekit = "Speaker.Volume"}
Switch          SpeakerMute     "Speaker-Test Mute"     (Speaker)     {homekit = "Speaker.Mute"}

Home says, “This device isn’t supported yet”. Is there a chance that the speaker accessory isn’t working at the moment or am I missing something?

Hi-

I have a Speaker/Switchable combination in order to have power, mute, volume on my home theater setup. The Home app doesn’t currently support speaker devices (yes, it’s strange but true). If you try an alternate HomeKit tool, like the Eve app, you should be able to see that the compound device is present:

I don’t love the UI that the Eve app provides, but it does support more device types than Apple.

2 Likes

i think, speaker are only supported in combination with TV (which is not supported by OH yet) or Doorbell or so.

Try SmartSpeaker. this one should work standalone
you would need to provide CurrentMediaState and CurrentMediaState but you can just create one openHAB item of type string, tag it with {homekit = CurrentMediaState, CurrentMediaState} and set the value to STOP or PAUSE

1 Like

@hww3 thank you for this hint!

@yfre I might miss something here, but this didn’t work out yet:

Group           TV01       			"TV01-Test"                       		{homekit = "Switchable,SmartSpeaker"}
Switch          TVonState   		"TV01-Test onState"     	(TV01)     	{homekit = "Switchable.OnState"}
String			TVCurrentMedia 		"TV01-Test Current Media" 	(TV01)		{homekit = "SmartSpeaker.CurrentMediaState,SmartSpeaker.TargetMediaState"}
Number          TVVolume    		"TV01-Test Volume"	    	(TV01)	    {homekit = "SmartSpeaker.Volume"}
Switch          TVMute      		"TV01-Test Mute"          	(TV01)    	{homekit = "SmartSpeaker.Mute"}


I tried to combine SmartSpeaker and Switchable accessories, but the device won’t show up in Home. Do you see any potential errors in my configuration?
Appreciate your help! :slight_smile:

Another Update: It’s the same behaviour as it is with the speaker accessory. I get a switch device in Home and I am able to control the OnState but nothing else. I cannot control the volume and mute state of this device with the Home App nor Siri.

the configuration looks correctly.

unfortunately, Apple does not tell in the homekit specification what can be combined and what not. it is more try & error approach. From our side we cannot do much, we can only send the list of accessories and home app either can show it or not.
especially speaker seems to be very special for home app.

as @hww3 has mentioned above, other apps show it correctly.

probably you need to re-think the use case and have switch and smartspeaker separated.

Okay - in this case I have to reconsider my plan and won’t be able to control the volume with Siri. Maybe Apple will implement such a feature in the future (hopefully).
Thank you for your help!