Elero USB Transmitter to control Elero and Weinor products

Maybe there is a “german” speaking developer who could add the Elero USB Transmitter to control Elero and Weinor products:

grafik

Here some information how it could be included:

Homematic:
https://homematic-forum.de/forum/viewtopic.php?t=26066

FHEM:
https://forum.fhem.de/index.php/topic,41466.msg337093.html#msg337093

Openhab:

HI
did you manage to integrate Elero into HASS?

EDIT: Lol I just saw your post was 4h old :smile:

Me - “no” not a developer yet :slight_smile: - but maybe there is a “german” speaking developer who could create such a component.

Hi Everyone!

I am working on a custom component to Elero Centero USB Transmitter stick as a HAAS Cover. You can see the first working version here: https://github.com/W00D00/home-assistance-elero

All comments, insight, criticism is welcomed.

Regards,
Istvan

2 Likes

Hi Istvan, can you please tell me how to install your component, sorry i´m new in home assistant :slight_smile:
Thanks a lot and greeting from Austria!

Hi!

Please read the “Readme” file on my Github. I have extended it with Installation part.

This is a first developer version. I am working on it and my goal is to create a final component lib into the official hassio source.

Thanks

1 Like

Hi, Thanks for your answer!

But can you tell me how to install pyserial?

And how i need to configure the configuration.yaml ?

Thanks a lot!!!

1 Like

Many many thanks for writing the addon for the Elero shutters. :slight_smile:
The availabiltiy of this add-on now is the reason for trying out HASSIO.

I am also an absolute beginner and did not get it running up to now.
I’ve installed HASSIO via the HASSIO image.
As far as I understand pyserial is normally already available / installed there.

Copying the files into the folder is no big effort.
But I did not yet understand what / how to configure the configuration.yaml.

I also would be happy if you could give us a hint or example what to do in the configuration.yaml or a link, where something similar is explained.

Many thanks again! :slight_smile:

1 Like

Great job Istvan! I was wating for ages for someone to do this. Almost built a separate Openhab Pi just to control the shutters :slight_smile:

1 Like

Please tell us how to configure it in the configuatio.yaml big thanks!!

1 Like

Hi Everyone!

I have updated the “Readme” file on my Github. Please read it and I hope you can use the component at now.

Thanks
Istvan

1 Like

Awesome! Really appreciate the effort :slight_smile: :hugs:

p.s. something seems to be wrong with the titles in the Readme file…not a big deal…

I also want to say many many thanks. :slight_smile: I know that this is quite a big effort.
I tried it out now and got in running.

Some things are not really working good up to now, but I am not sure if this is my mistake. I am an absolute HASS beginner. :wink:

This is my feedback (perhaps other users can also give feedback if it works on their systems in a better way).
I used your custom_components from 9th July 2018 for my tests.

  1. When I click on the “Close” icon for one shutter, then it start moving down. But when I click on “Stop” after a few seconds (while it is still moving), the “Open” is greyed out (so I cannot open it again); I only can click on “Stop” or “Close”.

  2. I created a group with 6 shutters. But when I click on “Close” for this complete group, randomly (?) only one shutter is closed.

  3. The system normally supports four commands:
    – open
    – close
    – movetilt (ventilation)
    – moveintermediate (sunblind)
    It would be great if it would be possible to use all of them. :slight_smile:

So please don’t understand my feedback as criticism, but as feedback. I really appreciate the effort you spent!

Hi Andy!

Many thanks for your feedback! Unfortunately I know these issues. I am working on a new version to solve these issues. I will inform you here if it is ready for test.

  1. Yes, I handle the state with wrong way.
  2. Yes, I now the root case of it.
  3. Yes, I would use too. My goal is handle all features of Elero.

So, please wait and hope :slight_smile:

István

1 Like

Please help and tell me how do you think to do use the tilt control in Home Assistant?

Thanks
Istvan

Thanks a lot Istvan. I really appreciate your work here for us!
If there is anything what I could test for you, just let me know. :slight_smile:

I also do not know how to use the tilt control in Home Assistant. I just can show you how it looks in FHEM - how I configured it there:
image
So because you have now this add-on for Home Assistant, I tried this out (and do not want to use FHEM in future any more).

Perhaps this could be done with the COVER.SET_COVER_POSITION. As far as I know the Elero system does not support to move a cover to a specific 0 … 100 position. So perhaps it would be possible to realize it something like:
position 0 = closed
position 25 = tilt
position 75 = sunblind
position 100 = opened

Or what you mean? :slight_smile:

Hi Istvan,

I just noticed one more issue. I don’t know if it’s just me or…?
Anyway I’m testing the controls on two shutters. After I send the command, when I check the stat, both shutters start alternating between open/closed (please see screenshot below) and the stick is flashing orange/green/range/green indefinitely. The only solution is to call cover.stop for each cover I used (or to reinsert the stick).

image

Both are actually closed on the screenshot above…but it just keeps switching closed/open etc.

Anything I’m doing wrong?

Log is full of following errors:

unknown response: b’’
Response to the 78 command is too long: b’\xaa\x05M\x00\x02\x02\x00\xaa\x05M\x00\x01\x02\x01’
Unhandled response: unknown response

EDIT: It just seems to loses track of the actual shutter status. After using a few shutters, open/close statuses don’t reflect real world situation.

1 Like

Hi István,

many thanks for the component.
Is it possible to configure/define more than one usb transmitter sticks?

Hi,
Have been looking at the code + Home Assistant developer checklist for creating a platform.
Would believe that the issues occurring with the current custom component is due to the fact that the Eller transmitter API is written directly in the component code. However I’m a noob regarding python…

From the developers guide

Communication with devices/services

All API specific code has to be part of a third party library hosted on PyPi. Home Assistant should only interact with objects and not make direct calls to the API.

bad

status = requests.get(url(’/status’))

good

from phue import Bridge
bridge = Bridge(…)
status = bridge.status()

Hi,

I have the same problems like Igor. In my configuration I created 10 covers for the channels 1 to 10. In my logs I have additional issues like:
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

It looks like every cover access the serial port directly. Instead, a controller is needed that bundles communication with the serial port and manages a queue of requests and responses.

I also tested cover groups as described in István’s documentation. For this I have created a group with 5 shutters. If I want to close all the blinds of this group, this only happens with 3 of 5. This could probably be solved with a central queue for requests.

Since I’m not a Python specialist, unfortunately, I do not know how to implement it. But what I have done is to support the set_cover_position function so that intermediate and ventilation positions are supported.

The value of the position is used as follows:
0 = closed
25 = tilt position
50 = intermediate position
100 = open

I have no access rights to the Github repository, so I cannot push the changes. Therefore I am posting here the change you have to insert from line 318 after the stop_cover function in /custom_components/cover/elero.py.

def set_cover_position(self, position, **kwargs):
    """Move the cover to specific position."""
    if position == 0 and self._state not in [STATE_CLOSED, STATE_CLOSING]:
        """Close"""
        self._down()
        self._start_watcher()
    elif position == 25:
        """Tilt Position"""
        self._tilt()
        self._start_watcher()
    elif position == 50:
        """Intermediate Position"""
        self._intermediate()
        self._start_watcher()
    elif position == 100 and self._state not in [STATE_OPEN, STATE_OPENING]:
        """Open"""
        self._up()
        self._start_watcher()
1 Like