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

Add support for Aldi Sempre 4-AH0423-4 temperature/rain sensor #2716

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

sorny
Copy link

@sorny sorny commented Nov 8, 2023

See the discussion in #1837

@Gollam
Copy link
Contributor

Gollam commented Nov 8, 2023

The changes you made look good for the Sempre type sensor, but will it continue to work with the original Auriol ones? As I understood, the Sempre sends more fields, so Auriol decoding will fail, isn't it?

@sorny
Copy link
Author

sorny commented Nov 8, 2023

I checked with the available binary samples from #1837 and they all work was expected.

Auriol samples:
rtl_433 -y {52}1a8088f000145

Model : Auriol-4LD5661 ID : 1a
Channel : 1 Battery : 1 Temperature: 13.6 C Rain : 325.0 mm Rain tips : 325

rtl_433 -y {52}c6806bf00000f

Model : Auriol-4LD5661 ID : c6
Channel : 1 Battery : 1 Temperature: 10.7 C Rain : 15.0 mm Rain tips : 15

Sempre sample:
rtl_433 -y {52}9fb0bcf0000ef

Model : Auriol-4LD5661 ID : 9f
Channel : 4 Battery : 1 Temperature: 18.8 C Rain : 239.0 mm Rain tips : 239

Low battery sample:
rtl_433 -y {52}1a00faf000001

Model : Auriol-4LD5661 ID : 1a
Channel : 1 Battery : 0 Temperature: 25.0 C Rain : 1.0 mm Rain tips : 1

@zuckschwerdt
Copy link
Collaborator

Does the unit have a channel selector? What are the markings on that?

@zuckschwerdt
Copy link
Collaborator

If there is no channel we should just add the docs and change the check, e.g.

// Flags are 0 for Auriol and 2 for Sempre
if (b[3] != 0xf0 || (b[1] & 0x70) != 0) || (b[1] & 0x70) != 0x2) {

(if 0x2 is the fixed value)

@sorny
Copy link
Author

sorny commented Nov 9, 2023

Reworked the check to evaluate the unknown, seemingly always 0 bit after the battery flag


if (b[3] != 0xf0) {
if (b[3] != 0xf0 || (b[1] & 0x40) != 0) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

This will ignore the two bits. But don't we want to check that it's 0 or 3? I.e. 1 or 2 are invalid.

Copy link
Author

Choose a reason for hiding this comment

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

Depends, no idea if there are other brands of this rain meter out there that would use either ch1 or ch2 :/

@zuckschwerdt
Copy link
Collaborator

You are getting a "channel" value of 3, right? With the Nexus logic of C+1 that would be CH4? So 0…2 as channel (as Nexus has) and then 3 for rain would be a good guess here?

@sorny
Copy link
Author

sorny commented Nov 9, 2023

Yeps, I am getting channel 4 for my sempre rain meter, based on the nexus channel logic. The samples for Auriol result in channel 1 which could make sense that different brands use different channels for the rain meter.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants