Git Product home page Git Product logo

rtl_433_esp's Introduction

This is an attempt at creating an Arduino library for use on ESP32 boards with a CC1101 transceiver or SX127X Transceivers with the device decoders from the rtl_433 package. And be available for use with openMQTTGateway as an available module.

Inspiration for this came from the ESPiLight effort. Kudos to puuu for this, and the awesome package.

This is the LILYGO® LoRa32 V2.1_1.6.1 433Mhz board running OpenMQTTGateway. image

The initial port implements only enables a subset of the available modulations and device decoders, and is limited to devices I have access to and can test with.

  • One comment about the transceiver modules, I have found that the receiver is not as sensitive as a rtl_sdr and I only get about 1/2 the range or less. And having the antenna oriented into a vertical position does improve reception.

Enabled rtl_433 Demodulation modules

OOK

OOK_MC_ZEROBIT
OOK_PULSE_DMC
OOK_PULSE_MANCHESTER_ZEROBIT
OOK_PULSE_NRZS
OOK_PULSE_PCM
OOK_PULSE_PIWM_DC
OOK_PULSE_PPM
OOK_PULSE_PWM
OOK_PULSE_PWM_OSV1
OOK_PULSE_RZ

FSK

FSK_PULSE_MANCHESTER_ZEROBIT
FSK_PULSE_PCM
FSK_PULSE_PWM

Enabled Device Decoders from rtl_433 release 22.11

OOK Signal Device Decoders

Registering protocol [0] "Amazon Basics Meat Thermometer"
Registering protocol [1] "Acurite 896 Rain Gauge"
Registering protocol [2] "Acurite 609TXC Temperature and Humidity Sensor"
Registering protocol [3] "Acurite 592TXR Temp/Humidity, 592TX Temp, 5n1 Weather Station, 6045 Lightning, 899 Rain, 3N1, Atlas"
Registering protocol [4] "Acurite 986 Refrigerator / Freezer Thermometer"
Registering protocol [5] "Acurite 606TX Temperature Sensor"
Registering protocol [6] "Acurite 00275rm,00276rm Temp/Humidity with optional probe"
Registering protocol [7] "Acurite 590TX Temperature with optional Humidity"
Registering protocol [8] "Acurite Grill/Meat Thermometer 01185M"
Registering protocol [9] "Akhan 100F14 remote keyless entry"
Registering protocol [10] "AlectoV1 Weather Sensor (Alecto WS3500 WS4500 Ventus W155/W044 Oregon)"
Registering protocol [11] "Ambient Weather F007TH, TFA 30.3208.02, SwitchDocLabs F016TH temperature sensor"
Registering protocol [12] "Ambient Weather TX-8300 Temperature/Humidity Sensor"
Registering protocol [13] "Atech-WS308 temperature sensor"
Registering protocol [15] "Auriol AFT 77 B2 temperature sensor"
Registering protocol [16] "Auriol AFW2A1 temperature/humidity sensor"
Registering protocol [17] "Auriol AHFL temperature/humidity sensor"
Registering protocol [18] "Auriol HG02832, HG05124A-DCF, Rubicson 48957 temperature/humidity sensor"
Registering protocol [20] "Blyss DC5-UK-WH"
Registering protocol [22] "Bresser Thermo-/Hygro-Sensor 3CH"
Registering protocol [24] "Burnhard BBQ thermometer"
Registering protocol [25] "Calibeur RF-104 Sensor"
Registering protocol [26] "Cardin S466-TX2"
Registering protocol [27] "Celsia CZC1 Thermostat"
Registering protocol [28] "Chuango Security Technology"
Registering protocol [29] "Clipsal CMR113 Cent-a-meter power meter"
Registering protocol [30] "Companion WTR001 Temperature Sensor"
Registering protocol [31] "Cotech 36-7959, SwitchDocLabs FT020T wireless weather station with USB"
Registering protocol [32] "Digitech XC-0324 / AmbientWeather FT005TH temp/hum sensor"
Registering protocol [34] "DSC Security Contact"
Registering protocol [35] "DSC Security Contact (WS4945)"
Registering protocol [36] "Ecowitt Wireless Outdoor Thermometer WH53/WH0280/WH0281A"
Registering protocol [37] "Eurochron EFTH-800 temperature and humidity sensor"
Registering protocol [41] "EMOS E6016 weatherstation with DCF77"
Registering protocol [42] "EMOS E6016 rain gauge"
Registering protocol [44] "ERT Interval Data Message (IDM)"
Registering protocol [45] "ERT Interval Data Message (IDM) for Net Meters"
Registering protocol [46] "ERT Standard Consumption Message (SCM)"
Registering protocol [48] "Esperanza EWS"
Registering protocol [50] "Fine Offset Electronics, WH2, WH5, Telldus Temperature/Humidity/Rain Sensor"
Registering protocol [51] "Fine Offset Electronics, WH0530 Temperature/Rain Sensor"
Registering protocol [52] "Fine Offset WH1050 Weather Station"
Registering protocol [53] "Fine Offset Electronics WH1080/WH3080 Weather Station"
Registering protocol [54] "Ford Car Key"
Registering protocol [56] "FT-004-B Temperature Sensor"
Registering protocol [57] "Funkbus / Instafunk (Berker, Gira, Jung)"
Registering protocol [58] "Gasmate BA1008 meat thermometer"
Registering protocol [59] "Generic wireless motion sensor"
Registering protocol [60] "Generic Remote SC226x EV1527"
Registering protocol [61] "Generic temperature sensor 1"
Registering protocol [62] "Govee Water Leak Detector H5054, Door Contact Sensor B5023"
Registering protocol [63] "Govee Water Leak Detector H5054"
Registering protocol [64] "Globaltronics QUIGG GT-TMBBQ-05"
Registering protocol [65] "Globaltronics GT-WT-02 Sensor"
Registering protocol [66] "Globaltronics GT-WT-03 Sensor"
Registering protocol [67] "Microchip HCS200/HCS300 KeeLoq Hopping Encoder based remotes"
Registering protocol [68] "HIDEKI TS04 Temperature, Humidity, Wind and Rain Sensor"
Registering protocol [69] "Honeywell Door/Window Sensor, 2Gig DW10/DW11, RE208 repeater"
Registering protocol [70] "Honeywell ActivLink, Wireless Doorbell"
Registering protocol [71] "HT680 Remote control"
Registering protocol [72] "IBIS beacon"
Registering protocol [73] "inFactory, nor-tec, FreeTec NC-3982-913 temperature humidity sensor"
Registering protocol [75] "Interlogix GE UTC Security Devices"
Registering protocol [77] "Jasco/GE Choice Alert Security Devices"
Registering protocol [78] "Kedsum Temperature & Humidity Sensor, Pearl NC-7415"
Registering protocol [79] "Kerui PIR / Contact Sensor"
Registering protocol [81] "LaCrosse TX Temperature / Humidity Sensor"
Registering protocol [82] "LaCrosse TX141-Bv2, TX141TH-Bv2, TX141-Bv3, TX141W, TX145wsdth, (TFA, ORIA) sensor"
Registering protocol [83] "LaCrosse/ELV/Conrad WS7000/WS2500 weather sensors"
Registering protocol [84] "LaCrosse WS-2310 / WS-3600 Weather Station"
Registering protocol [86] "Markisol, E-Motion, BOFU, Rollerhouse, BF-30x, BF-415 curtain remote"
Registering protocol [87] "Maverick et73"
Registering protocol [88] "Maverick ET-732/733 BBQ Sensor"
Registering protocol [90] "Linear Megacode Garage/Gate Remotes"
Registering protocol [91] "Missil ML0757 weather station"
Registering protocol [92] "Neptune R900 flow meters"
Registering protocol [94] "KlikAanKlikUit Wireless Switch"
Registering protocol [95] "Nexa"
Registering protocol [96] "Nexus, FreeTec NC-7345, NX-3980, Solight TE82S, TFA 30.3209 temperature/humidity sensor"
Registering protocol [98] "Norgo NGE101"
Registering protocol [99] "Oil Ultrasonic STANDARD ASK"
Registering protocol [100] "Opus/Imagintronix XT300 Soil Moisture"
Registering protocol [101] "Oregon Scientific Weather Sensor"
Registering protocol [102] "Oregon Scientific SL109H Remote Thermal Hygro Sensor"
Registering protocol [103] "OSv1 Temperature Sensor"
Registering protocol [104] "Philips outdoor temperature sensor (type AJ3650)"
Registering protocol [105] "Philips outdoor temperature sensor (type AJ7010)"
Registering protocol [106] "SmartFire Proflame 2 remote control"
Registering protocol [107] "Prologue, FreeTec NC-7104, NC-7159-675 temperature sensor"
Registering protocol [108] "Proove / Nexa / KlikAanKlikUit Wireless Switch"
Registering protocol [109] "Quhwa"
Registering protocol [110] "Radiohead ASK"
Registering protocol [111] "Sensible Living Mini-Plant Moisture Sensor"
Registering protocol [112] "RainPoint soil temperature and moisture sensor"
Registering protocol [113] "Regency Ceiling Fan Remote (-f 303.75M to 303.96M)"
Registering protocol [114] "Revolt NC-5642 Energy Meter"
Registering protocol [116] "Rubicson, TFA 30.3197 or InFactory PT-310 Temperature Sensor"
Registering protocol [117] "Rubicson 48659 Thermometer"
Registering protocol [118] "Rubicson Pool Thermometer 48942"
Registering protocol [119] "Conrad S3318P, FreeTec NC-5849-913 temperature humidity sensor"
Registering protocol [120] "Schrader TPMS"
Registering protocol [121] "Schrader TPMS EG53MA4, PA66GF35"
Registering protocol [122] "Schrader TPMS SMD3MA4 (Subaru) 3039 (Infiniti, Nissan, Renault)"
Registering protocol [123] "Standard Consumption Message Plus (SCMplus)"
Registering protocol [124] "Security+ (Keyfob)"
Registering protocol [125] "Silvercrest Remote Control"
Registering protocol [126] "SimpliSafe Home Security System (May require disabling automatic gain for KeyPad decodes)"
Registering protocol [127] "Skylink HA-434TL motion sensor"
Registering protocol [128] "Wireless Smoke and Heat Detector GS 558"
Registering protocol [129] "Solight TE44/TE66, EMOS E0107T, NX-6876-917"
Registering protocol [130] "Somfy RTS"
Registering protocol [131] "Springfield Temperature and Soil Moisture"
Registering protocol [132] "Telldus weather station FT0385R sensors"
Registering protocol [133] "TFA Dostmann 30.3221.02 T/H Outdoor Sensor"
Registering protocol [134] "TFA Drop Rain Gauge 30.3233.01"
Registering protocol [135] "TFA pool temperature sensor"
Registering protocol [136] "TFA-Twin-Plus-30.3049, Conrad KW9010, Ea2 BL999"
Registering protocol [137] "Thermopro TP11 Thermometer"
Registering protocol [138] "Thermopro TP08/TP12/TP20 thermometer"
Registering protocol [140] "EezTire E618 (TPMS10ATC)"
Registering protocol [141] "TyreGuard 400 TPMS"
Registering protocol [142] "TS-FT002 Wireless Ultrasonic Tank Liquid Level Meter With Temperature Sensor"
Registering protocol [143] "Emos TTX201 Temperature Sensor"
Registering protocol [144] "Vaillant calorMatic VRT340f Central Heating Control"
Registering protocol [145] "Vauno EN8822C"
Registering protocol [146] "Visonic powercode"
Registering protocol [147] "Waveman Switch Transmitter"
Registering protocol [149] "WG-PB12V1 Temperature Sensor"
Registering protocol [150] "WS2032 weather station"
Registering protocol [151] "Hyundai WS SENZOR Remote Temperature Sensor"
Registering protocol [152] "WT0124 Pool Thermometer"
Registering protocol [153] "WT450, WT260H, WT405H"
Registering protocol [154] "X10 RF"
Registering protocol [155] "X10 Security"
Registering protocol [156] "Yale HSA (Home Security Alarm), YES-Alarmkit"

The gaps in the numbers are device decoders disabled by default.

FSK Signal Device Decoders

