github rhizomatics/supernotify v2.16.1

2 hours ago

✨ Enhancements

  • HTML5: notifications are sent with the Home Assistant language as lang, so the browser can pick a suitable font and voice
  • Telegram: the notify entity the Telegram Bot integration creates for each chat can be a target, selecting the telegram delivery ahead of the generic Notify Entity one, so it gets images, buttons and priority. It also says which bot to use, where there's more than one

🐛 Bug fixes

  • MQTT
    • A notification's data meant for other deliveries, such as clickAction for Mobile Push, was passed to mqtt.publish, which rejects anything it doesn't know, so the publish failed. Only payload, qos, retain, evaluate_payload and message_expiry_interval are now passed on
    • A payload that was a string or list was replaced by the message. A string is now published as it is, and a list as JSON
    • With no topic, the delivery is skipped rather than failed
    • Docs extended for the data passed on, and that the title isn't sent, and the integration link corrected
  • SMS
    • Currency signs, brackets and maths symbols were removed from messages, for example "£20 (due)" sent as "20 due". Only emoji and other pictographic symbols are now removed
    • With no message, the delivery is skipped rather than failed
    • Docs extended for the 158 character limit, the passing on of data, for example a Twilio picture, and when the default delivery is used, and the recipient's phone_number corrected
  • HTML5
    • A delivery with no targets was counted as a transport error. It's now skipped
    • A single number for html5_vibrate was dropped, rather than sent as a one-step pattern
    • Docs corrected: the default delivery is selected for the integration's own notify entities without being named, the fallback title is "Notification" in the Home Assistant language, and Supernotify's own actions aren't sent as browser buttons
  • Telegram
    • Chat ids were sent as target, which Home Assistant has deprecated, raising a repair issue for it on every notification, and marked as breaking from 2026.9. They're now sent as chat_id
    • A notification's data meant for other deliveries, such as clickAction for Mobile Push, was passed to the Telegram Bot action, which rejects anything it doesn't know, so the message failed. Only the Telegram Bot fields listed in the docs are now passed on
    • Only the first chat id was sent to, so with several, for example from two recipients, the rest were missed
    • Without a telegram_chat_id, any other value in the delivery's own target, such as an email address, was tried as a chat id. Only a telegram_chat_id, or the older phone, is now used
    • With no chat id, or one that isn't a number, the delivery was counted as a transport error. It's now skipped
    • With MarkdownV2 or Markdown, a title with a character such as ! or . stopped Telegram parsing the message. The title is now escaped
    • A formatted message or caption cut to Telegram's length limit could be left with an unfinished tag, which Telegram rejects. It's now sent as plain text
    • Docs rewritten: targets, including several chats, when the default delivery is used, all the data keys, that telegram_protect_content has no effect, the allowlist_external_dirs needed for images, that Telegram can't break through Do Not Disturb, and the example call corrected
  • TTS
    • Android TTS with a media_stream failed, since it was passed outside the inner data, which Home Assistant's notify actions reject
    • An older action like tts.cloud_say was given the tts entity as its target and the media players as media_player_entity_id, which it doesn't accept. It now targets the media players
    • Without a tts_entity_id, tts.home_assistant_cloud was always used, so without Nabu Casa nothing was spoken, though recorded as delivered. The first tts entity found is now used if there's no Nabu Casa one, and the delivery is skipped with a warning if there are none
    • Docs corrected: invalid options YAML, the non-existent tts.speak_cloud and tts.say actions, the Android example, and that excluding Apple devices is a default
  • Alexa Media Player
    • Every announcement waited for its estimated speech time, 5 seconds or more, before finishing, even with nothing playing and no volume to restore. It now only waits when there's music to resume, a volume to restore, or wait_for_tts is set, and not after a failed announcement
    • method in data was dropped, rather than passed to notify.alexa_media
    • Docs extended for type and method, that volume is ignored with media_auto_pause: false, and the order of volume restore and music resume corrected
  • Media: docs now give the image as the notification's media snapshot_url or camera, and the resulting action call as made
  • Alexa Devices: docs corrected for the default delivery, which has no fixed targets, and the alexa_devices_speak_all and alexa_devices_announce_all deliveries are now documented

What's Changed

Full Changelog: v2.16.0...v2.16.1

Don't miss a new supernotify release

NewReleases is sending notifications on new releases.