Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vizio Smartcast Integration cannot use media_player select source for anything not a TV "app" #83689

Closed
kbrown01 opened this issue Dec 9, 2022 · 18 comments

Comments

@kbrown01
Copy link

kbrown01 commented Dec 9, 2022

The problem

Some sources (specifically HDMI-1,2,3,4) as well as CAST no longer work with media_player.select_source

service: media_player.select_source
data:
source: HDMI-1
target:
entity_id: media_player.office_vizio

Worked up until the last Vizio update on newer TVs.
It is like select source works to select an app, but can't be used to change input.

Note that I have two V505-J09 which worked until Vizio update got installed. I have another Vizio (older) which had no update and it works perfectly. I can set source to HDMI-1, CAST, Netflix, etc and it will switch between those. After the update for the other TVs, you can no longer use Home Assistant to switch between these sources.

In a quick test I can confirm that using select_source does not select any "inputs" now. From the HA state viewer, anything that is an "app" (Netflix, YouTube, etc.) works fine, anything that is a physical input no longer works after the lasted Vizio Smartcast firmware update. The following do not work for three of my four Vizio TVs.

HDMI-1
HDMI-2
HDMI-3
COMP
TV

This also applies to CAST, you cannot get back to it after switching to something like Netflix. The code I use is all posted here which I cannot use anymore for these TVs:

https://github.com/kbrown01/Vizio_DirecTV

Note that this seems to be an issue with the Vizio integration and a firmware update to the TV as I still have one TV which was not updated and it works fine. The other three worked up until the firmware updated on the TVs.

What version of Home Assistant Core has the issue?

Home Assistant 2022.12.0

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant Core

Integration causing the issue

Vizio Smartcast

Link to integration documentation on our website

https://www.home-assistant.io/integrations/vizio/

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

@home-assistant
Copy link

home-assistant bot commented Dec 9, 2022

Hey there @raman325, mind taking a look at this issue as it has been labeled with an integration (vizio) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of vizio can trigger bot actions by commenting:

  • @home-assistant close Closes the issue.
  • @home-assistant rename Awesome new title Change the title of the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign vizio Removes the current integration label and assignees on the issue, add the integration domain after the command.

(message by CodeOwnersMention)


vizio documentation
vizio source
(message by IssueLinks)

@kbrown01
Copy link
Author

kbrown01 commented Dec 13, 2022

Additional information that could be the issue. By setting logging on and using media_player.select_source, I see the following log (I added the logs for before and after the command is sent):

2022-12-13 11:49:29.051 ERROR (MainThread) [homeassistant.components.system_log.external] Change to CAST

2022-12-13 11:49:34.703 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentPowerStateCommand({'_url': '/state/device/power_mode', 'item_name': 'POWER_MODE', 'default_return': 0})
2022-12-13 11:49:34.703 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.22:7345/state/device/power_mode', 'headers': {'AUTH': 'xxxxxxxxxxxx'}}
2022-12-13 11:49:34.769 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/state/device/power_mode', 'ITEMS': [{'NAME': 'Power Mode', 'CNAME': 'power_mode', 'TYPE': 'T_VALUE_V1', 'VALUE': 0}]}
2022-12-13 11:49:35.198 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentPowerStateCommand({'_url': '/state/device/power_mode', 'item_name': 'POWER_MODE', 'default_return': 0})
2022-12-13 11:49:35.199 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.90:7345/state/device/power_mode', 'headers': {'AUTH': 'xxxxxxxxxxxxx'}}
2022-12-13 11:49:35.288 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/state/device/power_mode', 'ITEMS': [{'NAME': 'Power Mode', 'CNAME': 'power_mode', 'TYPE': 'T_VALUE_V1', 'VALUE': 0}]}
2022-12-13 11:49:35.407 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentPowerStateCommand({'_url': '/state/device/power_mode', 'item_name': 'POWER_MODE', 'default_return': 0})
2022-12-13 11:49:35.407 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.5:7345/state/device/power_mode', 'headers': {'AUTH': 'xxxxxxxxxxxxxxxx'}}
2022-12-13 11:49:35.499 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'ITEMS': [{'CNAME': 'power_mode', 'TYPE': 'T_VALUE_V1', 'NAME': 'Power Mode', 'VALUE': 0}], 'URI': '/state/device/power_mode'}
2022-12-13 11:49:35.542 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentPowerStateCommand({'_url': '/state/device/power_mode', 'item_name': 'POWER_MODE', 'default_return': 0})
2022-12-13 11:49:35.542 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/state/device/power_mode', 'headers': {'AUTH': 'xxxxxxxxxxx'}}
2022-12-13 11:49:35.633 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/state/device/power_mode', 'ITEMS': [{'NAME': 'Power Mode', 'CNAME': 'power_mode', 'TYPE': 'T_VALUE_V1', 'VALUE': 1}]}
2022-12-13 11:49:35.634 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetAllSettingsCommand({'_url': '/menu_native/dynamic/tv_settings/audio', 'item_name': 'SETTINGS', 'default_return': None, 'setting_type': 'audio'})
2022-12-13 11:49:35.634 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/menu_native/dynamic/tv_settings/audio', 'headers': {'AUTH': 'xxxxxxxxxxxx'}}
2022-12-13 11:49:35.789 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/menu_native/dynamic/tv_settings/audio', 'PARAMETERS': {'HASHONLY': 'FALSE', 'FLAT': 'TRUE', 'HELPTEXT': 'FALSE'}, 'ITEMS': [{'STATUS': {'RESULT': 'FAILURE', 'DETAIL': 'Failure'}, 'CNAME': 'soundbar_settings', 'TYPE': 'T_STRING_V1', 'NAME': 'Sound Bar Settings', 'READONLY': 'TRUE', 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE'}, {'CNAME': 'soundbar_eq_mode', 'TYPE': 'T_LIST_X_V1', 'NAME': 'EQ', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None, 'ELEMENTS': []}, {'CNAME': 'soundbar_bass', 'TYPE': 'T_LIST_V1', 'NAME': 'Bass', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_treble', 'TYPE': 'T_LIST_V1', 'NAME': 'Treble', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_dialogue', 'TYPE': 'T_LIST_V1', 'NAME': 'Dialogue', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_subwoofer', 'TYPE': 'T_LIST_V1', 'NAME': 'Subwoofer', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_night_mode', 'TYPE': 'T_LIST_V1', 'NAME': 'Night Mode', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_virtual_x', 'TYPE': 'T_LIST_V1', 'NAME': 'Virtual X', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_speaker_test', 'TYPE': 'T_ACTION_V1', 'NAME': 'Speaker Test', 'VALUE': 'T_ACTION_V1', 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': 679411624}, {'CNAME': 'soundbar_info', 'TYPE': 'T_ACTION_V1', 'NAME': 'Info', 'VALUE': 'T_ACTION_V1', 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': 1227494634}, {'STATUS': {'RESULT': 'FAILURE', 'DETAIL': 'Failure'}, 'CNAME': 'tv_audio_settings', 'TYPE': 'T_STRING_V1', 'NAME': 'TV Audio Settings', 'READONLY': 'TRUE', 'ENABLED': 'FALSE'}, {'CNAME': 'tv_speakers', 'TYPE': 'T_LIST_V1', 'NAME': 'TV Speakers', 'VALUE': 'On', 'HASHVAL': 1739908163, 'INDEX': 1}, {'CNAME': 'surround_sound', 'TYPE': 'T_LIST_V1', 'NAME': 'Surround Sound', 'VALUE': 'Virtual:X', 'HASHVAL': 3073862060, 'INDEX': 0}, {'CNAME': 'volume_leveling', 'TYPE': 'T_LIST_V1', 'NAME': 'Volume Leveling', 'VALUE': 'On', 'HASHVAL': 2706857495, 'INDEX': 1}, {'CNAME': 'balance', 'TYPE': 'T_VALUE_ABS_V1', 'NAME': 'Balance', 'VALUE': 0, 'HASHVAL': 4048164689}, {'CNAME': 'bass', 'TYPE': 'T_VALUE_V1', 'NAME': 'Bass', 'VALUE': 0, 'HASHVAL': 2636064362}, {'CNAME': 'treble', 'TYPE': 'T_VALUE_V1', 'NAME': 'Treble', 'VALUE': 0, 'HASHVAL': 2027669657}, {'CNAME': 'lip_sync', 'TYPE': 'T_VALUE_V1', 'NAME': 'Lip Sync', 'VALUE': 0, 'HASHVAL': 83475440}, {'CNAME': 'digital_audio_out', 'TYPE': 'T_LIST_V1', 'NAME': 'Digital Audio Out', 'VALUE': 'PCM', 'READONLY': 'TRUE', 'HASHVAL': 655175175, 'INDEX': 1}, {'CNAME': 'analog_audio_out', 'TYPE': 'T_LIST_V1', 'NAME': 'Analog Audio Out', 'VALUE': 'Fixed', 'HASHVAL': 1924764227, 'INDEX': 0}, {'CNAME': 'dialogue_enhancer', 'TYPE': 'T_LIST_V1', 'NAME': 'Dialogue Enhancer', 'VALUE': 'Off', 'HASHVAL': 4284435521, 'INDEX': 0}, {'CNAME': 'earc_mode', 'TYPE': 'T_LIST_V1', 'NAME': 'eARC', 'VALUE': 'Off', 'HASHVAL': 4271008035, 'INDEX': 0}, {'CNAME': 'volume', 'TYPE': 'T_VALUE_V1', 'NAME': 'Volume', 'VALUE': 27, 'ENABLED': 'FALSE', 'HASHVAL': 6100475}, {'CNAME': 'mute', 'TYPE': 'T_LIST_V1', 'NAME': 'Mute', 'VALUE': 'Off', 'ENABLED': 'FALSE', 'HASHVAL': 2210383572, 'INDEX': 0}], 'NAME': 'Audio', 'TYPE': 'T_MENU_V1', 'CNAME': 'audio', 'GROUP': 'G_AUDIO', 'HASHLIST': [3267657511, 3366813733]}
2022-12-13 11:49:35.791 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentInputCommand({'_url': '/menu_native/dynamic/tv_settings/devices/current_input', 'item_name': 'CURRENT_INPUT', 'default_return': None})
2022-12-13 11:49:35.791 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/menu_native/dynamic/tv_settings/devices/current_input', 'headers': {'AUTH': 'xxxxxxxxxxxx'}}
2022-12-13 11:49:35.810 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/menu_native/dynamic/tv_settings/devices/current_input', 'PARAMETERS': {'HASHONLY': 'FALSE', 'FLAT': 'TRUE', 'HELPTEXT': 'FALSE'}, 'ITEMS': [{'CNAME': 'current_input', 'TYPE': 'T_STRING_V1', 'NAME': 'Current Input', 'VALUE': 'HDMI-1', 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': 2129379411}], 'HASHLIST': [4012391352, 3366813733]}
2022-12-13 11:49:35.811 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetInputsListCommand({'_url': '/menu_native/dynamic/tv_settings/devices/name_input', 'item_name': 'INPUTS', 'default_return': None})
2022-12-13 11:49:35.811 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/menu_native/dynamic/tv_settings/devices/name_input', 'headers': {'AUTH': 'xxxxxxxxxxxxxxx'}}
2022-12-13 11:49:35.872 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/menu_native/dynamic/tv_settings/devices/name_input', 'PARAMETERS': {'HASHONLY': 'FALSE', 'FLAT': 'TRUE', 'HELPTEXT': 'FALSE'}, 'ITEMS': [{'CNAME': 'cast', 'TYPE': 'T_DEVICE_V1', 'NAME': 'CAST', 'VALUE': {'METADATA': '', 'NAME': 'SMARTCAST'}, 'READONLY': 'TRUE', 'ENABLED': 'FALSE', 'HASHVAL': 1541296275}, {'CNAME': 'hdmi1', 'TYPE': 'T_DEVICE_V1', 'NAME': 'HDMI-1', 'VALUE': {'METADATA': '', 'NAME': 'DirecTV'}, 'ENABLED': 'FALSE', 'HASHVAL': 1288275350}, {'CNAME': 'hdmi2', 'TYPE': 'T_DEVICE_V1', 'NAME': 'HDMI-2', 'VALUE': {'METADATA': '', 'NAME': 'HDMI-2'}, 'ENABLED': 'FALSE', 'HASHVAL': 478241065}, {'CNAME': 'hdmi3', 'TYPE': 'T_DEVICE_V1', 'NAME': 'HDMI-3', 'VALUE': {'METADATA': '', 'NAME': 'HDMI-3'}, 'ENABLED': 'FALSE', 'HASHVAL': 3561985501}, {'CNAME': 'comp', 'TYPE': 'T_DEVICE_V1', 'NAME': 'COMP', 'VALUE': {'METADATA': '', 'NAME': 'COMP'}, 'ENABLED': 'FALSE', 'HASHVAL': 3372802964}, {'CNAME': 'tuner', 'TYPE': 'T_DEVICE_V1', 'NAME': 'TV', 'VALUE': {'METADATA': '', 'NAME': 'TV'}, 'READONLY': 'TRUE', 'ENABLED': 'FALSE', 'HASHVAL': 3845225872}], 'NAME': 'Name Input', 'TYPE': 'T_MENU_V1', 'CNAME': 'name_input', 'GROUP': 'G_DEVICES', 'HASHLIST': [2290841388, 4012391352, 3366813733]}

