Unfortunately not. It was also on my list to do. It is a bit annoying but in reality we work around it by selecting a different source and then going back and most times that works.
Also in some cases if you are on something and select DirecTV (HDMI-1 for me) then it sits there BUT if you then hit guide in our remote GUI it jumps to DirecTV.
By the way, this code has numerous issues as I can see, not the least of which is that whoever wrote it relies on connection to app ids from: http://hometest.buddytv.netdna-cdn.com/appservice/vizio_apps_prod.json
Which does not exist. So i would guess that it uses a default set and there are several APPs that do not exist in that standard set (it is WAY old). That could be easiest at first to tackle. My TV shows these … note no HBOMax, No Discover+, No FoxNow …
source_list:
- HDMI-1
- HDMI-2
- HDMI-3
- COMP
- TV
- Prime Video
- CBS All Access
- CBS News
- Crackle
- Curiosity Stream
- Fandango Now
- FilmRise
- Flixfling
- Haystack TV
- Hulu
- iHeartRadio
- NBC
- Netflix
- Plex
- Pluto TV
- RedBox
- TasteIt
- Toon Goggles
- Vudu
- XUMO
- YouTubeTV
- YouTube
- Baeble
- DAZN
- FitFusion by Jillian Michaels
- Newsy
- Cocoro TV
- ConTV
- Dove Channel
- Love Destination
- WatchFree
- AsianCrush
- Disney+
Now, taking this: pyvizio/const.py at bddb6381a50249c5c228037522c739fe9d10aa8a · vkorn/pyvizio · GitHub
Carving out the apps and fixing the horrible JSON that was written (by horrible I mean it relies on relaxed JSON rules allowing commas to be at the end with nothing following and no one should ever do that), I can get a list of names built in:
33 of them:
Which is the list of Apps reported in the interface.
So …
- That entire JSON needs to be redone correctly
- new Apps need to be added and stuffed into that code as it is obviously using that list. That would get us modern apps like HBOMax
- That should be moved and all references to this mysterious buddytv non-existant JSON file removed
Once that is done at least we should get all the apps. I just wish there was some place to go get them, not sure where because it need for any one app:
{
"name": "Netflix",
"country": ["*"],
"id": ["34"],
"config": [
{
"NAME_SPACE": 3,
"APP_ID": "1",
"MESSAGE": "None"
}
]
}
After that, the “HDMI-1” versus 'hdmi1" and cast and such can be addressed.
By the way, this is what the current APPS are as a constant in the Python code:
[
{
"name": "Prime Video",
"country": ["*"],
"id": ["33"],
"config": [
{
"APP_ID": "4",
"NAME_SPACE": 4,
"MESSAGE": "https://atv-ext.amazon.com/blast-app-hosting/html5/index.html?deviceTypeID=A3OI4IHTNZQWDD"
},
{"NAME_SPACE": 2, "APP_ID": "4", "MESSAGE": "None"}
]
},
{
"name": "CBS All Access",
"country": ["usa"],
"id": ["9"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "37",
"MESSAGE": "None"
}
]
},
{
"name": "CBS News",
"country": [
"usa",
"can"
],
"id": ["56"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "42",
"MESSAGE": "None"
}
]
},
{
"name": "Crackle",
"country": ["usa"],
"id": ["8"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "5",
"MESSAGE": "None"
}
]
},
{
"name": "Curiosity Stream",
"country": [
"usa",
"can"
],
"id": ["37"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "12",
"MESSAGE": "None"
}
]
},
{
"name": "Fandango Now",
"country": ["usa"],
"id": ["24"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "7",
"MESSAGE": "None"
}
]
},
{
"name": "FilmRise",
"country": ["usa"],
"id": ["47"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "24",
"MESSAGE": "None"
}
]
},
{
"name": "Flixfling",
"country": ["*"],
"id": ["49"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "36",
"MESSAGE": "None"
}
]
},
{
"name": "Haystack TV",
"country": [
"usa",
"can"
],
"id": ["35"],
"config": [
{
"NAME_SPACE": 0,
"APP_ID": "898AF734",
"MESSAGE": "{\"CAST_NAMESPACE\":\"urn:x-cast:com.google.cast.media\",\"CAST_MESSAGE\":{\"type\":\"LOAD\",\"media\":{},\"autoplay\":true,\"currentTime\":0,\"customData\":{\"platform\":\"sctv\"}}}"
}
]
},
{
"name": "Hulu",
"country": ["usa"],
"id": ["19"],
"config": [
{
"APP_ID": "3",
"NAME_SPACE": 4,
"MESSAGE": "https://viziosmartcast.app.hulu.com/livingroom/viziosmartcast/1/index.html#initialize"
},
{
"NAME_SPACE": 2,
"APP_ID": "3",
"MESSAGE": "None"
}
]
},
{
"name": "iHeartRadio",
"country": ["usa"],
"id": ["11"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "6",
"MESSAGE": "None"
}
]
},
{
"name": "NBC",
"country": ["usa"],
"id": ["43"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "10",
"MESSAGE": "None"
}
]
},
{
"name": "Netflix",
"country": ["*"],
"id": ["34"],
"config": [
{
"NAME_SPACE": 3,
"APP_ID": "1",
"MESSAGE": "None"
}
]
},
{
"name": "Plex",
"country": [
"usa",
"can"
],
"id": ["40"],
"config": [
{
"APP_ID": "9",
"NAME_SPACE": 4,
"MESSAGE": "https://plex.tv/web/tv/vizio-smartcast"
},
{
"NAME_SPACE": 2,
"APP_ID": "9",
"MESSAGE": "None"
}
]
},
{
"name": "Pluto TV",
"country": ["usa"],
"id": ["12"],
"config": [
{
"APP_ID": "65",
"NAME_SPACE": 4,
"MESSAGE": "https://smartcast.pluto.tv"
},
{
"NAME_SPACE": 0,
"APP_ID": "E6F74C01",
"MESSAGE": "{\"CAST_NAMESPACE\":\"urn:x-cast:tv.pluto\",\"CAST_MESSAGE\":{\"command\":\"initializePlayback\",\"channel\":\"\",\"episode\":\"\",\"time\":0}}"
}
]
},
{
"name": "RedBox",
"country": ["usa"],
"id": ["55"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "41",
"MESSAGE": "None"
}
]
},
{
"name": "TasteIt",
"country": ["*"],
"id": ["52"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "26",
"MESSAGE": "None"
}
]
},
{
"name": "Toon Goggles",
"country": [
"usa",
"can"
],
"id": ["46"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "21",
"MESSAGE": "None"
}
]
},
{
"name": "Vudu",
"country": ["usa"],
"id": ["6"],
"config": [
{
"APP_ID": "31",
"NAME_SPACE": 4,
"MESSAGE": "https://my.vudu.com/castReceiver/index.html?launch-source=app-icon"
}
]
},
{
"name": "XUMO",
"country": ["usa"],
"id": ["27"],
"config": [
{
"NAME_SPACE": 0,
"APP_ID": "36E1EA1F",
"MESSAGE": "{\"CAST_NAMESPACE\":\"urn:x-cast:com.google.cast.media\",\"CAST_MESSAGE\":{\"type\":\"LOAD\",\"media\":{},\"autoplay\":true,\"currentTime\":0,\"customData\":{}}}"
}
]
},
{
"name": "YouTubeTV",
"country": [
"usa",
"mexico"
],
"id": ["45"],
"config": [
{
"NAME_SPACE": 5,
"APP_ID": "3",
"MESSAGE": "None"
}
]
},
{
"name": "YouTube",
"country": ["*"],
"id": ["44"],
"config": [
{
"NAME_SPACE": 5,
"APP_ID": "1",
"MESSAGE": "None"
}
]
},
{
"name": "Baeble",
"country": ["usa"],
"id": ["39"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "11",
"MESSAGE": "None"
}
]
},
{
"name": "DAZN",
"country": [
"usa",
"can"
],
"id": ["57"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "34",
"MESSAGE": "None"
}
]
},
{
"name": "FitFusion by Jillian Michaels",
"country": [
"usa",
"can"
],
"id": ["54"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "39",
"MESSAGE": "None"
}
]
},
{
"name": "Newsy",
"country": [
"usa",
"can"
],
"id": ["38"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "15",
"MESSAGE": "None"
}
]
},
{
"name": "Cocoro TV",
"country": [
"usa",
"can"
],
"id": ["63"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "55",
"MESSAGE": "None"
}
]
},
{
"name": "ConTV",
"country": [
"usa",
"can"
],
"id": ["41"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "18",
"MESSAGE": "None"
}
]
},
{
"name": "Dove Channel",
"country": [
"usa",
"can"
],
"id": ["42"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "16",
"MESSAGE": "None"
}
]
},
{
"name": "Love Destination",
"country": ["*"],
"id": ["64"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "57",
"MESSAGE": "None"
}
]
},
{
"name": "WatchFree",
"country": ["usa"],
"id": ["48"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "22",
"MESSAGE": "None"
}
]
},
{
"name": "AsianCrush",
"country": [
"usa",
"can"
],
"id": ["50"],
"config": [
{
"NAME_SPACE": 2,
"APP_ID": "27",
"MESSAGE": "https://html5.asiancrush.com/?ua=viziosmartcast"
}
]
},
{
"name": "Disney+",
"country": ["usa"],
"id": ["51"],
"config": [
{
"NAME_SPACE": 4,
"APP_ID": "75",
"MESSAGE": "https://cd-dmgz.bamgrid.com/bbd/vizio_tv/index.html"
}
]
}
]
UPDATE:
I know how to get information for the apps I think. If you take your TV and navigate to say HBOMax and then get the state you see this:
As you can see it is _UNKNOWN_APP because it is not in the list, yet it shows all the information needed to be “in the list” if added. the APP_ID, namespace and message. It is unclear to me though what the other “id” is at the root level.
UPDATE:
I have now created a GIT at GitHub - kbrown01/VizioApps: Set of JSON files for modern VIZIO TVs with the APPs for Home Assistant integrations
This has about 100 APPs as of now.
I also changed the pyvizio code in util/const.py to point at these URLs from GIT and it works perfect.
In my setup right now, I can do this:
{{ state_attr('media_player.office_vizio','source_list') }}
And I get this:
[
"HDMI-1",
"HDMI-2",
"HDMI-3",
"COMP",
"TV",
"AMC+",
"Acorn TV",
"Adventure 2 Learning",
"Amazon Music",
"Apple TV",
"AsianCrush",
"BET+",
"Blackdove",
"Brown Sugar",
"CBS News",
"CBS Sports",
"Canela.TV",
"Chicken Soup",
"Christmas Plus",
"Cocoro TV",
"ConTV",
"Coronavirus.gov",
"Court TV",
"Crackle",
"Curiosity Stream",
"DAZN",
"Dark Matter TV",
"Discovery Go",
"Disney+",
"Dove Channel",
"ET Live",
"Electric Now",
"FOX NOW",
"FOX Sports",
"FilmRise",
"FilmRise Action",
"FilmRise Black TV",
"FilmRise British TV",
"FilmRise Western",
"Fite TV",
"Flixfling",
"Food Network Go",
"Fox Nation: Celebrate America",
"Free Games by PlayWorks",
"Free Movies+",
"Funimation",
"HBO Max",
"HGTV Go",
"HappyKids.tv",
"HaystackNews",
"Here TV",
"Home Talk TV",
"Hulu",
"ID Go",
"Journy",
"Jungo+",
"Kidoodle",
"Lifetime Movie Club",
"Local Now",
"Loop",
"Love Destination",
"Made It Myself",
"MagellanTV",
"Movies Anywhere",
"Movies By Fawesome",
"Movies Now",
"NBC",
"Netflix",
"Newsy",
"Ninja Kidz TV",
"PBS Kids",
"Pandora",
"Paramount+",
"Party Tyme Karaoke",
"Peacock",
"Phoenix TV",
"Plex",
"Pluto TV",
"Prime Video",
"RedBox",
"RetroCrush",
"Row8",
"Sanctuary Yoga",
"Sesame Street",
"SiriusXM",
"Sling",
"Starz",
"TLC Go",
"The Archive",
"The CW",
"The Daily Wire",
"Tidal",
"TikTok",
"Toon Goggles",
"TubiTV",
"Vevo",
"Vudu",
"WatchFree",
"Wu Tang",
"XUMO",
"YouTube",
"YouTubeTV",
"YuyuTV",
"iHeartRadio"
]
UPDATE: The JSON files are finished if anyone cares. You can use the JSON files directly from Github to be able to access all 154 Apps on a modern (at least my) Vizio TVs.