All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Changes in the next release
- Add Select Entity support by @JackJPowell (#44).
- Add IR Emitter Entity support by @JackJPowell (#45).
- Add binary sensor device class and common entity states enum (#40).
- Optional event loop argument in IntegrationAPI constructor (#41).
- Enhance entity command handler with WS client connection parameter in
CommandHandlercallback andEntity.commandmethod to allow clients to send back event messages (#38).- The implementation is currently backward-compatible but will be removed in a future release.
- New voice-assistant entity with voice-stream session handling (#38).
- This requires firmware 2.8.2 or newer to work correctly.
- Remove logging in Entities.get method if entity doesn't exist. This could lead to excessive logging in some integrations (#38).
- Prepare for Python 3.12 and 3.13: replace
asyncio.get_event_loop()calls in the examples withasyncio.new_event_loop()(#39).
- A WebSocket disconnection no longer emits the
DISCONNECTevent, but the newCLIENT_DISCONNECTEDevent (#35).
- New
CLIENT_CONNECTEDevent is emitted when a WebSocket client connects (#35). - WebSocket client identification in disconnect log statements.
- Null reference exception in log filter (#33).
- Set changed size during iteration for WS broadcast (#36).
- Add support for IR Emitter EntityType (#31).
- Add stop, record and menu for remote entity buttons (#32).
- Filtered log messages may not modify original data. This sporadically removed media artwork URLs (#27).
- New media-player attribute MEDIA_POSITION_UPDATED_AT (feature-and-bug-tracker#443).
- Filter out base64 encoded media-player image fields in entity_states response log messages (#22).
- Require websockets version v14 or newer.
- New remote-entity type. Requires remote-core / Core Simulator version 0.43.0 or newer.
- Filter out base64 encoded media-player image fields in log messages (#17).
- Media-player RepeatMode enum and new features: context_menu, settings
- Allow newer zeroconf versions than 0.120.0 (e.g. pyatv 0.14.5 requires 0.131.0).
- Media-player entity features (core-api/#32):
- new features: numpad, guide, info, eject, open_close, audio_track, subtitle, record.
- new option: simple_commands for any additional commands not covered by a feature.
- Return entity options in
get_available_entitiesresponse message.
- Add
reconfigureflag inDriverSetupRequestmessage to reconfigure a driver. - Always notify clients when setting a new device state, even if the state doesn't change.
- Environment variable
UC_INTEGRATION_HTTP_PORTto override server port.
- Update zeroconf dependency and remove asyncio library.
- Propagate setup error code from driver in setup flow.
- Add delays in setup flow for web-configurator to show error pages.
- Replace
SETUP_DRIVER_ABORTevent with newAbortDriverSetupclass in setup handler callback.
First public release on PyPI 🎉
- Type information
- Simple example and initial developer documentation
- mDNS service publishing announces local hostname.
- ENV var handling:
UC_INTEGRATION_INTERFACEandUC_INTEGRATION_HTTP_PORTare optional (#2, #3) - config_dir_path is always set
- driver setup process
- entity command handler
- don't expose AsyncIOEventEmitter for event callbacks
- invalid names in public classes
- logging configuration, configuration must be done in client code