Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Pool Control — Android app for Pentair controllers

Modern Android app (Kotlin + Jetpack Compose) that talks to Pentair ScreenLogic protocol adapters on your local network to control EasyTouch, IntelliTouch, and similar systems.

No official Pentair public SDK exists. This project implements the community reverse-engineered ScreenLogic-over-IP protocol used by Home Assistant, screenlogicpy, and node-screenlogic.


Research summary

Pentair product lines (how control works)

System How you control it Notes
EasyTouch / IntelliTouch + ScreenLogic2 kit Local TCP to protocol adapter; optional remote via Pentair dispatcher Best documented open protocol; what this app targets first
IntelliCenter Local WebSocket (~port 6681) + Pentair Pool cloud app Different protocol; HA integration jlvaillant/intellicenter; roadmap for v2
IntelliConnect / IntelliSync / IntelliFlo3 Mostly cloud / product-specific Official Pentair Pool app
RS‑485 bus (pumps, chlorinators, panels) Serial; needs USB/RS485 adapter Full open stack: nodejs-poolController

Official apps (for comparison)

  • Pentair Pool — IntelliCenter and newer connected products
  • ScreenLogic Connect — EasyTouch / IntelliTouch via ScreenLogic adapter (often criticized as flaky)

Open-source building blocks we used

Project Language Role
screenlogicpy Python HA core integration; full asyncio client
node-screenlogic TypeScript Mature Node client; message catalog
screenlogic_over_ip Docs + JS Protocol documentation
ScreenLogicConnect C# .NET port
Home Assistant screenlogic Python Production usage patterns

Protocol essentials (ScreenLogic)

  1. Discovery: UDP broadcast on port 1444 (same subnet).
  2. Session: TCP to adapter (often port 80).
  3. Handshake: CONNECTSERVERHOST\r\n\r\n → CHALLENGE (14) → LOCALLOGIN (27) as “Android” client.
  4. Packet header: 8 bytes LE — senderId (u16) | action (u16) | dataLength (i32) + payload.
  5. Useful actions:
    • 12526 pool status
    • 12530 circuit on/off
    • 12528 heat setpoint
    • 12538 heat mode
    • 12556 light show command
  6. Remote: dispatcher screenlogicserver.pentair.com:500 (stubbed; password/relay still needed for production remote).

Legal / safety notes

  • This is an unofficial third-party client. Pentair does not publish a supported third-party API.
  • Local LAN control only is the recommended path (privacy + reliability).
  • Never expose your protocol adapter directly to the internet.
  • Heater/chemical control affects real equipment — test with Demo Mode first.

What this app includes (v1.0)

  • Remote Connect — system code XX-XX-XX (or Pentair: XX-XX-XX) via Pentair dispatcher, same as ScreenLogic Connect
  • Remote access password — challenge-encrypted login (blank if you never set one)
  • Demo Mode — full simulated EasyTouch-style system (no hardware)
  • LAN discovery of ScreenLogic gateways
  • Manual IP/port connect
  • Dashboard — pool/spa temps, air, chemistry, circuit snapshot
  • Circuits — toggle features (pool, spa, cleaner, lights, aux…)
  • Heat — setpoints + Off / Heater / Solar / Solar Preferred
  • Lights — IntelliBrite color shows and fixed colors
  • Kotlin ScreenLogicClient + PasswordEncoder (HLEncoder port)

Roadmap

  • Remember last system code / password (encrypted prefs)
  • Full circuit-name parse from controller config
  • Schedules UI
  • Pump RPM/GPM detail
  • IntelliChlor / IntelliChem controls
  • Widgets + Android Auto
  • Optional bridge mode talking to nodejs-poolController REST/WS

Remote login (your EasyTouch 8 + ScreenLogic 2)

This matches ScreenLogic Connect:

Field Where to find it
System code Protocol adapter label, bottom right (6 alphanumeric chars). Format XX-XX-XX. App also accepts A1B2C3 or Pentair: A1-B2-C3.
Remote password Optional. Set under ScreenLogic General Settings → Set Remote Access Password. Leave blank if you never set one. Some installs still use default 1234.

Flow under the hood:

  1. App asks screenlogicserver.pentair.com:500 for your system name
  2. Dispatcher returns the adapter’s public IP + port
  3. App connects, receives a challenge, encrypts your remote password (HLEncoder / AES-style tables used by official clients)
  4. Normal ScreenLogic control messages (status, circuits, heat, lights)

Security note: Anyone who knows an un-passworded system code can control that pool remotely. Set a remote password if you have not already.


Build & run

Requirements

  1. Android Studio Ladybug (2024.2+) or newer — download
  2. Android SDK 35, JDK 17 (bundled with Android Studio)
  3. Phone/emulator on API 26+
  4. For real hardware: phone on the same Wi‑Fi as the ScreenLogic protocol adapter

Open the project

C:\Users\FrankGonzalez\Projects\PentairPoolControl
  1. Open the folder in Android Studio
  2. Let Gradle sync (downloads dependencies)
  3. If asked for SDK path, create local.properties:
sdk.dir=C\:\\Users\\FrankGonzalez\\AppData\\Local\\Android\\Sdk
  1. Run on a device or emulator → Try Demo Mode immediately

CLI (once SDK + JDK are installed)

cd C:\Users\FrankGonzalez\Projects\PentairPoolControl
.\gradlew.bat assembleDebug

Hardware checklist (real pool)

  1. EasyTouch / IntelliTouch (or compatible) panel
  2. ScreenLogic2 protocol adapter on the home network
  3. Know the adapter IP (router DHCP list) or rely on discovery
  4. Optional 4-digit ScreenLogic password if configured

Not yet: bare IntelliCenter-only installs (different protocol — planned).


Project layout

app/src/main/java/com/pentaircontrol/pool/
  protocol/     # Binary ScreenLogic codec, discovery, TCP client
  data/         # Models, repository, demo engine
  ui/           # Compose screens + ViewModel + theme

Grok / SuperGrok (building this further)

You’re already talking to Grok (xAI). For longer sessions, higher limits, and priority while we keep shipping features:

Plan Where Approx. price (US)
Free grok.com / X $0
SuperGrok Lite grok.com/plans ~$10/mo
SuperGrok grok.com/plans ~$30/mo (often has trial)
SuperGrok Heavy same ~$300/mo
X Premium / Premium+ X subscriptions bundles Grok with X perks

For day-to-day app development with this codebase, SuperGrok (~$30/mo) is usually the right “full” subscription. API usage for custom backends is separate on x.ai.

Subscribe: https://grok.com/plans or https://x.ai/pricing


Credits

Protocol knowledge derived from community reverse-engineering (GPL projects listed above). This Android app is original scaffolding for local control UX — not affiliated with Pentair.

License

You own this project folder. If you publish it, consider dual-noting:

  • App code: choose MIT/Apache-2.0 as you prefer
  • Protocol knowledge: respect licenses of referenced open-source clients if you copy code from them

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages