Skip to content

Build UplinkWitness TV client for LG webOS 4.x #20

Description

@LucaXTech

Goal

Build a real installable LG webOS TV client for UplinkWitness rather than relying on the TV browser or automatic startup.

Primary validation target: LG OLED55E8PLA, webOS TV 4.x generation.

The TV client is a presentation layer only. Monitoring, incident classification, SQLite persistence and FRITZ!/generic probing remain on the Linux UplinkWitness host.

v0.1 architecture

Use a deliberately thin installable webOS shell under clients/webos/:

  • launcher icon and native LG app entry
  • first-run UplinkWitness server configuration persisted with localStorage
  • fullscreen app container loading the host-served /wallboard?webos=1
  • TV-first 1920x1080 wallboard with Overview, Network, Router and Incidents sections
  • Magic Remote clickable tabs plus directional remote navigation
  • clear unreachable-host state and automatic data refresh
  • no external JavaScript/CDN dependencies
  • Chromium 53-safe HTML/CSS/JavaScript: no CSS Grid, modules, arrow functions or fetch

The hosted wallboard performs /api/status, /api/history and /api/events requests from the Raspberry/Linux host origin. Therefore v0.1 does not add CORS to the API: same-origin hosting is simpler, avoids broadening the local API surface, and lets TV presentation updates ship with normal UplinkWitness host updates without reinstalling the IPK.

/wallboard remains the universal browser fallback when the LG package is not installed.

Packaging and CI

  • appinfo.json uses the UplinkWitness application ID and 1920x1080 resolution
  • 80x80 and 130x130 launcher icons are packaged
  • CI installs the LG webOS CLI, packages the app with ares-package, and publishes the exact .ipk as the uplinkwitness-tv-ipk workflow artifact
  • Python regression tests also validate metadata, icon dimensions, launcher persistence and legacy-safe wallboard syntax

Developer Mode deployment

Document and physically validate:

  • Developer Mode + Key Server on the TV
  • pairing through ares-setup-device / ares-novacom --getkey
  • .ipk installation through ares-install
  • launch through ares-launch
  • server URL persistence after closing/reopening the app

Developer Mode renewal automation from the Raspberry Pi is a separate deployment task after the client is proven on the physical TV.

Non-goals

  • no automatic launch at TV power-on
  • no rooting or Homebrew requirement
  • no monitoring logic duplicated on the TV
  • no LG Content Store submission in the first milestone
  • no public exposure of the UplinkWitness dashboard/API

Acceptance criteria

  • CI packages a valid IPK successfully
  • app installs and launches from the LG launcher
  • server URL survives normal app restart
  • hosted /wallboard renders live /api/status, /api/history and /api/events data
  • Overview / Network / Router / Incidents are usable with the Magic Remote and directional controls from sofa distance
  • settings can be reopened without reinstalling the app
  • physical validation completed on OLED55E8PLA before claiming webOS support

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions