src.nth.io/

summaryrefslogtreecommitdiff
path: root/unifi-protect-viewport/tasks/main.yaml
diff options
context:
space:
mode:
authorLuke Hoersten <[email protected]>2026-04-15 20:00:04 -0500
committerLuke Hoersten <[email protected]>2026-04-15 20:00:04 -0500
commit4ec792319b0cc9ab9aa3410c454f4880515c62c0 (patch)
tree876e693da2e2be042a574838484027de8be6b23d /unifi-protect-viewport/tasks/main.yaml
parent7d61034d91cc716ad6165f6867c49940ced94909 (diff)
Rename doorbell-viewport role to unifi-protect-viewport
Diffstat (limited to 'unifi-protect-viewport/tasks/main.yaml')
-rw-r--r--unifi-protect-viewport/tasks/main.yaml135
1 files changed, 135 insertions, 0 deletions
diff --git a/unifi-protect-viewport/tasks/main.yaml b/unifi-protect-viewport/tasks/main.yaml
new file mode 100644
index 0000000..c0ba715
--- /dev/null
+++ b/unifi-protect-viewport/tasks/main.yaml
@@ -0,0 +1,135 @@
+---
+
+- name: add doorbell-viewport user
+ become: yes
+ user:
+ name: "{{doorbell_viewport_user}}"
+ shell: "/bin/false"
+ system: "yes"
+ create_home: "no"
+ groups: "video,input,render,tty"
+ append: "yes"
+
+- name: allow doorbell-viewport user to control sysfs backlight
+ become: yes
+ copy:
+ dest: "/etc/udev/rules.d/99-doorbell-viewport-backlight.rules"
+ owner: "root"
+ group: "root"
+ mode: "0644"
+ content: |
+ SUBSYSTEM=="backlight", ACTION=="add", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"
+
+- name: set backlight brightness writable by video group
+ become: yes
+ file:
+ path: "/sys/class/backlight/rpi_backlight/brightness"
+ group: "video"
+ mode: "0664"
+
+- name: apt install doorbell-viewport dependencies
+ become: yes
+ apt: name="{{item}}"
+ notify: restart doorbell-viewport
+ loop:
+ - "mpv"
+ - "python3-evdev"
+ - "python3-requests"
+ - "python3-websockets"
+
+- name: create doorbell-viewport config dir
+ become: yes
+ file:
+ path: "/etc/doorbell-viewport"
+ owner: "root"
+ group: "{{doorbell_viewport_user}}"
+ mode: "0750"
+ state: "directory"
+
+- name: install doorbell-viewport daemon
+ become: yes
+ copy:
+ src: "doorbell-viewport.py"
+ dest: "/usr/local/bin/doorbell-viewport"
+ owner: "root"
+ group: "root"
+ mode: "0755"
+ notify: restart doorbell-viewport
+
+- name: install doorbell-viewport debug tool
+ become: yes
+ copy:
+ src: "doorbell-viewport-debug"
+ dest: "/usr/local/bin/doorbell-viewport-debug"
+ owner: "root"
+ group: "root"
+ mode: "0755"
+
+- name: configure doorbell-viewport environment
+ become: yes
+ template:
+ src: "doorbell-viewport.env.j2"
+ dest: "/etc/doorbell-viewport/doorbell-viewport.env"
+ owner: "root"
+ group: "{{doorbell_viewport_user}}"
+ mode: "0640"
+ notify: restart doorbell-viewport
+ no_log: true
+
+- name: install doorbell-viewport systemd service
+ become: yes
+ template:
+ src: "doorbell-viewport.service.j2"
+ dest: "/lib/systemd/system/doorbell-viewport.service"
+ mode: "0644"
+ notify: restart doorbell-viewport
+
+- name: configure PoE HAT fan temperature thresholds
+ become: yes
+ blockinfile:
+ path: "/boot/firmware/config.txt"
+ marker: "# {mark} doorbell-viewport poe fan"
+ block: |
+ dtoverlay=rpi-poe
+ dtparam=poe_fan_temp0={{doorbell_viewport_poe_fan_temp0}},poe_fan_temp0_hyst=5000
+ dtparam=poe_fan_temp1={{doorbell_viewport_poe_fan_temp1}},poe_fan_temp1_hyst=5000
+ dtparam=poe_fan_temp2={{doorbell_viewport_poe_fan_temp2}},poe_fan_temp2_hyst=5000
+ dtparam=poe_fan_temp3={{doorbell_viewport_poe_fan_temp3}},poe_fan_temp3_hyst=5000
+ when: doorbell_viewport_poe_fan
+ register: fan_result
+
+- name: remind to reboot for PoE fan config to take effect
+ debug:
+ msg: "config.txt updated — reboot {{inventory_hostname}} for PoE HAT fan thresholds to take effect"
+ when: fan_result is not skipped and fan_result.changed
+
+- name: enable vc4 KMS DRM driver
+ become: yes
+ lineinfile:
+ path: "/boot/firmware/config.txt"
+ line: "dtoverlay=vc4-fkms-v3d"
+ regexp: "^dtoverlay=vc4-(f?)kms-v3d"
+ register: vc4_result
+
+- name: remind to reboot for vc4 DRM driver to take effect
+ debug:
+ msg: "config.txt updated — reboot {{inventory_hostname}} for dtoverlay=vc4-fkms-v3d to take effect"
+ when: vc4_result.changed
+
+- name: disable fbcon to free DRM device for mpv
+ become: yes
+ lineinfile:
+ path: "/boot/firmware/cmdline.txt"
+ backrefs: yes
+ regexp: "^((?!.*fbcon=map:99).*)$"
+ line: "\\1 fbcon=map:99"
+ register: cmdline_result
+
+- name: remind to reboot for cmdline.txt change to take effect
+ debug:
+ msg: "cmdline.txt updated — reboot {{inventory_hostname}} for fbcon=map:99 to take effect"
+ when: cmdline_result.changed
+
+- name: ensure doorbell-viewport is started
+ become: yes
+ systemd: name="doorbell-viewport.service" enabled="yes" state="started" daemon_reload="yes"