Skip to content

Commit 46dd88f

Browse files
committed
Fix heaters metrics; also other minor fixes/updates
1 parent addf910 commit 46dd88f

File tree

5 files changed

+26
-25
lines changed

5 files changed

+26
-25
lines changed

platformio.ini

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ lib_deps =
1818
SPI
1919
https://github.com/mathieucarbou/AsyncTCP.git#v3.2.4
2020
https://github.com/mathieucarbou/ESPAsyncWebServer.git#v3.1.5
21-
https://github.com/GuLinux/AsyncBufferedTcpLogger#v0.0.3
22-
https://github.com/GuLinux/AsyncWebserverUtils#v0.0.4
21+
https://github.com/GuLinux/AsyncBufferedTcpLogger#v0.0.4
22+
https://github.com/GuLinux/AsyncWebserverUtils#v0.0.5
2323
https://github.com/GuLinux/WiFiManager.git#v0.0.3
24-
https://github.com/GuLinux/ArduinoOTA-Manager.git#v0.0.1
24+
https://github.com/GuLinux/ArduinoOTA-Manager.git#v0.0.2
2525
ayushsharma82/ElegantOTA @ 3.1.1
2626
bblanchon/ArduinoJson@^7.2.0
2727
adafruit/Adafruit Unified Sensor@^1.1.14
@@ -55,8 +55,6 @@ board_build.filesystem = littlefs
5555
monitor_speed = 115200
5656
framework = arduino
5757

58-
[debug]
59-
build_type = debug
6058

6159
[env:lolin_s2_mini]
6260
board = lolin_s2_mini

src/configuration.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
#define APB_STATUS_LED_INVERT_LOGIC false
1414
#define WIFIMANAGER_MAX_STATIONS 5
15-
#define APB_NETWORK_LOGGER_BACKLOG 0
15+
#define APB_NETWORK_LOGGER_BACKLOG 20
1616
#define APB_AMBIENT_UPDATE_INTERVAL_SECONDS 5
1717
#define APB_HEATER_UPDATE_INTERVAL_SECONDS 5
1818
#define APB_AMBIENT_TEMPERATURE_SENSOR_I2C_ADDRESS 0x44

src/main.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,13 @@ void setup() {
6161
APB::InfluxDb::Instance.setup(scheduler);
6262

6363
APB::StatusLed::Instance.setup();
64+
#ifdef WIFI_POWER_TX
65+
WiFi.setTxPower(WIFI_POWER_TX);
66+
#endif
67+
#ifdef WIFI_POWER_RX
68+
WiFi.setTxPower(WIFI_POWER_RX);
69+
#endif
70+
6471

6572
WiFiManager::Instance.setOnConnectedCallback(std::bind(&APB::StatusLed::okPattern, &APB::StatusLed::Instance));
6673
WiFiManager::Instance.setOnConnectionFailedCallback(std::bind(&APB::StatusLed::wifiConnectionFailedPattern, &APB::StatusLed::Instance));
@@ -73,7 +80,7 @@ void setup() {
7380
std::for_each(APB::Heaters::Instance.begin(), APB::Heaters::Instance.end(), [i=0](APB::Heater &heater) mutable { heater.setup(i++, scheduler); });
7481

7582
webServer.setup();
76-
ArduinoOTAManager::Instance.setup(&LittleFS);
83+
ArduinoOTAManager::Instance.setup([](const char*s) { Log.warning(s); }, std::bind(&fs::LittleFSFS::end, &LittleFS));
7784
APB::History::Instance.setup(scheduler);
7885

7986
#ifdef ONEBUTTON_USER_BUTTON_1

src/webserver.cpp

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,6 @@
1414

1515
#define LOG_SCOPE "APB::WebServer "
1616

17-
#ifdef ALLOW_ALL_CORS
18-
#define ALLOW_CORS_VALUE true
19-
#else
20-
#define ALLOW_CORS_VALUE false
21-
#endif
22-
2317
using namespace std::placeholders;
2418
using namespace GuLinux;
2519

@@ -33,10 +27,13 @@ APB::WebServer::WebServer(Scheduler &scheduler) : AsyncWebServerBase{},
3327

3428
void APB::WebServer::setup() {
3529
Log.traceln(LOG_SCOPE "Setup");
30+
setupCors();
31+
setupElegantOTA();
32+
setupJsonNotFoundPage();
33+
#ifdef ALLOW_ALL_CORS
34+
setupCors();
35+
#endif
3636

37-
setupBase(true, ALLOW_CORS_VALUE);
38-
39-
4037
onJsonRequest("/api/config/accessPoint", std::bind(&WiFiManager::onConfigAccessPoint, &WiFiManager::Instance, _1, _2), HTTP_POST | HTTP_DELETE);
4138
onJsonRequest("/api/config/station", std::bind(&WiFiManager::onConfigStation, &WiFiManager::Instance, _1, _2), HTTP_POST | HTTP_DELETE);
4239
onJsonRequest("/api/config/statusLedDuty", std::bind(&WebServer::onConfigStatusLedDuty, this, _1, _2), HTTP_POST);
@@ -64,7 +61,6 @@ void APB::WebServer::setup() {
6461
webserver.serveStatic("/", LittleFS, "/web/").setDefaultFile("index.html");
6562
webserver.serveStatic("/static", LittleFS, "/web/static").setDefaultFile("index.html");
6663
webserver.addHandler(&events);
67-
webserver.onNotFound(std::bind(&APB::WebServer::onNotFound, this, _1));
6864
onJsonRequest("/api/heater", std::bind(&APB::WebServer::onPostSetHeater, this, _1, _2), HTTP_POST);
6965

7066
Log.infoln(LOG_SCOPE "Setup finished");
@@ -206,26 +202,26 @@ void APB::WebServer::onGetMetrics(AsyncWebServerRequest *request) {
206202
.gauge("ambient", ambientReading->humidity, MetricsResponse::Labels().unit("%").field("humidity"), nullptr, false)
207203
.gauge("ambient", ambientReading->dewpoint(), MetricsResponse::Labels().unit("°C").field("dewpoint"), nullptr, false);
208204
}
209-
std::for_each(Heaters::Instance.begin(), Heaters::Instance.end(), [index=0, &metricsResponse](const Heater &heater) mutable {
205+
std::for_each(Heaters::Instance.begin(), Heaters::Instance.end(), [&metricsResponse](const Heater &heater) {
210206
metricsResponse.gauge("heater", heater.maxDuty(), MetricsResponse::Labels()
211207
.add("index", String(heater.index()).c_str())
212208
.field("maxDuty")
213-
.add("mode", heater.modeAsString().c_str()), nullptr, index++==0);
209+
.add("mode", heater.modeAsString().c_str()), nullptr, heater.index() ==0);
214210
});
215-
std::for_each(Heaters::Instance.begin(), Heaters::Instance.end(), [index=0, &metricsResponse](const Heater &heater) mutable {
211+
std::for_each(Heaters::Instance.begin(), Heaters::Instance.end(), [&metricsResponse](const Heater &heater) {
216212
metricsResponse.gauge("heater", heater.duty(), MetricsResponse::Labels()
217213
.add("index", String(heater.index()).c_str())
218214
.field("duty")
219-
.add("mode", heater.modeAsString().c_str()), nullptr, index++==0);
215+
.add("mode", heater.modeAsString().c_str()), nullptr, false);
220216
});
221217

222-
std::for_each(Heaters::Instance.begin(), Heaters::Instance.end(), [index=0, &metricsResponse](const Heater &heater) mutable {
218+
std::for_each(Heaters::Instance.begin(), Heaters::Instance.end(), [&metricsResponse](const Heater &heater) {
223219
metricsResponse.gauge("heater", heater.active(), MetricsResponse::Labels()
224220
.add("index", String(heater.index()).c_str())
225221
.field("active")
226222
.add("mode", heater.modeAsString().c_str()), nullptr, false);
227223
});
228-
std::for_each(Heaters::Instance.begin(), Heaters::Instance.end(), [index=0, &metricsResponse](const Heater &heater) mutable {
224+
std::for_each(Heaters::Instance.begin(), Heaters::Instance.end(), [&metricsResponse](const Heater &heater) {
229225
if(heater.temperature().has_value()) {
230226
metricsResponse.gauge("heater", heater.temperature().value(), MetricsResponse::Labels()
231227
.add("index", String(heater.index()).c_str())
@@ -234,7 +230,7 @@ void APB::WebServer::onGetMetrics(AsyncWebServerRequest *request) {
234230
.add("mode", heater.modeAsString().c_str()), nullptr, false);
235231
}
236232
});
237-
std::for_each(Heaters::Instance.begin(), Heaters::Instance.end(), [index=0, &metricsResponse](const Heater &heater) mutable {
233+
std::for_each(Heaters::Instance.begin(), Heaters::Instance.end(), [&metricsResponse](const Heater &heater) {
238234
if(heater.targetTemperature().has_value()) {
239235
metricsResponse.gauge("heater_target_temperature", heater.targetTemperature().value(), MetricsResponse::Labels()
240236
.add("index", String(heater.index()).c_str())

web/src/setupProxy.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const { createProxyMiddleware } = require('http-proxy-middleware');
22

33
module.exports = function(app) {
4-
const target = 'http://astropowerbox-travel.lan'
4+
const target = 'http://astropowerbox-c11.lan'
55
console.log(`****** proxy setup: "/api" => ${target}`)
66
app.use(
77
'/api',

0 commit comments

Comments
 (0)