/de_gensyn_HomeAssistantPlugin

Control Home Assistant with StreamController

Primary LanguagePythonMIT LicenseMIT

HomeAssistantPlugin for StreamController

Control your Home Assistant instance from your StreamDeck

This is no official plugin - I have no affiliation with Home Assistant, StreamDeck or StreamController.

Prerequisites

  • websocket_api must be present in your configuration.yaml. Remember to restart Home Assistant after updating your configuration.
  • You need a long-lived access token to connect to Home Assistant. To create one, go to your user profile and click on the Security tab. All the way at the bottom of the page is a button to create a new token. You can only see/copy the token immediately after creating it. Once you dismiss the dialog, you won't be able to retrieve the token.
    Be very careful with your Home Assistant information and your token. If your Home Assistant instance is accessible from the internet, anyone with this information can access and control your Home Assistant instance.

Examples

Weather button
A button showing the current weather with no service attached.
Actions:

  • Just one to show the weather text.

boolean toggle button
A button showing the icon of an input_boolean. Pressing the button calls the service toggle on the input_boolean and the color changes according to the state.
Actions:

  • Just one to show the icon of the entity and call the service.

media player button
A button to control a media player and show media info.
Actions:

  • The first action shows the media player icon, which is set according to the current media player state and the service selected for the button. In this case the service media_play_pause is selected so if the state is paused the icon is the play icon, otherwise the pause icon is shown.
    This action also shows the current media title at the bottom.
  • The second action shows the media artist of the same entity at the top.

air quality button
A button to show and control air quality.
Actions:

  • The first action shows the text and unit of measurement of a CO2 sensor with line break between value and unit.
  • The second action shows the icon of a ventilator in the same room at 50% opacity.
    Pressing the button also toggles the ventilator on/off.

Features

  • Connect to your Home Assistant instance
  • Select a domain and entity
  • Option to call a service
    • on key down: immediately when the button is pressed
    • on key hold: when a button is held
    • on key up after short press: when releasing a button before it was registered as being held
    • on key up after hold: when releasing a button after it was registered as being held
  • Option to show the entity icon
    • If the entity's state is on, the icon is shown in yellow
      • If the entity's state changes, the color is updated on the StreamDeck
    • Scale and opacity of the icon are customizable
    • If the entity is a media player, the icon is instead reflecting the selected service
  • Option to show entity state or attribute text
    • If the entity's state changes, the text is updated on the StreamDeck
    • Position and size of the text are customizable
    • Option to show unit of measurement (with or without line break)
  • Automatic connection retries when the connection is lost for up to one hour

Streamdeck UI Usage Example

Known bugs

  • You tell me

Planned features

  • Option to change icon color
  • Possibly further custom icons based on domains and services