A hardware ZABBIX Agent made with Arduino Mega

Hi Arduinovini, I use your code and everything is fine! Thanks!

But, I include de DHT library for "real" values and get a error message:

sensor2.cpp.o: In function setup': /usr/share/arduino/hardware/arduino/cores/arduino/IPAddress.h:33: undefined reference to DHT::DHT(unsigned char, unsigned char, unsigned char)'

//*****************************************************************************************
//* Purpose : Zabbix Sensor Agent - Environmental Monitoring Solution *
//* Author : Evgeny Levkov *
//* Adapted to basics : Schotte Vincent *
//* Credits: *

//-----------------INCLUDES--------------------
#include "DHT1.h"
#include <SPI.h>
#include <Ethernet.h>
#define DHTPIN 7
#define DHTTYPE DHT22
#define MAX_CMD_LENGTH 25

DHT dht(DHTPIN, DHTTYPE);

//--------------------------------------------
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0xE3, 0x5B };

IPAddress ip(10, 0, 1, 3);
IPAddress gateway(10, 0, 1, 1);
IPAddress subnet(255, 255, 255, 0);
EthernetServer server = EthernetServer(10050); //Zabbix Agent port //Zabbix agent port
EthernetClient client;
boolean connected = false;

//--------------------------------------------
String cmd; //FOR ZABBIX COMMAND
//int led = 2; //LED PORT TO BLINK AFTER RECIEVING ZABBIX COMMAND
int counter = 1;  // For testing
//--------------------------------------------


void setup()
{
     Ethernet.begin(mac, ip, gateway, subnet); 
     server.begin();
     //dht.begin();
     //pinMode(led, OUTPUT);
     //digitalWrite(led, LOW);
 
}

void loop()
{
//--------------------------------------------
  client = server.available();
  if (client == true) {
    if (!connected) {
      client.flush();
      connected = true;
    }
    if (client.available() > 0) {
      readTelnetCommand(client.read());
      }
    }
}
//--------------------------------------------


void readTelnetCommand(char c) {

  if(cmd.length() == MAX_CMD_LENGTH) {
    cmd = "";
  }
  cmd += c;
  if(c == '\n') {
    if(cmd.length() > 2) {
      // remove \r and \n from the string
      cmd = cmd.substring(0,cmd.length() - 1);
      parseCommand();
    }
  }
}
//--------------------------------------------
void parseCommand() { //Commands recieved by agent on port 10050 parsing

   counter = counter + 1;


  // AGENT ping
  if(cmd.equals("ping")) {
      server.println("1");
      client.stop();
// connected = false;

 // AGENT version
   } else if(cmd.equals("version")) {
      server.println("ArduinZabbixVini.1.0");
      client.stop();
// connected = false;

     
// AGENT sensor1
} else if(cmd.equals("sensor1")) {
      //float h = 68;
      float h = dht.readHumidity();
      server.println(h );
      client.stop();
      delay(2000);

// AGENT sensor2
} else if(cmd.equals("sensor2")) {
      //float t = 22;
      float t = dht.readTemperature();
      server.println(t );
      client.stop();
      delay(2000);
     
}     
// AGENT counter
 else if(cmd.equals("counter")) {
      //float t = 20;
      server.println(counter );
      client.stop();
     
// NOT SUPPORTED
} else {
    // server.println("ZBXDZBX_NOTSUPPORTED");
    server.println(cmd);
    client.stop();
  }
  cmd = "";
}

Debug message is attached.

Any help?

debug-sensor2.log (6.27 KB)