Integrating Becker Motors in to Hassio

Hello Rainer,

I fully restarted my Pi and it went a little bit better. Now I receive the commands from my master remote. I added the master remote to the shutter/cover config and I am able to see on my Dashboard if I press a button on my master remote. Unfortunately when I try to pair my HA to the shutter, I get the first clack, when I press the pairing button on my master and the second clack, when I start the becker pair service, but I do not get the two confirmation clacks. At the moment I am not able to control my shutter but I am able to track the interactions between the master and the shutter.
I hope you got another hint for me.

Have you tried to issue the pair command twice to get the double clack?

I tried it a few times. I clicked on call service, got the first clack. Clicked again, but no clack, clicked again, no clack and so on.

Is the training procedure I mentioned the same as written in your manual of the remote and motor?
Which remote and motor are you using?

I am using the wall transmitter as a remote.
This is what I found in the manual for the wall transmitter.

My wall transmitter is becker model EC411-III. I don’t know whats inside my shutter.

There is one weakness I have in my mind. But therefore I have to slightly change the code. I will need a few days…

Thank you a lot for trying to fix it. I am very grateful and hope it works.
I will wait for your message. :slightly_smiling_face:

Try again with latest release v.0.2.1
If you installed it as HACS custom repository, simply navigate to
HACS → Integrations → Becker cover support plus PyBecker
and select “Update information” followed by “Redownload” using the three dot menu in the upper right corner. Select the new Version v.0.2.1.
Don’t forget to reboot afterwards.

1 Like

Dear Rainer,
your update fixed it. I was able to pair my shutters now. Thank you very much for your work.
Is there any way I can show my appreciation?

1 Like

Good morning,

I moved my Smart Home from an older Raspberyy to another hw platform. All worked like a charm, except my becker usb stick that does not work.

I thought, that the pairing is done between the stick and the motor. But then why does the old stick does not control the motor from the new platform? Do I need to re-pair?

Or what else am I missing?

Appreciate any comments!

Best wishes

The important things:

  • enable debug an look if something seems to be wrong
  • reboot :wink:

Hi Rainer,

Are you saying, it should work without retraining?

Will check the log and reboot! Does the USB stick to be present at the time of booting?

Yes, there is no need to retrain, but you need to keep the unit - channel settings the same. The motor stores the id/unit/channel settings of all trained remotes (including the USB stick).
And yes, it’s better to connect the USB stick before boot time. Otherwise receiving of commands might not work. In addition automatic resynchronization been the USB stick and the motors is done after reboot.
Please also use the latest version v.0.2.1, as it has some improvements.

Thanks Rainer!

Worked like a charm, just finalized my move from RPi3 to an Intel platform without any re-configuration.

The key was to reboot WITH the stick already installed!

Thanks a lot and have a great Sunday!

1 Like

Hi @ all,

ich recently installed the custom extension via HACS even after reboot the extension can’t detect the USB-Stick. Here is the log entry of the extension:

Logger: homeassistant.components.cover
Source: custom_components/becker/pybecker/becker_helper.py:178 
Integration: Abdeckung (documentation, issues) 
First occurred: 6. Januar 2023 um 21:59:39 (1 occurrences) 
Last logged: 6. Januar 2023 um 21:59:39

Error while setting up becker platform for cover
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 289, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/becker/cover.py", line 105, in async_setup_platform
    PyBecker.setup(hass, device=device, filename=filename)
  File "/config/custom_components/becker/rf_device.py", line 58, in setup
    cls.becker = Becker(device_name=device, init_dummy=False, db_filename=filename, callback=callback)
  File "/config/custom_components/becker/pybecker/becker.py", line 57, in __init__
    self.communicator = BeckerCommunicator(device_name, callback)
  File "/config/custom_components/becker/pybecker/becker_helper.py", line 216, in __init__
    self._connection = BeckerConnection(device=device)
  File "/config/custom_components/becker/pybecker/becker_helper.py", line 98, in __init__
    self._device, self._is_serial = self._validate_device(device)
  File "/config/custom_components/becker/pybecker/becker_helper.py", line 178, in _validate_device
    raise BeckerConnectionError("{} is not existing".format(device))
custom_components.becker.pybecker.becker_helper.BeckerConnectionError: /dev/serial/by-id/usb-BECKER-ANTRIEBE_GmbH_CDC_RS232_v125_Centronic-if00 is not existing

my yaml looks like this:

cover:
  - platform: becker
    # Optional device path (useful when running from docker container)
    # Default device:
    # "/dev/serial/by-id/usb-BECKER-ANTRIEBE_GmbH_CDC_RS232_v125_Centronic-if00"
    #device: "/dev/beckercentronicusb"
    device: "/dev/serial/by-id/usb-BECKER-ANTRIEBE_GmbH_CDC_RS232_v125_Centronic-if00"
    # Optional database filename (database is stored in HA config folder)
    filename: "centronic-stick.db"
    covers:
      garden:
        friendly_name: "Sonnenschutz Terasse 1"
        # Using Unit 1 - Channel 1
        channel: "1:1"
        # Optional Travel Time to track cover position by time
        # one time is sufficient if up and down travel time is equal
        #travelling_time_up: 30
        # Optional Travel Time for direction down
        #travelling_time_down: 27
        # Optional Remote ID from your Becker Remote, e.g. your master sender (multiple ID's separated by comma are possible)
        # to find out the Remote ID of your Becker Remote enable debug log for becker
        #remote_id: "12345:2"
        
logger:
  default: info
  logs:
    custom_components.hacs: debug
    aiogithubapi: debug

And the console says, that the USB stick is there:

Can anyone see my mistake? I’m stuck here.

Kind Regards
MrIcemanLE

Are you using Docker or VM?
In this case you need to map the device into the container first.

My home assistant instance is running directly on a raspberry pi. Today I found, that path is case sensitive. As you can see my Sick comes with Antriebe and not ANTRIEBE. The same for BECKER. After fixing this there are no more messages in the log.

Unfortunately I cant’t get my master remote into pairing mode. The Receiver doesn’t “clack” when I am pushing the pair button.

I had to hold the pair button on my remote until the clack.

I also adjusted the case on my end when it didn’t work for me. After that, as you can read above, I got the hint that I should do a full reboot and then it worked. Maybe someone can check how the stick is recognized on their device, upper or lower case.

That’s the problem I’m stuck to. Turning off the power of the motor and turning on again makes no difference. I can’t get my master remote in pairing mode. So I can’t start the pairing script.

The pair command for the Becker Integration in Home Assistant represent the command for pressing the remote for 3 Seconds.
After power on, the motor is in pairing mode for 3 minutes. In this mode it will only possible to overwrite the master remote if I’m right.
After pressing the programming button of the master remote for 3 seconds, the motor is in pairing mode for additional remotes. Now run the pair command.
I suggest to read the manual, as there are many options.
German Centronic Motor Manual
English Centronic Motor Manual