Error after recent upgrade

there was some minor upgrade in the past few days and now I get an error trying to build an Arduino code that previously worked. Any thoughts?

C:\Users\Bill_\.platformio\lib\Ethernet\src\Ethernet.cpp:87:24: error: 'class IPAddress' has no member named '_address'

Globally installed libraries should only be used with uttermost care. You may be preventing the correct Ethernet library to be included by installing a particular version globally.

Otherwise we’d have to see the full platformio.ini and code in order to be able to reproduce the problem.

I have not done anything other than upload an example program from SensESP and build it. I have attached the files.

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:d1_mini]

platform = espressif8266
board = d1_mini
framework = arduino
monitor_speed = 115200
board_build.f_cpu = 160000000L
upload_resetmethod = nodemcu
build_flags =
//   -I/C:\Users\Bill_\.platformio\packages\framework-arduinoespressif8266\libraries\ESP8266mDNS\src
   -Wl,-Teagle.flash.4m1m.ld
   -Wall
   -Wno-reorder

upload_speed = 460800
lib_deps =
    https://github.com/SignalK/SensESP.git

Which one exactly from SensESP/examples at main · SignalK/SensESP · GitHub?

The ultrasonic_level_sensor.

#include <Arduino.h>
#include "sensesp_app.h"
#include "transforms/linear.h"
#include "signalk/signalk_output.h"
#include "sensors/ultrasonic_input.h"
#include "transforms/moving_average.h"

#define TRIGGER_PIN 15
#define INPUT_PIN 14

// SensESP builds upon the ReactESP framework. Every ReactESP application
// defines an "app" object vs defining a "main()" method.

ReactESP app([]() {

// Some initialization boilerplate when in debug mode...
#ifndef SERIAL_DEBUG_DISABLED

  Serial.begin(115200);

  // A small arbitrary delay is required to let the
  // serial port catch up

  delay(100);

  Debug.setSerialEnabled(true);

#endif

  debugI("\nSerial debug enabled\n");

  // Create the global SensESPApp() object.

  sensesp_app = new SensESPApp(
    "PortBW",
    "Double-Wide-AP",
    "wefjpfdw",
    "192.168.88.247",
    3000,
    ALL
  );

  // The "SignalK path" identifies this sensor to the SignalK server. Leaving
  // this blank would indicate this particular sensor (or transform) does not
  // broadcast SignalK data.

  const char *sk_path = "tanks.freshWater.starboard.currentLevel";

  // The "Configuration path" is combined with "/config" to formulate a URL
  // used by the RESTful API for retrieving or setting configuration data.
  // It is ALSO used to specify a path to the SPIFFS file system
  // where configuration data is saved on the MCU board. It should
  // ALWAYS start with a forward slash if specified. If left blank,
  // that indicates this sensor or transform does not have any
  // configuration to save, or that you're not interested in doing
  // run-time configuration.

  const char *ultrasonic_in_config_path = "/freshWaterTank_starboard/ultrasonic_in";
  const char *linear_config_path = "/freshWaterTank_starboard/linear";
  const char *ultrasonic_ave_samples = "/freshWaterTank_starboard/samples";

  // Create a sensor that is the source of our data, that will be read every readDelay ms.
  // It is an ultrasonic distance sensor that sends out an acoustical pulse in response
  // to a 100 micro-sec trigger pulse from the ESP. The return acoustical pulse width
  // can be converted to a distance by the formula 2*distance = pulse_width/speed_of_sound
  // With pulse_width in micro-sec and distance in cm, 2*speed_of_sound = 58
  // The sensor is mounted at the top of a water tank that is 25 cm deep.

  uint read_delay = 1000;

  auto* pUltrasonicSens = new UltrasonicSens(TRIGGER_PIN, INPUT_PIN, read_delay, ultrasonic_in_config_path);

  // A Linear transform takes its input, multiplies it by the multiplier, then adds the offset,
  // to calculate its output. In this example, we want to see the final output presented
  // as a ratio, where full (~2 cm) = 1 and  empty (25 cm)= 0.
  // To get a ratio:  R = (pulse_width/58.)*(-0.05) + 1.08675
  // full = 1450 * (-0.044347 / 58) +  1.08675 = 1
  // empty = 116 * (-0.044347 / 58) +  1.08675 = 0

  const float multiplier = -0.00074948;

  const float offset = 1.08675;

  float scale = 1.0;

  // Wire up the output of the analog input to the Linear transform,
  // and then output the results to the SignalK server.

  pUltrasonicSens->connectTo(new Linear(multiplier, offset, linear_config_path))

      ->connectTo(new MovingAverage(10, scale, ultrasonic_ave_samples))

      ->connectTo(new SKOutputNumber(sk_path));

  // Start the SensESP application running

  sensesp_app->enable();

});

You cannot comment out lines in an ini file with // by the way. Only # or ; are allowed comment symbols.

