Custom Component: Cover Time Based

one last thing. How do I add the slider to an entity card? I mean what is the slider’s name.

In answer to myself

this is how I added the slider to the Lovelace UI.

1 Like

I plan to, but let’s wait a little and see that noone has problems/bugs with it first.

BTW big thumbs for your work on this and a second thumbs up to the original creator.

Thanks for this.
I’ve been strugling with this too and now I can’t believe I didn’t find this myself! :laughing:

Did you ever find a way to make this work?
Feels like the last piece of the puzzle.

Screenshot 2020-05-01 at 21.21.11

If you mean this then yes

          - entity: cover.roller
            secondary_info: last-changed
            show_state: false
            type: 'custom:multiple-entity-row'
          - entity: cover.roller
            icon: 'mdi:no icon'
            name: Position
            show_state: true
            type: 'custom:slider-entity-row'
1 Like

Submitted. Hope they’ll accept it.

2 Likes

Some tips when using this component with Tasmota RF bridge in automations

Since there’s no feedback from the cover about its current state, state is assumed based on the last command sent, and position is calculated based on the fraction of time spent travelling up or down. You need to measure time by opening/closing the cover using the original remote controller, not through the commands sent from Home Assistant (as they may introduce some delay).

Tasmota is able to send out the RF commands very quickly. If some of your covers ‘miss’ the commands occassionally (you can see that from the fact that the state shown in Home Assistant does not correspond to reality), it may be that those cover motors do not understand the codes when they are sent ‘at once’ from Home Assistant. They are sent very quickly one after another and Tasmota can cope with that, however this can be too much for the motors themselves.
To prevent that, make sure you don’t use cover groups containing multiple covers provided by this integration, and also in automation don’t include multipe covers separated by commas in one service call. You should create separate service calls for each cover, moreover, add 1 second delay between them:

- alias: 'Covers down when getting dark'
  trigger:
    - platform: numeric_state
      below: 400
      for: "00:05:00"
      entity_id: sensor.outside_light_sensor
  action:
    - service: cover.close_cover
      entity_id: cover.room_1
    - delay: '00:00:01'
    - service: cover.close_cover
      entity_id: cover.room_2
    - delay: '00:00:01'
    - service: cover.set_cover_position
      data:
        entity_id: cover.room_3
        position: 20
    - delay: '00:00:01'
    - service: cover.set_cover_position
      data:
        entity_id: cover.room_4
        position: 30

(this info also added to readme)

1 Like

Thanks for that.
But actually I meant to ask you if you were able to invert the slider and add ‘opened’ and ‘closed’ labels on top of the slider.

no I haven’t

Hello,
I am using this for a zigbee cover switch to have intermediate positions and it works very well when controlling form HO. The switch is connected via zigbee2mqtt and I created the scripts for OPEN/STOP/CLOSE. The problem is when using the physical switch it is not updating in HA so I don’t know anymore where the shutter is. Any ideas how to fix this ?

In the RF version there’s no feedback from the cover about its current state, state is assumed based on the last command sent. It’s for using the covers without any physical switch at all. When you use this component, you forget about the cover’s original remote controllers or switches.

I think this component is not suitable for you because if through MQTT you can get the real state of the covers, you don’t need any calculations based on time. Try Home Assistant’s built-in Template Cover where you can feed in the state of the cover though a value_template. That will be updated through zigbee2mqtt and thus you’ll be see it in HA.

I need the calculation based on time to know and be able to set up any intermediate position. The switch doesn’t send any intermediate position only opened and closed.

Hi,
I use Aquara’s switches and I have had to decoupled the buttons from the relays, to the button doesn’t control any relay. Later I have had to create an automation for each button with the services: cover.open_cover, cover.close_cover, cover.stop_cover

In this way everything is controlled from home assistant and the status of the cover is always known.

Decoupled mode #

Decoupled mode allows to turn wired switch into wireless button with separately controlled relay. This might be useful to assign some custom actions to buttons and control relay remotely. This command also allows to redefine which button controls which relay for the double switch.

Special topics should be used: zigbee2mqtt/[FRIENDLY_NAME]/system/set to modify operation mode.

I am using this switch: https://www.zigbee2mqtt.io/devices/ZM-CSW032-D.html
I don’t need a separate relay and and physical switch and it is also a zigbee router. The only issue is that it doesn’t report any intermediate position and I would like to be able to open the shutter for example to 50%. This component works if I don’t use physical switch but my wife and kids use physical switch most of the time.

David says by “decoupling” that the physical switch on the wall should not actuate the relay in the switch, should appear as a switch only in HA. Thus the buttons on the wall would go also through HA and you’d be happy.

I understand, but I think it is not possible in my case. If I understand well he has a relay controlled from a normal double switch.

A new release of the RF trigger/script version.
Update for CoverDevice class which was deprecated in latest HA.
A new optional setting send_stop_at_ends: which set to True will trigger the Stop script when the cover reaches to 0 or 100 (closes or opens completely). This is for people who use interlocked relays in the scripts to drive the covers, which need to be released when the covers reach the end positions.
This setting defaults to False so users with RF covers where this is inconvenient don’t need to change anything in the configs.

Hi @robi

I just tried your custom component

Here are my working script:

```
portail_fermeture:
sequence:
- service: cover.close_cover
data:
entity_id: cover.cover_control

portail_stop:
sequence:
- service: cover.stop_cover
data:
entity_id: cover.cover_control

portail_ouverture:
sequence:
- service: cover.open_cover
data:
entity_id: cover.cover_control
```

but got errors in my following cover definition:
```
- platform: cover_rf_time_based
devices:
portail:
name: portail
travelling_time_down: 30
travelling_time_up: 24
open_script_entity_id: script.portail_ouverture
close_script_entity_id: script.portail_fermeture
stop_script_entity_id: script.portail_stop
````

got
*</s> <s>Invalid config for [cover.cover_rf_time_based]: expected a dictionary for dictionary value @ data['devices']['close_script_entity_id']. Got 'script.portail_fermeture'</s> <s>expected a dictionary for dictionary value @ data['devices']['name']. Got 'portail'</s> <s>expected a dictionary for dictionary value @ data['devices']['open_script_entity_id']. Got 'script.portail_ouverture'</s> <s>expected a dictionary for dictionary value @ data['devices']['portail']. Got None</s> <s>expected a dictionary for dictionary value @ data['devices']['stop_script_entity_id']. Got 'script.portail_stop'</s> <s>expected a dictionary for dictionary value @ data['devices']['travelling_time_down']. Got 30</s> <s>expected a dictionary for dictionary value @ data['devices']['travelling_time_up']. Got 24. (See ?, line ?).</s> <s>

Probably a stupid error of mine … but I can’t see it :(.*

Ok now it’s ok missing spaces :slight_smile:

Yes I hate this Yaml thing too.