# Changelog For more details go to [emsesp.org](https://emsesp.org/). ## [3.9.0] This release is based on the latest Espressif/Arduino core version 3. It brings in many memory and performance optimizations. Note it does require the user to manually migrate settings from 3.8.x to 3.9.0. ## Added - user-requested LED blink [#3063](https://github.com/emsesp/EMS-ESP32/issues/3063) - Commands Service that can be called via MQTT or API or used in the Scheduler Service - option to disable factory reset [#3150](https://github.com/emsesp/EMS-ESP32/issues/3150) - TLS support with 4MB boards without PSRAM ## Fixed - shunting yard show json - `system/sendmail` called from a Command or the Scheduler computed its value twice, which stripped the quotes from literal text and then failed on characters like `!`. Also shunting yard treated a `?` inside a quoted string as a ternary, so text like `"too hot?"` returned nothing - memory leak when using different timezones for ems-esp and thermostat[#3184](https://github.com/emsesp/EMS-ESP32/issues/3184) - LED stayed off on a healthy system when "Disable LED" was unchecked - Ethernet MAC address changed with the new SDK, breaking DHCP reservations (currently disabled) - "IPv4 nameserver" showed an IPv6 address when IPv6 was in use - HA Discovery warning on Uptime after EMS-ESP boot due to NTP not ready - hc/control setting for UI800 thermostats [#3181](https://github.com/emsesp/EMS-ESP32/discussions/3181) ## Changed - various memory optimizations [#3083](https://github.com/emsesp/EMS-ESP32/issues/3083) - Scheduler name is now mandatory - network fallback to AP only after start [#3090](https://github.com/emsesp/EMS-ESP32/issues/3090) - replaced Web async-validator with custom validator and toast with native snackbar to reduce bundle size - Gateway and Connect devices are shown in the Devices page, but disabled [3126](https://github.com/emsesp/EMS-ESP32/discussions/3126) - show control setting only for master thermostats (0x10) [#3173](https://github.com/emsesp/EMS-ESP32/issues/3173) - remove devices without entities not listed in 0x07 telegram - changes to the Dialogs in Dashboard page, removed the run icon in the Commands page. Renamed Execute to Run. - set `None` for undefined values in HA `val_tpl` - changes in WebUI - remove multiple calls systemInfo endpoint, Vewrsion pages checks for internet connection [#3195](https://github.com/emsesp/EMS-ESP32/pull/3195)