Can't connect enc28j60 ethernet shield with MQTT


#1

I everyone,

It’s my second Arduino project, the first one working with Cayenne, I use it to control two relays for my heater.
I’m using a Arduino Nano with ENC28J60 ethernet shield.

It worked pretty well for few weeks before Cayenne asked me to change to MQTT. I tried to use their generated sketch (as followed) but in the Terminal I have this answer:

[300] IP: 0.0.0.0
[300] Connecting to mqtt.mydevices.com:1883

I read many times on that the best option with this ethernet shield is to use uipethernet library but I have few errors and I don’t know how to correct it.

Does someone had the same issue and has fixed it ?
Any help will be appreciated :wink:

Thanks
Aymeric

//#define CAYENNE_DEBUG       // Uncomment to show debug messages
#define CAYENNE_PRINT Serial  // Comment this out to disable prints and save space
#include <CayenneMQTTEthernet.h>
//#include <CayenneMQTTEthernetW5500.h> // Uncomment this and comment out CayenneMQTTEthernet.h to use an Ethernet 2 shield or other Ethernet W5500 shield.
                                        // You will need the Ethernet2 library installed. See the ArduinoEthernetW5500 example sketch for more info.
//#include <CayenneMQTTEthernetW5200.h> // Uncomment this and comment out CayenneMQTTEthernet.h to use an Ethernet W5200 shield.
                                        // You will need the EthernetW5200 library installed. See the ArduinoEthernetW5200 example sketch for more info.

// Cayenne authentication info. This should be obtained from the Cayenne Dashboard.
char username[] = "xxxx";
char password[] = "xxxx";
char clientID[] = "xxxx";

// Mac address should be different for each device in your LAN
byte arduino_mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
IPAddress arduino_ip(10, 0, 0, 20);
IPAddress dns_ip(8, 8, 8, 8);
IPAddress gateway_ip(10, 0, 0, 1);
IPAddress subnet_mask(255, 255, 255, 0);

void setup() {
	Serial.begin(9600);
	Cayenne.begin(username, password, clientID, arduino_ip, dns_ip, gateway_ip, subnet_mask, arduino_mac);
}

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

// Default function for sending sensor data at intervals to Cayenne.
// You can also use functions for specific channels, e.g CAYENNE_OUT(1) for sending channel 1 data.
CAYENNE_OUT_DEFAULT()
{
	// Write data to Cayenne here. This example just sends the current uptime in milliseconds on virtual channel 0.
	Cayenne.virtualWrite(0, millis());
	// Some examples of other functions you can use to send data.
	//Cayenne.celsiusWrite(1, 22.0);
	//Cayenne.luxWrite(2, 700);
	//Cayenne.virtualWrite(3, 50, TYPE_PROXIMITY, UNIT_CENTIMETER);
}

// Default function for processing actuator commands from the Cayenne Dashboard.
// You can also use functions for specific channels, e.g CAYENNE_IN(1) for channel 1 commands.
CAYENNE_IN_DEFAULT()
{
	CAYENNE_LOG("Channel %u, value %s", request.channel, getValue.asString());
	//Process message here. If there is an error set an error message using getValue.setError(), e.g getValue.setError("Error message");
}

#2

yes have a look at this post Is ENC28J60 supported and try adding the uip library. i dont have this module to test. maybe @jcruz or @bestes can help you out with this.


#3

Thanks for answering quickly !

I already read this post and it seems that I have the same problem than the last post from
"yilmazyurdakul".

Before Cayenne changed to MQTT I used this sketch (power meter + relay) and it worked well.

//Cayenne
#include <UIPEthernet.h>
#include <BlynkSimpleUIPEthernet.h>
#include <CayenneDefines.h>
#include <CayenneEthernetClient.h>
#include <TimerOne.h>  
#include <SoftwareSerial.h>

#define CAYENNE_PRINT Serial  // Comment this out to disable prints and save space
#define VIRTUAL_PIN 1
#define VIRTUAL_PIN 0
#define RELAY_DIGITAL_PIN 5
#define RELAY_DIGITAL_PIN 6

// Cayenne authentication token. This should be obtained from the Cayenne Dashboard.
char token[] = "xxxx";

//Number of pulses, used to measure energy.
long pulseCount = 0;   
//Used to measure power.
unsigned long pulseTime,lastTime, interval;

//power and energy
double power, elapsedkWh;

//Number of pulses per wh - found or set on the meter.
int ppwh = 1; //1000 pulses/kwh = 1 pulse per wh
const int ledPin = 13;
const int ldrPin = 3;

void setup()
{
    Serial.begin(115200);

    pinMode(ledPin, OUTPUT);
    pinMode(ldrPin, INPUT);
    
// KWH interrupt attached to IRQ 1 = pin3
    attachInterrupt(1, onPulse, FALLING);
    Cayenne.begin(token);
}
CAYENNE_IN(VIRTUAL_PIN)
  {
    
    // get value sent from dashboard
    int currentValue = getValue.asInt(); // 0 to 1
  
    // assuming you wire your relay as normally open
    if (currentValue == 0) {
      digitalWrite(RELAY_DIGITAL_PIN, HIGH);
    } else {
      digitalWrite(RELAY_DIGITAL_PIN, LOW);
    }
  }
  
void loop()
{
    Cayenne.run();
  }
    CAYENNE_OUT(V0)
  {
    Cayenne.virtualWrite(V0, power);
}
    CAYENNE_OUT(V1)
  {
    Cayenne.virtualWrite(V1, elapsedkWh);
}
// The interrupt routine
void onPulse()
{

//used to measure time between pulses.
lastTime = pulseTime;
pulseTime = micros();
interval = (pulseTime - lastTime);

    if (interval<20000) { // Sometimes we get interrupt on RISING
            return;
}
            //Calculate power
power = (3600000000.0 / (pulseTime - lastTime))/ppwh;

//pulseCounter
pulseCount++;

//Find kwh elapsed
elapsedkWh = (1.0*pulseCount/(ppwh*1000)); //multiply by 1000 to convert pulses per wh to kwh

}

#4

Hi @aymericrag,

I was going to say, go to the old sketch, and modify it for MQTT.

Will need to take a closer look. Don’t know if I actually have one of these.

Cheers,

Craig


#5

Thanks @kreggly,

I tried few things but none worked :disappointed_relieved:

I don’t know how to do it properly, can you help me with that ?

Cheers,

Aymeric


#6

Hi @aymericrag,

Try the following:

  1. Remove old Cayenne libraries from libraries directory (make a backup if you want).

  2. Install the new one - https://github.com/myDevicesIoT/Cayenne-MQTT-Arduino

  3. Change #include <CayenneEthernetClient.h> to #include <CayenneMQTTEthernetClient.h>

  4. Recompile.

Let us know what happens.

Cheers,

Craig


#7

Hi @kreggly,

I tried it but unfortunately it doesn’t work, still have a lot of error message :

Arduino: 1.8.5 (Mac OS X), Board: "Arduino/Genuino Uno"

WARNING: Category '' in library UIPEthernet is not valid. Setting to 'Uncategorized'
Build options changed, rebuilding all
In file included from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:23:0,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h:32,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneHandlers.h:29,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoDefines.h:128,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:21,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTEthernetClient.h:21,
             from /Users/Aymeric/Documents/Arduino/Power-meter_-_Cayenne-relay-power_MQTT3/Power-meter_-_Cayenne-relay-power_MQTT3.ino:5:
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneUtils.h:61:109: error: 'CayenneTopic' has not been declared
 DLLExport int CayenneBuildTopic(char* topicName, size_t length, const char* username, const char* clientID, CayenneTopic topic, unsigned int channel);
                                                                                                         ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneUtils.h:94:33: error: 'CayenneTopic' was not declared in this scope
 DLLExport int CayenneParseTopic(CayenneTopic* topic, unsigned int* channel, const char** clientID, const char* username, char* topicName, unsigned int length);
                             ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneUtils.h:94:47: error: 'topic' was not declared in this scope
 DLLExport int CayenneParseTopic(CayenneTopic* topic, unsigned int* channel, const char** clientID, const char* username, char* topicName, unsigned int length);
                                           ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneUtils.h:94:54: error: expected primary-expression before 'unsigned'
 DLLExport int CayenneParseTopic(CayenneTopic* topic, unsigned int* channel, const char** clientID, const char* username, char* topicName, unsigned int length);
                                                  ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneUtils.h:94:77: error: expected primary-expression before 'const'
 DLLExport int CayenneParseTopic(CayenneTopic* topic, unsigned int* channel, const char** clientID, const char* username, char* topicName, unsigned int length);
                                                                         ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneUtils.h:94:100: error: expected primary-expression before 'const'
 DLLExport int CayenneParseTopic(CayenneTopic* topic, unsigned int* channel, const char** clientID, const char* username, char* topicName, unsigned int length);
                                                                                                ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneUtils.h:94:122: error: expected primary-expression before 'char'
 DLLExport int CayenneParseTopic(CayenneTopic* topic, unsigned int* channel, const char** clientID, const char* username, char* topicName, unsigned int length);
                                                                                                                      ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneUtils.h:94:139: error: expected primary-expression before 'unsigned'
 DLLExport int CayenneParseTopic(CayenneTopic* topic, unsigned int* channel, const char** clientID, const char* username, char* topicName, unsigned int length);
                                                                                                                                       ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneUtils.h:106:117: error: 'CayenneTopic' has not been declared
 DLLExport int CayenneParsePayload(CayenneValuePair* values, size_t* valuesSize, const char** type, const char** id, CayenneTopic topic, char* payload);
                                                                                                                 ^