Registering protocol [0] "Ambient Weather WH31E Thermo-Hygrometer Sensor, EcoWitt WH40 rain gauge"
Registering protocol [2] "TBH weather sensor"
Registering protocol [3] "Badger ORION water meter, 100kbps (-f 916.45M -s 1200k)"
Registering protocol [4] "Bresser Weather Center 5-in-1"
Registering protocol [5] "Bresser Weather Center 6-in-1, 7-in-1 indoor, soil, new 5-in-1, 3-in-1 wind gauge, Froggit WH6000, Ventus C8488A"
Registering protocol [6] "Bresser Weather Center 7-in-1"
Registering protocol [7] "Cavius smoke, heat and water detector"
Registering protocol [9] "CurrentCost Current Sensor"
Registering protocol [10] "Danfoss CFR Thermostat"
Registering protocol [11] "DirecTV RC66RX Remote Control"
Registering protocol [12] "EcoDHOME Smart Socket and MCEE Solar monitor"
Registering protocol [13] "Efergy e2 classic"
Registering protocol [14] "Efergy Optical"
Registering protocol [15] "Emax W6, rebrand Altronics x7063/4, Optex 990040/50/51, Orium 13093/13123, Infactory FWS-1200, Newentor Q9, Otio 810025, Protmex PT3390A, Jula Marquant 014331/32, Weather Station or temperature/humidity sensor"
Registering protocol [16] "emonTx OpenEnergyMonitor"
Registering protocol [17] "ESIC EMT7110 power meter"
Registering protocol [18] "Fine Offset Electronics, WH25, WH32B, WH24, WH65B, HP1000, Misol WS2320 Temperature/Humidity/Pressure Sensor"
Registering protocol [19] "Fine Offset Electronics/ECOWITT WH51, SwitchDoc Labs SM23 Soil Moisture Sensor"
Registering protocol [20] "Fine Offset Electronics WH1080/WH3080 Weather Station (FSK)"
Registering protocol [21] "Ambient Weather WH31L (FineOffset WH57) Lightning-Strike sensor"
Registering protocol [22] "Fine Offset Electronics WH45 air quality sensor"
Registering protocol [23] "Fine Offset Electronics WN34 temperature sensor"
Registering protocol [24] "Fine Offset Electronics WS80 weather station"
Registering protocol [25] "Flowis flow meters"
Registering protocol [26] "GE Color Effects"
Registering protocol [27] "GEO minim+ energy monitor"
Registering protocol [28] "Microchip HCS200/HCS300 KeeLoq Hopping Encoder based remotes (FSK)"
Registering protocol [29] "Holman Industries iWeather WS5029 weather station (newer PCM)"
Registering protocol [30] "Holman Industries iWeather WS5029 weather station (older PWM)"
Registering protocol [32] "Honeywell CM921 Wireless Programmable Room Thermostat"
Registering protocol [33] "Honeywell ActivLink, Wireless Doorbell (FSK)"
Registering protocol [34] "IKEA Sparsnas Energy Meter Monitor"
Registering protocol [35] "Inkbird ITH-20R temperature humidity sensor"
Registering protocol [36] "Insteon"
Registering protocol [37] "LaCrosse Technology View LTV-WSDTH01 Breeze Pro Wind Sensor"
Registering protocol [38] "LaCrosse Technology View LTV-R1, LTV-R3 Rainfall Gauge, LTV-W1/W2 Wind Sensor"
Registering protocol [39] "LaCrosse Technology View LTV-TH Thermo/Hygro Sensor"
Registering protocol [40] "LaCrosse TX31U-IT, The Weather Channel WS-1910TWC-IT"
Registering protocol [41] "LaCrosse TX34-IT rain gauge"
Registering protocol [42] "LaCrosse TX29IT, TFA Dostmann 30.3159.IT Temperature sensor"
Registering protocol [43] "LaCrosse TX35DTH-IT, TFA Dostmann 30.3155 Temperature/Humidity sensor"
Registering protocol [44] "LaCrosse Technology View LTV-WR1 Multi Sensor"
Registering protocol [45] "Wireless M-Bus, Mode C&T, 100kbps (-f 868.95M -s 1200k)"
Registering protocol [46] "Wireless M-Bus, Mode T, 32.768kbps (-f 868.3M -s 1000k)"
Registering protocol [47] "Wireless M-Bus, Mode S, 32.768kbps (-f 868.3M -s 1000k)"
Registering protocol [50] "Marlec Solar iBoost+ sensors"
Registering protocol [51] "Maverick XR-30 BBQ Sensor"
Registering protocol [52] "Oil Ultrasonic SMART FSK"
Registering protocol [53] "Oil Ultrasonic STANDARD FSK"
Registering protocol [54] "Watchman Sonic / Apollo Ultrasonic / Beckett Rocket oil tank monitor"
Registering protocol [55] "Watchman Sonic Advanced / Plus"
Registering protocol [56] "RojaFlex shutter and remote devices"
Registering protocol [57] "Sharp SPC775 weather station"
Registering protocol [58] "SimpliSafe Gen 3 Home Security System"
Registering protocol [59] "Somfy io-homecontrol"
Registering protocol [60] "SRSmith Pool Light Remote Control SRS-2C-TX (-f 915M)"
Registering protocol [61] "Steelmate TPMS"
Registering protocol [62] "TFA Dostmann 14.1504.V2 Radio-controlled grill and meat thermometer"
Registering protocol [63] "TFA Dostmann 30.3196 T/H outdoor sensor"
Registering protocol [64] "TFA Marbella Pool Thermometer"
Registering protocol [65] "Abarth 124 Spider TPMS"
Registering protocol [66] "AVE TPMS"
Registering protocol [67] "Citroen TPMS"
Registering protocol [68] "Elantra2012 TPMS"
Registering protocol [69] "Ford TPMS"
Registering protocol [70] "Hyundai TPMS (VDO)"
Registering protocol [72] "Jansite TPMS Model Solar"
Registering protocol [73] "Kia TPMS (-s 1000k)"
Registering protocol [74] "PMV-107J (Toyota) TPMS"
Registering protocol [75] "Porsche Boxster/Cayman TPMS"
Registering protocol [76] "Renault TPMS"
Registering protocol [77] "Renault 0435R TPMS"
Registering protocol [78] "Toyota TPMS"
Registering protocol [79] "Unbranded SolarTPMS for trucks"

Sensors I use as part of Testing

These are the sensors that are part of my personal collection, and can confirm that they work correctly. Other sensors devices are on a best effort basis as I have no method to test and confirm functionality.

Acurite Tower - Acurite 592TXR Temp/Humidity, 592TX Temp, 5n1 Weather Station, 6045 Lightning, 899 Rain, 3N1, Atlas LaCrosse-TX141Bv3 - LaCrosse TX141-Bv2, TX141TH-Bv2, TX141-Bv3, TX141W, TX145wsdth, (TFA, ORIA) sensor Acurite-986 - Acurite 986 Refrigerator / Freezer Thermometer Skylink_HA-434TL_motion - Skylink HA-434TL motion sensor FineOffSet WH51

Transceiver Modules Supported

CC1101 433 Mhz Transceiver Module

Datasheet for the CC1101 board I'm using

CC1101 datasheet

SX127X - Heltec WiFi LoRa 32 and LILYGO® LoRa32

This is the Heltec SX127X board I used for development. I used the 433 Mhz Board

This is the LILYGO® LoRa32 V2.1_1.6.1 433 board I used for development. I used the 433 Mhz Board

SX1278 - external to ESP32 DOIT DevKit V1

This is the AI-Thinker R01 - SX1278 module I used for development. I used the Ra-01 433 Mhz Board

This is the ESP32 DOIT DevKit V1 board I used for development.

Wiring for ESP32 DOIT DevKit V1 and AI-Thinker R01 - SX1278

image

Wiring and Building the Example

Details are here

Projects using the library

Roadmap / Next Steps

  • Firmware size tuning
  • Further heap usage tuning
  • Find stack leak when running all devices
  • Enable additional pulse demod functions
  • Simplify the process to update from the rtl_433 source

Signal detection and reception approach

To determne that a signal is available for reception, the library watches the current RSSI reported by the transceiver module and when it crosses a predetermined RSSI threshold it enables the signal receiver function. End of signal is determined when the signal drops below the predetermined RSSI threshold for a minimum of 150,000 micro seconds.

RSSI Threshold Automatic Setting

The RSSI Threshold for signal detection is automatically determined based on the average RSSI signal level received aka RSSI floor level with a delta ( RSSI_THRESHOLD ) added to it. The average RSSI signal level is calculated over RSSI_SAMPLES.

SX127X OOK RSSI FIXED Threshold

For background see section 2.1.3.2. of SX127X Data sheet

To tune the SX127X OOK RSSI FIXED Threshold two values are used to determine if the threshold needs to be increased or decreased. The first is the noise received between signals. If the number of noise bits received between signals is greater than 100, then the threshold is incremented. Second is the unparsed signals. If an unparsed signal is received, but it has less than 20 pulses, the threshold is decremented.

The first approach is what is recommended in the SX127X datasheet, and the second is a control to lower the threshold if it is too high and incomplete signals are received.

Compile definition options

