[x] You're using a stable release, not the Git development version which is, by definition, unstable
[x] You've read the documentation for your release, which is in the docs/ folder of the .zip of the release you're using, especially the Getting started and Troubleshooting pages, which contain respectively the minimum required version of the dependencies, and some answsers to the most common problems
[x] You're using the examples bundled in your release, which are in the examples/ folder of the .zip of the release you're using. Examples in the latest git revision might not be backward-compatible with your release
The barebones code won't compile for me. I've installed the latest code from the ESP8266 board library via Git (not the releases page). Here's the board I'm trying to compile for:
.
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp: In static member function 'static HomieInternals::ConfigValidationResult HomieInternals::Helpers::_validateConfigWifi(const ArduinoJson::JsonObject&)':
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:92:88: error: request for member 'is' in '*(((const char*)"ssid") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"wifi")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (!object["wifi"].as<JsonObject&>().containsKey("ssid") || !object["wifi"]["ssid"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:92:91: error: expected primary-expression before 'const'
if (!object["wifi"].as<JsonObject&>().containsKey("ssid") || !object["wifi"]["ssid"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:92:91: error: expected ')' before 'const'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:96:35: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
if (strlen(object["wifi"]["ssid"]) + 1 > MAX_WIFI_SSID_LENGTH) {
^
In file included from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/stdlib.h:11:0,
from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Arduino.h:27,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.hpp:3,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:1:
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/string.h:33:16: error: initializing argument 1 of 'size_t strlen(const char*)' [-fpermissive]
size_t _EXFUN(strlen,(const char *));
^
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/_ansi.h:65:30: note: in definition of macro '_EXFUN'
#define _EXFUN(name, proto) name proto
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:100:96: error: request for member 'is' in '*(((const char*)"password") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"wifi")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (!object["wifi"].as<JsonObject&>().containsKey("password") || !object["wifi"]["password"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:100:99: error: expected primary-expression before 'const'
if (!object["wifi"].as<JsonObject&>().containsKey("password") || !object["wifi"]["password"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:100:99: error: expected ')' before 'const'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:104:39: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
if (strlen(object["wifi"]["password"]) + 1 > MAX_WIFI_PASSWORD_LENGTH) {
^
In file included from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/stdlib.h:11:0,
from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Arduino.h:27,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.hpp:3,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:1:
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/string.h:33:16: error: initializing argument 1 of 'size_t strlen(const char*)' [-fpermissive]
size_t _EXFUN(strlen,(const char *));
^
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/_ansi.h:65:30: note: in definition of macro '_EXFUN'
#define _EXFUN(name, proto) name proto
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:109:47: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
const char* wifiSsid = object["wifi"]["ssid"];
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp: In static member function 'static HomieInternals::ConfigValidationResult HomieInternals::Helpers::_validateConfigMqtt(const ArduinoJson::JsonObject&)':
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:130:33: error: request for member 'is' in '*(((const char*)"mdns") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"mqtt")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (!object["mqtt"]["mdns"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:130:36: error: expected primary-expression before 'const'
if (!object["mqtt"]["mdns"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:130:36: error: expected ')' before 'const'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:134:37: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
if (strlen(object["mqtt"]["mdns"]) + 1 > MAX_HOSTNAME_LENGTH) {
^
In file included from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/stdlib.h:11:0,
from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Arduino.h:27,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.hpp:3,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:1:
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/string.h:33:16: error: initializing argument 1 of 'size_t strlen(const char*)' [-fpermissive]
size_t _EXFUN(strlen,(const char *));
^
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/_ansi.h:65:30: note: in definition of macro '_EXFUN'
#define _EXFUN(name, proto) name proto
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:140:90: error: request for member 'is' in '*(((const char*)"host") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"mqtt")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (!object["mqtt"].as<JsonObject&>().containsKey("host") || !object["mqtt"]["host"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:140:93: error: expected primary-expression before 'const'
if (!object["mqtt"].as<JsonObject&>().containsKey("host") || !object["mqtt"]["host"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:140:93: error: expected ')' before 'const'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:144:37: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
if (strlen(object["mqtt"]["host"]) + 1 > MAX_HOSTNAME_LENGTH) {
^
In file included from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/stdlib.h:11:0,
from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Arduino.h:27,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.hpp:3,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:1:
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/string.h:33:16: error: initializing argument 1 of 'size_t strlen(const char*)' [-fpermissive]
size_t _EXFUN(strlen,(const char *));
^
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/_ansi.h:65:30: note: in definition of macro '_EXFUN'
#define _EXFUN(name, proto) name proto
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:148:89: error: request for member 'is' in '*(((const char*)"port") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"mqtt")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (object["mqtt"].as<JsonObject&>().containsKey("port") && !object["mqtt"]["port"].is<unsigned int>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:148:92: error: expected primary-expression before 'unsigned'
if (object["mqtt"].as<JsonObject&>().containsKey("port") && !object["mqtt"]["port"].is<unsigned int>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:148:92: error: expected ')' before 'unsigned'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:154:39: error: request for member 'is' in '*(((const char*)"base_topic") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"mqtt")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (!object["mqtt"]["base_topic"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:154:42: error: expected primary-expression before 'const'
if (!object["mqtt"]["base_topic"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:154:42: error: expected ')' before 'const'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:159:43: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
if (strlen(object["mqtt"]["base_topic"]) + 1 > MAX_MQTT_BASE_TOPIC_LENGTH) {
^
In file included from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/stdlib.h:11:0,
from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Arduino.h:27,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.hpp:3,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:1:
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/string.h:33:16: error: initializing argument 1 of 'size_t strlen(const char*)' [-fpermissive]
size_t _EXFUN(strlen,(const char *));
^
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/_ansi.h:65:30: note: in definition of macro '_EXFUN'
#define _EXFUN(name, proto) name proto
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:165:33: error: request for member 'is' in '*(((const char*)"auth") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"mqtt")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (!object["mqtt"]["auth"].is<bool>()) {
^
In file included from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Arduino.h:29:0,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.hpp:3,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:1:
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:165:36: error: expected primary-expression before 'bool'
if (!object["mqtt"]["auth"].is<bool>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:165:36: error: expected ')' before 'bool'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:171:100: error: request for member 'is' in '*(((const char*)"username") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"mqtt")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (!object["mqtt"].as<JsonObject&>().containsKey("username") || !object["mqtt"]["username"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:171:103: error: expected primary-expression before 'const'
if (!object["mqtt"].as<JsonObject&>().containsKey("username") || !object["mqtt"]["username"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:171:103: error: expected ')' before 'const'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:175:43: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
if (strlen(object["mqtt"]["username"]) + 1 > MAX_MQTT_CREDS_LENGTH) {
^
In file included from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/stdlib.h:11:0,
from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Arduino.h:27,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.hpp:3,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:1:
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/string.h:33:16: error: initializing argument 1 of 'size_t strlen(const char*)' [-fpermissive]
size_t _EXFUN(strlen,(const char *));
^
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/_ansi.h:65:30: note: in definition of macro '_EXFUN'
#define _EXFUN(name, proto) name proto
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:179:100: error: request for member 'is' in '*(((const char*)"password") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"mqtt")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (!object["mqtt"].as<JsonObject&>().containsKey("password") || !object["mqtt"]["password"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:179:103: error: expected primary-expression before 'const'
if (!object["mqtt"].as<JsonObject&>().containsKey("password") || !object["mqtt"]["password"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:179:103: error: expected ')' before 'const'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:183:43: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
if (strlen(object["mqtt"]["password"]) + 1 > MAX_MQTT_CREDS_LENGTH) {
^
In file included from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/stdlib.h:11:0,
from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Arduino.h:27,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.hpp:3,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:1:
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/string.h:33:16: error: initializing argument 1 of 'size_t strlen(const char*)' [-fpermissive]
size_t _EXFUN(strlen,(const char *));
^
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/_ansi.h:65:30: note: in definition of macro '_EXFUN'
#define _EXFUN(name, proto) name proto
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:190:32: error: request for member 'is' in '*(((const char*)"ssl") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"mqtt")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (!object["mqtt"]["ssl"].is<bool>()) {
^
In file included from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Arduino.h:29:0,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.hpp:3,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:1:
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:190:35: error: expected primary-expression before 'bool'
if (!object["mqtt"]["ssl"].is<bool>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:190:35: error: expected ')' before 'bool'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:196:105: error: request for member 'is' in '*(((const char*)"fingerprint") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"mqtt")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (object["mqtt"].as<JsonObject&>().containsKey("fingerprint") && !object["mqtt"]["fingerprint"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:196:108: error: expected primary-expression before 'const'
if (object["mqtt"].as<JsonObject&>().containsKey("fingerprint") && !object["mqtt"]["fingerprint"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:196:108: error: expected ')' before 'const'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:204:52: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
const char* mdnsService = object["mqtt"]["mdns"];
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:210:45: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
const char* host = object["mqtt"]["host"];
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp: In static member function 'static HomieInternals::ConfigValidationResult HomieInternals::Helpers::_validateConfigOta(const ArduinoJson::JsonObject&)':
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:230:92: error: request for member 'is' in '*(((const char*)"enabled") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"ota")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (!object["ota"].as<JsonObject&>().containsKey("enabled") || !object["ota"]["enabled"].is<bool>()) {
^
In file included from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Arduino.h:29:0,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.hpp:3,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:1:
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:230:95: error: expected primary-expression before 'bool'
if (!object["ota"].as<JsonObject&>().containsKey("enabled") || !object["ota"]["enabled"].is<bool>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:230:95: error: expected ')' before 'bool'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:236:34: error: request for member 'is' in '*(((const char*)"mdns") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"ota")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (!object["ota"]["mdns"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:236:37: error: expected primary-expression before 'const'
if (!object["ota"]["mdns"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:236:37: error: expected ')' before 'const'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:240:38: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
if (strlen(object["ota"]["mdns"]) + 1 > MAX_HOSTNAME_LENGTH) {
^
In file included from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/stdlib.h:11:0,
from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Arduino.h:27,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.hpp:3,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:1:
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/string.h:33:16: error: initializing argument 1 of 'size_t strlen(const char*)' [-fpermissive]
size_t _EXFUN(strlen,(const char *));
^
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/_ansi.h:65:30: note: in definition of macro '_EXFUN'
#define _EXFUN(name, proto) name proto
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:246:36: error: request for member 'is' in '*(((const char*)"host") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"ota")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (!object["ota"]["host"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:246:39: error: expected primary-expression before 'const'
if (!object["ota"]["host"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:246:39: error: expected ')' before 'const'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:250:40: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
if (strlen(object["ota"]["host"]) + 1 > MAX_HOSTNAME_LENGTH) {
^
In file included from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/stdlib.h:11:0,
from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Arduino.h:27,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.hpp:3,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:1:
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/string.h:33:16: error: initializing argument 1 of 'size_t strlen(const char*)' [-fpermissive]
size_t _EXFUN(strlen,(const char *));
^
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/_ansi.h:65:30: note: in definition of macro '_EXFUN'
#define _EXFUN(name, proto) name proto
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:255:89: error: request for member 'is' in '*(((const char*)"port") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"ota")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (object["ota"].as<JsonObject&>().containsKey("port") && !object["ota"]["port"].is<unsigned int>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:255:92: error: expected primary-expression before 'unsigned'
if (object["ota"].as<JsonObject&>().containsKey("port") && !object["ota"]["port"].is<unsigned int>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:255:92: error: expected ')' before 'unsigned'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:261:34: error: request for member 'is' in '*(((const char*)"path") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"ota")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (!object["ota"]["path"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:261:37: error: expected primary-expression before 'const'
if (!object["ota"]["path"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:261:37: error: expected ')' before 'const'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:265:38: error: invalid conversion from 'char' to 'const char*' [-fpermissive]
if (strlen(object["ota"]["path"]) + 1 > MAX_OTA_PATH_LENGTH) {
^
In file included from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/stdlib.h:11:0,
from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Arduino.h:27,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.hpp:3,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:1:
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/string.h:33:16: error: initializing argument 1 of 'size_t strlen(const char*)' [-fpermissive]
size_t _EXFUN(strlen,(const char *));
^
/Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/tools/sdk/libc/xtensa-lx106-elf/include/_ansi.h:65:30: note: in definition of macro '_EXFUN'
#define _EXFUN(name, proto) name proto
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:271:33: error: request for member 'is' in '*(((const char*)"ssl") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"ota")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (!object["ota"]["ssl"].is<bool>()) {
^
In file included from /Users/maxisom/Documents/Arduino/hardware/esp8266com/esp8266/cores/esp8266/Arduino.h:29:0,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.hpp:3,
from /Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:1:
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:271:36: error: expected primary-expression before 'bool'
if (!object["ota"]["ssl"].is<bool>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:271:36: error: expected ')' before 'bool'
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:277:105: error: request for member 'is' in '*(((const char*)"fingerprint") + ((sizetype)(&(& object)->ArduinoJson::JsonObject::operator[](((const char*)"ota")))->ArduinoJson::JsonVariant::operator int()))', which is of non-class type 'const char'
if (object["ota"].as<JsonObject&>().containsKey("fingerprint") && !object["ota"]["fingerprint"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:277:108: error: expected primary-expression before 'const'
if (object["ota"].as<JsonObject&>().containsKey("fingerprint") && !object["ota"]["fingerprint"].is<const char*>()) {
^
/Users/maxisom/Documents/Arduino/libraries/homie/src/Homie/Helpers.cpp:277:108: error: expected ')' before 'const'
exit status 1
Error compiling for board NodeMCU 0.9 (ESP-12 Module).
It's probably something obvious, but I can't figure out a solution. PlatformIO also seemed to be giving similar error messages.
Before submitting your issue, make sure:
docs/
folder of the.zip
of the release you're using, especially the Getting started and Troubleshooting pages, which contain respectively the minimum required version of the dependencies, and some answsers to the most common problemsexamples/
folder of the.zip
of the release you're using. Examples in the latest git revision might not be backward-compatible with your releaseThe barebones code won't compile for me. I've installed the latest code from the ESP8266 board library via Git (not the releases page). Here's the board I'm trying to compile for: .
Here's the code:
and here's the error messages:
It's probably something obvious, but I can't figure out a solution. PlatformIO also seemed to be giving similar error messages.