I have a full integration using pyvizio and direct access to remote commands. I was about to post it all on github in the next few days … but I have to chop it up as mine is a complete remote including directv.
Note. No broadlink or ir or anything. Just pairing your code to the set as a remote.
To be truthful if I had time, one could actually expose one service to send commands as remote and everything I did would just call that service.
As a rest_command:
vizio_processkey:
url: 'https://{{ ip }}:{{ port }}/key_command/'
method: put
content_type: "application/json"
headers:
AUTH: '{{ auth }}'
payload: '{"KEYLIST": [{"CODESET": {{ codeset | int }},"CODE": {{ code | int }},"ACTION":"KEYPRESS"}]}'
verify_ssl: false
You only need then:
IP (you should know this)
Port (likely 7245 for newer models)
AUTH (you get from pairing with the TV)
And then Codeset/Codes … like this:
Event Name Codeset Code
Volume Down 5 0
Volume Up 5 1
Mute Off 5 2
Mute On 5 3
Mute Toggle 5 4
Cycle Input 7 1
Power Off 11 0
Power On 11 1
Power Toggle 11 2
Down 3 0
Left 3 1
Select 3 2
Up 3 8
Right 3 7
Back 4 0
Exit 9 0
Menu 4 8
Home 4 3
Given that, I create something like this:
I can change inputs, cursor all around, select things, quick access some things like “Netflix” go to home, menu and turn volume up/down/mute.
As I said, in my remotes … if you select “HDMI-1” which is always DirecTV in my home on all four sets, the whole remote changes to DirecTV like this:
Or with Favorites like this:
It is pretty damn good, needs a tweak here and there, But all the posts abour setting the input to “Netflix” are great … except then you hit the “Who is watching” or when you get into the app you cannot move around. So you need the remote. So those posts are worthless really, you need the remote.
I have NO remotes and no need for them. HA and a phone.