Skip to content

enableDevice for outdoor PT cameras (type 48) does not sync state to Eufy cloud — Eufy app shows no change #916

@stephanevalk

Description

@stephanevalk

Device info

  • Camera: T8170 (SoloCam S340), device_type: 48 (OUTDOOR_PT_CAMERA)
  • Station: T8030 (HomeBase 3), firmware 3.8.2.8
  • eufy-security-client: v4.0.0

Description

When calling Station.enableDevice() for an outdoor PT camera (type 48), the P2P command is sent correctly via CMD_SET_PAYLOAD (1350) wrapping CMD_INDOOR_ENABLE_PRIVACY_MODE_S350 (cmd 6250) — this was fixed in v4.0.0. The HB3 acknowledges with ERROR_PPCS_SUCCESSFUL and the camera is physically disabled.

However, the Eufy cloud param param_type 6254 (the cloud-side enabled/privacy state) is never updated via the HTTP API. As a result:

  • HA (and eufy-security-ws) correctly reflects enabled: false from the P2P command response
  • The Eufy mobile app shows the camera as fully operational — no visual indication it was disabled
  • If a family member opens the Eufy app, they see no change and cannot tell the camera was disabled from HA

Evidence from debug logs

At startup, param_type 6254 for T8170T10242521C2 reads:

{ "param_type": 6254, "param_value": "0", "update_time": 1743827584 }

After enableDevice(..., false) succeeds (P2P ACK received), the next cloud poll still shows the same update_time: 1743827584param_type 6254 was never written.

Relevant P2P command that IS sent correctly:

CMD_SET_PAYLOAD (1350) → { cmd: 6250, mChannel: 0, payload: { switch: 1 } }
→ returnCode: 0 (ERROR_PPCS_SUCCESSFUL)

Expected behavior

After disabling the camera via P2P, the HTTP API should also be called to update param_type 6254 in the cloud, matching what the Eufy iOS app does (it writes both the cloud param and sends the P2P command).

Suggested fix

After the P2P command for enableDevice succeeds on outdoor PT cameras, call the HTTP API to update param_type 6254 (0 = enabled, 1 = disabled / privacy on), similar to how other property writes update both transports.

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