In file included from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:24:0,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h:32,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneHandlers.h:29,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoDefines.h:128,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:21,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTEthernetClient.h:21,
             from /Users/Aymeric/Documents/Arduino/Power-meter_-_Cayenne-relay-power_MQTT3/Power-meter_-_Cayenne-relay-power_MQTT3.ino:5:
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneDataArray.h:35:29: error: 'CAYENNE_MAX_PAYLOAD_SIZE' was not declared in this scope
  template<int BUFFER_SIZE = CAYENNE_MAX_PAYLOAD_SIZE, int MAX_VALUES = CAYENNE_MAX_MESSAGE_VALUES>
                         ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneDataArray.h:35:72: error: 'CAYENNE_MAX_MESSAGE_VALUES' was not declared in this scope
  template<int BUFFER_SIZE = CAYENNE_MAX_PAYLOAD_SIZE, int MAX_VALUES = CAYENNE_MAX_MESSAGE_VALUES>
                                                                    ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneDataArray.h: In member function 'void CayenneMQTT::DataArray<BUFFER_SIZE, MAX_VALUES>::clear()':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneDataArray.h:50:24: error: 'CAYENNE_MAX_MESSAGE_VALUES' was not declared in this scope
for (int i = 0; i < CAYENNE_MAX_MESSAGE_VALUES; ++i) {
                    ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneDataArray.h: In member function 'void CayenneMQTT::DataArray<BUFFER_SIZE, MAX_VALUES>::add(const char*, const char*, bool, bool)':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneDataArray.h:66:23: error: 'CAYENNE_MAX_MESSAGE_VALUES' was not declared in this scope
if (_valueCount >= CAYENNE_MAX_MESSAGE_VALUES)
                   ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneDataArray.h: At global scope:
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneDataArray.h:340:32: error: template argument 1 is invalid
 typedef CayenneMQTT::DataArray<> CayenneDataArray;
                            ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneDataArray.h:340:32: error: template argument 2 is invalid
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/../CayenneUtils/CayenneDataArray.h:340:50: error: invalid type in declaration before ';' token
 typedef CayenneMQTT::DataArray<> CayenneDataArray;
                                              ^
In file included from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h:32:0,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneHandlers.h:29,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoDefines.h:128,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:21,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTEthernetClient.h:21,
             from /Users/Aymeric/Documents/Arduino/Power-meter_-_Cayenne-relay-power_MQTT3/Power-meter_-_Cayenne-relay-power_MQTT3.ino:5:
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:47:3: error: 'CayenneTopic' does not name a type
   CayenneTopic topic; /**< The topic the message was received on. */
   ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:51:27: error: 'CAYENNE_MAX_MESSAGE_VALUES' was not declared in this scope
   CayenneValuePair values[CAYENNE_MAX_MESSAGE_VALUES]; /**< The unit/value data pairs in the message. The units and values can be NULL. */
                       ^
In file included from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h:32:0,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneHandlers.h:29,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoDefines.h:128,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:21,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTEthernetClient.h:21,
             from /Users/Aymeric/Documents/Arduino/Power-meter_-_Cayenne-relay-power_MQTT3/Power-meter_-_Cayenne-relay-power_MQTT3.ino:5:
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:66:25: error: 'CAYENNE_MAX_MESSAGE_SIZE' was not declared in this scope
   unsigned char sendbuf[CAYENNE_MAX_MESSAGE_SIZE + 1]; /**< Buffer used for sending data. */
                     ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:67:25: error: 'CAYENNE_MAX_MESSAGE_SIZE' was not declared in this scope
   unsigned char readbuf[CAYENNE_MAX_MESSAGE_SIZE + 1]; /**< Buffer used for receiving data. */
                     ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:75:4: error: 'CayenneTopic' does not name a type
CayenneTopic topic; /**< Topic of the message to handle. */
^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:78:21: error: 'CAYENNE_MAX_MESSAGE_HANDLERS' was not declared in this scope
   } messageHandlers[CAYENNE_MAX_MESSAGE_HANDLERS];  /**< Custom message handler array. */
                 ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:112:88: error: 'CayenneTopic' has not been declared
  DLLExport int CayenneMQTTPublishData(CayenneMQTTClient* client, const char* clientID, CayenneTopic topic, unsigned int channel, const char* type, const char* unit, const char* value);
                                                                                    ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:125:91: error: 'CayenneTopic' has not been declared
  DLLExport int CayenneMQTTPublishDataInt(CayenneMQTTClient* client, const char* clientID, CayenneTopic topic, unsigned int channel, const char* type, const char* unit, int value);
                                                                                       ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:138:92: error: 'CayenneTopic' has not been declared
  DLLExport int CayenneMQTTPublishDataUInt(CayenneMQTTClient* client, const char* clientID, CayenneTopic topic, unsigned int channel, const char* type, const char* unit, unsigned int value);
                                                                                        ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:151:92: error: 'CayenneTopic' has not been declared
  DLLExport int CayenneMQTTPublishDataLong(CayenneMQTTClient* client, const char* clientID, CayenneTopic topic, unsigned int channel, const char* type, const char* unit, long value);
                                                                                        ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:164:93: error: 'CayenneTopic' has not been declared
  DLLExport int CayenneMQTTPublishDataULong(CayenneMQTTClient* client, const char* clientID, CayenneTopic topic, unsigned int channel, const char* type, const char* unit, unsigned long value);
                                                                                         ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:177:94: error: 'CayenneTopic' has not been declared
  DLLExport int CayenneMQTTPublishDataDouble(CayenneMQTTClient* client, const char* clientID, CayenneTopic topic, unsigned int channel, const char* type, const char* unit, double value);
                                                                                          ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:190:93: error: 'CayenneTopic' has not been declared
  DLLExport int CayenneMQTTPublishDataFloat(CayenneMQTTClient* client, const char* clientID, CayenneTopic topic, unsigned int channel, const char* type, const char* unit, float value);
                                                                                         ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:203:93: error: 'CayenneTopic' has not been declared
  DLLExport int CayenneMQTTPublishDataArray(CayenneMQTTClient* client, const char* clientID, CayenneTopic topic, unsigned int channel, const char* type, const CayenneValuePair* values, size_t valueCount);
                                                                                         ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:224:86: error: 'CayenneTopic' has not been declared
  DLLExport int CayenneMQTTSubscribe(CayenneMQTTClient* client, const char* clientID, CayenneTopic topic, unsigned int channel, CayenneMessageHandler handler);
                                                                                  ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTClient/CayenneMQTTClient.h:234:88: error: 'CayenneTopic' has not been declared
  DLLExport int CayenneMQTTUnsubscribe(CayenneMQTTClient* client, const char* clientID, CayenneTopic topic, unsigned int channel);
                                                                                    ^
