mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-17 15:56:30 +00:00
Influxdb add support for negative numbers
This commit is contained in:
parent
d0d0d11b15
commit
0f39fab3ae
@ -523,6 +523,12 @@ bool StrCaseStr_P(const char* source, const char* search) {
|
|||||||
return (strstr(case_source, case_search) != nullptr);
|
return (strstr(case_source, case_search) != nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsNumeric(const char* value) {
|
||||||
|
char *digit = (char*)value;
|
||||||
|
while (isdigit(*digit) || *digit == '.' || *digit == '-') { digit++; }
|
||||||
|
return (*digit == '\0');
|
||||||
|
}
|
||||||
|
|
||||||
char* Trim(char* p)
|
char* Trim(char* p)
|
||||||
{
|
{
|
||||||
if (*p != '\0') {
|
if (*p != '\0') {
|
||||||
|
@ -87,6 +87,10 @@ struct {
|
|||||||
bool init = false;
|
bool init = false;
|
||||||
} IFDB;
|
} IFDB;
|
||||||
|
|
||||||
|
/*********************************************************************************************\
|
||||||
|
* Influxdb library function
|
||||||
|
\*********************************************************************************************/
|
||||||
|
|
||||||
String InfluxDbAuth(void) {
|
String InfluxDbAuth(void) {
|
||||||
String auth = "";
|
String auth = "";
|
||||||
if (strlen(SettingsText(SET_INFLUXDB_ORG)) > 0 && strlen(SettingsText(SET_INFLUXDB_TOKEN)) > 0) {
|
if (strlen(SettingsText(SET_INFLUXDB_ORG)) > 0 && strlen(SettingsText(SET_INFLUXDB_TOKEN)) > 0) {
|
||||||
@ -222,7 +226,9 @@ int InfluxDbPostData(const char *data) {
|
|||||||
return IFDB._lastStatusCode;
|
return IFDB._lastStatusCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*********************************************************************************************/
|
/*********************************************************************************************\
|
||||||
|
* Data preparation
|
||||||
|
\*********************************************************************************************/
|
||||||
|
|
||||||
char* InfluxDbMakeNumber(char* dest, const char* source) {
|
char* InfluxDbMakeNumber(char* dest, const char* source) {
|
||||||
// Convert special text as found in kOptions to a number
|
// Convert special text as found in kOptions to a number
|
||||||
@ -265,7 +271,7 @@ void InfluxDbProcessJson(void) {
|
|||||||
const char *value = key3.getValue().getStr();
|
const char *value = key3.getValue().getStr();
|
||||||
if (value != nullptr) {
|
if (value != nullptr) {
|
||||||
value = InfluxDbMakeNumber(number, value);
|
value = InfluxDbMakeNumber(number, value);
|
||||||
if (isdigit(value[0])) {
|
if (IsNumeric(value)) {
|
||||||
// Level 3
|
// Level 3
|
||||||
LowerCase(sensor, key2.getStr());
|
LowerCase(sensor, key2.getStr());
|
||||||
LowerCase(type, key3.getStr());
|
LowerCase(type, key3.getStr());
|
||||||
@ -283,7 +289,7 @@ void InfluxDbProcessJson(void) {
|
|||||||
const char *value = (isarray) ? (value2.getArray())[0].getStr() : value2.getStr();
|
const char *value = (isarray) ? (value2.getArray())[0].getStr() : value2.getStr();
|
||||||
if (value != nullptr) {
|
if (value != nullptr) {
|
||||||
value = InfluxDbMakeNumber(number, value);
|
value = InfluxDbMakeNumber(number, value);
|
||||||
if (isdigit(value[0])) {
|
if (IsNumeric(value)) {
|
||||||
LowerCase(sensor, key1.getStr());
|
LowerCase(sensor, key1.getStr());
|
||||||
LowerCase(type, key2.getStr());
|
LowerCase(type, key2.getStr());
|
||||||
|
|
||||||
@ -323,7 +329,7 @@ void InfluxDbProcessJson(void) {
|
|||||||
const char *value = value1.getStr();
|
const char *value = value1.getStr();
|
||||||
if (value != nullptr) {
|
if (value != nullptr) {
|
||||||
value = InfluxDbMakeNumber(number, value);
|
value = InfluxDbMakeNumber(number, value);
|
||||||
if (isdigit(value[0])) {
|
if (IsNumeric(value)) {
|
||||||
LowerCase(type, key1.getStr());
|
LowerCase(type, key1.getStr());
|
||||||
|
|
||||||
if (!((strcasecmp_P(type, PSTR(D_JSON_TIME)) == 0) || // No time,device=demo value=2021-08-11T09:46:29
|
if (!((strcasecmp_P(type, PSTR(D_JSON_TIME)) == 0) || // No time,device=demo value=2021-08-11T09:46:29
|
||||||
|
Loading…
x
Reference in New Issue
Block a user