homieiot / homie-esp8266

💡 ESP8266 framework for Homie, a lightweight MQTT convention for the IoT
http://homieiot.github.io/homie-esp8266
MIT License
1.36k stars 308 forks source link

Type errors #276

Closed codetheweb closed 7 years ago

codetheweb commented 7 years ago

Before submitting your issue, make sure:

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: screen shot 2017-01-03 at 20 32 05.

Here's the code:

#include <Homie.h>

void setup() {
  Homie.setup();
}

void loop() {
  Homie.loop();
}

and here's the error messages:

/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.

marvinroger commented 7 years ago

What homie-esp8266 version are you using ? The v1.x or the development 2.0 version?