Giter Club home page Giter Club logo

home-assistant-elero's Introduction

๐Ÿ›  Status: In Development

This lib is currently in development. I encourage you to use it and give me your feedback, but there are things that haven't been finalized yet and you can expect some changes.

Elero Logo Home Assistant Logo

Elero Python lib to the Home Assistant home automation platform

Home Assistant is a home automation platform running on Python 3. It is able to track and control all devices at home and offer a platform for automating control.

This elero platform allows you to control different Elero components/devices (such as venetian blinds, a roller shutters, tubular motors, electrical devices, rolling door drives, etc.).


Prerequisite

The Elero Transmitter Stick is a 15-channel handheld radio transmitter for bidirectional communication between transmitter and receiver(s).

To use the receiver control of the Home Assistant, at least one receiver must be taught-in into the Elero Transmitter Stick. For further details of the learning procedure please visit the Elero's Downloads webpage and find the Centero Operation instruction

Limitations

  1. According to the documentation of the Elero USB Transmitter, more Elero devices could be controlled at the same time with one command. However, It does not work. This causes many timing and control problems. I tried to contact with Elero via mail however the company has so far given no answer to my question about this error.

Elero features

The Elero Transmitter stick supports the following Elero device features:

  • up
  • down
  • stop
  • intermediate position
  • ventilation / turning position

Configuration of Elero platform

As many transmitters can be used as many needed. You could use as many transmitters as you want. So, you can control more than 15 devices. The connected transmitter stickes are discoveried by automaticly, so by default you do not need to configure them. In some special cases, you can configure every Elero USB Transmitter stick in your installation, add and setup the following settings to your configuration.yaml file to every stick:

  • serial_number:
    • description: The serial number of the given Elero Transmitter Stick.
    • required: false
    • type: string
    • default: -
  • baudrate:
    • description: Baud Rate as bits per second.
    • required: false
    • type: integer
    • default: 38400
  • bytesize:
    • description: Number of data bits.
    • required: false
    • type: integer
    • default: 8
  • parity:
    • description: Enable parity checking.
    • required: false
    • type: string
    • default: "N"
  • stopbits:
    • description: Number of stop bits.
    • required: false
    • type: integer
    • default:* 1

The connected Elero transmitters are automatically recognized and configured by HA automatically. The serial numbers of the connected transmitters can be found in the HA log and are needed for the further configuration. Make sure you have the logger set to the INFO level to see the log message. You can do this by adding following to the config file configuration.yaml:

logger:
  default: info

Then you should see the following long line after a restart of HA:

Elero - an Elero Transmitter Stick is found on port: '<serial port>' with serial number: '<serial number>'.

Make sure to disable the logger config again afterwards to avoid excessive logging!

The given serial number of a transmitter should be used to match a HA channel to the transmitter in the yaml config file.

The connected devices could be configured with the followings in the configuration.yaml file:

Example of the configuration:

# Example configuration.yaml entry
elero:
    transmitters:
        - serial_number: 00000000
          baudrate: 38400
          bytesize: 8
          parity: 'N'
          stopbits: 1

Configuration of the Elero cover component

To enable an Elero component like a covers in an installation, add the following to into the configuration.yaml file:

  • serial_number:
    • description: The serial number of the given Elero Transmitter Stick.
    • required: true
    • type: integer
    • default: -
    • value: your choose
  • name:
    • description: Name of the cover that is displayed on the UI.
    • required: true
    • type: string
    • default: -
    • value: your choose
  • channel:
    • description: The learned channel number on the Elero USB Stick.
    • required: true
    • type: integer
    • default: -
    • value: one number between 1-15
  • device class:
    • description: The class of the cover. It affects the device state and icon that is displayed on the UI.
    • required: true
    • type: string
    • default: -
    • value:
      • venetian blind
      • roller shutter
      • awning
      • rolling door
  • supported features:
    • description: Functionalities of the cover.
    • required: true
    • type: string
    • default: -
    • value:
      • up (Elero UP)
      • down (Elero DOWN)
      • stop (Elero STOP)
      • set_position (0=DOWN, 25=VENT, 50=MOVING/UNDEF, 75=INT, 100=UP)
      • open_tilt (Elero INTERMEDIATE)
      • close_tilt (Elero VENTILATION)
      • stop_tilt (Elero STOP)
      • set_tilt_position (unsupported)

