-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Support for Bresser soil moisture sensor? #2988
Comments
Do you already own the sensor? Otherwise if you are deciding to buy or not: Newer Bresser protocols all show roughly the same structure and it shouldn't be a problem to analyze and add more. |
Yes i bought it.do you think it is 868 or 433? |
Newer sensors are FSK, and FSK is likely to be on 868. I only have older 433 (OOK) sensors. |
Hi, it's 433.92 Mhz, page 24 : User Guide |
Ohh thats good. I should be nearly the same sensor then this: Can someone help me to write a decoder for this? Thx a lot. BR kami |
Get a good sample to find and verify timings. https://triq.org/rtl_433/ANALYZE.html |
Hmm okay i will try. But it is not so easy to get a sample. There are just to much other different messages. i will try. BR kami |
It usually helps to remove the antenna and place the device and receiver at maybe 20cm to each other. |
May I propose to run rtl_433 in verbose mode for only the existing Bresser decoders to speed up the analysis.
If we are lucky, you may have some message that could help us to focus on a specific decoder. Notice that, except model 52, all are based on FSK PCM with s = l = 124 µs , preamble=0xaa2dd4, so a flex decoder like this one could help also (my assumption that this soil sensor uses the same rf coding) :
|
Hi, first of all, thanks a lot for the good and fast help. But i think my sensor is broken and i think i will get a new one next week. So until i recieved the new one i have to wait. BR kami |
Hi, so i know find out that the sensor is working fine. If i make a reset i can get new values and can see the new values on my weather station. If i remove the antenna from my rtl-sdr i am not recieving anything. So it could be that i recieve more then only the Bresser. But i now made 5 examples with : rtl_433 -f 433.92M -S unknown (The other commands are not working). Here is the list of values, which should be in the files. g026_433.92M_250k - Humidity 0% - Temp 28,7°C It would be really great if you can help me to decode the messages. Thanks a lot. BR kami |
Here is what I got, the transmission looks like this: This will read the data E.g. here the codes are:
which broken apart (roughly at the
|
Hi , I reduced the reset and I got this:
We have 3 messages into a frame. |
Oh, very good! revdgst shows that there is addition with carry excluding the first and last byte. I.e. |
incremental counter in the middle also , 2d 2e 2f , 2c 2d 2e , CHECKSUM is: Done with g 83 k 34 final XOR a3 using xor xor (100 %) |
Yes! Or again skipping the |
With your data in a BitBench it's just strange that the transmissions all look nearly the same, no clear indication where temp or moisture are. You might need a longer run with @ProfBoc75 's decoder ( |
Hi, okay i just started it now for some hours. I will send the logfile later. BR kami |
Hi, first of all thanks a lot to you both for the fast and good help. So here is a sample file from the last 5 hours. Hope this helps. Otherwise tell me, what i can do. BR kami |
Hi @kami83 , unfortunately it did not contain expected information, may be too far from the sensor ? Check your antenna. Try this:
Try also to capture some samples as you did , and you can replay them with the flex decoder to check which ones give answers As you did to capture (by default it's 433.92M, you don't need to provide the frequency) -s 1024k to get larger a sample rate:
To replay (one or all):
|
Hi @ProfBoc75 thanks a lot for the good help. Here are some more informations from me. First of all my rtl-sdr, the soil sensor and the station are on the same table. I think there is no distance problem. I also got a Bresser 3channel Temp/Hum outdoor Sensor for the same base. (https://github.com/merbanan/rtl_433/blob/master/src/devices/bresser_3ch.c) I am recieving this values with the bresser station and with the rtl-sdr device. Is it possible that the soil sensor using nearly the same (s,l,r values). I started this morning now with collecting samples with the first command and then will go on with the other tests. Temporaly i think the sensor is sending not in the area we are looking at? Thx a lot. BR kami |
hi @kami83: I think so, if you have other sensors using the same base station, then the protocol should be very close or the same, and your previous captures were related to another sensor which could explain why we can't figure the temp and moisture values. bitbench from rtl_433_test Bresser 3 CH samples:
And from Bresser 3 CH decoder, we can build this flex decoder:
Because there is sanity checks into the decoder, the moisture values may be dropped, the flex decoder could help us to figure where. |
Hi, @ProfBoc75 i will try this from your last post right now. But first of all here are the result from the post. The flex decoder with the 5 old cu8 files is not working. In this new files recorded with "rtl_433 -S unknown -s 1024k" should be 5 messages to the station. And here is the JSON recording. But i think all of this cannot help us??? BR kami |
Hi, so i tested it now. rtl_433 -X "n=Bresser_3CH,m=OOK_PWM,s=250,l=500,r=1250,sync=750,g=625,bits>=40,invert" just gives the right output for the Bresser 3ch but only this error sometimes for the Bresser soil meter. bitbuffer_add_bit: Warning: row count limit (50 rows) reached i also tested with the flexdecoder the sending of the g002_433.92M_1024k.cu8 file but the station doesnt react. Could it be that the sensor is in another range? 868??? I dont know. BR kami |
It's linked to interference when lot of noise, see #1854, it's just a warning but could be an antenna issue too which must be as far as possible from noise source like the PC or external screen. About the frequency, from the user guide of your moisture sensor it's 433.92 Mhz, may be you have the same written information on the sensor battery compartment cover From user guide, the moisture sensor transmits every 8 minutes, so you have to check that from the base station, the exact update frequency (more or less every 480 secondes) , but you have also the test button (when buttons are at the bottom, the right button if for test, the left is on/off for water timer valve). So start recording the signal, without antenna:
Then press the test button, must initiate a transmit (I hope so), and you should have a sample. If not, try at 868M and/or wait for next 8 minutes.
Then try to replay / play with flex. |
Hi, so i tested it today. I now used a 1,5m USB Cable extender to bring the rtl-sdr more away from my PC an Monitor. I take a look at the recievings of the station and if i press the test but i get directly new values. So this is working. If i just wait and take look when the station gets new values it is different, because sometimes it takes 6-8 minutes and sometimes for example if i touch the sensor and change the temperature the station gets new values after 1-2 minutes. But i can say if i press the test-button i always get directly new values. So for this i made some samples with rtl_433 -S all -s 1024k and they include ~5-6 new values which are recieved by the station. But if i run
I cannot see any changes on the station. i made all this samples without an antenna and with a distance of 10cm between Sensor and RTL-SDR. BR kami |
Hi @kami83: g004, 6 and 7 are promising (same kind of signal), g003 and 5 not good, not same signal, some noise. I'm checking and back soon. |
Unfortunately , I'm lost, the 3 promising codes look too complex, too long signal for such "simple" device or I'm wrong ...
For the captures without antenna, 10 cm could be too close, around 1m is nice and avoid clipping. Just to give us some information to help decode, what is your system (Windows/Linux/VM) , your dongle model and your rtl_433 version ? Some dongle models are not good (with FC00xx tuner), and rtl_433 default version for linux is too old for example, a more recent should be used. It's just to exclude any root cause. |
Hi, so i now put it in a distance from 1m and for pressing the test button 4 times i get this for samples: Also here is my Linux system: Linux 6.6.9-amd64 #1 SMP PREEMPT_DYNAMIC Kali 6.6.9-1kali1 (2024-01-08) x86_64 GNU/Linux and my rtl_433 version with the SDR device: `rtl_433 version 23.11 (2023-11-28) inputs file rtl_tcp RTL-SDR SoapySDR [Protocols] Registered 216 out of 250 device decoding protocols [ 1-4 8 10-12 15-17 19-23 25-26 29-36 38-60 63 67-71 73-100 102-105 108-116 119-121 124-128 130-149 151-161 163-168 170-175 177-197 199 201-215 217-232 234-241 243-244 246-247 249-250 ] Thx a lot and have a nice day. BR kami |
Hi @kami83: Ok, thanks, the new samples are same as previous promising, but very strange, now decode with FSK_PCM instead of OOK_PCM. It's not easy to capture good samples, so the previous one, g004/6 & 7 are the best ones, the last g009 and after are too low. Your dongle is the RTL-SDR last V4 version, using the good tuner R828D, you need to take care about this version, especially with the library, look here #2706 and here #2703 And look at the readme here https://github.com/merbanan/rtl_433?tab=readme-ov-file#troubleshooting |
Hi, so here are some tests with out any TS04 Sensor actived (Batteries removed from this sensors) Restart of the Sensor/ Station active: 26,4°C - 0% time : 2024-07-20 09:41:23 time : 2024-07-20 09:41:26 time : 2024-07-20 09:41:26 time : 2024-07-20 09:41:27 time : 2024-07-20 09:41:27 Station active / Test button pressed: time : 2024-07-20 09:43:44 time : 2024-07-20 09:43:44 Station deactive: So no values Test button pressed: time : 2024-07-20 09:48:02 time : 2024-07-20 09:48:09 time : 2024-07-20 09:48:16 time : 2024-07-20 09:48:17 time : 2024-07-20 09:48:24 time : 2024-07-20 09:48:25 BR kami |
@ProfBoc75 : I also got four RainPoint TCS005FRF sensor here. So i can also do some tests with them. BR kami |
Hi @kami83 All tests are welcome, yes. And from your last tests, we need more tests with different temperatures to confirm my guess, I found the information. I also noticed from the user guide that the battery information is also available into the wifi app, this information is also sent. Bitbench filtered on msg_type = 0x03 with msg_length = 0x07 Each message we have: Data layout of the info/message:
EDIT: The signals decoded as OOK, it was because only one frequency was in the range of rtl_433, the second was out of the range, now that the sample rate is bigger at 2048k the both frequencies are captured and the signal is properly decoded as FSK. |
About the msg_type:
With all these information, I can start to draft a decoder. |
Hi @ProfBoc75 thanks a lot for the good work. I now capture a lot of samples with informations about batteries, etc. I also have got 2 Bresser soil moisture sensor they got different ID. But it is really strange. If i turn on the new second sensor, i cannot recieve any transmission with your rtl_433-cmd. But after couple station and sensor i can recieve messages. I think it looks like sensor is waiting for any commands, before he starts working? it looks like a bidirectional communication. I also got problems after changing batteries i always have the station activated before the sensor starts working (no coupling is needed) but after the reboot the station has to be online. Here are the samples. BR kami |
Yes I confirm the bidirectional protocol, with source id / target id. With message then acknowledgement. Very interesting:
If you convert into hexa it's 0x4700051f (Big indian) or 0x1f050047 (little indian) , exactly what we have in the message. This means that we are on the good way... And in fact I just realize I made a little error I reserved source and target, and now it's clear: During the sensor reset for the pairing , the target is 0x00000000, like a broadcast and because the base target id is not yet known then next message the base acknowledged the pairing and gave the base id to the sensor. |
Hi, can i do now anything more to help? BR kami |
Hi @kami83: First, thanks a lot also for your help and your perseverance ! I guess that without the pairing, the device will never send information, so unfortunately, you need a base station (my assumption). Other tests you can do:
I started to draft the decoder, so it could be easier to get the figures, even if all is not yet fully decoded. Data layout:
Global Message data layout:
Sub Message SEND/INIT: (0x01)
Sub Message Acknowledgement/INIT: (0x81)
Sub Message SEND Temp Hum: (0x03)
Sub Message Acknowlegement/Temp Hum: (0x83)
|
@kami83: I just created a PR with a draft decoder. It seams to work with the samples. I also try with the -y option like this:
I let you play with it and let me know if it's ok to merge it. Try this:
|
Hi @ProfBoc75 : i am sorry for my late answer but i am a little bit busy at work. i capture this by pressing the test button on the soil sensor: time : 2024-07-25 08:23:01 time : 2024-07-25 08:23:21 time : 2024-07-25 08:24:22 time : 2024-07-25 08:24:26 With your first cmd i capture nothing. i also tried the old cmd with all devices on then i capture this with the test button: time : 2024-07-25 08:29:43 time : 2024-07-25 08:29:45 time : 2024-07-25 08:29:47 time : 2024-07-25 08:30:01 time : 2024-07-25 08:30:03 time : 2024-07-25 08:30:07 time : 2024-07-25 08:30:07 Hope this gives you a little bit more informations . BR kami |
Hi @kami83: Ok. Thanks, we have new message type 0xA with length of 0x09. I can recognize the 0x88 then 0x00 and 0x85 then 0xcc02. Anyway, thanks a lot, I'll update later the decoder and I must change the approach of decoding the message. And nothing even with 2048k sample rate ?
|
Hi, with Have you seen it? BR kami |
Yes. I saw with your test. I want to know if you received other messages with temp and moisture properly decoded as Bresser-SoilMosture model ? |
No nothing yet. |
Later today or tomorrow I will change the decoder, I'm busy also... |
No problem. Take your time. |
In the meantime can you test with these -Y options:
I have more results with these options when decoding the cu8 samples. |
Hi, i did a test. Everytime i press the Test button, i get this output: BR kami |
You can also let it run without verbose.
|
Hi, i tried it without verbose and i catching nothing really good when pressing the Test button. Also after repowering the base station i have to restart (left button) the soil sensor. time : 2024-07-27 10:25:09 time : 2024-07-27 10:25:50 time : 2024-07-27 10:26:35 Have a nice weekend. BR kami |
From your last samples/tests, there is no more message from the Soil Moisture sensors, and yet you have Base Station acknowledgement to Soil Moisture, Same you have exchange between the Water Timer and Soil Moisture, but only the Water Timer messages are captured. Looks like the Soil Moisture is out of range, for frequency or too far or too close ? I just updated the decoder to take into account new messages from Water Timer, all is not fully decoded, only what I recognize which look like the same from the Soil Moisture message, like the humidity/moisture and the temperature. Missing information like ON/OFF valve actuator, the timer information, ON for xx minutes ? You need to capture more samples and play with the application to generate some use cases/ scenario to identify the data layout here also. Does the Water Timer contain a temperature sensor (humidity is always 0% from all your last test samples) ? In my last version, I kept what I already did, because for me the Soil Moisture should be still valid. I added some information, reorder the code with message type then acknowledgement.
This is a draft, I know that the code could be simplify later. Please try it and let me know. |
Hi, i tried with your newest version and this cmd:
I capture only this output for different tests: (Restart, Testbutton) No soil sensor. only the msg from the watertimer and on from Garden. The antenna and everything is okay. The Mobile App from the station displays new values and they are the same temp/hum values from the watertimer. I don't want to use three device for such one thing. BR kami time : 2024-07-28 14:11:22 time : 2024-07-28 14:12:08 time : 2024-07-28 14:12:56 time : 2024-07-28 14:13:42 time : 2024-07-28 14:13:43 time : 2024-07-28 14:14:04 time : 2024-07-28 14:18:21 time : 2024-07-28 14:18:22 |
Understand, thanks for your help. I will merge this last version and let anyone provides feedback as the current version is not covering all use cases. |
About the Bresser Garden base station, I guess there is something fun to do with it, as the wifi part is based on esp32 https://fccid.io/2AWDBHWS388WRF/Block-Diagram/Block-Diagram-5829906 |
Hi @ProfBoc75, i have to thank you for all your work. And if i can i will go on providing you with all extra informations. But the use case is far away from my needs. Maybe i will try to get the Rainpoint Soil Sensor fixed. Maybe we can finish the Decoder for the Bresser Soil Sensor, if you like too? BR kami |
Thanks @kami83 , really appreciate your contribution. If you adjust a little the frequency you may be able to capture the soil moisture sensor, even if the 2048kHz sample rate should already covering the range. From the fccid rf test report: Radio Technical Data Lower frequency
Then higher frequency
Then adjust based the result:
never use one of the 2 frequencies from FSK but 434.2M for example from above result |
Hi, just tried your two commands. Only with the first one i can capture the Watertimer. But the soil sensor is still missing. Temps and Hum are okay. BR kami time : 2024-07-30 19:53:56 time : 2024-07-30 19:53:57 time : 2024-07-30 19:54:00 time : 2024-07-30 19:54:01 time : 2024-07-30 19:54:08 |
Hi,
i would like to ask, if someone can tell me if he can decode this Bresser Sensor:
https://www.bresser.de/en/Weather-Time/BRESSER-Soil-Sensor-for-7510100-7510200-Smart-Garden-Smart-Home-Irrigation-System.html
Its nearly the same then the RainPoint Soil Sensor.
Can someone help me with this?
BR kami
The text was updated successfully, but these errors were encountered: