/* Copyright(C) 2019-2026, HJD (https://github.com/hjdhjd). All rights reserved. * * fob.ts: The Fob device projection. */ import type { DeviceContext } from "./context.ts"; import { DeviceProjection } from "./device.ts"; import type { ProtectFobConfig } from "../types/index.ts"; import { deviceSelectors } from "../state/selectors.ts"; /** * A fob projection. Inherits the read-through getters, live `observe`, and write-through `update` / `reboot` from {@link DeviceProjection}. A fob is an input device: its * security-action button presses arrive as occurrences on the event firehose, its away/arm state (`awayState`, `pendingActionType`) is read through the device record, * and its last button press time is also available synchronously via `wirelessConnectionState.functionButtonPressedAt`, so it adds no fob-specific commands. * * @category Devices */ export class Fob extends DeviceProjection { readonly modelKey = "fob"; constructor(ctx: DeviceContext, id: string) { super(ctx, id, deviceSelectors.fob.byId); } }