2022-12-13 11:49:35.872 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentAppConfigCommand({'_url': '/app/current', 'item_name': 'CURRENT_APP', 'default_return': None})
2022-12-13 11:49:35.872 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/app/current', 'headers': {'AUTH': 'xxxxxxxxxxxx'}}
2022-12-13 11:49:35.940 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'ITEM': {'TYPE': 'T_APP_V1', 'VALUE': {'APP_ID': '1', 'MESSAGE': '', 'NAME_SPACE': 0}}, 'URI': '/app/current'}
2022-12-13 11:50:04.137 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentInputCommand({'_url': '/menu_native/dynamic/tv_settings/devices/current_input', 'item_name': 'CURRENT_INPUT', 'default_return': None})
2022-12-13 11:50:04.137 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/menu_native/dynamic/tv_settings/devices/current_input', 'headers': {'AUTH': 'xxxxxxxxxxxxx'}}
2022-12-13 11:50:04.233 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/menu_native/dynamic/tv_settings/devices/current_input', 'PARAMETERS': {'HASHONLY': 'FALSE', 'FLAT': 'TRUE', 'HELPTEXT': 'FALSE'}, 'ITEMS': [{'CNAME': 'current_input', 'TYPE': 'T_STRING_V1', 'NAME': 'Current Input', 'VALUE': 'HDMI-1', 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': 2129379411}], 'HASHLIST': [4012391352, 3366813733]}
2022-12-13 11:50:04.234 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: ChangeInputCommand({'_url': '/menu_native/dynamic/tv_settings/devices/current_input', 'item_name': 'CURRENT_INPUT', 'VALUE': 'CAST', 'HASHVAL': 2129379411, 'REQUEST': 'MODIFY'})
2022-12-13 11:50:04.234 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'put', 'url': 'https://192.168.2.20:7345/menu_native/dynamic/tv_settings/devices/current_input', 'headers': {'AUTH': 'xxxxxxxxxxxxxxxxx', 'Content-Type': 'application/json'}, 'data': {'_url': '/menu_native/dynamic/tv_settings/devices/current_input', 'item_name': 'CURRENT_INPUT', 'VALUE': 'CAST', 'HASHVAL': 2129379411, 'REQUEST': 'MODIFY'}}
2022-12-13 11:50:04.322 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'FAILURE', 'DETAIL': 'Failure'}, 'URI': '/menu_native/dynamic/tv_settings/devices/current_input', 'PARAMETERS': {'REQUEST': 'MODIFY', 'VALUE': 'CAST', 'HASHVAL': 2129379411}}
2022-12-13 11:50:04.322 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentPowerStateCommand({'_url': '/state/device/power_mode', 'item_name': 'POWER_MODE', 'default_return': 0})
2022-12-13 11:50:04.322 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/state/device/power_mode', 'headers': {'AUTH': 'xxxxxxxxxxxxxxxx'}}
2022-12-13 11:50:04.339 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/state/device/power_mode', 'ITEMS': [{'NAME': 'Power Mode', 'CNAME': 'power_mode', 'TYPE': 'T_VALUE_V1', 'VALUE': 1}]}
2022-12-13 11:50:04.340 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetAllSettingsCommand({'_url': '/menu_native/dynamic/tv_settings/audio', 'item_name': 'SETTINGS', 'default_return': None, 'setting_type': 'audio'})
2022-12-13 11:50:04.340 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/menu_native/dynamic/tv_settings/audio', 'headers': {'AUTH': 'xxxxxxxxxxxxxx'}}
2022-12-13 11:50:04.433 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/menu_native/dynamic/tv_settings/audio', 'PARAMETERS': {'HASHONLY': 'FALSE', 'FLAT': 'TRUE', 'HELPTEXT': 'FALSE'}, 'ITEMS': [{'STATUS': {'RESULT': 'FAILURE', 'DETAIL': 'Failure'}, 'CNAME': 'soundbar_settings', 'TYPE': 'T_STRING_V1', 'NAME': 'Sound Bar Settings', 'READONLY': 'TRUE', 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE'}, {'CNAME': 'soundbar_eq_mode', 'TYPE': 'T_LIST_X_V1', 'NAME': 'EQ', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None, 'ELEMENTS': []}, {'CNAME': 'soundbar_bass', 'TYPE': 'T_LIST_V1', 'NAME': 'Bass', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_treble', 'TYPE': 'T_LIST_V1', 'NAME': 'Treble', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_dialogue', 'TYPE': 'T_LIST_V1', 'NAME': 'Dialogue', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_subwoofer', 'TYPE': 'T_LIST_V1', 'NAME': 'Subwoofer', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_night_mode', 'TYPE': 'T_LIST_V1', 'NAME': 'Night Mode', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_virtual_x', 'TYPE': 'T_LIST_V1', 'NAME': 'Virtual X', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_speaker_test', 'TYPE': 'T_ACTION_V1', 'NAME': 'Speaker Test', 'VALUE': 'T_ACTION_V1', 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': 679411624}, {'CNAME': 'soundbar_info', 'TYPE': 'T_ACTION_V1', 'NAME': 'Info', 'VALUE': 'T_ACTION_V1', 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': 1227494634}, {'STATUS': {'RESULT': 'FAILURE', 'DETAIL': 'Failure'}, 'CNAME': 'tv_audio_settings', 'TYPE': 'T_STRING_V1', 'NAME': 'TV Audio Settings', 'READONLY': 'TRUE', 'ENABLED': 'FALSE'}, {'CNAME': 'tv_speakers', 'TYPE': 'T_LIST_V1', 'NAME': 'TV Speakers', 'VALUE': 'On', 'HASHVAL': 1739908163, 'INDEX': 1}, {'CNAME': 'surround_sound', 'TYPE': 'T_LIST_V1', 'NAME': 'Surround Sound', 'VALUE': 'Virtual:X', 'HASHVAL': 3073862060, 'INDEX': 0}, {'CNAME': 'volume_leveling', 'TYPE': 'T_LIST_V1', 'NAME': 'Volume Leveling', 'VALUE': 'On', 'HASHVAL': 2706857495, 'INDEX': 1}, {'CNAME': 'balance', 'TYPE': 'T_VALUE_ABS_V1', 'NAME': 'Balance', 'VALUE': 0, 'HASHVAL': 4048164689}, {'CNAME': 'bass', 'TYPE': 'T_VALUE_V1', 'NAME': 'Bass', 'VALUE': 0, 'HASHVAL': 2636064362}, {'CNAME': 'treble', 'TYPE': 'T_VALUE_V1', 'NAME': 'Treble', 'VALUE': 0, 'HASHVAL': 2027669657}, {'CNAME': 'lip_sync', 'TYPE': 'T_VALUE_V1', 'NAME': 'Lip Sync', 'VALUE': 0, 'HASHVAL': 83475440}, {'CNAME': 'digital_audio_out', 'TYPE': 'T_LIST_V1', 'NAME': 'Digital Audio Out', 'VALUE': 'PCM', 'READONLY': 'TRUE', 'HASHVAL': 655175175, 'INDEX': 1}, {'CNAME': 'analog_audio_out', 'TYPE': 'T_LIST_V1', 'NAME': 'Analog Audio Out', 'VALUE': 'Fixed', 'HASHVAL': 1924764227, 'INDEX': 0}, {'CNAME': 'dialogue_enhancer', 'TYPE': 'T_LIST_V1', 'NAME': 'Dialogue Enhancer', 'VALUE': 'Off', 'HASHVAL': 4284435521, 'INDEX': 0}, {'CNAME': 'earc_mode', 'TYPE': 'T_LIST_V1', 'NAME': 'eARC', 'VALUE': 'Off', 'HASHVAL': 4271008035, 'INDEX': 0}, {'CNAME': 'volume', 'TYPE': 'T_VALUE_V1', 'NAME': 'Volume', 'VALUE': 27, 'ENABLED': 'FALSE', 'HASHVAL': 6100475}, {'CNAME': 'mute', 'TYPE': 'T_LIST_V1', 'NAME': 'Mute', 'VALUE': 'Off', 'ENABLED': 'FALSE', 'HASHVAL': 2210383572, 'INDEX': 0}], 'NAME': 'Audio', 'TYPE': 'T_MENU_V1', 'CNAME': 'audio', 'GROUP': 'G_AUDIO', 'HASHLIST': [3267657511, 3366813733]}
2022-12-13 11:50:04.435 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentInputCommand({'_url': '/menu_native/dynamic/tv_settings/devices/current_input', 'item_name': 'CURRENT_INPUT', 'default_return': None})
2022-12-13 11:50:04.435 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/menu_native/dynamic/tv_settings/devices/current_input', 'headers': {'AUTH': 'xxxxxxxxxxxxxxxx'}}
2022-12-13 11:50:04.557 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/menu_native/dynamic/tv_settings/devices/current_input', 'PARAMETERS': {'HASHONLY': 'FALSE', 'FLAT': 'TRUE', 'HELPTEXT': 'FALSE'}, 'ITEMS': [{'CNAME': 'current_input', 'TYPE': 'T_STRING_V1', 'NAME': 'Current Input', 'VALUE': 'HDMI-1', 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': 2129379411}], 'HASHLIST': [4012391352, 3366813733]}
2022-12-13 11:50:04.557 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetInputsListCommand({'_url': '/menu_native/dynamic/tv_settings/devices/name_input', 'item_name': 'INPUTS', 'default_return': None})
2022-12-13 11:50:04.557 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/menu_native/dynamic/tv_settings/devices/name_input', 'headers': {'AUTH': 'xxxxxxxxxxxx'}}
2022-12-13 11:50:04.605 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/menu_native/dynamic/tv_settings/devices/name_input', 'PARAMETERS': {'HASHONLY': 'FALSE', 'FLAT': 'TRUE', 'HELPTEXT': 'FALSE'}, 'ITEMS': [{'CNAME': 'cast', 'TYPE': 'T_DEVICE_V1', 'NAME': 'CAST', 'VALUE': {'METADATA': '', 'NAME': 'SMARTCAST'}, 'READONLY': 'TRUE', 'ENABLED': 'FALSE', 'HASHVAL': 1541296275}, {'CNAME': 'hdmi1', 'TYPE': 'T_DEVICE_V1', 'NAME': 'HDMI-1', 'VALUE': {'METADATA': '', 'NAME': 'DirecTV'}, 'ENABLED': 'FALSE', 'HASHVAL': 1288275350}, {'CNAME': 'hdmi2', 'TYPE': 'T_DEVICE_V1', 'NAME': 'HDMI-2', 'VALUE': {'METADATA': '', 'NAME': 'HDMI-2'}, 'ENABLED': 'FALSE', 'HASHVAL': 478241065}, {'CNAME': 'hdmi3', 'TYPE': 'T_DEVICE_V1', 'NAME': 'HDMI-3', 'VALUE': {'METADATA': '', 'NAME': 'HDMI-3'}, 'ENABLED': 'FALSE', 'HASHVAL': 3561985501}, {'CNAME': 'comp', 'TYPE': 'T_DEVICE_V1', 'NAME': 'COMP', 'VALUE': {'METADATA': '', 'NAME': 'COMP'}, 'ENABLED': 'FALSE', 'HASHVAL': 3372802964}, {'CNAME': 'tuner', 'TYPE': 'T_DEVICE_V1', 'NAME': 'TV', 'VALUE': {'METADATA': '', 'NAME': 'TV'}, 'READONLY': 'TRUE', 'ENABLED': 'FALSE', 'HASHVAL': 3845225872}], 'NAME': 'Name Input', 'TYPE': 'T_MENU_V1', 'CNAME': 'name_input', 'GROUP': 'G_DEVICES', 'HASHLIST': [2290841388, 4012391352, 3366813733]}
2022-12-13 11:50:04.605 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentAppConfigCommand({'_url': '/app/current', 'item_name': 'CURRENT_APP', 'default_return': None})
2022-12-13 11:50:04.605 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/app/current', 'headers': {'AUTH': 'xxxxxxxxxxxxx'}}
2022-12-13 11:50:04.624 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'ITEM': {'TYPE': 'T_APP_V1', 'VALUE': {'APP_ID': '1', 'MESSAGE': '', 'NAME_SPACE': 0}}, 'URI': '/app/current'}
2022-12-13 11:50:04.704 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentPowerStateCommand({'_url': '/state/device/power_mode', 'item_name': 'POWER_MODE', 'default_return': 0})
2022-12-13 11:50:04.704 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.22:7345/state/device/power_mode', 'headers': {'AUTH': 'xxxxxxxxxxxxxxx'}}
2022-12-13 11:50:04.775 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/state/device/power_mode', 'ITEMS': [{'NAME': 'Power Mode', 'CNAME': 'power_mode', 'TYPE': 'T_VALUE_V1', 'VALUE': 0}]}
2022-12-13 11:50:05.200 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentPowerStateCommand({'_url': '/state/device/power_mode', 'item_name': 'POWER_MODE', 'default_return': 0})
2022-12-13 11:50:05.200 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.90:7345/state/device/power_mode', 'headers': {'AUTH': 'xxxxxxxxxxxxx'}}
2022-12-13 11:50:05.266 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/state/device/power_mode', 'ITEMS': [{'NAME': 'Power Mode', 'CNAME': 'power_mode', 'TYPE': 'T_VALUE_V1', 'VALUE': 0}]}
2022-12-13 11:50:05.408 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentPowerStateCommand({'_url': '/state/device/power_mode', 'item_name': 'POWER_MODE', 'default_return': 0})
2022-12-13 11:50:05.408 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.5:7345/state/device/power_mode', 'headers': {'AUTH': 'xxxxxxxxxxxxxxx'}}
2022-12-13 11:50:05.543 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentPowerStateCommand({'_url': '/state/device/power_mode', 'item_name': 'POWER_MODE', 'default_return': 0})
2022-12-13 11:50:05.543 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/state/device/power_mode', 'headers': {'AUTH': 'xxxxxxxxxxxxxxx'}}
2022-12-13 11:50:05.558 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/state/device/power_mode', 'ITEMS': [{'NAME': 'Power Mode', 'CNAME': 'power_mode', 'TYPE': 'T_VALUE_V1', 'VALUE': 1}]}
2022-12-13 11:50:05.558 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetAllSettingsCommand({'_url': '/menu_native/dynamic/tv_settings/audio', 'item_name': 'SETTINGS', 'default_return': None, 'setting_type': 'audio'})
2022-12-13 11:50:05.558 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/menu_native/dynamic/tv_settings/audio', 'headers': {'AUTH': 'xxxxxxxxxxxxx'}}
2022-12-13 11:50:05.690 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/menu_native/dynamic/tv_settings/audio', 'PARAMETERS': {'HASHONLY': 'FALSE', 'FLAT': 'TRUE', 'HELPTEXT': 'FALSE'}, 'ITEMS': [{'STATUS': {'RESULT': 'FAILURE', 'DETAIL': 'Failure'}, 'CNAME': 'soundbar_settings', 'TYPE': 'T_STRING_V1', 'NAME': 'Sound Bar Settings', 'READONLY': 'TRUE', 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE'}, {'CNAME': 'soundbar_eq_mode', 'TYPE': 'T_LIST_X_V1', 'NAME': 'EQ', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None, 'ELEMENTS': []}, {'CNAME': 'soundbar_bass', 'TYPE': 'T_LIST_V1', 'NAME': 'Bass', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_treble', 'TYPE': 'T_LIST_V1', 'NAME': 'Treble', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_dialogue', 'TYPE': 'T_LIST_V1', 'NAME': 'Dialogue', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_subwoofer', 'TYPE': 'T_LIST_V1', 'NAME': 'Subwoofer', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_night_mode', 'TYPE': 'T_LIST_V1', 'NAME': 'Night Mode', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_virtual_x', 'TYPE': 'T_LIST_V1', 'NAME': 'Virtual X', 'VALUE': None, 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': None}, {'CNAME': 'soundbar_speaker_test', 'TYPE': 'T_ACTION_V1', 'NAME': 'Speaker Test', 'VALUE': 'T_ACTION_V1', 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': 679411624}, {'CNAME': 'soundbar_info', 'TYPE': 'T_ACTION_V1', 'NAME': 'Info', 'VALUE': 'T_ACTION_V1', 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': 1227494634}, {'STATUS': {'RESULT': 'FAILURE', 'DETAIL': 'Failure'}, 'CNAME': 'tv_audio_settings', 'TYPE': 'T_STRING_V1', 'NAME': 'TV Audio Settings', 'READONLY': 'TRUE', 'ENABLED': 'FALSE'}, {'CNAME': 'tv_speakers', 'TYPE': 'T_LIST_V1', 'NAME': 'TV Speakers', 'VALUE': 'On', 'HASHVAL': 1739908163, 'INDEX': 1}, {'CNAME': 'surround_sound', 'TYPE': 'T_LIST_V1', 'NAME': 'Surround Sound', 'VALUE': 'Virtual:X', 'HASHVAL': 3073862060, 'INDEX': 0}, {'CNAME': 'volume_leveling', 'TYPE': 'T_LIST_V1', 'NAME': 'Volume Leveling', 'VALUE': 'On', 'HASHVAL': 2706857495, 'INDEX': 1}, {'CNAME': 'balance', 'TYPE': 'T_VALUE_ABS_V1', 'NAME': 'Balance', 'VALUE': 0, 'HASHVAL': 4048164689}, {'CNAME': 'bass', 'TYPE': 'T_VALUE_V1', 'NAME': 'Bass', 'VALUE': 0, 'HASHVAL': 2636064362}, {'CNAME': 'treble', 'TYPE': 'T_VALUE_V1', 'NAME': 'Treble', 'VALUE': 0, 'HASHVAL': 2027669657}, {'CNAME': 'lip_sync', 'TYPE': 'T_VALUE_V1', 'NAME': 'Lip Sync', 'VALUE': 0, 'HASHVAL': 83475440}, {'CNAME': 'digital_audio_out', 'TYPE': 'T_LIST_V1', 'NAME': 'Digital Audio Out', 'VALUE': 'PCM', 'READONLY': 'TRUE', 'HASHVAL': 655175175, 'INDEX': 1}, {'CNAME': 'analog_audio_out', 'TYPE': 'T_LIST_V1', 'NAME': 'Analog Audio Out', 'VALUE': 'Fixed', 'HASHVAL': 1924764227, 'INDEX': 0}, {'CNAME': 'dialogue_enhancer', 'TYPE': 'T_LIST_V1', 'NAME': 'Dialogue Enhancer', 'VALUE': 'Off', 'HASHVAL': 4284435521, 'INDEX': 0}, {'CNAME': 'earc_mode', 'TYPE': 'T_LIST_V1', 'NAME': 'eARC', 'VALUE': 'Off', 'HASHVAL': 4271008035, 'INDEX': 0}, {'CNAME': 'volume', 'TYPE': 'T_VALUE_V1', 'NAME': 'Volume', 'VALUE': 27, 'ENABLED': 'FALSE', 'HASHVAL': 6100475}, {'CNAME': 'mute', 'TYPE': 'T_LIST_V1', 'NAME': 'Mute', 'VALUE': 'Off', 'ENABLED': 'FALSE', 'HASHVAL': 2210383572, 'INDEX': 0}], 'NAME': 'Audio', 'TYPE': 'T_MENU_V1', 'CNAME': 'audio', 'GROUP': 'G_AUDIO', 'HASHLIST': [3267657511, 3366813733]}
2022-12-13 11:50:05.691 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentInputCommand({'_url': '/menu_native/dynamic/tv_settings/devices/current_input', 'item_name': 'CURRENT_INPUT', 'default_return': None})
2022-12-13 11:50:05.691 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/menu_native/dynamic/tv_settings/devices/current_input', 'headers': {'AUTH': 'xxxxxxxxxxx'}}
2022-12-13 11:50:05.703 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'ITEMS': [{'CNAME': 'power_mode', 'TYPE': 'T_VALUE_V1', 'NAME': 'Power Mode', 'VALUE': 0}], 'URI': '/state/device/power_mode'}
2022-12-13 11:50:05.712 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/menu_native/dynamic/tv_settings/devices/current_input', 'PARAMETERS': {'HASHONLY': 'FALSE', 'FLAT': 'TRUE', 'HELPTEXT': 'FALSE'}, 'ITEMS': [{'CNAME': 'current_input', 'TYPE': 'T_STRING_V1', 'NAME': 'Current Input', 'VALUE': 'HDMI-1', 'ENABLED': 'FALSE', 'HIDDEN': 'TRUE', 'HASHVAL': 2129379411}], 'HASHLIST': [4012391352, 3366813733]}
2022-12-13 11:50:05.712 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetInputsListCommand({'_url': '/menu_native/dynamic/tv_settings/devices/name_input', 'item_name': 'INPUTS', 'default_return': None})
2022-12-13 11:50:05.712 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/menu_native/dynamic/tv_settings/devices/name_input', 'headers': {'AUTH': 'xxxxxxxxxxxxx'}}
2022-12-13 11:50:05.866 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'URI': '/menu_native/dynamic/tv_settings/devices/name_input', 'PARAMETERS': {'HASHONLY': 'FALSE', 'FLAT': 'TRUE', 'HELPTEXT': 'FALSE'}, 'ITEMS': [{'CNAME': 'cast', 'TYPE': 'T_DEVICE_V1', 'NAME': 'CAST', 'VALUE': {'METADATA': '', 'NAME': 'SMARTCAST'}, 'READONLY': 'TRUE', 'ENABLED': 'FALSE', 'HASHVAL': 1541296275}, {'CNAME': 'hdmi1', 'TYPE': 'T_DEVICE_V1', 'NAME': 'HDMI-1', 'VALUE': {'METADATA': '', 'NAME': 'DirecTV'}, 'ENABLED': 'FALSE', 'HASHVAL': 1288275350}, {'CNAME': 'hdmi2', 'TYPE': 'T_DEVICE_V1', 'NAME': 'HDMI-2', 'VALUE': {'METADATA': '', 'NAME': 'HDMI-2'}, 'ENABLED': 'FALSE', 'HASHVAL': 478241065}, {'CNAME': 'hdmi3', 'TYPE': 'T_DEVICE_V1', 'NAME': 'HDMI-3', 'VALUE': {'METADATA': '', 'NAME': 'HDMI-3'}, 'ENABLED': 'FALSE', 'HASHVAL': 3561985501}, {'CNAME': 'comp', 'TYPE': 'T_DEVICE_V1', 'NAME': 'COMP', 'VALUE': {'METADATA': '', 'NAME': 'COMP'}, 'ENABLED': 'FALSE', 'HASHVAL': 3372802964}, {'CNAME': 'tuner', 'TYPE': 'T_DEVICE_V1', 'NAME': 'TV', 'VALUE': {'METADATA': '', 'NAME': 'TV'}, 'READONLY': 'TRUE', 'ENABLED': 'FALSE', 'HASHVAL': 3845225872}], 'NAME': 'Name Input', 'TYPE': 'T_MENU_V1', 'CNAME': 'name_input', 'GROUP': 'G_DEVICES', 'HASHLIST': [2290841388, 4012391352, 3366813733]}
2022-12-13 11:50:05.867 DEBUG (MainThread) [pyvizio.api._protocol] Using Command: GetCurrentAppConfigCommand({'_url': '/app/current', 'item_name': 'CURRENT_APP', 'default_return': None})
2022-12-13 11:50:05.867 DEBUG (MainThread) [pyvizio.api._protocol] Using Request: {'method': 'get', 'url': 'https://192.168.2.20:7345/app/current', 'headers': {'AUTH': 'xxxxxxxxxxxxxx'}}
2022-12-13 11:50:05.953 DEBUG (MainThread) [pyvizio.api._protocol] Response: {'STATUS': {'RESULT': 'SUCCESS', 'DETAIL': 'Success'}, 'ITEM': {'TYPE': 'T_APP_V1', 'VALUE': {'APP_ID': '1', 'MESSAGE': '', 'NAME_SPACE': 0}}, 'URI': '/app/current'}

