This commit is contained in:
cjkas 2026-03-10 20:23:48 +01:00
parent eb75868adb
commit a64b648f7a
56 changed files with 1003 additions and 0 deletions

1
.gitignore vendored
View file

@ -8,3 +8,4 @@ SomfyController.ino.XIAO_ESP32S3.bin
SomfyController.ino.esp32c3.bin
SomfyController.ino.esp32s2.bin
.vscode/settings.json
.pio

513
.vscode/c_cpp_properties.json vendored Normal file
View file

@ -0,0 +1,513 @@
//
// !!! WARNING !!! AUTO-GENERATED FILE!
// PLEASE DO NOT MODIFY IT AND USE "platformio.ini":
// https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags
//
{
"configurations": [
{
"name": "PlatformIO",
"includePath": [
"c:/Users/oem/Documents/PlatformIO/Projects/ESPSomfy-RTS/include",
"c:/Users/oem/Documents/PlatformIO/Projects/ESPSomfy-RTS/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/LittleFS/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/FS/src",
"c:/Users/oem/Documents/PlatformIO/Projects/ESPSomfy-RTS/.pio/libdeps/esp32dev/PubSubClient/src",
"c:/Users/oem/Documents/PlatformIO/Projects/ESPSomfy-RTS/.pio/libdeps/esp32dev/SmartRC-CC1101-Driver-Lib",
"c:/Users/oem/Documents/PlatformIO/Projects/ESPSomfy-RTS/.pio/libdeps/esp32dev/WebSockets/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
"c:/Users/oem/Documents/PlatformIO/Projects/ESPSomfy-RTS/.pio/libdeps/esp32dev/ArduinoJson/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/newlib/platform_include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/freertos/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/freertos/include/esp_additions/freertos",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/freertos/port/riscv/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/freertos/include/esp_additions",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_hw_support/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_hw_support/include/soc",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_hw_support/include/soc/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_hw_support/port/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_hw_support/port/esp32c3/private_include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/heap/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/log/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/lwip/include/apps",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/lwip/include/apps/sntp",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/lwip/lwip/src/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/lwip/port/esp32/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/lwip/port/esp32/include/arch",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/soc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/soc/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/soc/esp32c3/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/hal/esp32c3/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/hal/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/hal/platform_port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_rom/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_rom/include/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_rom/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_common/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_system/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_system/port/soc",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_system/port/include/riscv",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_system/port/public_compat",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/riscv/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/driver/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/driver/esp32c3/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_pm/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_ringbuf/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/efuse/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/efuse/esp32c3/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/vfs/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_wifi/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_event/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_netif/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_eth/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/tcpip_adapter/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_phy/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_phy/esp32c3/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_ipc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/app_trace/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_timer/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/mbedtls/port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/mbedtls/mbedtls/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/mbedtls/esp_crt_bundle/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/app_update/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/spi_flash/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bootloader_support/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/nvs_flash/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/pthread/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_gdbstub/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_gdbstub/riscv",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_gdbstub/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espcoredump/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espcoredump/include/port/riscv",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/wpa_supplicant/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/wpa_supplicant/port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/wpa_supplicant/esp_supplicant/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/ieee802154/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/console",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/asio/asio/asio/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/asio/port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/common/osi/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/include/esp32c3/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/common/api/include/api",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/common/btc/profile/esp/blufi/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/common/btc/profile/esp/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/host/bluedroid/api/include/api",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_common/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_common/tinycrypt/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_core",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_core/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_core/storage",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/btc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_models/common/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_models/client/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_models/server/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/api/core/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/api/models/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/api",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/cbor/port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/unity/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/unity/unity/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/cmock/CMock/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/coap/port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/coap/libcoap/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/nghttp/port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/nghttp/nghttp2/lib/includes",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-tls",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-tls/esp-tls-crypto",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_adc_cal/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_hid/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/tcp_transport/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_http_client/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_http_server/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_https_ota/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_https_server/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_lcd/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_lcd/interface",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/protobuf-c/protobuf-c",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/protocomm/include/common",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/protocomm/include/security",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/protocomm/include/transports",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/mdns/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_local_ctrl/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/sdmmc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_serial_slave_link/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_websocket_client/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/expat/expat/expat/lib",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/expat/port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/wear_levelling/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/fatfs/diskio",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/fatfs/vfs",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/fatfs/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/freemodbus/freemodbus/common/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/idf_test/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/idf_test/include/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/jsmn/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/json/cJSON",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/libsodium/libsodium/src/libsodium/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/libsodium/port_include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/mqtt/esp-mqtt/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/openssl/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/spiffs/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/wifi_provisioning/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/rmaker_common/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_diagnostics/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/rtc_store/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_insights/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/json_parser/upstream/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/json_parser/upstream",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/json_generator/upstream",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_schedule/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp_secure_cert_mgr/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_rainmaker/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/gpio_button/button/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/qrcode/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/ws2812_led",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_littlefs/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/tool",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/typedef",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/image",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/math",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/nn",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/layer",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/detect",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/model_zoo",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp32-camera/driver/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp32-camera/conversions/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/dotprod/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/support/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/support/mem/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/windows/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/windows/hann/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/windows/blackman/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/windows/blackman_harris/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/windows/blackman_nuttall/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/windows/nuttall/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/windows/flat_top/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/iir/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/fir/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/math/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/math/add/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/math/sub/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/math/mul/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/math/addc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/math/mulc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/math/sqrt/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/matrix/mul/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/matrix/add/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/matrix/addc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/matrix/mulc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/matrix/sub/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/matrix/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/fft/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/dct/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/conv/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/common/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/matrix/mul/test/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/kalman/ekf/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/kalman/ekf_imu13states/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/fb_gfx/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/qio_qspi/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/cores/esp32",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/variants/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/I2S/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/Insights/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/RainMaker/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/SD/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/USB/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
""
],
"browse": {
"limitSymbolsToIncludedHeaders": true,
"path": [
"c:/Users/oem/Documents/PlatformIO/Projects/ESPSomfy-RTS/include",
"c:/Users/oem/Documents/PlatformIO/Projects/ESPSomfy-RTS/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/WebServer/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/ESPmDNS/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/Update/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPClient/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/Preferences/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/LittleFS/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/FS/src",
"c:/Users/oem/Documents/PlatformIO/Projects/ESPSomfy-RTS/.pio/libdeps/esp32dev/PubSubClient/src",
"c:/Users/oem/Documents/PlatformIO/Projects/ESPSomfy-RTS/.pio/libdeps/esp32dev/SmartRC-CC1101-Driver-Lib",
"c:/Users/oem/Documents/PlatformIO/Projects/ESPSomfy-RTS/.pio/libdeps/esp32dev/WebSockets/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/Ethernet/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
"c:/Users/oem/Documents/PlatformIO/Projects/ESPSomfy-RTS/.pio/libdeps/esp32dev/ArduinoJson/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/newlib/platform_include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/freertos/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/freertos/include/esp_additions/freertos",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/freertos/port/riscv/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/freertos/include/esp_additions",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_hw_support/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_hw_support/include/soc",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_hw_support/include/soc/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_hw_support/port/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_hw_support/port/esp32c3/private_include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/heap/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/log/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/lwip/include/apps",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/lwip/include/apps/sntp",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/lwip/lwip/src/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/lwip/port/esp32/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/lwip/port/esp32/include/arch",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/soc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/soc/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/soc/esp32c3/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/hal/esp32c3/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/hal/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/hal/platform_port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_rom/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_rom/include/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_rom/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_common/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_system/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_system/port/soc",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_system/port/include/riscv",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_system/port/public_compat",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/riscv/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/driver/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/driver/esp32c3/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_pm/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_ringbuf/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/efuse/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/efuse/esp32c3/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/vfs/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_wifi/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_event/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_netif/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_eth/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/tcpip_adapter/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_phy/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_phy/esp32c3/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_ipc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/app_trace/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_timer/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/mbedtls/port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/mbedtls/mbedtls/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/mbedtls/esp_crt_bundle/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/app_update/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/spi_flash/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bootloader_support/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/nvs_flash/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/pthread/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_gdbstub/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_gdbstub/riscv",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_gdbstub/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espcoredump/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espcoredump/include/port/riscv",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/wpa_supplicant/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/wpa_supplicant/port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/wpa_supplicant/esp_supplicant/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/ieee802154/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/console",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/asio/asio/asio/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/asio/port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/common/osi/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/include/esp32c3/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/common/api/include/api",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/common/btc/profile/esp/blufi/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/common/btc/profile/esp/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/host/bluedroid/api/include/api",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_common/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_common/tinycrypt/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_core",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_core/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_core/storage",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/btc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_models/common/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_models/client/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/mesh_models/server/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/api/core/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/api/models/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/bt/esp_ble_mesh/api",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/cbor/port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/unity/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/unity/unity/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/cmock/CMock/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/coap/port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/coap/libcoap/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/nghttp/port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/nghttp/nghttp2/lib/includes",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-tls",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-tls/esp-tls-crypto",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_adc_cal/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_hid/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/tcp_transport/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_http_client/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_http_server/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_https_ota/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_https_server/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_lcd/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_lcd/interface",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/protobuf-c/protobuf-c",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/protocomm/include/common",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/protocomm/include/security",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/protocomm/include/transports",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/mdns/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_local_ctrl/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/sdmmc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_serial_slave_link/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_websocket_client/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/expat/expat/expat/lib",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/expat/port/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/wear_levelling/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/fatfs/diskio",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/fatfs/vfs",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/fatfs/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/freemodbus/freemodbus/common/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/idf_test/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/idf_test/include/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/jsmn/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/json/cJSON",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/libsodium/libsodium/src/libsodium/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/libsodium/port_include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/mqtt/esp-mqtt/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/openssl/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/spiffs/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/wifi_provisioning/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/rmaker_common/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_diagnostics/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/rtc_store/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_insights/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/json_parser/upstream/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/json_parser/upstream",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/json_generator/upstream",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_schedule/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp_secure_cert_mgr/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_rainmaker/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/gpio_button/button/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/qrcode/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/ws2812_led",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp_littlefs/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/tool",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/typedef",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/image",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/math",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/nn",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/layer",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/detect",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp-dl/include/model_zoo",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp32-camera/driver/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/esp32-camera/conversions/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/dotprod/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/support/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/support/mem/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/windows/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/windows/hann/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/windows/blackman/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/windows/blackman_harris/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/windows/blackman_nuttall/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/windows/nuttall/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/windows/flat_top/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/iir/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/fir/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/math/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/math/add/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/math/sub/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/math/mul/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/math/addc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/math/mulc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/math/sqrt/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/matrix/mul/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/matrix/add/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/matrix/addc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/matrix/mulc/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/matrix/sub/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/matrix/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/fft/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/dct/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/conv/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/common/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/matrix/mul/test/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/kalman/ekf/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/espressif__esp-dsp/modules/kalman/ekf_imu13states/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/include/fb_gfx/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32c3/qio_qspi/include",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/cores/esp32",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/variants/esp32c3",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/BluetoothSerial/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/DNSServer/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/EEPROM/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/ESP32/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/FFat/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdate/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/HTTPUpdateServer/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/I2S/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/Insights/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/NetBIOS/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/RainMaker/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/SD/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/SD_MMC/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/SPIFFS/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/SimpleBLE/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/Ticker/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/USB/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/WiFiProv/src",
"C:/Users/oem/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
""
]
},
"defines": [
"PLATFORMIO=60119",
"ARDUINO_ESP32C3_DEV",
"HAVE_CONFIG_H",
"MBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"",
"UNITY_INCLUDE_CONFIG_H",
"WITH_POSIX",
"_GNU_SOURCE",
"IDF_VER=\"v4.4.7-dirty\"",
"ESP_PLATFORM",
"_POSIX_READER_WRITER_LOCKS",
"ARDUINO_ARCH_ESP32",
"ESP32",
"F_CPU=160000000L",
"ARDUINO=10812",
"ARDUINO_VARIANT=\"esp32c3\"",
"ARDUINO_BOARD=\"Espressif ESP32-C3-DevKitM-1\"",
"ARDUINO_PARTITION_min_spiffs",
""
],
"cStandard": "gnu99",
"cppStandard": "gnu++11",
"compilerPath": "C:/Users/oem/.platformio/packages/toolchain-riscv32-esp/bin/riscv32-esp-elf-gcc.exe",
"compilerArgs": [
"-march=rv32imc",
""
]
}
],
"version": 4
}

10
.vscode/extensions.json vendored Normal file
View file

@ -0,0 +1,10 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"platformio.platformio-ide"
],
"unwantedRecommendations": [
"ms-vscode.cpptools-extension-pack"
]
}

44
.vscode/launch.json vendored Normal file
View file

@ -0,0 +1,44 @@
// AUTOMATICALLY GENERATED FILE. PLEASE DO NOT MODIFY IT MANUALLY
//
// PlatformIO Debugging Solution
//
// Documentation: https://docs.platformio.org/en/latest/plus/debugging.html
// Configuration: https://docs.platformio.org/en/latest/projectconf/sections/env/options/debug/index.html
{
"version": "0.2.0",
"configurations": [
{
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug",
"executable": "c:/Users/oem/Documents/PlatformIO/Projects/ESPSomfy-RTS/.pio/build/esp32dev/firmware.elf",
"projectEnvName": "esp32devdbg",
"toolchainBinDir": "C:/Users/oem/.platformio/packages/toolchain-riscv32-esp/bin",
"internalConsoleOptions": "openOnSessionStart",
"preLaunchTask": {
"type": "PlatformIO",
"task": "Pre-Debug"
}
},
{
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug (skip Pre-Debug)",
"executable": "c:/Users/oem/Documents/PlatformIO/Projects/ESPSomfy-RTS/.pio/build/esp32dev/firmware.elf",
"projectEnvName": "esp32devdbg",
"toolchainBinDir": "C:/Users/oem/.platformio/packages/toolchain-riscv32-esp/bin",
"internalConsoleOptions": "openOnSessionStart"
},
{
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug (without uploading)",
"executable": "c:/Users/oem/Documents/PlatformIO/Projects/ESPSomfy-RTS/.pio/build/esp32dev/firmware.elf",
"projectEnvName": "esp32devdbg",
"toolchainBinDir": "C:/Users/oem/.platformio/packages/toolchain-riscv32-esp/bin",
"internalConsoleOptions": "openOnSessionStart",
"loadMode": "manual"
}
]
}

