Community
OpenEnergyMonitor

Community

Heat pump monitor ESP8266 problem

Hi, I’ve been trying to get the heatpump monitor set up using the ESP8266 to transmit data directly. I’ve tried this several times in the past, and always failed and resorted to using it with an EmonPi instead, but I am determined to make it work this time.

I followed the instructions carefully, compiled the 8266 firmware and got it flashed OK, as well as the sketch data.

The emonESP_9016213 wifi network appears, and I can connect to it, but it gives a “no internet connection” warning and I am not able to open the address 192.168.4.1

I also tried erasing the flash (using the blank file) and re-flashing, but end up with the same result. Here’s what the debug terminal says - it all looks like it’s working.

EmonESP 9016213
Firmware: BUILD_TAG
Starting APScan: 2 networks found
AP IP Address: 192.168.4.1
Server started

Any ideas please?

Good

Yes you would expect that. The device you connect from and the ESP are simply talking to each other.

From the same device you made the wireless connection with? If that is a laptop, you may well need to change the IP address of the laptop so it is on the same Subnet.

Try connecting to the emonESP_9016213 from a phone or tablet, open the IP address in a browser and it will probably work.

I’ve been using an iPhone, typing the address into Safari directly. It doesn’t work - I’ve tried several other phones as well in case it was something weird with my one. Same issue with my laptop.

That’s why I’m thinking it’s a problem with the ESP setup.

The phone ends up with an IP address like 169.254.81.68. From past experience I think that’s what happens when DNS of the AP hasn’t given it an address, hence the “no internet” warning as well.

1 Like

There are some other threads on building your own firmware and problems around that on the community. Have you read through those? Not sure if there were any solutions but I think some revolved around loading the right framework when compiling - not my area really though :grin:.

Not DNS, but DHCP. 169.254.xxx.xxx belongs to a block of IP addresses known as APIPA
(Automatic Public IP Addresses)
In short, it means your device cant find your DHCP server.

1 Like

Thanks Bill, I’m a bit rusty on this.

I have been reading previous threads on the ESP, but can’t see any with this problem.

Yes so this is the problem. Both devices need to be on the same subnet i.e. an IP in the range 192.168.4.x. Normally in AP mode this should be done automatically.

The solution is to force the device you are using to an IP say 192.168.4.2. On the laptop that is reasonably easy.

I haven’t manually entered network addresses since about 2002! But OK I’ve just tried that and it did not work :frowning:

Has anyone succeeded in building and installing the ESP, using these instructions? https://github.com/openenergymonitor/EmonESP

How did you do it? what subnet mask and gateway?

If a phone did you disable mobile data?

subnet mask 255.255.255.0 and gateway 192.168.4.1
All guesswork of course!

Yes, mobile data turned off on the phone, I saw that advice in the instructions (although I am on iPhone not Android).

Thanks

Did you do this with PlatformIO or Arduino?

Arduino.

@glyn.hudson Can you help?

Trawling the community - possible thing to try Cannot access WiFi AP after uploading from VSCode/PIO

I did read that as well. Mine doesn’t look like it’s crashing (not resetting anyway). But in any case I don’t know what [email protected] is or where it lives - it’s not in the library manager or referenced in any source file as far as I can see.

1 Like

Me neither :grinning:.

1 Like

Thinking about buying a pre-flashed ESP board, de-soldering the module and fitting it to the heat pump monitor board.

According to this thread: ESP continually resetting. Any ideas? - the “correct” esp8266 board package to use with Arduino is version 2.4.2. I was using the latest, which is 2.5.2, so I downgraded it. This now doesn’t build, lots of errors as below.

C:\Users\PLC\ArduinoData\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/lib\libstdc++.a(ios-inst.o): In function `std::basic_ios<char, std::char_traits >::clear(std::_Ios_Iostate)’:

/Users/igrokhotkov/e/ESPTools/crosstool-NG/.build/xtensa-lx106-elf/build/build-cc-gcc-final/xtensa-lx106-elf/libstdc+±v3/include/bits/basic_ios.tcc:122: undefined reference to `std::__throw_ios_failure(char const*)’

C:\Users\PLC\ArduinoData\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/lib\libstdc++.a(c++locale.o):(.literal.ZNSt6locale5facet18_S_create_c_localeERPiPKcS1+0x4): undefined reference to `std::__throw_runtime_error(char const*)’

C:\Users\PLC\ArduinoData\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/lib\libstdc++.a(c++locale.o): In function `std::locale::facet::_S_create_c_locale(int*&, char const*, int*)’:

/Users/igrokhotkov/e/ESPTools/crosstool-NG/.build/xtensa-lx106-elf/build/build-cc-gcc-final/xtensa-lx106-elf/libstdc+±v3/src/c++98/c++locale.cc:207: undefined reference to `std::__throw_runtime_error(char const*)’

collect2.exe: error: ld returned 1 exit status

Hi Evan,
This guide needs updating to make clear the pio method isn’t working at the moment with master branch.

If you’re compiling emonESP master branch use Arduino with ESP 2.4.2 installed from the board manager.
If it’s the timer branch you’re using with the hp monitor then compile with pio.

I’ve never seen those errors before! Looks like a windows thing. Which version of Arduino is it? Might be worth trying to uninstall and install again the IDE or the ESP board package.

If using Arduino there are a few libraries to download also. Have you tracked them down?

The 1.8.0 thing referenced above is just PIO’s version scheme for the esp core, it actually uses ESP core 2.4.2 within it. If you’re compiling master using pio and [email protected] is used, it should theoretically work the same as arduino compiling with esp8266 2.4.2 from the board manager.

Hi Dan thanks for the help.

This guide needs updating to make clear the pio method isn’t working at the moment with master branch.

OK, I’m not, but I volunteer to edit the instructions to say that, if (and it’s a big if) I ever get this working!

I’ve re-installed Arduino, bringing it up to the latest version, 1.8.9. I’ve also removed/reinstalled the ESP board package to 2.4.2. Same weird errors. If I change the board package to 2.5.2 it DOES compile but obviously still doesn’t work. Changing back to 2.4.2: errors.

I am using the emonESP main branch, from a couple of days ago.
I did search for and install various libraries, I can see ESP_Async_E1.31, ESPAsyncTCP-master, ESPAsyncWebServer-master and PubSubClient in the libraries directory. I think were some others found via the library manager.