2022-12-13 11:50:30.078 ERROR (MainThread) [homeassistant.components.system_log.external] End Change to CAST

@kbrown01
Copy link
Author

kbrown01 commented Dec 13, 2022

More info using curl to API directly trying to switch from HDMI-1 to CAST:

curl -k -H "Content-Type: application/json" -H "AUTH: xxxxxxx" -X GET https://192.168.2.20:7345/menu_native/dynamic/tv_settings/devices/name_input

{"STATUS":{"RESULT":"SUCCESS","DETAIL":"Success"},"URI":"/menu_native/dynamic/tv_settings/devices/name_input","PARAMETERS":{"HASHONLY":"FALSE","FLAT":"TRUE","HELPTEXT":"FALSE"},"ITEMS":[{"CNAME":"cast","TYPE":"T_DEVICE_V1","NAME":"CAST","VALUE":{"METADATA":"","NAME":"SMARTCAST"},"READONLY":"TRUE","ENABLED":"FALSE","HASHVAL":1541296275},{"CNAME":"hdmi1","TYPE":"T_DEVICE_V1","NAME":"HDMI-1","VALUE":{"METADATA":"","NAME":"DirecTV"},"ENABLED":"FALSE","HASHVAL":1288275350},{"CNAME":"hdmi2","TYPE":"T_DEVICE_V1","NAME":"HDMI-2","VALUE":{"METADATA":"","NAME":"HDMI-2"},"ENABLED":"FALSE","HASHVAL":478241065},{"CNAME":"hdmi3","TYPE":"T_DEVICE_V1","NAME":"HDMI-3","VALUE":{"METADATA":"","NAME":"HDMI-3"},"ENABLED":"FALSE","HASHVAL":3561985501},{"CNAME":"comp","TYPE":"T_DEVICE_V1","NAME":"COMP","VALUE":{"METADATA":"","NAME":"COMP"},"ENABLED":"FALSE","HASHVAL":3372802964},{"CNAME":"tuner","TYPE":"T_DEVICE_V1","NAME":"TV","VALUE":{"METADATA":"","NAME":"TV"},"READONLY":"TRUE","ENABLED":"FALSE","HASHVAL":3845225872}],"NAME":"Name Input","TYPE":"T_MENU_V1","CNAME":"name_input","GROUP":"G_DEVICES","HASHLIST":[2290841388,4012391352,3366813733]}

