You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

207 lines
10 KiB

  1. # Changelog
  2. All notable changes to this project will be documented in this file.
  3. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
  4. and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
  5. ## [2023.4.0]
  6. **Note**: This release requires ESPHome 2023.4.0 and Home Assistant 2023.2.0 or newer.
  7. ### Fixed
  8. - Compile issues with recent ESPHome versions fixed:
  9. - An error about toolchain-riscv32-esp not being found (the PlatformIO tool manager
  10. tries to install this one, even though the lamp is an ESP32 device and not riscv).
  11. - On systems for which the above toolchain could be found, compilation would fail
  12. with an error about `esp_mac.h` not being found.
  13. ### Changed
  14. - ESPHome's compile-time warnings about "GPIO<x> is a Strapping PIN and should
  15. be avoided" are now being suppressed. These warning are often interpreted
  16. by users of this firmware as problems. However, the pinouts are dictated by
  17. the hardware and there are no strapping issues because of how they are used.
  18. - Updated the documentation for the deprecated API password support (which must now
  19. be an API encryption key instead).
  20. ## [2022.12.0]
  21. **Note**: This release requires ESPHome 2022.12.0 and Home Assistant 2021.8.0 or newer.
  22. ### Fixed
  23. - Due to changes in the ESP-IDF framework, and ESPHome 2022.12.0 using the newer version
  24. of the framework, upgrading the lamp from ESPHome version 2022.11.0 to 2022.12.0 could
  25. result in a failing device. It would not connect to WiFi anymore and serial logging
  26. showed a reboot loop, crashing at the WiFi setup.
  27. This release of the lamp firmware forces the use of the last known working version
  28. of the ESP-IDF framework. This is not a final solution, because I don't want to be
  29. stuck to old versions for dependencies, but for now this change at least prevents
  30. issues for users that flash their lamps.
  31. **If you already flashed your lamp and it ended up bricked, then no worries!**
  32. Things can be fixed. Check out this information from the related GitHub issue report:
  33. [Fix recipe from issue #104](https://github.com/mmakaay/esphome-xiaomi_bslamp2/issues/104#issuecomment-1356182034)
  34. ## [2021.10.0]
  35. **Note**: This release requires ESPHome 2021.10.0 and Home Assistant 2021.8.0 or newer.
  36. ### Changed
  37. - Due to changes in ESPHome, the configuration for the lamp has changed.
  38. This means that existing configuration files have to be updated accordingly.
  39. To make configuration as easy as possible, the `example.yaml` configuration
  40. now makes use of configuration packages that are stored on GitHub. This
  41. reduces the amount of configuration that is required in your own device
  42. configuration file, making future configuration changes easier.
  43. - ESPHome 2021.10.0 has brought us support for using ESP-IDF instead of the
  44. Arduino framework. ESP-IDF is the "Espressif IoT Development Framework",
  45. which is the native development framework for ESP32 SoCs. I switched to this
  46. framework. This made it possible to get the required ESP32 unicore support
  47. and to ignore the MAC CRC using a vanilla build. No more need for hacked up
  48. platform packages to get things going! <3
  49. - The code has been made compatible with ESPHome 2021.10.0.
  50. ## [2021.9.1]
  51. **Note**: This release requires ESPHome 2021.8.0 and Home Assistant 2021.8.0 or newer.
  52. ### Changed
  53. - Fixed a memory leak, causing the lamp to disconnect occasionally when doing a lot of
  54. color transformations (e.g. when running the `Random` light effect).
  55. ## [2021.9.0]
  56. **Note**: This release requires ESPHome 2021.8.0 and Home Assistant 2021.8.0 or newer.
  57. ### Changed
  58. - Fixed a compilation issue with ESPHome 2021.9.0.
  59. - Added `refresh: 60s` to the `external_components` definition in `example.yaml`,
  60. to make use that the code is updated when using a non-release ref (e.g. `main`
  61. instead of `2021.9.0`).
  62. ## [2021.8.1]
  63. **Note**: This release requires ESPHome 2021.8.0 and Home Assistant 2021.8.0 or newer.
  64. ### Changed
  65. - Fixed transitioning from the off to on state. Thanks to @marcel1988 for informing
  66. me about his non-functional wake-up light script. Before this fix, the light would
  67. stay off during the full transformation, only to turn on at the very end.
  68. - The `on_brightness` trigger is now also called at the start of a transition.
  69. This fixes a problem with the brightness slider illumination not following along
  70. when you slide your finger over it.
  71. - Suppressing a transition time for transitioning to a night light color is now
  72. only instant when starting from a night light setting. Before this change, moving
  73. from for example 80% brightness to 1% brightness (i.e. night light), would be
  74. instant. Now an actual transformation is done.
  75. ## [2021.8.0]
  76. **Note**: This release requires ESPHome 2021.8.0 and Home Assistant 2021.8.0 or newer.
  77. ### Added
  78. - Preset identifiers (`group` and `preset`) for the `preset.activate` action are now
  79. validated at compile time. This prevents us from building a firmware with incorrect
  80. preset identifiers. Before this change, using an invalid preset name would only
  81. result in a warning message in the device log, which is only moderately useful.
  82. ### Changed
  83. - The code has been made compatible with the new color mode support in Home Assistant
  84. and ESPHome.
  85. - The `example.yaml` has been updated to not make use of underscores in hostnames.
  86. Using an underscore in the name yields a warning during the firmware compilation,
  87. because hostnames should only contain letters, numbers and dashes "-".
  88. - My project will follow the Home Assistant / ESPHome versioning scheme from now on
  89. (<year>.<month>.<patch>), because the ESPHome project adopted this versioning
  90. scheme too.
  91. ## [1.1.0]
  92. **Note**: This release requires ESPHome v1.20.0 or newer.
  93. ### Added
  94. - It is now possible to address the LEDs in the front panel of the device individually.
  95. There are 12 LEDs in total: the power button, the color button and 10 LEDs that are
  96. used by the original firmware to represent the lamp's current brightness setting.
  97. The `output` component for the lamp was updated to provide access to the individual LEDs.
  98. Check out the [documentation guide](https://github.com/mmakaay/esphome-xiaomi_bslamp2/blob/main/doc/configuration.md)
  99. for details on how to control these.
  100. Thanks to @Stewie3112 for the feature request that triggered this development!
  101. - Implemented support for visual feedback during the OTA update process in the
  102. `example.yaml` file: the light becomes blue during flahsing, the brightness slider
  103. represents the progress, on failure the light flashes red and on success the
  104. light flashes green.
  105. ### Changed
  106. - Made it possible to use lambdas with the `preset.activate` automation. This makes it
  107. possible to link the action to an api service, which exposes the preset functionality
  108. to Home Assistant. The `example.yaml` has been updated with an example for this.
  109. - Fixed a rounding error in the slider sensor component. When using custom "range from" / "range to"
  110. settings, the maximum value could exceed the "range to" value due to rounding errors.
  111. Thanks to Jos for the heads up!
  112. - Made the codebase compatible with ESPHome v1.19.0
  113. ([PR #1657: Introduce new async-def coroutine syntax](https://github.com/esphome/esphome/pull/1657))
  114. Thanks to @Kaibob2 for giving me a heads up that my code was not compiling anymore!
  115. ## [1.0.0]
  116. **Note**: This release requires ESPHome v1.18.0 or newer.
  117. ### Changed
  118. - The GitHub repository structure has been updated, in order to make it compatible with
  119. the new `external_components` feature of ESPHome v1.18.0. From now on, the code from this
  120. repository no longer has to be downloaded and installed manually. The `example.yaml` has
  121. been updated for using this new feature.
  122. Fixes [issue #16](https://github.com/mmakaay/esphome-xiaomi_bslamp2/issues/16).
  123. - A fix has been implemented to prevent the lamp from being disconnected from Home Assistant
  124. a lot (resulting in the lamp becoming unavailable). ESPHome v1.18.0 or newer is required
  125. for making this fix work.
  126. Fixes [issue #19](https://github.com/mmakaay/esphome-xiaomi_bslamp2/issues/19).
  127. - Transitions are now fully suppressed when in night light mode. In that mode, LED output
  128. levels are too low for producing good looking transitions.
  129. Fixes [issue #10](https://github.com/mmakaay/esphome-xiaomi_bslamp2/issues/10).
  130. - The `example.yaml` now uses my own arduino-esp32 unicore build.
  131. - Formatted the codebase using the ESPHome clang rules.
  132. - The flashing guide got a big update, with detailed pictures for every step on the way.
  133. ### Added
  134. - New documentation section: Technical details (it's all about the internals)
  135. ### Removed
  136. - The known issue documentation page has been removed, now we have a fix for the disconnect
  137. issues in ESPHome v1.18.0.
  138. ## [1.0.0-RC1]
  139. ### Changed
  140. - The documentation has been restructured.
  141. ### Added
  142. - Support for disco mode-style light updates through the `light.disco_on` and `light.disco_off` actions.
  143. The `light.disco_on` action can be used to configure the lamp state without delay, without publishing
  144. the update and without saving the state. The `light.disco_off` action will restore the lamp to its
  145. last save state, so from before the `light.disco_on` updates.
  146. - Support for configuring light presets, making it possible to mimic the lamp's original firmware
  147. feature to switch light color using the color button.
  148. This fixes [issue #8](https://github.com/mmakaay/esphome-xiaomi_bslamp2/issues/8).
  149. - New documentation section: Configuration guide (explaining all the YAML file configuration options).
  150. ## [1.0-beta]
  151. ### Changed
  152. - The component was renamed from "yeelight_bs2" to "xiaomi_bslamp2".
  153. The reasoning behind this can be found in [issue #7](https://github.com/mmakaay/esphome-xiaomi_bslamp2/issues/7).
  154. ### Added
  155. - Component "text_sensor" that publishes changes in the light mode ("off", "night", "rgb", "white"),
  156. This fixes [issue #6](https://github.com/mmakaay/esphome-xiaomi_bslamp2/issues/6).
  157. - Documentation improvements and a better example.yaml.
  158. ## [1.0-alpha]
  159. ### Added
  160. - All light modes for the lamp have been implemented:
  161. - RGB light (colored light, based on red/green/blue and brightness)
  162. - White light (based on color temperature and brightness)
  163. - Night light (either RGB- or White light, but highly dimmed; enabled by setting brightness to 1%)
  164. - Component "light" for controlling the LEDs.
  165. - Component "binary_sensor" that act as touch/release sensors for power button, color button and slider.
  166. - Component "sensor" that report the level at which the slider was touched.
  167. - Component "output" for controlling the front panel light and its level indicator.