BIN
data-src/apple-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

1
data-src/appversion Normal file
View file

@ -0,0 +1 @@
2.4.7

BIN
data-src/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
data-src/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View file

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Before After
Before After

BIN
data/icon.svg.gz Normal file

Binary file not shown.

BIN
data/icons.css.gz Normal file

Binary file not shown.

BIN
data/index.html.gz Normal file

Binary file not shown.

BIN
data/index.js.gz Normal file

Binary file not shown.

BIN
data/login.html.gz Normal file

Binary file not shown.

BIN
data/main.css.gz Normal file

Binary file not shown.

BIN
data/widgets.css.gz Normal file

Binary file not shown.

6
huge_app.csv Normal file
View file

@ -0,0 +1,6 @@
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x300000,
spiffs, data, spiffs, 0x310000,0xE0000,
coredump, data, coredump,0x3F0000,0x10000,
1 # Name Type SubType Offset Size Flags
2 nvs data nvs 0x9000 0x5000
3 otadata data ota 0xe000 0x2000
4 app0 app ota_0 0x10000 0x300000
5 spiffs data spiffs 0x310000 0xE0000
6 coredump data coredump 0x3F0000 0x10000

37
include/README Normal file
View file

@ -0,0 +1,37 @@
This directory is intended for project header files.
A header file is a file containing C declarations and macro definitions
to be shared between several project source files. You request the use of a
header file in your project source file (C, C++, etc) located in `src` folder
by including it, with the C preprocessing directive `#include'.
```src/main.c
#include "header.h"
int main (void)
{
...
}
```
Including a header file produces the same results as copying the header file
into each source file that needs it. Such copying would be time-consuming
and error-prone. With a header file, the related declarations appear
in only one place. If they need to be changed, they can be changed in one
place, and programs that include the header file will automatically use the
new version when next recompiled. The header file eliminates the labor of
finding and changing all the copies as well as the risk that a failure to
find one copy will result in inconsistencies within a program.
In C, the convention is to give header files names that end with `.h'.
Read more about using header files in official GCC documentation:
* Include Syntax
* Include Operation
* Once-Only Headers
* Computed Includes
https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html

46
lib/README Normal file
View file

@ -0,0 +1,46 @@
This directory is intended for project specific (private) libraries.
PlatformIO will compile them to static libraries and link into the executable file.
The source code of each library should be placed in a separate directory
("lib/your_library_name/[Code]").
For example, see the structure of the following example libraries `Foo` and `Bar`:
|--lib
| |
| |--Bar
| | |--docs
| | |--examples
| | |--src
| | |- Bar.c
| | |- Bar.h
| | |- library.json (optional. for custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
| |
| |--Foo
| | |- Foo.c
| | |- Foo.h
| |
| |- README --> THIS FILE
|
|- platformio.ini
|--src
|- main.c
Example contents of `src/main.c` using Foo and Bar:
```
#include <Foo.h>
#include <Bar.h>
int main (void)
{
...
}
```
The PlatformIO Library Dependency Finder will find automatically dependent
libraries by scanning project source files.
More information about PlatformIO Library Dependency Finder
- https://docs.platformio.org/page/librarymanager/ldf.html

7
min_spiffs.csv Normal file
View file

@ -0,0 +1,7 @@
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x1E0000,
app1, app, ota_1, 0x1F0000,0x1E0000,
spiffs, data, spiffs, 0x3D0000,0x20000,
coredump, data, coredump,0x3F0000,0x10000,
1 # Name Type SubType Offset Size Flags
2 nvs data nvs 0x9000 0x5000
3 otadata data ota 0xe000 0x2000
4 app0 app ota_0 0x10000 0x1E0000
5 app1 app ota_1 0x1F0000 0x1E0000
6 spiffs data spiffs 0x3D0000 0x20000
7 coredump data coredump 0x3F0000 0x10000

290
minify.py Normal file
View file

@ -0,0 +1,290 @@
"""
PlatformIO pre-build script: minify & gzip web assets.
Copies files from data-src/ → data/
• HTML – whitespace & comment removal, then gzip
• CSS – whitespace & comment removal, then gzip
• JS – whitespace & comment removal, then gzip
• PNG – copied as-is (optipng if available)
• Other – copied as-is
Usage in platformio.ini
-----------------------
extra_scripts = pre:minify.py
Directory layout
----------------
project/
├── data-src/ ← original, human-readable assets
│ ├── index.html
│ ├── css/
│ ├── js/
│ └── img/
├── data/ ← auto-generated (gitignore this!)
├── minify.py
└── platformio.ini
The script runs automatically before LittleFS / SPIFFS image is built.
It also runs once at the start of every build so the data/ dir is always fresh.
Dependencies: none (pure Python ≥ 3.7).
Optional: optipng (for PNG optimisation)
"""
Import("env") # PlatformIO macro – gives us the build environment
import gzip
import os
import re
import shutil
import subprocess
import sys
# ──────────────────────────────────────────────
# Config
# ──────────────────────────────────────────────
SRC_DIR_NAME = "data-src"
DST_DIR_NAME = "data"
# Extensions that will be minified + gzipped
MINIFY_AND_GZIP = {".html", ".htm", ".css", ".js", ".json", ".svg", ".xml"}
# Extensions that optipng can optimise
PNG_EXTENSIONS = {".png"}
# Everything else is copied verbatim
# ──────────────────────────────────────────────
def _project_dir():
return env.subst("$PROJECT_DIR")
def _src_dir():
return os.path.join(_project_dir(), SRC_DIR_NAME)
def _dst_dir():
return os.path.join(_project_dir(), DST_DIR_NAME)
# ──────────────────────────────────────────────
# Minifiers (pure Python, no npm needed)
# ──────────────────────────────────────────────
def minify_html(text: str) -> str:
"""Simple but effective HTML minifier."""
# Remove HTML comments (but keep IE conditional comments)
text = re.sub(r"<!--(?!\[if).*?-->", "", text, flags=re.DOTALL)
# Collapse whitespace between tags
text = re.sub(r">\s+<", "> <", text)
# Collapse runs of whitespace into a single space
text = re.sub(r"\s{2,}", " ", text)
# Remove whitespace around = in attributes
text = re.sub(r'\s*=\s*', '=', text)
# Strip leading/trailing whitespace per line, rejoin
lines = [line.strip() for line in text.splitlines() if line.strip()]
return " ".join(lines)
def minify_css(text: str) -> str:
"""Remove comments, collapse whitespace in CSS."""
# Remove comments
text = re.sub(r"/\*.*?\*/", "", text, flags=re.DOTALL)
# Remove whitespace around : ; { } ,
text = re.sub(r"\s*([:{};,])\s*", r"\1", text)
# Collapse remaining whitespace
text = re.sub(r"\s{2,}", " ", text)
# Strip leading/trailing
return text.strip()
def minify_js(text: str) -> str:
"""
Light JS minifier – removes comments and collapses whitespace.
For heavy minification install terser and the script will use it
automatically (see _try_terser below).
"""
# Remove single-line comments (careful with URLs – :// )
text = re.sub(r"(?<!:)//(?!/)[^\n]*", "", text)
# Remove multi-line comments
text = re.sub(r"/\*.*?\*/", "", text, flags=re.DOTALL)
# Collapse whitespace
text = re.sub(r"\s{2,}", " ", text)
lines = [line.strip() for line in text.splitlines() if line.strip()]
return "\n".join(lines)
def minify_json(text: str) -> str:
"""Compact JSON by removing unnecessary whitespace."""
import json
try:
data = json.loads(text)
return json.dumps(data, separators=(",", ":"), ensure_ascii=False)
except json.JSONDecodeError:
return text
def minify_svg(text: str) -> str:
"""Minimal SVG minifier – comments + whitespace."""
text = re.sub(r"<!--.*?-->", "", text, flags=re.DOTALL)
text = re.sub(r">\s+<", "><", text)
text = re.sub(r"\s{2,}", " ", text)
return text.strip()
MINIFIERS = {
".html": minify_html,
".htm": minify_html,
".css": minify_css,
".js": minify_js,
".json": minify_json,
".svg": minify_svg,
".xml": minify_svg, # same approach works for generic XML
}
# ──────────────────────────────────────────────
# Optional external tools (used when available)
# ──────────────────────────────────────────────
def _has_command(cmd: str) -> bool:
return shutil.which(cmd) is not None
def _try_terser(src_path: str, dst_path: str) -> bool:
"""Use terser for JS if installed (npm i -g terser)."""
if not _has_command("terser"):
return False
try:
subprocess.run(
["terser", src_path, "-o", dst_path, "--compress", "--mangle"],
check=True, capture_output=True,
)
return True
except subprocess.CalledProcessError:
return False
def _try_optipng(path: str) -> None:
"""Optimise PNG in-place if optipng is available."""
if _has_command("optipng"):
try:
subprocess.run(
["optipng", "-quiet", "-o2", path],
check=True, capture_output=True,
)
except subprocess.CalledProcessError:
pass
# ──────────────────────────────────────────────
# Core logic
# ──────────────────────────────────────────────
def process_file(src_path: str, dst_path: str) -> dict:
"""
Process a single file: minify, gzip or copy.
Returns a small stats dict.
"""
ext = os.path.splitext(src_path)[1].lower()
original_size = os.path.getsize(src_path)
stats = {"src": src_path, "original": original_size, "final": 0, "action": "copy"}
os.makedirs(os.path.dirname(dst_path), exist_ok=True)
# ── Text assets: minify + gzip ──────────
if ext in MINIFY_AND_GZIP:
# Try terser for JS first
if ext == ".js" and _try_terser(src_path, dst_path + ".tmp"):
with open(dst_path + ".tmp", "rb") as f:
minified = f.read()
os.remove(dst_path + ".tmp")
stats["action"] = "terser+gzip"
else:
with open(src_path, "r", encoding="utf-8", errors="ignore") as f:
content = f.read()
minifier = MINIFIERS.get(ext)
if minifier:
content = minifier(content)
stats["action"] = "minify+gzip"
else:
stats["action"] = "gzip"
minified = content.encode("utf-8")
# Write gzipped version
gz_path = dst_path + ".gz"
with gzip.open(gz_path, "wb", compresslevel=9) as gz:
gz.write(minified)
stats["final"] = os.path.getsize(gz_path)
return stats
# ── PNG: copy + optional optipng ────────
if ext in PNG_EXTENSIONS:
shutil.copy2(src_path, dst_path)
_try_optipng(dst_path)
stats["final"] = os.path.getsize(dst_path)
stats["action"] = "optipng" if _has_command("optipng") else "copy"
return stats
# ── Everything else: plain copy ─────────
shutil.copy2(src_path, dst_path)
stats["final"] = os.path.getsize(dst_path)
return stats
def minify_all():
src_dir = _src_dir()
dst_dir = _dst_dir()
if not os.path.isdir(src_dir):
print(f"[minify] WARNING: '{SRC_DIR_NAME}/' not found – skipping.")
return
print(f"[minify] {SRC_DIR_NAME}/ → {DST_DIR_NAME}/")
# Clean destination
if os.path.exists(dst_dir):
shutil.rmtree(dst_dir)
os.makedirs(dst_dir, exist_ok=True)
total_original = 0
total_final = 0
file_count = 0
for root, dirs, files in os.walk(src_dir):
for fname in sorted(files):
# Skip hidden files and editor temp files
if fname.startswith(".") or fname.endswith("~"):
continue
src_path = os.path.join(root, fname)
rel_path = os.path.relpath(src_path, src_dir)
dst_path = os.path.join(dst_dir, rel_path)
stats = process_file(src_path, dst_path)
pct = (1 - stats["final"] / stats["original"]) * 100 if stats["original"] > 0 else 0
print(
f" {rel_path:<40s} "
f"{stats['original']:>8,d} → {stats['final']:>8,d} B "
f"({pct:+.0f}%) [{stats['action']}]"
)
total_original += stats["original"]
total_final += stats["final"]
file_count += 1
print(f"[minify] {file_count} files processed")
print(
f"[minify] Total: {total_original:,d} → {total_final:,d} bytes "
f"(saved {total_original - total_final:,d} bytes, "
f"{(1 - total_final / total_original) * 100:.0f}%)"
)
# ──────────────────────────────────────────────
# PlatformIO hooks
# ──────────────────────────────────────────────
# Run at the start of every build
minify_all()

37
platformio.ini Normal file
View file

@ -0,0 +1,37 @@
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[platformio]
default_envs = esp32dev
[env:esp32dev]
platform = espressif32
board = esp32-c3-devkitm-1
framework = arduino
lib_deps =
bblanchon/ArduinoJson@^7.2.2
links2004/WebSockets@^2.7.3
lsatan/SmartRC-CC1101-Driver-Lib@^2.5.7
knolleary/PubSubClient@^2.8
extra_scripts = pre:minify.py
board_build.partitions = min_spiffs.csv
[env:esp32devdbg]
build_type = debug
platform = espressif32
board = esp32dev
framework = arduino
lib_deps =
bblanchon/ArduinoJson@^7.2.2
links2004/WebSockets@^2.7.3
lsatan/SmartRC-CC1101-Driver-Lib@^2.5.7
knolleary/PubSubClient@^2.8
extra_scripts = pre:minify.py
board_build.partitions = min_spiffs.csv

View file

View file

View file

11
test/README Normal file
View file

@ -0,0 +1,11 @@
This directory is intended for PlatformIO Test Runner and project tests.
Unit Testing is a software testing method by which individual units of
source code, sets of one or more MCU program modules together with associated
control data, usage procedures, and operating procedures, are tested to
determine whether they are fit for use. Unit testing finds problems early
in the development cycle.
More information about PlatformIO Unit Testing:
- https://docs.platformio.org/en/latest/advanced/unit-testing/index.html