Deprecated Harmony entity detected in script.theater_mode_off

“Deprecated Harmony entity detected in script.theater_mode_off
This stops working in version 2024.6.0. Please address before upgrading.
Your Harmony entity switch.hub_laserdisc is being used in script.theater_mode_off. A select entity is available and should be used going forward.
Please adjust script.theater_mode_off to fix this issue.”

There are 17 similar entries all related to the Logitech Harmony Hub Integration and the scripts the plugin generates I guess.

So this refers to Logitech Harmony Hub for the remote controls. I have googled every combination of this message and have no idea what it means or what the fix is.

Can’t even find documentation on what changes in 2024.6

  • Core2023.12.0
  • Supervisor2023.11.6
  • Operating System11.2
  • Frontend20231206.0

Any clues?

Mic

3 Likes

It seems like it’s telling you to use the select entity it created for you to activate the scene (or whatever Harmony’s word for that is) instead of using the switch. This means that in your automation, instead of having a switch.turn_on Action (I presume), you’ll need to change it to a input_select.select_option Action.

1 Like

What you wrote makes sense…

When I installed the Harmony integration, it automatically created the controls.

Now apparently I have to manually change every single entry…

ooh I can’t wait…

I guess I won’t be using HA with the Harmony remote for a couple of years.

If you have the VSCode add-on installed you can use find/replace in your automations & scripts to make the change. How many automations/scripts do you have that need changing?

I was a bit confused by this last night, but I figured it out this morning. Basically instead of using the individual switch state, you use the input_select state.

- platform: state
    entity_id:
    - switch.lounge_listen_to_music
    to: 'on'
    id: music_on

became

  - platform: state
    entity_id:
      - select.lounge_activities
    to: Listen to Music
    id: music_on

So the entity changes to select.{remote_name}_activities and the to state becomes the scene/activity name.

Annoying to change, but not massively difficult. As @nickh66 said, you could probably do a find & replace for a lot of it.

And you have until June next year to sort!

1 Like

Nick…can you add a snippet on how to turn the activity off using select.lounge_activities?

@kwkid63 Use power_off as the activity name you want to switch to. This worked for me.

Using the automation UI I got everything powered off by using either the select.select_option service call or the device action Change {remote name} Activities Option.

Guessing it would be a state check something like

- platform: state
    entity_id:
      - select.lounge_activities
    to: Power Off
    id: shutdown_all

Assuming ‘Power Off’ is the default to power off the system.

If you want to switch between scenes/Activities, just change the to to reflect the new activity you want to run.

Basically you either turn it all off or switch to a different activity. I don’t believe there’s a “turn off an activity” concept in the Harmony world.

I managed to figure this out after spending way too much than required. I was using the Services view running HomeAssistant OS version 2023.12.0. The examples given in the documentation did not work for me. This is what worked for me.

service: select.select_option
data:
entity_id: select.harmony_hub_activities
option: power_off

service: select.select_option
data:
entity_id: select.harmony_hub_activities
option: Sonos

2 Likes

Simple update, not sure what some of the other examples with option or IDs. I prefer this type of integration because you choose fields vs typing them.

Prior trigger:

  - platform: state
    entity_id: switch.basement_hub_watch_tv
    to: "on"

Updated trigger:

  - platform: state
    entity_id:
      - select.basement_hub_activities
    to: Watch TV

Example of options that match my Harmony setup (including power off)

Screenshot 2023-12-08 at 1.57.23 PM

@hwkid63 solution works for me. This is a frustrating change. The Logitech Harmony Hub integration page makes no mention of the Select entity…

I’d love to know why this is getting deprecated as well. I can’t find any info on the integration page itself, or the github really, and the switch method was a lot easier/cleaner to write automations for. Not really sure what anyone gains from this, especially considering it’s not like Logitech is making any changes to the Harmony APIs at this point…

I don’t quite understand this change yet, maybe you can help me. Today switch. Entities are created by the activities, which is great in my opinion. I can now access these switch entities directly, e.g. in the HomeKit bridge, and can thus start the activities directly via the homekit switch. Have I understood correctly that the plugin will receive an update in the future and that today’s switch entities will then become select entities tomorrow and I will still be able to control them directly afterwards? Then I wouldn’t need to do anything now, because the plugin will be updated first.

