diff options
| author | Luke Hoersten <[email protected]> | 2026-04-15 20:00:04 -0500 |
|---|---|---|
| committer | Luke Hoersten <[email protected]> | 2026-04-15 20:00:04 -0500 |
| commit | 4ec792319b0cc9ab9aa3410c454f4880515c62c0 (patch) | |
| tree | 876e693da2e2be042a574838484027de8be6b23d /doorbell-viewport/files/doorbell-viewport-debug | |
| parent | 7d61034d91cc716ad6165f6867c49940ced94909 (diff) | |
Rename doorbell-viewport role to unifi-protect-viewport
Diffstat (limited to 'doorbell-viewport/files/doorbell-viewport-debug')
| -rw-r--r-- | doorbell-viewport/files/doorbell-viewport-debug | 208 |
1 files changed, 0 insertions, 208 deletions
diff --git a/doorbell-viewport/files/doorbell-viewport-debug b/doorbell-viewport/files/doorbell-viewport-debug deleted file mode 100644 index 1305c13..0000000 --- a/doorbell-viewport/files/doorbell-viewport-debug +++ /dev/null @@ -1,208 +0,0 @@ -#!/bin/bash -# doorbell-viewport-debug: CLI debug tool -# -# Commands: -# show Turn display on -# hide Turn display off -# test-display Test display power cycle (on -> 3s -> off) -# test-touch List touch devices and capabilities -# test-stream Fetch RTSP URL from Protect and play via mpv -# test-protect Test Protect API authentication and camera info - -set -e - -ENV_FILE="/etc/doorbell-viewport/doorbell-viewport.env" -CMD="${1:-help}" - -_load_env() { - if [ -f "$ENV_FILE" ]; then - set -a - # shellcheck disable=SC1090 - source "$ENV_FILE" - set +a - else - echo "Warning: $ENV_FILE not found" >&2 - fi -} - -_display_on() { - BACKLIGHT=$(ls /sys/class/backlight/ 2>/dev/null | head -1) - if [ -n "$BACKLIGHT" ]; then - MAX=$(cat "/sys/class/backlight/$BACKLIGHT/max_brightness") - echo "$MAX" > "/sys/class/backlight/$BACKLIGHT/brightness" - else - echo "No backlight device found" >&2 - fi -} - -_display_off() { - BACKLIGHT=$(ls /sys/class/backlight/ 2>/dev/null | head -1) - if [ -n "$BACKLIGHT" ]; then - echo "0" > "/sys/class/backlight/$BACKLIGHT/brightness" - else - echo "No backlight device found" >&2 - fi -} - -cmd_show() { - _load_env - echo "Turning display on..." - _display_on - echo "Display on" -} - -cmd_hide() { - _load_env - echo "Turning display off..." - _display_off - echo "Display off" -} - -cmd_test_display() { - _load_env - echo "Testing display power cycle..." - echo "ON..." - _display_on - sleep 3 - echo "OFF..." - _display_off - echo "Done" -} - -cmd_test_touch() { - echo "Touch devices:" - python3 - <<'PYEOF' -import evdev -for path in evdev.list_devices(): - try: - dev = evdev.InputDevice(path) - caps = dev.capabilities() - has_mt = ( - evdev.ecodes.EV_ABS in caps - and any( - code == evdev.ecodes.ABS_MT_POSITION_X - for code, _ in caps[evdev.ecodes.EV_ABS] - ) - ) - has_btn = ( - evdev.ecodes.EV_KEY in caps - and evdev.ecodes.BTN_TOUCH in [code for code, _ in caps.get(evdev.ecodes.EV_KEY, [])] - ) - print(f" {path}: {dev.name!r} (multitouch={has_mt}, btn_touch={has_btn})") - dev.close() - except Exception as e: - print(f" {path}: error: {e}") -PYEOF - echo "" - echo "To monitor live touch events interactively:" - echo " python3 -m evdev.evtest" -} - -cmd_test_stream() { - _load_env - if [ -z "$DOORBELL_VIEWPORT_PROTECT_HOST" ]; then - echo "Error: DOORBELL_VIEWPORT_PROTECT_HOST not set" >&2 - exit 1 - fi - - echo "Fetching RTSP URL from $DOORBELL_VIEWPORT_PROTECT_HOST..." - RTSP_URL=$(python3 - <<PYEOF -import os, sys, requests, urllib3 -urllib3.disable_warnings() -host = os.environ['DOORBELL_VIEWPORT_PROTECT_HOST'] -user = os.environ['DOORBELL_VIEWPORT_PROTECT_USERNAME'] -passwd = os.environ['DOORBELL_VIEWPORT_PROTECT_PASSWORD'] -camera_id = os.environ['DOORBELL_VIEWPORT_CAMERA_ID'] -s = requests.Session() -s.verify = False -r = s.post(f'https://{host}/api/auth/login', - json={'username': user, 'password': passwd}, timeout=10) -r.raise_for_status() -r2 = s.get(f'https://{host}/proxy/protect/api/cameras/{camera_id}', timeout=10) -r2.raise_for_status() -for ch in r2.json().get('channels', []): - if ch.get('isRtspEnabled') and ch.get('rtspAlias'): - print(f"rtsp://{host}:7447/{ch['rtspAlias']}") - sys.exit(0) -print('no-rtsp-url', file=sys.stderr) -sys.exit(1) -PYEOF - ) - - if [ -z "$RTSP_URL" ]; then - echo "Failed to get RTSP URL" >&2 - exit 1 - fi - - echo "Playing: $RTSP_URL" - echo "(press q to quit)" - mpv \ - --vo=drm \ - "--video-rotate=${DOORBELL_VIEWPORT_ORIENTATION:-270}" \ - --fullscreen \ - --no-border \ - --no-osc \ - --no-input-default-bindings \ - --really-quiet \ - "$RTSP_URL" -} - -cmd_test_protect() { - _load_env - if [ -z "$DOORBELL_VIEWPORT_PROTECT_HOST" ]; then - echo "Error: DOORBELL_VIEWPORT_PROTECT_HOST not set" >&2 - exit 1 - fi - - python3 - <<PYEOF -import os, requests, urllib3 -urllib3.disable_warnings() -host = os.environ['DOORBELL_VIEWPORT_PROTECT_HOST'] -user = os.environ['DOORBELL_VIEWPORT_PROTECT_USERNAME'] -passwd = os.environ['DOORBELL_VIEWPORT_PROTECT_PASSWORD'] -camera_id = os.environ['DOORBELL_VIEWPORT_CAMERA_ID'] -s = requests.Session() -s.verify = False - -print(f"Connecting to {host}...") -r = s.post(f'https://{host}/api/auth/login', - json={'username': user, 'password': passwd}, timeout=10) -r.raise_for_status() -print("Authentication: OK") - -r2 = s.get(f'https://{host}/proxy/protect/api/cameras/{camera_id}', timeout=10) -r2.raise_for_status() -data = r2.json() -print(f"Camera name: {data.get('name', 'unknown')}") -print(f"Camera type: {data.get('type', 'unknown')}") -channels = [ch for ch in data.get('channels', []) if ch.get('isRtspEnabled')] -print(f"RTSP channels: {len(channels)}") -for ch in channels: - name = ch.get('name', '') - alias = ch.get('rtspAlias', '') - print(f" {name}: rtsp://{host}:7447/{alias}") -print("Protect connection: OK") -PYEOF -} - -case "$CMD" in - show) cmd_show ;; - hide) cmd_hide ;; - test-display) cmd_test_display ;; - test-touch) cmd_test_touch ;; - test-stream) cmd_test_stream ;; - test-protect) cmd_test_protect ;; - help|*) - echo "Usage: doorbell-viewport-debug <command>" - echo "" - echo "Commands:" - echo " show Turn display on" - echo " hide Turn display off" - echo " test-display Test display power cycle (on -> 3s -> off)" - echo " test-touch List touch devices and capabilities" - echo " test-stream Fetch RTSP URL and play via mpv" - echo " test-protect Test Protect API connection and camera info" - echo "" - echo "Config: $ENV_FILE" - ;; -esac |