curl -k -H "Content-Type: application/json" -H "AUTH: xxxxxxxxx" -X GET https://192.168.2.20:7345/menu_native/dynamic/tv_settings/devices/current_input

{"STATUS":{"RESULT":"SUCCESS","DETAIL":"Success"},"URI":"/menu_native/dynamic/tv_settings/devices/current_input","PARAMETERS":{"HASHONLY":"FALSE","FLAT":"TRUE","HELPTEXT":"FALSE"},"ITEMS":[{"CNAME":"current_input","TYPE":"T_STRING_V1","NAME":"Current Input","VALUE":"HDMI-1","ENABLED":"FALSE","HIDDEN":"TRUE","HASHVAL":2129379411}],"HASHLIST":[4012391352,3366813733]}

curl -k -H "Content-Type: application/json" -H "AUTH: xxxxxxxx" -X PUT -d "{\"REQUEST\": \"MODIFY\",\"VALUE\": \"CAST\",\"HASHVAL\": 2129379411}" https://192.168.2.20:7345/menu_native/dynamic/tv_settings/devices/current_input

{"STATUS":{"RESULT":"FAILURE","DETAIL":"Failure"},"URI":"/menu_native/dynamic/tv_settings/devices/current_input","PARAMETERS":{"REQUEST":"MODIFY","VALUE":"CAST","HASHVAL":2129379411}}