Or will the switch entities be switched off and no new select entities will be created? And if so, how can I make a switch out of the attributes today?

Does anyone understand what I’m asking?

Basically the select entity already exists right now. Instead of adding the entities directly in an automation, you ‘call a service’ and you choose the select.select service, point it to the select.harmony_hub_wohnzimmer entity and then under ‘options’ you have to fill out the name of the activity you want. I can tell you that power_off is the generic harmony power off option you want but the OTHER options, which are definitely case specific, are found in either the drop down list in the device integration itself, or you can find them using ‘developer tools’ to look and test the state for that entity. Based on your screenshot, I’m assuming that maybe it’s going to be Smart TV, Fernseher and Computer

Yeah, not super intuitive.

Now then, if you want to present this to homekit the same way you have been, which is what I want to do for google home, you will ADDITIONALLY need to create a helper that’s just a toggle switch, and then create an automation so that when the toggle is on, it turns on one thing and when it’s off it does that power_off that I mentioned.

You should then be able to present that entity to home kit with a name you like and it’ll treat it just like ‘on/off’ from before. What a pain though, eh?

edit: to clarify, the current switch entities are going away, so when you upgrade to 2024.6, your current automations with them will break. You can’t present the new select entity to homekit directly, you have to create an automation that will leverage it and then come up with a way to present THAT to homekit.

Hey, yes this really is a joke, then I got it right. Looks like they want to move away from switch, but no explanation far and wide. Would at least understand if they would update the addon and change switches to input.select. But like you wrote, we’re all just making unnecessary automations and helpers.

I’ve just seen that I can also add automations in Homekit.

Your assumption of my activities was correct, try creating automations now and get back to me.

THANKS

Surely much easier to just make template switches that replicate the deprecated switches.

If you rename the entity_id’s of the deprecated switches, and disable them, you can even use the existing entity_id’s for the new template switches. Barely 10 minutes work, and no need to change any existing scripts or automations.

EDIT: example template switch

switch:
  - platform: template
    switches:
      logitech_harmony_sitting_room_play_game:
        unique_id: "0684cbebb96902f98163722bd55ca518"
        friendly_name: "Logitech Harmony Sitting Room Play Game"
        value_template: >
          {{ is_state('select.harmony_sitting_room_activities', 'Play Game') }}
        turn_on:
          - alias: "Set select Harmony Sitting Room Activities to Play Game"
            service: select.select_option
            target:
              entity_id: select.harmony_sitting_room_activities
            data:
              option: "Play Game"
        turn_off:
          - alias: "Set select Harmony Sitting Room Activities to Power Off"
            service: select.select_option
            target:
              entity_id: select.harmony_sitting_room_activities
            data:
              option: "power_off"
4 Likes

This is a very helpful suggestion! I hope they add drop down lists for select entity handling in the future though.

1 Like

@reste_narquois, that sounds like the solution we were looking for. I had it in my head somehow, but then couldn’t put it into words either. Your example was super super helpful, I’ve now changed it, THANK YOU SO MUCH!

As already mentioned, I’m very happy with the current solution, because so far we’ve only been told that they’re banning switches from the Logitech application, but somehow it sounds so far into the future that I’m afraid they’ll take the switches out of HA altogether and replace them with Input Select - Home Assistant. Or am I talking nonsense? Or am I perhaps talking rubbish? In any case, it doesn’t make it any easier and a little more complicated in my head. Or has someone already started to change it cleanly. Then you would rather think in scenes and automations - crazy.

1 Like

To be blunt, yes. This change simply concerns the Harmony integration only, and its rationale was about reducing its complexity. You may disagree with that rationale of course, but this does not presage a removal of switches from HA - that would be absurd frankly.

Incidentally, for those with long memories, the Harmony integration never had these switches at all, and the remote was the only entity it created. You always had to create your own template switches.

Then the switches were added, then finally the select entity, which is a relative newcomer to the overall HA architecture.

If I understand correctly, this is in part about making the integration report the chosen activity to HA much more immediately - in earlier versions of the integration there was always a bit of a lag as it waited for the activity to fully finish loading. This could lead to uninitiated users (by which I mean other members of my family!) unnecessarily repeatedly pressing buttons because nothing seemed to be happening, causing general meltdowns to both tech and users.