0

Trying to implement the action.devices.commands.mediaClosedCaptioningOn command for the TransportControl trait.. I have included 'CAPTION_CONTROL' in the transportControlSupportedCommands array I send on the SYNC intent for the device, but when I actually ask Assistant to turn on subtitles on the device it replies "That device cannot play video" and my code never actually gets an EXECUTE Intent from Assistant.

I've also successfully implemented the mediaShuffle command but noticed that when I issue it, Assistant responds with "Music will shuffle after the current item" when my device actually plays videos.

Anyone have any clue how I tell Assistant that my device plays video? I can't seem to find it in the documentation for TransportControl -- is it under a different trait maybe?

Edit 10/13/2020:

As requested, the complete SYNC response I'm currently sending for this device:

{
    "requestId": "11724082196092058876",
    "payload": {
        "agentUserId": "xxxxxx",
        "devices": [
            {
                "id": "10.0.6.252",
                "type": "action.devices.types.STREAMING_STICK",
                "traits": [
                    "action.devices.traits.TransportControl",
                    "action.devices.traits.Volume",
                    "action.devices.traits.MediaState"
                ],
                "name": {
                    "name": "Bedroom Stick"
                },
                "willReportState": true,
                "roomHint": "bedroom",
                "attributes": {
                    "transportControlSupportedCommands": [
                        "NEXT",
                        "PREVIOUS",
                        "PAUSE",
                        "STOP",
                        "RESUME",
                        "CAPTION_CONTROL",
                        "SEEK_TO_POSITION",
                        "SEEK_RELATIVE",
                        "SET_REPEAT",
                        "SHUFFLE"
                    ],
                    "volumeMaxLevel": 100,
                    "volumeCanMuteAndUnmute": true,
                    "levelStepSize": 10,
                    "commandOnlyVolume": false,
                    "volumeDefaultPercentage": 100,
                    "supportActivityState": false,
                    "supportPlaybackState": true
                }
            }
        ]
    }
}

Exact assistant queries that produce this issue include "OK Google, turn on subtitles on Bedroom Stick" (Response: "That device can't play videos.") and "OK Google, shuffle on Bedroom Stick." (Response: "Alright, music will start shuffling after this track.")

Kate6
  • 1
  • 2
  • Thanks for your question! Could you please attach the complete `SYNC` response to your question that reproduces the issue you are describing? It would also be helpful if you could share the EXACT query you are using with Assistant. – devunwired Oct 12 '20 at 17:49
  • Added to question as requested. – Kate6 Oct 13 '20 at 18:40
  • Your SYNC response looks correct, but it looks like you're running into a targeting issue with this particular device type. I would recommend filing a bug report here in the tracker here: https://developers.google.com/assistant/smarthome/support – devunwired Oct 15 '20 at 21:21
  • "Targeting issue" meaning you think Assistant is trying to talk to a device other than this device? As I said in my OP, I have successfully implemented the mediaShuffle command... Meaning that when I tell it "OK Google, shuffle on bedroom stick" my device does actually receive the mediaShuffle command from Assistant... So I'm pretty sure it's not targeting the wrong device. Or is that not what you mean by "Targeting issue"? – Kate6 Oct 17 '20 at 00:43

1 Answers1

0

There are certain changes you need to make to your sync response that you have posted which might make your device function properly .

  • In the sync response I do see that you are making use of a STREAMING_STICK as your device type. If you go through the documentation you will see that this device has the following required traits :

    • action.devices.traits.AppSelector

    • action.devices.traits.MediaState

    • action.devices.traits.TransportControl

    • action.devices.traits.Volume

    Your sync response is missing the AppSelector trait.

  • It would be good to add the deviceInfo attribute at the end of the sync response.

More information about how to work around with Streaming stick can be found here :

https://developers.google.com/assistant/smarthome/guides/streamingstick#response