<feed xmlns='http://www.w3.org/2005/Atom'>
<title>luke/ansible-roles/doorbell-viewport/defaults/main.yaml, branch main</title>
<subtitle>Ansible roles for nth.io infrastructure
</subtitle>
<id>https://src.nth.io/luke/ansible-roles/atom?h=main</id>
<link rel='self' href='https://src.nth.io/luke/ansible-roles/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/'/>
<updated>2026-04-16T01:00:04+00:00</updated>
<entry>
<title>Rename doorbell-viewport role to unifi-protect-viewport</title>
<updated>2026-04-16T01:00:04+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2026-04-16T01:00:04+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=4ec792319b0cc9ab9aa3410c454f4880515c62c0'/>
<id>urn:sha1:4ec792319b0cc9ab9aa3410c454f4880515c62c0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove vcgencmd display backend, simplify DisplayController</title>
<updated>2026-04-13T12:45:07+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2026-04-13T12:45:07+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=c1bd1d0f3abe8d4de65f2c95731711a6efa3008d'/>
<id>urn:sha1:c1bd1d0f3abe8d4de65f2c95731711a6efa3008d</id>
<content type='text'>
Always use sysfs backlight. vcgencmd resets DRM planes under fkms
making it incompatible with the drm video output. Removes
libraspberrypi-bin dependency and panel/vcgencmd dead code.
</content>
</entry>
<entry>
<title>Remove warm prebuffer mode from doorbell-viewport</title>
<updated>2026-04-13T12:37:42+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2026-04-13T12:37:42+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=8a14be01daaa8c77733e53ed1da2a6914aaac407'/>
<id>urn:sha1:8a14be01daaa8c77733e53ed1da2a6914aaac407</id>
<content type='text'>
Always start mpv on demand (cold start). The warm path was fragile on
the RPi4 with fkms and added complexity without reliable benefit.
</content>
</entry>
<entry>
<title>Fix doorbell-viewport bringup issues</title>
<updated>2026-04-12T18:13:16+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2026-04-12T18:13:16+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=1298d68bb9bc33b84a70e4c9c27c806d8a0748c9'/>
<id>urn:sha1:1298d68bb9bc33b84a70e4c9c27c806d8a0748c9</id>
<content type='text'>
- Fix websockets headers kwarg via inspect (works across all versions)
- Use full path /usr/bin/vcgencmd; add libraspberrypi-bin dependency
- Fix UniFi Protect WS packet decoder to handle multiple concatenated
  packets per message (action+data in single frame)
- Fetch lastUpdateId from bootstrap for WS URL
- Switch fbcon disable from video=HDMI-A-1:D to fbcon=map:99 (fkms compat)
- Default drm_connector to DSI-1 for fkms; drop hardcoded drm_mode
- Add --no-audio and --hwdec=no to mpv; fix DRM mode-setting race on startup
- Add PoE HAT fan control with configurable temp thresholds

</content>
</entry>
<entry>
<title>Add doorbell-viewport role</title>
<updated>2026-04-12T16:52:58+00:00</updated>
<author>
<name>Luke Hoersten</name>
<email>luke@hoersten.org</email>
</author>
<published>2026-04-12T16:52:58+00:00</published>
<link rel='alternate' type='text/html' href='https://src.nth.io/luke/ansible-roles/commit/?id=c528cf7268463c84a050129665ce08814fd1d420'/>
<id>urn:sha1:c528cf7268463c84a050129665ce08814fd1d420</id>
<content type='text'>
RPi4 portrait touchscreen that shows a live UniFi Protect RTSP stream
on doorbell ring or touch, with display fully off at idle. Supports
warm prebuffer, vcgencmd/drm/panel display backends, evdev touch input,
and configurable DRM device/connector/mode.

</content>
</entry>
</feed>
