124 lines
4.5 KiB
Markdown
124 lines
4.5 KiB
Markdown
Magnitude / Helligkeit
|
|
Magnitudendifferenz in Helligkeitsfaktor und zurück
|
|
|
|
Teleskop
|
|
Öffnung, Brennweite, Öffnungsverhältnis (f/), Vergrößerung, Austrittspupille, Gesichtsfeld
|
|
|
|
Wellenlänge / Frequenz / Energie
|
|
nm, Å, Hz, eV
|
|
|
|
Temperatur
|
|
Kelvin, Celsius, Fahrenheit
|
|
|
|
Größe bei gegebener Entfernung
|
|
scheinbarer Winkel in reale Größe und zurück
|
|
|
|
Geschwindigkeit / Raumfahrt
|
|
km/s, AE/Tag, Prozent von c
|
|
|
|
|
|
# TODO Telegram Satelliten-Abo
|
|
- Ziel: Ein Benutzer soll für seinen Favoriten-Satelliten eine Telegram-Nachricht abonnieren können, wenn am Abend ein guter Überflug bevorsteht.
|
|
- Definition „guter Überflug“ für die erste Version:
|
|
- Satellit ist sichtbar
|
|
- Himmel ist dunkel genug
|
|
- maximale Höhe ist groß genug
|
|
- optional später zusätzlich Helligkeit / Sichtbarkeits-Score
|
|
|
|
- Grundentscheidung:
|
|
- Überflüge nicht bei jedem Telegram-Cron-Lauf live neu berechnen
|
|
- stattdessen vorberechnen, in der Datenbank zwischenspeichern und aus diesem Bestand Benachrichtigungen versenden
|
|
- vorhandene Tabelle `sat_pass_predictions` dafür nutzen und erweitern
|
|
|
|
- Datenbank:
|
|
- `app_user_satellites` erweitern um:
|
|
- `telegram_evening_alert_enabled` `tinyint(1) not null default 0`
|
|
- optional später:
|
|
- `telegram_min_elevation` `decimal(5,2) null`
|
|
- `telegram_min_score` `decimal(5,2) null`
|
|
- `telegram_darkness_only` `tinyint(1) not null default 1`
|
|
- `sat_pass_predictions` erweitern um:
|
|
- `visibility_score` `decimal(5,2) null`
|
|
- `peak_magnitude` `decimal(5,2) null`
|
|
- `sun_altitude_deg` `decimal(5,2) null`
|
|
- `is_dark_enough` `tinyint(1) not null default 0`
|
|
- `alert_eligible` `tinyint(1) not null default 0`
|
|
- `alert_sent_at` `datetime null`
|
|
- optional `alert_message_hash` `varchar(64) null` zur Deduplizierung
|
|
|
|
- UI / Benutzerseite:
|
|
- in `my_favorites.php` beim Favoriten-Satelliten einen Schalter ergänzen:
|
|
- „Telegram bei gutem Abendüberflug“
|
|
- nur aktivierbar, wenn:
|
|
- Telegram mit dem Benutzerkonto verbunden ist
|
|
- ein Favoritensatellit gesetzt ist
|
|
- ein Standard-Standort vorhanden ist
|
|
- optional später kleine Erklärung daneben:
|
|
- „Benachrichtigt nur bei dunklem Himmel und ausreichend hoher Passage“
|
|
|
|
- Berechnung:
|
|
- neue Hilfsfunktion für Favoriten-Satelliten-Überflüge bauen
|
|
- Grundlage ist die bestehende Logik aus `satellitenhimmel.php`
|
|
- nur berechnen für:
|
|
- Benutzer mit `telegram_chat_id`
|
|
- Benutzer mit aktiviertem Satelliten-Abo
|
|
- den als Favorit markierten Satelliten
|
|
- den Standard-Standort des Benutzers
|
|
- Zeitfenster für die erste Version:
|
|
- heute Abend und die kommende Nacht
|
|
- optional zusätzlich schon der nächste Abend
|
|
|
|
- Bewertung „gut genug“ in Version 1:
|
|
- `is_visible = 1`
|
|
- `sun_altitude_deg <= -8` oder besser `<= -10`
|
|
- `max_elevation >= 25°` oder `>= 30°`
|
|
- wenn vorhanden zusätzlich `visibility_score >= 0.55`
|
|
- diese Schwellwerte erstmal zentral im Code halten, noch nicht pro Benutzer konfigurierbar
|
|
|
|
- Telegram-Cron:
|
|
- neuen Task ergänzen:
|
|
- `prepare_satellite_evening_alerts`
|
|
- berechnet und aktualisiert vorbereitete gute Überflüge
|
|
- empfohlenes Timing:
|
|
- nachmittags und am frühen Abend
|
|
- Beispiel: alle 30 oder 60 Minuten
|
|
- zweiten Task ergänzen:
|
|
- `send_satellite_evening_alerts`
|
|
- versendet nur Einträge mit `alert_eligible = 1` und `alert_sent_at is null`
|
|
- nach erfolgreichem Versand:
|
|
- `alert_sent_at = now()`
|
|
|
|
- Nachrichtentext:
|
|
- kurz und direkt
|
|
- Beispiel:
|
|
- `ISS heute 21:43 bis 21:49 Uhr`
|
|
- `Maximale Höhe 62°`
|
|
- `Sichtbar bei dunklem Himmel`
|
|
- `Richtung: Westen nach Südosten`
|
|
- optional später mit Emoji oder Score, aber erstmal schlicht halten
|
|
|
|
- Deduplizierung:
|
|
- pro Benutzer und Überflug nur genau eine Nachricht senden
|
|
- Grundlage:
|
|
- `user_id`
|
|
- `satellite_id`
|
|
- `aos_utc`
|
|
- vorhandener Unique-Key in `sat_pass_predictions` hilft bereits
|
|
- Versand zusätzlich über `alert_sent_at` absichern
|
|
|
|
- Offene Umsetzungsreihenfolge:
|
|
- 1. Datenbankfelder erweitern
|
|
- 2. UI-Schalter in `my_favorites.php`
|
|
- 3. Vorberechnungslogik für Favoriten-Satelliten auslagern
|
|
- 4. Task `prepare_satellite_evening_alerts`
|
|
- 5. Task `send_satellite_evening_alerts`
|
|
- 6. Telegram-Nachrichtentext bauen
|
|
- 7. Test mit einem Benutzer und einem Favoriten-Satelliten
|
|
|
|
- Wichtige Entscheidung für später:
|
|
- wenn das stabil läuft, kann daraus auch ein allgemeines Satelliten-Abo für mehrere Satelliten werden
|
|
- für die erste Version aber bewusst nur:
|
|
- ein Favorit
|
|
- ein Standort
|
|
- eine Abendbenachrichtigung
|