eufy-security-client
Version:
Client to comunicate with Eufy-Security devices
329 lines (328 loc) • 7.65 kB
TypeScript
import { UserType } from "../http/types";
import { AlarmAction } from "./types";
export interface CusPushData {
a?: number;
alarm?: number;
alarm_delay?: number;
alarm_type?: number;
arming?: number;
automation_id?: number;
batt_powered?: number;
c?: number;
channel?: number;
click_action?: string;
create_time?: number;
device_name?: string;
e?: string;
event_time?: number;
event_type?: number;
f?: string;
i?: string;
j?: number;
k?: number;
cipher?: number;
m?: number;
mode?: number;
n?: string;
name?: string;
news_id?: number;
nick_name?: string;
notification_style?: number;
p?: string;
file_path?: string;
pic_url?: string;
push_count?: number;
s: string;
session_id?: string;
short_user_id?: string;
storage_type?: number;
t?: string;
tfcard?: number;
type?: number;
unique_id?: string;
user?: UserType;
user_id?: string;
user_name?: string;
bat_low?: string;
msg_type: number;
r?: string;
u?: string;
}
export interface EufyPushMessage {
content: string;
device_sn: string;
event_time: string;
payload?: CusPushData | IndoorPushData | ServerPushData | BatteryDoorbellPushData | LockPushData | SmartSafePushData | GarageDoorPushData | AlarmPushData;
push_time: string;
station_sn: string;
title: string;
type: string;
doorbell?: string;
"google.c.sender.id": string;
}
export interface SmartSafeEventValueDetail {
type: number;
action: number;
figure_id: number;
user_id: number;
name?: string;
}
export interface SmartSafePushData {
dev_name: string;
event_type: number;
event_time: number;
event_value: number | SmartSafeEventValueDetail;
}
export interface LockPushData {
event_type: number;
event_time: number;
short_user_id: string;
nick_name: string;
user_id: string;
device_name: string;
device_sn: string;
}
export interface GarageDoorPushData {
a: number;
msg_type: number;
event_type: number;
door_id: number;
user_name: string;
door_name: string;
pic_url: string;
file_path: string;
storage_type: number;
unique_id: string;
power?: number;
}
export interface BatteryDoorbellPushData {
name: string;
channel: number;
cipher: number;
create_time: number;
device_sn: string;
session_id: string;
event_type: number;
file_path: string;
pic_url: string;
push_count: number;
notification_style: number;
objects?: DoorbellPeopleNames;
nick_name?: string;
}
export interface DoorbellPeopleNames {
names: string[];
}
export interface RawPushMessage {
id: string;
from: string;
to: string;
category: string;
persistentId: string;
ttl: number;
sent: string;
payload: EufyPushMessage;
}
export interface FidTokenResponse {
token: string;
expiresIn: string;
expiresAt: number;
}
export interface FidInstallationResponse {
name: string;
fid: string;
refreshToken: string;
authToken: FidTokenResponse;
}
export interface CheckinResponse {
statsOk: boolean;
timeMs: string;
androidId: string;
securityToken: string;
versionInfo: string;
deviceDataVersionInfo: string;
}
export interface GcmRegisterResponse {
token: string;
}
export interface Message {
tag: number;
object: any;
}
export declare enum ProcessingState {
MCS_VERSION_TAG_AND_SIZE = 0,
MCS_TAG_AND_SIZE = 1,
MCS_SIZE = 2,
MCS_PROTO_BYTES = 3
}
export declare enum MessageTag {
HeartbeatPing = 0,
HeartbeatAck = 1,
LoginRequest = 2,
LoginResponse = 3,
Close = 4,
MessageStanza = 5,
PresenceStanza = 6,
IqStanza = 7,
DataMessageStanza = 8,
BatchPresenceStanza = 9,
StreamErrorStanza = 10,
HttpRequest = 11,
HttpResponse = 12,
BindAccountRequest = 13,
BindAccountResponse = 14,
TalkMetadata = 15,
NumProtoTypes = 16
}
export interface Credentials {
fidResponse: FidInstallationResponse;
checkinResponse: CheckinResponse;
gcmResponse: GcmRegisterResponse;
}
export interface DoorbellPushData {
campaign_name: string;
channel: number;
cipher: number;
content: string;
create_time: number;
device_sn: string;
event_session: string;
event_time: number;
event_type: number;
file_path: string;
person_name?: string;
outer_body: string;
outer_title: string;
pic_url: string;
push_count: number;
station_sn: string;
title: string;
url: string;
url_ex: string;
video_url: string;
}
export interface IndoorPushData {
a: number;
channel: number;
cipher: number;
create_time: number;
trigger_time: number;
device_sn: string;
event_type: number;
file_path: string;
msg_type: number;
name: string;
notification_style: number;
pic_url: string;
push_count: number;
session_id: string;
storage_type: number;
t: number;
tfcard_status: number;
timeout: number;
unique_id: string;
}
export interface ServerPushData {
email: string;
nick_name: string;
verify_code: string;
}
export interface PushMessage {
name: string;
event_time: number;
type: number;
station_sn: string;
device_sn: string;
title?: string;
content?: string;
push_time?: number;
channel?: number;
cipher?: number;
event_session?: string;
event_type?: number;
file_path?: string;
pic_url?: string;
push_count?: number;
notification_style?: number;
tfcard_status?: number;
alarm_delay_type?: number;
alarm_delay?: number;
alarm_type?: number;
sound_alarm?: boolean;
user_name?: string;
user_type?: number;
user_id?: string;
short_user_id?: string;
station_guard_mode?: number;
station_current_mode?: number;
person_name?: string;
sensor_open?: boolean;
device_online?: boolean;
fetch_id?: number;
sense_id?: number;
battery_powered?: boolean;
battery_low?: number;
storage_type?: number;
unique_id?: string;
automation_id?: number;
click_action?: string;
news_id?: number;
doorbell_url?: string;
doorbell_url_ex?: string;
doorbell_video_url?: string;
msg_type?: number;
timeout?: number;
event_value?: number | SmartSafeEventValueDetail;
person_id?: number;
door_id?: number;
power?: number;
email?: string;
verify_code?: string;
alarm_status?: string;
alarm_action?: AlarmAction;
open?: number;
openType?: number;
pin?: string;
}
export interface PlatformPushMode {
a: number;
alarm: number;
arming: number;
channel: number;
cipher: number;
create_time: number;
device_sn: string;
event_type: number;
face_id: number;
file_path: string;
mode: number;
msg_type: number;
name: string;
nick_name: string;
notification_style: number;
parted_status: number;
pic_url: string;
push_count: number;
record_id: number;
s: string;
session_id: string;
storage_type: number;
t: number;
tfcard_status: number;
timeout: number;
unique_id: string;
user: number;
user_name: string;
pic_filepath: string;
trigger_time: number;
alarm_delay: number;
person_id: number;
}
export interface AlarmPushData {
alarm_action_channel: AlarmAction;
alarm_id: string;
alarm_status: string;
alert_time: number;
device_sn: string;
station_sn: string;
}