core: RFXTRX Changes in 0.113.0 - Migration Process Issues & Light type devices no longer seem supported

The problem

Previously, RFXTRX devices were added to the configuration like this example from a lights.yaml file:

platform: rfxtrx
automatic_add: True
devices:
  0a14000101f20302010080:
    name: Dining Room Light
  0a14000000f20302010080:
    name: Livingroom Light
  0a14000202f20302010080:
    name: Bedroom Light
  0a14000104f20302010080:
    name: "Isabellas Bedroom Light"

This meant that you could name RFXTRX devices in the yaml, which I can understand changing to the UI. However, with the changes to RFXTRX in 0.113.0, the required ‘migration’, that users have to follow is to:

  • Remove the entries in their light/switch/etc sections of their configuration.yaml
  • Add the RFX deviceIDs back into configuration.yaml, but under one single RFXTRX heading.
  • Then reboot.
  • This won’t allow naming, so in the UI, the devices just show up as their manufacturer name or similar. Example: “LightwaveRF, Siemens 07f203:2” in integrations, with the actual entityID being: switch.lightwaverf_siemens_07f203_2
  • This is unreadable and it’s not possible to work out which device is which. So you have to perform a “turn it on and off until you find out which device is which” game! NOT FUN if you have a tonne of devices.
  • THEN you can rename the devices in the UI.

The other problem is that this brings in all of the devices as switch.<entity_id>.
Previously you could have RFXTRX lights. Them now only being switches means that obviously you can’t have dimming which is a big part of the use case for RFXTRX lights for me.

I tried to add this using device_class: but ‘light’ isn’t a valid option for this:

rfxtrx:
  device: !secret rfxtrx_device
  debug: True
  automatic_add: True
  devices:
    #Lights
    #Dining Room Light
    0a14000101f20302010080:
    device_class: light

Environment

  • Home Assistant Core release with the issue: 0.113.0
  • Last working Home Assistant Core release (if known): 0.112.4
  • Operating environment (OS/Container/Supervised/Core): All. (Supervised in my case)
  • Integration causing this issue: RFXTRX
  • Link to integration documentation on our website: https://www.home-assistant.io/integrations/rfxtrx/

Problem-relevant configuration.yaml

rfxtrx:
  device: !secret rfxtrx_device
  debug: True
  automatic_add: True
  devices:
    #Lights
    #Dining Room Light
    0a14000101f20302010080:
    
    #Livingroom Light
    0a14000000f20302010080:
    
    #Bedroom Light
    0a14000202f20302010080:

Traceback/Error logs


Additional information

I feel that the documentation on: https://www.home-assistant.io/integrations/rfxtrx/ could do with a re-write to reflect the changes in 0.113.0 I’ll happily submit some changes for this seperately.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 84 (40 by maintainers)

Commits related to this issue

Most upvoted comments

Well this is all a bit of a mess! Bleurgh! I managed to get one of my devices to work by changing the last digits, but not the others. This change really sucks.

@MartinHjelmare Sorry. It would have been much easier if skipping -platform configs for RFXTRX devices was documented as a breaking change.

Please don’t use this issue to complain about how “bad the release was” and how much it “broke your setup”.

Instead please describe how you’d like the integration or the documentation to be improved.

A simple old vs new config example.

Automated migration of the names. I had to migrate a device, restart, rename, migrate a device, restart, rename, etc.

@boywiz If you think it’s an issue, open a new issue. If you need support and you can’t find anything in the forums, start a new thread such that people can reply there. If you search for rfxtrx on the forums I made a remark there that you should use state events for these kind of automations.

@boywiz then at least open a new issue about it, where you include old and new config.

@boywiz Please check community forums, this has been asked and answered there, and don’t post support questions here unrelated to the issue.

@don66 Try this one:

0b110008013007da01020f70

I flipped a 01 to 02, at the same position you should do this for all switches you have. This changes from switch to dimming command and makes sure a light entity is created.

Please don’t use this issue to complain about how “bad the release was” and how much it “broke your setup”.

This wasn’t my intention, sorry about that (it was late for me)

Instead please describe how you’d like the integration or the documentation to be improved.

As the others says, an automated migration including the names would be awesome If it would be too heavy, a simple migration process explaining what users should do for retrieve their setup

Apart from this, thank you for the hard work done to improve the integration

Glad that it was possible to return to 0.112.4 with a single command. I simply do not have the time to figure out how to get them working again the same way they have done so far. 😦

Thanks, I had to do the same thing, in emergency and for the first time after six months of HA. I also read the release notes before upgrading, but nothing was saying clearly :

⚠️ Your whole Rfxtrx integration will be destroy during that upgrade, you will lost all of your automations or scripts done with your entities. And after you, in emergency, follow the new rule given on the documentation, you will loose all your entities names and have to go “haphazardly” for retrieve them and rebuild every things you have done before.

It’s clearly a big mistake, do note that we sure all apreciate your effort done and improvment for the integration, but, for breaking changes like that, things must be explicit and a migration process (because that’s the deal if the migration is not managed during the upgrade), must be clearly given on the documentation beforehand, for prevent all users to be lost and potentialy a bit frustrated

@HarmlessSaucer had a typo above. had prefixed with 0. If you grabbed it that quickly. Please grab the code again.