Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature add last_operation to time based cover #6084

Merged

Conversation

xprofiler
Copy link
Contributor

@xprofiler xprofiler commented Jan 12, 2024

What does this implement/fix?

I need to know the last operation of the cover when handle a cover STOP command, because the current_operation is already set to IDLE. With the last operation information I am able to decide which of the two buttons (UP and DOWN) for my Warema controller I have to press to stop the cover.

Types of changes

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Other

Related issue or feature (if applicable): fixes esphome/issues#4252

Test Environment

  • ESP32
  • ESP32 IDF
  • ESP8266
  • RP2040
  • BK72xx
  • RTL87xx

Example entry for config.yaml:

cover:
  - platform: time_based
    name: "Sunblind AZ"
    id: sunblind_az
    open_action:
      - button.press: az_h
    open_duration: 34s
    close_action:
      - button.press: az_r
    close_duration: 32.5s
    stop_action: 
      - lambda: !lambda |-
          if (id(sunblind_az).last_operation() == CoverOperation::COVER_OPERATION_IDLE) {
            // Cover is idle
          } else if (id(sunblind_az).last_operation() == CoverOperation::COVER_OPERATION_OPENING) {
            // Cover is currently opening
            id(az_r).press();
          } else if (id(sunblind_az).last_operation() == CoverOperation::COVER_OPERATION_CLOSING) {
            // Cover is currently closing
            id(az_h).press();
          }
    has_built_in_endstop: true

Checklist:

  • The code change is tested and works locally.
  • Tests have been added to verify that the new code works (under tests/ folder).

If user exposed functionality or configuration variables are added/changed:

@probot-esphome
Copy link

Hey there @esphome/core, mind taking a look at this pull request as it has been labeled with an integration (logger) you are listed as a code owner for? Thanks!
(message by CodeOwnersMention)

@probot-esphome
Copy link

Hey there @esphome/core, mind taking a look at this pull request as it has been labeled with an integration (esp32) you are listed as a code owner for? Thanks!
(message by CodeOwnersMention)

@probot-esphome
Copy link

Hey there @OttoWinter, mind taking a look at this pull request as it has been labeled with an integration (api) you are listed as a code owner for? Thanks!
(message by CodeOwnersMention)

@probot-esphome
Copy link

Hey there @kroimon, mind taking a look at this pull request as it has been labeled with an integration (tt21100) you are listed as a code owner for? Thanks!
(message by CodeOwnersMention)

@xprofiler
Copy link
Contributor Author

I created my feature branch from tag https://github.com/esphome/esphome/tree/2023.12.5 because this is my docker containers version and the version I tested my changes.

Copy link
Contributor

@kroimon kroimon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please rebase your branch onto the latest dev branch, there are a lot of unrelated changes in this PR.

@codecov-commenter
Copy link

codecov-commenter commented Jan 12, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 53.45%. Comparing base (4d8b5ed) to head (9a8edc6).
Report is 470 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff             @@
##              dev    #6084      +/-   ##
==========================================
- Coverage   53.70%   53.45%   -0.26%     
==========================================
  Files          50       50              
  Lines        9408     9543     +135     
  Branches     1654     1685      +31     
==========================================
+ Hits         5053     5101      +48     
- Misses       4056     4131      +75     
- Partials      299      311      +12     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@xprofiler
Copy link
Contributor Author

For some reason a normal rebase was not possible, so I recreated my feature branch derived from the current dev branch and make this one line change to corresponding file. I will try to test it with a current build.

@xprofiler xprofiler force-pushed the feature_time_based_cover_last_operation branch from 85fa896 to 60ba804 Compare March 13, 2024 07:12
@nagyrobi nagyrobi added this to the 2024.5.0b1 milestone Apr 18, 2024
@jesserockz jesserockz merged commit 5288d5a into esphome:dev Apr 25, 2024
55 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Apr 27, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Checking the state of current_operation for time-based cover doesn't work
6 participants