In file included from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneHandlers.h:29:0,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoDefines.h:128,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:21,
             from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTEthernetClient.h:21,
             from /Users/Aymeric/Documents/Arduino/Power-meter_-_Cayenne-relay-power_MQTT3/Power-meter_-_Cayenne-relay-power_MQTT3.ino:5:
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h: In member function 'const char* CayenneMessage::asStr(size_t) const':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h:41:60: error: 'CayenneMessageData' has no member named 'values'
  const char* asStr(size_t index = 0) const { return _data->values[index].value; }
                                                        ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h: In member function 'const char* CayenneMessage::asString(size_t) const':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h:42:63: error: 'CayenneMessageData' has no member named 'values'
  const char* asString(size_t index = 0) const { return _data->values[index].value; }
                                                           ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h: In member function 'int CayenneMessage::asInt(size_t) const':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h:43:65: error: 'CayenneMessageData' has no member named 'values'
  int         asInt(size_t index = 0) const { return atoi(_data->values[index].value); }
                                                             ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h: In member function 'long int CayenneMessage::asLong(size_t) const':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h:44:66: error: 'CayenneMessageData' has no member named 'values'
  long        asLong(size_t index = 0) const { return atol(_data->values[index].value); }
                                                              ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h: In member function 'double CayenneMessage::asDouble(size_t) const':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h:46:68: error: 'CayenneMessageData' has no member named 'values'
  double      asDouble(size_t index = 0) const { return atof(_data->values[index].value); }
                                                                ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h: In member function 'void* CayenneMessage::getBuffer(size_t) const':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h:50:66: error: 'CayenneMessageData' has no member named 'values'
  void*  getBuffer(size_t index = 0) const { return (void*)_data->values[index].value; }
                                                              ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h: In member function 'size_t CayenneMessage::getLength(size_t) const':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h:51:66: error: 'CayenneMessageData' has no member named 'values'
  size_t getLength(size_t index = 0) const { return strlen(_data->values[index].value); }
                                                              ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h: In member function 'const char* CayenneMessage::getUnit(size_t) const':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMessage.h:52:62: error: 'CayenneMessageData' has no member named 'values'
  const char* getUnit(size_t index = 0) const { return _data->values[index].unit; }
                                                          ^