DEMOD_DEBUG           ; enable verbose debugging of signal processing
DEVICE_DEBUG          ; Validate fields are mapped to response object ( rtl_433 )
MEMORY_DEBUG          ; display heap usage information
RESOURCE_DEBUG        : Monitor HEAP and STACK usage and report large jumps
MY_DEVICES            ; Only include my personal subset of devices
NO_DEAF_WORKAROUND    ; Workaround for issue #16 ( by default the workaround is enabaled )
PUBLISH_UNPARSED      ; Enable publishing of MQTT messages for unparsed signals, e.g. {model":"unknown","protocol":"signal parsing failed"…
RAW_SIGNAL_DEBUG      ; display raw received messages
RSSI_SAMPLES          ; Number of rssi samples to collect for average calculation, defaults to 50,000
RSSI_THRESHOLD        ; Delta applied to average RSSI value to calculate RSSI Signal Threshold, defaults to 9
RTL_DEBUG             ; Enable RTL_433 device decoder verbose mode for all device decoders ( 0=normal, 1=verbose, 2=verbose decoders, 3=debug decoders, 4=trace decoding. )
RTL_VERBOSE=##        ; Enable RTL_433 device decoder verbose mode, ## is the decoder # from the appropriate memcpy line in signalDecoder.cpp
RTL_ANALYZER          ; Enable pulse stream analysis ( note is very resource intensive and will not work with other modules )
RTL_ANALYZE=##        ; Enable pulse stream analysis for decoder ##
SIGNAL_RSSI           ; Enable collection of per pulse RSSI Values during signal reception for display in signal debug messages
RF_MODULE_INIT_STATUS ; Display transceiver config during startup
DISABLERSSITHRESHOLD  ; Disable automatic setting of RSSI_THRESHOLD ( legacy behaviour ), and use MINRSSI ( -82 )
OOK_MODULATION        ; Enable OOK Device Decoders, setting to false enables FSK Device Decoders 

RF Module Wiring

ONBOARD_LED           ; GPIO pin to toggle during signal reception ( Typically onboard LED )

SX1276 Module Options

RF_SX1276             ; Enable support for SX1276 Transceiver
OOK_FIXED_THRESHOLD   ; Initial OOK threshold ( See 2.1.3.2. of datasheet ), defaults to 90
AUTOOOKFIX            ; Set to enable automatic setting of OOK_FIXED_THRESHOLD based on noise level between signals

SX1276 Module Wiring ( Required if not using standard configuration )

RF_MODULE_CS          ; SX1276 SPI Chip select
RF_MODULE_DIO0        ; SX1276 DIO0 PIN
RF_MODULE_RST         ; SX1276 RST PIN
RF_MODULE_DIO1        ; SX1276 DIO1 PIN

SX1278 Module Options

RF_SX1278 - Enable support for SX1276
OOK_FIXED_THRESHOLD   ; Initial OOK threshold ( See 2.1.3.2. of datasheet ), defaults to 90
AUTOOOKFIX            ; Set to enable automatic setting of OOK_FIXED_THRESHOLD based on noise level between signals

SX1278 Module Wiring ( Required if not using standard configuration )

RF_MODULE_CS          ; SX1278 SPI Chip select
RF_MODULE_DIO0        ; SX1278 DIO0 PIN
RF_MODULE_RST         ; SX1278 RST PIN
RF_MODULE_DIO1        ; SX1278 DIO1 PIN

CC1101 Module Options

RF_CC1101             ; Enable support for CC1101 Transceiver
NO_DEAF_WORKAROUND    ; Workaround for issue #16 ( by default the workaround is enabaled )

CC1101 Module Wiring

RF_MODULE_CS          ; CC1101 SPI Chip select
RF_MODULE_GDO0        ; CC1101 GDOO PIN
RF_MODULE_GDO2        ; CC1101 GDO2 PIN

RF Module SPI Wiring ( Required if not using standard configuration )

When using a non standard SPI configuration ( Standard config is SCK - 18, MISO - 19, MOSI - 23, CS - 5)

RF_MODULE_SCK         ; SPI Clock
RF_MODULE_MISO        ; SPI Serial Output
RF_MODULE_MOSI        ; SPI Serial Input
RF_MODULE_CS          ; SPI Chip select

Porting approach

Copying src files

Copying rtl_433/src abuf.c to src/rtl_433
Copying rtl_433/src bitbuffer.c to src/rtl_433
Copying rtl_433/src compat_time.c to src/rtl_433
Copying rtl_433/src data.c to src/rtl_433
Copying rtl_433/src decoder_util.c to src/rtl_433
Copying rtl_433/src list.c to src/rtl_433
Copying rtl_433/src logger.c to src/rtl_433
Copying rtl_433/src output_log.c to src/rtl_433
Copying rtl_433/src pulse_data.c to src/rtl_433
Copying rtl_433/src r_util.c to src/rtl_433
Copying rtl_433/src util.c to src/rtl_433

These src files need copying and updating

cp ../rtl_433/src/pulse_analyzer.c ../src/rtl_433
cp ../rtl_433/src/pulse_slicer.c ../src/rtl_433
cp ../rtl_433/src/r_api.c ../src/rtl_433

Copying include files

Copying rtl_433/include abuf.h to include
Copying rtl_433/include bitbuffer.h to include
Copying rtl_433/include compat_time.h to include
Copying rtl_433/include decoder.h to include
Copying rtl_433/include decoder_util.h to include
Copying rtl_433/include fatal.h to include
Copying rtl_433/include list.h to include
Copying rtl_433/include logger.h to include
Copying rtl_433/include optparse.h to include
Copying rtl_433/include output_log.h to include
Copying rtl_433/include pulse_analyzer.h to include
Copying rtl_433/include pulse_detect.h to include
Copying rtl_433/include pulse_slicer.h to include
Copying rtl_433/include r_api.h to include
Copying rtl_433/include r_device.h to include
Copying rtl_433/include r_util.h to include
Copying rtl_433/include rfraw.h to include
Copying rtl_433/include util.h to include

These include files need copying and updating

cp ../rtl_433/include/data.h ../include
cp ../rtl_433/include/pulse_data.h ../include
cp ../rtl_433/include/r_private.h ../include
cp ../rtl_433/include/rtl_433.h ../include

Codebase conflicts

  • ESPiLight and rtl_433 conflict on silvercrest
.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: Warning: size of symbol `silvercrest' changed from 4 in .pio/build/rtl_433-9e0770/libb28/libESPiLight.a(protocol.c.o) to 76 in .pio/build/rtl_433-9e0770/lib395/librtl_433_ESP.a(silvercrest.c.o)

Supporting Additional Devices etc

As support for devices is limited to what we have personally available, donations for additional devices is encouraged.

Donate

Thanks

  • Tks to the rtl_433 team for a great codebase
  • @diepeterpan for testing and showing that the OOK_PULSE_MANCHESTER_ZEROBIT decoder works, and adding support for Oregon-CM160 ( oregon_scientific.c)

Media Mentions

January 2023

February 2023

January 2024

rtl_433_esp's People

Contributors

ausgunno avatar dianlight avatar diepeterpan avatar digih avatar hvegh avatar ianmtaylor1 avatar mag1024 avatar mdeweerd avatar northernman54 avatar shchuko avatar smittyhalibut avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rtl_433_esp's Issues

Acurite Atlas

Hello guys, I noticed some of the decoders include the acurite atlas, which is one of the first decoders on the list, but my setup is not able to decode anything so far, I just see this message:

Received message : {"model":"unknown","protocol":"signal parsing failed","duration":177000,"rssi":-81,"pulses":807}

I was wondering if I can share my trace to see if I am seeing another device or what exactly is going on

update_rtl_433_devices.sh broken

hi, tools/update_rtl_433_devices.sh generates "empty" definitions.

it looks rtl_433 repository changed the declaration format, so device.awk isn't catching the module name correctly.

by adding an additional awk script line for handling const will bring back the script to work
(kind of, because it looks there is more changed in the rtl_433 repository)

# rtl_433
# this was created
# egrep "\.name|\.modulation|\.decode_fn|^r_device " *.c > device.list
# List of files
# cat device.list | awk -f device.awk | egrep "OOK_PULSE_PWM|OOK_PULSE_PPM" | awk -F : '{ print $1 }' | sort | uniq > list
# Update to rtl_433_devices.h
# cat device.list | awk -f device.awk | egrep "OOK_PULSE_PWM|OOK_PULSE_PPM" | awk -F\" '{ print $3 }' | awk -F, '{ print $3 }' | awk '{ print "DECL("$1") \\" }'

# acurite.c:r_device acurite_rain_896 = {
# acurite.c:        .name        = "Acurite 896 Rain Gauge",
# acurite.c:        .modulation  = OOK_PULSE_PPM,
# acurite.c:        .decode_fn   = &acurite_rain_896_decode,
# acurite.c:        .name        = "Acurite 609TXC Temperature and Humidity Sensor",
# acurite.c:        .modulation  = OOK_PULSE_PPM,
# acurite.c:        .decode_fn   = &acurite_th_decode,
# acurite.c:        .name        = "Acurite 592TXR Temp/Humidity, 5n1 Weather Station, 6045 Lightning, 3N1, Atlas",
# acurite.c:        .modulation  = OOK_PULSE_PWM,
# acurite.c:        .decode_fn   = &acurite_txr_decode,

# rtl_433 2023-03
# acurite.c:r_device const acurite_rain_896 = {
# acurite.c:        .name        = "Acurite 896 Rain Gauge",
# acurite.c:        .modulation  = OOK_PULSE_PPM,
# acurite.c:        .decode_fn   = &acurite_rain_896_decode,

{
        if ( $5 == "{" ) {
                module = $3
                }
        if ( $4 == "{" ) {
                module = $2
                }
        if ( $2 == ".name" ) {
                for(i=4;i<=NF;i++){name=name" "$i}
                file = $1
                }
        if ( $2 == ".modulation" ) {
                modulation = $4
                }
        if ( $2 == ".decode_fn" ) {
                decode_fn = $4
                print $1",", name, modulation, module
                name = ""
                }
}

PSRAM support

This isn't an issue as such.

If memory becomes an issue to decode some of the more complicated protocols, then I would recommend looking into some esp32 that are coming with PSRAM. That basically boosts available memory with an added 4Mb of RAM. We've successfully used the PSRAM in a audio streaming firmware that internally keeps and transfers multiple audio buffers with resampling, EQ and more, so it's definitely fast enough to help here. Furthermore, it is possible to fine tune allocation so time critical operations happen in iram while other stuff is sent to external RAM.

Also note that the esp32 has some DMA capabilities for some types of hardware interfaces (e.g. i2s is a good example).

You can go ahead and close this.

Thanks for paving the way with this project!

How to reduce the library size?

Hi,
I am using this with my existing project which is already quite big. How to reduce this library size?
Actually, I just need to use 1 weather station and 3 soil moisture sensor so 2 types of devices only.

Thanks;

How to add missing devices to decode?

hi,
i am using the example OOK_Receiver.ino to see what i get from the sensors around me.
i have two sensors that wont get decoded.

they only produce a RAW dump.

with my RTL_SDR + RTL_433 on my Raspberry Pi it apears as an "Ambientweather-F007TH"
the device is located in:
https://github.com/merbanan/rtl_433/blob/master/src/devices/ambient_weather.c

how can i include this device from rtl_433 to rtl_433_ESP ?

just copying all the devices from ~/git/merbanan/rtl_433/src/devices to ~/git/NorthernMan54/rtl_433_ESP/src/rtl_433/devices and recompile does not do anything.

i don't know how the devices are linked together

Question/contact

Hi!

I am writing here because I didn't find your email.

I just realized you and I had been hacking around the same topics (ESP32 based 433mhz/home sensors) and toying wit the same projects (RFLink-ESP, RTL433...) and realized it would be wonderful to be able to use RTL433 on an ESP32 and you took this step further with this project.

Currently I am fairly busy with my ESP32 fork of RFLink (https://github.com/cpainchaud/RFLink32 https://github.com/cpainchaud/rflink-webui) which is to date the most advanced fork/rework with full UI/CLI configurations (no more recompilation!), support of several Radio modules (SX12XX, RFM69...) and replay/test capabilities among other things.

Anyways I do feel the limitations of RFLink approach to rely on a classic demodulator/transceiver and polling it constantly and also fore us to stick to 1 frequency/channel ; but I have yet failed to find a piece of hardware which would sample several channel (so we could cover FSK, 2FSK etc).

I see here that you are using CC1101 and from the little I could you are using it in packet mode but how could that work without knowing first what frequency/channel/bitrate/message length in first place? am I mistaken? RTL433 uses a SDR/sampling method to get their data which is not your case thus I am curious to understand how you're going to approach this with a standard transceiver.

Typedef for Callback not compatible

Firstly - Awesome project. Very interested to be part of it. I have several OOK and FSK devices I would like to integrate.

Prior to cloning this repo I just downloaded it and set up a new PlatformIO project. I am using the ELECHOUSE CPP and H files from LSatan.

When I complied it the following error occurs:
src\main.cpp: In function 'void setup()':
src\main.cpp:52:66: error: invalid conversion from 'void ()(char, char*, unsigned int)' to 'rtl_433_ESPCallBack {aka void ()(char)}' [-fpermissive]
rf.setCallback(rtl_433_Callback, messageBuffer, JSON_MSG_BUFFER);

Looking into the typedef in the rtl_433_ESP.H
/**

  • (char *name, char *message, unsigned int modulation)
  • name - name of device as defined in device signal decoder
  • message - JSON formated message from device
  • modulation - Type of signal modulation ( r_device.h )
    */

typedef void (*rtl_433_ESPCallBack)(char *message);

This will not work when called
rf.setCallback(rtl_433_Callback, messageBuffer, JSON_MSG_BUFFER);

in this case we are passing a function to the setCAllback but it is expecting the pointer to the message which you then want to store in the config structure.

Should it be more like the function for PulseTrainCallBack??? Or am I doing something wrong??

typedef std::function<void(const uint16_t *pulses, size_t length)>
PulseTrainCallBack;

Cheers
Gunno

Watchman sonic oil tank monitor

First, thank you for this library!

I found a link to it from the home assistant forums as I was looking to update my rtl_433 setup which is monitoring the volume of heating oil in our oil tank. With some of the recent changes with home assistant mqtt it looks like I will have to rework a fair amount of the way I monitor oil usage anyways and would be much happier if this was running on a ESP rather than a full blown pi just to fetch these readings.

Looking through the script that updates from rtl_433 source it removes the oil_watchman.c file. Please let me know if there are any specific guidelines or requirements for submitting a pull request for a new feature. I am happy to contribute to this project and look forward to hearing your thoughts on this proposed addition. Thank you for considering my request.

Heltec Lora V1 compile issue

Hello guys, I tested yesterday the branch and all seems to compile succesfully as it is, but I have some old Heltec_wifi_lora v1 boards, so I wanted to try those, I change these lines:

[env:esp32_heltec]
monitor_filters = esp32_exception_decoder
board = heltec_wifi_lora_32

But it seems that the compiler fails with this:

Compiling .pio/build/esp32_heltec/libe6e/RadioLib/modules/SX126x/SX1261.cpp.o
Assembler messages:
Fatal error: can't create .pio/build/esp32_heltec/libe6e/RadioLib/modules/CC1101/CC1101.cpp.o: No such file or directory
*** [.pio/build/esp32_heltec/libe6e/RadioLib/modules/CC1101/CC1101.cpp.o] Error 1
Assembler messages:
Fatal error: can't create .pio/build/esp32_heltec/libe6e/RadioLib/modules/RF69/RF69.cpp.o: No such file or directory
*** [.pio/build/esp32_heltec/libe6e/RadioLib/modules/RF69/RF69.cpp.o] Error 1
Assembler messages:
Fatal error: can't create .pio/build/esp32_heltec/libe6e/RadioLib/modules/SX126x/STM32WLx.cpp.o: No such file or directory
*** [.pio/build/esp32_heltec/libe6e/RadioLib/modules/SX126x/STM32WLx.cpp.o] Error 1
Assembler messages:
Fatal error: can't create .pio/build/esp32_heltec/libe6e/RadioLib/modules/RFM9x/RFM97.cpp.o: No such file or directory
*** [.pio/build/esp32_heltec/libe6e/RadioLib/modules/RFM9x/RFM97.cpp.o] Error 1
Assembler messages:
Fatal error: can't create .pio/build/esp32_heltec/libe6e/RadioLib/modules/SX1231/SX1231.cpp.o: No such file or directory
*** [.pio/build/esp32_heltec/libe6e/RadioLib/modules/SX1231/SX1231.cpp.o] Error 1

the real big difference between the heltec v1 vs v2 is 2 connections to the lora radio, I also tried putting everything as it was and changing only the 2 flags I needed to change but it also raises an error after changing only this:

'-DRF_MODULE_DIO1=33'    ; SX1276 pin DIO1
;  '-DRF_MODULE_DIO2=32'    ; SX1276 pin DIO2

Has anybody managed to run under Heltec v1?

TFA Dostmann 30.3221.02 T/H Outdoor Sensor not parsed

Hi,
since my old sensor got flooded during the last rain if've bought a "TFA Dostmann 30.3221.02 T/H Outdoor Sensor".

Is there anything i need to know to enable parsing? My debug-console only reports "unparsed data"
I'm using rtl_433_ESP = https://github.com/NorthernMan54/rtl_433_ESP#e03f689
in OpenMQTTGateway

here are some captures from the console if i press the "TX" button on TFA-Sensor

rtl_433_ESP(6): Unparsed Signal length: 272560, Signal RSSI: -18, train: 0, messageCount: 2, pulses: 201
rtl_433_ESP(6): RAW (272560): +501-860+817-864+820-868+809-859+209-533+205-528+198-534+455-271+450-287+206-526+209-517+224-517+205-530+461-261+207-528+459-276+196-550+193-534+439-295+205-510+468-277+457-271+450-287+206-526+210-512+224-518+205-528+460-260+209-525+208-538+445-284+209-528+206-512+469-278+431-298+198-532+206-528+206-518+197-541+209-530+204-512+231-500+459-278+470-259+206-579+806-864+820-869+807-862+804-880+220-518+206-529+208-516+464-277+459-269+200-532+195-534+209-519+226-503+469-272+209-517+471-283+207-521+200-530+447-271+210-538+444-285+451-268+459-286+200-537+194-536+210-516+197-539+441-294+209-517+197-539+440-294+212-514+199-538+440-293+461-285+178-540+207-529+207-513+222-511+217-510+235-517+196-536+441-269+460-284+448-332+794-870+802-884+805-866+794-893+206-512+205-526+209-520+468-284+449-270+206-538+197-540+207-508+229-510+446-271+236-518+446-284+208-530+205-513+444-301+210-512+447-286+447-271+459-285+202-540+195-534+211-511+222-516+465-271+210-515+223-516+441-295+208-519+196-539+440-295+437-285+201-542+206-530+206-514+204-526+209-540+197-519+220-534+440-272+452-289+206-575+800-865+802-875+812-863+823-869+202-533+205-526+211-515+469-283+442-268+232-513+196-540+207-530+207-509+468-276+192-536+458-260+218-538+207-506+455-286+195-534+456-275+449-285+466-273+195-534+208-536+196-512+210-533+454-288+205-526+210-513+444-306+208-519+201-528+440-299+433-278+219-529+204-526+210-516+199-541+205-529+206-514+203-526+460-274+445-287+232-78913+75-506+0-549+0-524+124-101+0-303+74-100+100-101+350-125+176-74+150-74+0-125+324-227+125-101+125-327+250-76+75-100+0-76+0-227+200-101+297-428+125-279
 

rtl_433_ESP(6): Unparsed Signal length: 142499, Signal RSSI: -22, train: 1, messageCount: 3, pulses: 37
rtl_433_ESP(6): RAW (142499): +286-241+207-528+207-519+221-517+221-509+463-278+195-523+222-534+439-276+219-526+197-534+439-297+456-264+199-538+205-528+206-514+226-508+208-545+201-530+207-524+439-286+446-279+454-80337+76-99+74-375+209-125+198-527+175-402+176-126+226-278+350-351+425-175+127-125+427-127+173-279+195-75+151-101
 

rtl_433_ESP(6): Unparsed Signal length: 172251, Signal RSSI: -67, train: 0, messageCount: 4, pulses: 79
rtl_433_ESP(6): RAW (172251): +118-419+250-511+204-526+459-278+195-546+196-535+433-275+472-287+445-271+459-278+442-286+206-529+460-287+445-280+456-270+200-535+442-275+459-322+810-885+801-877+795-873+812-858+221-534+191-537+208-510+469-277+433-297+199-533+208-525+208-512+223-517+207-529+206-539+442-278+212-516+199-528+469-271+209-517+468-284+450-269+456-286+202-536+193-535+210-517+442-280+208-533+203-530+205-527+460-277+194-522+222-534+431-277+470-287+445-272+461-278+443-284+206-531+433-286+471-275+432-303+194-532+449-293+212-76795+447-504+124-478+444-175+51-304+124-428+126-126+102-126+210-99+126-328+441-127+99-453+174-380+123-457+124-327+199-100+124-399
 
rtl_433_ESP(6): Unparsed Signal length: 268762, Signal RSSI: -22, train: 1, messageCount: 5, pulses: 190
rtl_433_ESP(6): RAW (268762): +430-868+781-901+783-889+797-868+229-508+221-512+210-542+450-289+419-295+208-516+199-540+195-534+213-513+470-285+206-506+457-286+207-526+208-517+444-307+208-508+455-284+445-274+457-293+198-532+208-524+208-516+445-307+209-518+200-531+206-525+437-285+202-541+208-531+430-288+444-299+433-275+222-530+205-526+435-311+423-281+454-294+457-263+205-526+464-278+442-337+794-870+810-889+803-875+795-873+209-518+221-517+196-535+462-278+443-284+207-530+204-539+198-536+194-536+434-285+201-540+440-294+209-517+199-538+450-270+204-541+443-279+454-293+432-285+207-526+208-517+222-518+465-271+208-517+222-517+195-534+460-277+195-554+191-534+434-298+447-288+445-272+208-537+198-519+466-269+461-275+444-286+450-292+208-516+444-309+179-571+811-859+828-875+798-873+808-864+206-526+208-541+198-537+440-270+461-283+202-537+195-539+205-516+198-539+440-297+207-516+444-282+208-548+200-528+446-271+209-543+444-284+450-270+457-286+202-535+194-535+211-514+444-280+208-545+204-528+200-508+458-276+223-527+206-527+436-282+449-306+425-295+203-539+197-513+454-272+477-262+471-275+458-272+198-532+446-298+211-572+779-880+811-861+820-869+808-860+207-548+196-530+206-528+433-287+448-279+208-547+199-528+205-527+209-516+444-283+206-545+426-311+179-529+207-540+446-276+209-534+427-311+448-269+459-284+201-520+194-533+209-544+444-285+206-506+230-510+205-526+461-275+196-526+217-536+439-295+430-286+445-300+210-518+199-546+441-272+458-277+443-285+447-296+208-517+443-282+208-74328+382-1103+353-574+404-504+100-353+97-253+177-75+474-325+510-855+399-75+200-77 
 
rtl_433_ESP(6): Unparsed Signal length: 147803, Signal RSSI: -24, train: 0, messageCount: 6, pulses: 49
rtl_433_ESP(6): RAW (147803): +118-242+202-540+195-535+207-518+224-516+462-271+209-517+468-258+235-521+199-505+471-271+209-520+468-284+451-268+456-288+199-513+235-506+205-534+445-272+235-518+199-518+219-511+459-275+223-526+205-528+436-284+447-282+452-272+226-513+223-511+465-274+451-285+446-276+456-268+221-530+444-277+206-74499+100-426+128-401+151-403+100-277+300-202+1183-75+210-150+398-125+224-175+376-175+205-200+426-150

rtl_433_ESP(6): Unparsed Signal length: 275968, Signal RSSI: -52, train: 0, messageCount: 12, pulses: 198
rtl_433_ESP(6): RAW (275968): +694-862+814-868+806-883+814-852+220-519+234-501+236-486+469-276+463-271+228-487+221-511+236-504+231-510+465-275+193-533+460-263+235-500+237-493+470-260+215-509+489-253+465-286+463-244+234-519+199-510+477-268+231-492+223-512+232-506+229-511+467-253+213-536+206-516+467-278+466-250+220-505+233-526+461-261+447-281+236-497+471-263+474-244+234-520+220-514+464-293+841-843+824-853+810-867+821-869+232-485+230-526+211-518+468-257+456-270+226-513+235-496+237-488+220-518+464-272+235-494+468-258+235-510+225-510+471-246+216-534+460-265+464-259+476-268+232-490+222-509+463-269+235-515+197-512+218-532+211-515+468-284+208-506+230-510+445-272+485-249+222-529+205-504+487-259+448-282+235-496+475-262+473-247+233-518+196-537+196-580+815-845+826-855+834-863+817-842+231-516+229-499+240-484+470-286+450-268+232-491+226-508+234-506+230-511+443-275+236-495+471-283+209-504+232-510+470-248+236-510+447-290+445-269+462-288+201-538+207-506+459-288+207-503+234-514+223-512+218-509+461-275+219-501+233-502+462-285+446-280+210-521+224-501+471-271+461-280+217-498+465-271+461-276+219-528+205-501+239-540+825-855+811-868+822-844+827-880+210-509+228-502+226-506+486-249+470-264+233-502+234-488+223-537+206-522+452-261+218-509+459-275+221-530+195-533+456-273+223-509+465-277+464-248+481-257+217-535+211-505+456-290+206-528+211-519+198-538+205-505+458-288+237-498+209-519+467-259+475-247+227-514+223-511+463-271+457-266+219-519+464-274+460-274+221-498+234-501+234-82018+99-1001+224-201+174-399+150-75+203-76+477-177+251-78+99-100+176-101+127-176+126-101+602-77+74-126+328-150+200-299+77-73+250-125+452-77
 

rtl_433_ESP(6): Unparsed Signal length: 143350, Signal RSSI: -19, train: 1, messageCount: 13, pulses: 29
rtl_433_ESP(6): RAW (143350): +202-219+235-498+213-512+221-517+220-507+463-270+223-511+232-498+460-278+468-262+234-502+208-515+467-279+465-274+198-533+445-271+461-275+220-503+231-502+235-83467+100-479+75-452+175-100+484-305+125-101+275-101+176-152+428-76+75-99

Thanks :-D

Switch between RTL Rx and RcSwitch TX -- Rx stops working

I'm trying to

  • use Rx from the RTL_433_ESP library to listen for sensors
  • disable it with a Tx request
  • switch to Tx with the RC Switch library; send a pulse and switch back to listening

The good news (that may be surprising) is that it works ... prototype is here

The bad news is, after a few toggles Rx just stops. I can't figure out if it similar to the deaf-state or even the freq change Rx stop OR if Im just doing something either impossible or missing something silly.

The swap works, sometimes. I usually get 1 swap before I can't get any more Rx. But there are some times I can get a few. But it always goes deaf. Any ideas .. appreciate it

The main bits for enabling/disabling are

// RTL
//
void rtlSetup() {
    Log.notice(F(" " CR));
    Log.notice(F("****** RTL setup begin ******" CR));
    Log.notice(F("Frequency: %F" CR), config.frequency);
    rf.initReceiver(config.receivePin, config.frequency);
    enableRx();
    rf.setCallback(rtl433Callback, messageBuffer, messageBufferLen);
    Log.notice(F("****** RTL setup complete ******" CR));
}

void enableRx() {
    ELECHOUSE_cc1101.SpiStrobe(CC1101_SIDLE);
    ELECHOUSE_cc1101.SetRx(config.frequency);
    //ELECHOUSE_cc1101.setMHZ(config.frequency);
    rf.enableReceiver(config.receivePin);
}

void switchTransmit(float freq, int pulse, int decimal, int bits) {
    Log.notice(F("Sending:" CR));
    Log.notice(F("  freq: %F" CR), freq);
    Log.notice(F("  pulse: %d" CR), pulse);
    Log.notice(F("  decimal: %d" CR), decimal);
    Log.notice(F("  bits %d" CR), bits);

    rf.disableReceiver();
    ELECHOUSE_cc1101.SpiStrobe(CC1101_SIDLE);
    //ELECHOUSE_cc1101.setMHZ(freq);
    ELECHOUSE_cc1101.SetTx(freq);

    mySwitch.enableTransmit(config.transmitPin);
    mySwitch.setPulseLength(pulse);
    mySwitch.send(decimal, bits);
    mySwitch.disableTransmit();

    enableRx();
}

void rtl433Callback(char* message) {
    Log.notice(F("Received message: %s" CR), message);
    messagePost("sensor", message);
}

void messagePost(String path, char* message) {
    HTTPClient http;
    WiFiClient client;

    String url = String(config.serverURL);
    url.trim();

    http.begin(client, url + path);
    http.addHeader("Content-Type", "application/json");
    int httpResponseCode = http.POST(message);
}
void setup() {
    Serial.begin(115200);
    Log.begin(logLevel, &Serial);

    ELECHOUSE_cc1101.Init();
    configSetup();
    rtlSetup();
}

void loop() {
    configManager.loop();
    rf.loop();
}

Support for Fine Offset WH25

I know, I know, it's in RTL_433 but it's FSK. Looks like the FSK development here has stalled, but do you have a guide on how I can try to get it ported from RTL_433 and implemented myself? I have physical access to the device

Full name on RTL_433: "Fine Offset Electronics, WH25, WH32B, WH24, WH65B, HP1000, Misol WS2320 Temperature/Humidity/Pressure Sensor"

Can't get to work in Arduino IDE with DOIT ESP32 DEVKIT1

Hi, Has anyone managed to get rtl_433_ESP to compile and load on a DOIT ESP32 DEVKIT1.
I get the following errors:

C:\Users\DEFAUL2\AppData\Local\Temp\arduino_build_72779\libraries\rtl_433_ESP\rtl_433_ESP.cpp.o:(.literal._ZN11rtl_433_ESP8rtlSetupEP5r_cfg+0x4): undefined reference to acurite_rain_896' C:\Users\DEFAUL~2\AppData\Local\Temp\arduino_build_72779\libraries\rtl_433_ESP\rtl_433_ESP.cpp.o:(.literal._ZN11rtl_433_ESP8rtlSetupEP5r_cfg+0x8): undefined reference to acurite_th'
C:\Users\DEFAUL
2\AppData\Local\Temp\arduino_build_72779\libraries\rtl_433_ESP\rtl_433_ESP.cpp.o:(.literal._ZN11rtl_433_ESP8rtlSetupEP5r_cfg+0xc): undefined reference to `acurite_txr'
......
I have had lots of errors with the example ESP_rtl_433.ino - managed to fix most of them but cant get the above to go.

Maybe I have put the downloaded library files in wrong place - where should they go ?.

I did try the compiled version on openmqttgateway, it uploaded to the ESP32, but didn't work, and when I tried to re-upload to ESP32 again it had been bricked.. I could no longer upload anything to it - so don't want to try that again.

I have a CC1101 module connected to the ESP32, and it works with a SmartRC-CC1101-Driver example thats in the Arduino IDE. I can receive code from a 433mhz remote and send to homeassistant via mqtt publisher - eg {"id":31,"unit":15,"state":"down"}, {"id":31,"unit":15,"state":"up"}, "{"systemcode":480,"unitcode":0,"state":"on"}. So I am guessing I have wired up everything ok.

Anyway if anyone has example code they can share for the DOIT ESP32 that works with a fine offset weather station, that would be great.

Thanks

Issues parsing LaCrosse TX141-Bv2 protocol

First of all, thanks a lot for your work on this library! That's exactly what I was looking for for a long time.

I have seen from the other issues that this sensor (or the one from TFA, in my case) is quite popular and seems to work fine for others. I have built the OOK receiver example with the latest platform package ([email protected]) and the latest library version (0.1.0) with the CC1101 receiver.

As far as the sensor is located directly near the receiver, it is parsed correctly:

rtl_433_ESP(6): Signal length: 602996, Gap length: 49246189, Signal RSSI: -14, train: 0, messageCount: 32, pulses: 358
rtl_433_ESP(6): RAW (602996): +813-851(-16)+818-881(-17)+796-882(-18)+218-510(-19)+219-501(-19)+460-292(-19)+197-525(-20)+217-525(-20)+218-510(-20)+200-521(-21)+459-278(-21)+200-521(-21)+221-517(-21)+202-546(-21)+196-519(-23)+203-546(-23)+195-536(-24)+457-260(-24)+466-280(-25)+222-498(-25)+215-537(-25)+442-281(-25)+206-528(-25)+200-521(-25)+222-515(-25)+200-521(-25)+222-517(-25)+202-546(-25)+224-496(-25)+461-277(-25)+216-517(-25)+464-253(-25)+237-512(-25)+219-500(-25)+205-530(-25)+224-523(-25)+219-514(-25)+440-282(-25)+206-536(-25)+219-500(-25)+459-293(-25)+197-525(-25)+458-279(-25)+224-547(-25)+800-874(-26)+805-875(-25)+815-851(-25)+822-881(-25)+218-514(-25)+218-501(-25)+459-292(-25)+198-525(-25)+217-525(-25)+191-538(-25)+192-528(-25)+459-290(-25)+197-524(-25)+217-524(-25)+218-485(-25)+248-501(-25)+204-530(-25)+223-498(-25)+457-285(-25)+458-280(-25)+221-498(-25)+218-533(-25)+441-281(-25)+206-534(-25)+218-501(-25)+204-531(-25)+220-527(-25)+204-525(-25)+197-525(-25)+216-524(-25)+459-280(-25)+191-528(-25)+459-291(-25)+197-524(-25)+217-524(-25)+218-513(-25)+220-500(-25)+204-528(-25)+444-275(-25)+230-525(-25)+219-500(-25)+460-292(-25)+196-525(-25)+457-281(-25)+224-546(-25)+798-874(-25)+806-874(-25)+816-852(-26)+821-857(-25)+242-513(-26)+219-500(-25)+460-293(-25)+196-524(-25)+216-525(-25)+219-514(-25)+221-500(-25)+458-266(-25)+224-525(-25)+216-498(-25)+216-538(-25)+197-521(-25)+222-515(-25)+200-548(-25)+433-277(-25)+476-253(-25)+219-518(-25)+211-521(-25)+459-280(-25)+198-546(-25)+196-518(-25)+202-547(-25)+196-523(-25)+217-529(-25)+212-526(-25)+192-528(-25)+457-264(-25)+226-504(-25)+459-294(-25)+197-524(-25)+216-525(-25)+220-510(-25)+200-521(-25)+222-517(-25)+452-279(-25)+217-515(-25)+200-547(-25)+433-280(-25)+224-524(-25)+446-275(-25)+221-551(-25)+809-874(-25)+815-879(-25)+797-881(-25)+797-879(-25)+221-511(-25)+219-501(-25)+460-293(-25)+198-524(-25)+219-522(-25)+191-538(-25)+191-528(-25)+460-292(-25)+195-526(-25)+212-527(-25)+199-522(-25)+220-514(-25)+200-521(-25)+223-519(-25)+465-253(-25)+476-280(-25)+221-500(-25)+205-531(-25)+447-288(-25)+200-540(-25)+199-523(-25)+220-517(-25)+220-499(-25)+205-529(-25)+221-526(-25)+204-525(-25)+451-282(-25)+205-531(-25)+440-280(-25)+208-536(-25)+219-500(-25)+205-528(-25)+221-525(-25)+204-523(-25)+452-281(-25)+206-530(-25)+219-503(-25)+458-292(-25)+197-525(-25)+458-280(-25)+437-147438(-87)+868-862(-19)+798-885(-21)+794-881(-21)+796-882(-22)+219-513(-23)+218-505(-24)+468-274(-24)+221-524(-24)+204-522(-25)+197-523(-25)+214-535(-25)+441-281(-25)+206-531(-25)+219-502(-25)+204-529(-25)+221-525(-25)+205-525(-25)+196-523(-25)+455-305(-25)+444-258(-25)+226-525(-25)+219-502(-25)+457-290(-25)+197-525(-25)+217-525(-25)+218-513(-25)+214-523(-25)+191-535(-25)+200-522(-25)+221-515(-25)+452-278(-25)+216-514(-25)+452-278(-25)+218-518(-25)+219-527(-25)+210-525(-25)+192-528(-25)+204-527(-25)+468-275(-25)+211-498(-25)+224-524(-25)+457-255(-25)+248-495(-25)+461-278(-25)+217-568(-25)+797-874(-25)+805-875(-26)+814-852(-25)+820-879(-25)+219-513(-25)+218-506(-25)+466-273(-25)+223-497(-25)+215-523(-25)+220-518(-25)+219-501(-25)+460-293(-25)+196-525(-25)+216-524(-25)+219-514(-25)+220-500(-25)+205-529(-25)+196-548(-25)+457-279(-25)+443-281(-25)+205-530(-25)+219-501(-25)+460-293(-25)+197-525(-25)+217-500(-25)+242-512(-25)+191-528(-25)+205-528(-25)+222-524(-25)+204-523(-25)+452-282(-25)+204-528(-25)+440-281(-25)+210-536(-25)+218-501(-25)+204-531(-25)+222-524(-25)+204-523(-25)+452-257(-25)+229-529(-25)+219-500(-25)+459-293(-25)+197-524(-25)+457-280(-25)+224-546(-25)+799-874(-25)+801-878(-25)+814-852(-26)+820-882(-26)+218-514(-26)+216-504(-25)+471-273(-25)+222-524(-25)+180-521(-25)+221-524(-25)+216-531(-25)+439-289(-25)+199-534(-25)+199-522(-25)+222-517(-25)+218-500(-25)+205-530(-25)+223-523(-25)+458-279(-25)+442-262(-25)+222-534(-25)+202-519(-25)+460-280(-25)+220-505(-25)+208-542(-25)+198-522(-25)+220-516(-25)+219-507(-25)+206-518(-25)+223-524(-25)+458-280(-25)+192-528(-25)+459-290(-25)+198-524(-25)+217-525(-25)+192-541(-25)+192-527(-25)+205-527(-25)+452-280(-25)+205-532(-25)+221-499(-25)+461-291(-25)+197-524(-25)+458-280(-25)+464-306(-25)+803-874(-25)+808-870(-25)+817-853(-25)+822-855(-25)+243-513(-26)+220-500(-25)+461-292(-25)+197-524(-25)+216-525(-25)+190-537(-25)+219-500(-25)+460-293(-25)+197-523(-25)+216-524(-25)+220-513(-25)+221-500(-25)+204-528(-25)+223-498(-25)+457-286(-25)+464-280(-25)+222-498(-25)+214-507(-25)+472-282(-25)+205-530(-25)+221-499(-25)+204-527(-25)+198-548(-25)+219-512(-25)+219-500(-25)+205-528(-25)+451-282(-25)+207-536(-25)+467-258(-25)+199-543(-25)+199-521(-25)+221-518(-25)+218-504(-25)+206-545(-25)+440-286(-25)+200-538(-25)+199-522(-25)+461-280(-25)+220-501(-25)+458-293(-25) 
rtl_433_ESP(6): data_output {"model":"LaCrosse-TX141THBv2","id":33,"channel":0,"battery_ok":1,"temperature_C":30.0,"humidity":40,"test":"No","mic":"CRC","protocol":"LaCrosse TX141-Bv2, TX141TH-Bv2, TX141-Bv3, TX141W, TX145wsdth sensor","rssi":-14,"duration":602996}
N: Received message : {"model":"LaCrosse-TX141THBv2","id":33,"channel":0,"battery_ok":1,"temperature_C":30.0,"humidity":40,"test":"No","mic":"CRC","protocol":"LaCrosse TX141-Bv2, TX141TH-Bv2, TX141-Bv3, TX141W, TX145wsdth sensor","rssi":-14,"duration":602996}

If I move it further away, starting from 50 cm from the receiver, it cannot parse the data anymore:

rtl_433_ESP(6): Signal length: 575957, Gap length: 49273240, Signal RSSI: -26, train: 1, messageCount: 57, pulses: 355
rtl_433_ESP(6): RAW (575957): +543-992(-28)+686-965(-29)+135-613(-29)+132-607(-29)+370-349(-29)+134-596(-30)+155-569(-30)+163-570(-29)+155-584(-30)+381-330(-31)+154-596(-31)+153-580(-30)+163-562(-31)+160-585(-32)+158-554(-32)+188-549(-31)+411-315(-32)+425-327(-32)+158-555(-33)+194-548(-32)+188-549(-33)+404-328(-33)+411-289(-34)+452-302(-33)+190-525(-33)+433-314(-34)+196-543(-34)+161-556(-33)+430-303(-33)+190-554(-34)+434-291(-34)+195-523(-35)+457-282(-35)+222-520(-35)+189-555(-34)+190-533(-35)+190-528(-35)+458-290(-34)+430-303(-34)+437-282(-34)+195-550(-34)+189-529(-34)+214-556(-35)+798-880(-34)+798-897(-34)+786-903(-34)+768-879(-34)+214-535(-35)+218-526(-34)+439-289(-34)+195-523(-34)+216-526(-35)+219-510(-34)+201-548(-35)+433-304(-35)+174-547(-34)+195-517(-34)+202-546(-34)+195-538(-34)+202-526(-34)+195-525(-34)+457-283(-34)+457-278(-34)+221-525(-34)+189-536(-35)+190-528(-35)+461-291(-35)+426-303(-34)+441-281(-34)+222-518(-34)+457-279(-34)+193-545(-34)+189-530(-34)+450-275(-34)+220-525(-34)+432-311(-34)+198-523(-34)+434-303(-34)+194-546(-34)+189-529(-35)+212-528(-35)+190-526(-35)+460-291(-34)+427-303(-34)+439-283(-34)+223-522(-34)+189-528(-34)+214-555(-35)+824-879(-34)+774-901(-34)+784-876(-35)+817-878(-34)+190-538(-34)+218-526(-34)+434-292(-34)+195-525(-34)+217-522(-34)+220-514(-34)+218-526(-34)+435-292(-35)+195-525(-34)+215-524(-35)+191-539(-35)+218-526(-34)+179-531(-34)+220-525(-34)+433-286(-34)+457-304(-34)+194-523(-34)+219-513(-34)+217-532(-35)+418-298(-34)+449-290(-34)+429-297(-34)+221-523(-34)+432-284(-34)+223-522(-34)+189-529(-34)+452-302(-34)+193-524(-34)+433-286(-34)+224-524(-34)+432-305(-34)+195-544(-34)+189-530(-34)+212-529(-35)+190-527(-34)+460-290(-34)+425-303(-34)+439-283(-34)+225-521(-34)+189-528(-34)+214-557(-34)+823-879(-34)+775-901(-34)+784-876(-34)+817-879(-34)+193-533(-34)+217-526(-35)+434-292(-35)+195-524(-34)+215-523(-35)+220-514(-35)+218-526(-34)+436-293(-34)+194-551(-34)+188-549(-34)+195-516(-34)+217-505(-34)+209-542(-35)+199-523(-35)+457-279(-34)+440-276(-34)+209-536(-34)+216-533(-34)+182-546(-34)+445-283(-34)+440-303(-34)+417-286(-34)+201-546(-34)+452-277(-34)+216-515(-34)+217-531(-35)+444-273(-34)+221-523(-34)+432-286(-34)+223-522(-34)+432-279(-34)+218-545(-34)+189-530(-34)+211-527(-34)+190-527(-34)+460-289(-34)+428-303(-34)+438-283(-34)+223-522(-34)+188-529(-34)+147908-2989(-28)+699-979(-27)+697-965(-29)+129-610(-28)+137-592(-28)+383-335(-29)+137-592(-30)+160-577(-29)+163-562(-29)+160-582(-30)+395-323(-31)+163-581(-30)+158-577(-30)+152-579(-31)+165-558(-32)+179-553(-31)+165-566(-31)+427-305(-32)+430-298(-33)+178-559(-33)+193-537(-32)+180-548(-33)+430-300(-34)+428-307(-34)+430-301(-33)+200-524(-34)+455-274(-34)+199-550(-34)+172-552(-34)+447-297(-34)+176-549(-35)+428-302(-35)+204-519(-34)+458-304(-34)+190-532(-34)+183-544(-34)+176-549(-34)+190-540(-35)+439-288(-35)+460-299(-33)+419-274(-34)+229-524(-34)+190-529(-34)+205-581(-34)+793-881(-34)+796-898(-34)+784-875(-34)+816-879(-34)+190-539(-35)+218-528(-35)+433-293(-34)+195-523(-34)+216-524(-34)+219-513(-35)+217-527(-34)+437-290(-34)+195-524(-34)+215-524(-35)+221-514(-34)+218-526(-35)+179-531(-35)+200-548(-34)+430-304(-34)+444-282(-34)+205-528(-34)+189-528(-34)+205-555(-34)+427-276(-34)+448-305(-34)+438-276(-34)+210-537(-34)+439-282(-34)+208-535(-34)+212-523(-34)+432-302(-34)+199-523(-34)+459-276(-34)+200-523(-34)+458-277(-34)+200-547(-34)+196-535(-34)+204-526(-34)+195-550(-34)+431-282(-35)+457-278(-34)+437-305(-34)+194-521(-34)+216-529(-34)+215-551(-34)+799-882(-35)+798-876(-34)+808-876(-34)+814-879(-35)+191-540(-35)+189-526(-34)+462-290(-34)+196-524(-34)+216-525(-34)+190-538(-34)+218-525(-34)+436-292(-34)+195-524(-34)+215-523(-34)+219-514(-34)+217-531(-34)+183-547(-35)+192-526(-34)+459-262(-34)+456-304(-34)+194-524(-34)+219-510(-34)+201-549(-34)+433-276(-34)+451-279(-34)+456-306(-34)+192-530(-34)+445-274(-34)+220-524(-34)+180-551(-34)+452-274(-34)+212-527(-34)+453-283(-34)+205-526(-34)+439-281(-34)+206-534(-34)+191-527(-34)+206-530(-34)+220-524(-34)+433-286(-34)+457-303(-34)+435-281(-34)+194-545(-34)+189-528(-34)+453-328(-34)+801-879(-34)+800-876(-34)+805-874(-34)+814-880(-34)+188-538(-35)+218-526(-34)+436-290(-34)+195-525(-34)+215-523(-34)+218-514(-34)+218-505(-34)+469-272(-35)+194-551(-34)+188-522(-34)+221-517(-34)+215-530(-34)+186-550(-34)+175-548(-34)+431-305(-34)+438-277(-34)+211-536(-34)+218-526(-34)+180-532(-34)+446-287(-34)+459-273(-34)+449-287(-34)+200-540(-34)+452-276(-34)+214-512(-34)+217-530(-34)+445-273(-34)+222-522(-34)+433-285(-34)+223-523(-34)+432-303(-34)+195-545(-34)+190-529(-35)+212-528(-35)+191-526(-34)+460-290(-34)+427-303(-34)+438-282(-34)+223-521(-34)+189-530(-34) 
rtl_433_ESP(6): # of messages decoded 0

Or with a distance of a couple of meters:

rtl_433_ESP(6): Signal length: 546980, Gap length: 49302200, Signal RSSI: -86, train: 0, messageCount: 62, pulses: 338
rtl_433_ESP(6): RAW (546980): +264-449(-40)+78-724(-41)+54-639(-41)+104-637(-41)+331-383(-42)+363-374(-42)+135-596(-42)+129-587(-43)+406-329(-44)+156-580(-44)+162-547(-44)+412-345(-45)+164-546(-45)+434-310(-45)+168-571(-46)+408-307(-45)+192-542(-46)+185-542(-46)+190-538(-46)+440-282(-47)+447-303(-47)+191-526(-47)+455-288(-48)+195-525(-48)+459-281(-48)+223-546(-48)+800-874(-48)+809-877(-48)+814-881(-48)+794-880(-48)+218-513(-48)+219-500(-48)+460-292(-48)+197-523(-48)+215-524(-48)+218-514(-48)+219-526(-48)+434-294(-48)+196-524(-48)+216-526(-48)+190-538(-48)+190-529(-48)+205-529(-48)+220-526(-48)+457-261(-48)+457-303(-48)+194-525(-48)+190-540(-48)+219-524(-48)+435-293(-48)+428-302(-48)+186-550(-48)+197-523(-48)+459-279(-48)+194-544(-48)+178-547(-48)+457-280(-48)+191-529(-49)+453-302(-49)+192-526(-48)+434-285(-48)+220-527(-48)+212-528(-48)+191-526(-48)+460-289(-48)+439-278(-48)+221-525(-48)+429-304(-48)+191-527(-48)+459-289(-48)+197-575(-48)+803-876(-48)+784-876(-48)+819-880(-48)+793-882(-48)+191-539(-48)+190-528(-48)+460-292(-48)+196-524(-48)+215-525(-48)+219-513(-48)+218-527(-48)+436-290(-48)+196-523(-48)+216-525(-48)+219-509(-48)+201-522(-48)+221-514(-48)+203-547(-48)+432-302(-48)+425-281(-48)+218-542(-48)+178-546(-48)+195-535(-48)+458-287(-48)+429-298(-48)+201-534(-48)+199-523(-48)+459-279(-48)+191-528(-48)+205-529(-48)+452-281(-48)+207-535(-48)+436-280(-48)+208-537(-48)+439-280(-48)+209-540(-48)+214-526(-48)+180-531(-48)+452-301(-48)+424-305(-48)+190-528(-48)+461-291(-48)+196-523(-48)+458-281(-48)+195-572(-48)+800-874(-49)+808-875(-48)+816-852(-48)+819-882(-49)+190-540(-49)+216-500(-48)+462-292(-48)+196-523(-48)+216-527(-48)+215-538(-48)+190-505(-48)+469-272(-48)+221-524(-48)+189-547(-48)+196-518(-48)+218-532(-48)+181-549(-48)+190-526(-48)+460-291(-48)+428-303(-48)+194-521(-48)+222-515(-48)+217-506(-48)+469-273(-48)+448-288(-48)+199-538(-48)+200-522(-48)+459-279(-48)+219-500(-48)+206-556(-48)+427-281(-48)+208-535(-48)+440-281(-48)+209-536(-48)+441-282(-48)+207-530(-48)+200-522(-48)+221-515(-48)+453-279(-48)+456-277(-48)+200-547(-48)+432-302(-48)+199-522(-48)+457-271(-48)+456-106507(-93)+186-46302(-40)+445-1040(-41)+365-685(-41)+103-634(-41)+347-375(-42)+128-607(-42)+137-587(-42)+129-581(-43)+163-589(-43)+381-333(-44)+177-562(-44)+161-575(-45)+164-548(-45)+188-553(-45)+179-564(-46)+163-573(-45)+408-313(-46)+428-304(-46)+179-545(-46)+177-549(-47)+209-538(-47)+435-279(-47)+455-278(-48)+219-530(-48)+183-548(-48)+444-258(-48)+228-527(-48)+219-500(-48)+459-293(-48)+196-524(-48)+459-280(-48)+195-546(-48)+435-280(-48)+215-516(-48)+217-530(-48)+183-550(-48)+444-281(-48)+442-304(-48)+193-525(-48)+432-287(-48)+224-524(-48)+432-280(-48)+219-569(-48)+797-898(-48)+784-876(-48)+817-879(-48)+795-882(-48)+217-508(-48)+204-545(-48)+436-274(-48)+200-546(-48)+196-537(-48)+204-526(-48)+195-525(-48)+457-283(-48)+224-520(-48)+189-529(-48)+213-532(-48)+190-548(-48)+190-533(-48)+200-522(-48)+459-277(-48)+451-279(-48)+216-512(-48)+202-546(-48)+196-518(-48)+463-279(-48)+452-279(-48)+219-504(-48)+208-545(-48)+427-280(-48)+210-538(-48)+218-505(-48)+469-273(-48)+223-522(-48)+431-285(-48)+223-522(-48)+433-279(-48)+219-515(-48)+217-529(-48)+211-528(-48)+441-281(-48)+442-303(-48)+192-527(-48)+458-288(-48)+198-522(-48)+458-280(-48)+195-574(-48)+796-875(-48)+808-877(-48)+814-854(-48)+822-881(-48)+189-536(-48)+219-499(-48)+459-294(-48)+196-524(-48)+218-521(-48)+218-513(-48)+218-526(-48)+434-295(-48)+195-523(-48)+216-523(-48)+219-511(-48)+201-522(-48)+221-515(-48)+201-547(-48)+433-301(-48)+451-256(-48)+219-516(-48)+202-546(-48)+196-534(-48)+458-262(-48)+451-277(-48)+228-525(-48)+190-548(-48)+429-302(-48)+199-523(-48)+220-511(-48)+452-278(-48)+217-516(-48)+464-279(-48)+213-512(-48)+439-280(-48)+237-511(-48)+213-523(-48)+220-509(-48)+458-273(-48)+454-277(-48)+200-547(-48)+437-277(-48)+200-547(-48)+432-301(-48)+450-305(-48)+812-882(-48)+789-880(-49)+796-897(-49)+798-864(-48)+221-518(-48)+217-530(-48)+445-274(-48)+222-523(-48)+180-549(-48)+196-525(-48)+216-523(-48)+458-278(-48)+192-528(-48)+205-529(-48)+198-548(-48)+190-539(-48)+190-528(-48)+205-530(-48)+453-281(-48)+444-304(-48)+192-527(-48)+204-528(-49)+198-549(-48)+430-304(-48)+440-276(-48)+209-533(-48)+191-528(-48)+461-291(-48)+196-523(-48)+218-523(-48)+430-304(-48)+191-529(-48)+458-291(-49)+197-523(-48)+460-278(-48)+195-547(-48)+189-529(-48)+214-528(-48)+443-282(-48)+441-306(-48)+190-526(-48)+459-288(-48)+196-525(-48)+458-279(-48) 
rtl_433_ESP(6): # of messages decoded 0

Pulses seem to be more or less okayish (I don't have a lot of experience with radio stuff) except for the value in brackets, which is getting larger with distance. Are there any parameters that can be adjusted?

I have already ordered another Infactory sensor to test with a different protocol, but might there be that I am just doing anything wrong?

Sensitivity drop with latest version used in OpenMQTTGateway

Hi there,
i just updated to the latest development version of openmqttgateway, which references rtl_433_ESP in version 0.1.3.

I have some issue with my Nexus-T temperature sensor, which has been captured fine before the update but now the signal seems to be ignored. If i put the sensor closer to the receiver, the signal is captured. i there some build flag i can tweek? I'm a bit confused about the new RSSI_THRESHOLD and AVERAGE_RSSI (which seems not to be used anywhere from rtl_433_esp)

That's what the sensor normally sends out:

{ "model": "Nexus-T", "id": 167, "channel": 1, "battery_ok": 1, "temperature_C": 22.1, "protocol": "Nexus, FreeTec NC-7345, NX-3980, Solight TE82S, TFA 30.3209 temperature/humidity sensor", "rssi": -53, "duration": 956000 }

thanks in advance

Repeating Error Message: E (251696) gpio: gpio_set_level(226): GPIO output gpio_num error

E (416810) gpio: gpio_set_level(226): GPIO output gpio_num error
E (416814) gpio: gpio_set_level(226): GPIO output gpio_num error
E (416826) gpio: gpio_set_level(226): GPIO output gpio_num error
E (416847) gpio: gpio_set_level(226): GPIO output gpio_num error
E (417909) gpio: gpio_set_level(226): GPIO output gpio_num error
E (417919) gpio: gpio_set_level(226): GPIO output gpio_num error
E (417942) gpio: gpio_set_level(226): GPIO output gpio_num error
E (417943) gpio: gpio_set_level(226): GPIO output gpio_num error
E (417945) gpio: gpio_set_level(226): GPIO output gpio_num error
E (417950) gpio: gpio_set_level(226): GPIO output gpio_num error
E (419861) gpio: gpio_set_level(226): GPIO output gpio_num error
I: Received message : {"model":"Markisol","id":0,"control":"Limit (0)","channel":1,"zone":1,"mic":"CHECKSUM","protocol":"Markisol, E-Motion, BOFU, Rollerhouse, BF-30x, BF-415 curtain remote","rssi":-70,"duration":1911360}
 

I have the library working, and its receiving/decoding various devices. However, I continually see this error message in the serial output. Having trouble tracking down what/why is calling this. Any ideas?

Regression Testing of OMG 0.9.7 and FSK

Regression testing of Active Receiver prior to Carrier Sense and FSK changes

Receiving of signals

Receive
RF Receive Works
RF2 Receive Works
PiLight Receive Works
RTL_433 Receive Works

Transmitting signals while another receiver is active

RF Signal RF2 Signal PiLight Signal
RF Receive Works Transmission works Transmission works
RF2 Receive Exception Transmission works Transmission works
PiLight Receive Exception Transmission works Transmission works
RTL_433 Receive Exception Transmission works Transmission does not work

Testing with Carrier Sense and FSK Package

Receiving of signals

Receive
RF Receive
RF2 Receive Works
PiLight Receive Works
RTL_433 Receive Works

Transmitting signals while another receiver is active

RF Signal RF2 Signal PiLight Signal
RF Receive Works Works Broke
RF2 Receive Works Works Broke
PiLight Receive Works Works Works
RTL_433 Receive Works Works Broke

Signal Samples

PiLight Send

Topic - /commands/MQTTtoPilight

Message

{"raw":"c:03020202010102020102010101010101010202020201020102020202020101010201010202;p:500,1000,2000,4000;r:12@"}

RF Send

Topic - home/cc1101-aaaaaa/commands/MQTTto433

Message

{"value":3812919,"protocol":31,"length":22,"mhz":314.976,"repeat":9,"delay":310}

RF2 Send

Topic - home/cc1101-aaaaaa/commands/MQTTtoRF2

{"unit":0,"groupBit":0,"period":273,"address":8233228,"switchType":0}

Additional Receivers

👋 @NorthernMan54 ... Got this running using the basic configs. Works like magic for sniffing some of my devices. THANK YOU

TLDR; Whats your "BUY YOU A BEER ADDRESS" -- because I'd like to prime you for an ask ;)

Having the same receiver distance issue as noted in other issues and also stumbled across some posts about possible future receiver work .. @skiphansen (ever resolve your distance issue)

Wondering if there has been any further thought into different receivers .. and also curious if this library is able to use very basic receivers such as shown in the attached images .. OR .. if the chipset (or base library) needs to be smarter as alluded to in your other thread?

Standard Generic Arduino Module

  • wouldnt expect this to be much better than CC1101
    612YmAsyQGL AC_SX679

Open-Smart

  • This is the wild card chipset
    sku_481971_1_210x210

AdaFruit

  • discussion that its receiver is very good with distance
    3071-06

Upload to Wunderground

The master branch as of 2023-0307 reports Acurite-5n1 when I power-on Lilygo TTGO LOra32 which has the binary built by esp32_lilygo. Now it is the time to upload the decoded data to yunderground.
Code section is 30% of the flash memory in Lora32. There is enough memory to implement uploading to wunderground.

how to pull devices from rtl_433 project

Hi there,

first of all, thanks for great job here.

I have a question, I need EMOS E6016 sensor support but I have trouble getting it decoded using this lib with OpenMQTTGateway.

I ran update_rtl_433_devices.sh, output said to update rtl_433_ESPcpp with contents of rtl_433_ESP.fragment, I did that.
However I did not touch the rtl_433_devices files. I noticed there are 3 fragment files

compiling went fine, but EMOS E6016 seems not to be recognized. Other sensors are recognized, for example Nexus-TH

observations:

  • E6016 is transmitting for sure and I am able to see and decode signal by my own program. I just wanted it to get it done by OMG
  • when I remove Nexus support, nexus sensors stop appearing in the MQTT messages
  • when I remove everything and keep only EMOS protocols, no messages get through
  • CC1101 is working fine (i can see other protocols)

what is the process of updating protocols from rtl_433 github project? what else needs to be done besides running update_rtl_433_devices.sh ?

thanks a lot!

FYI: Skylink HA-434TL - false positives

Hi @NorthernMan54,

just as an update. During the discussion with my pull request yesterday you mentioned that the Skylink HA-434TL decoder might produce too many false positives, as I kept seeing

{"model":"Skylink HA-434TL motion sensor","motion":"false","id":"00000","raw":"00000","protocol":"Skylink HA-434TL motion sensor","rssi":-57,"duration":99281}

Running my OMG rtl_433_ESP gatway for several hours today, I didn't see one single such false positive message. This made me think what was different to my testing yesterday.

  • I had the gateway connected to the PC for serial monitoring. Ok didn't do that again just now, but tried an OTA update with the following debugging build flags on

'-DRTL_DEBUG=4' ; rtl_433 verbose mode - ; Enable RTL_433 Verbose option ( 0=normal, 1=verbose, 2=verbose decoders, 3=debug decoders, 4=trace decoding. )
'-DLOG_LEVEL=LOG_LEVEL_TRACE'
'-DDEMOD_DEBUG=true'
'-DRAW_SIGNAL_DEBUG=true' ; display raw received messages

and low and behold, the above phantom Skylink HA-434TL mqtt messages started appearing again in regular intervals.

Maybe you can reproduce this on your side, as

"motion":"false","id":"00000","raw":"00000",

is always identical in these messages and possibly might not conflict with any of your proper Skylink HA-434TL messages.

Commenting out

;'-DLOG_LEVEL=LOG_LEVEL_TRACE'
;'-DDEMOD_DEBUG=true'
;'-DRAW_SIGNAL_DEBUG=true' ; display raw received messages

which should be default for most users, brings everything back to normal for me, without any false positive Skylink HA-434TL messages at all.

Thanks

Support for 868MHz ESP32 LoRa ?

hello,
well by any chance is there a way to support the 868MHz ESP32 LoRa boards for Bresser 6 in 1 sensors ?
the rtl_433 does support the 868MHz ...
many thx

Support for configuration and use

Hi!

LSatan and I are trying to test your rtl_433 example, but we can't get it to work

I think the documentation is a bit sparse and causes confusion

Can you tell me the full process to make this work?

Thanks!

315MHz pre made lora boards

Has anyone tried the 433MHz lilygo board as a 315MHz reciever, or found another pre-made board that will work for 315MHz generic keychain remotes with this?

Support for FSK Modulation - WH51 Soil Moisture sensor

Status on the FSK Project

Backlog

[x] Addition of FSK device decoders to the build
[x] Update build process to allow refreshes of rtl_433 components
[x] Wire FSK device decoders into rtl_433_ESP code base
[x] Create FSK Transmitter to emulate a FSK device, tks @AusGunno ( https://github.com/NorthernMan54/rtl_433_ESP/tree/fsk/example/FSK_Transmitter )
[x] Create FSK Receiver ( https://github.com/NorthernMan54/rtl_433_ESP/tree/fsk/example/FSK_Receiver )
[x] Create FSK Sample ( https://github.com/NorthernMan54/rtl_433_ESP/tree/fsk/example/FSK_Sample )
[x] Demodulate signal pulse train into rtl_433 device decoders

[ ] Add backwards compatibility for old RSSI Signal detection mode
[x] Final tuning of signal reception to improve success rate from 10%
[x] Review change for bad code, simplify compiler definitions
[ ] Add support for verbose mode of a single device decoder
[x] Fix broken debug mode setting
[ ] Update documentation for FSK Decoders and new wiring requirement
[ ] Enable modulation switches in openMQTTGateway to enable switching between FSK and ASK modulation
[ ] Create pull request for OpenMQTTGateway for breaking change on usage of gpio2 and removal of minimumRSSI option

Add decoders for AC114-xxB and BeSmart_Sx

SignalDuino already has support for AC114-xxB and BeSmart_Sx.

Both appear as follows with trl_433_ESP v0.1.4:

home/OpenMQTTGateway_rtl_433_ESP/RTL_433toMQTT/unknown/null {"model":"unknown","protocol":"signal parsing failed","duration":170000,"rssi":-27,"pulses":98}
home/OpenMQTTGateway_rtl_433_ESP/RTL_433toMQTT/unknown/null {"model":"unknown","protocol":"signal parsing failed","duration":135028,"rssi":-52,"pulses":102}
home/OpenMQTTGateway_rtl_433_ESP/RTL_433toMQTT/unknown/null {"model":"unknown","protocol":"signal parsing failed","duration":154996,"rssi":-41,"pulses":98}
home/OpenMQTTGateway_rtl_433_ESP/RTL_433toMQTT/unknown/null {"model":"unknown","protocol":"signal parsing failed","duration":119044,"rssi":-52,"pulses":35}

home/OpenMQTTGateway_rtl_433_ESP/RTL_433toMQTT/unknown/null {"model":"unknown","protocol":"signal parsing failed","duration":510042,"rssi":-24,"pulses":394}
home/OpenMQTTGateway_rtl_433_ESP/RTL_433toMQTT/unknown/null {"model":"unknown","protocol":"signal parsing failed","duration":709024,"rssi":-24,"pulses":668}
home/OpenMQTTGateway_rtl_433_ESP/RTL_433toMQTT/unknown/null {"model":"unknown","protocol":"signal parsing failed","duration":468848,"rssi":-23,"pulses":394}

How hard is it to add those protocols? Or do they need to be added to rtl_433 beforehand?

Confusing duplicate varying preferential TFA-303221 vs. LaCrosse-TX141THBv2 decoder

While I'm aware of the duplicate/merge comment in the tfa_30_3221 decoder

This is the same as LaCrosse-TX141THBv2 and should be merged.

and this being taken over from the current rtl_433 decoders

It is very confusing when using the decoders with OMG, where after a restart of OMG either the TFA-303221 or the LaCrosse-TX141THBv2 seems to get preferential treatment in the creation of MQTT messages, while stil both do show up over time.

Since the ID stays the same, but it changing with battery changes of the sensors, I've been using the channel to differentiate my fridge/freezer sensors. This channel is however different with the two decoders.

I only came across this when realising that my current TFA-303221 decoder recognition didn't get the regular updates it used to, and found that currently the LaCrosse-TX141THBv2 decoder is the preferred one, producing more regular MQTT messages.

I'm not sure if the same behaviour is happening with rtl_433 on a different platform, e.g. Raspberry Pi, or if there, both decoders are recognised simultaneously, producing duplicate MQTT messages, but with OMG and rtl_433_ESP there is a varying preferential decoder result.

Here are the duplicates, after waiting a while to get proper readings from both decoders.

{"model":"LaCrosse-TX141THBv2","id":175,"channel":1,"battery_ok":1,"temperature_C":4,"humidity":71,"test":"No","mic":"CRC","protocol":"LaCrosse TX141-Bv2, TX141TH-Bv2, TX141-Bv3, TX141W, TX145wsdth sensor","rssi":-38,"duration":240242}
{"model":"TFA-303221","id":175,"channel":2,"battery_ok":1,"temperature_C":4,"humidity":71,"sendmode":0,"mic":"CRC","protocol":"TFA Dostmann 30.3221.02 T/H Outdoor Sensor","rssi":-39,"duration":242160}

{"model":"LaCrosse-TX141THBv2","id":54,"channel":0,"battery_ok":1,"temperature_C":-21.2,"humidity":78,"test":"No","mic":"CRC","protocol":"LaCrosse TX141-Bv2, TX141TH-Bv2, TX141-Bv3, TX141W, TX145wsdth sensor","rssi":-52,"duration":259944}
{"model":"TFA-303221","id":54,"channel":1,"battery_ok":1,"temperature_C":-21.2,"humidity":78,"sendmode":0,"mic":"CRC","protocol":"TFA Dostmann 30.3221.02 T/H Outdoor Sensor","rssi":-43,"duration":236051}

I have forked and created my own MY_DEVICES list to remedy this for my setup for now, and ultimately this is a rtl_433 issue, but I wanted to point out this varying preferential decoder recognition, in case others have similar issues.

P.S.: Or since rtl_433_ESP only uses a subset of the rtl_433 decoders anyway, the TFA-303221 could be excluded from the list to avoid this ;)

merbanan/rtl_433#1652

Raspberry Pi support

Hi,
Any suggestion on making it works on RPI? It is a cool project with C1101 with so many existing decoder.

Thank!!

Man great job, you made my day (actually a month). Thanks a lot!

ps: not really an issue but i wanted to thank

error while uploading FSK_Sample

hello, i got an error while uploading FSK_Sample to my ESP32 board. the error says like this:

Found 31 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ArduinoLog> 1.0.3+sha.d13cd80
|-- <ArduinoJson> 5.13.4
|-- <SmartRC-CC1101-Driver-Lib> 2.5.5
|   |-- <SPI> 1.0
Building in debug mode
Compiling .pio/build/esp32/src/ESP_rtl_433.ino.cpp.o
Generating partitions .pio/build/esp32/partitions.bin
Compiling .pio/build/esp32/lib411/ArduinoLog/ArduinoLog.cpp.o
/home/monsteriot/rtl_433_ESP/example/FSK_Sample/ESP_rtl_433.ino:5:25: fatal error: rtl_433_ESP.h: No such file or directory

*********************************************************************
* Looking for rtl_433_ESP.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:rtl_433_ESP.h"
* Web  > https://registry.platformio.org/search?q=header:rtl_433_ESP.h
*
*********************************************************************

Compiling .pio/build/esp32/liba94/SPI/SPI.cpp.o
compilation terminated.
Compiling .pio/build/esp32/lib87a/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp.o
Archiving .pio/build/esp32/libFrameworkArduinoVariant.a
Indexing .pio/build/esp32/libFrameworkArduinoVariant.a
Compiling .pio/build/esp32/FrameworkArduino/Esp.cpp.o
Compiling .pio/build/esp32/FrameworkArduino/FunctionalInterrupt.cpp.o
*** [.pio/build/esp32/src/ESP_rtl_433.ino.cpp.o] Error 1
.pio/libdeps/esp32/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp: In member function 'void ELECHOUSE_CC1101::Split_MDMCFG1()':
.pio/libdeps/esp32/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp:888:5: warning: unused variable 's2' [-Wunused-variable]
 int s2 = 0;
     ^
.pio/libdeps/esp32/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp: In member function 'void ELECHOUSE_CC1101::setPA(int)':
.pio/libdeps/esp32/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp:418:16: warning: 'a' may be used uninitialized in this function [-Wmaybe-uninitialized]
 PA_TABLE[0] = a;  
                ^
===================================================================== [FAILED] Took 2.27 seconds =====================================================================
The terminal process "platformio 'run', '--environment', 'esp32'" terminated with exit code: 1.   

after that i copy file rtl_433_ESP.c and rtl_433_ESP.h from src directory, but i got this error now:

In file included from /home/monsteriot/rtl_433_ESP/example/FSK_Sample/ESP_rtl_433.ino:5:0:
./rtl_433_ESP.h:24:21: fatal error: rtl_433.h: No such file or directory

*****************************************************************
* Looking for rtl_433.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:rtl_433.h"
* Web  > https://registry.platformio.org/search?q=header:rtl_433.h
*
*****************************************************************

compilation terminated.
In file included from rtl_433_ESP.cpp:19:0:
./rtl_433_ESP.h:24:21: fatal error: rtl_433.h: No such file or directory

*****************************************************************
* Looking for rtl_433.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:rtl_433.h"
* Web  > https://registry.platformio.org/search?q=header:rtl_433.h
*
*****************************************************************

compilation terminated.
Compiling .pio/build/esp32/liba94/SPI/SPI.cpp.o
Compiling .pio/build/esp32/lib87a/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp.o
Archiving .pio/build/esp32/libFrameworkArduinoVariant.a
Indexing .pio/build/esp32/libFrameworkArduinoVariant.a
Compiling .pio/build/esp32/FrameworkArduino/Esp.cpp.o
*** [.pio/build/esp32/src/ESP_rtl_433.ino.cpp.o] Error 1
*** [.pio/build/esp32/src/rtl_433_ESP.cpp.o] Error 1
.pio/libdeps/esp32/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp: In member function 'void ELECHOUSE_CC1101::Split_MDMCFG1()':
.pio/libdeps/esp32/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp:888:5: warning: unused variable 's2' [-Wunused-variable]
 int s2 = 0;
     ^
.pio/libdeps/esp32/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp: In member function 'void ELECHOUSE_CC1101::setPA(int)':
.pio/libdeps/esp32/SmartRC-CC1101-Driver-Lib/ELECHOUSE_CC1101_SRC_DRV.cpp:418:16: warning: 'a' may be used uninitialized in this function [-Wmaybe-uninitialized]
 PA_TABLE[0] = a;  
                ^
===================================================================== [FAILED] Took 2.20 seconds =====================================================================
The terminal process "platformio 'run', '--environment', 'esp32'" terminated with exit code: 1.  

is there any solution for this error? thanks before

How to enable protocol

Hi,
I am using OpenMQTTGateway and I want to enable to rtl_433 Intertechno protocol.
But I don't know how to do that.

Could you please help me?

Regards

Get 2 sets of data

Hi, I am getting 2 sets of data coming from the rtl_433_Callback function - or the function is being called twice.
This has only started happening since I updated to the new version of rtl_433_ESP.

The following modifications is all I have done in relation to rtl_433_ESP library/code:

rtl_433_ESP\include\rtl_433_devices.h - line 120
#define DEVICES
DECL(fineoffset_wh1080)
/* Add new personal decoders here. */
#define NUMOFDEVICES 1
#endif

rtl_433_ESP\src\rtl_433_ESP.cpp - line 206
#else
memcpy(&cfg->devices[0], &fineoffset_wh1080, sizeof(r_device));
#endif

rtl_433_ESP\src\rtl_433\r_api.c - line 852
/*
data_append(data,
"protocol", "", DATA_STRING, r_dev->name,
"rssi", "RSSI", DATA_INT, cfg->demod->pulse_data->signalRssi,
"duration", "", DATA_INT, cfg->demod->pulse_data->signalDuration,
NULL);
*/

void rtl_433_Callback(char* message) {
Log.notice(F("Received message : %s" CR), message);

DynamicJsonBuffer jsonBuffer2(JSON_MSG_BUFFER);
JsonObject& RFrtl_433_ESPdata = jsonBuffer2.parseObject(message);

String mqttSubTopic;
String model = RFrtl_433_ESPdata["model"];
String id = RFrtl_433_ESPdata["id"];
if (model != 0) {
mqttSubTopic += "/" + model;
if (id != 0) {
mqttSubTopic += "/" + id;
}
}

RFrtl_433_ESPdata["espid"] = espID;

char JSONmessageBuffer[RFrtl_433_ESPdata.measureLength() + 1];
RFrtl_433_ESPdata.printTo(JSONmessageBuffer, sizeof(JSONmessageBuffer));

mqttPublish(mqttSubTopic, JSONmessageBuffer );
}

void loop()
{
rf.loop();
}

I also have BME280 sensor connected to the ESP, which is run in another loop on cpu core 1, and rf.loop is run on core 2 (default for ESP32 loop function).

It doesnt happen everytime, probably 2/3 of the time.
I also have SDR_RTL_433 running on a rpi0, and I only get the one set of data every 136 secs.

The following output shows both the weather station data and BME280 - BME280 sensor is read every 60secs, and the weather station sends out a message every 136 secs.

10:05:52 - rtl_433_ESP/Fineoffset-WHx080/150 {"model":"Fineoffset-WHx080","subtype":0,"id":150,"battery_ok":1,"temperature_C":32.8,"humidity":69,"wind_dir_deg":315,"wind_avg_km_h":0,"wind_max_km_h":2.448,"rain_mm":716.10004,"mic":"CRC","espid":"2115"}
10:05:52 - rtl_433_ESP/Fineoffset-WHx080/150 {"model":"Fineoffset-WHx080","subtype":0,"id":150,"battery_ok":1,"temperature_C":32.8,"humidity":69,"wind_dir_deg":315,"wind_avg_km_h":0,"wind_max_km_h":2.448,"rain_mm":716.10004,"mic":"CRC","espid":"2115"}
10:06:20 - rtl_433_ESP/SENSORS {"espid":"2115","temperature":30.84,"humidity":75.58,"abs_humidity":24.00,"dewpoint":26.02,"heatindex":38.88,"pressure":1007.50,"altitude":21.64,"sealevel":1008.41}
10:07:20 - rtl_433_ESP/SENSORS {"espid":"2115","temperature":30.84,"humidity":75.58,"abs_humidity":24.00,"dewpoint":26.02,"heatindex":38.88,"pressure":1007.50,"altitude":21.64,"sealevel":1008.41}
10:07:28 - rtl_433_ESP/Fineoffset-WHx080/150 {"model":"Fineoffset-WHx080","subtype":0,"id":150,"battery_ok":1,"temperature_C":32.7,"humidity":69,"wind_dir_deg":315,"wind_avg_km_h":1.224,"wind_max_km_h":2.448,"rain_mm":716.10004,"mic":"CRC","espid":"2115"}
10:08:20 - rtl_433_ESP/SENSORS {"espid":"2115","temperature":30.84,"humidity":75.58,"abs_humidity":24.00,"dewpoint":26.02,"heatindex":38.88,"pressure":1007.50,"altitude":21.64,"sealevel":1008.41}
10:09:04 - rtl_433_ESP/Fineoffset-WHx080/150 {"model":"Fineoffset-WHx080","subtype":0,"id":150,"battery_ok":1,"temperature_C":32.8,"humidity":70,"wind_dir_deg":315,"wind_avg_km_h":1.224,"wind_max_km_h":2.448,"rain_mm":716.10004,"mic":"CRC","espid":"2115"}
10:09:04 - rtl_433_ESP/Fineoffset-WHx080/150 {"model":"Fineoffset-WHx080","subtype":0,"id":150,"battery_ok":1,"temperature_C":32.8,"humidity":70,"wind_dir_deg":315,"wind_avg_km_h":1.224,"wind_max_km_h":2.448,"rain_mm":716.10004,"mic":"CRC","espid":"2115"}
10:09:20 - rtl_433_ESP/SENSORS {"espid":"2115","temperature":30.84,"humidity":75.58,"abs_humidity":24.00,"dewpoint":26.02,"heatindex":38.88,"pressure":1007.50,"altitude":21.64,"sealevel":1008.41}

The function that publishes the MQTT message is used for both rtl_433_ESP and BME280, so I dont think its from there or else it would show the same problem for BME280.

Here is the data from arduino terminal:

10:18:45.700 -> rtl_433_ESP(6): Signal length: 471335, Gap length: 47771067, Signal RSSI: -74, train: 0, messageCount: 4, pulses: 189
10:18:45.747 -> rtl_433_ESP(6): RAW (471517): +531-963+516-951+498-960+509-950+503-943+545-941+532-947+499-963+1493-931+551-939+1515-900+527-957+1494-932+1498-964+528-923+1518-929+520-952+499-942+1521-925+1505-950+1496-942+504-939+1509-937+532-938+542-904+1531-959+1453-975+478-1010+483-956+1474-988+1477-938+1481-977+505-966+1468-971+1472-954+1502-957+507-941+541-930+524-946+1485-932+1515-933+1509-936+1503-993+1443-988+1449-966+1478-965+532-932+1488-949+1480-979+1473-954+1495-957+1485-918+1532-928+529-958+517-958+1486-945+1483-960+1489-952+1508-925+524-950+1497-941+1478-968+507-966+1490-957+527-920+1521-914+524-917+1536-863+1605-923+494-951+518-953+1482-966+1488-952+1479-943+1513-944+1547-903+521-932+1488-915+1535-937+529-960+1474-954+520-956+1482-964+536-926+504-921+548-942+1509-6437+1484-822+548-24756+1483-398+555-939+519-924+547-937+540-896+549-965+530-924+529-936+545-915+1558-855+556-950+1465-1003+449-1001+1455-964+1480-968+503-977+1491-924+499-988+473-1021+1436-982+1489-950+1504-918+517-958+1478-968+556-903+505-956+1493-949+1492-961+551-911+507-963+1492-944+1496-940+1484-968+510-931+1516-946+1487-940+1506-960+541-914+533-941+509-948+1529-909+1528-902+1526-902+1528-919+1534-927+1481-988+1464-982+511-935+1502-928+1527-938+1513-905+1538-910+1511-933+1508-945+520-929+548-919+1519-926+1526-930+1543-883+1530-932+507-955+1491-957+1466-958+537-935+1501-938+525-936+1508-938+511-955+1481-964+1494-942+528-914+554-949+1488-942+1495-941+1503-945+1511-926+1505-947+514-936+1501-925+1522-926+551-941+1488-964+520-911+1536-914+529-962+541-913+524-933+1511-985+148-195+199-2320+0-3267+0-818+0-35000+100-299+74-376+0-378+75-357+75-381+0-811+0-1214
10:18:45.887 -> rtl_433_ESP(6): Pre run_ook_demods: 227464
10:18:45.887 -> rtl_433_ESP(7): demod(6) - Fine Offset Electronics WH1080/WH3080 Weather Station
10:18:45.887 -> Fine Offset WH1080 data {80} ff a9 62 cc 47 01 03 09 53 04
10:18:45.887 -> rtl_433_ESP(6): data_output {"model":"Fineoffset-WHx080","subtype":0,"id":150,"battery_ok":1,"temperature_C":31.6,"humidity":71,"wind_dir_deg":90,"wind_avg_km_h":1.224,"wind_max_km_h":3.672,"rain_mm":716.10004,"mic":"CRC"}
10:18:45.887 -> N: Received message : {"model":"Fineoffset-WHx080","subtype":0,"id":150,"battery_ok":1,"temperature_C":31.6,"humidity":71,"wind_dir_deg":90,"wind_avg_km_h":1.224,"wind_max_km_h":3.672,"rain_mm":716.10004,"mic":"CRC"}
10:18:45.934 ->
10:18:45.934 -> rtl_433_Callback running on core 1
10:18:45.934 -> mqttSubTopic: /Fineoffset-WHx080/150
10:18:45.934 ->
10:18:45.934 -> mqttPublish running on core 1
10:18:45.934 -> mqttTopic: rtl_433_ESP/Fineoffset-WHx080/150
10:18:45.934 -> jsonMessage: {"model":"Fineoffset-WHx080","subtype":0,"id":150,"battery_ok":1,"temperature_C":31.6,"humidity":71,"wind_dir_deg":90,"wind_avg_km_h":1.224,"wind_max_km_h":3.672,"rain_mm":716.10004,"mic":"CRC","espid":"2115"}
10:18:45.934 -> pulse_demod_pwm(): Fine Offset Electronics WH1080/WH3080 Weather Station
10:18:45.981 -> bitbuffer:: Number of rows: 1
10:18:45.981 -> [00] {87} ff 52 c5 98 8e 02 06 12 a6 09 5c
10:18:45.981 -> Fine Offset WH1080 data {80} 7f a9 62 cc 47 01 03 09 53 04
10:18:45.981 -> rtl_433_ESP(6): # of messages decoded 1
10:18:45.981 -> rtl_433_ESP(6): Signal processing time: 251183
10:18:45.981 -> rtl_433_ESP(6): Post run_ook_demods memory 227464

When I connect the ESP32 to my computer, and monitor on the terminal it stops sending the RF data twice, and the blue LED on the ESP flickers continually - never goes out. If not connected to PC there is a clear flashing of the blue LED.

Anyways any help would be great.
Thanks

HELP with decoding Fineoffset-WHx080

Hi,
I try to decode my weather station with this library. I set my devices to Fine Offset Electronics WH1080/WH3080 Weather Station. Do I miss something?

Please note that, I use RTL_SDR(rtl_433 on RasberryPI) which can decode this data successfully.

Here's the log I got on my ESP32:

rtl_433_ESP(6): RAW (1025187): +475-512+470-483+495-512+474-498+478-491+516-448+502-487+534-423+527-492+501-435+524-488+490-497+502-528+514-942+1003-967+995-962+997-146+0-788+1029-486+517-941+512-456+523-462+519-471+520-465+496-489+977-286+0-387+0-308+985-482+517-927+524-494+520-430+524-477+519-441+1007-489+522-944+524-438+546-438+520-472+514-479+504-469+1011-456+518-454+527-951+995-472+516-934+1030-930+532-498+987-964+500-464+522-455+523-475+491-476+506-489+536-499+491-487+510-445+508-492+528-449+502-487+521-393+1053-935+1028-489+495-463+521-938+529-465+501-489+520-461+519-462+501-472+1007-940+532-466+542-403+524-489+492-504+479-501+482-475+502-501+479-484+496-487+499-484+500-481+502-471+990-961+534-450+1008-932+1023-942+1029-921+1029-948+1001-961+522-491+496-464+673-742+30187-724+0-423+0-798+0-400+0-399+0-351+174-251+99-300+150-75+324735-1945+0-797+0-374+100-301+97-323+75-279+0-77341+0-778+75-351+0-377+99-278+198-176+201-203+72710-449+506-491+524-430+498-515+489-444+529-473+510-487+506-470+507-485+474-487+497-488+523-457+495-493+515-453+503-489+539-937+1017-941+994-960+985-512+0-434+1006-496+516-962+595-331+551-488+504-445+535-447+514-463+1006-985+972-499+511-937+505-498+509-499+512-465+534-425+1030-466+506-974+544-403+550-459+556-396+530-469+516-462+1008-484+554-403+528-956+997-492+498-940+1035-951+505-490+971-984+538-403+548-447+539-423+530-467+541-417+557-469+490-468+529-471+508-462+521-458+523-464+524-457+1010-872+1081-470+505-470+517-926+523-490+524-447+529-452+516-458+530-469+1060-888+520-467+516-463+498-205+0-282+551-485+498-491+500-453+527-476+536-425+506-491+523-403+549-466+573-401+1004-964+509-469+1043-944+1004-937+1018-944+1023-934+1009-882+580-491+522-429+747-701+0-108583+75-354+0-755+124-277+124-276+148-224+201-203+247-151 
rtl_433_ESP(7): demod(6) - Fine Offset Electronics WH1080/WH3080 Weather Station
 
rtl_433_ESP(6): RAW (159590): +496-486+496-477+502-478+494-487+506-476+504-490+522-461+493-488+549-374+593-487+523-456+497-469+560-376+551-492+506-942+1018-890+1070-944+1008-934+1026-470+514-982+496-427+556-451+541-445+507-321+0-150+516-466+1005-974+972-495+515-940+520-464+546-406+547-473+539-397+1028-490+493-973+505-458+522-465+503-485+500-482+510-467+982-510+502-443+531-950+997-296+0-174+512-931+1030-944+527-492+1003-349+0-588+522-449+566-491+495-454+513-477+512-466+510-494+494-460+525-449+526-485+496-463+522-463+552-379+1056-947+1005-473+534-348+0-102+511-945+532-473+487-486+502-473+505-480+518-430+1022-964+518-461+529-428+528-475+562-376+551-490+501-460+522-463+520-455+528-453+510-487+507-471+510-461+994-964+518-460+994-527+0-369+1077-921+1032-938+1023-947+1030-942+508-493+485-473+728-917+0-1588+0-1958+0-3162 
rtl_433_ESP(7): demod(6) - Fine Offset Electronics WH1080/WH3080 Weather Station
 
rtl_433_ESP(6): RAW (511914): +474-984+483-1000+452-996+471-985+480-1003+480-969+493-983+1455-989+486-963+1461-995+1441-995+1469-986+474-982+488-967+1465-972+1470-984+1456-966+1457-992+1461-979+1462-995+465-1000+1446-987+481-992+1461-974+489-973+494-963+482-981+1461-996+1450-996+1443-985+1475-964+1459-984+486-990+482-969+496-984+1452-985+1461-980+1462-977+1464-968+1467-980+1451-1010+1458-959+1461-989+1465-976+1456-994+1441-1000+1446-988+1454-989+1462-966+1462-981+1466-993+1467-976+1446-985+1457-984+1461-991+1462-965+1462-974+1480-968+1469-981+1447-987+1457-991+1435-992+1461-978+1464-992+1441-997+1470-984+1453-987+1461-982+1437-989+1466-967+493-983+1455-983+1461-982+1461-974+491-970+494-990+1459-965+511-971+474-976+1468-985+1454-966+1484-964+488-998+475-973+1470-985+479-30984+488-1031+424-1022+444-1034+430-1039+432-1021+446-1002+474-989+483-999+1443-994+466-986+1456-985+1460-979+1461-976+488-997+470-989+1460-966+1487-964+1463-978+1452-994+1447-997+1449-984+480-990+1463-974+480-972+1467-981+476-989+486-1000+476-970+1470-985+1453-965+1458-992+1461-991+1436-990+484-995+468-983+502-964+1463-989+1461-975+1457-997+1444-1000+1446-988+1455-985+1459-982+1463-978+1463-971+1468-981+1451-983+1459-990+1460-991+1437-980+1459-998+1463-971+1469-985+1454-990+1436-984+1463-982+1460-972+1479-968+1470-980+1449-988+1457-985+1461-981+1459-998+1443-994+1447-979+1476-962+1483-960+1459-1004+1440-994+1445-1001+1447-987+478-990+1463-975+1441-1192+1262-994+470-1005+450-1009+1437-989+484-995+471-979+1449-1013+1434-988+1461-990+464-996+473-1000+1447-984+481-65869+499-1975 
rtl_433_ESP(7): demod(6) - Fine Offset Electronics WH1080/WH3080 Weather Station
Fine Offset WH1080 data {80} ff a3 02 b8 38 00 00 00 00 8d 
pulse_demod_pwm(): Fine Offset Electronics WH1080/WH3080 Weather Station
bitbuffer:: Number of rows: 1 
[00] {87} ff 46 05 70 70 00 00 00 01 1b 1a 

Backlog for rtl_433-refresh branch aka next release

This is the rtl_433-refresh branch

1 - Random reboot after approx 14 hours
- Serial monitor has this aka no exceptions, No memory leaks or stack leaks visible
- Further testing has shown the issue to be a wiring problem on my breadboard device aka loose connection
[x] Resolved

T: [ OMG->MQTT ] topic: home/240AC4EC20DC/RTL_433toMQTT/Acurite-Tower/9899 msg: {"model":"Acurite-Tower","id":9899,"channel":"C","battery_ok":1,"temperature_C":7.3,"humidity":62,"mic":"CHECKSUM","protocol":"Acurite 592TXR Temp/Humidity, 5n1 Weather Station, 6045 Lightning, 3N1, Atlas","rssi":-43,"duration":272394}
�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������N:
************* WELCOME TO OpenMQTTGateway **************
N: OpenMQTTGateway Version: esp32dev_rtl_433-v0.9.8-40-g0070967[development]
N: OTA Hostname: OMG_240AC4EC20DC.local

2 - Flex decoder needs more work or write a contrib device decoder for sonoff PIR device
[ ] - Enable flex decoder
[ ] - A definition option for flex decoder ( single pattern )

After further investigation and testing identified that the existing flex decoder is too resource intensive to work. ESP32 stack needed to be increased to 32768 in order to have flex_callback callable.

3 - Try signal strength detection method ( this was initially investigated as part of FSK feature )
- this may resolve #19
[ ] Complete

4 - Further investigation on the DEAF issue
- aka issue #16

5 - Update of CC1101 driver version, needs to be part of openMQTTGateway's development branch
- 2.5.7 is the latest

6 - Add to openMQTTGateway development branch
[x] Development testing was completed

7 - Update README for PUBLISH_UNPARSED setting
[x] Completed

@DigiH - anything else to add to the backlog ?

@Dattel @mozgy - anything else ?

OOKReceiver seems to not work either in Arduino or PlatformIo environment

May be my fault...
Arduino Win10, v1.8.12:

  1. The rtl_433_ESP downloaded from github, the content is placed into ../Arduino/libraries.
  2. After starting Arduino the error msg is:
    Invalid library in C:\Users\x\Documents\Arduino\libraries\rtl_433_ESP: no header file (.h) : C:\Users\x\Documents\Arduino\libraries\rtl_433_ESP

PlatformIO, I havn't used before. (Win10):

  1. platformio.ini is adjusted (CC1101, libraries, com port, speed)
    [platformio]
    default_envs = esp32_cc1101
    src_dir = .
    [libraries]
    arduinolog = https://github.com/1technophile/Arduino-Log.git#d13cd80
    arduinojson = [email protected]
    rtl_433_ESP = https://github.com/NorthernMan54/rtl_433_ESP.git
    ....
    monitor_port = COM8
    monitor_speed = 115200
    upload_port = COM8
    upload_speed = 921600

  2. Build, 4 problems:

#include errors detected. Please update your includePath. Squiggles are disabled for this translation unit (C:\Users\x\Documents\PlatformIO\Projects\rtl_433_ESP\example\OOK_Receiver\OOK_Receiver.ino). ( #include <rtl_433_ESP.h>)
cannot open source file "stdint.h" (dependency of "rtl_433_ESP.h")
cannot open source file "string.h" (dependency of "ArduinoJson.h")
cannot open source file "inttypes.h" (dependency of "ArduinoLog.h")

On the contrary it says that it was successfull and I can upload it to the board. I inserted a Serial.println() statement after opening serial, but I can't see anything, the led blinks.

Thank you in advance.

Specify MALLOC_CAP_INTERNAL while calloc()ing heap

https://github.com/NorthernMan54/rtl_433_ESP/blob/master/src/rtl_433_ESP.cpp#L409

I was getting calloc() failures, even though there was enough heap reported by ESP.getFreeHeap() and ESP.getMaxAllocHeap().

Those two reporting tools however are calling heap_caps_ functions, and hard coding a capability of MALLOC_CAP_INTERNAL to force reporting heap for Internal memory only.

I tested by detecting a calloc(...) failure, then trying a heap_cap_calloc(..., MALLOC_CAP_INTERNAL) which always succeeded.

So I propose replacing calloc(..) with heap_caps_calloc(..., MALLOC_CAP_INTERNAL)

Pull request incoming. :-)

Insteon Support

@NorthernMan54 Really nice work, sir - I'm using this with OpenMQTT Gateway to control some fans and it works great! I noticed in the rtl_433 project that there is a decoder for Insteon RF packets. Since most devices are dual-band, thought this might be a potential inexpensive alternative to a Hub/PLM. I messed with your example code from the fsk branch and have the CC1101 detecting Insteon RF signals. Where I run into issues is at the packet decode - it starts to decode the packets, finds the Insteon preamble, but then completely crashes (hard reset) at the stage where it begins to parse the Insteon packet. No errors, nothing to help determine the cause. I'm far from an expert on RF or ESP32, but any guesses what might be causing the reset? Assume it might be a memory thing, but thought I'd reach out to see if you had ideas, or had decoding working for any other FSK devices. Thanks!

OOK_PULSE_MANCHESTER_ZEROBIT, ESP32 DOIT DevKIT V1 and Ai Thinker Ra01 (SX1278) problem

Hi, I have created a fork with the following changes

  1. Enabled OOK_PULSE_MANCHESTER_ZEROBIT
  2. New build def ESP32 DOIT DevKIT V1 and Ai Thinker Ra01 (SX1278)
  3. Added sensor "Oregon Scientific Weather Sensor" added which covers the OWL electricity meter

Now sometimes it works, decodes 3 lines and then crash with kernel error.
Sometimes there's no valid decode that occurs and it still crashes with kernel error.

See - https://github.com/diepeterpan/rtl_433_ESP/tree/master/example/OOK_Receiver (I included some sample output at the end of the README)

Besides playing around with compile options and RSSI any advice or assistance you can give me to resolve the problem?

How to use in Arduino IDE 1.8.19 ?

hi, i tried to use this library in Arduino IDE 1.8.19, but i don't know how to get it work.
i tried to git clone into ~/Arduino/libraries/rtl_433_ESP folder and i tried to add the "rtl_433_ESP-master.zip" to the Arduino IDE Library Manager.
both methods didn't work.

rtl_433_Callback stops receiving messages

Hello,

any idea why rtl_433_Callback stops receiving messages after some time?

I'm trying to plot sensor data and, well picture describes it the best -
image
it's especially visible in RSSI part.
My loop() is -

void loop( void ) {

  ArduinoOTA.handle();
  webServer.handleClient();
  rf.loop();

}

esp32 is working fine all the time ..

SX127x range

Hi,
what is the range of SX127x?

I use CC1101 from Ebytes and a few low cost sensors(weather station, rain bucket, soil moisture) but the range is around 20 meters on open field and less than 10 meters behind concrete wall. It is too short.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.