ep1cman / unifi-protect-backup

Python tool to backup unifi event clips in realtime
MIT License
633 stars 31 forks source link

47663da80417 #136

Closed maxnata closed 6 months ago

maxnata commented 6 months ago

Description

Since couple of days it stopped doing back up and in the logs I notice that it fails to connect to Unifi Protect.

i have not changed anything (maybe an update?). If I look on the admin page of Protect. I see the user is Active and last login is current

What I Did

I tried to restart, stop and run a new doicker but I get this

2024-03-24 06:07:00 [ INFO ] unifi_protect_backup.unifi_protect_backup_core : Connecting to Unifi Protect... 2024-03-24 06:07:01 [ WARNING ] unifi_protect_backup.unifi_protect_backup_core : Failed to connect to UniFi Protect, retrying in 0s...

Thanks

ep1cman commented 6 months ago

can you please provide your Unifi Protect Backup version, and the full log

maxnata commented 6 months ago

I run it on doker:

docker run --restart=always -e UFP_USERNAME='xxx' -e UFP_PASSWORD='xxx' -e UFP_ADDRESS='192.168.x.x' -e UFP_SSL_VERIFY='false' -e PURGE_INTERVAL='14d' -e SKIP_MISSING -v '/mnt/hdd1/clips':'/data' -v '/mnt/hdd1/database':/config/database/ ghcr.io/ep1cman/unifi-protect-backup

Log at starting below. Thanks a lot

[custom-init] No custom files found, skipping... [ls.io-init] done. v 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : Config: 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : address='192.168.x.x' 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : port=xxx 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : username='xxxx' 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : password=xxxx 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : verify_ssl=False 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : rclone_destination='local:/data' 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : retention=relativedelta(days=+7) 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : rclone_args='' 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : rclone_purge_args='' 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : ignore_cameras=() 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : verbose=1 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : detection_types=['motion', 'person', 'vehicle', 'ring'] 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : file_structure_format='{camera_name}/{event.start:%Y-%m-%d}/{event.end:%Y-%m-%dT%H-%M-%S} {detection_type}.mp4' 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : sqlite_path='/config/database/events.sqlite' 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : download_buffer_size=512.0MiB 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : purge_interval=relativedelta(days=+14) 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : apprise_notifiers=() 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : skip_missing=False 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : download_rate_limit=None events per minute 2024-03-24 16:25:57 [ INFO ] unifi_protect_backup.unifi_protect_backup_core : Starting... 2024-03-24 16:25:57 [ INFO ] unifi_protect_backup.unifi_protect_backup_core : Checking rclone configuration... 2024-03-24 16:25:57 [ DEBUG ] unifi_protect_backup.unifi_protect_backup_core : rclone found: /usr/bin/rclone 2024-03-24 16:25:58 [ INFO ] unifi_protect_backup.unifi_protect_backup_core : Connecting to Unifi Protect... 2024-03-24 16:25:58 [ WARNING ] unifi_protect_backup.unifi_protect_backup_core : Failed to connect to UniFi Protect, retrying in 0s... Traceback (most recent call last): File "/usr/lib/python3.10/site-packages/unifi_protect_backup/unifi_protect_backup_core.py", line 186, in start await self._protect.update() File "/usr/lib/python3.10/site-packages/pyunifiprotect/api.py", line 600, in update self._bootstrap = await self.get_bootstrap() File "/usr/lib/python3.10/site-packages/pyunifiprotect/api.py", line 776, in get_bootstrap return Bootstrap.from_unifi_dict(**data, api=self) File "/usr/lib/python3.10/site-packages/pyunifiprotect/data/base.py", line 124, in from_unifi_dict data = cls.unifi_dict_to_dict(data) File "/usr/lib/python3.10/site-packages/pyunifiprotect/data/bootstrap.py", line 202, in unifi_dict_to_dict return super().unifi_dict_to_dict(data) File "/usr/lib/python3.10/site-packages/pyunifiprotect/data/base.py", line 356, in unifi_dict_to_dict data[key] = cls._clean_protect_obj_dict(data[key], unifi_dicts[key], api) File "/usr/lib/python3.10/site-packages/pyunifiprotect/data/base.py", line 302, in _clean_protect_obj_dict items[key] = cls._clean_protect_obj(value, klass, api) File "/usr/lib/python3.10/site-packages/pyunifiprotect/data/base.py", line 286, in _clean_protect_obj return klass.unifi_dict_to_dict(data=data) File "/usr/lib/python3.10/site-packages/pyunifiprotect/data/user.py", line 160, in unifi_dict_to_dict return super().unifi_dict_to_dict(data) File "/usr/lib/python3.10/site-packages/pyunifiprotect/data/base.py", line 351, in unifi_dict_to_dict data[key] = cls._clean_protect_obj_list(data[key], unifi_lists[key], api) File "/usr/lib/python3.10/site-packages/pyunifiprotect/data/base.py", line 294, in _clean_protect_obj_list items[index] = cls._clean_protect_obj(item, klass, api) File "/usr/lib/python3.10/site-packages/pyunifiprotect/data/base.py", line 286, in _clean_protect_obj return klass.unifi_dict_to_dict(data=data) File "/usr/lib/python3.10/site-packages/pyunifiprotect/data/user.py", line 34, in unifi_dict_to_dict data["nodes"] = [PermissionNode(n) for n in parts[1].split(",")] File "/usr/lib/python3.10/site-packages/pyunifiprotect/data/user.py", line 34, in data["nodes"] = [PermissionNode(n) for n in parts[1].split(",")] File "/usr/lib/python3.10/enum.py", line 385, in call return cls.new(cls, value) File "/usr/lib/python3.10/enum.py", line 710, in new raise ve_exc ValueError: 'readlive' is not a valid PermissionNode 2024-03-24 16:25:58 [ WARNING ] unifi_protect_backup.unifi_protect_backup_core : Failed to connect to UniFi Protect, retrying in 1s... Traceback (most recent call last):

ep1cman commented 6 months ago

You need to update to the latest version of the docker container. The latest UniFi protect version broke the older versions of this tool

maxnata commented 6 months ago

Thanks. Apologies for the ignorance. How do I do it? I though running it as as docker point directly to the source would automatically take the latest version?

docker run --restart=always -e UFP_USERNAME='xxx' -e UFP_PASSWORD='xxx' -e UFP_ADDRESS='192.168.x.x' -e UFP_SSL_VERIFY='false' -e PURGE_INTERVAL='14d' -e SKIP_MISSING -v '/mnt/hdd1/clips':'/data' -v '/mnt/hdd1/database':/config/database/ ghcr.io/ep1cman/unifi-protect-backup

ep1cman commented 6 months ago

docker run will only pull the latest image if it cannot find the container locally. If you want to force an update you can run the following before the run command:

docker pull ghcr.io/ep1cman/unifi-protect-backup:latest

maxnata commented 6 months ago

Worked! Thanks a lot