Closed matthias-bs closed 7 months ago
Alright, English then ;-)
Thanks for your support! Added the three pulldown resistors.
However, the problem seems to lie elsewhere: It´s not really switching screens but it starts at "Your weather station" screen and the hourglass again and again. For a short period of time it does show other screens depending on the selection in owm_credentials.
Tried to deactivate all sensors I´ll not use (BLE etc.). But also that did not help...
Boardtype is ESP32 Dev module for the Waveshare E-Paper ESP32 Driver Board right?
Any ideas?
Yes, English is preferred to reach a broader audience. ;-)
Yes, ESP32 Dev is correct.
Did you get any compiler warnings? Which display and display configuration are you using?
I made the last changes to support the 3C display, but I no longer had the BW display available for testing. I hope I did not break the BW setup.
Indeed I have a 3C Display (with red). There is a "V3" Sticker on the back. No Compiler Warnings. I currently do not use any sensors except for the one DHT22 via MQTT. Thus really I need far less than what you have included.
I think I´ll test the unforked version just to see whether it makes any difference unless you have any more ideas. Unfortunately my personal experience level is fairly limited - I cannot exclude that I caused the issue by amending the credentials and details...
I am using the same display. You could upload your code on Github, so I could have a look when time permits. Do you get a "clean" restart or an exception? Did you set the Partition Scheme as described in Readme - Setup, Step 7?
Ah, I think I found a possible cause:
In void DisplayGeneralInfoSection(void)
it is assumed that you have at least three pages when drawing the menu! This will lead to an index out-of-bounds in Locations[ScreenNo + i]
which might cause an exception.
I'll come back with a proposal to fix this.
For a quick fix, please replace the for loops as follows:
// for (int i = 0; i <= 2; i++) {
{
int i = 0;
and
// for (int i = 0; i >= -2; i--) {
{
int i = 0;
Hope this helps!
Just basically went back to the beginning and downloaded the Zip freshly here from github. Followed the instructions and basically just edited owm_credentials. Still the same behaviour.
Again, it´s the startscreen, then the hourglass and then the OWM screen. Much of flashing till then. Then OWM screen stays steady (and properly filled) for about 1 Minute, then gets black, starts flashing, comes back, then starts with startscreen allover... Stays in this loop till I cut power.
Happy to upload that but I should have the very same sensors and pages enabled that you do?!
Could it be that some of the expected but not connected hardware leads to the issue?
Hmmm... Maybe that is the case, even if I tried to catch those conditions. Are there any hints in the serial console? Did you enable debug output?
I just made a test with my breadboard setup: I disconnected all sensors from the I2C bus and shielded the BLE sensor. Then I switched to the MQTT screen. The software goes through all data reception / display update cycles without anything unexpected.
However, I did not take the time to recompile with all updated libraries.
BTW: It would be possible to avoid most of the flickering by skipping displaying of the data update icons (BLE and MQTT) and just showing the final result. You could also indicate that data update is in progress with an LED.
Hmmm... Maybe that is the case, even if I tried to catch those conditions. Are there any hints in the serial console? Did you enable debug output?
Could you elaborate this further please? Not sure how to do that...
BTW: It would be possible to avoid most of the flickering by skipping displaying of the data update icons (BLE and MQTT) and just showing the final result. You could also indicate that data update is in progress with an LED.
That would be great - however, the flickering is my secondary concern. I mainly need to exit that "bootloop" One further question: I understand the pulldown-resistors are a 10kOhm connection between GND and the three pins used for the touch sensors. When I then touch any of the PINS with a 3.3 or 5V loaded wire, should that not trigger switching?
Here comes my console printout - there is an exeption and also a reboot... Thanks for any further hint
23:19:42.786 -> [ 71833][D][common.h:67] DecodeWeather(): TLow: 5.060000
23:19:42.786 -> [ 71838][D][common.h:68] DecodeWeather(): THig: 5.060000
23:19:42.786 -> [ 71843][D][common.h:69] DecodeWeather(): Pres: 1013.000000
23:19:42.786 -> [ 71849][D][common.h:70] DecodeWeather(): Humi: 88.000000
23:19:42.786 -> [ 71854][D][common.h:71] DecodeWeather(): For0: Rain
23:19:42.786 -> [ 71858][D][common.h:72] DecodeWeather(): For1:
23:19:42.831 -> [ 71863][D][common.h:73] DecodeWeather(): For2:
23:19:42.831 -> [ 71867][D][common.h:74] DecodeWeather(): Icon: 10n
23:19:42.831 -> [ 71872][D][common.h:75] DecodeWeather(): Desc: H⸮⸮?
23:19:42.831 -> [ 71876][D][common.h:76] DecodeWeather(): CCov: 100
23:19:42.831 -> [ 71881][D][common.h:77] DecodeWeather(): WSpd: 5.760000
23:19:42.831 -> [ 71886][D][common.h:78] DecodeWeather(): WDir: 233.000000
23:19:42.831 -> [ 71891][D][common.h:79] DecodeWeather(): Rain: 0.420000
23:19:42.831 -> [ 71896][D][common.h:80] DecodeWeather(): Snow: 0.000000
23:19:42.831 -> [ 71901][D][common.h:81] DecodeWeather(): Pop: 0.520000
23:19:42.831 -> [ 71906][D][common.h:82] DecodeWeather(): Peri: x⸮⸮?
23:19:42.878 -> [ 71911][D][common.h:64] DecodeWeather(): Period-16--------------
23:19:42.878 -> [ 71917][D][common.h:65] DecodeWeather(): DTim: 1703116800
23:19:42.878 -> [ 71922][D][common.h:66] DecodeWeather(): Temp: 5.730000
23:19:42.878 -> [ 71927][D][common.h:67] DecodeWeather(): TLow: 5.730000
23:19:42.878 -> [ 71932][D][common.h:68] DecodeWeather(): THig: 5.730000
23:19:42.878 -> [ 71937][D][common.h:69] DecodeWeather(): Pres: 1010.000000
23:19:42.878 -> [ 71943][D][common.h:70] DecodeWeather(): Humi: 92.000000
23:19:42.878 -> [ 71948][D][common.h:71] DecodeWeather(): For0: Rain
23:19:42.878 -> [ 71952][D][common.h:72] DecodeWeather(): For1:
23:19:42.925 -> [ 71957][D][common.h:73] DecodeWeather(): For2:
23:19:42.925 -> [ 71961][D][common.h:74] DecodeWeather(): Icon: 10n
23:19:42.925 -> [ 71966][D][common.h:75] DecodeWeather(): Desc: x⸮⸮?
23:19:42.925 -> [ 71970][D][common.h:76] DecodeWeather(): CCov: 100
23:19:42.925 -> [ 71975][D][common.h:77] DecodeWeather(): WSpd: 6.520000
23:19:42.925 -> [ 71980][D][common.h:78] DecodeWeather(): WDir: 240.000000
23:19:42.925 -> [ 71985][D][common.h:79] DecodeWeather(): Rain: 1.930000
23:19:42.925 -> [ 71990][D][common.h:80] DecodeWeather(): Snow: 0.000000
23:19:42.925 -> [ 71995][D][common.h:81] DecodeWeather(): Pop: 0.900000
23:19:42.925 -> [ 72000][D][common.h:82] DecodeWeather(): Peri: ⸮⸮⸮?
23:19:42.973 -> [ 72005][D][common.h:64] DecodeWeather(): Period-17--------------
23:19:42.973 -> [ 72011][D][common.h:65] DecodeWeather(): DTim: 1703127600
23:19:42.973 -> [ 72016][D][common.h:66] DecodeWeather(): Temp: 6.730000
23:19:42.973 -> [ 72021][D][common.h:67] DecodeWeather(): TLow: 6.730000
23:19:42.973 -> [ 72026][D][common.h:68] DecodeWeather(): THig: 6.730000
23:19:42.973 -> [ 72031][D][common.h:69] DecodeWeather(): Pres: 1008.000000
23:19:42.973 -> [ 72037][D][common.h:70] DecodeWeather(): Humi: 97.000000
23:19:42.973 -> [ 72042][D][common.h:71] DecodeWeather(): For0: Rain
23:19:42.973 -> [ 72046][D][common.h:72] DecodeWeather(): For1:
23:19:42.973 -> [ 72051][D][common.h:73] DecodeWeather(): For2:
23:19:43.019 -> [ 72055][D][common.h:74] DecodeWeather(): Icon: 10n
23:19:43.019 -> [ 72060][D][common.h:75] DecodeWeather(): Desc: ⸮⸮⸮?
23:19:43.019 -> [ 72064][D][common.h:76] DecodeWeather(): CCov: 100
23:19:43.019 -> [ 72069][D][common.h:77] DecodeWeather(): WSpd: 5.990000
23:19:43.019 -> [ 72074][D][common.h:78] DecodeWeather(): WDir: 251.000000
23:19:43.019 -> [ 72079][D][common.h:79] DecodeWeather(): Rain: 1.590000
23:19:43.019 -> [ 72084][D][common.h:80] DecodeWeather(): Snow: 0.000000
23:19:43.019 -> [ 72089][D][common.h:81] DecodeWeather(): Pop: 1.000000
23:19:43.019 -> [ 72094][D][common.h:82] DecodeWeather(): Peri: ؚ⸮?
23:19:43.064 -> [ 72099][D][common.h:64] DecodeWeather(): Period-18--------------
23:19:43.064 -> [ 72105][D][common.h:65] DecodeWeather(): DTim: 1703138400
23:19:43.064 -> [ 72110][D][common.h:66] DecodeWeather(): Temp: 7.120000
23:19:43.064 -> [ 72115][D][common.h:67] DecodeWeather(): TLow: 7.120000
23:19:43.064 -> [ 72120][D][common.h:68] DecodeWeather(): THig: 7.120000
23:19:43.064 -> [ 72125][D][common.h:69] DecodeWeather(): Pres: 1007.000000
23:19:43.064 -> [ 72131][D][common.h:70] DecodeWeather(): Humi: 97.000000
23:19:43.064 -> [ 72136][D][common.h:71] DecodeWeather(): For0: Rain
23:19:43.111 -> [ 72140][D][common.h:72] DecodeWeather(): For1:
23:19:43.111 -> [ 72145][D][common.h:73] DecodeWeather(): For2:
23:19:43.111 -> [ 72149][D][common.h:74] DecodeWeather(): Icon: 10n
23:19:43.111 -> [ 72154][D][common.h:75] DecodeWeather(): Desc: ؚ⸮?
23:19:43.111 -> [ 72158][D][common.h:76] DecodeWeather(): CCov: 100
23:19:43.111 -> [ 72163][D][common.h:77] DecodeWeather(): WSpd: 5.220000
23:19:43.111 -> [ 72168][D][common.h:78] DecodeWeather(): WDir: 250.000000
23:19:43.111 -> [ 72173][D][common.h:79] DecodeWeather(): Rain: 0.870000
23:19:43.111 -> [ 72178][D][common.h:80] DecodeWeather(): Snow: 0.000000
23:19:43.111 -> [ 72183][D][common.h:81] DecodeWeather(): Pop: 1.000000
23:19:43.111 -> [ 72188][D][common.h:82] DecodeWeather(): Peri: ⸮⸮?
23:19:43.159 -> [ 72193][D][common.h:64] DecodeWeather(): Period-19--------------
23:19:43.159 -> [ 72199][D][common.h:65] DecodeWeather(): DTim: 1703149200
23:19:43.159 -> [ 72204][D][common.h:66] DecodeWeather(): Temp: 7.410000
23:19:43.159 -> [ 72209][D][common.h:67] DecodeWeather(): TLow: 7.410000
23:19:43.159 -> [ 72214][D][common.h:68] DecodeWeather(): THig: 7.410000
23:19:43.159 -> [ 72219][D][common.h:69] DecodeWeather(): Pres: 1005.000000
23:19:43.159 -> [ 72225][D][common.h:70] DecodeWeather(): Humi: 95.000000
23:19:43.159 -> [ 72230][D][common.h:71] DecodeWeather(): For0: Rain
23:19:43.204 -> [ 72234][D][common.h:72] DecodeWeather(): For1:
23:19:43.204 -> [ 72239][D][common.h:73] DecodeWeather(): For2:
23:19:43.204 -> [ 72243][D][common.h:74] DecodeWeather(): Icon: 10d
23:19:43.204 -> [ 72248][D][common.h:75] DecodeWeather(): Desc: ⸮⸮?
23:19:43.204 -> [ 72252][D][common.h:76] DecodeWeather(): CCov: 100
23:19:43.204 -> [ 72257][D][common.h:77] DecodeWeather(): WSpd: 6.770000
23:19:43.204 -> [ 72262][D][common.h:78] DecodeWeather(): WDir: 236.000000
23:19:43.204 -> [ 72267][D][common.h:79] DecodeWeather(): Rain: 0.410000
23:19:43.204 -> [ 72272][D][common.h:80] DecodeWeather(): Snow: 0.000000
23:19:43.204 -> [ 72277][D][common.h:81] DecodeWeather(): Pop: 0.410000
23:19:43.251 -> [ 72282][D][common.h:82] DecodeWeather(): Peri: 8⸮⸮?
23:19:43.251 -> [ 72287][D][common.h:64] DecodeWeather(): Period-20--------------
23:19:43.251 -> [ 72293][D][common.h:65] DecodeWeather(): DTim: 1703160000
23:19:43.251 -> [ 72298][D][common.h:66] DecodeWeather(): Temp: 7.860000
23:19:43.251 -> [ 72303][D][common.h:67] DecodeWeather(): TLow: 7.860000
23:19:43.251 -> [ 72308][D][common.h:68] DecodeWeather(): THig: 7.860000
23:19:43.251 -> [ 72313][D][common.h:69] DecodeWeather(): Pres: 1001.000000
23:19:43.251 -> [ 72319][D][common.h:70] DecodeWeather(): Humi: 88.000000
23:19:43.251 -> [ 72324][D][common.h:71] DecodeWeather(): For0: Rain
23:19:43.251 -> [ 72328][D][common.h:72] DecodeWeather(): For1:
23:19:43.297 -> [ 72333][D][common.h:73] DecodeWeather(): For2:
23:19:43.297 -> [ 72337][D][common.h:74] DecodeWeather(): Icon: 10d
23:19:43.297 -> [ 72342][D][common.h:75] DecodeWeather(): Desc: ⸮⸮⸮?
23:19:43.297 -> [ 72346][D][common.h:76] DecodeWeather(): CCov: 100
23:19:43.297 -> [ 72351][D][common.h:77] DecodeWeather(): WSpd: 8.070000
23:19:43.297 -> [ 72356][D][common.h:78] DecodeWeather(): WDir: 242.000000
23:19:43.297 -> [ 72361][D][common.h:79] DecodeWeather(): Rain: 0.680000
23:19:43.297 -> [ 72366][D][common.h:80] DecodeWeather(): Snow: 0.000000
23:19:43.297 -> [ 72371][D][common.h:81] DecodeWeather(): Pop: 0.760000
23:19:43.344 -> [ 72376][D][common.h:82] DecodeWeather(): Peri: ⸮⸮⸮?
23:19:43.344 -> [ 72381][D][common.h:64] DecodeWeather(): Period-21--------------
23:19:43.344 -> [ 72387][D][common.h:65] DecodeWeather(): DTim: 1703170800
23:19:43.344 -> [ 72392][D][common.h:66] DecodeWeather(): Temp: 8.510000
23:19:43.344 -> [ 72397][D][common.h:67] DecodeWeather(): TLow: 8.510000
23:19:43.344 -> [ 72402][D][common.h:68] DecodeWeather(): THig: 8.510000
23:19:43.344 -> [ 72407][D][common.h:69] DecodeWeather(): Pres: 999.000000
23:19:43.344 -> [ 72413][D][common.h:70] DecodeWeather(): Humi: 93.000000
23:19:43.344 -> [ 72418][D][common.h:71] DecodeWeather(): For0: Rain
23:19:43.344 -> [ 72422][D][common.h:72] DecodeWeather(): For1:
23:19:43.391 -> [ 72427][D][common.h:73] DecodeWeather(): For2:
23:19:43.391 -> [ 72431][D][common.h:74] DecodeWeather(): Icon: 10d
23:19:43.391 -> [ 72436][D][common.h:75] DecodeWeather(): Desc: ⸮⸮⸮?
23:19:43.391 -> [ 72440][D][common.h:76] DecodeWeather(): CCov: 100
23:19:43.391 -> [ 72445][D][common.h:77] DecodeWeather(): WSpd: 8.230000
23:19:43.391 -> [ 72450][D][common.h:78] DecodeWeather(): WDir: 264.000000
23:19:43.391 -> [ 72455][D][common.h:79] DecodeWeather(): Rain: 3.900000
23:19:43.391 -> [ 72460][D][common.h:80] DecodeWeather(): Snow: 0.000000
23:19:43.391 -> [ 72465][D][common.h:81] DecodeWeather(): Pop: 1.000000
23:19:43.438 -> [ 72470][D][common.h:82] DecodeWeather(): Peri: ⸮⸮⸮?
23:19:43.438 -> [ 72475][D][common.h:64] DecodeWeather(): Period-22--------------
23:19:43.438 -> [ 72481][D][common.h:65] DecodeWeather(): DTim: 1703181600
23:19:43.438 -> [ 72486][D][common.h:66] DecodeWeather(): Temp: 9.150000
23:19:43.438 -> [ 72491][D][common.h:67] DecodeWeather(): TLow: 9.150000
23:19:43.438 -> [ 72496][D][common.h:68] DecodeWeather(): THig: 9.150000
23:19:43.438 -> [ 72501][D][common.h:69] DecodeWeather(): Pres: 998.000000
23:19:43.438 -> [ 72506][D][common.h:70] DecodeWeather(): Humi: 82.000000
23:19:43.438 -> [ 72512][D][common.h:71] DecodeWeather(): For0: Rain
23:19:43.438 -> [ 72516][D][common.h:72] DecodeWeather(): For1:
23:19:43.484 -> [ 72521][D][common.h:73] DecodeWeather(): For2:
23:19:43.484 -> [ 72525][D][common.h:74] DecodeWeather(): Icon: 10n
23:19:43.484 -> [ 72530][D][common.h:75] DecodeWeather(): Desc: ⸮⸮⸮?
23:19:43.484 -> [ 72534][D][common.h:76] DecodeWeather(): CCov: 100
23:19:43.484 -> [ 72539][D][common.h:77] DecodeWeather(): WSpd: 8.820000
23:19:43.484 -> [ 72544][D][common.h:78] DecodeWeather(): WDir: 265.000000
23:19:43.484 -> [ 72549][D][common.h:79] DecodeWeather(): Rain: 0.750000
23:19:43.484 -> [ 72554][D][common.h:80] DecodeWeather(): Snow: 0.000000
23:19:43.484 -> [ 72559][D][common.h:81] DecodeWeather(): Pop: 1.000000
23:19:43.531 -> [ 72564][D][common.h:82] DecodeWeather(): Peri: ⸮⸮?
23:19:43.531 -> [ 72569][D][common.h:64] DecodeWeather(): Period-23--------------
23:19:43.531 -> [ 72575][D][common.h:65] DecodeWeather(): DTim: 1703192400
23:19:43.531 -> [ 72580][D][common.h:66] DecodeWeather(): Temp: 8.640000
23:19:43.531 -> [ 72585][D][common.h:67] DecodeWeather(): TLow: 8.640000
23:19:43.531 -> [ 72590][D][common.h:68] DecodeWeather(): THig: 8.640000
23:19:43.531 -> [ 72595][D][common.h:69] DecodeWeather(): Pres: 998.000000
23:19:43.531 -> [ 72600][D][common.h:70] DecodeWeather(): Humi: 75.000000
23:19:43.531 -> [ 72605][D][common.h:71] DecodeWeather(): For0: Rain
23:19:43.578 -> [ 72610][D][common.h:72] DecodeWeather(): For1:
23:19:43.578 -> [ 72615][D][common.h:73] DecodeWeather(): For2:
23:19:43.578 -> [ 72619][D][common.h:74] DecodeWeather(): Icon: 10n
23:19:43.578 -> [ 72623][D][common.h:75] DecodeWeather(): Desc: ⸮⸮?
23:19:43.578 -> [ 72628][D][common.h:76] DecodeWeather(): CCov: 99
23:19:43.578 -> [ 72633][D][common.h:77] DecodeWeather(): WSpd: 10.170000
23:19:43.578 -> [ 72638][D][common.h:78] DecodeWeather(): WDir: 290.000000
23:19:43.578 -> [ 72643][D][common.h:79] DecodeWeather(): Rain: 2.150000
23:19:43.578 -> [ 72648][D][common.h:80] DecodeWeather(): Snow: 0.000000
23:19:43.578 -> [ 72653][D][common.h:81] DecodeWeather(): Pop: 1.000000
23:19:43.625 -> [ 72658][D][common.h:82] DecodeWeather(): Peri: ⸮⸮?
23:19:43.625 -> [ 72665][D][HTTPClient.cpp:408] disconnect(): tcp is closed
23:19:43.625 ->
23:19:43.625 -> [ 72683][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:19:43.670 -> [ 72741][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:19:43.670 -> [ 72747][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:19:43.670 -> [ 72753][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:19:43.717 -> [ 72759][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d
23:19:43.717 -> [ 72765][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d
23:19:43.717 -> [ 72773][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d
23:19:43.717 -> [ 72782][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n
23:19:43.717 -> [ 72789][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n
23:19:43.717 -> [ 72798][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=998.000000 YMax=1027.000000
23:19:43.763 -> [ 72806][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=4.000000 YMax=10.000000
23:19:43.763 -> [ 72814][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=100.000000
23:19:43.763 -> [ 72824][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=6.000000
23:19:43.763 -> _PowerOn : 7
23:19:43.951 -> [ 73027][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:19:43.997 -> [ 73074][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:19:43.997 -> [ 73081][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:19:44.043 -> [ 73087][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:19:44.043 -> [ 73094][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d
23:19:44.043 -> [ 73098][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d
23:19:44.043 -> [ 73106][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d
23:19:44.043 -> [ 73114][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n
23:19:44.043 -> [ 73122][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n
23:19:44.089 -> [ 73131][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=998.000000 YMax=1027.000000
23:19:44.089 -> [ 73141][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=4.000000 YMax=10.000000
23:19:44.089 -> [ 73147][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=100.000000
23:19:44.089 -> [ 73157][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=6.000000
23:20:04.258 -> Busy Timeout!
23:20:04.258 -> _Update_Full : 20001092
23:20:10.314 -> _PowerOff : 6021000
23:20:10.314 -> [ 99367][I][esp32-hal-i2c.c:75] i2cInit(): Initialising I2C Master: sda=21 scl=22 freq=100000
23:20:10.826 -> [ 99867][E][Waveshare_7_5_T7_Sensors.ino:1396] GetLocalData(): Error trying to execute stopPeriodicMeasurement(): Received NACK on transmit of address
23:20:15.817 -> [104869][E][Waveshare_7_5_T7_Sensors.ino:1403] GetLocalData(): Error trying to execute measureSingleShot(): Received NACK on transmit of address
23:20:15.817 -> [104871][D][Waveshare_7_5_T7_Sensors.ino:1406] GetLocalData(): First measurement takes ~5 sec...
23:20:16.001 -> I NimBLEDevice: BLE Host Task Started
23:20:16.001 -> I NimBLEDevice: NimBle host synced.
23:20:16.001 -> D NimBLEScan: >> start: duration=31
23:20:16.001 -> D NimBLEScan: << start()
23:20:16.139 -> I NimBLEScan: New advertiser: 7c:64:56:89:fe:39
23:20:16.139 -> I NimBLEScan: Updated advertiser: 7c:64:56:89:fe:39
23:20:16.186 -> D NimBLEScan: erase device: 7c:64:56:89:fe:39
23:20:16.325 -> I NimBLEScan: New advertiser: 04:b9:e3:14:ee:77
23:20:16.418 -> D NimBLEScan: erase device: 04:b9:e3:14:ee:77
23:20:16.418 -> I NimBLEScan: New advertiser: 0f:df:02:10:e4:ed
23:20:16.463 -> D NimBLEScan: erase device: 0f:df:02:10:e4:ed
23:20:17.155 -> I NimBLEScan: New advertiser: 7c:64:56:89:fe:39
23:20:17.203 -> I NimBLEScan: New advertiser: 77:56:06:ac:cb:5f
23:20:17.203 -> I NimBLEScan: Updated advertiser: 77:56:06:ac:cb:5f
23:20:17.249 -> D NimBLEScan: erase device: 77:56:06:ac:cb:5f
23:20:17.295 -> I NimBLEScan: New advertiser: 98:d6:bb:2a:e5:f0
23:20:17.483 -> I NimBLEScan: Updated advertiser: 98:d6:bb:2a:e5:f0
23:20:17.530 -> D NimBLEScan: erase device: 98:d6:bb:2a:e5:f0
23:20:18.836 -> I NimBLEScan: New advertiser: 23:d8:ad:9f:38:44
23:20:18.883 -> D NimBLEScan: erase device: 23:d8:ad:9f:38:44
23:20:47.025 -> D NimBLEScan: discovery complete; reason=0
23:20:47.071 -> [136131][D][Waveshare_7_5_T7_Sensors.ino:1455] GetLocalData(): Outdoor Air Temp.: --.- °C
23:20:47.071 -> [136131][D][Waveshare_7_5_T7_Sensors.ino:1456] GetLocalData(): Outdoor Humidity: -- %
23:20:47.071 -> [136136][D][Waveshare_7_5_T7_Sensors.ino:1457] GetLocalData(): Outdoor Sensor Batt: -- %
23:20:48.097 -> [137146][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
23:20:48.097 -> [137146][D][Waveshare_7_5_T7_Sensors.ino:1483] GetLocalData(): Indoor Temperature: --.- °C
23:20:48.097 -> [137149][D][Waveshare_7_5_T7_Sensors.ino:1484] GetLocalData(): Indoor Pressure: -- hPa
23:20:48.097 -> [137157][D][Waveshare_7_5_T7_Sensors.ino:1485] GetLocalData(): Indoor Humidity: -- %rH
23:20:48.097 -> [137165][E][Waveshare_7_5_T7_Sensors.ino:1504] GetLocalData(): Error trying to execute getDataReadyFlag(): Received NACK on transmit of address
23:20:48.143 -> [137178][D][Waveshare_7_5_T7_Sensors.ino:889] MqttConnect(): Checking wifi...
23:20:48.143 -> [137184][I][Waveshare_7_5_T7_Sensors.ino:894] MqttConnect(): MQTT connecting...
23:20:48.143 -> [137214][I][Waveshare_7_5_T7_Sensors.ino:908] MqttConnect(): Connected!
23:20:48.190 -> [137233][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:20:48.237 -> [137290][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:20:48.237 -> [137296][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:20:48.237 -> [137302][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:20:48.237 -> [137308][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d
23:20:48.237 -> [137314][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d
23:20:48.283 -> [137323][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d
23:20:48.283 -> [137330][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n
23:20:48.283 -> [137340][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n
23:20:48.283 -> [137347][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=998.000000 YMax=1027.000000
23:20:48.283 -> [137355][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=4.000000 YMax=10.000000
23:20:48.283 -> [137363][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=100.000000
23:20:48.330 -> [137373][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=6.000000
23:20:48.330 -> _PowerOn : 7
23:20:48.515 -> [137578][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:20:48.562 -> [137623][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:20:48.562 -> [137630][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:20:48.562 -> [137637][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n
23:20:48.562 -> [137643][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d
23:20:48.609 -> [137650][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d
23:20:48.609 -> [137655][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d
23:20:48.609 -> [137663][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n
23:20:48.609 -> [137671][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n
23:20:48.609 -> [137681][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=998.000000 YMax=1027.000000
23:20:48.657 -> [137689][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=4.000000 YMax=10.000000
23:20:48.657 -> [137697][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=100.000000
23:20:48.657 -> [137706][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=6.000000
23:21:08.824 -> Busy Timeout!
23:21:08.824 -> _Update_Full : 20001093
23:21:14.846 -> _PowerOff : 6019000
23:21:14.846 -> [163917][I][Waveshare_7_5_T7_Sensors.ino:1078] GetMqttData(): Waiting for MQTT message...
23:21:14.846 -> [163917][D][Waveshare_7_5_T7_Sensors.ino:840] mqttMessageCb(): Payload size: 6
23:21:14.891 -> [163922][D][Waveshare_7_5_T7_Sensors.ino:840] mqttMessageCb(): Payload size: 6
23:21:14.891 -> [163929][D][Waveshare_7_5_T7_Sensors.ino:840] mqttMessageCb(): Payload size: 6
23:21:14.891 -> [163945][I][Waveshare_7_5_T7_Sensors.ino:1117] GetMqttData(): done!
23:21:14.891 -> [163952][D][Waveshare_7_5_T7_Sensors.ino:1119] GetMqttData(): 1.5
23:21:14.891 -> [163953][D][Waveshare_7_5_T7_Sensors.ino:1121] GetMqttData(): Creating JSON object...
23:21:14.891 -> [163955][D][Waveshare_7_5_T7_Sensors.ino:1135] GetMqttData(): Done!
23:21:14.891 -> Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled.
23:21:14.937 ->
23:21:14.937 -> Core 0 register dump:
23:21:14.937 -> PC : 0x40094261 PS : 0x00060b30 A0 : 0x800dca95 A1 : 0x3ffdcd00
23:21:14.937 -> A2 : 0x500011c1 A3 : 0x00000000 A4 : 0x0000001e A5 : 0x0000ff00
23:21:14.937 -> A6 : 0x00ff0000 A7 : 0xff000000 A8 : 0x00000000 A9 : 0x0000000c
23:21:14.937 -> A10 : 0x500011c1 A11 : 0x000000ff A12 : 0x0000003f A13 : 0x00000046
23:21:14.937 -> A14 : 0x3f401038 A15 : 0xff000000 SAR : 0x00000013 EXCCAUSE: 0x0000001c
23:21:14.937 -> EXCVADDR: 0x00000000 LBEG : 0x40094261 LEND : 0x40094272 LCOUNT : 0xffffffff
23:21:14.984 ->
23:21:14.984 ->
23:21:14.984 -> Backtrace: 0x4009425e:0x3ffdcd00 0x400dca92:0x3ffdcd10 0x400dead1:0x3ffdce00 0x40103a26:0x3ffdcf40
23:21:14.984 ->
23:21:14.984 ->
23:21:14.984 ->
23:21:14.984 ->
23:21:14.984 -> ELF file SHA256: bca5e83ac2c1286d
23:21:14.984 ->
23:21:15.170 -> Rebooting...
23:21:15.170 -> ets Jun 8 2016 00:22:57
23:21:15.170 ->
23:21:15.170 -> rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
23:21:15.170 -> configsip: 0, SPIWP:0xee
23:21:15.170 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
23:21:15.170 -> mode:DIO, clock div:1
23:21:15.170 -> load:0x3fff0030,len:1344
23:21:15.170 -> load:0x40078000,len:13964
23:21:15.170 -> load:0x40080400,len:3600
23:21:15.170 -> entry 0x400805f0
23:21:15.637 -> [ 28][D][esp32-hal-cpu.c:244] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz
23:21:15.684 -> [ 49][I]_PowerOn : 125996
23:21:36.517 -> Busy Timeout!
23:21:36.517 -> _Update_Full : 20001077
23:21:42.575 -> _PowerOff : 6021000
23:21:52.556 -> _PowerOn : 2
Now we are getting close!
This is the interesting part:
23:21:14.846 -> [163917][I][Waveshare_7_5_T7_Sensors.ino:1078] GetMqttData(): Waiting for MQTT message...
23:21:14.846 -> [163917][D][Waveshare_7_5_T7_Sensors.ino:840] mqttMessageCb(): Payload size: 6
23:21:14.891 -> [163922][D][Waveshare_7_5_T7_Sensors.ino:840] mqttMessageCb(): Payload size: 6
23:21:14.891 -> [163929][D][Waveshare_7_5_T7_Sensors.ino:840] mqttMessageCb(): Payload size: 6
23:21:14.891 -> [163945][I][Waveshare_7_5_T7_Sensors.ino:1117] GetMqttData(): done!
23:21:14.891 -> [163952][D][Waveshare_7_5_T7_Sensors.ino:1119] GetMqttData(): 1.5
23:21:14.891 -> [163953][D][Waveshare_7_5_T7_Sensors.ino:1121] GetMqttData(): Creating JSON object...
23:21:14.891 -> [163955][D][Waveshare_7_5_T7_Sensors.ino:1135] GetMqttData(): Done!
23:21:14.891 -> Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled.
The line numbers are a little bit off as compared to the version on GitHub, but that's o.k. You receive an MQTT payload with a size of 6 bytes. The contents are shown as " 1.5", that's probably the temperature with leading spaces for sign and alignment.
Now we are trying to de-serialize the JSON string with
DeserializationError error = deserializeJson(doc, MqttBuf, MQTT_PAYLOAD_SIZE);
which seems to be successful, because we get to "Done!".
But your payload is not in JSON format in general and not in the specific format expected by the software! Thus, decoding the data in
const char *received_at = doc["received_at"];
strncpy(MqttSensors.received_at, received_at, 30);
JsonObject uplink_message = doc["uplink_message"];
...
will fail and lead to the exception!
I have implemented the decoding according to the JSON format sent by The Things Network (with my payload decoder configuration) - see SIMULATE_MQTT
at the top of the sketch.
You have two options:
1) You modify your MQTT node to sent a valid JSON string (e.g. {"air_temp_c":"1.5"}
) and modify the decoding accordingly (the ArduinoJson documentation makes this really easy).
2) You replace the JSON decoding by a simple conversion of MqttBuf from string to float.
My takeaway is that the decoding could be a little bit more robust regarding unexpected input... ;-) And to insist on log files... ;-)
Here comes my console printout - there is an exeption and also a reboot... Thanks for any further hint
23:19:42.786 -> [ 71833][D][common.h:67] DecodeWeather(): TLow: 5.060000 23:19:42.786 -> [ 71838][D][common.h:68] DecodeWeather(): THig: 5.060000 23:19:42.786 -> [ 71843][D][common.h:69] DecodeWeather(): Pres: 1013.000000 23:19:42.786 -> [ 71849][D][common.h:70] DecodeWeather(): Humi: 88.000000 23:19:42.786 -> [ 71854][D][common.h:71] DecodeWeather(): For0: Rain 23:19:42.786 -> [ 71858][D][common.h:72] DecodeWeather(): For1: 23:19:42.831 -> [ 71863][D][common.h:73] DecodeWeather(): For2: 23:19:42.831 -> [ 71867][D][common.h:74] DecodeWeather(): Icon: 10n 23:19:42.831 -> [ 71872][D][common.h:75] DecodeWeather(): Desc: H⸮⸮?� 23:19:42.831 -> [ 71876][D][common.h:76] DecodeWeather(): CCov: 100 23:19:42.831 -> [ 71881][D][common.h:77] DecodeWeather(): WSpd: 5.760000 23:19:42.831 -> [ 71886][D][common.h:78] DecodeWeather(): WDir: 233.000000 23:19:42.831 -> [ 71891][D][common.h:79] DecodeWeather(): Rain: 0.420000 23:19:42.831 -> [ 71896][D][common.h:80] DecodeWeather(): Snow: 0.000000 23:19:42.831 -> [ 71901][D][common.h:81] DecodeWeather(): Pop: 0.520000 23:19:42.831 -> [ 71906][D][common.h:82] DecodeWeather(): Peri: x⸮⸮?� 23:19:42.878 -> [ 71911][D][common.h:64] DecodeWeather(): Period-16-------------- 23:19:42.878 -> [ 71917][D][common.h:65] DecodeWeather(): DTim: 1703116800 23:19:42.878 -> [ 71922][D][common.h:66] DecodeWeather(): Temp: 5.730000 23:19:42.878 -> [ 71927][D][common.h:67] DecodeWeather(): TLow: 5.730000 23:19:42.878 -> [ 71932][D][common.h:68] DecodeWeather(): THig: 5.730000 23:19:42.878 -> [ 71937][D][common.h:69] DecodeWeather(): Pres: 1010.000000 23:19:42.878 -> [ 71943][D][common.h:70] DecodeWeather(): Humi: 92.000000 23:19:42.878 -> [ 71948][D][common.h:71] DecodeWeather(): For0: Rain 23:19:42.878 -> [ 71952][D][common.h:72] DecodeWeather(): For1: 23:19:42.925 -> [ 71957][D][common.h:73] DecodeWeather(): For2: 23:19:42.925 -> [ 71961][D][common.h:74] DecodeWeather(): Icon: 10n 23:19:42.925 -> [ 71966][D][common.h:75] DecodeWeather(): Desc: x⸮⸮?� 23:19:42.925 -> [ 71970][D][common.h:76] DecodeWeather(): CCov: 100 23:19:42.925 -> [ 71975][D][common.h:77] DecodeWeather(): WSpd: 6.520000 23:19:42.925 -> [ 71980][D][common.h:78] DecodeWeather(): WDir: 240.000000 23:19:42.925 -> [ 71985][D][common.h:79] DecodeWeather(): Rain: 1.930000 23:19:42.925 -> [ 71990][D][common.h:80] DecodeWeather(): Snow: 0.000000 23:19:42.925 -> [ 71995][D][common.h:81] DecodeWeather(): Pop: 0.900000 23:19:42.925 -> [ 72000][D][common.h:82] DecodeWeather(): Peri: ⸮⸮⸮?� 23:19:42.973 -> [ 72005][D][common.h:64] DecodeWeather(): Period-17-------------- 23:19:42.973 -> [ 72011][D][common.h:65] DecodeWeather(): DTim: 1703127600 23:19:42.973 -> [ 72016][D][common.h:66] DecodeWeather(): Temp: 6.730000 23:19:42.973 -> [ 72021][D][common.h:67] DecodeWeather(): TLow: 6.730000 23:19:42.973 -> [ 72026][D][common.h:68] DecodeWeather(): THig: 6.730000 23:19:42.973 -> [ 72031][D][common.h:69] DecodeWeather(): Pres: 1008.000000 23:19:42.973 -> [ 72037][D][common.h:70] DecodeWeather(): Humi: 97.000000 23:19:42.973 -> [ 72042][D][common.h:71] DecodeWeather(): For0: Rain 23:19:42.973 -> [ 72046][D][common.h:72] DecodeWeather(): For1: 23:19:42.973 -> [ 72051][D][common.h:73] DecodeWeather(): For2: 23:19:43.019 -> [ 72055][D][common.h:74] DecodeWeather(): Icon: 10n 23:19:43.019 -> [ 72060][D][common.h:75] DecodeWeather(): Desc: ⸮⸮⸮?� 23:19:43.019 -> [ 72064][D][common.h:76] DecodeWeather(): CCov: 100 23:19:43.019 -> [ 72069][D][common.h:77] DecodeWeather(): WSpd: 5.990000 23:19:43.019 -> [ 72074][D][common.h:78] DecodeWeather(): WDir: 251.000000 23:19:43.019 -> [ 72079][D][common.h:79] DecodeWeather(): Rain: 1.590000 23:19:43.019 -> [ 72084][D][common.h:80] DecodeWeather(): Snow: 0.000000 23:19:43.019 -> [ 72089][D][common.h:81] DecodeWeather(): Pop: 1.000000 23:19:43.019 -> [ 72094][D][common.h:82] DecodeWeather(): Peri: ؚ⸮?� 23:19:43.064 -> [ 72099][D][common.h:64] DecodeWeather(): Period-18-------------- 23:19:43.064 -> [ 72105][D][common.h:65] DecodeWeather(): DTim: 1703138400 23:19:43.064 -> [ 72110][D][common.h:66] DecodeWeather(): Temp: 7.120000 23:19:43.064 -> [ 72115][D][common.h:67] DecodeWeather(): TLow: 7.120000 23:19:43.064 -> [ 72120][D][common.h:68] DecodeWeather(): THig: 7.120000 23:19:43.064 -> [ 72125][D][common.h:69] DecodeWeather(): Pres: 1007.000000 23:19:43.064 -> [ 72131][D][common.h:70] DecodeWeather(): Humi: 97.000000 23:19:43.064 -> [ 72136][D][common.h:71] DecodeWeather(): For0: Rain 23:19:43.111 -> [ 72140][D][common.h:72] DecodeWeather(): For1: 23:19:43.111 -> [ 72145][D][common.h:73] DecodeWeather(): For2: 23:19:43.111 -> [ 72149][D][common.h:74] DecodeWeather(): Icon: 10n 23:19:43.111 -> [ 72154][D][common.h:75] DecodeWeather(): Desc: ؚ⸮?� 23:19:43.111 -> [ 72158][D][common.h:76] DecodeWeather(): CCov: 100 23:19:43.111 -> [ 72163][D][common.h:77] DecodeWeather(): WSpd: 5.220000 23:19:43.111 -> [ 72168][D][common.h:78] DecodeWeather(): WDir: 250.000000 23:19:43.111 -> [ 72173][D][common.h:79] DecodeWeather(): Rain: 0.870000 23:19:43.111 -> [ 72178][D][common.h:80] DecodeWeather(): Snow: 0.000000 23:19:43.111 -> [ 72183][D][common.h:81] DecodeWeather(): Pop: 1.000000 23:19:43.111 -> [ 72188][D][common.h:82] DecodeWeather(): Peri: �⸮⸮?� 23:19:43.159 -> [ 72193][D][common.h:64] DecodeWeather(): Period-19-------------- 23:19:43.159 -> [ 72199][D][common.h:65] DecodeWeather(): DTim: 1703149200 23:19:43.159 -> [ 72204][D][common.h:66] DecodeWeather(): Temp: 7.410000 23:19:43.159 -> [ 72209][D][common.h:67] DecodeWeather(): TLow: 7.410000 23:19:43.159 -> [ 72214][D][common.h:68] DecodeWeather(): THig: 7.410000 23:19:43.159 -> [ 72219][D][common.h:69] DecodeWeather(): Pres: 1005.000000 23:19:43.159 -> [ 72225][D][common.h:70] DecodeWeather(): Humi: 95.000000 23:19:43.159 -> [ 72230][D][common.h:71] DecodeWeather(): For0: Rain 23:19:43.204 -> [ 72234][D][common.h:72] DecodeWeather(): For1: 23:19:43.204 -> [ 72239][D][common.h:73] DecodeWeather(): For2: 23:19:43.204 -> [ 72243][D][common.h:74] DecodeWeather(): Icon: 10d 23:19:43.204 -> [ 72248][D][common.h:75] DecodeWeather(): Desc: �⸮⸮?� 23:19:43.204 -> [ 72252][D][common.h:76] DecodeWeather(): CCov: 100 23:19:43.204 -> [ 72257][D][common.h:77] DecodeWeather(): WSpd: 6.770000 23:19:43.204 -> [ 72262][D][common.h:78] DecodeWeather(): WDir: 236.000000 23:19:43.204 -> [ 72267][D][common.h:79] DecodeWeather(): Rain: 0.410000 23:19:43.204 -> [ 72272][D][common.h:80] DecodeWeather(): Snow: 0.000000 23:19:43.204 -> [ 72277][D][common.h:81] DecodeWeather(): Pop: 0.410000 23:19:43.251 -> [ 72282][D][common.h:82] DecodeWeather(): Peri: 8⸮⸮?� 23:19:43.251 -> [ 72287][D][common.h:64] DecodeWeather(): Period-20-------------- 23:19:43.251 -> [ 72293][D][common.h:65] DecodeWeather(): DTim: 1703160000 23:19:43.251 -> [ 72298][D][common.h:66] DecodeWeather(): Temp: 7.860000 23:19:43.251 -> [ 72303][D][common.h:67] DecodeWeather(): TLow: 7.860000 23:19:43.251 -> [ 72308][D][common.h:68] DecodeWeather(): THig: 7.860000 23:19:43.251 -> [ 72313][D][common.h:69] DecodeWeather(): Pres: 1001.000000 23:19:43.251 -> [ 72319][D][common.h:70] DecodeWeather(): Humi: 88.000000 23:19:43.251 -> [ 72324][D][common.h:71] DecodeWeather(): For0: Rain 23:19:43.251 -> [ 72328][D][common.h:72] DecodeWeather(): For1: 23:19:43.297 -> [ 72333][D][common.h:73] DecodeWeather(): For2: 23:19:43.297 -> [ 72337][D][common.h:74] DecodeWeather(): Icon: 10d 23:19:43.297 -> [ 72342][D][common.h:75] DecodeWeather(): Desc: ⸮⸮⸮?� 23:19:43.297 -> [ 72346][D][common.h:76] DecodeWeather(): CCov: 100 23:19:43.297 -> [ 72351][D][common.h:77] DecodeWeather(): WSpd: 8.070000 23:19:43.297 -> [ 72356][D][common.h:78] DecodeWeather(): WDir: 242.000000 23:19:43.297 -> [ 72361][D][common.h:79] DecodeWeather(): Rain: 0.680000 23:19:43.297 -> [ 72366][D][common.h:80] DecodeWeather(): Snow: 0.000000 23:19:43.297 -> [ 72371][D][common.h:81] DecodeWeather(): Pop: 0.760000 23:19:43.344 -> [ 72376][D][common.h:82] DecodeWeather(): Peri: ⸮⸮⸮?� 23:19:43.344 -> [ 72381][D][common.h:64] DecodeWeather(): Period-21-------------- 23:19:43.344 -> [ 72387][D][common.h:65] DecodeWeather(): DTim: 1703170800 23:19:43.344 -> [ 72392][D][common.h:66] DecodeWeather(): Temp: 8.510000 23:19:43.344 -> [ 72397][D][common.h:67] DecodeWeather(): TLow: 8.510000 23:19:43.344 -> [ 72402][D][common.h:68] DecodeWeather(): THig: 8.510000 23:19:43.344 -> [ 72407][D][common.h:69] DecodeWeather(): Pres: 999.000000 23:19:43.344 -> [ 72413][D][common.h:70] DecodeWeather(): Humi: 93.000000 23:19:43.344 -> [ 72418][D][common.h:71] DecodeWeather(): For0: Rain 23:19:43.344 -> [ 72422][D][common.h:72] DecodeWeather(): For1: 23:19:43.391 -> [ 72427][D][common.h:73] DecodeWeather(): For2: 23:19:43.391 -> [ 72431][D][common.h:74] DecodeWeather(): Icon: 10d 23:19:43.391 -> [ 72436][D][common.h:75] DecodeWeather(): Desc: ⸮⸮⸮?� 23:19:43.391 -> [ 72440][D][common.h:76] DecodeWeather(): CCov: 100 23:19:43.391 -> [ 72445][D][common.h:77] DecodeWeather(): WSpd: 8.230000 23:19:43.391 -> [ 72450][D][common.h:78] DecodeWeather(): WDir: 264.000000 23:19:43.391 -> [ 72455][D][common.h:79] DecodeWeather(): Rain: 3.900000 23:19:43.391 -> [ 72460][D][common.h:80] DecodeWeather(): Snow: 0.000000 23:19:43.391 -> [ 72465][D][common.h:81] DecodeWeather(): Pop: 1.000000 23:19:43.438 -> [ 72470][D][common.h:82] DecodeWeather(): Peri: ⸮⸮⸮?� 23:19:43.438 -> [ 72475][D][common.h:64] DecodeWeather(): Period-22-------------- 23:19:43.438 -> [ 72481][D][common.h:65] DecodeWeather(): DTim: 1703181600 23:19:43.438 -> [ 72486][D][common.h:66] DecodeWeather(): Temp: 9.150000 23:19:43.438 -> [ 72491][D][common.h:67] DecodeWeather(): TLow: 9.150000 23:19:43.438 -> [ 72496][D][common.h:68] DecodeWeather(): THig: 9.150000 23:19:43.438 -> [ 72501][D][common.h:69] DecodeWeather(): Pres: 998.000000 23:19:43.438 -> [ 72506][D][common.h:70] DecodeWeather(): Humi: 82.000000 23:19:43.438 -> [ 72512][D][common.h:71] DecodeWeather(): For0: Rain 23:19:43.438 -> [ 72516][D][common.h:72] DecodeWeather(): For1: 23:19:43.484 -> [ 72521][D][common.h:73] DecodeWeather(): For2: 23:19:43.484 -> [ 72525][D][common.h:74] DecodeWeather(): Icon: 10n 23:19:43.484 -> [ 72530][D][common.h:75] DecodeWeather(): Desc: ⸮⸮⸮?� 23:19:43.484 -> [ 72534][D][common.h:76] DecodeWeather(): CCov: 100 23:19:43.484 -> [ 72539][D][common.h:77] DecodeWeather(): WSpd: 8.820000 23:19:43.484 -> [ 72544][D][common.h:78] DecodeWeather(): WDir: 265.000000 23:19:43.484 -> [ 72549][D][common.h:79] DecodeWeather(): Rain: 0.750000 23:19:43.484 -> [ 72554][D][common.h:80] DecodeWeather(): Snow: 0.000000 23:19:43.484 -> [ 72559][D][common.h:81] DecodeWeather(): Pop: 1.000000 23:19:43.531 -> [ 72564][D][common.h:82] DecodeWeather(): Peri: ⸮⸮?� 23:19:43.531 -> [ 72569][D][common.h:64] DecodeWeather(): Period-23-------------- 23:19:43.531 -> [ 72575][D][common.h:65] DecodeWeather(): DTim: 1703192400 23:19:43.531 -> [ 72580][D][common.h:66] DecodeWeather(): Temp: 8.640000 23:19:43.531 -> [ 72585][D][common.h:67] DecodeWeather(): TLow: 8.640000 23:19:43.531 -> [ 72590][D][common.h:68] DecodeWeather(): THig: 8.640000 23:19:43.531 -> [ 72595][D][common.h:69] DecodeWeather(): Pres: 998.000000 23:19:43.531 -> [ 72600][D][common.h:70] DecodeWeather(): Humi: 75.000000 23:19:43.531 -> [ 72605][D][common.h:71] DecodeWeather(): For0: Rain 23:19:43.578 -> [ 72610][D][common.h:72] DecodeWeather(): For1: 23:19:43.578 -> [ 72615][D][common.h:73] DecodeWeather(): For2: 23:19:43.578 -> [ 72619][D][common.h:74] DecodeWeather(): Icon: 10n 23:19:43.578 -> [ 72623][D][common.h:75] DecodeWeather(): Desc: ⸮⸮?� 23:19:43.578 -> [ 72628][D][common.h:76] DecodeWeather(): CCov: 99 23:19:43.578 -> [ 72633][D][common.h:77] DecodeWeather(): WSpd: 10.170000 23:19:43.578 -> [ 72638][D][common.h:78] DecodeWeather(): WDir: 290.000000 23:19:43.578 -> [ 72643][D][common.h:79] DecodeWeather(): Rain: 2.150000 23:19:43.578 -> [ 72648][D][common.h:80] DecodeWeather(): Snow: 0.000000 23:19:43.578 -> [ 72653][D][common.h:81] DecodeWeather(): Pop: 1.000000 23:19:43.625 -> [ 72658][D][common.h:82] DecodeWeather(): Peri: �⸮⸮?� 23:19:43.625 -> [ 72665][D][HTTPClient.cpp:408] disconnect(): tcp is closed 23:19:43.625 -> 23:19:43.625 -> [ 72683][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:19:43.670 -> [ 72741][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:19:43.670 -> [ 72747][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:19:43.670 -> [ 72753][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:19:43.717 -> [ 72759][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d 23:19:43.717 -> [ 72765][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d 23:19:43.717 -> [ 72773][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d 23:19:43.717 -> [ 72782][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n 23:19:43.717 -> [ 72789][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n 23:19:43.717 -> [ 72798][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=998.000000 YMax=1027.000000 23:19:43.763 -> [ 72806][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=4.000000 YMax=10.000000 23:19:43.763 -> [ 72814][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=100.000000 23:19:43.763 -> [ 72824][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=6.000000 23:19:43.763 -> _PowerOn : 7 23:19:43.951 -> [ 73027][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:19:43.997 -> [ 73074][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:19:43.997 -> [ 73081][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:19:44.043 -> [ 73087][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:19:44.043 -> [ 73094][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d 23:19:44.043 -> [ 73098][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d 23:19:44.043 -> [ 73106][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d 23:19:44.043 -> [ 73114][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n 23:19:44.043 -> [ 73122][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n 23:19:44.089 -> [ 73131][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=998.000000 YMax=1027.000000 23:19:44.089 -> [ 73141][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=4.000000 YMax=10.000000 23:19:44.089 -> [ 73147][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=100.000000 23:19:44.089 -> [ 73157][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=6.000000 23:20:04.258 -> Busy Timeout! 23:20:04.258 -> _Update_Full : 20001092 23:20:10.314 -> _PowerOff : 6021000 23:20:10.314 -> [ 99367][I][esp32-hal-i2c.c:75] i2cInit(): Initialising I2C Master: sda=21 scl=22 freq=100000 23:20:10.826 -> [ 99867][E][Waveshare_7_5_T7_Sensors.ino:1396] GetLocalData(): Error trying to execute stopPeriodicMeasurement(): Received NACK on transmit of address 23:20:15.817 -> [104869][E][Waveshare_7_5_T7_Sensors.ino:1403] GetLocalData(): Error trying to execute measureSingleShot(): Received NACK on transmit of address 23:20:15.817 -> [104871][D][Waveshare_7_5_T7_Sensors.ino:1406] GetLocalData(): First measurement takes ~5 sec... 23:20:16.001 -> I NimBLEDevice: BLE Host Task Started 23:20:16.001 -> I NimBLEDevice: NimBle host synced. 23:20:16.001 -> D NimBLEScan: >> start: duration=31 23:20:16.001 -> D NimBLEScan: << start() 23:20:16.139 -> I NimBLEScan: New advertiser: 7c:64:56:89:fe:39 23:20:16.139 -> I NimBLEScan: Updated advertiser: 7c:64:56:89:fe:39 23:20:16.186 -> D NimBLEScan: erase device: 7c:64:56:89:fe:39 23:20:16.325 -> I NimBLEScan: New advertiser: 04:b9:e3:14:ee:77 23:20:16.418 -> D NimBLEScan: erase device: 04:b9:e3:14:ee:77 23:20:16.418 -> I NimBLEScan: New advertiser: 0f:df:02:10:e4:ed 23:20:16.463 -> D NimBLEScan: erase device: 0f:df:02:10:e4:ed 23:20:17.155 -> I NimBLEScan: New advertiser: 7c:64:56:89:fe:39 23:20:17.203 -> I NimBLEScan: New advertiser: 77:56:06:ac:cb:5f 23:20:17.203 -> I NimBLEScan: Updated advertiser: 77:56:06:ac:cb:5f 23:20:17.249 -> D NimBLEScan: erase device: 77:56:06:ac:cb:5f 23:20:17.295 -> I NimBLEScan: New advertiser: 98:d6:bb:2a:e5:f0 23:20:17.483 -> I NimBLEScan: Updated advertiser: 98:d6:bb:2a:e5:f0 23:20:17.530 -> D NimBLEScan: erase device: 98:d6:bb:2a:e5:f0 23:20:18.836 -> I NimBLEScan: New advertiser: 23:d8:ad:9f:38:44 23:20:18.883 -> D NimBLEScan: erase device: 23:d8:ad:9f:38:44 23:20:47.025 -> D NimBLEScan: discovery complete; reason=0 23:20:47.071 -> [136131][D][Waveshare_7_5_T7_Sensors.ino:1455] GetLocalData(): Outdoor Air Temp.: --.- °C 23:20:47.071 -> [136131][D][Waveshare_7_5_T7_Sensors.ino:1456] GetLocalData(): Outdoor Humidity: -- % 23:20:47.071 -> [136136][D][Waveshare_7_5_T7_Sensors.ino:1457] GetLocalData(): Outdoor Sensor Batt: -- % 23:20:48.097 -> [137146][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263 23:20:48.097 -> [137146][D][Waveshare_7_5_T7_Sensors.ino:1483] GetLocalData(): Indoor Temperature: --.- °C 23:20:48.097 -> [137149][D][Waveshare_7_5_T7_Sensors.ino:1484] GetLocalData(): Indoor Pressure: -- hPa 23:20:48.097 -> [137157][D][Waveshare_7_5_T7_Sensors.ino:1485] GetLocalData(): Indoor Humidity: -- %rH 23:20:48.097 -> [137165][E][Waveshare_7_5_T7_Sensors.ino:1504] GetLocalData(): Error trying to execute getDataReadyFlag(): Received NACK on transmit of address 23:20:48.143 -> [137178][D][Waveshare_7_5_T7_Sensors.ino:889] MqttConnect(): Checking wifi... 23:20:48.143 -> [137184][I][Waveshare_7_5_T7_Sensors.ino:894] MqttConnect(): MQTT connecting... 23:20:48.143 -> [137214][I][Waveshare_7_5_T7_Sensors.ino:908] MqttConnect(): Connected! 23:20:48.190 -> [137233][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:20:48.237 -> [137290][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:20:48.237 -> [137296][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:20:48.237 -> [137302][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:20:48.237 -> [137308][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d 23:20:48.237 -> [137314][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d 23:20:48.283 -> [137323][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d 23:20:48.283 -> [137330][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n 23:20:48.283 -> [137340][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n 23:20:48.283 -> [137347][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=998.000000 YMax=1027.000000 23:20:48.283 -> [137355][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=4.000000 YMax=10.000000 23:20:48.283 -> [137363][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=100.000000 23:20:48.330 -> [137373][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=6.000000 23:20:48.330 -> _PowerOn : 7 23:20:48.515 -> [137578][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:20:48.562 -> [137623][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:20:48.562 -> [137630][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:20:48.562 -> [137637][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 04n 23:20:48.562 -> [137643][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d 23:20:48.609 -> [137650][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d 23:20:48.609 -> [137655][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10d 23:20:48.609 -> [137663][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n 23:20:48.609 -> [137671][D][Waveshare_7_5_T7_Sensors.ino:2454] DisplayConditionsSection(): Icon name: 10n 23:20:48.609 -> [137681][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=998.000000 YMax=1027.000000 23:20:48.657 -> [137689][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=4.000000 YMax=10.000000 23:20:48.657 -> [137697][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=100.000000 23:20:48.657 -> [137706][D][Waveshare_7_5_T7_Sensors.ino:2200] DrawGraph(): auto_scale: YMin=0.000000 YMax=6.000000 23:21:08.824 -> Busy Timeout! 23:21:08.824 -> _Update_Full : 20001093 23:21:14.846 -> _PowerOff : 6019000 23:21:14.846 -> [163917][I][Waveshare_7_5_T7_Sensors.ino:1078] GetMqttData(): Waiting for MQTT message... 23:21:14.846 -> [163917][D][Waveshare_7_5_T7_Sensors.ino:840] mqttMessageCb(): Payload size: 6 23:21:14.891 -> [163922][D][Waveshare_7_5_T7_Sensors.ino:840] mqttMessageCb(): Payload size: 6 23:21:14.891 -> [163929][D][Waveshare_7_5_T7_Sensors.ino:840] mqttMessageCb(): Payload size: 6 23:21:14.891 -> [163945][I][Waveshare_7_5_T7_Sensors.ino:1117] GetMqttData(): done! 23:21:14.891 -> [163952][D][Waveshare_7_5_T7_Sensors.ino:1119] GetMqttData(): 1.5 23:21:14.891 -> [163953][D][Waveshare_7_5_T7_Sensors.ino:1121] GetMqttData(): Creating JSON object... 23:21:14.891 -> [163955][D][Waveshare_7_5_T7_Sensors.ino:1135] GetMqttData(): Done! 23:21:14.891 -> Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled. 23:21:14.937 -> 23:21:14.937 -> Core 0 register dump: 23:21:14.937 -> PC : 0x40094261 PS : 0x00060b30 A0 : 0x800dca95 A1 : 0x3ffdcd00 23:21:14.937 -> A2 : 0x500011c1 A3 : 0x00000000 A4 : 0x0000001e A5 : 0x0000ff00 23:21:14.937 -> A6 : 0x00ff0000 A7 : 0xff000000 A8 : 0x00000000 A9 : 0x0000000c 23:21:14.937 -> A10 : 0x500011c1 A11 : 0x000000ff A12 : 0x0000003f A13 : 0x00000046 23:21:14.937 -> A14 : 0x3f401038 A15 : 0xff000000 SAR : 0x00000013 EXCCAUSE: 0x0000001c 23:21:14.937 -> EXCVADDR: 0x00000000 LBEG : 0x40094261 LEND : 0x40094272 LCOUNT : 0xffffffff 23:21:14.984 -> 23:21:14.984 -> 23:21:14.984 -> Backtrace: 0x4009425e:0x3ffdcd00 0x400dca92:0x3ffdcd10 0x400dead1:0x3ffdce00 0x40103a26:0x3ffdcf40 23:21:14.984 -> 23:21:14.984 -> 23:21:14.984 -> 23:21:14.984 -> 23:21:14.984 -> ELF file SHA256: bca5e83ac2c1286d 23:21:14.984 -> 23:21:15.170 -> Rebooting... 23:21:15.170 -> ets Jun 8 2016 00:22:57 23:21:15.170 -> 23:21:15.170 -> rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) 23:21:15.170 -> configsip: 0, SPIWP:0xee 23:21:15.170 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 23:21:15.170 -> mode:DIO, clock div:1 23:21:15.170 -> load:0x3fff0030,len:1344 23:21:15.170 -> load:0x40078000,len:13964 23:21:15.170 -> load:0x40080400,len:3600 23:21:15.170 -> entry 0x400805f0 23:21:15.637 -> [ 28][D][esp32-hal-cpu.c:244] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz 23:21:15.684 -> [ 49][I]_PowerOn : 125996 23:21:36.517 -> Busy Timeout! 23:21:36.517 -> _Update_Full : 20001077 23:21:42.575 -> _PowerOff : 6021000 23:21:52.556 -> _PowerOn : 2
You seem to have reformatted this which I failed on. How did you do that? It now (obviously) looks far better.
Also do I understand correctly that with the improvement you kindly made recently I can keep my MQTT payload as is? That would be preferrable since I´m using the MQTT data as is already on other receiving devices...
And you are also totally right on logfiles - it was just me to have to find out first how to get them. I don´t find Arduino IDE overly userfriendly. But - as always - that´s a matter of practise...
You can format a block of text by enclosing it with three backticks at the start of a line.
No, I'm afraid I did not make any changes for you special case, but you find a hint how to do it in my previous comment (option 2).
So this could be implemented as follows:
...
log_i("done!");
MqttClient.disconnect();
log_d("%s", MqttBuf);
// Everything between /* */ can be deleted...
/*
log_d("Creating JSON object...");
// allocate the JsonDocument
//StaticJsonDocument<MQTT_PAYLOAD_SIZE> doc;
DynamicJsonDocument doc(MQTT_PAYLOAD_SIZE);
// Deserialize the JSON document
DeserializationError error = deserializeJson(doc, MqttBuf, MQTT_PAYLOAD_SIZE);
// Test if parsing succeeds.
if (error) {
log_i("deserializeJson() failed: %s", error.c_str());
return;
} else {
log_d("Done!");
}
MqttSensors.valid = true;
const char *received_at = doc["received_at"];
strncpy(MqttSensors.received_at, received_at, 30);
//MqttSensors.received_at = received_at;
//MqttSensors.received_at = doc["received_at"].as<String>();
JsonObject uplink_message = doc["uplink_message"];
// uplink_message_decoded_payload_bytes -> payload
JsonObject payload = uplink_message["decoded_payload"]["bytes"];
*/
// Convert temperature value from string (with leading spaces) to float
sscanf(MqttBuf, " %f", &MqttSensors.air_temp_c);
/*
MqttSensors.air_temp_c = payload["air_temp_c"];
MqttSensors.humidity = payload["humidity"];
MqttSensors.indoor_temp_c = payload["indoor_temp_c"];
MqttSensors.indoor_humidity = payload["indoor_humidity"];
MqttSensors.battery_v = payload["battery_v"];
MqttSensors.rain_day = payload["rain_day"];
MqttSensors.rain_hr = payload["rain_hr"];
MqttSensors.rain_mm = payload["rain_mm"];
MqttSensors.rain_month = payload["rain_mon"];
MqttSensors.rain_week = payload["rain_week"];
MqttSensors.soil_moisture = payload["soil_moisture"];
MqttSensors.soil_temp_c = payload["soil_temp_c"];
MqttSensors.water_temp_c = payload["water_temp_c"];
MqttSensors.wind_avg_meter_sec = payload["wind_avg_meter_sec"];
MqttSensors.wind_direction_deg = payload["wind_direction_deg"];
MqttSensors.wind_gust_meter_sec = payload["wind_gust_meter_sec"];
JsonObject status = payload["status"];
MqttSensors.status.ble_ok = status["ble_ok"];
MqttSensors.status.s1_batt_ok = status["s1_batt_ok"];
MqttSensors.status.s1_dec_ok = status["s1_dec_ok"];
MqttSensors.status.ws_batt_ok = status["ws_batt_ok"];
MqttSensors.status.ws_dec_ok = status["ws_dec_ok"];
*/
MqttSensors.status.ble_ok = false;
MqttSensors.status.s1_batt_ok = false;
MqttSensors.status.s1_dec_ok = false;
MqttSensors.status.ws_batt_ok = false;
MqttSensors.status.ws_dec_ok = true;
/*
// Sanity checks
if (MqttSensors.humidity == 0) {
MqttSensors.status.ws_dec_ok = false;
}
MqttSensors.rain_hr_valid = (MqttSensors.rain_hr >= 0) && (MqttSensors.rain_hr < 300);
MqttSensors.rain_day_valid = (MqttSensors.rain_day >= 0) && (MqttSensors.rain_day < 1800);
// If not valid, set value to zero to avoid any problems with auto-scale etc.
if (!MqttSensors.rain_hr_valid) {
MqttSensors.rain_hr = 0;
}
if (!MqttSensors.rain_day_valid) {
MqttSensors.rain_day = 0;
}
*/
...
Thanks again!
I achieved two things meanwhile (not where I wanted to be but still progess):
However - again, due to my very limited capabilites in this respect - could you please indicate where to paste the above code you kindly suggested in? My "guess" was in Waveshare_7_5_T7_Sensors.ino line 1117 till 1185 but that did not really solve the problem.
Your guess was correct. Maybe there was a bug in my suggested changes - I did not test anything.
Please make a fork of my code on GitHub and insert your modifications. Please also provide your logfile and compiler output again.
I will have a look and try to help.
Okay I must have made a mistake - don´t know which.
It basically works now. However, moving the MQTT Temp from "Remote" to "Forecast" screen appears more difficult than I thought. I defined the place where I´d like to have it in line 2062 of the example file.
Furthermore how do I not only import "Temperature" which is already correctly displayed on "Remote screen" but also "Humidity" which is in the same MQTT-base-topic? It´s published in my case as /esp8266/sensor2_humidity_1.
Here is my fork https://github.com/homuser2003/ESP32-e-Paper-Weather-Display-for-review Only the Example and the owm_credentials file are edited compared to your version and in the real wom_credentials version I obviously have real Wifi credentials and a real City.
Happy to also add log and compilation data but since I currently do not have a real issue, I skip that for the moment.
Finally I´d also be grateful for a hint how to disable all the sensors I don´t use assuming that it speeds up the update process and reduces the flickering... Tried already and broke it ;-/
Oh and of course thanks again for all your effort and help!!
See https://github.com/homuser2003/ESP32-e-Paper-Weather-Display-for-review/pull/1/files
Furthermore how do I not only import "Temperature" which is already correctly displayed on "Remote screen" but also "Humidity" which is in the same MQTT-base-topic? It´s published in my case as /esp8266/sensor2_humidity_1.
Added this as a quick hack - maybe wrong or incomplete, but I think it demonstrates the basic concept.
Finally I´d also be grateful for a hint how to disable all the sensors I don´t use assuming that it speeds up the update process and reduces the flickering... Tried already and broke it ;-/
What does "broke it" mean exactly?
Well what I did to comment out sensors lead to compilation errors. That´s what I meant wth "broke it".
The concept is demonstrated and I made a satisfying version without humidity.
The block you added in line 839ff however leads to a compilation error (I believe):
error: unterminated argument list invoking macro "log_d" */
exit status 1
Compilation error: unterminated argument list invoking macro "log_d"
Well what I did to comment out sensors lead to compilation errors. That´s what I meant wth "broke it".
I think I fixed the BLE stuff (which should save some time when disabled), BME280 needs more work... These options are obviously not fully tested. :-(
log_d("MQTT: Humidity received)";
should read
log_d("MQTT: Humidity received");
Added a few more fixes. It should be possible to display temperature and humidity now.
Looks good - almost perfect. Unfortunately I don´t really know how to use the cool features that github provides, but I entered it manually.
THANKS!
One potentially final question: Should this not give me MQTT temp und hum in two lines?
u8g2Fonts.setFont(u8g2_font_helvB14_tf); // Concatenate a constant string and a String converted from float (with one decimal) drawString(x + 8, y + 24, String("Garagendach: "), LEFT); drawString(x + 8, y + 50, String(MqttSensors.air_temp_c, 1) + String(" °C ") + String(MqttSensors.humidity, 1) + String (" %"), LEFT);
Temp is shown, hum not although correctly received...
You might try
drawString(x + 8, y + 50, String(MqttSensors.air_temp_c, 1) + String(" °C ") + String(MqttSensors.humidity) + String (" %"), LEFT);
The humidity data type is an integer, not a float. Therefore we do not need to set the number of decimals. Besides, temperature and humidity will be printed in one line with the code above.
It works - I´ll now put the thing physically together and potentially never touch it again ;-)
This really is far beyond me and if adding ",1" does not lead to an Error but just does not work, that shows me that I´m still far from the level of understanding necessary for this.
Anyhow you helped me a lot and I learned quite a bit!
THANK YOU!
Which kind of case are you using?
Well, indeed this isn't an entry level project - in terms of code size, structure and technical concepts.
I'm happy that you did not give up and are happy with the achieved result. Have fun with it! Maybe you'll get an itch to add more features later...
Thank you for the positive feedback!
I´m using the "original" Waveshare case and have put it on a wood Easel from Amazon: https://www.waveshare.com/product/displays/accessories/cases/7.5inch-e-paper-case.htm
Picture enclosed.
Looks good but the case is poorly designed in my eyes: It has a micro-USB opening bit it´s just too thin to accompany the display together with the ESP32 driver board. I had to solder all PINS of the driver board off, put the pulldown resistors as thickness saving on as I could, cut one of the magnetic holders off the case and then it fits acceptably.
Interestingly my measured temp is always about 1 °C below the OWM calculation...
I have two of these cases laying around, too. Yes, this design has quite a few limitations - I think you have made the best of it!
A difference of 1°C is not much - this can easily be explained by a slightly different location and tolerances.
Restart is triggered periodically (as defined by
SleepDuration
) to update the display with new data. If time and date is available (via WiFi and NTP), the update is done at fixed times. Restart is also triggered by the touch sensor inputs. If those are left open (i.e. unconnected), they can be triggered, too. Connect a pull-down resistor (10 kOhm) to each input (see below) to avoid this.Updating the display causes flickering. The duration depends on the display. Some displays support partial update, which avoids this in certain cases. If no update procedure is performed, the display content will fade, there will be ghost images or there will be visual errors. See ZinggJM/GxEPD2 or the display manufacturer's website.
BTW: The three color display is much worse in terms of updating than the B/W display. Did you set the display type according to your actual display?
Please see
owm_credentials.h
:If you set LAST_SCREEN to ScreenLocal, it will switch from ScreenLocal to ScreenOWM and ScreenMQTT will not be displayed at all. This way you can reduce the number of visible screens.
To display a sensor value on ScreenOWM, you basically have to copy some function calls from
DisplayMQTTWeather()
toDisplayOWMWeather()
, e.g.DisplayLocalTemperatureSection(358, 22, 137, 100, "", true, MqttSensors.air_temp_c, true, outdoorTMin, outdoorTMax);
where (358, 22) is the coordinate of the section's top left corner. Of course you have to find a suitable screen position. You can display a bitmap i a similar manner.The GPIO numbers are assigned in
Waveshare_7_5_T7_Sensors.ino
:The middle sensor is currently not really needed (it only triggers wake-up).