In file included from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTEthernetClient.h:21:0,
             from /Users/Aymeric/Documents/Arduino/Power-meter_-_Cayenne-relay-power_MQTT3/Power-meter_-_Cayenne-relay-power_MQTT3.ino:5:
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h: At global scope:
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:215:27: error: 'CayenneTopic' has not been declared
  static void publishState(CayenneTopic topic, unsigned int channel, const T& value)
                       ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:350:26: error: 'CayenneTopic' has not been declared
  static void publishData(CayenneTopic topic, unsigned int channel, const T& data, const char* key = NULL, const char* subkey = NULL) {
                      ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:364:26: error: 'CayenneTopic' has not been declared
  static void publishData(CayenneTopic topic, unsigned int channel, const CayenneValuePair values[], size_t valueCount, const char* key) {
                      ^
In file included from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTEthernetClient.h:21:0,
             from /Users/Aymeric/Documents/Arduino/Power-meter_-_Cayenne-relay-power_MQTT3/Power-meter_-_Cayenne-relay-power_MQTT3.ino:5:
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h: In member function 'void CayenneArduinoMQTTClient::connect()':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:72:44: error: 'COMMAND_TOPIC' was not declared in this scope
   CayenneMQTTSubscribe(&_mqttClient, NULL, COMMAND_TOPIC, CAYENNE_ALL_CHANNELS, NULL);
                                        ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:72:59: error: 'CAYENNE_ALL_CHANNELS' was not declared in this scope
   CayenneMQTTSubscribe(&_mqttClient, NULL, COMMAND_TOPIC, CAYENNE_ALL_CHANNELS, NULL);
                                                       ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h: In member function 'void CayenneArduinoMQTTClient::publishDeviceInfo()':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:128:15: error: 'SYS_MODEL_TOPIC' was not declared in this scope
   publishData(SYS_MODEL_TOPIC, CAYENNE_NO_CHANNEL, CAYENNE_FLASH(INFO_DEVICE));
           ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:128:32: error: 'CAYENNE_NO_CHANNEL' was not declared in this scope
   publishData(SYS_MODEL_TOPIC, CAYENNE_NO_CHANNEL, CAYENNE_FLASH(INFO_DEVICE));
                            ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:128:77: error: 'CAYENNE_FLASH' was not declared in this scope
   publishData(SYS_MODEL_TOPIC, CAYENNE_NO_CHANNEL, CAYENNE_FLASH(INFO_DEVICE));
                                                                         ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:131:15: error: 'SYS_CPU_MODEL_TOPIC' was not declared in this scope
   publishData(SYS_CPU_MODEL_TOPIC, CAYENNE_NO_CHANNEL, CAYENNE_FLASH(INFO_CPU));
           ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:133:15: error: 'SYS_CPU_SPEED_TOPIC' was not declared in this scope
   publishData(SYS_CPU_SPEED_TOPIC, CAYENNE_NO_CHANNEL, F_CPU);
           ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:134:15: error: 'SYS_VERSION_TOPIC' was not declared in this scope
   publishData(SYS_VERSION_TOPIC, CAYENNE_NO_CHANNEL, CAYENNE_FLASH(CAYENNE_LIBRARY_VERSION));
           ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:134:68: error: 'CAYENNE_LIBRARY_VERSION' was not declared in this scope
   publishData(SYS_VERSION_TOPIC, CAYENNE_NO_CHANNEL, CAYENNE_FLASH(CAYENNE_LIBRARY_VERSION));
                                                                ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h: In member function 'void CayenneArduinoMQTTClient::virtualWrite(unsigned int, const T&, const char*, const char*)':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:151:15: error: 'DATA_TOPIC' was not declared in this scope
   publishData(DATA_TOPIC, channel, data, type, unit);
           ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h: In member function 'void CayenneArduinoMQTTClient::virtualWrite(unsigned int, const CayenneDataArray&, const char*)':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:163:15: error: 'DATA_TOPIC' was not declared in this scope
Multiple libraries were found for "UIPEthernet.h"
   publishData(DATA_TOPIC, channel, values.getArray(), values.getCount(), type);
           ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:163:43: error: request for member 'getArray' in 'values', which is of non-class type 'const CayenneDataArray {aka const int}'
 Used: /Users/Aymeric/Documents/Arduino/libraries/UIPEthernet-2.0.6
   publishData(DATA_TOPIC, channel, values.getArray(), values.getCount(), type);
 Not used: /Users/Aymeric/Documents/Arduino/libraries/arduino_uip-master
                                       ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:163:62: error: request for member 'getCount' in 'values', which is of non-class type 'const CayenneDataArray {aka const int}'
   publishData(DATA_TOPIC, channel, values.getArray(), values.getCount(), type);
                                                          ^
In file included from /Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneMQTTEthernetClient.h:21:0,
             from /Users/Aymeric/Documents/Arduino/Power-meter_-_Cayenne-relay-power_MQTT3/Power-meter_-_Cayenne-relay-power_MQTT3.ino:5:
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h: In member function 'void CayenneArduinoMQTTClient::celsiusWrite(unsigned int, float)':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:229:46: error: 'TYPE_TEMPERATURE' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_TEMPERATURE), CAYENNE_FLASH(UNIT_CELSIUS));
                                          ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:229:62: error: 'CAYENNE_FLASH' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_TEMPERATURE), CAYENNE_FLASH(UNIT_CELSIUS));
                                                          ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:229:79: error: 'UNIT_CELSIUS' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_TEMPERATURE), CAYENNE_FLASH(UNIT_CELSIUS));
                                                                           ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h: In member function 'void CayenneArduinoMQTTClient::fahrenheitWrite(unsigned int, float)':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:240:46: error: 'TYPE_TEMPERATURE' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_TEMPERATURE), CAYENNE_FLASH(UNIT_FAHRENHEIT));
                                          ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:240:62: error: 'CAYENNE_FLASH' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_TEMPERATURE), CAYENNE_FLASH(UNIT_FAHRENHEIT));
                                                          ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:240:79: error: 'UNIT_FAHRENHEIT' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_TEMPERATURE), CAYENNE_FLASH(UNIT_FAHRENHEIT));
                                                                           ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h: In member function 'void CayenneArduinoMQTTClient::kelvinWrite(unsigned int, float)':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:251:46: error: 'TYPE_TEMPERATURE' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_TEMPERATURE), CAYENNE_FLASH(UNIT_KELVIN));
                                          ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:251:62: error: 'CAYENNE_FLASH' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_TEMPERATURE), CAYENNE_FLASH(UNIT_KELVIN));
                                                          ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:251:79: error: 'UNIT_KELVIN' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_TEMPERATURE), CAYENNE_FLASH(UNIT_KELVIN));
                                                                           ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h: In member function 'void CayenneArduinoMQTTClient::luxWrite(unsigned int, float)':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:262:46: error: 'TYPE_LUMINOSITY' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_LUMINOSITY), CAYENNE_FLASH(UNIT_LUX));
                                          ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:262:61: error: 'CAYENNE_FLASH' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_LUMINOSITY), CAYENNE_FLASH(UNIT_LUX));
                                                         ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:262:78: error: 'UNIT_LUX' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_LUMINOSITY), CAYENNE_FLASH(UNIT_LUX));
                                                                          ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h: In member function 'void CayenneArduinoMQTTClient::pascalWrite(unsigned int, float)':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:273:46: error: 'TYPE_BAROMETRIC_PRESSURE' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_BAROMETRIC_PRESSURE), CAYENNE_FLASH(UNIT_PASCAL));
                                          ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:273:70: error: 'CAYENNE_FLASH' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_BAROMETRIC_PRESSURE), CAYENNE_FLASH(UNIT_PASCAL));
                                                                  ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:273:87: error: 'UNIT_PASCAL' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_BAROMETRIC_PRESSURE), CAYENNE_FLASH(UNIT_PASCAL));
                                                                                   ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h: In member function 'void CayenneArduinoMQTTClient::hectoPascalWrite(unsigned int, float)':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:284:46: error: 'TYPE_BAROMETRIC_PRESSURE' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_BAROMETRIC_PRESSURE), CAYENNE_FLASH(UNIT_HECTOPASCAL));
                                          ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:284:70: error: 'CAYENNE_FLASH' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_BAROMETRIC_PRESSURE), CAYENNE_FLASH(UNIT_HECTOPASCAL));
                                                                  ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:284:87: error: 'UNIT_HECTOPASCAL' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_BAROMETRIC_PRESSURE), CAYENNE_FLASH(UNIT_HECTOPASCAL));
                                                                                   ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h: In member function 'void CayenneArduinoMQTTClient::digitalSensorWrite(unsigned int, int)':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:295:46: error: 'TYPE_DIGITAL_SENSOR' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_DIGITAL_SENSOR), CAYENNE_FLASH(UNIT_DIGITAL));
                                          ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:295:65: error: 'CAYENNE_FLASH' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_DIGITAL_SENSOR), CAYENNE_FLASH(UNIT_DIGITAL));
                                                             ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:295:82: error: 'UNIT_DIGITAL' was not declared in this scope
   virtualWrite(channel, value, CAYENNE_FLASH(TYPE_DIGITAL_SENSOR), CAYENNE_FLASH(UNIT_DIGITAL));
                                                                              ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h: In static member function 'static void CayenneArduinoMQTTClient::publishData(int, unsigned int, const T&, const char*, const char*)':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:352:10: error: request for member 'add' in 'values', which is of non-class type 'CayenneDataArray {aka int}'
   values.add(subkey, data);
      ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:353:38: error: request for member 'getArray' in 'values', which is of non-class type 'CayenneDataArray {aka int}'
   publishData(topic, channel, values.getArray(), values.getCount(), key);
                                  ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:353:57: error: request for member 'getCount' in 'values', which is of non-class type 'CayenneDataArray {aka int}'
   publishData(topic, channel, values.getArray(), values.getCount(), key);
                                                     ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h: In function 'void handleMessage(CayenneMessageData*)':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:478:26: error: 'CayenneMessageData' has no member named 'values'
  if (strlen(messageData->values[0].value)) {
                      ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:493:42: error: 'DATA_TOPIC' was not declared in this scope
   CayenneArduinoMQTTClient::publishState(DATA_TOPIC, messageData->channel, messageData->values[0].value);
                                      ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:493:89: error: 'CayenneMessageData' has no member named 'values'
   CayenneArduinoMQTTClient::publishState(DATA_TOPIC, messageData->channel, messageData->values[0].value);
                                                                                     ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h: In function 'void CayenneMessageArrived(CayenneMessageData*)':
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:539:19: error: 'CayenneMessageData' has no member named 'topic'
  switch (message->topic)
               ^
/Users/Aymeric/Documents/Arduino/libraries/Cayenne-MQTT-Arduino-master/src/CayenneArduinoMQTTClient.h:541:7: error: 'COMMAND_TOPIC' was not declared in this scope
  case COMMAND_TOPIC:
   ^
exit status 1
Error compiling for board Arduino/Genuino Uno.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

For now I will use an ESP8266 module but it’s a shame to use Wifi for 20cm… :rofl: And then I will buy a W5500 witch seems to be well suported.

Cheers,

Aymeric