There are no other details, just that it fails.

@kbrown01
Copy link
Author

One additional note/workaround ... you can implement a button to call the key command:

curl -k -H "Content-Type: application/json" -H "AUTH: xxxxxxxxx" -X PUT -d "{\"KEYLIST\": [{\"CODESET\": 7,\"CODE\": 1,\"ACTION\":\"KEYPRESS\"}]}" https://192.168.2.20:7345/key_command/

This will pop open the list of inputs and calling again (and again ...) before it auto selects will cycle through the inputs. This is the old way I did this but that seems so kludgy.

@kbrown01
Copy link
Author

As you can see in the attached image, while these do appear in the source list, executing select_source on the highlighted items (and the built in CAST) does nothing, all other "apps" work. These are the physical inputs of the TV theat no longer function.

image

@kbrown01
Copy link
Author

kbrown01 commented Dec 16, 2022

Another note from additional testing. If I send the command to select_source as "HDMI-1" on my TVs (that corresponds to DirecTV as my box is plugged into that port) and then immediately send a DirecTV command to display the guide, the TV will then switch and use HDMI-1.

It is like the TV thinks the input is HDMI-1 but it does not display it until another command (like "guide") is sent to the DirecTV box and then that signal triggers the TV to change.

@kbrown01
Copy link
Author

I have successfully found the issue, I will leave it to someone to fix. See exiva/Vizio_SmartCast_API#36

Inputs like HDMI-1, HDMI-2, ... CAST are now hdmi1, hdmi2, ... cast.

@kbrown01
Copy link
Author

Just posting to see it is not closed. At least others on github that created the API recognize this issue. No comments from anyone else like here

@r14n
Copy link

r14n commented Dec 28, 2022

Definitely hoping for a fix for this soon!!

@r14n
Copy link

r14n commented Dec 28, 2022

For me, I have to get the hashval of the current input, and pass that to the command to change it, or else I get a hashval error. So I have to make two API calls like so, but at least I can switch inputs now.

hashval=$( curl -s -k -H "Content-Type: application/json" -H "AUTH: xxxxxxxx" -X GET https://192.168.100.20:7345/menu_native/dynamic/tv_settings/devices/current_input | jq --raw-output '.ITEMS[0].HASHVAL' ); curl -k -H "Content-Type: application/json" -H "AUTH: xxxxxxxx" -X PUT -d "{\"REQUEST\": \"MODIFY\",\"VALUE\": \"hdmi2\",\"HASHVAL\": $hashval}" https://192.168.100.20:7345/menu_native/dynamic/tv_settings/devices/current_input

@loowee2k5
Copy link

For me, I have to get the hashval of the current input, and pass that to the command to change it, or else I get a hashval error. So I have to make two API calls like so, but at least I can switch inputs now.

hashval=$( curl -s -k -H "Content-Type: application/json" -H "AUTH: xxxxxxxx" -X GET https://192.168.100.20:7345/menu_native/dynamic/tv_settings/devices/current_input | jq --raw-output '.ITEMS[0].HASHVAL' ); curl -k -H "Content-Type: application/json" -H "AUTH: xxxxxxxx" -X PUT -d "{\"REQUEST\": \"MODIFY\",\"VALUE\": \"hdmi2\",\"HASHVAL\": $hashval}" https://192.168.100.20:7345/menu_native/dynamic/tv_settings/devices/current_input

How would you go into integrating this for a Hass newbie like I am? Do I need to setup any other external script or do I just use this code into a specific Hass module? Only need hdmi1 to work with any type of trigger. Thx!

@r14n
Copy link

r14n commented Jan 6, 2023

For me, I have to get the hashval of the current input, and pass that to the command to change it, or else I get a hashval error. So I have to make two API calls like so, but at least I can switch inputs now.
hashval=$( curl -s -k -H "Content-Type: application/json" -H "AUTH: xxxxxxxx" -X GET https://192.168.100.20:7345/menu_native/dynamic/tv_settings/devices/current_input | jq --raw-output '.ITEMS[0].HASHVAL' ); curl -k -H "Content-Type: application/json" -H "AUTH: xxxxxxxx" -X PUT -d "{\"REQUEST\": \"MODIFY\",\"VALUE\": \"hdmi2\",\"HASHVAL\": $hashval}" https://192.168.100.20:7345/menu_native/dynamic/tv_settings/devices/current_input

How would you go into integrating this for a Hass newbie like I am? Do I need to setup any other external script or do I just use this code into a specific Hass module? Only need hdmi1 to work with any type of trigger. Thx!

First put this (replace xxxxxxx with your auth token and the ip address with your TV's IP) in your configuration.yaml


shell_command:
 tv_input_hdmi1: 'hashval=$( curl -s -k -H "Content-Type: application/json" -H "AUTH: XXXXXXXX" -X GET https://192.168.100.20:7345/menu_native/dynamic/tv_settings/devices/current_input | jq --raw-output ".ITEMS[0].HASHVAL" ); curl -k -H "Content-Type: application/json" -H "AUTH: XXXXXXXX" -X PUT -d "{\"REQUEST\": \"MODIFY\",\"VALUE\": \"hdmi1\",\"HASHVAL\": $hashval}" https://192.168.100.20:7345/menu_native/dynamic/tv_settings/devices/current_input'

Then you'll be able to call service shell_command.tv_input_hdmi1 from wherever you need to in HA.

@loowee2k5
Copy link

Thx a lot! I went and created an auth token in the profile page, then pasted the provided code in the configurations.yaml via the studio code editor. Then I added the previously created auth token in replacement of the XXXXXX and changed IP for my TV's local wifi ip.

Seems to be all good but tv won't change. Just to make sure. Shouldn't the auth token be for tv access? I might not have the correct one set. The one I got from hass has many random chars and is much longer than the number of XXXXXX.

Thx again and sorry for my newbyness. Been learning a lot in the last week. 20 years Homeseer user so I got the logics but never coded in YAML..

@r14n
Copy link

r14n commented Jan 6, 2023 via email

@kbrown01
Copy link
Author

kbrown01 commented Jan 6, 2023

This site has instructions on getting the auth code.

@issue-triage-workflows
Copy link

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.
Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍
This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

@issue-triage-workflows issue-triage-workflows bot closed this as not planned Won't fix, can't repro, duplicate, stale May 30, 2023
@kbrown01
Copy link
Author

No prob. Workarounds do exist and I guess I will look at taking this over in the future as no one seems to think this is something of value.

@raman325
Copy link
Contributor

It's not about not thinking it's something of value @kbrown01 - the reality is:

  1. I have never had a Vizio Smartcast TV and took over maintenance because the previous owner was no longer active. I have historically had some help by getting remote access to a user's TV but even that was hard to use for support.
  2. I previously extended this integration for my sound bar but I no longer use it.

I'm happy to make updates where possible, but I don't have the bandwidth to troubleshoot this particular issue, and if you have a handle on this then please, feel free to PR the required changes into either or both the integration and the lib.

@github-actions github-actions bot locked and limited conversation to collaborators Jul 9, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants