From dc4e5e37810f90b43ac1311e24e82c7a75b38620 Mon Sep 17 00:00:00 2001
From: DTTerastar
Date: Tue, 21 Sep 2021 20:51:54 -0400
Subject: [PATCH] Auto Updatie made a setting
---
.github/workflows/main.yml | 4 ++--
CHANGELOG.md | 5 +++++
platformio.ini | 28 +++++++++++-----------------
src/Settings.h | 6 ++++++
src/main.cpp | 5 ++++-
src/main.h | 18 +++++++++++++-----
6 files changed, 41 insertions(+), 25 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index d5cc083..62b3699 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -30,15 +30,15 @@ jobs:
run: echo "PLATFORMIO_BUILD_FLAGS=-DVERSION='\"${GITHUB_REF#refs/*/}\"'" >> $GITHUB_ENV
if: startsWith(github.ref, 'refs/tags/')
- name: Run PlatformIO
- run: pio run -e esp32 -e esp32-noupdate -e esp32-verbose -e m5stickc -e m5stickc-plus -e m5atom-matrix
+ run: pio run -e esp32 -e esp32-verbose -e m5stickc -e m5stickc-plus -e m5atom-matrix -e macchina-a0
- name: Rename firmware
run: |
cp .pio/build/esp32/firmware.bin esp32.bin
cp .pio/build/esp32-verbose/firmware.bin esp32-verbose.bin
- cp .pio/build/esp32-noupdate/firmware.bin esp32-noupdate.bin
cp .pio/build/m5stickc/firmware.bin m5stickc.bin
cp .pio/build/m5stickc-plus/firmware.bin m5stickc-plus.bin
cp .pio/build/m5atom-matrix/firmware.bin m5atom-matrix.bin
+ cp .pio/build/macchina-a0/firmware.bin macchina-a0.bin
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d2b5bb3..7c11c19 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [1.6.1]
+
+- Replaced NOUPDATE flavor with an autoupdate preference (#50)
+- Add Macchina A0 flavor with battery mv reading (#51)
+
## [1.6.0]
- Web portal works after wifi connection details established (#13)
diff --git a/platformio.ini b/platformio.ini
index 98dabd1..4407da0 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -31,19 +31,6 @@ monitor_speed = 115200
monitor_filters = esp32_exception_decoder
build_flags =
-D FIRMWARE='"esp32"'
- -Wall
-
-[env:esp32-noupdate]
-platform = espressif32
-framework = arduino
-board = esp32dev
-lib_deps = ${common_env_data.lib_deps_external}
-board_build.partitions = partitions_singleapp.csv
-monitor_speed = 115200
-build_flags =
- -D FIRMWARE='"esp32-noupdate"'
- -D NOUPDATE
- -Wall
[env:esp32-verbose]
platform = espressif32
@@ -58,7 +45,6 @@ build_flags =
-D CORE_DEBUG_LEVEL=2
-D FIRMWARE='"esp32-verbose"'
-D VERBOSE
- -Wall
[env:m5stickc]
platform = espressif32
@@ -73,7 +59,6 @@ monitor_filters = esp32_exception_decoder
build_flags =
-D M5STICK
-D FIRMWARE='"m5stickc"'
- -Wall
[env:m5stickc-plus]
platform = espressif32
@@ -89,7 +74,6 @@ build_flags =
-D M5STICK
-D PLUS
-D FIRMWARE='"m5stickc-plus"'
- -Wall
[env:m5atom-matrix]
platform = espressif32
@@ -106,4 +90,14 @@ build_flags =
-D M5ATOM
-D MATRIX
-D FIRMWARE='"m5atom-matrix"'
- -Wall
+
+[env:macchina-a0]
+platform = espressif32
+framework = arduino
+board = esp32dev
+lib_deps = ${common_env_data.lib_deps_external}
+board_build.partitions = partitions_singleapp.csv
+monitor_speed = 115200
+build_flags =
+ -D MACCHINA_A0
+ -D FIRMWARE='"macchina-a0"'
diff --git a/src/Settings.h b/src/Settings.h
index b8dd915..a636a9a 100644
--- a/src/Settings.h
+++ b/src/Settings.h
@@ -40,3 +40,9 @@
// Number of seconds between update checks
#define CHECK_FOR_UPDATES_INTERVAL 300
+
+#ifdef VERSION
+#define DEFAULT_AUTO_UPDATE true
+#else
+#define DEFAULT_AUTO_UPDATE false
+#endif
diff --git a/src/main.cpp b/src/main.cpp
index d5d4b54..2c1ad3b 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -27,7 +27,9 @@ bool sendTelemetry(int totalSeen = -1, int totalReported = -1, int totalAdverts
tele["uptime"] = getUptimeSeconds();
tele["firm"] = String(FIRMWARE);
tele["rssi"] = WiFi.RSSI();
-
+#ifdef MACCHINA_A0
+ tele["batt"] = a0_read_batt_mv() / 1000.0f;
+#endif
#ifdef VERSION
tele["ver"] = String(VERSION);
#endif
@@ -102,6 +104,7 @@ void connectToWifi()
WiFiSettings.heading("Preferences");
+ autoUpdate = WiFiSettings.checkbox("auto_update", DEFAULT_AUTO_UPDATE, "Automatically Update");
discovery = WiFiSettings.checkbox("discovery", true, "Home Assistant Discovery");
activeScan = WiFiSettings.checkbox("active_scan", true, "Active scanning (uses more battery but more results)");
publishTele = WiFiSettings.checkbox("pub_tele", true, "Send to telemetry topic");
diff --git a/src/main.h b/src/main.h
index 340f079..d922456 100644
--- a/src/main.h
+++ b/src/main.h
@@ -40,11 +40,12 @@ String statusTopic;
String teleTopic;
String roomsTopic;
String subTopic;
+bool autoUpdate;
+bool discovery;
bool activeScan;
bool publishTele;
bool publishRooms;
bool publishDevices;
-bool discovery;
int maxDistance;
int pirPin;
int radarPin;
@@ -159,8 +160,7 @@ void configureOTA()
void firmwareUpdate()
{
-#ifndef NOUPDATE
-#ifdef VERSION
+ if (!autoUpdate) return;
static long lastFirmwareCheck = 0;
long uptime = getUptimeSeconds();
if (uptime - lastFirmwareCheck < CHECK_FOR_UPDATES_INTERVAL)
@@ -176,6 +176,7 @@ void firmwareUpdate()
if (!http.begin(client, firmwareUrl))
return;
+#ifdef VERSION
int httpCode = http.sendRequest("HEAD");
if (httpCode < 300 || httpCode > 400 || http.getLocation().indexOf(String(VERSION)) > 0)
{
@@ -187,6 +188,7 @@ void firmwareUpdate()
{
Serial.printf("Updating from (sc=%d): %s\n", httpCode, http.getLocation().c_str());
}
+#endif
updateInProgress = true;
fingerprints.setDisable(updateInProgress);
@@ -212,8 +214,6 @@ void firmwareUpdate()
}
updateInProgress = false;
-#endif
-#endif
}
void spiffsInit()
@@ -362,3 +362,11 @@ bool spurt(const String &fn, const String &content)
f.close();
return w == content.length();
}
+
+#ifdef MACCHINA_A0
+int a0_read_batt_mv()
+{
+ float vout = ((float)analogRead(GPIO_NUM_35) + 35) / 215.0;
+ return vout * 1100; // V to mV with +10% correction
+}
+#endif