Custom Component: Cover Time Based

Works like a charm … now trying to change the icon :slight_smile: Thanks for your work.
Maybe a question : Is it possible to interface/playwith the entity with one unique button ? i.e.
First press : open then if press again : stop and if press again stop ?

You should look for some custom lovelace cards, maybe there is one featuring that… I am not aware of any…

@robi : do you plan to display as well the “position” ? value ?. Should I do like @ladaowner ?

another question about icon in my customize.yaml. With

  #icon: mdi:gate
  icon_template: >-
    {% if is_state('cover.portail', 'open') %}
       mdi:gate-open
    {% else %}
       mdi:gate
    {% endif %}

no icon modification according to the current state while the simple icon: mdi;gate works. Any idea ?

Use this as a Lovelace card:

entities:
  - entity: cover.portail
    secondary_info: position
show_header_toggle: false
title: Portail
type: entities

Try with:

homeassistant:
  customize_domain: #for all covers 
     cover:
      device_class: gate
  customize: #for each cover separately
     cover.portail:
      device_class: gate

See the docs: https://www.home-assistant.io/integrations/cover/

Works great :slight_smile:

Thanks :slight_smile: … I am curious if there is also a class for electrovalve :slight_smile:

Sorry it’s one more time me :slight_smile: … but I don’t if it’s related to your custom component but for example
i) when it’s closed to show/to active only the “open” button
ii) when it’s opening to show/to active only the stop button
iii) when it’s stopped to show/to active both open & close buttons
iv) when it’s closing to show/to active only the stop button ?

Your need is not related to this component. You need some kind of frontend extension for that.
Install HACS and you can find lots of customizations inthere, perhaps there is one to match your need.
There is also templating to show/hide buttons based on state, you have to write your own in Lovelace.

RFLink implementation uses aliases to update the cover’s state. This is very useful to follow the state changes generated with a physical remote. With the aliases, RFLink can update device’s status in HA from the remote’s signal, without launching the associated command.

My problem with RFLink is that it uses USB connection:

  • Home Assistant runs in a virtual machine on a server
  • which is located in the basement where almost no RF signals are reachable

The Sonoff-RF-Bridge-433 running Tasmota actually can be set to receive the RF signals and publish them to MQTT. I can imagine small automations to update the cover state when a certain RF code is seen in MQTT.

Can you suggest how to update states using aliases? Maybe we can adapt the code. And not only for RF, but also for switches…

Hi Robert, I was only trying to explain the possible use of the aliases variable, which does not seem to be being used in these CC.
I think that the aliases part implementation is very ‘platform related’. I don’t know how MQTT platform works, but from what I have seen, maybe the state_topiccan do the job. But, if I’m right, your implementation is using scripts to publish MQTT topics.

Maybe, if you can get the payload for the physical remote from Sonoff-RF-Bridge, and somehow (I repeat, I don’t know the MQTT platform) subscribe the CoverTimeBased to all your aliases messages, you can to update its status.
You can use the same technique to calculate the position by calculating the travel_time.

Do you think it would be possible?

I already have some ideas on my mind on how to try to do it.

Hi,

Is-it possible to have the same behaviour of the cover time base of ESPhome with the " assumed_state* option ?

assumed_state is hardcoded to be True by default. It wouldn’t work otherwise.

Ok thanks …

My configuration doesn’t trigger the script, what could be wrong?

  - platform: cover_rf_time_based
    devices:
      my_room_cover_time_based:
        name: Cortina Sala
        travelling_time_up: 32
        travelling_time_down: 30
        close_script_entity_id: script.rf_sala_cover_down
        stop_script_entity_id: script.rf_sala_cover_stop
        open_script_entity_id: script.rf_sala_cover_up
        send_stop_at_ends: False #optional

the script names are correct, and calling them alone works.

Config seems OK to me.

Got this installed today, works great. Thanks for the component.

Thanks for the feedback.