HeaterMeter Monitor and ESP8266/ESP32 Streaming Library


 

Bryan Mayland

TVWBB Hall of Fame
SUCCESS! WAIT A MINUTE did you find the LEDs with the decimal that were full sized or are those the minis? Oh they are the minis aren't they :( I got really excited.

Nice work getting it up and running and you've passed the test (of asking me to explain everything step by step for things you want to change) so just let me know if you have anything else you want to change and need some guidance.
 

Chris D Norton

TVWBB Member
SUCCESS! WAIT A MINUTE did you find the LEDs with the decimal that were full sized or are those the minis? Oh they are the minis aren't they :( I got really excited.

Nice work getting it up and running and you've passed the test (of asking me to explain everything step by step for things you want to change) so just let me know if you have anything else you want to change and need some guidance.
Thanks man!!

Yeah they are the smaller ones. But I have the larger decimal coming from China in about a month. Building 2 more for a couple buddies.

I’ll post when they get here.

3D printed Back plate for the .36 works like a glove.
I’ll print the .56 as well when they get here.

I did have issues compiling but the feb release worked great. There was another guy on here that used that release. Don’t know why the latest didn’t compile. Above my pay grade. Lol
 

Bryan Mayland

TVWBB Hall of Fame
I'd also like to know why the latest wouldn't compile, did you get the same error about LONG LONG must be defined? And are you on a Mac?

EDIT: Ah I see that the esp8266 3.0.0 core breaks the library for some reason. 2.7.4 works fine but if I update to 3.0.0 it stops compiling unless I force LONG_LONG support. I'll see if I can fix that. Weird that the older version compiles.
 
Last edited:

Bryan Mayland

TVWBB Hall of Fame
Should be fixed in latest HeaterMeterClient library now.

time_t changed from 32-bit to 64-bit in ESP8266 3.0.0 which then caused the ArduinoJson deserializer to want 64-bit integer support which I did not want to have enabled. Switched the type of UpdateUtc to uint32_t since it is UNIX epoch and not 64-bit anyway.
 

Bryan Mayland

TVWBB Hall of Fame
While I was looking at it last night I have some of the other code a pretty hard side-eye so I had another look at it this morning. Looks like I had a memory leak in the MeterMonitor software every time it wrote some letters to the displays. Apparently I was in too much of a C# mode
Code:
  leds[1]->setSegments(new uint8_t[4]{ TM1637_L, TM1637_I, TM1637_D, 0 }); // leak
  leds[1]->setSegments((const uint8_t[4]){ TM1637_L, TM1637_I, TM1637_D, 0 }); // 👍

I've updated the source in github to fix this leak, so if your MeterMonitor was rebooting itself when you're in lid mode all the time, this is likely why. I had noticed there there was like 20 bytes leaked every time I forced a disconnect and it reconnected, but I assumed it was in the ESP libraries and ignored it. Guess it was my own stupidity after all.
 

Chris D Norton

TVWBB Member
While I was looking at it last night I have some of the other code a pretty hard side-eye so I had another look at it this morning. Looks like I had a memory leak in the MeterMonitor software every time it wrote some letters to the displays. Apparently I was in too much of a C# mode
Code:
  leds[1]->setSegments(new uint8_t[4]{ TM1637_L, TM1637_I, TM1637_D, 0 }); // leak
  leds[1]->setSegments((const uint8_t[4]){ TM1637_L, TM1637_I, TM1637_D, 0 }); // 👍

I've updated the source in github to fix this leak, so if your MeterMonitor was rebooting itself when you're in lid mode all the time, this is likely why. I had noticed there there was like 20 bytes leaked every time I forced a disconnect and it reconnected, but I assumed it was in the ESP libraries and ignored it. Guess it was my own stupidity after all.
I’ll check it out. Mine worked flawlessly yesterday. I’ll post what I was working with before when I get home. Lol. This is wayyy more convienent.
 

Andrew F

TVWBB Super Fan
Cool and crap. Because now I need to try to remember what I did the first time to get this to work....
 

Chris D Norton

TVWBB Member
Here’s what I was using before.

Raspberry pi 3 and an old laptop screen that I salvaged. Ordered a video converter from China that worked with this type of screen and a buck converter for the 5v to the pi.

Almost like a portable Linux machine with a stand but I would I put the address of the HeaterMeter and have it on the kitchen counter

Plexiglass and some screws to hold it all in.
 

Attachments

  • E9E628B5-748C-4EF2-A88E-2F03E97D300A.jpeg
    E9E628B5-748C-4EF2-A88E-2F03E97D300A.jpeg
    129.4 KB · Views: 5
  • 3526D01E-DA11-44DF-AECE-1313EA3AFCC9.jpeg
    3526D01E-DA11-44DF-AECE-1313EA3AFCC9.jpeg
    141.5 KB · Views: 5
  • 1BC1042C-AD7F-465E-8078-743D845E2E21.jpeg
    1BC1042C-AD7F-465E-8078-743D845E2E21.jpeg
    123.3 KB · Views: 5

Bryan Mayland

TVWBB Hall of Fame
And the decimal points are even in the right place? I'm shocked I didn't have to update the code to fix it. Did you order from aliexpress? The larger decimal units there were cheap (~$1.50 each) but the shipping charged was per-unit and $3-4, making a set of four come in at $20 instead of the $10 I paid for the 5x dumb clock versions.
 

Chris D Norton

TVWBB Member
And the decimal points are even in the right place? I'm shocked I didn't have to update the code to fix it. Did you order from aliexpress? The larger decimal units there were cheap (~$1.50 each) but the shipping charged was per-unit and $3-4, making a set of four come in at $20 instead of the $10 I paid for the 5x dumb clock versions.
Yes Aliexpress. I ordered 8 total and total price was 24 and change shipped for everything
 
Top