blob: 9a51e0b66113be3067d721a8d33f008b4d5d6abb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
---
- name: add unifi-protect-viewport user
become: yes
user:
name: "{{unifi_protect_viewport_user}}"
shell: "/bin/false"
system: "yes"
create_home: "no"
groups: "video,input,render,tty"
append: "yes"
- name: allow unifi-protect-viewport user to control sysfs backlight
become: yes
copy:
dest: "/etc/udev/rules.d/99-unifi-protect-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 unifi-protect-viewport dependencies
become: yes
apt: name="{{item}}"
notify: restart unifi-protect-viewport
loop:
- "mpv"
- "python3-evdev"
- "python3-requests"
- "python3-websockets"
- name: create unifi-protect-viewport config dir
become: yes
file:
path: "/etc/unifi-protect-viewport"
owner: "root"
group: "{{unifi_protect_viewport_user}}"
mode: "0750"
state: "directory"
- name: install unifi-protect-viewport daemon
become: yes
copy:
src: "unifi-protect-viewport.py"
dest: "/usr/local/bin/unifi-protect-viewport"
owner: "root"
group: "root"
mode: "0755"
notify: restart unifi-protect-viewport
- name: install unifi-protect-viewport debug tool
become: yes
copy:
src: "unifi-protect-viewport-debug"
dest: "/usr/local/bin/unifi-protect-viewport-debug"
owner: "root"
group: "root"
mode: "0755"
- name: configure unifi-protect-viewport environment
become: yes
template:
src: "unifi-protect-viewport.env.j2"
dest: "/etc/unifi-protect-viewport/unifi-protect-viewport.env"
owner: "root"
group: "{{unifi_protect_viewport_user}}"
mode: "0640"
notify: restart unifi-protect-viewport
no_log: true
- name: install unifi-protect-viewport systemd service
become: yes
template:
src: "unifi-protect-viewport.service.j2"
dest: "/lib/systemd/system/unifi-protect-viewport.service"
mode: "0644"
notify: restart unifi-protect-viewport
- name: configure PoE HAT fan temperature thresholds
become: yes
blockinfile:
path: "/boot/firmware/config.txt"
marker: "# {mark} unifi-protect-viewport poe fan"
block: |
dtoverlay=rpi-poe
dtparam=poe_fan_temp0={{unifi_protect_viewport_poe_fan_temp0}},poe_fan_temp0_hyst=5000
dtparam=poe_fan_temp1={{unifi_protect_viewport_poe_fan_temp1}},poe_fan_temp1_hyst=5000
dtparam=poe_fan_temp2={{unifi_protect_viewport_poe_fan_temp2}},poe_fan_temp2_hyst=5000
dtparam=poe_fan_temp3={{unifi_protect_viewport_poe_fan_temp3}},poe_fan_temp3_hyst=5000
when: unifi_protect_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 unifi-protect-viewport is started
become: yes
systemd: name="unifi-protect-viewport.service" enabled="yes" state="started" daemon_reload="yes"
|