Git Product home page Git Product logo

ha-samsungtv-encrypted's Introduction

hacs_badge

HomeAssistant - SamsungTV Encrypted Component

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.

Installation (There are two methods, with HACS or manual)

1. Easy Mode

We support HACS. Go to "STORE", search "SamsungTV Encrypted" and install.

2. Manual

Install it as you would do with any homeassistant custom component:

  1. Download custom_components folder.

  2. Copy the samsungtv_encrypted direcotry within the custom_components directory of your homeassistant installation. The custom_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
    

Configuration

  1. 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.

  2. Enable the component by editing the configuration.yaml file (within the config directory as well). Edit it by adding the following lines:

    Example configuration.yaml

    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.

    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_action:
          - service: kodi.call_method
            data:
              entity_id: media_player.kodi
              method: Addons.ExecuteAddon
              addonid: script.json-cec
              params:
                command: turn_on 0
      
    • turn_off_action: (script) (Optional) Script formatted command to turn off the TV. Example:

      - platform: samsungtv_encrypted
        ...
        turn_off_action:
          - service: switch.turn_on
            target:
              entity_id: switch.samsung_tv_power
      

  3. Reboot Home Assistant

  4. Congrats! You're all set!

Additional Features

1. Send Keys

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

Working Models

  • H4500
  • H5500
  • H6200
  • H6400
  • HU7100
  • HU7500
  • HU8500
  • HU8550
  • J6350

Not Working Models

  • J8000

Contribution

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:

Buy Me A Coffee

Donate with PayPal

ha-samsungtv-encrypted's People

Contributors

andsx avatar anthonynashduco avatar arigit avatar arturleao avatar dark81 avatar definitio avatar epmatt avatar hogend avatar nashant avatar sermayoral avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.