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 ips keyword 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 ips keyword 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 ips keyword 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 ips keyword 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 the mount sub-dictionary.

Returns:

Mount state with keys:

  • 'move_type' (str) — e.g. "none", "tracking".

  • 'close' (bool) — True when the arm is parked.

  • 'tracking' (bool) — True when sidereal tracking is on.

  • 'equ_mode' (bool) — True when in equatorial-mount mode.

Return type:

dict

Notes

Accepts the ips keyword 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"), or None if no sequence is configured.

Return type:

str or None

Notes

Accepts the ips keyword 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 ips keyword 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 True when the Seestar has been parked with the equatorial wedge enabled (i.e. scope_park(equ_mode=True)).

Return type:

bool

Notes

Accepts the ips keyword 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 ips keyword 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 ips keyword 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())