Skip to content

Add remote ScreenLogic connection support#70

Open
jda03806 wants to merge 4 commits intodieselrabbit:masterfrom
jda03806:remote-screenlogic
Open

Add remote ScreenLogic connection support#70
jda03806 wants to merge 4 commits intodieselrabbit:masterfrom
jda03806:remote-screenlogic

Conversation

@jda03806
Copy link
Copy Markdown

@jda03806 jda03806 commented May 5, 2026

Summary

Adds support for connecting to Pentair ScreenLogic gateways through the remote dispatcher.

This includes:

  • Resolving a remote ScreenLogic system name through screenlogicserver.pentair.com:500
  • Parsing the dispatcher response into RemoteGatewayInfo
  • Supporting password/challenge-based remote login
  • Preserving existing local/passwordless login behavior

Testing

Tested against a real ScreenLogic remote gateway using environment variables for the system name and password.

Verified:

  • Remote dispatcher lookup succeeds
  • Remote challenge/password login succeeds
  • Gateway version request succeeds
  • Full gateway update succeeds
  • Existing local login message generation still works

Example local checks:

local login message length: 45
remote login message length: 53

## Notes
This adds cryptography as a runtime dependency for AES password challenge encryption.

@jda03806
Copy link
Copy Markdown
Author

jda03806 commented May 5, 2026

I found and fixed one reconnect issue while testing through Home Assistant.

ScreenLogicGateway._async_connected_request() can call async_connect() without arguments during command/reconnect paths. The branch now persists the remote/password settings on the gateway object and preserves remote mode when async_connect() is called without an explicit remote argument.

This fixed a real test case where reads worked, but write commands attempted to reconnect with the local dummy password and were rejected by the remote gateway.

@jda03806
Copy link
Copy Markdown
Author

jda03806 commented May 5, 2026

Follow-up testing through the Home Assistant custom component found a reconnect/write-path issue: after a dropped connection, command paths could call async_connect() with no arguments. That initially caused reconnects to fall back to the local dummy password and remote commands were rejected.

The latest commits persist remote connection settings on the gateway object and preserve remote mode across reconnects. I also restored client manager attachment in the HA test setup and verified that reads, writes, and light color-mode commands work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant