This is a custom component to allow control of Encrypted SamsungTV devices in HomeAssistant. This should work on H and J 2014/2015 models (according to PySmartCrypto specs). Is a modified version of the built-in samsungtv, with some extra features.
We support HACS. Go to "STORE", search "SamsungTV Encrypted" and install.
Install it as you would do with any homeassistant custom component:
-
Download
custom_components
folder. -
Copy the
samsungtv_encrypted
direcotry within thecustom_components
directory of your homeassistant installation. Thecustom_components
directory resides within your homeassistant configuration directory. Note: if the custom_components directory does not exist, you need to create it. After a correct installation, your configuration directory should look like the following.└── ... └── configuration.yaml └── custom_components └── samsungtv_encrypted └── __init__.py └── media_player.py └── manifest.json └── get_token.py └── PySmartCrypto └── pysmartcrypto.py
-
Use get_token.py to get your Samsung TV token (use --port 8080). Store TOKEN (CTX) and SESSION_ID output. Your TV must be turned on and connected to Internet with the specific IP. Terminal where you have executed get_token.py will ask for a PIN, that will be showed in your TV screen.
Note: In some models the TOKEN can expire after a time (maybe a week, month), or even the TOKEN can be invalidated due to a loss of TV power. In that case you have to repeat this process again. -
Enable the component by editing the configuration.yaml file (within the config directory as well). Edit it by adding the following lines:
media_player: - platform: samsungtv_encrypted host: IP_ADDRESS token: TOKEN sessionid: SESSION_ID port: 8080
Note: This is the same as the configuration for the built-in Samsung Smart TV component, except for the custom variables.
-
token: (string) (Required) This contains the token of your encrypted TV (got in step 1)
-
sessionid: (string) (Required) This contains the sessionid of your encrypted TV (got in step 1)
-
key_power_off: (string) (Optional) Some TV models use an encrypted command to turn off the TV different from the command that we use by default. If this is your case, try using other encrypted commands, like 'KEY_POWER' here.
Default value: 'KEY_POWEROFF' -
turn_on_action: (script) (Optional) Script formatted command to turn on the TV. Example:
- platform: samsungtv_encrypted ... turn_on_command: service: kodi.call_method data: entity_id: media_player.kodi method: Addons.ExecuteAddon addonid: script.json-cec params: command: turn_on 0
-
-
Reboot Home Assistant
-
Congrats! You're all set!
H & J series TV's cannot be turned on over the network. If you have your Home Assistant server connected to the TV by HDMI, and configured so that you can call this service to turn on the TV:
service: hdmi_cec.power_on
So, you can use the HDMI versions and getting full control over your TV.
Send keys using a native Home Assistant service:
service: media_player.play_media
{
"entity_id": "media_player.samsungtv",
"media_content_type": "send_key",
"media_content_id": "KEY_CODE"
}
Note: Change "KEY_CODE" by desired key_code.
You can get lots of key codes here
Here you can see an example of a Home Assistant script using the media_player.play_media service:
tv_channel_down:
alias: Channel down
sequence:
- service: media_player.play_media
data:
entity_id: media_player.samsung_tv55
media_content_type: "send_key"
media_content_id: KEY_CHDOWN
- H4500
- H5500
- H6200
- H6400
- HU7100
- HU7500
- HU8500
- HU8550
- J6350
- J8000
Feel free to contribute with other working models and to submit fixes and improvements to the code.
If you like this custom component and it is useful for you, please consider supporting me: