mirror of https://github.com/arendst/Tasmota.git
add IfxPeriod
This commit is contained in:
parent
476c2b3dc0
commit
235bf403c6
|
@ -598,7 +598,8 @@ typedef struct {
|
||||||
|
|
||||||
int8_t shutter_tilt_config[5][MAX_SHUTTERS]; //508
|
int8_t shutter_tilt_config[5][MAX_SHUTTERS]; //508
|
||||||
int8_t shutter_tilt_pos[MAX_SHUTTERS]; //51C
|
int8_t shutter_tilt_pos[MAX_SHUTTERS]; //51C
|
||||||
uint8_t free_520[12]; // 520
|
uint16_t influxdb_period; // 520
|
||||||
|
uint8_t free_522[10]; // 522
|
||||||
|
|
||||||
uint16_t mqtt_keepalive; // 52C
|
uint16_t mqtt_keepalive; // 52C
|
||||||
uint16_t mqtt_socket_timeout; // 52E
|
uint16_t mqtt_socket_timeout; // 52E
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
* IfxBucket - Set Influxdb v2 and bucket name
|
* IfxBucket - Set Influxdb v2 and bucket name
|
||||||
* IfxOrg - Set Influxdb v2 and organization
|
* IfxOrg - Set Influxdb v2 and organization
|
||||||
* IfxToken - Set Influxdb v2 and token
|
* IfxToken - Set Influxdb v2 and token
|
||||||
|
* IfxPeriod - Set Influxdb period. If not set (or 0), use Teleperiod
|
||||||
*
|
*
|
||||||
* Set influxdb update interval with command teleperiod
|
* Set influxdb update interval with command teleperiod
|
||||||
*
|
*
|
||||||
|
@ -364,8 +365,9 @@ void InfluxDbPublishPowerState(uint32_t device) {
|
||||||
void InfluxDbLoop(void) {
|
void InfluxDbLoop(void) {
|
||||||
if (!TasmotaGlobal.global_state.network_down) {
|
if (!TasmotaGlobal.global_state.network_down) {
|
||||||
IFDB.interval--;
|
IFDB.interval--;
|
||||||
if (IFDB.interval <= 0 || IFDB.interval > Settings->tele_period) {
|
uint16_t period = Settings->influxdb_period ? Settings->influxdb_period : Settings->tele_period;
|
||||||
IFDB.interval = Settings->tele_period;
|
if (IFDB.interval <= 0 || IFDB.interval > period) {
|
||||||
|
IFDB.interval = period;
|
||||||
if (!IFDB.init) {
|
if (!IFDB.init) {
|
||||||
if (InfluxDbParameterInit()) {
|
if (InfluxDbParameterInit()) {
|
||||||
IFDB.init = InfluxDbValidateConnection();
|
IFDB.init = InfluxDbValidateConnection();
|
||||||
|
@ -408,20 +410,23 @@ void InfluxDbLoop(void) {
|
||||||
#define D_CMND_INFLUXDBTOKEN "Token"
|
#define D_CMND_INFLUXDBTOKEN "Token"
|
||||||
#define D_CMND_INFLUXDBDATABASE "Database"
|
#define D_CMND_INFLUXDBDATABASE "Database"
|
||||||
#define D_CMND_INFLUXDBBUCKET "Bucket"
|
#define D_CMND_INFLUXDBBUCKET "Bucket"
|
||||||
|
#define D_CMND_INFLUXDBPERIOD "Period"
|
||||||
|
|
||||||
const char kInfluxDbCommands[] PROGMEM = D_PRFX_INFLUXDB "|" // Prefix
|
const char kInfluxDbCommands[] PROGMEM = D_PRFX_INFLUXDB "|" // Prefix
|
||||||
"|" D_CMND_INFLUXDBLOG "|"
|
"|" D_CMND_INFLUXDBLOG "|"
|
||||||
D_CMND_INFLUXDBHOST "|" D_CMND_INFLUXDBPORT "|"
|
D_CMND_INFLUXDBHOST "|" D_CMND_INFLUXDBPORT "|"
|
||||||
D_CMND_INFLUXDBUSER "|" D_CMND_INFLUXDBORG "|"
|
D_CMND_INFLUXDBUSER "|" D_CMND_INFLUXDBORG "|"
|
||||||
D_CMND_INFLUXDBPASSWORD "|" D_CMND_INFLUXDBTOKEN "|"
|
D_CMND_INFLUXDBPASSWORD "|" D_CMND_INFLUXDBTOKEN "|"
|
||||||
D_CMND_INFLUXDBDATABASE "|" D_CMND_INFLUXDBBUCKET;
|
D_CMND_INFLUXDBDATABASE "|" D_CMND_INFLUXDBBUCKET "|"
|
||||||
|
D_CMND_INFLUXDBPERIOD;
|
||||||
|
|
||||||
void (* const InfluxCommand[])(void) PROGMEM = {
|
void (* const InfluxCommand[])(void) PROGMEM = {
|
||||||
&CmndInfluxDbState, &CmndInfluxDbLog,
|
&CmndInfluxDbState, &CmndInfluxDbLog,
|
||||||
&CmndInfluxDbHost, &CmndInfluxDbPort,
|
&CmndInfluxDbHost, &CmndInfluxDbPort,
|
||||||
&CmndInfluxDbUser, &CmndInfluxDbUser,
|
&CmndInfluxDbUser, &CmndInfluxDbUser,
|
||||||
&CmndInfluxDbPassword, &CmndInfluxDbPassword,
|
&CmndInfluxDbPassword, &CmndInfluxDbPassword,
|
||||||
&CmndInfluxDbDatabase, &CmndInfluxDbDatabase };
|
&CmndInfluxDbDatabase, &CmndInfluxDbDatabase,
|
||||||
|
&CmndInfluxDbPeriod };
|
||||||
|
|
||||||
void InfluxDbReinit(void) {
|
void InfluxDbReinit(void) {
|
||||||
IFDB.init = false;
|
IFDB.init = false;
|
||||||
|
@ -504,6 +509,16 @@ void CmndInfluxDbDatabase(void) {
|
||||||
ResponseCmndChar(SettingsText(SET_INFLUXDB_BUCKET));
|
ResponseCmndChar(SettingsText(SET_INFLUXDB_BUCKET));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CmndInfluxDbPeriod(void) {
|
||||||
|
if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload < 3601)) {
|
||||||
|
Settings->influxdb_period = XdrvMailbox.payload;
|
||||||
|
if(Settings->influxdb_period > 0 && Settings->influxdb_period < 10) {
|
||||||
|
Settings->influxdb_period = 10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ResponseCmndNumber(Settings->influxdb_period);
|
||||||
|
}
|
||||||
|
|
||||||
/*********************************************************************************************\
|
/*********************************************************************************************\
|
||||||
* Interface
|
* Interface
|
||||||
\*********************************************************************************************/
|
\*********************************************************************************************/
|
||||||
|
|
Loading…
Reference in New Issue