Commit Graph
6 Commits
Author SHA1 Message Date
duffyduckandClaude Opus 4.8 9dd7a2cb14 fix(satellite): install.ps1 — richtiges Cmdlet New-ScheduledTaskSettingsSet
New-ScheduledTaskSettings existiert nicht (CommandNotFound). Korrekt ist
New-ScheduledTaskSettingsSet. venv/Requirements liefen bereits; nur die
Task-Registrierung brach ab.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 20:07:07 +02:00
duffyduckandClaude Opus 4.8 2811379684 feat(satellite): Dienst-Installer install.sh (Linux/macOS) + install.ps1 (Windows)
Richten den Satelliten als Autostart-Dienst ein (venv + requirements + Restart):
- install.sh: Linux → systemd-Unit (aria-satellite), macOS → launchd-Agent.
  `bash install.sh` / `bash install.sh uninstall`.
- install.ps1: Windows → Scheduled Task (S4U, AtStartup+AtLogOn, Restart, hidden),
  loggt nach satellite.log. Admin-Check. `-Uninstall` entfernt.
- WorkingDirectory = satellite/ (findet .env). README-Abschnitt ergaenzt.

install.sh bash -n OK; install.ps1 manuell geprueft (kein pwsh lokal).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 20:02:30 +02:00
duffyduckandClaude Opus 4.8 902316566e fix(satellite): .env-Parser schneidet Inline-Kommentare ab
Nativer Start crashte an `SCAN_INTERVAL_SEC=300      # Hintergrund-Rescan-Intervall`
(int('300      # ...') → ValueError), weil der .env-Parser den Wert ungekuerzt
nahm. Jetzt: ungequotete Werte werden am ersten " #" (Whitespace+#) abgeschnitten,
gequotete Werte bleiben unangetastet (auch mit # im Inhalt). Getestet.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 19:57:05 +02:00
duffyduckandClaude Opus 4.8 1f94b4eab5 fix(satellite): laedt .env selbst beim nativen Start
Nativ gestartet (python satellite.py) las das Script nichts aus der .env — nur
os.environ. Die Variablen mit Default (SATELLITE_ID, CONTROL_ENABLED …) wirkten
"ok", aber RVS_HOST/RVS_TOKEN (ohne Default) blieben leer → Verbindungsfehler.
Jetzt laedt _load_dotenv() eine .env neben dem Script (oder im CWD), bevor die
Config gelesen wird. Bestehende echte Umgebungsvariablen gewinnen (Docker via
env_file bleibt unberuehrt). Kein python-dotenv noetig. README Weg B vereinfacht.

Getestet: Parser liest Keys inkl. Quotes + export-Praefix.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 19:55:04 +02:00
duffyduckandClaude Opus 4.8 57e13800e0 fix(satellite): Selbstdiagnose fuers Netz — warnt bei Docker-/NAT-Netz
Symptom: Satellit fand nur Docker-Container (192.168.65.x / 172.18.x) statt der
echten LAN-Geraete. Ursache ist kein Bug, sondern das Deployment-Netz: auf Docker
Desktop (Mac/Windows) ist network_mode:host das Docker-VM-NAT, nicht das echte LAN
— mDNS/SSDP erreichen die realen Geraete nicht.

- satellite.py: _net_context() ermittelt primary_ip + alle IPs und WARNT, wenn der
  Satellit in einem Docker-/NAT-Netz laeuft (192.168.65.x oder 172.16-31.x). Netz-
  Info wird in sat_hello + sat_devices mitgeschickt und beim Start geloggt.
- Diagnostic: zeigt Netz (primary_ip) pro Satellit + eine rote ⚠-Box mit der
  Warnung, wenn er im falschen Netz sitzt.
- README/compose: klar dokumentiert, dass der Satellit im ECHTEN Ziel-LAN laufen
  muss (Linux Docker Engine ODER nativ python satellite.py); Docker-Desktop-Falle.

py/node clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 19:46:34 +02:00
duffyduckandClaude Opus 4.8 071e38f464 feat: Satelliten — ARIAs Augen & Haende in fremden Netzen (Info-/Gateway-Aussenposten)
Neuer eigenstaendiger Container satellite/ (RVS-Client, network_mode host), den
man in einem beliebigen Netz (Buero etc.) deployt. Gibt ARIA Zugriff auf dieses
Netz ohne Haupt-Stack davor.

- satellite/satellite.py: RVS-Client + Discovery (mDNS/Zeroconf, SSDP/UPnP+DIAL,
  ARP) + Steuerung (dial.launch fuer YouTube-auf-FireTV, wol, http) mit Guards
  (CONTROL_ENABLED + Allowlist + Logging, token-gated, keine offenen Ports).
  Periodisches Re-Announce (sat_hello im Heartbeat) fuer spaet joinende Bridge.
- satellite/: Dockerfile, requirements, docker-compose (host-net), .env.example
  (SATELLITE_LOCATION als Adresse), README.
- rvs: sat_hello/discover/devices/command/result whitelisted.
- bridge: Satelliten-Registry (sat_hello) + Future-Relay (_satellite_request) +
  /internal/satellite + /internal/satellite-list (Muster wie flux).
- brain: Tools satellite_list/devices/command + _dispatch_satellite + Seed-Regel.

Alle py_compile + node -c gruen. Kein APK-Rebuild noetig.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 23:22:30 +02:00