Skip to content

Migrate Keenetic panel to generated subpanel ownership #40

Description

@NikaSir

Goal

Move the Keenetic Hero 4G+ specialized panel from integration-owned frontend code to the canonical ha-contract-generated-ui generated subpanel architecture.

Architecture rule

  • ha-keenetic-hero-4g owns Home Assistant entities, telemetry semantics, diagnostics and future safe commands only.
  • ha-contract-generated-ui owns panel structure, route/navigation contract, Header/Back behavior, bottom tabs, Lovelace generation and shared visual language.
  • Do not create another Keenetic UI repository.

Existing compatibility surface

The currently deployed integration registers /dashboard-keenetic and contains its own frontend bundle. Treat that implementation as a temporary compatibility source during migration; do not extend it with new UI features.

Target generated subpanel

Recommended route: /dashboard-keenetic (preserve the existing deep link if possible).

Parent: Infrastructure.

Recommended tabs:

  1. Обзор
  2. WAN/LTE
  3. Трафик
  4. Диагностика

Add a fifth Failover tab only if the amount of operational history justifies a dedicated section; otherwise keep failover summary/details within Overview/WAN-LTE.

Required semantic content

Overview priority:

  1. Internet availability / telemetry trust;
  2. active WAN;
  3. Ethernet state/quality;
  4. LTE reserve state/quality;
  5. last WAN switch/reason;
  6. switches today / LTE active time today.

Detailed views may use the existing Keenetic entity contract for LTE RF, modem/system data, ping/loss and traffic counters.

unknown / unavailable must never render as healthy.

Migration sequence

  • Inventory the current Keenetic semantic roles/entities used by the integration-owned panel.
  • Add a generated Keenetic PanelManifest using subpanel.template: standard_v1 and the central navigation contract.
  • Bind generated views to factual Keenetic entities; no browser-side RCI/SNMP access.
  • Preserve explicit Back navigation to Infrastructure and bottom-tab behavior from the canonical shell.
  • Validate mobile portrait first, including iPhone safe-area behavior and long-press more-info on factual entities.
  • Confirm /dashboard-keenetic ownership cutover without simultaneous route registration by both integrations.
  • After generated-panel acceptance, remove the integration-owned Keenetic frontend registration/bundle in ha-keenetic-hero-4g through a separate backend cleanup PR.
  • Update central Infrastructure deep link and documentation to the generated implementation.

Source context

The generated subpanel shell/navigation contract landed in ha-contract-generated-ui in commit bd5d35b6f8eaf6304d2b15fd55177b8979c65cf0.

Related legacy Keenetic UI task: NikaSir/ha-keenetic-hero-4g#9.

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