@mega-yfue/eufy-sdk / SolixMqttOptions
Interface: SolixMqttOptions
Options for SolixMqtt.
Properties
appClientId?
appClientId?: string;The head.client_id stamped into the command/heartbeat envelopes — the app-shaped android-{app_name}-{user_id}-{mqttUuid}-{ts} (see buildAppShapedClientId). Defaults to that shape built from mqttUuid. Pass this to pin the whole string.
armIntervalMs?
armIntervalMs?: number;How often (ms) to re-send the device-info arming request that keeps realtime telemetry flowing. The device stops pushing param_info when no client keeps requesting it (the app re-arms on every foreground resume + a periodic heartbeat), so a passive subscriber goes silent after the server's reporting window closes. Default 25s — inside the observed ~30s cadence with keepalive 60. Set 0 to disable arming (subscribe-only, the old behaviour).
clientId?
clientId?: string;Override the MQTT clientId. Defaults to the cert CN (thing_name), distinct from the app's id.
logger?
logger?: Logger;mqttInfo
mqttInfo: SecureMqttCredentials;get_user_mqtt_info result — carries endpoint, cert/key, app_name, thing_name, user_id.
mqttUuid?
mqttUuid?: string;Stable 16-hex install UUID for the app-shaped client id. Defaults to one derived deterministically from the user id (mqttUuidFrom) — no storage needed, so the broker sees one stable client across restarts.
The trade this makes: the default seed is the account id, which every client on that account shares, so two clients on one account derive the same uuid → the same client_id, and the broker evicts one to admit the other (they take the channel from each other indefinitely). Restart stability is the common case and this is the deliberate default, but pass an explicit mqttUuid (per host/install) when more than one client runs on the same account, to be told apart.
siteId?
siteId?: string;The account's site_id for the power_site heartbeat. Omitted from the frame when unknown.
userId?
userId?: string;Account/user id (40-hex) for the arming account_id + heartbeat topic. Defaults to mqttInfo.user_id; set it if the credentials omit it.