From c8f0e6a0d2688e676e06fe52b39384a0d4595ac3 Mon Sep 17 00:00:00 2001 From: samuelbles07 Date: Sat, 25 Jan 2025 04:08:17 +0700 Subject: [PATCH] Update diy samples That accomodate ApiClient changes Fix apiClient begin on OneOpenAir --- examples/BASIC/BASIC.ino | 27 ++++++++++++++----- .../DiyProIndoorV3_3/DiyProIndoorV3_3.ino | 27 ++++++++++++++----- .../DiyProIndoorV4_2/DiyProIndoorV4_2.ino | 27 ++++++++++++++----- examples/OneOpenAir/OneOpenAir.ino | 7 +++-- 4 files changed, 68 insertions(+), 20 deletions(-) diff --git a/examples/BASIC/BASIC.ino b/examples/BASIC/BASIC.ino index 97105fb..eccbcc5 100644 --- a/examples/BASIC/BASIC.ino +++ b/examples/BASIC/BASIC.ino @@ -149,7 +149,10 @@ void setup() { initMqtt(); sendDataToAg(); - apiClient.fetchServerConfiguration(); + if (configuration.getConfigurationControl() != + ConfigurationControl::ConfigurationControlLocal) { + apiClient.fetchServerConfiguration(); + } configSchedule.update(); if (apiClient.isFetchConfigureFailed()) { if (apiClient.isNotAvailableOnDashboard()) { @@ -415,6 +418,14 @@ static void failedHandler(String msg) { } static void configurationUpdateSchedule(void) { + if (configuration.isOfflineMode() || + configuration.getConfigurationControl() == ConfigurationControl::ConfigurationControlLocal) { + Serial.println("Ignore fetch server configuration. Either mode is offline " + "or configurationControl set to local"); + apiClient.resetFetchConfigureState(); + return; + } + if (apiClient.fetchServerConfiguration()) { configUpdateHandle(); } @@ -521,17 +532,21 @@ static void sendDataToServer(void) { int bootCount = measurements.bootCount() + 1; measurements.setBootCount(bootCount); - /** Ignore send data to server if postToAirGradient disabled */ - if (configuration.isPostDataToAirGradient() == false || - configuration.isOfflineMode()) { + if (configuration.isOfflineMode() || !configuration.isPostDataToAirGradient()) { + Serial.println("Ignore send data to server. Either mode is offline " + "or post data to server disabled"); + return; + } + + if (wifiConnector.isConnected() == false) { + Serial.println("WiFi not connected, skip post data to server"); return; } String syncData = measurements.toString(false, fwMode, wifiConnector.RSSI(), ag, configuration); if (apiClient.postToServer(syncData)) { Serial.println(); - Serial.println( - "Online mode and isPostToAirGradient = true: watchdog reset"); + Serial.println("Online mode and isPostToAirGradient = true"); Serial.println(); } } diff --git a/examples/DiyProIndoorV3_3/DiyProIndoorV3_3.ino b/examples/DiyProIndoorV3_3/DiyProIndoorV3_3.ino index bd19b86..509a8c5 100644 --- a/examples/DiyProIndoorV3_3/DiyProIndoorV3_3.ino +++ b/examples/DiyProIndoorV3_3/DiyProIndoorV3_3.ino @@ -149,7 +149,10 @@ void setup() { initMqtt(); sendDataToAg(); - apiClient.fetchServerConfiguration(); + if (configuration.getConfigurationControl() != + ConfigurationControl::ConfigurationControlLocal) { + apiClient.fetchServerConfiguration(); + } configSchedule.update(); if (apiClient.isFetchConfigureFailed()) { if (apiClient.isNotAvailableOnDashboard()) { @@ -467,6 +470,14 @@ static void failedHandler(String msg) { } static void configurationUpdateSchedule(void) { + if (configuration.isOfflineMode() || + configuration.getConfigurationControl() == ConfigurationControl::ConfigurationControlLocal) { + Serial.println("Ignore fetch server configuration. Either mode is offline " + "or configurationControl set to local"); + apiClient.resetFetchConfigureState(); + return; + } + if (apiClient.fetchServerConfiguration()) { configUpdateHandle(); } @@ -573,17 +584,21 @@ static void sendDataToServer(void) { int bootCount = measurements.bootCount() + 1; measurements.setBootCount(bootCount); - /** Ignore send data to server if postToAirGradient disabled */ - if (configuration.isPostDataToAirGradient() == false || - configuration.isOfflineMode()) { + if (configuration.isOfflineMode() || !configuration.isPostDataToAirGradient()) { + Serial.println("Ignore send data to server. Either mode is offline " + "or post data to server disabled"); + return; + } + + if (wifiConnector.isConnected() == false) { + Serial.println("WiFi not connected, skip post data to server"); return; } String syncData = measurements.toString(false, fwMode, wifiConnector.RSSI(), ag, configuration); if (apiClient.postToServer(syncData)) { Serial.println(); - Serial.println( - "Online mode and isPostToAirGradient = true: watchdog reset"); + Serial.println("Online mode and isPostToAirGradient = true"); Serial.println(); } } diff --git a/examples/DiyProIndoorV4_2/DiyProIndoorV4_2.ino b/examples/DiyProIndoorV4_2/DiyProIndoorV4_2.ino index f29c2cf..08f0551 100644 --- a/examples/DiyProIndoorV4_2/DiyProIndoorV4_2.ino +++ b/examples/DiyProIndoorV4_2/DiyProIndoorV4_2.ino @@ -176,7 +176,10 @@ void setup() { initMqtt(); sendDataToAg(); - apiClient.fetchServerConfiguration(); + if (configuration.getConfigurationControl() != + ConfigurationControl::ConfigurationControlLocal) { + apiClient.fetchServerConfiguration(); + } configSchedule.update(); if (apiClient.isFetchConfigureFailed()) { if (apiClient.isNotAvailableOnDashboard()) { @@ -507,6 +510,14 @@ static void failedHandler(String msg) { } static void configurationUpdateSchedule(void) { + if (configuration.isOfflineMode() || + configuration.getConfigurationControl() == ConfigurationControl::ConfigurationControlLocal) { + Serial.println("Ignore fetch server configuration. Either mode is offline " + "or configurationControl set to local"); + apiClient.resetFetchConfigureState(); + return; + } + if (apiClient.fetchServerConfiguration()) { configUpdateHandle(); } @@ -614,17 +625,21 @@ static void sendDataToServer(void) { int bootCount = measurements.bootCount() + 1; measurements.setBootCount(bootCount); - /** Ignore send data to server if postToAirGradient disabled */ - if (configuration.isPostDataToAirGradient() == false || - configuration.isOfflineMode()) { + if (configuration.isOfflineMode() || !configuration.isPostDataToAirGradient()) { + Serial.println("Ignore send data to server. Either mode is offline " + "or post data to server disabled"); + return; + } + + if (wifiConnector.isConnected() == false) { + Serial.println("WiFi not connected, skip post data to server"); return; } String syncData = measurements.toString(false, fwMode, wifiConnector.RSSI(), ag, configuration); if (apiClient.postToServer(syncData)) { Serial.println(); - Serial.println( - "Online mode and isPostToAirGradient = true: watchdog reset"); + Serial.println("Online mode and isPostToAirGradient = true"); Serial.println(); } } diff --git a/examples/OneOpenAir/OneOpenAir.ino b/examples/OneOpenAir/OneOpenAir.ino index e51f933..82d941f 100644 --- a/examples/OneOpenAir/OneOpenAir.ino +++ b/examples/OneOpenAir/OneOpenAir.ino @@ -861,7 +861,7 @@ void initiateNetwork() { // Initiate local network configuration mdnsInit(); localServer.begin(); - // Apply mqtt connection + // Apply mqtt connection if configured initMqtt(); // Ignore the rest if cloud connection to AirGradient is disabled @@ -869,7 +869,10 @@ void initiateNetwork() { return; } - // Send ping to aigradient server + // Initialize api client + apiClient.begin(); + + // Send ping to airgradient server sendDataToAg(); // OTA check