Arduino: 1.8.10 (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200" In file included from C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino:57:0: SH1106Wire.h:50:62: error: 'OLEDDISPLAY_GEOMETRY' has not been declared SH1106Wire(uint8_t _address, uint8_t _sda, uint8_t _scl, OLEDDISPLAY_GEOMETRY g = GEOMETRY_128_64) { ^ SH1106Wire.h:50:87: error: 'GEOMETRY_128_64' was not declared in this scope SH1106Wire(uint8_t _address, uint8_t _sda, uint8_t _scl, OLEDDISPLAY_GEOMETRY g = GEOMETRY_128_64) { ^ sketch\SH1106Wire.h: In constructor 'SH1106Wire::SH1106Wire(uint8_t, uint8_t, uint8_t, int)': SH1106Wire.h:51:20: error: 'setGeometry' was not declared in this scope setGeometry(g); ^ sketch\SH1106Wire.h: In member function 'virtual void SH1106Wire::display()': SH1106Wire.h:78:26: error: 'displayHeight' was not declared in this scope for (y = 0; y < (displayHeight / 8); y++) { ^ SH1106Wire.h:79:27: error: 'displayWidth' was not declared in this scope for (x = 0; x < displayWidth; x++) { ^ SH1106Wire.h:111:39: error: 'displayWidth' was not declared in this scope Wire.write(buffer[x + y * displayWidth]); ^ C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino: In function 'boolean Plugin_168(byte, EventStruct*, String&)': _P168_ThermOLED:123:10: error: 'PLUGIN_DEVICE_ADD' was not declared in this scope case PLUGIN_DEVICE_ADD: ^ _P168_ThermOLED:125:9: error: 'Device' was not declared in this scope Device[++deviceCount].Number = PLUGIN_ID_168; ^ _P168_ThermOLED:125:18: error: 'deviceCount' was not declared in this scope Device[++deviceCount].Number = PLUGIN_ID_168; ^ _P168_ThermOLED:126:36: error: 'DEVICE_TYPE_I2C' was not declared in this scope Device[deviceCount].Type = DEVICE_TYPE_I2C; ^ _P168_ThermOLED:127:37: error: 'SENSOR_TYPE_QUAD' was not declared in this scope Device[deviceCount].VType = SENSOR_TYPE_QUAD; ^ _P168_ThermOLED:140:10: error: 'PLUGIN_GET_DEVICENAME' was not declared in this scope case PLUGIN_GET_DEVICENAME: ^ _P168_ThermOLED:146:10: error: 'PLUGIN_GET_DEVICEVALUENAMES' was not declared in this scope case PLUGIN_GET_DEVICEVALUENAMES: ^ In file included from C:\Users\Philippe\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/libc/xtensa-lx106-elf/include/string.h:163:0, from C:\Users\Philippe\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266/Arduino.h:33, from sketch\_P168_ThermOLED.ino.cpp:1: _P168_ThermOLED:148:18: error: 'ExtraTaskSettings' was not declared in this scope strcpy_P(ExtraTaskSettings.TaskDeviceValueNames[0], PSTR(PLUGIN_VALUENAME1_168)); ^ C:\Users\Philippe\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/sdk/libc/xtensa-lx106-elf/include/sys/string.h:32:49: note: in definition of macro 'strcpy_P' #define strcpy_P(dest, src) strncpy_P((dest), (src), SIZE_IRRELEVANT) ^ _P168_ThermOLED:155:10: error: 'PLUGIN_WEBFORM_LOAD' was not declared in this scope case PLUGIN_WEBFORM_LOAD: ^ _P168_ThermOLED:157:24: error: 'Settings' was not declared in this scope byte choice5 = Settings.TaskDevicePluginConfig[event->TaskIndex][2]; ^ _P168_ThermOLED:157:61: error: invalid use of incomplete type 'struct EventStruct' byte choice5 = Settings.TaskDevicePluginConfig[event->TaskIndex][2]; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:162:104: error: 'addFormSelector' was not declared in this scope addFormSelector(F("Controller"), F("plugin_168_controler"), 2, options5, optionValues5, choice5); ^ _P168_ThermOLED:164:61: error: invalid use of incomplete type 'struct EventStruct' byte choice0 = Settings.TaskDevicePluginConfig[event->TaskIndex][0]; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:168:74: error: 'addFormSelectorI2C' was not declared in this scope addFormSelectorI2C(F("plugin_168_adr"), 2, optionValues0, choice0); ^ _P168_ThermOLED:170:61: error: invalid use of incomplete type 'struct EventStruct' byte choice1 = Settings.TaskDevicePluginConfig[event->TaskIndex][1]; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:177:37: error: invalid use of incomplete type 'struct EventStruct' LoadCustomTaskSettings(event->TaskIndex, (byte*)&P168_deviceTemplate, sizeof(P168_deviceTemplate)); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:177:106: error: 'LoadCustomTaskSettings' was not declared in this scope LoadCustomTaskSettings(event->TaskIndex, (byte*)&P168_deviceTemplate, sizeof(P168_deviceTemplate)); ^ _P168_ThermOLED:181:149: error: 'addFormTextBox' was not declared in this scope addFormTextBox(String(F("Temperature source ")), String(F("Plugin_168_template")) + (varNr + 1), P168_deviceTemplate[varNr], P168_Nchars); ^ _P168_ThermOLED:183:149: error: 'addFormTextBox' was not declared in this scope addFormTextBox(String(F("Line ")) + (varNr + 1), String(F("Plugin_168_template")) + (varNr + 1), P168_deviceTemplate[varNr], P168_Nchars); ^ _P168_ThermOLED:187:94: error: invalid use of incomplete type 'struct EventStruct' addFormPinSelect(F("Button left"), F("taskdevicepin1"), Settings.TaskDevicePin1[event->TaskIndex]); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:187:106: error: 'addFormPinSelect' was not declared in this scope addFormPinSelect(F("Button left"), F("taskdevicepin1"), Settings.TaskDevicePin1[event->TaskIndex]); ^ _P168_ThermOLED:188:95: error: invalid use of incomplete type 'struct EventStruct' addFormPinSelect(F("Button right"), F("taskdevicepin2"), Settings.TaskDevicePin2[event->TaskIndex]); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:189:94: error: invalid use of incomplete type 'struct EventStruct' addFormPinSelect(F("Button mode"), F("taskdevicepin3"), Settings.TaskDevicePin3[event->TaskIndex]); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:191:91: error: invalid use of incomplete type 'struct EventStruct' addFormPinSelect(F("Relay"), F("heatrelay"), Settings.TaskDevicePluginConfig[event->TaskIndex][4]); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:193:61: error: invalid use of incomplete type 'struct EventStruct' byte choice6 = Settings.TaskDevicePluginConfig[event->TaskIndex][3]; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:205:67: error: invalid use of incomplete type 'struct EventStruct' byte choice4 = (Settings.TaskDevicePluginConfigFloat[event->TaskIndex][0] * 10); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:220:10: error: 'PLUGIN_WEBFORM_SAVE' was not declared in this scope case PLUGIN_WEBFORM_SAVE: ^ _P168_ThermOLED:222:9: error: 'Settings' was not declared in this scope Settings.TaskDevicePluginConfig[event->TaskIndex][0] = getFormItemInt(F("plugin_168_adr")); ^ _P168_ThermOLED:222:46: error: invalid use of incomplete type 'struct EventStruct' Settings.TaskDevicePluginConfig[event->TaskIndex][0] = getFormItemInt(F("plugin_168_adr")); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:222:98: error: 'getFormItemInt' was not declared in this scope Settings.TaskDevicePluginConfig[event->TaskIndex][0] = getFormItemInt(F("plugin_168_adr")); ^ _P168_ThermOLED:223:46: error: invalid use of incomplete type 'struct EventStruct' Settings.TaskDevicePluginConfig[event->TaskIndex][1] = getFormItemInt(F("plugin_168_rotate")); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:224:46: error: invalid use of incomplete type 'struct EventStruct' Settings.TaskDevicePluginConfig[event->TaskIndex][2] = getFormItemInt(F("plugin_168_controler")); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:225:46: error: invalid use of incomplete type 'struct EventStruct' Settings.TaskDevicePluginConfig[event->TaskIndex][3] = getFormItemInt(F("plugin_168_contrast")); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:226:46: error: invalid use of incomplete type 'struct EventStruct' Settings.TaskDevicePluginConfig[event->TaskIndex][4] = getFormItemInt(F("heatrelay")); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:227:51: error: invalid use of incomplete type 'struct EventStruct' Settings.TaskDevicePluginConfigFloat[event->TaskIndex][0] = (getFormItemInt(F("plugin_168_hyst")) / 10.0); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:235:47: error: 'WebServer' was not declared in this scope strncpy(P168_deviceTemplate[varNr], WebServer.arg(argName).c_str(), sizeof(P168_deviceTemplate[varNr])); ^ _P168_ThermOLED:238:37: error: invalid use of incomplete type 'struct EventStruct' SaveCustomTaskSettings(event->TaskIndex, (byte*)&P168_deviceTemplate, sizeof(P168_deviceTemplate)); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:238:106: error: 'SaveCustomTaskSettings' was not declared in this scope SaveCustomTaskSettings(event->TaskIndex, (byte*)&P168_deviceTemplate, sizeof(P168_deviceTemplate)); ^ _P168_ThermOLED:244:10: error: 'PLUGIN_INIT' was not declared in this scope case PLUGIN_INIT: ^ _P168_ThermOLED:248:37: error: invalid use of incomplete type 'struct EventStruct' LoadCustomTaskSettings(event->TaskIndex, (byte*)&P168_deviceTemplate, sizeof(P168_deviceTemplate)); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:248:106: error: 'LoadCustomTaskSettings' was not declared in this scope LoadCustomTaskSettings(event->TaskIndex, (byte*)&P168_deviceTemplate, sizeof(P168_deviceTemplate)); ^ _P168_ThermOLED:256:37: error: invalid use of incomplete type 'struct EventStruct' Plugin_168_taskindex = event->TaskIndex; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:257:36: error: invalid use of incomplete type 'struct EventStruct' Plugin_168_varindex = event->BaseVarIndex; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:259:32: error: 'Settings' was not declared in this scope uint8_t OLED_address = Settings.TaskDevicePluginConfig[event->TaskIndex][0]; ^ _P168_ThermOLED:259:69: error: invalid use of incomplete type 'struct EventStruct' uint8_t OLED_address = Settings.TaskDevicePluginConfig[event->TaskIndex][0]; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:260:50: error: invalid use of incomplete type 'struct EventStruct' if (Settings.TaskDevicePluginConfig[event->TaskIndex][2] == 1) { ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:268:70: error: invalid use of incomplete type 'struct EventStruct' uint8_t OLED_contrast = Settings.TaskDevicePluginConfig[event->TaskIndex][3]; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:272:48: error: invalid use of incomplete type 'struct EventStruct' logstr += Settings.TaskDevicePin1[event->TaskIndex]; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:274:48: error: invalid use of incomplete type 'struct EventStruct' logstr += Settings.TaskDevicePin2[event->TaskIndex]; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:276:48: error: invalid use of incomplete type 'struct EventStruct' logstr += Settings.TaskDevicePin3[event->TaskIndex]; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:277:16: error: 'LOG_LEVEL_INFO' was not declared in this scope addLog(LOG_LEVEL_INFO, logstr); ^ _P168_ThermOLED:277:38: error: 'addLog' was not declared in this scope addLog(LOG_LEVEL_INFO, logstr); ^ _P168_ThermOLED:279:42: error: invalid use of incomplete type 'struct EventStruct' if (Settings.TaskDevicePin1[event->TaskIndex] != -1) ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:281:48: error: invalid use of incomplete type 'struct EventStruct' pinMode(Settings.TaskDevicePin1[event->TaskIndex], INPUT_PULLUP); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:283:42: error: invalid use of incomplete type 'struct EventStruct' if (Settings.TaskDevicePin2[event->TaskIndex] != -1) ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:285:48: error: invalid use of incomplete type 'struct EventStruct' pinMode(Settings.TaskDevicePin2[event->TaskIndex], INPUT_PULLUP); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:287:42: error: invalid use of incomplete type 'struct EventStruct' if (Settings.TaskDevicePin3[event->TaskIndex] != -1) ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:289:48: error: invalid use of incomplete type 'struct EventStruct' pinMode(Settings.TaskDevicePin3[event->TaskIndex], INPUT_PULLUP); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:294:13: error: 'SPIFFS' was not declared in this scope if (SPIFFS.exists("thermo.dat")) ^ _P168_ThermOLED:296:11: error: 'fs' has not been declared fs::File f = SPIFFS.open("thermo.dat", "r"); ^ _P168_ThermOLED:296:20: error: expected ';' before 'f' fs::File f = SPIFFS.open("thermo.dat", "r"); ^ _P168_ThermOLED:297:15: error: 'f' was not declared in this scope if (f) ^ _P168_ThermOLED:299:34: error: 'UserVar' was not declared in this scope f.read( ((uint8_t *)&UserVar[event->BaseVarIndex] + 0), 16 ); ^ _P168_ThermOLED:299:47: error: invalid use of incomplete type 'struct EventStruct' f.read( ((uint8_t *)&UserVar[event->BaseVarIndex] + 0), 16 ); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:304:13: error: 'UserVar' was not declared in this scope if (UserVar[event->BaseVarIndex] < 1) { ^ _P168_ThermOLED:304:26: error: invalid use of incomplete type 'struct EventStruct' if (UserVar[event->BaseVarIndex] < 1) { ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:305:24: error: invalid use of incomplete type 'struct EventStruct' UserVar[event->BaseVarIndex] = 19; // setpoint ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:306:24: error: invalid use of incomplete type 'struct EventStruct' UserVar[event->BaseVarIndex + 2] = 1; // mode (X=0,A=1,M=2) ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:310:50: error: invalid use of incomplete type 'struct EventStruct' if (Settings.TaskDevicePluginConfig[event->TaskIndex][4] != -1) ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:313:34: error: 'UserVar' was not declared in this scope P168_setHeatRelay(byte(UserVar[event->BaseVarIndex + 1])); ^ _P168_ThermOLED:313:47: error: invalid use of incomplete type 'struct EventStruct' P168_setHeatRelay(byte(UserVar[event->BaseVarIndex + 1])); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:317:26: error: 'UserVar' was not declared in this scope logstr += String(UserVar[event->BaseVarIndex]); ^ _P168_ThermOLED:317:39: error: invalid use of incomplete type 'struct EventStruct' logstr += String(UserVar[event->BaseVarIndex]); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:319:39: error: invalid use of incomplete type 'struct EventStruct' logstr += String(UserVar[event->BaseVarIndex + 1]); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:326:50: error: invalid use of incomplete type 'struct EventStruct' if (Settings.TaskDevicePluginConfig[event->TaskIndex][1] == 2) P168_display->flipScreenVertically(); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:338:10: error: 'PLUGIN_EXIT' was not declared in this scope case PLUGIN_EXIT: ^ _P168_ThermOLED:349:10: error: 'PLUGIN_TEN_PER_SECOND' was not declared in this scope case PLUGIN_TEN_PER_SECOND: ^ _P168_ThermOLED:353:13: error: 'Settings' was not declared in this scope if (Settings.TaskDevicePin1[event->TaskIndex] != -1) ^ _P168_ThermOLED:353:42: error: invalid use of incomplete type 'struct EventStruct' if (Settings.TaskDevicePin1[event->TaskIndex] != -1) ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:355:57: error: invalid use of incomplete type 'struct EventStruct' if (!digitalRead(Settings.TaskDevicePin1[event->TaskIndex])) ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:360:40: error: invalid use of incomplete type 'struct EventStruct' switch (int(UserVar[event->BaseVarIndex + 2])) { ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:360:27: error: 'UserVar' was not declared in this scope switch (int(UserVar[event->BaseVarIndex + 2])) { ^ _P168_ThermOLED:360:40: error: invalid use of incomplete type 'struct EventStruct' switch (int(UserVar[event->BaseVarIndex + 2])) { ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:369:34: error: invalid use of incomplete type 'struct EventStruct' UserVar[event->BaseVarIndex + 3] = UserVar[event->BaseVarIndex + 3] - 300; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:369:69: error: invalid use of incomplete type 'struct EventStruct' UserVar[event->BaseVarIndex + 3] = UserVar[event->BaseVarIndex + 3] - 300; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:370:38: error: invalid use of incomplete type 'struct EventStruct' if (UserVar[event->BaseVarIndex + 3] < 0) { ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:371:36: error: invalid use of incomplete type 'struct EventStruct' UserVar[event->BaseVarIndex + 3] = 5400; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:381:13: error: 'Settings' was not declared in this scope if (Settings.TaskDevicePin2[event->TaskIndex] != -1) ^ _P168_ThermOLED:381:42: error: invalid use of incomplete type 'struct EventStruct' if (Settings.TaskDevicePin2[event->TaskIndex] != -1) ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:383:57: error: invalid use of incomplete type 'struct EventStruct' if (!digitalRead(Settings.TaskDevicePin2[event->TaskIndex])) ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:388:40: error: invalid use of incomplete type 'struct EventStruct' switch (int(UserVar[event->BaseVarIndex + 2])) { ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:388:27: error: 'UserVar' was not declared in this scope switch (int(UserVar[event->BaseVarIndex + 2])) { ^ _P168_ThermOLED:388:40: error: invalid use of incomplete type 'struct EventStruct' switch (int(UserVar[event->BaseVarIndex + 2])) { ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:397:34: error: invalid use of incomplete type 'struct EventStruct' UserVar[event->BaseVarIndex + 3] = UserVar[event->BaseVarIndex + 3] + 300; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:397:69: error: invalid use of incomplete type 'struct EventStruct' UserVar[event->BaseVarIndex + 3] = UserVar[event->BaseVarIndex + 3] + 300; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:398:38: error: invalid use of incomplete type 'struct EventStruct' if (UserVar[event->BaseVarIndex + 3] > 5400) { ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:399:36: error: invalid use of incomplete type 'struct EventStruct' UserVar[event->BaseVarIndex + 3] = 60; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:410:13: error: 'Settings' was not declared in this scope if (Settings.TaskDevicePin3[event->TaskIndex] != -1) ^ _P168_ThermOLED:410:42: error: invalid use of incomplete type 'struct EventStruct' if (Settings.TaskDevicePin3[event->TaskIndex] != -1) ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:412:57: error: invalid use of incomplete type 'struct EventStruct' if (!digitalRead(Settings.TaskDevicePin3[event->TaskIndex])) ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:418:40: error: invalid use of incomplete type 'struct EventStruct' switch (int(UserVar[event->BaseVarIndex + 2])) { ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:418:27: error: 'UserVar' was not declared in this scope switch (int(UserVar[event->BaseVarIndex + 2])) { ^ _P168_ThermOLED:418:40: error: invalid use of incomplete type 'struct EventStruct' switch (int(UserVar[event->BaseVarIndex + 2])) { ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:440:10: error: 'PLUGIN_ONCE_A_SECOND' was not declared in this scope case PLUGIN_ONCE_A_SECOND: ^ _P168_ThermOLED:447:13: error: 'UserVar' was not declared in this scope if (UserVar[event->BaseVarIndex + 2] == 2) { // manual timeout ^ _P168_ThermOLED:447:26: error: invalid use of incomplete type 'struct EventStruct' if (UserVar[event->BaseVarIndex + 2] == 2) { // manual timeout ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:448:28: error: invalid use of incomplete type 'struct EventStruct' if (UserVar[event->BaseVarIndex + 3] > 0) { ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:449:26: error: invalid use of incomplete type 'struct EventStruct' UserVar[event->BaseVarIndex + 3] = UserVar[event->BaseVarIndex + 3] - 1; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:449:61: error: invalid use of incomplete type 'struct EventStruct' UserVar[event->BaseVarIndex + 3] = UserVar[event->BaseVarIndex + 3] - 1; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:452:26: error: invalid use of incomplete type 'struct EventStruct' UserVar[event->BaseVarIndex + 3] = 0; ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:458:25: error: 'sendData' was not declared in this scope sendData(event); ^ _P168_ThermOLED:466:12: error: 'fs' has not been declared fs::File f = SPIFFS.open("thermo.dat", "w"); ^ _P168_ThermOLED:466:21: error: expected ';' before 'f' fs::File f = SPIFFS.open("thermo.dat", "w"); ^ _P168_ThermOLED:467:16: error: 'f' was not declared in this scope if (f) ^ _P168_ThermOLED:469:35: error: 'UserVar' was not declared in this scope f.write( ((uint8_t *)&UserVar[event->BaseVarIndex] + 0), 16 ); ^ _P168_ThermOLED:469:48: error: invalid use of incomplete type 'struct EventStruct' f.write( ((uint8_t *)&UserVar[event->BaseVarIndex] + 0), 16 ); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:471:24: error: 'flashCount' was not declared in this scope flashCount(); ^ _P168_ThermOLED:474:19: error: 'LOG_LEVEL_INFO' was not declared in this scope addLog(LOG_LEVEL_INFO, logstr); ^ _P168_ThermOLED:474:41: error: 'addLog' was not declared in this scope addLog(LOG_LEVEL_INFO, logstr); ^ _P168_ThermOLED:481:10: error: 'PLUGIN_READ' was not declared in this scope case PLUGIN_READ: ^ _P168_ThermOLED:487:13: error: 'UserVar' was not declared in this scope if (UserVar[event->BaseVarIndex + 2] == 1) { ^ _P168_ThermOLED:487:26: error: invalid use of incomplete type 'struct EventStruct' if (UserVar[event->BaseVarIndex + 2] == 1) { ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:489:56: error: 'parseTemplate' was not declared in this scope String atempstr = parseTemplate(atempstr2, 20); ^ _P168_ThermOLED:494:33: error: invalid use of incomplete type 'struct EventStruct' if ((UserVar[event->BaseVarIndex] > atemp) && (UserVar[event->BaseVarIndex + 1] < 1)) ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:494:75: error: invalid use of incomplete type 'struct EventStruct' if ((UserVar[event->BaseVarIndex] > atemp) && (UserVar[event->BaseVarIndex + 1] < 1)) ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:498:51: error: 'Settings' was not declared in this scope } else if (((((float)atemp - (float)Settings.TaskDevicePluginConfigFloat[event->TaskIndex][0]) >= (float)UserVar[event->BaseVarIndex])) && (UserVar[event->BaseVarIndex + 1] > 0)) { ^ _P168_ThermOLED:498:93: error: invalid use of incomplete type 'struct EventStruct' } else if (((((float)atemp - (float)Settings.TaskDevicePluginConfigFloat[event->TaskIndex][0]) >= (float)UserVar[event->BaseVarIndex])) && (UserVar[event->BaseVarIndex + 1] > 0)) { ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:498:133: error: invalid use of incomplete type 'struct EventStruct' } else if (((((float)atemp - (float)Settings.TaskDevicePluginConfigFloat[event->TaskIndex][0]) >= (float)UserVar[event->BaseVarIndex])) && (UserVar[event->BaseVarIndex + 1] > 0)) { ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:498:168: error: invalid use of incomplete type 'struct EventStruct' } else if (((((float)atemp - (float)Settings.TaskDevicePluginConfigFloat[event->TaskIndex][0]) >= (float)UserVar[event->BaseVarIndex])) && (UserVar[event->BaseVarIndex + 1] > 0)) { ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:520:10: error: 'PLUGIN_WRITE' was not declared in this scope case PLUGIN_WRITE: ^ _P168_ThermOLED:522:47: error: 'parseString' was not declared in this scope String command = parseString(string, 1); ^ _P168_ThermOLED:540:27: error: invalid use of incomplete type 'struct EventStruct' SendStatus(event->Source, logstr); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:540:43: error: 'SendStatus' was not declared in this scope SendStatus(event->Source, logstr); ^ _P168_ThermOLED:555:27: error: invalid use of incomplete type 'struct EventStruct' SendStatus(event->Source, logstr); ^ _P168_ThermOLED:117:42: error: forward declaration of 'struct EventStruct' boolean Plugin_168(byte function, struct EventStruct *event, String& string) ^ _P168_ThermOLED:555:43: error: 'SendStatus' was not declared in this scope SendStatus(event->Source, logstr); ^ C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino: In function 'void P168_setContrast(uint8_t)': _P168_ThermOLED:590:61: error: no matching function for call to 'OLEDDisplay::setContrast(char&, char&, char&)' P168_display->setContrast(contrast, precharge, comdetect); ^ C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino:590:61: note: candidate is: In file included from C:\Program Files (x86)\Arduino\libraries\DFRobot_OLED12864/SSD1306Wire.h:31:0, from C:\Program Files (x86)\Arduino\libraries\DFRobot_OLED12864/SSD1306.h:30, from C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino:56: C:\Program Files (x86)\Arduino\libraries\DFRobot_OLED12864/OLEDDisplay.h:209:10: note: void OLEDDisplay::setContrast(char) void setContrast(char contrast); ^ C:\Program Files (x86)\Arduino\libraries\DFRobot_OLED12864/OLEDDisplay.h:209:10: note: candidate expects 1 argument, 3 provided C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino: In function 'void P168_display_header()': _P168_ThermOLED:596:24: error: 'wifiStatus' was not declared in this scope if (showWiFiName && (wifiStatus == ESPEASY_WIFI_SERVICES_INITIALIZED) ) { ^ _P168_ThermOLED:596:38: error: 'ESPEASY_WIFI_SERVICES_INITIALIZED' was not declared in this scope if (showWiFiName && (wifiStatus == ESPEASY_WIFI_SERVICES_INITIALIZED) ) { ^ _P168_ThermOLED:597:24: error: 'WiFi' was not declared in this scope String newString = WiFi.SSID(); ^ _P168_ThermOLED:602:47: error: 'parseTemplate' was not declared in this scope String newString = parseTemplate(dtime, 10); ^ C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino: In function 'void P168_display_time()': _P168_ThermOLED:614:45: error: 'parseTemplate' was not declared in this scope String newString = parseTemplate(dtime, 10); ^ C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino: In function 'bool P168_display_wifibars()': _P168_ThermOLED:634:26: error: 'wifiStatus' was not declared in this scope const bool connected = wifiStatus == ESPEASY_WIFI_SERVICES_INITIALIZED; ^ _P168_ThermOLED:634:40: error: 'ESPEASY_WIFI_SERVICES_INITIALIZED' was not declared in this scope const bool connected = wifiStatus == ESPEASY_WIFI_SERVICES_INITIALIZED; ^ _P168_ThermOLED:635:29: error: 'WiFi' was not declared in this scope const int nbars_filled = (WiFi.RSSI() + 100) / 8; ^ C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino: In function 'void P168_display_current_temp()': _P168_ThermOLED:678:48: error: 'parseTemplate' was not declared in this scope String atempstr = parseTemplate(tmpString, 20); ^ _P168_ThermOLED:687:36: error: 'toString' was not declared in this scope tmpString = toString(atemp, 1); ^ C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino: In function 'void P168_display_setpoint_temp(byte)': _P168_ThermOLED:696:7: error: 'UserVar' was not declared in this scope if (UserVar[Plugin_168_varindex + 2] == 1) { ^ _P168_ThermOLED:702:43: error: 'toString' was not declared in this scope String tmpString = toString(stemp, 1); ^ C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino: In function 'void P168_display_timeout()': _P168_ThermOLED:713:7: error: 'UserVar' was not declared in this scope if (UserVar[Plugin_168_varindex + 2] == 2) { ^ _P168_ThermOLED:716:58: error: 'toString' was not declared in this scope String thour = toString(((int)(timeinmin / 60) ), 0); ^ C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino: In function 'void P168_display_mode()': _P168_ThermOLED:735:31: error: 'UserVar' was not declared in this scope if (Plugin_168_prev_mode != UserVar[Plugin_168_varindex + 2]) { ^ C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino: In function 'void P168_display_heat()': _P168_ThermOLED:766:34: error: 'UserVar' was not declared in this scope if (Plugin_168_prev_heating != UserVar[Plugin_168_varindex + 1]) { ^ C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino: In function 'void P168_display_page()': _P168_ThermOLED:793:44: error: 'parseTemplate' was not declared in this scope String newString = parseTemplate(tstr, 10); ^ C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino: In function 'void P168_setSetpoint(String)': _P168_ThermOLED:812:24: error: 'UserVar' was not declared in this scope float stemp = (round(UserVar[Plugin_168_varindex] * 10)) / 10.0; ^ C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino: In function 'void P168_setHeatRelay(byte)': _P168_ThermOLED:825:22: error: 'Settings' was not declared in this scope uint8_t relaypin = Settings.TaskDevicePluginConfig[Plugin_168_taskindex][4]; ^ _P168_ThermOLED:830:10: error: 'LOG_LEVEL_INFO' was not declared in this scope addLog(LOG_LEVEL_INFO, logstr); ^ _P168_ThermOLED:830:32: error: 'addLog' was not declared in this scope addLog(LOG_LEVEL_INFO, logstr); ^ C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino: In function 'void P168_setHeater(String)': _P168_ThermOLED:839:5: error: 'UserVar' was not declared in this scope UserVar[Plugin_168_varindex + 1] = 1; ^ _P168_ThermOLED:842:5: error: 'UserVar' was not declared in this scope UserVar[Plugin_168_varindex + 1] = 0; ^ _P168_ThermOLED:844:14: error: 'UserVar' was not declared in this scope } else if (UserVar[Plugin_168_varindex + 1] == 0) { ^ C:\Users\Philippe\Downloads\ESPEasyPluginPlayground-master\ESPEasyPluginPlayground-master\_P168_ThermOLED\_P168_ThermOLED.ino: In function 'void P168_setMode(String, String)': _P168_ThermOLED:856:5: error: 'UserVar' was not declared in this scope UserVar[Plugin_168_varindex + 2] = 0; ^ _P168_ThermOLED:862:5: error: 'UserVar' was not declared in this scope UserVar[Plugin_168_varindex + 2] = 1; ^ _P168_ThermOLED:865:5: error: 'UserVar' was not declared in this scope UserVar[Plugin_168_varindex + 2] = 2; ^ _P168_ThermOLED:871:5: error: 'UserVar' was not declared in this scope UserVar[Plugin_168_varindex + 2] = 0; ^ Mehrere Bibliotheken wurden für "SPI.h" gefunden Benutzt: C:\Users\Philippe\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\libraries\SPI Mehrere Bibliotheken wurden für "Wire.h" gefunden Benutzt: C:\Users\Philippe\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\libraries\Wire Mehrere Bibliotheken wurden für "SSD1306.h" gefunden Benutzt: C:\Program exit status 1 'OLEDDISPLAY_GEOMETRY' has not been declared Dieser Bericht wäre detaillierter, wenn die Option "Ausführliche Ausgabe während der Kompilierung" in Datei -> Voreinstellungen aktiviert wäre.