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

Fix or filter #6574

Merged
merged 3 commits into from
Apr 22, 2024
Merged

Fix or filter #6574

merged 3 commits into from
Apr 22, 2024

Conversation

swoboda1337
Copy link
Contributor

@swoboda1337 swoboda1337 commented Apr 18, 2024

What does this implement/fix?

Docs for the "or" filter say: "Pass forward a value with the first child filter that returns. Below example will only pass forward values that are either at least 1s old or are if the absolute difference is at least 5.0."

The actual implementation would pass forward a value for every filter that returned. That resulted in duplicating the value and sending it up multiple times. This PR fixes that bug.

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

Pull request in esphome-docs with documentation (if applicable): esphome/esphome-docs#

Test Environment

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

Example entry for config.yaml:

# Example config.yaml

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 (sensor) you are listed as a code owner for? Thanks!
(message by CodeOwnersMention)

@codecov-commenter
Copy link

codecov-commenter commented Apr 18, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 53.43%. Comparing base (4d8b5ed) to head (806efeb).
Report is 421 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff             @@
##              dev    #6574      +/-   ##
==========================================
- Coverage   53.70%   53.43%   -0.28%     
==========================================
  Files          50       50              
  Lines        9408     9537     +129     
  Branches     1654     1685      +31     
==========================================
+ Hits         5053     5096      +43     
- Misses       4056     4130      +74     
- Partials      299      311      +12     

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

@ssieb
Copy link
Member

ssieb commented Apr 18, 2024

I think all the filters should receive the value, but only the first returned value gets published.

@swoboda1337
Copy link
Contributor Author

I think all the filters should receive the value, but only the first returned value gets published.

Yeah I think that makes sense, updated.

@swoboda1337 swoboda1337 changed the title Fix "or" filter Fix or filter Apr 18, 2024
@jesserockz jesserockz added this to the 2024.4.1 milestone Apr 22, 2024
@jesserockz jesserockz merged commit 0874440 into esphome:dev Apr 22, 2024
51 of 52 checks passed
jesserockz pushed a commit that referenced this pull request Apr 22, 2024
Co-authored-by: Jonathan Swoboda <jonathan.swoboda>
@jesserockz jesserockz mentioned this pull request Apr 22, 2024
@github-actions github-actions bot locked and limited conversation to collaborators Apr 24, 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.

None yet

4 participants