Releases: sidoh/esp8266_milight_hub
1.10.5
1.10.4
1.10.3
Improvements
- (#516) Expose
default_transition_period
setting, which controls the number of milliseconds that pass between transition packets when an explicitperiod
parameter is not provided. Setting this lower will result in smoother transitions. Higher values will enable more simultaneous transitions without overwhelming the system.
1.10.2
1.10.1
1.10.0
1.10 is a meaty release that brings two major changes: asynchronous packet handling, and transitions.
Async packet handling means integrations like REST and MQTT no longer block on milight packets being sent. This means better throughput and performance under high loads.
Transitions enable moving from one state to another smoothly. You can, for example, fade from 0% to 100% brightness over a configurable duration.
Additionally, there are quite a few smaller features, improvements, and bug fixes. See release notes below for more details.
New Features
Asynchronous packet handling
- Packets are now handled asynchronously. Sending a command to espMH via any of the supported integrations (HTTP, MQTT, UDP) will enqueue packets which are processed out-of-band. This means that espMH will perform significantly better under high loads. If the queue fills up and more packets come in, older packets will be dropped.
- A new setting was added related to the previous point:
packet_repeats_per_loop
. This controls how much time is spent processing packets in the queue vs. handling background tasks. - New fields in the output of
/about
display some internal information about the state of the packet queue. - For REST calls, the query parameter
waitOnQueue=true
can be provided to make the call synchronous.
Transitions
- ( #113 ) Add support for smooth transitions between two values for a field. Documentation on how to use transitions is availble in the README.
- New RESTful
/transitions
routes are available to fully control transitions.
Labels and MQTT discovery
- ( #210 ) Add ability to configure aliases/labels for device configurations in the UI. You're then able to use these labels in the REST API and MQTT.
- ( #437 ) Add support for HomeAssistant's MQTT discovery protocol. This allows for an easy way to integrate with HASS assuming that MQTT discovery is enabled. Documentation is available on the wiki.
New remote type
- Add support for the FUT020 remote type. Note that support for state is very limited because the remote itself is limited -- on and off use the same command, and mode switch is the same command.
API Documentation
-
The REST API is now specified/documented using the OpenAPI v3 spec schema.
-
Generated documentation and snapshots of the schema will be available on the Github pages site for this project. Documentation for the latest branch can always be found at this URL:
https://sidoh.github.io/esp8266_milight_hub/branches/latest/
Miscellaneous additions
- ( #448 ) WiFi mode -- allow user to specify 802.11b, g, or n mode (rather than just b or g). Default is now N (same as SDK default)
- ( #499 ) Add support for hex colors (e.g., #FF0000) in color fields. Also add a hex_color field type, which publishes the color in hex format.
Bug Fixes
- ( #266 ) Fix sniffed packets from RGB remotes
- ( #486 ) Fix bug where packets were improperly decoded as CCT when they were in fact RGB_CCT
- Fix a memory leak that occurred when settings were saved and there is a non-empty state cache.
- (Internal bug) Linked List library had a bug that prevented arbitrary nodes from being deleted
Improvements
- Use PROGMEM in a couple of new places. Will marginally improve free heap.
- ( #489 ) Put hostname in web UI title/header if set
- Pull string constants like
"brightness"
into actual constants rather than having the literals scattered throughout the codebase. Prevents typo bugs and decreases heap/flash utilization. - Refactor main JSON command -> milight packets handler to not use a mess of conditionals.
- ( #503 ) Update label for enable_automatic_mode_switching to better reflect the behavior it introduces. Add a warning that it is incompatible with color commands.
1.10.0-rc.4
Improvements
- ( #503 ) Update label for
enable_automatic_mode_switching
to better reflect the behavior it introduces. Add a warning that it is incompatible withcolor
commands. - Publish device metadata along with HomeAssistant discovery configs. This will enable better removal behavior in the future.
- ( #499 ) Add support for hex colors (e.g.,
#FF0000
) in color fields. Also add ahex_color
field type, which publishes the color in hex format. - Add top-level documentation for transitions in README.
- Change status: ON transition behavior: will always transition from brightness = 0, rather than last known brightness. I expect this behavior to be what most people expect.
1.10.0-rc.3
Bug fixes
- ( #501 ) Fix bug when handling transitions with both
{"status":"ON"}
and a brightness field caused multiple conflicting transitions to be generated, causing flickering.
1.10.0-rc.1
Bug fixes
- ( #496 ) Fix regression where
effect
key was not being recognized.
1.10.0-dev.8
This will likely be the final 1.10 dev release. If there are bugs, RC version will be released. Otherwise this will go straight into a stable release in the next week or so.
New features
- Add support for on/off transitions. When transitioning from on->off, brightness will fade from present value to 0 before turning off. For off->on, brightness transitions from previous brightness to 100%.
- Add generated REST api docs to travis CI build. Will show up at a URL like
https://sidoh.github.io/esp8266_milight_hub/branches/xxx
for releases.
Improvements
- Add tests for transitions
- Under-specified transitions which assume default values will prioritize using the default value for duration (as opposed to number of transition packets or period). This is likely more intuitive behavior.