src.nth.io/

summaryrefslogtreecommitdiff
path: root/doorbell-viewport/tasks/main.yaml
blob: fd395c74afbd76d890521363e39cadac4510a06a (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
136
---

- 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"
    - "libraspberrypi-bin"

- 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"