Status Module
- seestarpy.status.azimuth_to_compass(degrees)
Convert an azimuth angle to a 16-point compass direction.
Uses the standard meteorological convention where 0° is North, 90° is East, 180° is South, and 270° is West.
- Parameters:
degrees (float) – Azimuth in decimal degrees [0, 360).
- Returns:
One of the 16 compass points:
'N','NNE','NE','ENE','E','ESE','SE','SSE','S','SSW','SW','WSW','W','WNW','NW','NNW'.- Return type:
str
Examples
>>> from seestarpy.status import azimuth_to_compass >>> azimuth_to_compass(0) 'N' >>> azimuth_to_compass(135) 'SE' >>> azimuth_to_compass(312.7) 'NW'
- seestarpy.status.get_coords()
Get the mount’s current equatorial and horizontal coordinates.
Queries both the RA/Dec and Alt/Az endpoints and merges the results into a single dictionary.
- Returns:
Dictionary with keys:
'ra'(float) — Right Ascension in decimal hours.'dec'(float) — Declination in decimal degrees.'alt'(float) — Altitude in decimal degrees.'az'(float) — Azimuth in decimal degrees.
- Return type:
dict
- Raises:
ValueError – If either coordinate endpoint returns an error (e.g. the mount has not been initialised).
Notes
Accepts the
ipskeyword for querying multiple Seestars simultaneously.Examples
>>> from seestarpy import status >>> status.get_coords() {'ra': 13.398, 'dec': 54.925, 'alt': 42.3, 'az': 312.7}
- seestarpy.status.get_exposure(which='stack_l')
Get the current exposure time in milliseconds.
The Seestar maintains two independent exposure settings:
'stack_l'for long-exposure stacking, and'continuous'for the live-view / continuous-exposure mode.- Parameters:
which (str, optional) – Which exposure to query. One of
'stack_l'(default) or'continuous'.- Returns:
Exposure time in milliseconds.
- Return type:
int
Notes
Accepts the
ipskeyword for querying multiple Seestars simultaneously.Examples
>>> from seestarpy import status >>> status.get_exposure() # Stacking exposure 10000 >>> status.get_exposure("continuous") # Live-view exposure 500
- seestarpy.status.get_filter()
Get the current filter-wheel position.
The Seestar S50 filter wheel has three positions:
0 — Dark (shutter closed).
1 — IR-cut (open, 400–700 nm with Bayer matrix).
2 — Narrow-band / light-pollution (30 nm OIII + 20 nm Ha).
- Returns:
Response dictionary whose
'result'key contains the integer position.- Return type:
dict
Notes
Accepts the
ipskeyword for querying multiple Seestars simultaneously.Examples
>>> from seestarpy import status >>> status.get_filter() {'jsonrpc': '2.0', ..., 'result': 1, 'code': 0, 'id': 1}
- seestarpy.status.get_firmware_version()
Get the Seestar firmware version string.
- Returns:
Firmware version, e.g.
"7.18".- Return type:
str
Notes
Accepts the
ipskeyword for querying multiple Seestars simultaneously.Examples
>>> from seestarpy import status >>> status.get_firmware_version() '7.18'
- seestarpy.status.get_mount_state()
Get the full mount state dictionary from the Seestar.
This is a convenience wrapper around
raw.get_device_state(keys=["mount"]), returning just themountsub-dictionary.- Returns:
Mount state with keys:
'move_type'(str) — e.g."none","tracking".'close'(bool) —Truewhen the arm is parked.'tracking'(bool) —Truewhen sidereal tracking is on.'equ_mode'(bool) —Truewhen in equatorial-mount mode.
- Return type:
dict
Notes
Accepts the
ipskeyword for querying multiple Seestars simultaneously.Examples
>>> from seestarpy import status >>> status.get_mount_state() {'move_type': 'none', 'close': False, 'tracking': True, 'equ_mode': True}
- seestarpy.status.get_target_name()
Get the target name from the current observation sequence setting.
This returns the group name that was set when the observation sequence was configured (e.g. via
raw.set_sequence_setting).- Returns:
The group name (e.g.
"M 81"), orNoneif no sequence is configured.- Return type:
str or None
Notes
Accepts the
ipskeyword for querying multiple Seestars simultaneously.Examples
>>> from seestarpy import status >>> status.get_target_name() 'M 81'
- seestarpy.status.get_target_name2()
Get the target name from the image-name field.
This is an alternative to
get_target_name()that reads the name embedded in the image filename template rather than the sequence setting.- Return type:
dict
Notes
Accepts the
ipskeyword for querying multiple Seestars simultaneously.Examples
>>> from seestarpy import status >>> status.get_target_name2()
- seestarpy.status.is_eq_mode()
Check whether the mount is in equatorial mode.
Returns
Truewhen the Seestar has been parked with the equatorial wedge enabled (i.e.scope_park(equ_mode=True)).- Return type:
bool
Notes
Accepts the
ipskeyword for querying multiple Seestars simultaneously.Examples
>>> from seestarpy import status >>> status.is_eq_mode() True
- seestarpy.status.is_parked()
Check whether the Seestar arm is in the closed (parked) position.
- Return type:
bool
Notes
Accepts the
ipskeyword for querying multiple Seestars simultaneously.Examples
>>> from seestarpy import status >>> status.is_parked() True
- seestarpy.status.is_tracking()
Check whether the mount is currently sidereal-tracking.
- Return type:
bool
Notes
Accepts the
ipskeyword for querying multiple Seestars simultaneously.Examples
>>> from seestarpy import status >>> status.is_tracking() False
- seestarpy.status.status_bar(return_type='str')
Query the Seestar and return a formatted ASCII status dashboard.
Pulls data from multiple device endpoints (device state, app state, coordinates) and combines them into a single table. Useful for quick at-a-glance monitoring in a terminal or Jupyter notebook.
- Parameters:
return_type (str, optional) – Output format.
"str"(default) returns a printable multi-line string;"dict"returns the raw values as a dictionary.- Returns:
The formatted status table, or a dictionary of all queried values.
- Return type:
str or dict
Notes
The table layout is shown below. Each cell is populated from live device queries:
|================|================|================|================|==========| | View | Coordinates | Observation | Initialisation | Seestar | |================|================|================|================|==========| | MODE | TARGET RA/DEC | LP FILTER | DARK FRAME | BATTERY | | STATE | CURRENT RA/DEC | EXPOSURE TIME | FOCUS POSITION | FREE MB | | ERROR | ALT AZ COMP | STACK DROP | PLATE SOLVE | EQ_MODE | | TARGET NAME | BALANCE ANGLE | TRACKING | SOLVE ERROR | TIME | |================|================|================|================|==========|
Examples
>>> from seestarpy import status >>> print(status.status_bar())