exiva/Vizio_SmartCast_API

No way to read RESPONSE_VALUE from sound bar

Opened this issue · 2 comments

Hi, I'm trying this with a Visio SB4031-D5 sound bar and I'm stuck at pairing without a screen to read the RESPONSE_VALUE to complete the pairing challenge. I've tried many simple 4-digit pins and tried switching to the HDMI input (no signal) to no avail. Any assistance would be appreciated.

PUT /pairing/start returns

{
    "STATUS": {
        "RESULT": "SUCCESS",
        "DETAIL": "Success"
    },
    "ITEM": {
        "CHALLENGE_TYPE": 6,
        "PAIRING_REQ_TOKEN": Integer
    }
}

PUT /pairing/pair returns

    "STATUS": {
        "RESULT": "CHALLENGE_INCORRECT",
        "DETAIL": "Challenge incorrect"
    }
}
exiva commented

I don't have a soundbar so I'm not sure... How does pairing with soundbars work in the official Vizio app? Where do you get the pin from?

After decompiling the SmartCast app, I found the response PIN is "0000". The CHALLENGE_TYPE is 6 here, so you have to modify it in your response too.
$ curl -k -H "Content-Type: application/json" -X PUT -d '{"DEVICE_ID":"12351","DEVICE_NAME":"AlexaSkill"}' https://$myVizioTV:9000/pairing/start
The response code gives you the token
{"STATUS":{"RESULT":"SUCCESS","DETAIL":"Success"},"ITEM":{"CHALLENGE_TYPE":6,"PAIRING_REQ_TOKEN":456789}}

At this point, your soundbar should start making three beeps and you need to press the volume up button. Then submit a response:
curl -k -H "Content-Type: application/json" -X PUT -d '{"DEVICE_ID": "12351","CHALLENGE_TYPE": 6,"RESPONSE_VALUE": "0000","PAIRING_REQ_TOKEN": 456789}' https://$myVizioTV:9000/pairing/p air
There should be a success message and a beep in the soundbar.
{"STATUS":{"RESULT":"SUCCESS","DETAIL":"Success"},"ITEM":{"AUTH_TOKEN":"xxx"}}