The Reservations Pilot app at reservations.itelescope.net is now mapped and driven end to end: three-step WebForms flow (form GET, Refresh Plans postback with plan+times selected which enables Confirm, then Confirm), observatory-local times, 4-hour maximum, plan attachment causing iTelescope to auto-start the run at reservation start, and the reschedule flag that rebooks weather losses on the next free night. Crucial gotcha recorded: the confirm modal returns OK even when nothing was created (first attempt silently failed on the 4-hour rule), so verification against the grid is mandatory. Live reservations: 749227 (T59, NGC 6744, 00:05-03:45 SSO local 20 Jul), 749228 (T33, 47 Tuc test, 00:05-00:50 same night), 749229 (T33, NGC 6752, 00:05-00:50 following night). Ledger corrected: T59 moon discount is 0% until 21 Jul (the earlier 25% figure came from a Utah scope's grid), so the NGC 6744 estimate returns to ~240 pts. Monitoring crons replace the old starter crons since the scheduler now fires the plans itself.
4.6 KiB
Observing plans and the T33 session runbook
ACP observing plans for iTelescope scopes, plus the procedure to run one on T33
(the free Siding Spring scope). Credentials are NOT in this repo: they live in
the local claudetemp itelescope folder (creds.txt, username=/password= lines).
Plan format (ACP)
See ngc104-test.txt. Directives, then a target line:
Name<TAB>RA_decimal_hours<TAB>Dec_decimal_degrees. Counts, intervals, binning
and filters are parallel comma-separated lists. #shutdown parks safely at the
end (iTelescope's own one-click plans do the same).
T33 endpoints (base http://t33.itelescope.net:8033, HTTP auth = iTelescope creds)
| Purpose | Path |
|---|---|
| Status JSON (times, obsStat, obsOwner) | /ac/SystemStatus/asystemstatus.asp |
| Console text | /ac/SystemStatus/aconsread.asp |
| Scope connect control | /ac/SystemStatus/ascopeconn.asp |
| Shutter/roof status | /ac/SystemStatus/ashutterctl.asp |
| My plan folder (list/upload/delete) | /plans/qisback/aindex.asp, aupload.asp, adelfile.asp |
| Run a plan ("Acquire Images") | POST /ac/Plans/plan.asp |
| My logs | /logs/qisback/aindex.asp |
| Finished data | data.itelescope.net |
Upload: multipart POST to /plans/qisback/aupload.asp, fields File1 (the file)
and DestPath=/plans/qisback. Verified working 2026-07-18; content round-trips
exactly.
Run: the web UI posts the plan select to /ac/Plans/plan.asp; the select's value
is the WINDOWS path C:\ProgramData\ACP\ACP Web Data\Doc Root\plans\qisback\<file>.
Field names seen: plan, optional VPhot, AutoLogoff. NOT yet exercised live
(observatory was closed, daytime); the first live session must confirm whether a
scope-connect POST (ascopeconn.asp) is required first, and capture the exact
response shape.
The 47 Tuc free-session test (ngc104-test.txt)
- Target: NGC 104 / 47 Tucanae, RA 0.4015 h, Dec -72.0814 deg (circumpolar at SSO).
- L 4x120 s, RGB 2x90 s each, Bin2: about 17 min exposure, about 24 min with overhead, inside the daily free 30 minutes.
- Uploaded to /plans/qisback/ on 2026-07-18 and verified.
When to run
47 Tuc clears T33's 20 degree minimum elevation in the second half of the SSO night. SSO local = UTC+10; the good window is roughly 14:00-19:30 UTC (UK afternoon/evening). Sunrise at SSO was 06:14 local (20:14 UTC) at recon time; stop well before dawn.
Procedure
- GET asystemstatus.asp: confirm observatory open (obsStat) and no other user (obsOwner n/a). If someone is on, wait and retry; T33 is first-come.
- Confirm the plan file is still in /plans/qisback/ (aindex.asp).
- POST plan.asp with the plan's Windows path to start acquisition.
- Poll aconsread.asp (console) every minute or two: slew, centering, filter changes, exposures. The run self-terminates via #shutdown.
- Images land in /images/qisback/ on the scope server and then on data.itelescope.net; logs in /logs/qisback/.
- Record the session outcome in state/NOTES.md.
Abort path if something looks wrong: the web UI exposes an abort on the console page; locate it live before starting exposures (not yet mapped).
Reservations (verified working 2026-07-18)
Reservations live at http://reservations.itelescope.net ("Reservations Pilot"),
reached from each scope's /ac/MenuItems/reservation-edit.asp iframe as
?t=<scope-id>&u=<username> (scope ids look like GRAS059 for T59, GRAS033 for
T33; full list in the resources JSON on go.itelescope.net/Reservation/Overview.aspx,
whose embedded DayPilot events also show everyone's bookings, roof/sun times, and
the moon discount per night). No separate login: it trusts the u= parameter once a
session cookie exists.
Creating one is a three-step WebForms dance against
New.aspx?start=<ISO local>&end=<ISO local>&r=<scope-id> (times are OBSERVATORY
LOCAL): (1) GET the form, (2) POST tokens + DropDownStartTime/DropDownEndTime
(e.g. "12:05 AM"/"3:45 AM") + PlanToRunListBox= + RescheduleCheckbox
- ButtonRefreshPlans=Refresh Plans, which re-renders with Confirm enabled,
(3) re-POST the fresh tokens with the same fields + ReservationOKButton=Confirm
Reservation. Success = response script
ModalStatic.result("OK")AND the booking appearing in the grid: the modal also says "OK" on silent failure, so ALWAYS re-fetch the grid and look for the reservation id + username.
Rules learned: maximum reservation length 4:00; recommended duration 1.5x total imaging time; the attached plan is auto-started by iTelescope at reservation start (no walk-in POST needed); RescheduleCheckbox auto-rebooks the identical timeslot on the first available night of the next 30 if the run does not happen. Delete/edit via Edit.aspx?id= from the grid.