I have a project that I finished a couple months ago that reads 433MHz RF, decodes the signal, and outputs data to MQTT for a variety of sensors. The code is running on an Arduino Uno + Ethernet shield + Superheterodyne 433MHz receiver module. The code is based on the ookDecode framework (a finite state machine) with different header files for each sensor type. I’m currently using 3 sensors:
- Acurite 5in1 weather station
- Acurite 592TX temperature sensor
- Blueline power meter reader
All functions as expected when initially started as I can watch the MQTT traffic arriving at the broker. The issue is that after approximately 2 days the Blueline data ceases. I know the sensor is transmitting as I have the receiver that came with it and can see data is being updated. If I press the reset button on the Arduino, the Blueline data immediately starts again.
The only thing I can think of is a workaround and not a good one. If I add something in the code to reset the Arduino every 2 days, it might eliminate the issue. BUT, that seems like a really shoddy way to deal with this. It also causes some other potential issues as the weather data may need to be stored to output cumulative values (not currently being done, but a possible future change).
I’m at a loss as far as how to debug this. If the program failed within a couple minutes, I could simply add some debug statements and run my code connected to the PC so I could see the serial output. I suppose I could use MQTT as a means to debug, but >2 days between debug attempts seems like it could take a year to fix. I was hoping that someone could either glance at my code or give some advice on how to go about fixing an issue that doesn’t pop up for such a long delay. Not knowing what is causing the data stream to stop being processed makes it difficult for me to shorten the debug cycle.
ookDecoder-ben8.zip (12.4 KB)