# openHASP Changelog ## v0.7.0 !!! THE PARTITION SCHEME OF THE INTERNAL FLASH HAS CHANGED, CHECK THE DOCS BEFORE UPGRADING !!! ### Commands - Removed deprecated `dim`, `brightness` and `light` commands, use `backlight` instead ### Objects - `action` and `swipe` can now be set to any command - Set default `line_width` of new `line` objects to 1 - Add `qrcode` object (thanks @marsman7) - Allow line and block comments in pages.jsonl - Removed deprecated `txt` property, use `text` instead - Removed deprecated `objid` property, use `obj` instead - HASP theme: Toggle objects now use the secondary color when they are in the toggled state. ### Fonts - Firmware files include the bitmapped font sizes 12, 16, 24 and 32pt - Use embedded TrueType font for other font sizes (PSram highly recommended) - Add glyphs from Cyrillic, Latin-2, Greek and Viernamese character sets to default fonts - Add 12 new MDI icons ### Web UI - Update Web UI to petite-vue app - Redesigned the File Editor ### Services - Change MQTT client from _PubSubClient_ to asynchronic Espressif _esp_mqtt_ client - Make the MQTT topics configurable - MQTT discovery now uses a subtopic of `hasp/discovery`. Discovery requires version 0.7.x of the Custom Component. - Add service start/stop mqtt - Add SimpleFTPServer to easily upload and download files to the plate *(one simultaneous connection only)* - Add service start/stop ftp - Add configuration for NTP servers and timezone - Add support system scripts executed when the idle level is changed - Add support for WireGuard (thanks @perexg) ### Devices - Add Elecrow ESP32-Terminal 3.5" SPI and RGB - Add GS-T3E Smart Panel - Add Lilygo Ttgo Lily Pi ESP32 - Add Makerfabs ESP32-S3 SPI - Add Sunton ESP32-S3 TFT 4.3", 5.0" and 7.0" - Add Sunton ESP32-2432S028R ESP32-3248S035C ESP32-3248S035R - Add support for Wireless-Tag WT32-SC01 Plus and WT32S3-86V - Deprecate support for WT-86-32-3ZW1 with ESP32-S2 - Fade backlight on ESP32 devices (thanks @presslab-us) ## Bug fixes - Fix for first touch not working properly - Add button GPIOs to input discovery message ### Architecture - Moved to Tasmota Arduino 2.0.11 and ESP-IDF 4.4.5 (thanks @Jason2866) - Add Arduino-GFX display driver - Add support for ESP32-S3 and ESP32-C3 devices - Deprecation of support for ESP32-S2 devices due to lack of sRAM Updated libraries to Arduino_GFX v1.4.0, ArduinoJson 6.21.5, ArduinoStreamUtils 1.8.0, AceButton 1.10.1, TFT_eSPI 2.5.43, LovyanGFX 1.1.12 and SimpleFTPServer 2.1.5 ## v0.6.3 ### Commands - Additional `idle` parameters now accept `off`, `short` and `long` - Add `sensors` command to trigger the sensors state message - Run `L:/boot.cmd` when the plate is (re)booted if the script exists - You can now use the `pXbY.jsonl` command to update multiple object properties at once (thanks @nagyrobi) ### Objects - All objects have a custom `tag` property which can contain arbitrary JSON data *(or numbers or text)* (thanks @nagyrobi) - `img.src` now accepts both `http` and `https` urls (thanks @htvekov) - `img.src` now accepts `png` and `binary` image urls, PSram is *highly* recommended - `img.src` now accepts 16-bit BMP files stored in flash ### Web UI - Updated to modern responsive design *(requires JavaScript)* - Add `/api/info/` and `/api/config/*/` endpoints - Allow for a customizable `vars.css`, `style.css`, `script.js` and `edit.htm` - Display a message when the configuration is changed and a reboot is needed - Add checkbox for backlight inversion to Display settings (thanks @wolffman122) - Add checkbox to toggle ANSI codes #261 (thanks @geiseri) - Allow firmware upgrade/downgrade in AP mode ### GUI - `antiburn` displays random pixels *aka.* white noise - Hide cursor during `antiburn` and `idle` if the pointer is enabled ### MQTT - Remember last `page` id of `jsonl` messages. Sending multiple messages now behaves like `jsonl` files (thanks @arovak) ### Fonts - Use TrueType fonts from flash, PSram is *highly* recommended (thanks to @s-hadinger) - Custom LVGL binary fonts can be read from flash and loaded into memory, PSram is *highly* recommended - Font ID is replaced by `namexx` *(where `xx` is the font size)* but the previous Font IDs still work for backwards compatibility - Added build option for Vietnamese character set (thanks @kydang789) - ⚠️ **Breaking:** Removed defunct .zi font support! ### Bug fixes - Fixed Lanbon L8 v1.17 PCB screen corruption #316 (thanks @DJBenson)- Fix for screenshots not showing properly in Safari on macOS/iOS (thanks @masto) - Fix bug that would not accept `on` state for setting output GPIOs #275 (thanks @freshnas and @cerietke) - Fix a bug in `dropdownlist` were `close` method performed `open` instead #299 (thanks @htvekov) - Fix `src` bug in `img` objects that could corrupt images sent over http (thanks @htvekov) - Fix screen dimensions in `statusupdate` message, taking into account current orientation #278 (thanks @kquinsland) - Fix for HTTP password that could be overwritten by 8 asterisks when it was not changed in the web UI - Fixed MQTT hostname limit *again*... #304 (thanks @fake-name) - Fixed firmware upgrade from URL #300 (thank @nagyrobi) - Fixed a bug that prevented Wifi from connecting to different BSSID #330 (thanks @Braehead) - Syslog message format fixes and improvements #285 (thanks @geiseri) ### Custom component - Expose `antiburn` and `page` in the CC (thanks @dgomes) - Expose the device URL in discovery message and CC ### Architecture - Moved to Tasmota Arduino 2.0.3 with native LittleFS library (thanks @Jason2866) and ESP-IDF 4.4.1 fixes for FragAttacks CVEs (thanks @nagyrobi) - Add support for ESP32-S2 devices - ⚠️ **Breaking:** Removed support for ESP8266! Updated libraries to ArduinoJson 6.19.4, ArduinoStreamUtils 1.6.3, AceButton 1.9.2, TFT_eSPI 2.4.61, LovyanGFX 0.4.17 and Adafruit STMPE610 1.1.4 ## v0.6.2 ### Initial Setup - Add Captive Portal to first time setup (thanks @AndreTeixeira1998) - Create default `pages.jsonl`, `online.cmd` and `offline.cmd` files if they don't exist (thanks @nagyrobi) ### Objects - Enable `click` by default on `image` object - Add `type` to `spinner` object - Add `zoom`, `angle`, `pivot_x`, `pivot_y` and `antialias` attributes to `image` object - Allow url as `src` of `image` object for raw webimages and from push image service from the CC (thanks @dgomes and @nagyrobi) - Use `L:/file.png` instead of `/littlefs/file.png` for image paths, `/littlefs/` still works for backwards compatibility ### Objects - Add `antiburn` command to prevent static parts of the screen to create a *ghosting* effect in some LCDs or conditions ### Devices - Add Analog touch driver for Unoshield displays (thanks @wesleygas) - Add AZ-Touch MOD ESP32 with 2.4" or 2.8" - Add Lilygo®Ttgo Pi ESP32 with TFT 3.5" - Add Waveshare ESP32 One development board with Rpi MHS4001(B) or Waveshare RPi(C) LCD display - Add D1-R32 ESP32 development board with Waveshare ILI9486 Touch Shield ### Bug fixes - Fix bug that caused a crash when both `btnmatrix` and `msgbox` where used (thanks @AndreTeixeira1998) - Fix L8-HD dimmer brightness initialization after a reboot (thanks @Stupco) - Keep last dimmer value when toggling dimmer state on/off - Fix configurable mqttPort (thanks @Qargh) - Fix opaque background of `spinner` object in HASP theme (thanks @nagyrobi) Updated libraries to AceButton 1.9.1 and ArduinoJson 6.18.5 ## v0.6.1 ### Commands - Add `run` command to execute script files (`.cmd` or `.jsonl`) - Add `unzip` command for __no-compression__ zip files - Add `service` command to start/stop a service ### Wifi - Don't reboot the plate anymore after prolonged wifi connection lost - Run `/online.cmd` or `/offline.cmd` script when the wifi status changed ### Objects - Add new *[line](https://www.openhasp.com/0.6.1/design/objects/#line)* object - Add `val` to *[btnmatrix](https://www.openhasp.com/0.6.1/design/objects/#button-matrix)* when `one_select` is set - Cache up to 20 *[images](https://www.openhasp.com/0.6.1/design/objects/#image)* in PSram when available - Improve precision on the *[linemeter](https://www.openhasp.com/0.6.1/design/objects/#line-meter)* scales - Fix *[dropdown](https://www.openhasp.com/0.6.1/design/objects/#dropdown-list)* redraw bug ### Devices - Fix [L8-HD dimmer](https://www.openhasp.com/0.6.1/devices/lanbon-l8/) not responding correctly to mqtt after a reboot - Add [M5Stack Core2](https://www.openhasp.com/0.6.1/devices/m5stack-core2/) backlight dimming - Add [Yeacreate Nscreen32](https://www.openhasp.com/0.6.1/devices/yeacreate-nscreen32/) - Add [Makerfabs ESP32 TFT Touch](https://www.openhasp.com/0.6.1/devices/makerfabs-tft-touch/) Capacitive ### Fonts - [Additional characters](https://www.openhasp.com/0.6.1/design/fonts/#ascii): `²` (squared) and `³` (cubed) - [Additional icons](https://www.openhasp.com/0.6.1/design/fonts/#built-in-icons): recycle-variant and additional weather icons - Use latin1 as default charset on [WT32-SC01](https://www.openhasp.com/0.6.1/devices/wt32-sc01/) - Add [Greek font](https://www.openhasp.com/0.6.1/design/fonts/#greek) ### Compiling - Allow custom bootlogo - Selectively start http, telnet or console at boot - Updated AceButton to 1.9.0 and ArduinoJson to 6.18.3 ## v0.6.0 ### Commands: - Obsolete `dim` and `light` commands, use `backlight` command instead - Add `discovery` command to facilitate HA CC discovery - Add `idle` command to retrieve idle state, replaces `wakeup` command - Updated `moodlight` command with brightness support - Rewrite `outputX` and add `inputX` command ### Objects: - `lmeter` object renamed to `linemeter` - `align` values are now `left`, `right`, `center` instead of numbers *(numbers can still be used)* - Added `ext_click_h` and `ext_click_v` attributes to extend the clickable area - Added `clear` method to remove only the child objects from an object - New `tabview`, `tab`, `calendar` and `msgbox` objects - Add `img` object with png support *(needs PSram for any sizable images)* - Added missing properties of the `spinner` object ### Web UI: - Updated GPIO configuration pages - Include a File Editor on ESP32: Create, Edit, Upload, Delete and Apply pages.jsonl (Thanks Cossie) - Cache css, favicon and edit.htm.gz in the browser - New Information page layout, including MQTT message counters for sent, received and failed ### MCU: - Allow longer wifi ssid and password - Update partition boundaries to use *all* remaining space for lfs filesystem - Speed improvement: keep LVGL functions in fast memory & reduce overhead in main loop - Use ascii characterset for WT32-SC01 due to limited flash size ### GPIO rewrite: - Better handling of gpios - Support for Lanbon L8-HD dimmer (EU and AU version, thanks to @Stupco) - Add moodlight brightness support ### Broadcast and Discovery topic (HASP_USE_BROADCAST and HASP_USE_DISCOVERY) - Allow dynamic configuration of HA entities using the [openHASP Custom Component](https://github.com/HASwitchPlate/openHASP-custom-component/releases/) (thanks @dgomes) - Add Manufacturer and Model to statusupdate Updated libraries to lvgl 7.11.0, ArduinoJson 6.18.0 and TFT_eSPI 2.3.70 ### Internationalization: - Added French language - Added Portuguese language (thanks @AndreTeixeira1998 and @dgomes) - Added Spanish language (thanks @altersis) ## v0.5.1 - Restore broken `config/submodule` topics - Don't show warning on `comment` attribute - Patched a potential memory leak - Added an automatic lv_mem_defrag to free up lvgl memory - Allow selection of fonts via user_config_override - Allow for longer mqtt configuration strings in user_config_override - Allow default HASP_GPIO_TEMPLATE configuration in user_config_override - Add `manufacturer` and `model` to statusupdate - Fixed `enabled` attribute and added `click` attribute ## v0.5.0 Name changed to openHASP - https://www.openhasp.com/ > When using HomeAssistant also update the [openHASP Custom Component](https://github.com/HASwitchPlate/openHASP-custom-component/releases/tag/0.5.0) - Switch built-in icons from FontAwesome to MaterialDesign icons #139 - Add built option for other character sets then latin1 - Built-in Font sizes dependent on screen size - Add `swipe` property to switch pages - Add `action` property for local page navigation - Add `back`, `prev`, `next` attributes to pages #114 - JSON Serialize text in payloads containing text attributes #140 - Add az-touch-mod-esp32_ili9341 config and allow for TFT_BACKLIGHT_ON set to LOW #131 - Add [FreeTouchDeck](https://www.openhasp.com/0.5/#devices/freetouchdeck/) and [ESP32-Touchdown](https://www.openhasp.com/0.5/#devices/esp32-touchdown/) configs - Add roller `mode` `infinite` attribute - Add btnmatrix `toggle` and `one_check` attributes - Rework all event handlers to reduce update events and prevent race condition #119 *(events have changed!)* - Add ability to style the selected part of roller object - Add `scan_method = WIFI_ALL_CHANNEL_SCAN` for ESP32, improving multi-AP connection - Add warning `objid` property is obsolete, use `obj` instead - Add warning `txt` property is obsolete, use `text` instead - Add dark theme build option for web UI - Update lvgl and tft_espi library version - Update maximum backlight_level from 100 to 255 - Set default `HASP_LOG_LEVEL=LOG_LEVEL_TRACE` ## v0.4.0 **Note:** The partition scheme has changed and you will need to reflash the device over serial first. *All data will be erased, so make sure to backup your pages.jsonl, config.json and fonts.* Changes: - Provide all-in-one binary files for ESP32 to flash a device over serial using a single .bin file - Allow long wifi passwords (#71 thanks @nagyrobi) - Wakeup screen on first touch (#80) - Reduce slider events (#88) - Update events to accommodate the [HA Custom Component](https://github.com/HASwitchPlate/openHASP-custom-component) (by @dgomes) - Remove HA auto-discovery in favor of the HA Custom Component - Add `clearpage all` command option - Add local page navigation and transitions - Add [scale properties](https://www.openhasp.com/0.5/#styling/#scale) - Add `config/gpio` command - Allow for timezone setting in user_config_override.h (thanks @arovak) - Start localizations for NL, HU and RO (thanks @nagyrobi) - New prebuild devices: - esp32-touchdown (thanks @joelhaasnoot and @dustinwatts) - huzzah featherwing 2.4" and 3.5" (thanks @arovak) - m5stack-core2 - Fix zi font crash bug - Update setting min/max attributes (#103 thanks @arovak) - Native builds for Windows, MacOS and Linux (thanks to @thouters and @dgomes) ## v0.3.4 The webserver was not properly started at initial setup, when the device was in AP mode. ## v0.3.3 - Change `txt` to `text`. `txt` is now obsoleted. - Initial support for moodlight e.g. Lanbon L8 ## v0.3.2 - Add Lanbon L8 - Add WT32-SC01 ## v0.3.1 - Fixes wifi connection issue in OOBE - Fixes memory leak in value_str ## v0.3.0 First release of compiled .bin files