Skip to content

Wear OS companion app (watch face complication + glance) #92

Description

@cnighswonger

Summary

A lightweight Wear OS app for Android smartwatches that displays current weather conditions from a Kanfei station. Companion to the planned native Android app (#32).

Scope

Watch face complication

  • Data provider that polls GET /api/public/weather on a configurable interval (default: 15-30 min)
  • Supports standard complication types: short text (temp), long text (temp + conditions), ranged value (humidity, barometer)
  • Works with any watch face that supports complications

Glance / tile

  • Full current conditions at a glance: temperature, humidity, wind, barometer
  • Tap to open detail view with daily hi/lo, rain, UV

Configuration

  • Server URL entry (e.g., http://192.168.1.50:8000)
  • Poll interval selection
  • Which data to show in complication

Connectivity

  • LAN: Works out of the box on the same subnet — polls the public weather API directly
  • Remote: Works if the Kanfei instance is exposed via reverse proxy, port forward, or VPN
  • All connections are client-initiated outbound HTTP (no inbound ports required on the watch)
  • Uses the unauthenticated /api/public/weather endpoint — no credentials stored on the watch

Technical notes

  • Wear OS 3+ (Compose for Wear OS)
  • SuspendingComplicationDataSourceService for complication data
  • WorkManager for periodic background polling
  • Battery-conscious: respect Wear OS doze mode, use PeriodicWorkRequest with flex window
  • Offline cache: show last-known values when unreachable

Acceptance criteria

  • Complication shows current temperature on any compatible watch face
  • Tile shows full current conditions
  • Configurable server URL and poll interval
  • Graceful offline handling (shows stale data with age indicator)
  • Battery impact acceptable (< 1% per hour)

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions