This version brings target selection up to date with all the latest Home Assistant features, so for example you can choose to send notifications to only the first floor Alexa devices simply by choosing that floor.
People
- Mobile Discovery previously only automatically found mobile apps to push notifications to if the user also had a
Personcreated in Home Assistant- Mobile apps will now be found for discovery if there's no Person defined
- Recipient config now has
person_idas optional, and takes auser_id(long UUID type number rather than an actual name in Home Assistant) - Tying together all the automation for people still benefits from having Person records, since this drives device tracking, location and occupancy
Areas, Floors and Labels
area_id,floor_idandlabel_idcan be used as notification targets, the same way as in any other Home Assistant action.- They are resolved to the entities they reference before anything else sees them, through the same core helper as an entity action, so groups are expanded and an entity inherits the area of its device.
- An entity in more than one of them - the kitchen, the ground floor and the
chimelabel - is kept once, each delivery'starget_categoriesandtarget_selectthen apply to those entities, and a transport never sees a selector. An unknown area, floor or label is logged rather than silently resolving to nothing. - Fixes #9
Groups
- Home Assistant groups (
group.*helpers and platform groups such as media player groups) are now expanded into their member entities for every transport beforetarget_selectis applied.- Previously only Chime Transport expanded groups, so e.g. a
group.*of media players was silently dropped by the Media Player, Alexa Media Player and Notify Entity transports. Fixes #10 - Note that with
unique_targetsenabled, a group in one delivery now dedupes at member level against the same members explicitly targeted in a later delivery, e.g.chimetogroup.speakersfollowed byalexa_media_playertomedia_player.awill skip the latter as a duplicate.
- Previously only Chime Transport expanded groups, so e.g. a
Internal
reprocess: preservewith nojpeg_opts/png_optsconfigured raised anAttributeErrorbuilding the cache key, since those options areNonerather than empty, so the image was never reprocessed- A reprocessed image keeps the format it is saved in: a PNG was written into a
.jpgfile, which misleads anything going by the extension,MIMEImageincluded - The cache key of a reprocessed image is a stable digest rather than
hash(), which is salted per process, so a file reprocessed before the last restart is found again instead of being rewritten every time - All the Pillow work for an image - decoding, copying the pixels and re-encoding - now happens in one executor job: only
Image.openandImage.newwere kept off the event loop, whilegetdata()/putdata()andsave()ran on it - Cameras that were switched off could appear to be
idlerather thanunavailabledefeating the alternate camera choice or cause broken image placeholders in mobile push notifications - New integration test framework, focusing at first on basic expectations for minimal, default, zero YAML installs
What's Changed
- Expand HA group targets before delivery target selection (fixes #10) by @lollox80 in #189
- fix: image reprocessing options, format and cache key by @lollox80 in #211
- Support area, floor and label target selectors by @lollox80 in #188
Full Changelog: v2.8.0...v2.9.0-beta1