SkillAgentSearch skills...

BresserWeatherSensorReceiver

Bresser 5-in-1/6-in-1/7-in-1 868 MHz Weather Sensor Radio Receiver for Arduino based on CC1101, SX1276/RFM95W, SX1262 or LR1121

Install / Use

/learn @matthias-bs/BresserWeatherSensorReceiver

README

BresserWeatherSensorReceiver

CI<!--[![Build Status](https://app.travis-ci.com/matthias-bs/BresserWeatherSensorReceiver.svg?branch=main)](https://app.travis-ci.com/matthias-bs/BresserWeatherSensorReceiver)--> CppUTest GitHub release License: MIT

<!-- Badge is not updated any more! [![arduino-library-badge](https://www.ardu-badge.com/badge/BresserWeatherSensorReceiver.svg?)](https://www.ardu-badge.com/BresserWeatherSensorReceiver) -->

Bresser 5-in-1/6-in-1/7-in-1 868 MHz Weather Sensor Radio Receiver for Arduino based on RadioLib using CC1101, SX1276/RFM95W, SX1262 or LR1121

See the Wiki for additional information.

To allow automatic handling of all Bresser weather station variants, the decoders are tried in the following order until decoding succeeded:

  1. 7-in-1-Decoder
  2. 6-in-1-Decoder
  3. 5-in-1 Decoder
  4. Lightning Sensor Decoder
  5. Water Leakage Sensor Decoder

(The Bresser 5-in-1 Weather Stations seem to use two different protocols - 5-in-1 and 6-in-1.)

| Model | Type | Decoder Function | | ------------- | ---- | ------------------------------- | | 7002510..12, 9602510 | Weather Station | decodeBresser5In1Payload() | | 7902510..12 | Weather Station (Base) | decodeBresser5In1Payload() | | 7002530 | Professional Rain Gauge | decodeBresser7In1Payload() | | 7002531 | 3-in-1 Professional Wind Gauge / Anemometer | decodeBresser6In1Payload() 1) | | 7002585 | Weather Station | decodeBresser6In1Payload() | | 7009999 | Thermo-/Hygrometer Sensor | decodeBresser6in1Payload() | | 7009970 | Air Quality Sensor PM 2.5 / PM 10 | decodeBresser7In1Payload() | | 7009971 | High Precision Thermo Hygro Sensor | decodeBresser6In1Payload() | | 7009972 | Soil Moisture/Temperature Sensor | decodeBresser6In1Payload() | | 7009973 | Pool / Spa Thermometer | decodeBresser6In1Payload() | | 7009975 | Water Leakage Sensor | decodeBresserLeakagePayload() | | 7009976 | Lightning Sensor | decodeBresserLightningPayload() | | 7009977 | CO<sub>2</sub> Sensor | decodeBresser7In1Payload() 2) | | 7009978 | Air Quality Sensor HCHO / VOC | decodeBresser7In1Payload() 3) | | 7003600 and WSX3001 | Weather Station | decodeBresser7In1Payload() 4) | | 7003210 | Weather Station | decodeBresser7In1Payload() | | 7803200 | Weather Sensor | decodeBresser7In1Payload() | | 7003300 | Weather Station | decodeBresser7In1Payload() | | 7803300 | Weather Sensor | decodeBresser7In1Payload() | | 7003150 | 8-in-1 Weather Station | decodeBresser7In1Payload() 5) |

Some guesswork:

| Numbering Scheme | Type | | ---------------- | ---- | | 700[25|31|32|33|36]* | Weather Station, Base + Sensor | | 780[25|31|32|33]* | Weather Station Sensor (Replacement) | | 790* | Weather Station Base (Replacement) | | 700[99]* | Accessory Sensor |

1) The flag DATA_COMPLETE must not be set in getData(), otherwise the return value would always indicate a timeout. (I.e. use #define RX_STRATEGY 0 in some of the example sketches.)

2) Request for testing, see https://github.com/matthias-bs/BresserWeatherSensorReceiver/issues/138

3) Request for testing, see https://github.com/matthias-bs/BresserWeatherSensorReceiver/issues/139

4) The part number is specific to the actual variant, i.e. some more characters are appended

5) The value tglobe_c is preliminary, see https://github.com/matthias-bs/BresserWeatherSensorReceiver/issues/220

[!NOTE] Weather sensors which are using the 6-in-1 protocol are actually transmitting two different kind of messages alternately:

  1. Temperature, Humidity, Wind and Battery status
  2. Wind and Rain

All other sensors/protocols are transmitting a single type of message which contains a complete set of data.

The behavior described above can be observed with BresserWeatherSensorBasic, which just shows each message as it is received by using the function getMessage().

The other examples are using the function getData(), which buffers and combines messages from the 6-in-1 protocol until a complete set of data — with some configuration options regarding completeness, see BresserWeatherSensorOptions — is available.

Contents

Configuration

Predefined Board Configurations

By selecting a Board and a Board Revision in the Arduino IDE, a define is passed to the preprocessor/compiler. For the boards in the table below, the default configuration is assumed based on this define. I.e. you could could use an Adafruit Feather ESP32-S2 with a CC1101 connected to the pins of your choice of course, but the code assumes you are using it with a LoRa Radio Featherwing with the wiring given below. In some cases (bold entries in the table below) an additional define has to be enabled manually in WeatherSensorCfg.h.

If you are not using the Arduino IDE, you can use the defines in the table below with your specific tool chain to get the same result.

If this is not what you need, you have to switch to Manual Configuration

| Setup | Board | Board Revision | Defines<br>bold: to be enabled manually in WeatherSensorCfg.h | Radio Module | Notes | | -------------------------------------------------------------- | ------------------ | ---------------------------- | ---------------------- | -------- | ------- | | LILYGO®TTGO-LORA32 V1 | "TTGO LoRa32-OLED" | "TTGO LoRa32 V1 (No TFCard)" | ARDUINO_TTGO_LORA32_V1 | SX1276 (HPD13A) | - | | LILYGO®TTGO-LORA32 V2 | "TTGO LoRa32-OLED" | "TTGO LoRa32 V2" | ARDUINO_TTGO_LoRa32_V2 | SX1276 (HPD13A) | Only needed for LMIC: Wire DIO1 to GPIO33 | | LILYGO®TTGO-LORA32 V2.1 | "TTGO LoRa32-OLED" | "TTGO LoRa32 V2.1 (1.6.1)" | ARDUINO_TTGO_LoRa32_v21new | SX1276 (HPD13A) | - | | LILYGO®T3 S3 SX1262 | "LilyGo T3-S3" | "Radio-SX1262" | ARDUINO_LILYGO_T3S3_SX1262 | SX1262 | - | | LILYGO®T3 S3 LR1121 | "LilyGo T3-S3" | "Radio-LR1121" | ARDUINO_LILYGO_T3S3_LR1121 | LR1121 | - | | Heltec Wireless Stick | "Heltec Wireless Stick" | n.a. | ARDUINO_HELTEC_WIRELESS_STICK | SX1276 | - | | [Heltec Wireless St

Related Skills

View on GitHub
GitHub Stars173
CategoryOperations
Updated1d ago
Forks38

Languages

C++

Security Score

100/100

Audited on Apr 5, 2026

No findings