Merge branch 'dev' of https://github.com/emsesp/EMS-ESP32 into dev
@@ -21,7 +21,7 @@
|
||||
- Native support for Home Assistant, Domoticz and openHAB via [MQTT Discovery](https://www.home-assistant.io/docs/mqtt/discovery/)
|
||||
- Can run standalone as an independent WiFi Access Point or join an existing WiFi network
|
||||
- Easy first-time configuration via a web Captive Portal
|
||||
- Support for more than [110+ EMS devices](https://emsesp.github.io/docs/All-Devices/) (boilers, thermostats, solar modules, mixer modules, heat pumps, gateways, switches, heat sources)
|
||||
- Support for more than [120+ EMS devices](https://emsesp.github.io/docs/All-Devices/) (boilers, thermostats, solar modules, mixer modules, heat pumps, gateways, switches, heat sources)
|
||||
|
||||
## **Documentation**
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { defineConfig, splitVendorChunkPlugin } from 'vite';
|
||||
import { defineConfig } from 'vite';
|
||||
import viteTsconfigPaths from 'vite-tsconfig-paths';
|
||||
import preact from '@preact/preset-vite';
|
||||
import viteImagemin from 'vite-plugin-imagemin';
|
||||
@@ -30,6 +30,7 @@ export default defineConfig(({ command, mode }) => {
|
||||
}
|
||||
|
||||
if (mode === 'hosted') {
|
||||
console.log('Preparing for hosted build');
|
||||
return {
|
||||
plugins: [preact(), viteTsconfigPaths()],
|
||||
build: {
|
||||
@@ -38,11 +39,12 @@ export default defineConfig(({ command, mode }) => {
|
||||
};
|
||||
}
|
||||
|
||||
console.log('Preparing for production, optimized build');
|
||||
|
||||
return {
|
||||
plugins: [
|
||||
preact(),
|
||||
viteTsconfigPaths(),
|
||||
splitVendorChunkPlugin(),
|
||||
{
|
||||
...viteImagemin({
|
||||
verbose: false,
|
||||
|
||||
|
Before Width: | Height: | Size: 262 KiB After Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 139 KiB After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 293 KiB After Width: | Height: | Size: 173 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 556 KiB |
|
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 61 KiB |
@@ -10,11 +10,13 @@
|
||||
; -DEMSESP_TEST ; enable the tests. EN language only
|
||||
; -DEMSESP_DE_ONLY ; only DE translated entity names
|
||||
; -DEMSESP_EN_ONLY ; only EN translated entity names
|
||||
; -DEMSESP_PINGTEST ; send log message every 1/2 second
|
||||
; my_build_flags = -DEMSESP_TEST
|
||||
; my_build_flags = -DEMSESP_DEBUG -DEMSESP_TEST
|
||||
; my_build_flags = -DEMSESP_DEBUG -DEMSESP_TEST -DEMSESP_PINGTEST
|
||||
|
||||
[platformio]
|
||||
; default_envs = esp32_4M
|
||||
default_envs = esp32_4M
|
||||
; default_envs = esp32_16M
|
||||
; default_envs = lolin_s3
|
||||
; default_envs = standalone
|
||||
@@ -32,13 +34,13 @@
|
||||
; upload_port = /dev/ttyUSB*
|
||||
; upload_port = COM5
|
||||
extra_scripts =
|
||||
; pre:scripts/build_interface.py ; comment out if you don't want to re-build the WebUI each time
|
||||
pre:scripts/build_interface.py ; comment out if you don't want to re-build the WebUI each time
|
||||
scripts/rename_fw.py
|
||||
|
||||
[env:esp32_16M]
|
||||
|
||||
[env:custom]
|
||||
; use for baisc ESP boards with 4MB flash
|
||||
; use for basic ESP boards with 4MB flash
|
||||
; make sure -D TASMOTA_SDK is also enabled
|
||||
platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.01.00/platform-espressif32.zip
|
||||
; use for S3 boards:
|
||||
@@ -76,7 +78,7 @@ build_flags =
|
||||
[env:lolin_s3]
|
||||
upload_port = /dev/ttyUSB0
|
||||
extra_scripts =
|
||||
; pre:scripts/build_interface.py ; comment out if you don't want to re-build the WebUI each time
|
||||
pre:scripts/build_interface.py ; comment out if you don't want to re-build the WebUI each time
|
||||
scripts/rename_fw.py
|
||||
|
||||
; pio run -e debug
|
||||
|
||||
@@ -752,6 +752,11 @@ void System::system_check() {
|
||||
if (!last_system_check_ || ((uint32_t)(uuid::get_uptime() - last_system_check_) >= SYSTEM_CHECK_FREQUENCY)) {
|
||||
last_system_check_ = uuid::get_uptime();
|
||||
|
||||
#ifdef EMSESP_PINGTEST
|
||||
static uint64_t ping_count = 0;
|
||||
LOG_NOTICE("Ping test, #%d", ping_count++);
|
||||
#endif
|
||||
|
||||
// check if we have a valid network connection
|
||||
if (!ethernet_connected() && (WiFi.status() != WL_CONNECTED)) {
|
||||
healthcheck_ |= HEALTHCHECK_NO_NETWORK;
|
||||
|
||||
@@ -281,7 +281,11 @@ class System {
|
||||
static constexpr uint32_t BUTTON_VLongPressDelay = 9000; // Hold period for a very long press event (in ms)
|
||||
|
||||
// healthcheck
|
||||
static constexpr uint32_t SYSTEM_CHECK_FREQUENCY = 5000; // do a system check every 5 seconds
|
||||
#ifdef EMSESP_PINGTEST
|
||||
static constexpr uint32_t SYSTEM_CHECK_FREQUENCY = 500; // do a system check every 1/2 second
|
||||
#else
|
||||
static constexpr uint32_t SYSTEM_CHECK_FREQUENCY = 5000; // do a system check every 5 seconds
|
||||
#endif
|
||||
static constexpr uint32_t HEALTHCHECK_LED_LONG_DUARATION = 1500;
|
||||
static constexpr uint32_t HEALTHCHECK_LED_FLASH_DUARATION = 150;
|
||||
static constexpr uint8_t HEALTHCHECK_NO_BUS = (1 << 0); // 1
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace emsesp {
|
||||
class WebLogService : public uuid::log::Handler {
|
||||
public:
|
||||
static constexpr size_t MAX_LOG_MESSAGES = 50;
|
||||
static constexpr size_t REFRESH_SYNC = 80;
|
||||
static constexpr size_t REFRESH_SYNC = 30;
|
||||
|
||||
WebLogService(AsyncWebServer * server, SecurityManager * securityManager);
|
||||
|
||||
|
||||