Nope. 10 charrrr
Version 0.11.0-beta.1 is released
@AngellusMortis and @bdraco have spend a significant amount of hours in the last weeks to add a whole bunch of new features to this Integration and to prepare it for getting added to Home Assistant Core.
As you can see from below, there are quite a significant number of changes and new features also in this release, so please read these release notes carefully before you upgrade.
Deprecations
0.11 is last major release planned before we merge the unifiprotect
integration into core. As a result, a number of features are being removed when we merged into core.
The following services will be removed in the next version:
-
unifiprotect.set_recording_mode
– use the select introduced in 0.10 instead -
unifiprotect.set_ir_mode
– use the select entity introduced in 0.10 instead -
unifiprotect.set_status_light
– use the switch entity on the camera device instead -
unifiprotect.set_hdr_mode
– use the switch entity on the camera device instead -
unifiprotect.set_highfps_video_mode
– use the switch entity on the camera device instead -
unifiprotect.set_doorbell_lcd_message
– use the select entity introduced in 0.10 instead -
unifiprotect.set_mic_volume
– use the number entity introduced in 0.10 instead -
unifiprotect.set_privacy_mode
– use the switch entity introduced in 0.10 instead -
unifiprotect.set_zoom_position
– use the number entity introduced in 0.10 instead -
unifiprotect.set_wdr_value
– use the number entity introduced in 0.10 instead -
unifiprotect.light_settings
– use the select entity introduced in 0.10 instead -
unifiprotect.set_viewport_view
– use the select entity introduced in 0.10 instead
The following events will be removed in the next version:
-
unifiprotect_doorbell
– use a State Changed event on “Doorbell” binary sensor on the device instead -
unifiprotect_motion
– use a State Changed event on the “Motion” binary sensor on the device instead
The following entities will be removed in the next version:
- The “Motion Recording” sensor for cameras (in favor of the “Recording Mode” select)
- The “Light Turn On” sensor for flood lights (in favor of the “Lighting” select)
All of following attributes should be duplicated data that can be gotten from other devices/entities and as such, they will be removed in the next version.
-
device_model
will be removed from all entities – provided in the UI as part of the “Device Info” -
last_tripped_time
will be removed from binary sensor entities – use thelast_changed
value provided by the HA state instead -
up_since
will be removed from camera and light entities – now has its own sensor. The sensor is disabled by default so you will need to enable it if you want to use it. -
enabled_at
will be removed from light entities – now has its own sensor -
camera_id
will be removed from camera entities – no services need the camera ID anymore so it does not need to be exposed as an attribute. You can still get device IDs for testing/debugging from the Configuration URL in the “Device Info” section -
chime_duration
,is_dark
,mic_sensitivity
,privacy_mode
,wdr_value
, andzoom_position
will be removed from camera entities – all of them have now have their own sensors
Breaking Changes in this release
-
CHANGE
: BREAKING CHANGE The internal name of the Privacy Zone controlled by the “Privacy Mode” switch has been changed. Make sure you turn off all of your privacy mode switches before upgrading. If you do not, you will need to manually delete the old Privacy Zone from your UniFi Protect app. -
CHANGE
: BREAKING CHANGE WDRnumber
entity has been removed from Cameras that have HDR. This is inline with changes made to Protect as you can no longer control WDR for cameras with HDR. -
CHANGE
: BREAKING CHANGE theevent_length
attribute has been removed from the motion and door binary sensors. The value was previously calculated in memory and not reliable between restarts. -
CHANGE
: BREAKING CHANGE theevent_object
attribute for binary motion sensors has changed the value for no object detected from “None Identified” (string) to “None” (NoneType/null) -
CHANGE
: BREAKING CHANGE The Doorbell Text select entity for Doorbells has been overhauled. The Config Flow option for Doorbell Messages has been removed. You now can use the theunifiprotect.add_doorbell_text
andunifiprotect.remove_doorbell_text
services to add/remove Doorbell messages. This will persist the messages in UniFi Protect and the choices will now be the same ones that appear in the UniFi Protect iOS/Android app. NOTE: After running one of these services, you must restart Home Assistant for the updated options to appear.
Other Changes in this release
-
CHANGE
: MigratesUpvServer
to newProtectApiClient
frompyunifiprotect
.- This should lead to a number of behind-the-scenes reliability improvements.
- Should fix/close the following issues: #248, #255, #297, #317, #341, and #360 (TODO: Verify)
- This should lead to a number of behind-the-scenes reliability improvements.
-
CHANGE
: Overhaul Config Flow- Adds Reauthentication support
- Adds “Verify SSL”
- Updates Setup / Reauth / Options flows to pre-populate forms from existing settings
- Removes changing username/password as part of the options flow as it is redundant with Reauthentication support
- Removes Doorbell Text option since it is handled directly by UniFi Protect now
- Adds new config option to update all metrics (storage stat usage, uptimes, CPU usage, etc.) in realtime. WARNING: Enabling this option will greatly increase your CPU usage. ~2x is what we were seeing in our testing. It is recommended to leave it disabled for now as we do not have a lot of diagnostic sensors using this data yet.
-
CHANGE
: The state of the camera entities now reflects on whether the camera is actually recording. If you set your Recording Mode to “Detections”, your camera will switch back and forth between “Idle” and “Recording” based on if the camera is actually recording.- Closes #337
-
CHANGE
: Configuration URLs for UFP devices will now take you directly to the device in the UFP Web UI. -
CHANGE
: Default names for all entities have been updated fromentity_name device_name
todevice_name entity_name
to match how Home Assistant expects them in 2021.11+ -
CHANGE
: The Bluetooth strength sensor for the UP Sense is now disabled by default (will not effect anyone that already has the sensor). -
NEW
: Adds all of the possible enabled UFP Camera channels as different camera entities; only the highest resolution secure (RTSPS) one is enabled by default. If you need RTSP camera entities, you can enable one of the given insecure camera entities. -
NEW
: Added the following attributes to Camera entity:width
,height
,fps
,bitrate
andchannel_id
-
NEW
: Added status light switch for Flood Light devices -
NEW
: Added “On Motion - When Dark” option for Flood Light Lighting switch -
NEW
: Added “Auto-Shutoff Timer” number entity for Flood Lights -
NEW
: Added “Motion Sensitivity” number entity for Flood Lights -
NEW
: Added “Chime Duration” number entity for Doorbells -
NEW
: Added “Uptime” sensor entity for all UniFi Protect adoptable devices. This is disabled by default. -
NEW
: Addedunifiprotect.set_default_doorbell_text
service to allow you to set your default Doorbell message text. NOTE: After running this service, you must restart Home Assistant for the default to be reflected in the options. -
NEW
: Added “SSH Enabled” switch for all adoptable UniFi Protect devices. This switch is disabled by default. -
NEW
: (requires 2021.12+) Added “Reboot Device” button for all adoptable UniFi Protect devices. This button is disabled by default. Use with caution as there is no confirm. “Pressing” it instantly reboots your device. -
NEW
: Added media player entity for cameras with speaker. Speaker will accept any ffmpeg playable audio file URI (URI must be accessible from Home Assistant, not your Camera). TTS works great!- TODO: Investigate for final release. This may not work as expected on G4 Doorbells. Not sure yet if it is because of the recent Doorbell issues or because Doorbells are different.
- Implements #304
Cameras stream in HA seems to be delayed for about 7 seconds comparing to live view in Protect. Is there a way to decrease the delay? Thank you.
Nope. 10 charrrr
That helped. Now I have only 1 second delay. Thank you very much).
Hi there. Im fairly new to HA and am trying to integrate my UNVR. Once i’ve entered the ip address, username and password and click next i get the error “Unifi Protect version is not supported by this integration”
Ive follow a few guides and youtube videos, created a user with local admin and enabled the rstp stream.
Can anyone shed any light on if this is just something im missing or is this a current known issue??
Thanks.
Nope. 10 charrrr
Amazing thank you.
Release 0.11.0
Deprecations
0.11 is last major release planned before we merge the unifiprotect
integration into core. As a result, a number of features are being removed when we merged into core.
The following services will be removed in the next version:
-
unifiprotect.set_recording_mode
– use the select introduced in 0.10 instead -
unifiprotect.set_ir_mode
– use the select entity introduced in 0.10 instead -
unifiprotect.set_status_light
– use the switch entity on the camera device instead -
unifiprotect.set_hdr_mode
– use the switch entity on the camera device instead -
unifiprotect.set_highfps_video_mode
– use the switch entity on the camera device instead -
unifiprotect.set_doorbell_lcd_message
– use the select entity introduced in 0.10 instead -
unifiprotect.set_mic_volume
– use the number entity introduced in 0.10 instead -
unifiprotect.set_privacy_mode
– use the switch entity introduced in 0.10 instead -
unifiprotect.set_zoom_position
– use the number entity introduced in 0.10 instead -
unifiprotect.set_wdr_value
– use the number entity introduced in 0.10 instead -
unifiprotect.light_settings
– use the select entity introduced in 0.10 instead -
unifiprotect.set_viewport_view
– use the select entity introduced in 0.10 instead
The following events will be removed in the next version:
-
unifiprotect_doorbell
– use a State Changed event on “Doorbell” binary sensor on the device instead -
unifiprotect_motion
– use a State Changed event on the “Motion” binary sensor on the device instead
The following entities will be removed in the next version:
- The “Motion Recording” sensor for cameras (in favor of the “Recording Mode” select)
- The “Light Turn On” sensor for flood lights (in favor of the “Lighting” select)
All of following attributes should be duplicated data that can be gotten from other devices/entities and as such, they will be removed in the next version.
-
device_model
will be removed from all entities – provided in the UI as part of the “Device Info” -
last_tripped_time
will be removed from binary sensor entities – use thelast_changed
value provided by the HA state instead -
up_since
will be removed from camera and light entities – now has its own sensor. The sensor is disabled by default so you will need to enable it if you want to use it. -
enabled_at
will be removed from light entities – now has its own sensor -
camera_id
will be removed from camera entities – no services need the camera ID anymore so it does not need to be exposed as an attribute. You can still get device IDs for testing/debugging from the Configuration URL in the “Device Info” section -
chime_duration
,is_dark
,mic_sensitivity
,privacy_mode
,wdr_value
, andzoom_position
will be removed from camera entities – all of them have now have their own sensors -
event_object
will be removed from the Motion binary sensor. Use the dedicated Detected Object sensor.
Breaking Changes in this release
-
CHANGE
: BREAKING CHANGE The internal name of the Privacy Zone controlled by the “Privacy Mode” switch has been changed. Make sure you turn off all of your privacy mode switches before upgrading. If you do not, you will need to manually delete the old Privacy Zone from your UniFi Protect app. -
CHANGE
: BREAKING CHANGE WDRnumber
entity has been removed from Cameras that have HDR. This is inline with changes made to Protect as you can no longer control WDR for cameras with HDR. -
CHANGE
: BREAKING CHANGE theevent_length
attribute has been removed from the motion and door binary sensors. The value was previously calculated in memory and not reliable between restarts. -
CHANGE
: BREAKING CHANGE theevent_object
attribute for binary motion sensors has changed the value for no object detected from “None Identified” (string) to “None” (NoneType/null) -
CHANGE
: BREAKING CHANGE The Doorbell Text select entity for Doorbells has been overhauled. The Config Flow option for Doorbell Messages has been removed. You now can use the theunifiprotect.add_doorbell_text
andunifiprotect.remove_doorbell_text
services to add/remove Doorbell messages. This will persist the messages in UniFi Protect and the choices will now be the same ones that appear in the UniFi Protect iOS/Android app. NOTE: After running one of these services, you must restart Home Assistant for the updated options to appear.
Other Changes in this release
-
CHANGE
: MigratesUpvServer
to newProtectApiClient
frompyunifiprotect
.- This should lead to a number of behind-the-scenes reliability improvements.
- Should fix/close the following issues: #248, #255, #297, #317, #341, and #360 (TODO: Verify)
- This should lead to a number of behind-the-scenes reliability improvements.
-
CHANGE
: Overhaul Config Flow- Adds Reauthentication support
- Adds “Verify SSL”
- Updates Setup / Reauth / Options flows to pre-populate forms from existing settings
- Removes changing username/password as part of the options flow as it is redundant with Reauthentication support
- Removes Doorbell Text option since it is handled directly by UniFi Protect now
- Adds new config option to update all metrics (storage stat usage, uptimes, CPU usage, etc.) in realtime. WARNING: Enabling this option will greatly increase your CPU usage. ~2x is what we were seeing in our testing. It is recommended to leave it disabled for now as we do not have a lot of diagnostic sensors using this data yet.
-
CHANGE
: The state of the camera entities now reflects on whether the camera is actually recording. If you set your Recording Mode to “Detections”, your camera will switch back and forth between “Idle” and “Recording” based on if the camera is actually recording.- Closes #337
-
CHANGE
: Configuration URLs for UFP devices will now take you directly to the device in the UFP Web UI. -
CHANGE
: Default names for all entities have been updated fromentity_name device_name
todevice_name entity_name
to match how Home Assistant expects them in 2021.11+ -
CHANGE
: The Bluetooth strength sensor for the UP Sense is now disabled by default (will not effect anyone that already has the sensor). -
NEW
: Addsunifiprotect.set_doorbell_message
service. This is just like theunifiprotect.set_doorbell_lcd_message
, but it is not deprecated and it requires the Doorbell Text Select entity instead of the Camera entity. Should only be used to set dynamic doorbell text messages (i.e. setting the current outdoor temperate on your doorbell). If you want to use static custom messages, use the Doorbell Text Select entity and theunifiprotect.add_doorbell_text
/unifiprotect.remove_doorbell_text
service.unifiprotect.set_doorbell_lcd_message
is still deprecated and will still be removed in the next release.- Closes #396
-
NEW
: Adds “Override Connection Host” config option. This will force your RTSP(S) connection IP address to be the same as everything else. Should only be used if you need to forcibly use a different IP address.- For sure closes #248
-
NEW
: Added Dark Mode brand images to GitHub - home-assistant/brands: 🎨 Brands for Home Assistant. -
NEW
: Addsphy_rate
andwifi_signal
sensors so all connection states (BLE, WiFi and Wired) should have a diagnostic sensor. Disabled by default. Requires “Realtime metrics” option to update in realtime. -
NEW
: Added Detected Object sensor for cameras with smart detections. Values arenone
,person
orvehicle
. Containsevent_score
andevent_thumb
attributes.- Closes #342
-
NEW
: Adds Paired Camera select entity for Viewports -
NEW
: Adds “Received Data”, “Transferred Data”, “Oldest Recording”, “Storage Used”, and “Disk Write Rate” sensors for cameras. Disabled by default. Requires “Realtime metrics” option to update in realtime. -
NEW
: (requires UniFi Protect 1.20.1) Adds “Voltage” sensor for doorbells. Disabled by default. -
NEW
: Adds “System Sounds” switch for cameras with speakers -
NEW
: Adds switches to toggle overlay information for video feeds on all cameras -
NEW
: Adds switches to toggle smart detection types on cameras with smart detections -
NEW
: Adds event thumbnail proxy view.- URL is
/api/ufp/thumbnail/{thumb_id}
.thumb_id
is the ID of the thumbnail from UniFi Protect. -
entity_id
is a required query parameters.entity_id
be for an sensor that has event thumbnails on it (like the Motion binary sensor) -
token
is a required query parameter is you are not authenticated. It is an attribute on the motion sensor for the Camera -
w
andh
are optional query string params for thumbnail resizing.
- URL is
-
NEW
: Addsevent_thumbnail
attribute to Motion binary sensor that uses above mentioned event thumbnail proxy view. -
NEW
: Adds NVR sensors. All of them are disabled by default. All of the sensors will only update every ~15 minutes unless the “Realtime metrics” config option is turned on. List of all sensors:- Disk Health (one per disk)
- System Info: CPU Temp, CPU, Memory and Storage Utilization
- Uptime
- Recording Capacity (in seconds)
- Distributions of stored video for Resolution (4K/HD/Free)
- Distributions of stored video for Type (Continuous/Detections/Timelapse)
-
More clean up and improvements for upcoming Home Assistant core merge.
-
Adds various new blueprints to help users automate UniFi Protect. New Blueprints can be found in the README
Just want to say thank you for all the effort that has gone into this component over recent times. Utterly amazing than you!
Just started playing with dynamic text on the doorbell, so cool what is now possible.
Thank you for your efforts on this Component !
I am trying to use this, but running into issues (UnifiProtect: Person detect notification event_thumbnail not working for me)
Any pointers as to what i am (probably) doing wrong ?
Thanks for the explanation, the choice for the blueprint makes sense.
For my use case, it’s OK to only send the notification after the event ends.
Am I correct in guessing that’s just a matter of using this as a trigger?
platform: state
entity_id: sensor.<name>_detected_object
from: person
Is there any documentation on how to access the “old state” in an elegant way?
Nope. 10 charrrr
Thanks again
Should I include a delay before accessing trigger.from_state.sensor.<name>_detected_object.event_thumbnail
?
I’m still getting the ‘unsupported URL’ message
Nope. 10 charrrr
[edit]
To answer my own question, to get to the event_thumbnail
, you need
{{trigger.from_state.attributes.event_thumbnail}}
I’m getting closer (no more unsupported url ), but no quite there yet.
Trigger:
trigger:
- platform: state
entity_id: sensor.[camera]_detected_object
from: person
The body of the message still says “None”
service: notify.mobile_app_[me]
data:
title: Testing
message: >-
Body
{{state_attr('trigger.from_state.<camera>_detected_object','event_thumbnail')}}
data:
image: >-
https://[external_host]:8123{{state_attr('trigger.from_state.<camera>_detected_object','event_thumbnail')}}
attachment:
url: >-
https://[external_host]:8123{{state_attr('trigger.from_state.<camera>_detected_object','event_thumbnail')}}
content-type: jpeg
hide-thumbnail: false
(This is a great way to get my step count up!)
Thank you, but without all the work from @AngellusMortis and @bdraco, this Integration would never have been what it is now. So I will pass the thanks to these two - Thank You.
Had a question about the media player functionality. If I use the HA UI to send a TTS from the entity page, it seems to work properly (an mp3 file of the text is generated and stored in my /tts folder, and the doorbell plays the file). If I use a service call in an automation though, the file does not seem to play. I’m calling “play media”, setting the content ID to “http://MY-HA-ADDRESS/local/doorbell.mp3” and setting the content type to “audio/mp3”. Is there something else I need to be doing to get it to play? Or possibly are there some format requirements that i’m not seeing?