Welcome to SeeStar-Py’s Documentation!
Danger
Firmware 7.18+ requires authentication.
See Authentication (Firmware 7.18+) for more details and the legal basis for interoperability.
Important
Version compatibility. The minor version tracks the oldest Seestar major firmware version supported. seestarpy 0.7.x supports firmware 7.x — tested on 7.18 and 7.75 — and everything newer, including 8.46 and 8.89. When firmware 7 support is dropped, seestarpy becomes 0.8.
The onboard batch-stacking workflow (stack,
crowdsky) sends sub-frame paths in the form firmware
v7.75 requires; on earlier firmware that format is not guaranteed to
work.
If your Seestar runs firmware earlier than v7.18, install an older release instead:
pip install "seestarpy<0.5"
seestarpy is a Python SDK for driving ZWO Seestar smart telescopes over your local network. It wraps the Seestar’s JSON-RPC command interface and binary image streaming protocol into a clean Python API — no phone app required.
Installation
pip install seestarpy
Getting started
The shortest path from install to imaging:
import seestarpy as ssp
# 1. Connect — the Seestar is auto-discovered by UDP broadcast
ssp.connection.test_connection()
# 2. Open the arm
ssp.open()
# 3. Goto a target (coordinates resolved automatically)
ssp.goto_target("M42")
# 4. Start stacking
ssp.start_stack()
That’s it — the Seestar will slew to M42, plate-solve, and begin stacking sub-exposures.
To see what the Seestar is currently looking at, grab the latest stacked frame and pop it up in a matplotlib window:
from seestarpy import stream
stream.show_current_stack() # one Seestar
stream.show_current_stack(ips="all") # all Seestars in a subplot grid
Or, for a screen you can leave up all night, start the web dashboard — it finds every Seestar on the network by itself and gives each one a card with its live image and status:
pip install "seestarpy[dashboard]"
python -m seestarpy.dashboard
See Live Dashboard.
If auto-discovery doesn’t find your Seestar, set the IP manually:
ssp.connection.DEFAULT_IP = "192.168.1.246"
You can find your Seestar’s IP in the official phone app under the station-mode settings.
Controlling multiple Seestars
Most commands accept an ips keyword to broadcast to multiple
Seestars at once:
# Discover all Seestars on the network
ssp.connection.discover()
# Open all arms simultaneously
ssp.open(ips="all")
# Goto the same target on all Seestars
ssp.goto_target("M42", ips="all")
See the Connecting to your Seestar page for more details.
When you’re done
ssp.stop_view()
ssp.close()
Contents
Tutorials
Feedback
Found an issue or have a feature request? Open an issue on GitHub.