Logitech Harmony Integration with @iandday's component

You might want to investigate emulated_roku now too, allows you to easily control HA with Harmony rather than the other way around.

Thanks for the suggestion. I followed through on it, and I now have a new use for buttons on my Harmony hub that enable me to turn lights on/off. I stumbled through the same confusion as others on where to place the Python code & getting the HH configured to see the new device.

A very useful add-on to HA.

1 Like

Can Harmony Hub read the current on/off state of an old-and-not-really-smart-TV (which has only a power-toggle button)?

Harmony doesn’t actually ‘know’ the state of anything, it ‘assumes’ based on what activity you’ve triggered, ie if it sent a power on command to a device when you pressed ‘watch a movie’ it assumes it’s on until it sends an off command at the end of that activity.

Makes sense. Thanks for your reply.

Is it possible to install this on Hassio on a rpi3? Because in Hassio i can’t use the commandline to use wget for downloading this component. What sould I do?

Edit:
I didn’t see this post Logitech Harmony Integration with @iandday's component. So it is auto discovered but only need some extra configuration. Thanks anyway :slight_smile:

Hi all,

I added this integration months ago and since few months i noticed that at HA reboot all script are triggered from imput select. I’m the only one facing this issue?

You added this over the built in component which uses used this library?

no, the default component.

Ok, so what scripts are executing on startup. Do you have an example of the script that’s executing?

any script. I have different script for different harmony activities.

Are similar to this:

  plex:
    sequence:
    - service: remote.turn_on
      entity_id: remote.harmony_hub
      data:
        activity: "27269375"

12:55
tvoff started

12:55

|TV turned off from HASS has been triggered|
||

12:55

|Harmony Soggiorno changed to Spenta|
||

12:55

|Powered off from Harmony Hub has been triggered|
||

12:55

|TV Soggiorno turned off|
||

12:55

|Prime Video turned off|
||

12:55

|BluRay turned off|
||

12:55

|VHS turned off|
||

12:55

|Netflix turned off|
||

12:55

|Plex turned off|

this time tvoff was the last so nothing happened. But for example sometimes the last is tvon so the script is executed and is quite annoying if someone is watching tv.

You want to look at any automation that would run those. What automations are those scripts in?

as you can see is the same code as the original post

  - alias: "Plex started from HASS"
    hide_entity: true
    initial_state: 'on'
    trigger:
      platform: state
      entity_id: input_select.harmony_soggiorno
      to: 'Plex'
    action:
      service: script.turn_on
      entity_id: script.plex

  - alias: "Plex started from Harmony Hub"
    hide_entity: true
    initial_state: 'on'
    trigger:
      platform: state
      entity_id: remote.harmony_hub
    condition:
      condition: template
      value_template: '{{ trigger.to_state.attributes.current_activity == "Guarda Plex" }}'
    action:
      service: input_select.select_option
      entity_id: input_select.harmony_soggiorno
      data:
        option: "Plex"

So, during startup your current_activity must be changing something to whatever activity you are on. Which would cause that to trigger.

Do your input_selects have initial set to anything? If so, remove that and it should restore the last state.

yes. Inital state was set. I just removed it. Let’s test if something changed. In the meantime thank you!

No changes. At HA boot all is triggered.

Hi Guys also hustling with this stuff…

everything is working but only get feedback from harmony when activating radiologisch, for apple tv and poweroff the input select card isnt changing…

Somebody an idea?

#Harmony-controls    
- alias: "Harmony Controls"
  initial_state: true
  hide_entity: true
  trigger:
    - platform: state
      entity_id: input_select.harmony_hub
  action:
    - service: remote.turn_on
      data_template:  
        entity_id: remote.harmony_hub
        activity: >-
          {% if is_state("input_select.harmony_hub", "AppleTV") %}38823668
          {% elif is_state("input_select.harmony_hub", "Radiologisch") %}38554559
          {% elif is_state("input_select.harmony_hub", "PowerOff") %}-1
          {% endif %}
    - service: input_select.select_option
      entity_id: input_select.harmony_hub
      data_template:
        option: "Select Activity"