Example of a simple cover setup:

# Example configuration.yaml entry
cover:
    - platform: elero
      covers:
          bathroom_small:
              serial_number: 00000000
              name: Shower
              channel: 1
              device_class: roller shutter
              supported_features:
                  - up
                  - down
                  - stop

Cover 'Position' and 'Tilt position' Sliders

Unfortunately, by default, the Position slider is not configurable on a cover so, the 'step' of the slider either. Thus, the set_position and the set_tilt_position functions are not usable. Another problem that the Elero devices are not supporting these functions.

For the Elero 'intermediate' function use the open_tilt HA function and the Elero 'ventilation' function use the close_tilt HA function.

Nevertheless, these controls are shown and useable only if the pop-up window of the given cover is open.

Alternative methods for the Elero 'intermediate' and the 'ventilation' functions:

  1. Call a Service
entities:
  - name: Intermediate
    service: cover.close_cover_tilt
    service_data:
      entity_id: cover.all_cover_group
    type: call-service
  - name: Ventilation
    service: cover.open_cover_tilt
    service_data:
      entity_id: cover.all_cover_group
    type: call-service
  1. An input_number slider with automation.
input_number:
    diningroom_set_position:
        name: Position
        mode: slider
        initial: 0
        min: 0
        max: 100
        step: 25

automation:
  - alias: diningroom_set_position
    trigger:
        platform: numeric_state
        entity_id: input_number.diningroom_set_position
        to: 25
    action:
        - service: cover.close_cover_tilt
          entity_id:
            - cover.diningroom
  1. An input_select Scene with automation.
input_select:
    scene_diningroom:
        name: Scene
        options:
            - open
            - close
            - stop
            - intermediate
            - ventilation

automation:
  - alias: Diningroom scene
    trigger:
      platform: state
      entity_id: input_select.scene_diningroom
      to: intermediate
    action:
        - service: cover.close_cover_tilt
          entity_id:
            - cover.diningroom

Cover groups

To create Cover Groups in an installation, add the following into the configuration.yaml file:

# Example configuration.yaml entry
cover:
    - platform: group
      name: "All Cover"
      entities:
          - cover.shower
          - cover.george

Installation of the lib

Just copy the contents of the custom_components folder into the Home Assistant ../config/custom_components/ folder.

Configurate the /config/configuration.yaml file and its all linked files like covers and groups, etc. Restart the Home Assistant.

Example config files

Some example files can be found in the config folder as a help or starting point.


Automation

It is possible to specify triggers for automation of your covers.

# Example automations.yaml entry
# Covers
    - alias: 'Close the covers after sunset'
      trigger:
        platform: sun
        event: sunset
        offset: '+00:30:00'
      action:
        service: cover.close_cover
        entity_id: cover.all_Cover

Report an issue:

Please use the Github Issues section to report a problem or feature request: https://github.com/W00D00/home-assistant-elero/issues/new

Known issues:

Please see the Issues section: https://github.com/W00D00/home-assistant-elero/issues

Contribution:

Please, Test first!

For minor fixes and documentation, please go ahead and submit a pull request. A gentle introduction to the process can be found here.

Check out the list of issues. Working on them is a great way to move the project forward.

Larger changes (rewriting parts of existing code from scratch, adding new functions) should generally be discussed by opening an issue first.

Feature branches with lots of small commits (especially titled "oops", "fix typo", "forgot to add file", etc.) should be squashed before opening a pull request. At the same time, please refrain from putting multiple unrelated changes into a single pull request.


If you have any question or you have faced with trouble, do not hesitate to contact me, all comments, insight, criticism is welcomed!


Version

home-assistant-elero's People

Contributors

caco3 avatar dfigus avatar tinkerdudeno1 avatar w00d00 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.