diyless/esp32-wifi-thermostat

cannot compile

Closed this issue · 3 comments

Hello,

i tried to compile esp32 wifi thermostat, but compilation failed - as you can see on the screenshot. I think, I found a bug :(

I have Arduino IDE 2.3.2. I followed instructions on the https://diyless.com/blog/esp32-wifi-thermostat

1

I downloaded RingBuffer.h from https://github.com/arduino/ArduinoCore-samd/blob/master/cores/arduino/RingBuffer.h and copied to same directory where .ino file is. So error with "no such file or directory" disappeared, but now I see this errors:

/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:82:23: error: cannot convert 'OpenThermMessageID' to 'uint8_t' {aka 'unsigned char'} in initialization
   82 |   OpenThermMessageID::Status,
      |   ~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       |
      |                       OpenThermMessageID
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:83:23: error: cannot convert 'OpenThermMessageID' to 'uint8_t' {aka 'unsigned char'} in initialization
   83 |   OpenThermMessageID::TSet,
      |   ~~~~~~~~~~~~~~~~~~~~^~~~
      |                       |
      |                       OpenThermMessageID
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:84:23: error: cannot convert 'OpenThermMessageID' to 'uint8_t' {aka 'unsigned char'} in initialization
   84 |   OpenThermMessageID::Tboiler,
      |   ~~~~~~~~~~~~~~~~~~~~^~~~~~~
      |                       |
      |                       OpenThermMessageID
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:85:23: error: cannot convert 'OpenThermMessageID' to 'uint8_t' {aka 'unsigned char'} in initialization
   85 |   OpenThermMessageID::RelModLevel,
      |   ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
      |                       |
      |                       OpenThermMessageID
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:109:1: error: 'RingBuffer' is not a template
  109 | RingBuffer<ChartItem, 300> chart_items;
      | ^~~~~~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:109:12: error: 'ChartItem' was not declared in this scope
  109 | RingBuffer<ChartItem, 300> chart_items;
      |            ^~~~~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:111:1: error: 'ChartItem' does not name a type; did you mean 'chart_items'?
  111 | ChartItem* curr_item = NULL;
      | ^~~~~~~~~
      | chart_items
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:529:6: error: variable or field 'clearItem' declared void
  529 | void clearItem(ChartItem* item)
      |      ^~~~~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:529:16: error: 'ChartItem' was not declared in this scope; did you mean 'chart_items'?
  529 | void clearItem(ChartItem* item)
      |                ^~~~~~~~~
      |                chart_items
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:529:27: error: 'item' was not declared in this scope
  529 | void clearItem(ChartItem* item)
      |                           ^~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino: In function 'void addChTemperature(String&, char*)':
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:272:33: error: 'class RingBuffer' has no member named 'getCount'
  272 |     for (i = 0; i < chart_items.getCount(); i++) {
      |                                 ^~~~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:273:9: error: 'ChartItem' was not declared in this scope; did you mean 'chart_items'?
  273 |         ChartItem* item = chart_items.peek(i);
      |         ^~~~~~~~~
      |         chart_items
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:273:20: error: 'item' was not declared in this scope
  273 |         ChartItem* item = chart_items.peek(i);
      |                    ^~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:273:39: error: 'class RingBuffer' has no member named 'peek'
  273 |         ChartItem* item = chart_items.peek(i);
      |                                       ^~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino: In function 'void addModulation(String&, char*)':
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:291:33: error: 'class RingBuffer' has no member named 'getCount'
  291 |     for (i = 0; i < chart_items.getCount(); i++) {
      |                                 ^~~~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:292:9: error: 'ChartItem' was not declared in this scope; did you mean 'chart_items'?
  292 |         ChartItem* item = chart_items.peek(i);
      |         ^~~~~~~~~
      |         chart_items
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:292:20: error: 'item' was not declared in this scope
  292 |         ChartItem* item = chart_items.peek(i);
      |                    ^~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:292:39: error: 'class RingBuffer' has no member named 'peek'
  292 |         ChartItem* item = chart_items.peek(i);
      |                                       ^~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino: In function 'void addRoomTemperature(String&, char*)':
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:330:33: error: 'class RingBuffer' has no member named 'getCount'
  330 |     for (i = 0; i < chart_items.getCount(); i++) {
      |                                 ^~~~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:331:9: error: 'ChartItem' was not declared in this scope; did you mean 'chart_items'?
  331 |         ChartItem* item = chart_items.peek(i);
      |         ^~~~~~~~~
      |         chart_items
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:331:20: error: 'item' was not declared in this scope
  331 |         ChartItem* item = chart_items.peek(i);
      |                    ^~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:331:39: error: 'class RingBuffer' has no member named 'peek'
  331 |         ChartItem* item = chart_items.peek(i);
      |                                       ^~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino: In function 'String getChart()':
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:371:37: error: 'class RingBuffer' has no member named 'getCount'
  371 |         for (i = 0; i < chart_items.getCount(); i++) {
      |                                     ^~~~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:372:13: error: 'ChartItem' was not declared in this scope; did you mean 'chart_items'?
  372 |             ChartItem* item = chart_items.peek(i);
      |             ^~~~~~~~~
      |             chart_items
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:372:24: error: 'item' was not declared in this scope
  372 |             ChartItem* item = chart_items.peek(i);
      |                        ^~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:372:43: error: 'class RingBuffer' has no member named 'peek'
  372 |             ChartItem* item = chart_items.peek(i);
      |                                           ^~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:419:33: error: 'class RingBuffer' has no member named 'getCount'
  419 |     for (i = 0; i < chart_items.getCount(); i++) {
      |                                 ^~~~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:420:9: error: 'ChartItem' was not declared in this scope; did you mean 'chart_items'?
  420 |         ChartItem* item = chart_items.peek(i);
      |         ^~~~~~~~~
      |         chart_items
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:420:20: error: 'item' was not declared in this scope
  420 |         ChartItem* item = chart_items.peek(i);
      |                    ^~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:420:39: error: 'class RingBuffer' has no member named 'peek'
  420 |         ChartItem* item = chart_items.peek(i);
      |                                       ^~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino: In function 'void processResponse(long unsigned int, OpenThermResponseStatus)':
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:493:118: error: no matching function for call to 'String::String(OpenThermResponseStatus)'
  493 |         Serial.println("Invalid response: " + String(response, HEX) + ", status=" + String(ot.getLastResponseStatus()));
      |                                                                                                                      ^
In file included from /Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/Arduino.h:295,
                 from /private/var/folders/z4/c6lfznhj1yvf54wgt0yn_6fh0000gn/T/arduino/sketches/A5DE64A83E4A50F1E568BC6D6F10217E/sketch/esp32-wifi-thermostat.ino.cpp:1:
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:110:18: note: candidate: 'String::String(double)'
  110 |         explicit String(double value) :
      |                  ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:110:32: note:   no known conversion for argument 1 from 'OpenThermResponseStatus' to 'double'
  110 |         explicit String(double value) :
      |                         ~~~~~~~^~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:109:9: note: candidate: 'String::String(double, unsigned char)'
  109 |         String(double, unsigned char decimalPlaces);
      |         ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:109:9: note:   candidate expects 2 arguments, 1 provided
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:105:18: note: candidate: 'String::String(float)'
  105 |         explicit String(float value) :
      |                  ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:105:31: note:   no known conversion for argument 1 from 'OpenThermResponseStatus' to 'float'
  105 |         explicit String(float value) :
      |                         ~~~~~~^~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:104:9: note: candidate: 'String::String(float, unsigned char)'
  104 |         String(float, unsigned char decimalPlaces);
      |         ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:104:9: note:   candidate expects 2 arguments, 1 provided
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:100:18: note: candidate: 'String::String(long long unsigned int)'
  100 |         explicit String(unsigned long long value) :
      |                  ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:100:44: note:   no known conversion for argument 1 from 'OpenThermResponseStatus' to 'long long unsigned int'
  100 |         explicit String(unsigned long long value) :
      |                         ~~~~~~~~~~~~~~~~~~~^~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:99:9: note: candidate: 'String::String(long long unsigned int, unsigned char)'
   99 |         String(unsigned long long, unsigned char base);
      |         ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:99:9: note:   candidate expects 2 arguments, 1 provided
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:95:18: note: candidate: 'String::String(long long int)'
   95 |         explicit String(long long value) :
      |                  ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:95:35: note:   no known conversion for argument 1 from 'OpenThermResponseStatus' to 'long long int'
   95 |         explicit String(long long value) :
      |                         ~~~~~~~~~~^~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:94:9: note: candidate: 'String::String(long long int, unsigned char)'
   94 |         String(long long, unsigned char base);
      |         ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:94:9: note:   candidate expects 2 arguments, 1 provided
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:90:18: note: candidate: 'String::String(long unsigned int)'
   90 |         explicit String(unsigned long value) :
      |                  ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:90:39: note:   no known conversion for argument 1 from 'OpenThermResponseStatus' to 'long unsigned int'
   90 |         explicit String(unsigned long value) :
      |                         ~~~~~~~~~~~~~~^~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:89:9: note: candidate: 'String::String(long unsigned int, unsigned char)'
   89 |         String(unsigned long, unsigned char base);
      |         ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:89:9: note:   candidate expects 2 arguments, 1 provided
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:85:18: note: candidate: 'String::String(long int)'
   85 |         explicit String(long value) :
      |                  ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:85:30: note:   no known conversion for argument 1 from 'OpenThermResponseStatus' to 'long int'
   85 |         explicit String(long value) :
      |                         ~~~~~^~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:84:9: note: candidate: 'String::String(long int, unsigned char)'
   84 |         String(long, unsigned char base);
      |         ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:84:9: note:   candidate expects 2 arguments, 1 provided
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:80:18: note: candidate: 'String::String(unsigned int)'
   80 |         explicit String(unsigned int value) :
      |                  ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:80:38: note:   no known conversion for argument 1 from 'OpenThermResponseStatus' to 'unsigned int'
   80 |         explicit String(unsigned int value) :
      |                         ~~~~~~~~~~~~~^~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:79:9: note: candidate: 'String::String(unsigned int, unsigned char)'
   79 |         String(unsigned int, unsigned char base);
      |         ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:79:9: note:   candidate expects 2 arguments, 1 provided
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:75:18: note: candidate: 'String::String(int)'
   75 |         explicit String(int value) :
      |                  ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:75:29: note:   no known conversion for argument 1 from 'OpenThermResponseStatus' to 'int'
   75 |         explicit String(int value) :
      |                         ~~~~^~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:74:9: note: candidate: 'String::String(int, unsigned char)'
   74 |         String(int, unsigned char base);
      |         ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:74:9: note:   candidate expects 2 arguments, 1 provided
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:70:18: note: candidate: 'String::String(unsigned char)'
   70 |         explicit String(unsigned char value) :
      |                  ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:70:39: note:   no known conversion for argument 1 from 'OpenThermResponseStatus' to 'unsigned char'
   70 |         explicit String(unsigned char value) :
      |                         ~~~~~~~~~~~~~~^~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:69:9: note: candidate: 'String::String(unsigned char, unsigned char)'
   69 |         String(unsigned char, unsigned char base);
      |         ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:69:9: note:   candidate expects 2 arguments, 1 provided
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:62:18: note: candidate: 'String::String(char)'
   62 |         explicit String(char c) {
      |                  ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:62:30: note:   no known conversion for argument 1 from 'OpenThermResponseStatus' to 'char'
   62 |         explicit String(char c) {
      |                         ~~~~~^
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:60:9: note: candidate: 'String::String(String&&)'
   60 |         String(String &&rval) noexcept;
      |         ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:60:25: note:   no known conversion for argument 1 from 'OpenThermResponseStatus' to 'String&&'
   60 |         String(String &&rval) noexcept;
      |                ~~~~~~~~~^~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:59:9: note: candidate: 'String::String(const __FlashStringHelper*)'
   59 |         String(const __FlashStringHelper *str);
      |         ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:59:43: note:   no known conversion for argument 1 from 'OpenThermResponseStatus' to 'const __FlashStringHelper*'
   59 |         String(const __FlashStringHelper *str);
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:58:9: note: candidate: 'String::String(const String&)'
   58 |         String(const String &str);
      |         ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:58:30: note:   no known conversion for argument 1 from 'OpenThermResponseStatus' to 'const String&'
   58 |         String(const String &str);
      |                ~~~~~~~~~~~~~~^~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:57:9: note: candidate: 'String::String(const char*)'
   57 |         String(const char *cstr);
      |         ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:57:28: note:   no known conversion for argument 1 from 'OpenThermResponseStatus' to 'const char*'
   57 |         String(const char *cstr);
      |                ~~~~~~~~~~~~^~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:54:9: note: candidate: 'String::String()'
   54 |         String() __attribute__((always_inline)) { // See init()
      |         ^~~~~~
/Users/mholes/Library/Arduino15/packages/esp8266/hardware/esp8266/3.1.2/cores/esp8266/WString.h:54:9: note:   candidate expects 0 arguments, 1 provided
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:496:9: error: 'curr_item' was not declared in this scope; did you mean 'chart_items'?
  496 |     if (curr_item == NULL) {
      |         ^~~~~~~~~
      |         chart_items
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:504:30: error: could not convert 'OpenThermMessageID::Status' from 'OpenThermMessageID' to 'int'
  504 |     case OpenThermMessageID::Status:
      |          ~~~~~~~~~~~~~~~~~~~~^~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:506:9: error: 'curr_item' was not declared in this scope; did you mean 'chart_items'?
  506 |         curr_item->status = boiler_status;
      |         ^~~~~~~~~
      |         chart_items
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:509:30: error: could not convert 'OpenThermMessageID::TSet' from 'OpenThermMessageID' to 'int'
  509 |     case OpenThermMessageID::TSet:
      |          ~~~~~~~~~~~~~~~~~~~~^~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:514:30: error: could not convert 'OpenThermMessageID::Tboiler' from 'OpenThermMessageID' to 'int'
  514 |     case OpenThermMessageID::Tboiler:
      |          ~~~~~~~~~~~~~~~~~~~~^~~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:519:30: error: could not convert 'OpenThermMessageID::RelModLevel' from 'OpenThermMessageID' to 'int'
  519 |     case OpenThermMessageID::RelModLevel:
      |          ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino: At global scope:
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:529:6: error: variable or field 'clearItem' declared void
  529 | void clearItem(ChartItem* item)
      |      ^~~~~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:529:16: error: 'ChartItem' was not declared in this scope; did you mean 'chart_items'?
  529 | void clearItem(ChartItem* item)
      |                ^~~~~~~~~
      |                chart_items
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:529:27: error: 'item' was not declared in this scope
  529 | void clearItem(ChartItem* item)
      |                           ^~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino: In function 'unsigned int buildRequest(byte)':
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:543:30: error: could not convert 'OpenThermMessageID::Status' from 'OpenThermMessageID' to 'int'
  543 |     case OpenThermMessageID::Status:
      |          ~~~~~~~~~~~~~~~~~~~~^~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:550:30: error: could not convert 'OpenThermMessageID::TSet' from 'OpenThermMessageID' to 'int'
  550 |     case OpenThermMessageID::TSet:
      |          ~~~~~~~~~~~~~~~~~~~~^~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:552:30: error: could not convert 'OpenThermMessageID::Tboiler' from 'OpenThermMessageID' to 'int'
  552 |     case OpenThermMessageID::Tboiler:
      |          ~~~~~~~~~~~~~~~~~~~~^~~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:554:30: error: could not convert 'OpenThermMessageID::RelModLevel' from 'OpenThermMessageID' to 'int'
  554 |     case OpenThermMessageID::RelModLevel:
      |          ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino: In function 'void handleOpenTherm()':
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:570:13: error: 'curr_item' was not declared in this scope; did you mean 'chart_items'?
  570 |         if (curr_item == NULL || (req_idx == 0)) {
      |             ^~~~~~~~~
      |             chart_items
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:571:37: error: 'class RingBuffer' has no member named 'push'
  571 |             curr_item = chart_items.push();
      |                                     ^~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:572:13: error: 'clearItem' was not declared in this scope
  572 |             clearItem(curr_item);
      |             ^~~~~~~~~
/Users/mholes/Downloads/esp32-wifi-thermostat/esp32-wifi-thermostat.ino:583:13: error: 'curr_item' was not declared in this scope; did you mean 'chart_items'?
  583 |         if (curr_item == NULL) return;
      |             ^~~~~~~~~
      |             chart_items

exit status 1

Compilation error: cannot convert 'OpenThermMessageID' to 'uint8_t' {aka 'unsigned char'} in initialization```

Hi @michalholes,
just clone the whole repo, there is RingBuffer.h.
image

image

The repo just updated to be compatible with OpenTherm Library v1.5