#started from harmony
- alias: "AppleTV from Harmony Hub"
  trigger:
    platform: state
    entity_id: remote.harmony_hub
  condition:
    condition: template
    value_template: '{{ trigger.to_state.attributes.current_activity == "AppleTV" }}'
  action:
    service: input_select.select_option
    entity_id: input_select.harmony_hub
    data:
      option: "AppleTV"
      
- alias: "Radiologisch from Harmony Hub"
  trigger:
    platform: state
    entity_id: remote.harmony_hub
  condition:
    condition: template
    value_template: '{{ trigger.to_state.attributes.current_activity == "Radiologisch" }}'
  action:
    service: input_select.select_option
    entity_id: input_select.harmony_hub
    data:
      option: "Radiologisch"
      
- alias: "PowerOff from Harmony Hub"
  trigger:
    platform: state
    entity_id: remote.harmony_hub
  condition:
    condition: template
    value_template: '{{ trigger.to_state.attributes.current_activity == "PowerOff" }}'
  action:
    service: input_select.select_option
    entity_id: input_select.harmony_hub
    data:
      option: "PowerOff"

Can any one help me?
I made this but if i put this “input_select.kamerr” in groups.yaml
i get this error "Invalid config for [group]: expected a dictionary for dictionary value @ data[‘group’]. Got ‘input_select.kamerr’ "
What i try i cant get this to work ok.
If i run the scripts it works.
But not when i select a input from the dropbox.
What is wrong?

here are my configs.
configuration.yaml

remote:
  - platform: harmony
    host: 192.*********
    name: harmony_barts_remote
    activity: "TV kijken"

input_select:
  kamerr:
    name: harmony_barts_remote
    options:
    - select input
    - power_off
    - tv_kijken
    - shield_tv
    - muziek
    - netflix
    - pc_kijken
    initial: power_off
    icon: mdi:monitor           

automatition.yaml

- alias: "Powered off from Harmony Hub"
  trigger:
    platform: state
    entity_id: remote.harmony_barts_remote
  condition:
    condition: template
    value_template: '{{ trigger.to_state.attributes.current_activity == "PowerOff" }}'
  action:
    service: input_select.select_option
    entity_id: remote.harmony_barts_remote
    data:
      option: "Powered Off"   
  
- alias: "tv_kijken started from Harmony Hub"
  trigger:
    platform: state
    entity_id: remote.harmony_barts_remote
  condition:
    condition: template
    value_template: '{{ trigger.to_state.attributes.current_activity == "tv_kijken" }}'
  action:
    service: input_select.select_option
    entity_id: input_select.harmony_barts_remote
    data:
      option: "tv_kijken"
  
- alias: "shield_tv started from Harmony Hub"
  trigger:
    platform: state
    entity_id: remote.harmony_barts_remote
  condition:
    condition: template

scripts.yaml

tv_kijken:
  sequence:
    - service: remote.turn_on
      entity_id: remote.harmony_barts_remote
      data:
        activity: "42835954"
shield_tv:
  sequence:
    - service: remote.turn_on
      entity_id: remote.harmony_barts_remote
      data:
        activity: "42836070"
muziek:
  sequence:
    - service: remote.turn_on
      entity_id: remote.harmony_barts_remote
      data:
        activity: "42838635"
netflix: 
  sequence:
    - service: remote.turn_on
      entity_id: remote.harmony_barts_remote
      data:
        activity: "42839038"
pc_kijken:
  sequence:
    - service: remote.turn_on
      entity_id: remote.harmony_barts_remote
      data:
        activity: "43153329"
power_off:
  sequence:
    - service: remote.turn_on
      entity_id: remote.harmony_barts_remote
      data:
        activity: "-1"

input_select.yaml

kamerr:
  name: harmony_barts_remote
  options:
    - select input
    - power_off
    - tv_kijken
    - shield_tv
    - muziek
    - netflix
    - pc_kijken
  initial: power_off
  icon: mdi:monitor       

well yeah, you need to correctly configure a group. Just putting an entity_id inside the group section is not how group is supposed to look.

How do you mean?

do i have to put some thing like this?

 name: harmony_barts_remote
  options:
    - select input
    - power_off
    - tv_kijken
    - shield_tv
    - muziek
    - netflix
    - pc_kijken
  initial: power_off
  icon: mdi:monitor