mirror of
https://github.com/airgradienthq/arduino.git
synced 2025-07-30 00:47:17 +02:00
Add local configuration to set http domain
change http domain by PUT from local server request
This commit is contained in:
@ -944,6 +944,12 @@ void initializeNetwork() {
|
|||||||
agSerial->setDebug(true);
|
agSerial->setDebug(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String httpDomain = configuration.getHttpDomain();
|
||||||
|
if (httpDomain != "") {
|
||||||
|
agClient->setHttpDomain(httpDomain.c_str());
|
||||||
|
Serial.printf("HTTP request domain set to: %s\n", httpDomain.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
if (!agClient->begin(ag->deviceId().c_str())) {
|
if (!agClient->begin(ag->deviceId().c_str())) {
|
||||||
oledDisplay.setText("Client", "initialization", "failed");
|
oledDisplay.setText("Client", "initialization", "failed");
|
||||||
delay(5000);
|
delay(5000);
|
||||||
@ -1041,6 +1047,16 @@ static void configUpdateHandle() {
|
|||||||
initMqtt();
|
initMqtt();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String httpDomain = configuration.getHttpDomain();
|
||||||
|
if (httpDomain != "") {
|
||||||
|
Serial.printf("HTTP request domain set to: %s\n", httpDomain.c_str());
|
||||||
|
agClient->setHttpDomain(httpDomain.c_str());
|
||||||
|
} else {
|
||||||
|
// Its empty, set to default
|
||||||
|
Serial.println("HTTP domain from configuration empty, set to default");
|
||||||
|
agClient->setHttpDomainDefault();
|
||||||
|
}
|
||||||
|
|
||||||
if (configuration.hasSensorSGP) {
|
if (configuration.hasSensorSGP) {
|
||||||
if (configuration.noxLearnOffsetChanged() ||
|
if (configuration.noxLearnOffsetChanged() ||
|
||||||
configuration.tvocLearnOffsetChanged()) {
|
configuration.tvocLearnOffsetChanged()) {
|
||||||
|
@ -46,6 +46,7 @@ JSON_PROP_DEF(abcDays);
|
|||||||
JSON_PROP_DEF(tvocLearningOffset);
|
JSON_PROP_DEF(tvocLearningOffset);
|
||||||
JSON_PROP_DEF(noxLearningOffset);
|
JSON_PROP_DEF(noxLearningOffset);
|
||||||
JSON_PROP_DEF(mqttBrokerUrl);
|
JSON_PROP_DEF(mqttBrokerUrl);
|
||||||
|
JSON_PROP_DEF(httpDomain);
|
||||||
JSON_PROP_DEF(temperatureUnit);
|
JSON_PROP_DEF(temperatureUnit);
|
||||||
JSON_PROP_DEF(configurationControl);
|
JSON_PROP_DEF(configurationControl);
|
||||||
JSON_PROP_DEF(postDataToAirGradient);
|
JSON_PROP_DEF(postDataToAirGradient);
|
||||||
@ -68,6 +69,7 @@ JSON_PROP_DEF(rhum);
|
|||||||
#define jprop_tvocLearningOffset_default 12
|
#define jprop_tvocLearningOffset_default 12
|
||||||
#define jprop_noxLearningOffset_default 12
|
#define jprop_noxLearningOffset_default 12
|
||||||
#define jprop_mqttBrokerUrl_default ""
|
#define jprop_mqttBrokerUrl_default ""
|
||||||
|
#define jprop_httpDomain_default ""
|
||||||
#define jprop_temperatureUnit_default "c"
|
#define jprop_temperatureUnit_default "c"
|
||||||
#define jprop_configurationControl_default String(CONFIGURATION_CONTROL_NAME[ConfigurationControl::ConfigurationControlBoth])
|
#define jprop_configurationControl_default String(CONFIGURATION_CONTROL_NAME[ConfigurationControl::ConfigurationControlBoth])
|
||||||
#define jprop_postDataToAirGradient_default true
|
#define jprop_postDataToAirGradient_default true
|
||||||
@ -377,6 +379,7 @@ void Configuration::defaultConfig(void) {
|
|||||||
|
|
||||||
jconfig[jprop_country] = jprop_country_default;
|
jconfig[jprop_country] = jprop_country_default;
|
||||||
jconfig[jprop_mqttBrokerUrl] = jprop_mqttBrokerUrl_default;
|
jconfig[jprop_mqttBrokerUrl] = jprop_mqttBrokerUrl_default;
|
||||||
|
jconfig[jprop_httpDomain] = jprop_httpDomain_default;
|
||||||
jconfig[jprop_configurationControl] = jprop_configurationControl_default;
|
jconfig[jprop_configurationControl] = jprop_configurationControl_default;
|
||||||
jconfig[jprop_pmStandard] = jprop_pmStandard_default;
|
jconfig[jprop_pmStandard] = jprop_pmStandard_default;
|
||||||
jconfig[jprop_temperatureUnit] = jprop_temperatureUnit_default;
|
jconfig[jprop_temperatureUnit] = jprop_temperatureUnit_default;
|
||||||
@ -735,7 +738,7 @@ bool Configuration::parse(String data, bool isLocal) {
|
|||||||
jconfig[jprop_mqttBrokerUrl] = broker;
|
jconfig[jprop_mqttBrokerUrl] = broker;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
failedMessage = "\"mqttBrokerUrl\" length should <= 255";
|
failedMessage = "\"mqttBrokerUrl\" length should less than 255 character";
|
||||||
jsonInvalid();
|
jsonInvalid();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -754,6 +757,32 @@ bool Configuration::parse(String data, bool isLocal) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isLocal) {
|
||||||
|
if (JSON.typeof_(root[jprop_httpDomain]) == "string") {
|
||||||
|
String httpDomain = root[jprop_httpDomain];
|
||||||
|
String oldHttpDomain = jconfig[jprop_httpDomain];
|
||||||
|
if (httpDomain.length() <= 255) {
|
||||||
|
if (httpDomain != oldHttpDomain) {
|
||||||
|
changed = true;
|
||||||
|
configLogInfo(String(jprop_httpDomain), oldHttpDomain, httpDomain);
|
||||||
|
jconfig[jprop_httpDomain] = httpDomain;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
failedMessage = "\"httpDomain\" length should less than 255 character";
|
||||||
|
jsonInvalid();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (jsonTypeInvalid(root[jprop_httpDomain], "string")) {
|
||||||
|
failedMessage =
|
||||||
|
jsonTypeInvalidMessage(String(jprop_httpDomain), "string");
|
||||||
|
jsonInvalid();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (JSON.typeof_(root[jprop_temperatureUnit]) == "string") {
|
if (JSON.typeof_(root[jprop_temperatureUnit]) == "string") {
|
||||||
String unit = root[jprop_temperatureUnit];
|
String unit = root[jprop_temperatureUnit];
|
||||||
String oldUnit = jconfig[jprop_temperatureUnit];
|
String oldUnit = jconfig[jprop_temperatureUnit];
|
||||||
@ -1036,6 +1065,16 @@ String Configuration::getMqttBrokerUri(void) {
|
|||||||
return broker;
|
return broker;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get HTTP domain for post measures and get configuration
|
||||||
|
*
|
||||||
|
* @return String http domain, might be empty string
|
||||||
|
*/
|
||||||
|
String Configuration::getHttpDomain(void) {
|
||||||
|
String httpDomain = jconfig[jprop_httpDomain];
|
||||||
|
return httpDomain;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get configuratoin post data to AirGradient cloud
|
* @brief Get configuratoin post data to AirGradient cloud
|
||||||
*
|
*
|
||||||
@ -1121,7 +1160,7 @@ bool Configuration::isUpdated(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String Configuration::jsonTypeInvalidMessage(String name, String type) {
|
String Configuration::jsonTypeInvalidMessage(String name, String type) {
|
||||||
return "'" + name + "' type invalid, it's should '" + type + "'";
|
return "'" + name + "' type is invalid, expecting '" + type + "'";
|
||||||
}
|
}
|
||||||
|
|
||||||
String Configuration::jsonValueInvalidMessage(String name, String value) {
|
String Configuration::jsonValueInvalidMessage(String name, String value) {
|
||||||
@ -1275,6 +1314,18 @@ void Configuration::toConfig(const char *buf) {
|
|||||||
logInfo("toConfig: mqttBroker changed");
|
logInfo("toConfig: mqttBroker changed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** validate http domain */
|
||||||
|
if (JSON.typeof_(jconfig[jprop_httpDomain]) != "string") {
|
||||||
|
isConfigFieldInvalid = true;
|
||||||
|
} else {
|
||||||
|
isConfigFieldInvalid = false;
|
||||||
|
}
|
||||||
|
if (isConfigFieldInvalid) {
|
||||||
|
changed = true;
|
||||||
|
jconfig[jprop_httpDomain] = jprop_httpDomain_default;
|
||||||
|
logInfo("toConfig: httpDomain changed");
|
||||||
|
}
|
||||||
|
|
||||||
/** Validate temperature unit */
|
/** Validate temperature unit */
|
||||||
if (JSON.typeof_(jconfig[jprop_temperatureUnit]) != "string") {
|
if (JSON.typeof_(jconfig[jprop_temperatureUnit]) != "string") {
|
||||||
isConfigFieldInvalid = true;
|
isConfigFieldInvalid = true;
|
||||||
|
@ -82,6 +82,7 @@ public:
|
|||||||
String getLedBarModeName(void);
|
String getLedBarModeName(void);
|
||||||
bool getDisplayMode(void);
|
bool getDisplayMode(void);
|
||||||
String getMqttBrokerUri(void);
|
String getMqttBrokerUri(void);
|
||||||
|
String getHttpDomain(void);
|
||||||
bool isPostDataToAirGradient(void);
|
bool isPostDataToAirGradient(void);
|
||||||
ConfigurationControl getConfigurationControl(void);
|
ConfigurationControl getConfigurationControl(void);
|
||||||
bool isCo2CalibrationRequested(void);
|
bool isCo2CalibrationRequested(void);
|
||||||
|
Submodule src/Libraries/airgradient-client updated: 938a92830d...f8a455c548
Reference in New Issue
Block a user