This example compiles perfectly fine.

max@XXXXXX:~/pio_tests/esp$ pio run 
Scanning dependencies...
Dependency Graph
|-- <SensESP> 0.4.3+sha.dd6bf38
|   |-- <ReactESP> 0.2.2
|   |-- <ESP8266WebServer> 1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <DNSServer> 1.1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESPAsyncTCP> 1.2.2
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP Async WebServer> 1.2.3+sha.f13685e
|   |   |-- <ESPAsyncTCP> 1.2.2
|   |   |   |-- <ESP8266WiFi> 1.0
|   |   |-- <Hash> 1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |   |-- <ArduinoJson> 6.16.1
|   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266mDNS> 1.2
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESPAsyncWiFiManager> 0.22.0
|   |   |-- <DNSServer> 1.1.0
|   |   |   |-- <ESP8266WiFi> 1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |   |-- <ESP Async WebServer> 1.2.3+sha.f13685e
|   |   |   |-- <ESPAsyncTCP> 1.2.2
|   |   |   |   |-- <ESP8266WiFi> 1.0
|   |   |   |-- <Hash> 1.0
|   |   |   |-- <ESP8266WiFi> 1.0
|   |   |   |-- <ArduinoJson> 6.16.1
|   |-- <ArduinoJson> 6.16.1
|   |-- <WebSockets> 2.2.1
|   |   |-- <ESP8266WiFi> 1.0
|   |   |-- <ESPAsyncTCP> 1.2.2
|   |   |   |-- <ESP8266WiFi> 1.0
|   |   |-- <Ethernet(esp8266)> 1.0.4
|   |   |   |-- <SPI> 1.0
|   |   |-- <SPI> 1.0
|   |   |-- <Hash> 1.0
|   |-- <OneWire> 2.3.5
|   |-- <DallasTemperature> 3.9.1
|   |   |-- <OneWire> 2.3.5
|   |-- <ESPTrueRandom> 1.1.0+sha.ed198f4
|   |-- <Wire> 1.0
|   |-- <Adafruit ADS1X15> 1.1.1
|   |   |-- <Wire> 1.0
|   |-- <Adafruit BME280 Library> 2.1.0
|   |   |-- <Adafruit Unified Sensor> 1.1.4
|   |   |-- <SPI> 1.0
|   |   |-- <Wire> 1.0
|   |-- <Adafruit BMP280 Library> 2.1.0
|   |   |-- <Adafruit Unified Sensor> 1.1.4
|   |   |-- <SPI> 1.0
|   |   |-- <Wire> 1.0
|   |-- <Adafruit SHT31 Library> 2.0.0
|   |   |-- <Adafruit BusIO> 1.5.0
|   |   |   |-- <Wire> 1.0
|   |   |   |-- <SPI> 1.0
|   |   |-- <Wire> 1.0
|   |-- <Adafruit INA219> 1.0.9
|   |   |-- <Wire> 1.0
|   |   |-- <Adafruit BusIO> 1.5.0
|   |   |   |-- <Wire> 1.0
|   |   |   |-- <SPI> 1.0
|   |   |-- <SPI> 1.0
|   |-- <Adafruit MAX31856 library> 1.2.1
|   |   |-- <Adafruit BusIO> 1.5.0
|   |   |   |-- <Wire> 1.0
|   |   |   |-- <SPI> 1.0
|   |   |-- <SPI> 1.0
|   |-- <Adafruit Unified Sensor> 1.1.4
|   |-- <Adafruit BusIO> 1.5.0
|   |   |-- <Wire> 1.0
|   |   |-- <SPI> 1.0
|   |-- <EspSoftwareSerial> 6.9.0
|   |-- <RemoteDebug> 2.1.2+sha.0b5a9c1
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266HTTPClient> 1.2
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ArduinoOTA> 1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |   |-- <ESP8266mDNS> 1.2
|   |   |   |-- <ESP8266WiFi> 1.0
...
Building .pio/build/d1_mini/firmware.bin
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [=====     ]  49.4% (used 40488 bytes from 81920 bytes)
Flash: [========  ]  75.8% (used 791572 bytes from 1044464 bytes)
Creating BIN file ".pio/build/d1_mini/firmware.bin" using "/home/max/.platformio/packages/framework-arduinoespressif8266/bootloaders/eboot/eboot.elf" and ".pio/build/d1_mini/firmware.elf"
============= [SUCCESS] Took 92.70 seconds =============

I’ve noticed that it has pulled in a custom Ethernet library, which is very likely not the Ethernet library you have installed globally. As said in my first post, please remove C:\Users\Bill_\.platformio\lib\Ethernet and retry.

Thank you, that was most helpful. Can you tell me how that library might have gotten into my system and how you knew that was the problem so I can avoid similar issues in the future? Thanks again.