02-11-2026 03:07 AM
Hi Community,
I am attempting to integrate the Media Input Cluster (0x0507) into a Speaker (0x0022) device type, even though it is not part of the mandatory clusters for Speakers by default.
The Situation: The Google Home app and Nest Hub correctly display the input list. However, whenever I attempt to select an input via the touch screen, I receive an error: "Sorry, it looks like the Attic device isn't available right now," and the Google Home app shows "Something went wrong."
What Works:
Manual Command: Using chip-tool mediainput select-input <index> works perfectly. The device switches inputs, and the Google Home UI reflects the state change immediately.
Attribute Reporting: Status updates (CurrentInput) are reported correctly from the device to the Google ecosystem.
What Fails:
Google Home Test Suite: Every InputSelector test fails with a deviceOffline error:
Init the input to 3 failed. Error from HA: deviceOffline.
Interactive Control: Any attempt to change the input via the Google Home UI results in a failure.
Device Implementation: I have implemented the MediaInput::Delegate. Below is a simplified version of my source code:
static const MediaInputManager::InputData sAvailableInputs[] = {
{1, InputTypeEnum::kHdmi, "HDMI1", "HDMI 1"},
{2, InputTypeEnum::kHdmi, "HDMI2", "HDMI 2"},
{3, InputTypeEnum::kHdmi, "HDMI3", "HDMI 3"}
};
static MediaInputManager gMediaInputManager(1);
CHIP_ERROR MediaInputManager::HandleGetInputList(chip::app::AttributeValueEncoder & aEncoder)
{
return aEncoder.EncodeList([](const auto & encoder) -> CHIP_ERROR {
for (auto const & input : sAvailableInputs)
{
InputInfoType info;
info.index = input.index;
info.inputType = input.inputType;
info.name = chip::CharSpan::fromCharString(input.name);
info.description = chip::CharSpan::fromCharString(input.description);
ReturnErrorOnFailure(encoder.Encode(info));
}
return CHIP_NO_ERROR;
});
}
uint8_t MediaInputManager::HandleGetCurrentInput()
{
uint8_t currentInput = 1;
Attributes::CurrentInput::Get(mEndpoint, ¤tInput);
return currentInput;
}
bool MediaInputManager::HandleSelectInput(const uint8_t index)
{
Attributes::CurrentInput::Set(mEndpoint, index);
return true;
}Cloud Logs Analysis: I found a suspicious entry in the cloud logs during a failed selection attempt:
{
"data": {
"executionLog": {
"executionResults": [
{
"actionResults": [
{
"device": {
"deviceType": "SPEAKER"
}
"action": {
"trait": "TRAIT_INPUT_SELECTOR"
"actionType": "INPUTSELECTOR_SET"
}
"status": {
"statusType": "GHP_HUB_ERROR_UNAVAILABLE"
"externalDebugString": "No route found."
"isSuccess": false
}
}
]
"executionType": "MATTER_GHP"
"requestId": "13407595816390269451"
"latencyMsec": "288"
}
]
},
"locale": "en-US"
}
}It seems that the Google Home Hub (Matter-to-GHP bridge) cannot find a valid route for the INPUTSELECTOR_SET command, even though other clusters on the same endpoint (like Level Control) work fine.
Has anyone encountered this "No route found" issue when using the Media Input cluster with non-video device types? Is there a specific mandatory attribute or FeatureMap requirement I am missing to make this cluster "routable" for Google Hubs?
Thanks for your help!
Answered! Go to the Recommended Answer.
03-04-2026 12:22 PM
Thanks for reaching out.
According to Google's Supported Matter Clusters and Device Type documentation:
While the Google Home Hub has discovered and displayed the input list during the initial setup, it lacks the routing logic to actually send commands back to that cluster. This results in a "No route found" error because the Google Home Graph only recognizes On/Off and Level Control for the Speaker device type. Until Google officially extends Matter media cluster support to Speaker devices, these custom inputs will remain visible but non-functional.
03-04-2026 12:22 PM
Thanks for reaching out.
According to Google's Supported Matter Clusters and Device Type documentation:
While the Google Home Hub has discovered and displayed the input list during the initial setup, it lacks the routing logic to actually send commands back to that cluster. This results in a "No route found" error because the Google Home Graph only recognizes On/Off and Level Control for the Speaker device type. Until Google officially extends Matter media cluster support to Speaker devices, these custom inputs will remain visible but non-functional.