Skip to content
This repository has been archived by the owner on Apr 16, 2020. It is now read-only.

davidgs/ESP8266_Influx_DB_V2

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ESP8266_Influx_DB

Library for NodeMcu / ESP8266 (and Arduino?) for sending measurements to an Influx database.

Initialization

 #define INFLUXDB_HOST "192.168.0.32"
 #define INFLUXDB_PORT "9999"
 #define INFLUXDB_ORG "test"
 #define INFLUXDB_BUCKET "telegraf"
 #define INFLUXDB_TOKEN "longTokenStringFromInfluxDBv2"


 // connect to WiFi

 Influxdb influx(INFLUXDB_HOST); // port defaults to 9999
 // or to use a custom port
 Influxdb influx(INFLUXDB_HOST, INFLUXDB_PORT);

 // set the target database
 influx.setOrg(INFLUXDB_ORG);
 influx.setBucket(INFLUXDB_BUCKET);
 influx.setToken(INFLUXDB_TOKEN);

Sending a single measurement

Using an InfluxData object:

// create a measurement object
InfluxDataV2 measurement ("temperature");
measurement.addTag("device", d2);
measurement.addTag("sensor", "dht11");
measurement.addValue("value", 24.0);

// write it into db
influx.write(measurement);

Using raw-data

 influx.write("temperature,device=d2,sensor=dht11 value=24.0")

Write multiple data points at once

Batching measurements and send them with a single request will result in a much higher performance.

InfluxDataV2 measurement1 = readTemperature()
influx.prepare(measurement1)

InfluxDataV2 measurement2 = readLight()
influx.prepare(measurement2)

InfluxDataV2 measurement3 = readVoltage()
influx.prepare(measurement3)

// writes all prepared measurements with a single request into db.
boolean success = influx.write();

Http client error codes

Internally ESP8266HTTPClient is used.

/// HTTP client errors
#define HTTPC_ERROR_CONNECTION_REFUSED  (-1)
#define HTTPC_ERROR_SEND_HEADER_FAILED  (-2)
#define HTTPC_ERROR_SEND_PAYLOAD_FAILED (-3)
#define HTTPC_ERROR_NOT_CONNECTED       (-4)
#define HTTPC_ERROR_CONNECTION_LOST     (-5)
#define HTTPC_ERROR_NO_STREAM           (-6)
#define HTTPC_ERROR_NO_HTTP_SERVER      (-7)
#define HTTPC_ERROR_TOO_LESS_RAM        (-8)
#define HTTPC_ERROR_ENCODING            (-9)
#define HTTPC_ERROR_STREAM_WRITE        (-10)
#define HTTPC_ERROR_READ_TIMEOUT        (-11)
...

See list of error codes and list of http status codes.

Documentation

For the documentation see html/class_influxdb.html (only works locally).

About

Initial Influxv2 Arduino Client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published