⚠️ ⚠️ WARNING ABOUT Home Assistant v2022.2
The unifiprotect
integration will be in Home Assistant core v2022.2. If you are running 0.10.x or older of the HACS integration, do not install v2022.2.x of Home Assistant core.
If you are running 0.11.x or the 0.12.0-beta, you should be safe to delete the HACS version as part of your upgrade. The 0.11.x branch is designed to be compatible with the 0.12.0-beta and the HA core version. The latest version of 0.12.0-beta will be the version of unifiprotect
in HA core in v2022.0.
After v2022.2 comes out, this repo will be deprecated in favor of the Home Assistant core version.
This release temporarily disables the High FPS switches
- CHANGE: BREAKING CHANGE The High FPS switches are temporarily disabled as they can cause cameras that do not support them to go unresponsive if enabled. See https://github.com/briis/unifiprotect/issues/358
**YOU MUST BE RUNNING V1.20.0 OF UNIFI PROTECT, TO USE THIS VERSION OF THE INTEGRATION. IF YOU ARE STILL ON 1.19.x STAY ON THE 0.9.1 RELEASE.
As UniFi Protect V1.20.0 is now released, we will also ship the final release of 0.10.0. If you were not on the beta, please read these Release Notes carefully, as there are many changes for this release, and many Breaking Changes.
Supported Versions
This release requires the following minimum Software and Firmware version:
- Home Assistant:
2021.09.0
- UniFi Protect:
1.20.0
Upgrade Instructions
If you are already running V0.10.0-beta.3 or higher of this release, there should not be any breaking changes, and you should be able to do a normal upgrade from HACS.
Due to the many changes and entities that have been removed and replaced, we recommend the following process to upgrade from an earlier Beta or from an earlier release:
- Upgrade the Integration files, either through HACS (Recommended) or by copying the files manually to your
custom_components/unifiprotect
directory. - Restart Home Assistant
- Remove the UniFi Protect Integration by going to the Integrations page, click the 3 dots in the lower right corner of the UniFi Protect Integration and select Delete
- While still on this page, click the
+ ADD INTEGRATION
button in the lower right corner, search for UnFi Protect, and start the installation, supplying your credentials.
Changes in this release
-
CHANGE
: BREAKING CHANGE The High FPS switches are temporarily disabled as they can cause cameras that do not support them to go unresponsive if enabled. See https://github.com/briis/unifiprotect/issues/358 -
CHANGE
: BREAKING CHANGE The support for Anonymous Snapshots has been removed as of this release. This has always been a workaround in a time where this did not work as well as it does now. If you have this flag set, you don't have to do anything, as snapshots are automatically moved to the supported method. -
NEW
: BREAKING CHANGE Also as part of Home Assistant 2021.11 a new Entity Category is introduced. This makes it possible to classify an entity as eitherconfig
ordiagnostic
. Aconfig
entity is used for entities that can change the configuration of a device and adiagnostic
entity is used for devices that report status, but does not allow changes. These two entity categories have been applied to selected entities in this Integration. If you are not on HA 2021.11+ then this will not have any effect on your installation. -
CHANGE
: BREAKING CHANGE There has been a substansial rewite of the underlying IO API Module (pyunifiprotect
) over the last few month. The structure is now much better and makes it easier to maintain going forward. It will take too long to list all the changes, but one important change is that we have removed the support for Non UnifiOS devices. These are CloudKey+ devices with a FW lower than 2.0.24. I want to give a big thank you to @AngellusMortis and @bdraco for making this happen. -
CHANGE
: BREAKING CHANGE As this release has removed the support for Non UnifiOS devices, we could also remove the Polling function for Events as this is served through Websockets. This also means that the Scan Interval is no longer present in the Configuration. -
CHANGE
: BREAKING CHANGE To future proof the Select entities, we had to change the the way the Unique ID is populated. The entity names are not changing, but the Unique ID's are If you have installed a previous beta of V0.10.0 you will get a duplicate of all Select entities, and the ones that were there before, will be marked as unavailable. You can either remove them manually from the Integration page, or even easier, just delete the UniFi Protect integration, and add it again. (The later is the recommended method) -
CHANGE
: BREAKING CHANGE All switches calledswitch.ir_active_CAMERANAME
have been removed from the system. They are being migrated to aSelect Entity
which you can read more about below. If you have automations that turns these switches on and off, you will have to replace this with theselect.select_option
service, using the valid options described below for theoption
data. -
CHANGE
: BREAKING CHANGE The Serviceunifiprotect.set_ir_mode
now supports the following values for ir_mode:"auto, autoFilterOnly, on, off"
. This is a change from the previous valid options and if you have automations that uses this service you will need to make sure that you only use these supported modes. -
CHANGE
: BREAKING CHANGE The Serviceunifiprotect.save_thumbnail_image
has been removed from the Integration. This service proved to be unreliable as the Thumbnail image very often was not available, when this service was called. Please use the servicecamera.snapshot
instead. -
CHANGE
: BREAKING CHANGE All switches calledswitch.record_smart_CAMERANAME
andswitch.record_motion_CAMERANAME
have been removed from the system. They are being migrated to aSelect Entity
which you can read more about below. If you have automations that turns these switches on and off, you will have to replace this with theselect.select_option
service, using the valid options described below for theoption
data. -
CHANGE
: BREAKING CHANGE All switches for the Floodlight devices have been removed from the system. They are being migrated to aSelect Entity
which you can read more about below. If you have automations that turns these switches on and off, you will have to replace this with theselect.select_option
service, using the valid options described below for theoption
data. -
CHANGE
: BREAKING CHANGE The Serviceunifiprotect.set_recording_mode
now only supports the following values for recording_mode:"never, detections, always"
. If you have automations that uses the recording_modesmart
ormotion
you will have to change this todetections
. -
CHANGE
: Config Flow has been slimmed down so it will only ask for the minimum values we need during installation. If you would like to change this after that, you can use the Configure button on the Integration page. -
CHANGE
: It is now possible to change the UFP Device username and password without removing and reinstalling the Integration. On the Home Assistant Integration page, select CONFIGURE in the lower left corner of the UniFi Protect integration, and you will have the option to enter a new username and/or password. -
CHANGE
: We will now use RTSPS for displaying video. This is to further enhance security, and to ensure that the system will continue running if Ubiquiti decides to remove RTSP completely. This does not require any changes from your side. -
NEW
: For each Camera there will be a binary sensor calledbinary_sensor.is_dark_CAMERANAME
. This sensor will be on if the camera is perceiving it is as so dark that the Infrared lights will turn on (If enabled). -
CHANGE
: A significant number of 'under the hood' changes have been made by @bdraco, to bring the Integration up to Home Assistant standards and to prepare for the integration in to HA Core. Thank you to @bdraco for all his advise, coding and review. -
CHANGE
:pyunifiprotect
is V1.0.4 and has been completely rewritten by @AngellusMortis, with the support of @bdraco and is now a much more structured and easier to maintain module. There has also been a few interesting additions to the module, which you will see the fruit of in a coming release. This version is not utilizing the new module yet, but stay tuned for the 0.11.0 release, which most likely also will be the last release before we try the move to HA Core. -
NEW
: Device Configuration URL's are introduced in Home Assistant 2021.11. In this release we add URL Link to allow the user to visit the device for configuration or diagnostics from the Devices page. If you are not on HA 2021.11+ then this will not have any effect on your installation. -
NEW
: A switch is being created to turn on and off the Privacy Mode for each Camera. This makes it possible to set the Privacy mode for a Camera directly from the UI. This is a supplement to the already existing serviceunifiprotect.set_privacy_mode
-
NEW
: Restarted the work on implementing the UFP Sense device. We don't have physical access to this device, but @Madbeefer is kindly enough to do all the testing.- The following new sensors will be created for each UFP Sense device:
Battery %
,Ambient Light
,Humidity
,Temperature
andBLE Signal Strength
. - The following binary sensors will be created for each UFP Sense device:
Motion
,Open/Close
andBattery Low
. Note as of this release, these sensors are not working correctly, this is still work in progress.
- The following new sensors will be created for each UFP Sense device:
-
NEW
: For each Camera there will now be aSelect Entity
from where you can select the Infrared mode for each Camera. Valid options areAuto, Always Enable, Auto (Filter Only, no LED's), Always Disable
. These are the same options you can use if you set this through the UniFi Protect App. -
NEW
: Added a newNumber
entity callednumber.wide_dynamic_range_CAMERANAME
. You can now set the Wide Dynamic Range for a camera directly from the UI. This is a supplement to the already existing serviceunifiprotect.set_wdr_value
. -
NEW
: Addedselect.doorbell_text_DOORBELL_NAME
to be able to change the LCD Text on the Doorbell from the UI. In the configuration menu of the Integration there is now a field where you can type a list of Custom Texts that can be displayed on the Doorbell and then these options plus the two standard texts built-in to the Doorbell can now all be selected. The format of the custom text list has to ba a comma separated list, f.ex.: RING THE BELL, WE ARE SLEEPING, GO AWAY... etc. -
NEW
: Added a newNumber
entity callednumber.microphone_level_CAMERANAME
. From here you can set the Microphone Sensitivity Level for a camera directly from the UI. This is a supplement to the already existing serviceunifiprotect.set_mic_volume
. -
NEW
: Added a newNumber
entity callednumber.zoom_position_CAMERANAME
. From here you can set the optical Zoom Position for a camera directly from the UI. This entity will only be added for Cameras that support optical zoom. This is a supplement to the already existing serviceunifiprotect.set_zoom_position
. -
NEW
: For each Camera there will now be aSelect Entity
from where you can select the recording mode for each Camera. Valid options areAlways, Never, Detections
. Detections is what you use to enable motion detection. Whether they do People and Vehicle detection, depends on the Camera Type and the settings in the UniFi Protect App. We might later on implement a new Select Entity from where you can set the the Smart Detection options. Until then, this needs to be done from the UniFi Protect App. (as is the case today) -
NEW
: For each Floodlight there will now be aSelect Entity
from where you can select when the Light Turns on. This replaces the two switches that were in the earlier releases. Valid options areOn Motion, When Dark, Manual
. -
NEW
: Added a new eventunifiprotect_motion
that triggers on motion. You can use this instead of the Binary Sensor to watch for a motion event on any motion enabled device. The output from the event will look similar tom the below{ "event_type": "unifiprotect_motion", "data": { "entity_id": "camera.outdoor", "smart_detect": [ "person" ], "motion_on": true }, "origin": "LOCAL", "time_fired": "2021-10-18T10:55:36.134535+00:00", "context": { "id": "b3723102b4fb71a758a423d0f3a04ba6", "parent_id": null, "user_id": null } }