Use constants for setting default values, bring back wifi config portal timeout setting

This commit is contained in:
Djuri Baars 2024-07-11 14:08:37 +02:00
parent 1d710ba7f7
commit 8e71f29d10
12 changed files with 122 additions and 86 deletions

2
data

@ -1 +1 @@
Subproject commit 124c810e291a0c642da619f3c00109240c7a061a Subproject commit 2363d98965bb1fdbfdf5d130b41732f5b864e2d0

View file

@ -89,7 +89,7 @@ void setupBlockNotify()
xQueueSend(workQueue, &blockUpdate, portMAX_DELAY); xQueueSend(workQueue, &blockUpdate, portMAX_DELAY);
} }
if (!preferences.getBool("fetchEurPrice", false) && preferences.getBool("ownDataSource", true)) if (!preferences.getBool("fetchEurPrice", DEFAULT_FETCH_EUR_PRICE) && preferences.getBool("ownDataSource", DEFAULT_OWN_DATA_SOURCE))
{ {
return; return;
} }
@ -97,7 +97,7 @@ void setupBlockNotify()
// std::strcpy(wsServer, String("wss://" + mempoolInstance + // std::strcpy(wsServer, String("wss://" + mempoolInstance +
// "/api/v1/ws").c_str()); // "/api/v1/ws").c_str());
const String protocol = preferences.getBool("mempoolSecure", true) ? "wss" : "ws"; const String protocol = preferences.getBool("mempoolSecure", DEFAULT_MEMPOOL_SECURE) ? "wss" : "ws";
String mempoolUri = protocol + "://" + preferences.getString("mempoolInstance", DEFAULT_MEMPOOL_INSTANCE) + "/api/v1/ws"; String mempoolUri = protocol + "://" + preferences.getString("mempoolInstance", DEFAULT_MEMPOOL_INSTANCE) + "/api/v1/ws";
@ -185,7 +185,7 @@ void onWebsocketBlockMessage(esp_websocket_event_data_t *event_data)
// xTaskNotifyGive(blockUpdateTaskHandle); // xTaskNotifyGive(blockUpdateTaskHandle);
if (getCurrentScreen() != SCREEN_BLOCK_HEIGHT && if (getCurrentScreen() != SCREEN_BLOCK_HEIGHT &&
preferences.getBool("stealFocus", false)) preferences.getBool("stealFocus", DEFAULT_STEAL_FOCUS))
{ {
uint64_t timerPeriod = 0; uint64_t timerPeriod = 0;
if (isTimerActive()) if (isTimerActive())
@ -203,7 +203,7 @@ void onWebsocketBlockMessage(esp_websocket_event_data_t *event_data)
vTaskDelay(pdMS_TO_TICKS(315*NUM_SCREENS)); // Extra delay because of screen switching vTaskDelay(pdMS_TO_TICKS(315*NUM_SCREENS)); // Extra delay because of screen switching
} }
if (preferences.getBool("ledFlashOnUpd", false)) if (preferences.getBool("ledFlashOnUpd", DEFAULT_LED_FLASH_ON_UPD))
{ {
vTaskDelay(pdMS_TO_TICKS(250)); // Wait until screens are updated vTaskDelay(pdMS_TO_TICKS(250)); // Wait until screens are updated
queueLedEffect(LED_FLASH_BLOCK_NOTIFY); queueLedEffect(LED_FLASH_BLOCK_NOTIFY);
@ -300,9 +300,9 @@ int getBlockFetch()
// Get current block height through regular API // Get current block height through regular API
HTTPClient http; HTTPClient http;
const String protocol = preferences.getBool("mempoolSecure", true) ? "https" : "http"; const String protocol = preferences.getBool("mempoolSecure", DEFAULT_MEMPOOL_SECURE) ? "https" : "http";
if (preferences.getBool("mempoolSecure", true)) if (preferences.getBool("mempoolSecure", DEFAULT_MEMPOOL_SECURE))
http.begin(client, protocol + "://" + mempoolInstance + "/api/blocks/tip/height"); http.begin(client, protocol + "://" + mempoolInstance + "/api/blocks/tip/height");
else else
http.begin(protocol + "://" + mempoolInstance + "/api/blocks/tip/height"); http.begin(protocol + "://" + mempoolInstance + "/api/blocks/tip/height");

View file

@ -24,7 +24,7 @@ void setup()
setupHardware(); setupHardware();
setupDisplays(); setupDisplays();
if (preferences.getBool("ledTestOnPower", true)) if (preferences.getBool("ledTestOnPower", DEFAULT_LED_TEST_ON_POWER))
{ {
queueLedEffect(LED_POWER_TEST); queueLedEffect(LED_POWER_TEST);
} }
@ -75,7 +75,7 @@ void setup()
waitUntilNoneBusy(); waitUntilNoneBusy();
#ifdef HAS_FRONTLIGHT #ifdef HAS_FRONTLIGHT
if (!preferences.getBool("flAlwaysOn", false)) if (!preferences.getBool("flAlwaysOn", DEFAULT_FL_ALWAYS_ON))
{ {
frontlightFadeOutAll(preferences.getUInt("flEffectDelay"), true); frontlightFadeOutAll(preferences.getUInt("flEffectDelay"), true);
flArray.allOFF(); flArray.allOFF();
@ -91,24 +91,21 @@ void tryImprovSetup()
WiFi.setAutoConnect(true); WiFi.setAutoConnect(true);
WiFi.setAutoReconnect(true); WiFi.setAutoReconnect(true);
WiFi.begin(); WiFi.begin();
if (preferences.getInt("txPower", 0)) if (preferences.getInt("txPower", DEFAULT_TX_POWER))
{ {
if (WiFi.setTxPower( if (WiFi.setTxPower(
static_cast<wifi_power_t>(preferences.getInt("txPower", 0)))) static_cast<wifi_power_t>(preferences.getInt("txPower", DEFAULT_TX_POWER))))
{ {
Serial.printf("WiFi max tx power set to %d\n", Serial.printf("WiFi max tx power set to %d\n",
preferences.getInt("txPower", 0)); preferences.getInt("txPower", DEFAULT_TX_POWER));
} }
} }
// if (!preferences.getBool("wifiConfigured", false)) // if (!preferences.getBool("wifiConfigured", DEFAULT_WIFI_CONFIGURED)
{ {
queueLedEffect(LED_EFFECT_WIFI_WAIT_FOR_CONFIG); queueLedEffect(LED_EFFECT_WIFI_WAIT_FOR_CONFIG);
uint8_t x_buffer[16];
uint8_t x_position = 0;
bool buttonPress = false; bool buttonPress = false;
{ {
std::lock_guard<std::mutex> lockMcp(mcpMutex); std::lock_guard<std::mutex> lockMcp(mcpMutex);
@ -128,7 +125,7 @@ void tryImprovSetup()
String(mac[5], 16) + String(mac[1], 16)) String(mac[5], 16) + String(mac[1], 16))
.substring(2, 10); .substring(2, 10);
// wm.setConfigPortalTimeout(preferences.getUInt("wpTimeout", 600)); wm.setConfigPortalTimeout(preferences.getUInt("wpTimeout", DEFAULT_WP_TIMEOUT));
wm.setWiFiAutoReconnect(false); wm.setWiFiAutoReconnect(false);
wm.setDebugOutput(false); wm.setDebugOutput(false);
wm.setConfigPortalBlocking(true); wm.setConfigPortalBlocking(true);
@ -228,13 +225,13 @@ void tryImprovSetup()
void syncTime() void syncTime()
{ {
configTime(preferences.getInt("gmtOffset", TIME_OFFSET_SECONDS), 0, configTime(preferences.getInt("gmtOffset", DEFAULT_TIME_OFFSET_SECONDS), 0,
NTP_SERVER); NTP_SERVER);
struct tm timeinfo; struct tm timeinfo;
while (!getLocalTime(&timeinfo)) while (!getLocalTime(&timeinfo))
{ {
configTime(preferences.getInt("gmtOffset", TIME_OFFSET_SECONDS), 0, configTime(preferences.getInt("gmtOffset", DEFAULT_TIME_OFFSET_SECONDS), 0,
NTP_SERVER); NTP_SERVER);
delay(500); delay(500);
Serial.println(F("Retry set time")); Serial.println(F("Retry set time"));
@ -249,8 +246,8 @@ void setupPreferences()
setFgColor(preferences.getUInt("fgColor", DEFAULT_FG_COLOR)); setFgColor(preferences.getUInt("fgColor", DEFAULT_FG_COLOR));
setBgColor(preferences.getUInt("bgColor", DEFAULT_BG_COLOR)); setBgColor(preferences.getUInt("bgColor", DEFAULT_BG_COLOR));
setBlockHeight(preferences.getUInt("blockHeight", 816000)); setBlockHeight(preferences.getUInt("blockHeight", INITIAL_BLOCK_HEIGHT));
setPrice(preferences.getUInt("lastPrice", 30000)); setPrice(preferences.getUInt("lastPrice", INITIAL_LAST_PRICE));
screenNameMap[SCREEN_BLOCK_HEIGHT] = "Block Height"; screenNameMap[SCREEN_BLOCK_HEIGHT] = "Block Height";
screenNameMap[SCREEN_BLOCK_FEE_RATE] = "Block Fee Rate"; screenNameMap[SCREEN_BLOCK_FEE_RATE] = "Block Fee Rate";
@ -265,7 +262,7 @@ void setupWebsocketClients(void *pvParameters)
{ {
setupBlockNotify(); setupBlockNotify();
if (preferences.getBool("fetchEurPrice", false)) if (preferences.getBool("fetchEurPrice", DEFAULT_FETCH_EUR_PRICE))
{ {
setupPriceFetchTask(); setupPriceFetchTask();
} }
@ -287,7 +284,7 @@ void setupTimers()
void finishSetup() void finishSetup()
{ {
if (preferences.getBool("ledStatus", false)) if (preferences.getBool("ledStatus", DEFAULT_LED_STATUS))
{ {
restoreLedState(); restoreLedState();
} }
@ -711,7 +708,7 @@ String getMyHostname()
// WiFi.macAddress(mac); // WiFi.macAddress(mac);
esp_efuse_mac_get_default(mac); esp_efuse_mac_get_default(mac);
char hostname[15]; char hostname[15];
String hostnamePrefix = preferences.getString("hostnamePrefix", "btclock"); String hostnamePrefix = preferences.getString("hostnamePrefix", DEFAULT_HOSTNAME_PREFIX);
snprintf(hostname, sizeof(hostname), "%s-%02x%02x%02x", hostnamePrefix, snprintf(hostname, sizeof(hostname), "%s-%02x%02x%02x", hostnamePrefix,
mac[3], mac[4], mac[5]); mac[3], mac[4], mac[5]);
return hostname; return hostname;
@ -734,16 +731,16 @@ void setupFrontlight()
if (!preferences.isKey("flMaxBrightness")) if (!preferences.isKey("flMaxBrightness"))
{ {
preferences.putUInt("flMaxBrightness", 2048); preferences.putUInt("flMaxBrightness", DEFAULT_FL_MAX_BRIGHTNESS);
} }
if (!preferences.isKey("flEffectDelay")) if (!preferences.isKey("flEffectDelay"))
{ {
preferences.putUInt("flEffectDelay", 15); preferences.putUInt("flEffectDelay", DEFAULT_FL_EFFECT_DELAY);
} }
if (!preferences.isKey("flFlashOnUpd")) if (!preferences.isKey("flFlashOnUpd"))
{ {
preferences.putBool("flFlashOnUpd", false); preferences.putBool("flFlashOnUpd", DEFAULT_FL_FLASH_ON_UPDATE);
} }
} }

View file

@ -26,17 +26,12 @@
#endif #endif
#define NTP_SERVER "pool.ntp.org" #define NTP_SERVER "pool.ntp.org"
#define DEFAULT_MEMPOOL_INSTANCE "mempool.space" #define DEFAULT_TIME_OFFSET_SECONDS 3600
#define TIME_OFFSET_SECONDS 3600
#define USER_AGENT "BTClock/3.0" #define USER_AGENT "BTClock/3.0"
#ifndef MCP_DEV_ADDR #ifndef MCP_DEV_ADDR
#define MCP_DEV_ADDR 0x20 #define MCP_DEV_ADDR 0x20
#endif #endif
#define DEFAULT_SECONDS_BETWEEN_PRICE_UPDATE 30
#define DEFAULT_MINUTES_FULL_REFRESH 60
#define DEFAULT_FG_COLOR GxEPD_WHITE
#define DEFAULT_BG_COLOR GxEPD_BLACK
void setup(); void setup();
void syncTime(); void syncTime();

43
src/lib/defaults.hpp Normal file
View file

@ -0,0 +1,43 @@
#define INITIAL_BLOCK_HEIGHT 851500
#define INITIAL_LAST_PRICE 50000
#define DEFAULT_TX_POWER 0
#define DEFAULT_MEMPOOL_SECURE true
#define DEFAULT_LED_TEST_ON_POWER true
#define DEFAULT_LED_FLASH_ON_UPD false
#define DEFAULT_LED_BRIGHTNESS 128
#define DEFAULT_STEAL_FOCUS false
#define DEFAULT_MCAP_BIG_CHAR true
#define DEFAULT_MDNS_ENABLED true
#define DEFAULT_OTA_ENABLED true
#define DEFAULT_FETCH_EUR_PRICE false
#define DEFAULT_USE_SATS_SYMBOL false
#define DEFAULT_USE_BLOCK_COUNTDOWN true
#define DEFAULT_SUFFIX_PRICE false
#define DEFAULT_DISABLE_LEDS false
#define DEFAULT_OWN_DATA_SOURCE true
#define DEFAULT_TIME_OFFSET_SECONDS 3600
#define DEFAULT_HOSTNAME_PREFIX "btclock"
#define DEFAULT_MEMPOOL_INSTANCE "mempool.space"
#define DEFAULT_SECONDS_BETWEEN_PRICE_UPDATE 30
#define DEFAULT_MINUTES_FULL_REFRESH 60
#define DEFAULT_FG_COLOR GxEPD_WHITE
#define DEFAULT_BG_COLOR GxEPD_BLACK
#define DEFAULT_WP_TIMEOUT 15*60
#define DEFAULT_FL_MAX_BRIGHTNESS 2048
#define DEFAULT_FL_EFFECT_DELAY 15
#define DEFAULT_LUX_LIGHT_TOGGLE 128
#define DEFAULT_FL_ALWAYS_ON false
#define DEFAULT_FL_FLASH_ON_UPDATE false
#define DEFAULT_LED_STATUS false
#define DEFAULT_TIMER_ACTIVE true
#define DEFAULT_TIMER_SECONDS 1800
#define DEFAULT_CURRENT_SCREEN 0

View file

@ -209,7 +209,7 @@ void ledTask(void *parameter)
pdPASS) pdPASS)
{ {
if (preferences.getBool("disableLeds", false)) if (preferences.getBool("disableLeds", DEFAULT_DISABLE_LEDS))
{ {
continue; continue;
} }
@ -221,7 +221,9 @@ void ledTask(void *parameter)
{ {
oldLights[i] = pixels.getPixelColor(i); oldLights[i] = pixels.getPixelColor(i);
} }
#ifdef HAS_FRONTLIGHT
uint flDelayTime = preferences.getUInt("flEffectDelay");
#endif
switch (ledTaskParams) switch (ledTaskParams)
{ {
case LED_POWER_TEST: case LED_POWER_TEST:
@ -274,32 +276,32 @@ void ledTask(void *parameter)
#ifdef HAS_FRONTLIGHT #ifdef HAS_FRONTLIGHT
bool frontlightWasOn = false; bool frontlightWasOn = false;
if (preferences.getBool("flFlashOnUpd", false)) if (preferences.getBool("flFlashOnUpd", DEFAULT_FL_FLASH_ON_UPDATE))
{ {
if (frontlightOn) if (frontlightOn)
{ {
frontlightWasOn = true; frontlightWasOn = true;
frontlightFadeOutAll(1); frontlightFadeOutAll(flDelayTime, true);
} }
else else
{ {
frontlightFadeInAll(1); frontlightFadeInAll(flDelayTime, true);
} }
} }
#endif #endif
blinkDelayTwoColor(250, 3, pixels.Color(224, 67, 0), blinkDelayTwoColor(250, 3, pixels.Color(224, 67, 0),
pixels.Color(8, 2, 0)); pixels.Color(8, 2, 0));
#ifdef HAS_FRONTLIGHT #ifdef HAS_FRONTLIGHT
if (preferences.getBool("flFlashOnUpd", false)) if (preferences.getBool("flFlashOnUpd", DEFAULT_FL_FLASH_ON_UPDATE))
{ {
vTaskDelay(pdMS_TO_TICKS(10)); vTaskDelay(pdMS_TO_TICKS(10));
if (frontlightWasOn) if (frontlightWasOn)
{ {
frontlightFadeInAll(1); frontlightFadeInAll(flDelayTime, true);
} }
else else
{ {
frontlightFadeOutAll(1); frontlightFadeOutAll(flDelayTime, true);
} }
} }
#endif #endif
@ -397,11 +399,11 @@ void ledTask(void *parameter)
void setupLeds() void setupLeds()
{ {
pixels.begin(); pixels.begin();
pixels.setBrightness(preferences.getUInt("ledBrightness", 128)); pixels.setBrightness(preferences.getUInt("ledBrightness", DEFAULT_LED_BRIGHTNESS));
pixels.clear(); pixels.clear();
pixels.show(); pixels.show();
setupLedTask(); setupLedTask();
if (preferences.getBool("ledTestOnPower", true)) if (preferences.getBool("ledTestOnPower", DEFAULT_LED_TEST_ON_POWER))
{ {
while (!ledTaskQueue) while (!ledTaskQueue)
{ {

View file

@ -4,7 +4,7 @@ TaskHandle_t taskOtaHandle = NULL;
bool isOtaUpdating = false; bool isOtaUpdating = false;
void setupOTA() { void setupOTA() {
if (preferences.getBool("otaEnabled", true)) { if (preferences.getBool("otaEnabled", DEFAULT_OTA_ENABLED)) {
ArduinoOTA.onStart(onOTAStart); ArduinoOTA.onStart(onOTAStart);
ArduinoOTA.onProgress(onOTAProgress); ArduinoOTA.onProgress(onOTAProgress);

View file

@ -43,9 +43,7 @@ bool priceNotifyInit = false;
void setupPriceNotify() void setupPriceNotify()
{ {
// currentPrice = preferences.get("lastPrice", 30000); if (preferences.getBool("ownDataSource", DEFAULT_OWN_DATA_SOURCE))
if (preferences.getBool("ownDataSource", true))
{ {
config = {.uri = wsOwnServerPrice, config = {.uri = wsOwnServerPrice,
.user_agent = USER_AGENT}; .user_agent = USER_AGENT};
@ -76,7 +74,7 @@ void onWebsocketPriceEvent(void *handler_args, esp_event_base_t base,
break; break;
case WEBSOCKET_EVENT_DATA: case WEBSOCKET_EVENT_DATA:
onWebsocketPriceMessage(data); onWebsocketPriceMessage(data);
if (preferences.getBool("ownDataSource", true)) if (preferences.getBool("ownDataSource", DEFAULT_OWN_DATA_SOURCE))
{ {
onWebsocketBlockMessage(data); onWebsocketBlockMessage(data);
} }

View file

@ -30,17 +30,17 @@ void workerTask(void *pvParameters) {
case TASK_PRICE_UPDATE: { case TASK_PRICE_UPDATE: {
uint price = getPrice(); uint price = getPrice();
char priceSymbol = '$'; char priceSymbol = '$';
if (preferences.getBool("fetchEurPrice", false)) { if (preferences.getBool("fetchEurPrice", DEFAULT_FETCH_EUR_PRICE)) {
priceSymbol = '['; priceSymbol = '[';
} }
if (getCurrentScreen() == SCREEN_BTC_TICKER) { if (getCurrentScreen() == SCREEN_BTC_TICKER) {
taskEpdContent = parsePriceData(price, priceSymbol, preferences.getBool("suffixPrice", false)); taskEpdContent = parsePriceData(price, priceSymbol, preferences.getBool("suffixPrice", DEFAULT_SUFFIX_PRICE));
} else if (getCurrentScreen() == SCREEN_MSCW_TIME) { } else if (getCurrentScreen() == SCREEN_MSCW_TIME) {
taskEpdContent = parseSatsPerCurrency(price, priceSymbol, preferences.getBool("useSatsSymbol", false)); taskEpdContent = parseSatsPerCurrency(price, priceSymbol, preferences.getBool("useSatsSymbol", DEFAULT_USE_SATS_SYMBOL));
} else { } else {
taskEpdContent = taskEpdContent =
parseMarketCap(getBlockHeight(), price, priceSymbol, parseMarketCap(getBlockHeight(), price, priceSymbol,
preferences.getBool("mcapBigChar", true)); preferences.getBool("mcapBigChar", DEFAULT_MCAP_BIG_CHAR));
} }
setEpdContent(taskEpdContent); setEpdContent(taskEpdContent);
@ -57,7 +57,7 @@ void workerTask(void *pvParameters) {
if (getCurrentScreen() != SCREEN_HALVING_COUNTDOWN) { if (getCurrentScreen() != SCREEN_HALVING_COUNTDOWN) {
taskEpdContent = parseBlockHeight(getBlockHeight()); taskEpdContent = parseBlockHeight(getBlockHeight());
} else { } else {
taskEpdContent = parseHalvingCountdown(getBlockHeight(), preferences.getBool("useBlkCountdown", true)); taskEpdContent = parseHalvingCountdown(getBlockHeight(), preferences.getBool("useBlkCountdown", DEFAULT_USE_BLOCK_COUNTDOWN));
} }
if (getCurrentScreen() == SCREEN_HALVING_COUNTDOWN || if (getCurrentScreen() == SCREEN_HALVING_COUNTDOWN ||
@ -147,7 +147,7 @@ void setupTasks() {
&taskScreenRotateTaskHandle); &taskScreenRotateTaskHandle);
waitUntilNoneBusy(); waitUntilNoneBusy();
setCurrentScreen(preferences.getUInt("currentScreen", 0)); setCurrentScreen(preferences.getUInt("currentScreen", DEFAULT_CURRENT_SCREEN));
} }
void setupTimeUpdateTimer(void *pvParameters) { void setupTimeUpdateTimer(void *pvParameters) {
@ -180,7 +180,7 @@ void setupScreenRotateTimer(void *pvParameters) {
esp_timer_create(&screenRotateTimerConfig, &screenRotateTimer); esp_timer_create(&screenRotateTimerConfig, &screenRotateTimer);
if (preferences.getBool("timerActive", true)) { if (preferences.getBool("timerActive", DEFAULT_TIMER_ACTIVE)) {
esp_timer_start_periodic(screenRotateTimer, esp_timer_start_periodic(screenRotateTimer,
getTimerSeconds() * usPerSecond); getTimerSeconds() * usPerSecond);
} }
@ -188,7 +188,7 @@ void setupScreenRotateTimer(void *pvParameters) {
vTaskDelete(NULL); vTaskDelete(NULL);
} }
uint getTimerSeconds() { return preferences.getUInt("timerSeconds", 1800); } uint getTimerSeconds() { return preferences.getUInt("timerSeconds", DEFAULT_TIMER_SECONDS); }
bool isTimerActive() { return esp_timer_is_active(screenRotateTimer); } bool isTimerActive() { return esp_timer_is_active(screenRotateTimer); }

View file

@ -11,6 +11,8 @@
#include <mutex> #include <mutex>
#include <utils.hpp> #include <utils.hpp>
#include "defaults.hpp"
extern Adafruit_MCP23X17 mcp1; extern Adafruit_MCP23X17 mcp1;
#ifdef IS_BTCLOCK_S3 #ifdef IS_BTCLOCK_S3
extern Adafruit_MCP23X17 mcp2; extern Adafruit_MCP23X17 mcp2;

View file

@ -69,7 +69,7 @@ void setupWebserver()
// server.on("^\\/api\\/lights\\/([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$", HTTP_GET, // server.on("^\\/api\\/lights\\/([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$", HTTP_GET,
// onApiLightsSetColor); // onApiLightsSetColor);
if (preferences.getBool("otaEnabled", true)) if (preferences.getBool("otaEnabled", DEFAULT_OTA_ENABLED))
{ {
server.on("/upload/firmware", HTTP_POST, onFirmwareUpdate, asyncFirmwareUpdateHandler); server.on("/upload/firmware", HTTP_POST, onFirmwareUpdate, asyncFirmwareUpdateHandler);
server.on("/upload/webui", HTTP_POST, onFirmwareUpdate, asyncWebuiUpdateHandler); server.on("/upload/webui", HTTP_POST, onFirmwareUpdate, asyncWebuiUpdateHandler);
@ -94,7 +94,7 @@ void setupWebserver()
server.begin(); server.begin();
if (preferences.getBool("mdnsEnabled", true)) if (preferences.getBool("mdnsEnabled", DEFAULT_MDNS_ENABLED))
{ {
if (!MDNS.begin(getMyHostname())) if (!MDNS.begin(getMyHostname()))
{ {
@ -454,7 +454,7 @@ void onApiSettingsPatch(AsyncWebServerRequest *request, JsonVariant &json)
} }
} }
String uintSettings[] = {"minSecPriceUpd", "fullRefreshMin", "ledBrightness", "flMaxBrightness", "flEffectDelay", "luxLightToggle"}; String uintSettings[] = {"minSecPriceUpd", "fullRefreshMin", "ledBrightness", "flMaxBrightness", "flEffectDelay", "luxLightToggle", "wpTimeout"};
for (String setting : uintSettings) for (String setting : uintSettings)
{ {
@ -572,39 +572,38 @@ void onApiSettingsGet(AsyncWebServerRequest *request)
"minSecPriceUpd", DEFAULT_SECONDS_BETWEEN_PRICE_UPDATE); "minSecPriceUpd", DEFAULT_SECONDS_BETWEEN_PRICE_UPDATE);
root["fullRefreshMin"] = root["fullRefreshMin"] =
preferences.getUInt("fullRefreshMin", DEFAULT_MINUTES_FULL_REFRESH); preferences.getUInt("fullRefreshMin", DEFAULT_MINUTES_FULL_REFRESH);
root["wpTimeout"] = preferences.getUInt("wpTimeout", 600); root["wpTimeout"] = preferences.getUInt("wpTimeout", DEFAULT_WP_TIMEOUT);
root["tzOffset"] = preferences.getInt("gmtOffset", TIME_OFFSET_SECONDS) / 60; root["tzOffset"] = preferences.getInt("gmtOffset", DEFAULT_TIME_OFFSET_SECONDS) / 60;
// root["useBitcoinNode"] = preferences.getBool("useNode", false);
root["mempoolInstance"] = root["mempoolInstance"] =
preferences.getString("mempoolInstance", DEFAULT_MEMPOOL_INSTANCE); preferences.getString("mempoolInstance", DEFAULT_MEMPOOL_INSTANCE);
root["mempoolSecure"] = preferences.getBool("mempoolSecure", true); root["mempoolSecure"] = preferences.getBool("mempoolSecure", DEFAULT_MEMPOOL_SECURE);
root["ledTestOnPower"] = preferences.getBool("ledTestOnPower", true); root["ledTestOnPower"] = preferences.getBool("ledTestOnPower", DEFAULT_LED_TEST_ON_POWER);
root["ledFlashOnUpd"] = preferences.getBool("ledFlashOnUpd", false); root["ledFlashOnUpd"] = preferences.getBool("ledFlashOnUpd", DEFAULT_LED_FLASH_ON_UPD);
root["ledBrightness"] = preferences.getUInt("ledBrightness", 128); root["ledBrightness"] = preferences.getUInt("ledBrightness", DEFAULT_LED_BRIGHTNESS);
root["stealFocus"] = preferences.getBool("stealFocus", false); root["stealFocus"] = preferences.getBool("stealFocus", DEFAULT_STEAL_FOCUS);
root["mcapBigChar"] = preferences.getBool("mcapBigChar", true); root["mcapBigChar"] = preferences.getBool("mcapBigChar", DEFAULT_MCAP_BIG_CHAR);
root["mdnsEnabled"] = preferences.getBool("mdnsEnabled", true); root["mdnsEnabled"] = preferences.getBool("mdnsEnabled", DEFAULT_MDNS_ENABLED);
root["otaEnabled"] = preferences.getBool("otaEnabled", true); root["otaEnabled"] = preferences.getBool("otaEnabled", DEFAULT_OTA_ENABLED);
root["fetchEurPrice"] = preferences.getBool("fetchEurPrice", false); root["fetchEurPrice"] = preferences.getBool("fetchEurPrice", DEFAULT_FETCH_EUR_PRICE);
root["useSatsSymbol"] = preferences.getBool("useSatsSymbol", false); root["useSatsSymbol"] = preferences.getBool("useSatsSymbol", DEFAULT_USE_SATS_SYMBOL);
root["useBlkCountdown"] = preferences.getBool("useBlkCountdown", true); root["useBlkCountdown"] = preferences.getBool("useBlkCountdown", DEFAULT_USE_BLOCK_COUNTDOWN);
root["suffixPrice"] = preferences.getBool("suffixPrice", false); root["suffixPrice"] = preferences.getBool("suffixPrice", DEFAULT_SUFFIX_PRICE);
root["disableLeds"] = preferences.getBool("disableLeds", false); root["disableLeds"] = preferences.getBool("disableLeds", DEFAULT_DISABLE_LEDS);
root["hostnamePrefix"] = preferences.getString("hostnamePrefix", "btclock"); root["hostnamePrefix"] = preferences.getString("hostnamePrefix", DEFAULT_HOSTNAME_PREFIX);
root["hostname"] = getMyHostname(); root["hostname"] = getMyHostname();
root["ip"] = WiFi.localIP(); root["ip"] = WiFi.localIP();
root["txPower"] = WiFi.getTxPower(); root["txPower"] = WiFi.getTxPower();
root["ownDataSource"] = preferences.getBool("ownDataSource", true); root["ownDataSource"] = preferences.getBool("ownDataSource", DEFAULT_OWN_DATA_SOURCE);
#ifdef HAS_FRONTLIGHT #ifdef HAS_FRONTLIGHT
root["hasFrontlight"] = true; root["hasFrontlight"] = true;
root["flMaxBrightness"] = preferences.getUInt("flMaxBrightness", 2048); root["flMaxBrightness"] = preferences.getUInt("flMaxBrightness", DEFAULT_FL_MAX_BRIGHTNESS);
root["flAlwaysOn"] = preferences.getBool("flAlwaysOn", false); root["flAlwaysOn"] = preferences.getBool("flAlwaysOn", DEFAULT_FL_ALWAYS_ON);
root["flEffectDelay"] = preferences.getUInt("flEffectDelay"); root["flEffectDelay"] = preferences.getUInt("flEffectDelay", DEFAULT_FL_EFFECT_DELAY);
root["flFlashOnUpd"] = preferences.getBool("flFlashOnUpd", false); root["flFlashOnUpd"] = preferences.getBool("flFlashOnUpd", DEFAULT_FL_FLASH_ON_UPDATE);
root["hasLightLevel"] = hasLightLevel(); root["hasLightLevel"] = hasLightLevel();
root["luxLightToggle"] = preferences.getUInt("luxLightToggle", 128); root["luxLightToggle"] = preferences.getUInt("luxLightToggle", DEFAULT_LUX_LIGHT_TOGGLE);
#else #else
root["hasFrontlight"] = false; root["hasFrontlight"] = false;
root["hasLightLevel"] = false; root["hasLightLevel"] = false;

View file

@ -48,7 +48,7 @@ extern "C" void app_main()
if (!getIsOTAUpdating()) if (!getIsOTAUpdating())
{ {
#ifdef HAS_FRONTLIGHT #ifdef HAS_FRONTLIGHT
if (preferences.getUInt("luxLightToggle", 128) != 0) if (preferences.getUInt("luxLightToggle", DEFAULT_LUX_LIGHT_TOGGLE) != 0)
{ {
if (hasLightLevel() && getLightLevel() == 0) if (hasLightLevel() && getLightLevel() == 0)
{ {
@ -56,11 +56,11 @@ extern "C" void app_main()
frontlightFadeOutAll(); frontlightFadeOutAll();
} }
} }
else if (hasLightLevel() && getLightLevel() < preferences.getUInt("luxLightToggle", 128) && !frontlightIsOn()) else if (hasLightLevel() && getLightLevel() < preferences.getUInt("luxLightToggle", DEFAULT_LUX_LIGHT_TOGGLE) && !frontlightIsOn())
{ {
frontlightFadeInAll(); frontlightFadeInAll();
} }
else if (frontlightIsOn() && getLightLevel() > preferences.getUInt("luxLightToggle", 128)) else if (frontlightIsOn() && getLightLevel() > preferences.getUInt("luxLightToggle", DEFAULT_LUX_LIGHT_TOGGLE))
{ {
frontlightFadeOutAll(); frontlightFadeOutAll();
} }
@ -91,7 +91,7 @@ extern "C" void app_main()
Serial.println(F("Connection restored, reset timer.")); Serial.println(F("Connection restored, reset timer."));
} }
if (getPriceNotifyInit() && !preferences.getBool("fetchEurPrice", false) && !isPriceNotifyConnected()) if (getPriceNotifyInit() && !preferences.getBool("fetchEurPrice", DEFAULT_FETCH_EUR_PRICE) && !isPriceNotifyConnected())
{ {
priceNotifyLostConnection++; priceNotifyLostConnection++;
Serial.println(F("Lost price data connection...")); Serial.println(F("Lost price data connection..."));