shellies-ds9
Version:
Handles communication with the next generation of Shelly devices
138 lines • 3.52 kB
TypeScript
import { Component } from './base';
import { Device } from '../devices';
import { RpcEvent } from '../rpc';
export interface SystemFirmwareUpdate {
stable?: {
version: string;
};
beta?: {
version: string;
};
}
export interface SystemWakeupReason {
boot: 'poweron' | 'software_restart' | 'deepsleep_wake' | 'internal' | 'unknown';
cause: 'button' | 'usb' | 'periodic' | 'status_update' | 'undefined';
}
export interface SystemAttributes {
mac: string;
restart_required: boolean;
time: string;
unixtime: number;
uptime: number;
ram_size: number;
ram_free: number;
fs_size: number;
fs_free: number;
cfg_rev: number;
kvs_rev: number;
schedule_rev?: number;
webhook_rev?: number;
available_updates: SystemFirmwareUpdate;
wakeup_reason?: SystemWakeupReason;
}
export interface SystemConfig {
device: {
name: string;
eco_mode: boolean;
mac: string;
fw_id: string;
profile?: string;
discoverable: boolean;
};
location: {
tz: string | null;
lat: number | null;
lon: number | null;
};
debug: {
mqtt: {
enable: boolean;
};
websocket: {
enable: boolean;
};
udp: {
addr: string | null;
};
};
ui_data: Record<string, unknown>;
rpc_udp: {
dst_addr: string | null;
listen_port: number | null;
};
sntp: {
server: string;
};
sleep?: {
wakeup_period: number;
};
cfg_rev: number;
}
/**
* Handles the system services of a device.
*/
export declare class System extends Component<SystemAttributes, SystemConfig> implements SystemAttributes {
/**
* MAC address of the device.
*/
readonly mac: string;
/**
* true if a restart is required, false otherwise.
*/
readonly restart_required: boolean;
/**
* Local time in the current timezone (HH:MM).
*/
readonly time: string;
/**
* Current time in UTC as a UNIX timestamp.
*/
readonly unixtime: number;
/**
* Time in seconds since last reboot.
*/
readonly uptime: number;
/**
* Total RAM, in bytes.
*/
readonly ram_size: number;
/**
* Available RAM, in bytes.
*/
readonly ram_free: number;
/**
* File system total size, in bytes.
*/
readonly fs_size: number;
/**
* File system available size, in bytes.
*/
readonly fs_free: number;
/**
* Configuration revision number.
*/
readonly cfg_rev: number;
/**
* KVS (Key-Value Store) revision number.
*/
readonly kvs_rev: number;
/**
* Schedule revision number (present if schedules are enabled).
*/
readonly schedule_rev: number | undefined;
/**
* Webhook revision number (present if schedules are enabled).
*/
readonly webhook_rev: number | undefined;
/**
* Available firmware updates, if any.
*/
readonly available_updates: SystemFirmwareUpdate;
/**
* Information about boot type and cause (only for battery-operated devices).
*/
readonly wakeup_reason: SystemWakeupReason | undefined;
constructor(device: Device);
handleEvent(event: RpcEvent): void;
}
//# sourceMappingURL=system.d.ts.map