Files
ARIA-AGENT/satellite/README.md
T
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

2.2 KiB

ARIA Satellit 🛰️

Ein eigenständiger Außenposten-Container für ein fremdes Netz (Büro, Werkstatt, Ferienwohnung …). Er verbindet sich als RVS-Client in Stefans Raum und gibt ARIA Augen und Hände in genau diesem Netz — ohne dass der Haupt-Stack dort stehen muss.

  • Augen (Info): entdeckt Geräte via mDNS/Zeroconf (Chromecast, AirPlay, Sonos, Drucker, NAS …), SSDP/UPnP + DIAL (Smart-TVs, Fire TV) und der ARP-Tabelle (rohe Hosts). Meldet ARIA ein Live-Inventar.
  • Hände (Steuerung): DIAL-App-Launch (z.B. YouTube-Video auf dem Fire TV), Wake-on-LAN, generisches HTTP. Nur wenn freigeschaltet (siehe Sicherheit).

Deploy

cd satellite
cp .env.example .env      # RVS-Zugang + SATELLITE_LOCATION eintragen
docker compose up -d --build
docker compose logs -f    # "sat_hello gesendet" + "[scan] N Geraete"

RVS_HOST/PORT/TLS/TOKEN identisch zum Haupt-Stack (gleicher Raum, damit ARIA den Satelliten erreicht). SATELLITE_LOCATION ist der Name, über den ARIA das Netz anspricht („Büro").

network_mode: host ist Pflicht (schon in der compose gesetzt): nur so sieht der Container die mDNS/SSDP-Broadcasts und die Geräte-IPs des LAN.

So nutzt ARIA es

ARIA hat drei Brain-Tools:

  • satellite_list — welche Netze/Satelliten sind online + was können sie.
  • satellite_devices(satellite) — Inventar eines Netzes.
  • satellite_command(satellite, device, action, params) — Aktion ausführen.

Beispiel „YouTube-Video auf dem Büro-Stick":

satellite_command(satellite="Büro", device="Fire TV",
                  action="dial.launch", params={"app":"YouTube","v":"<videoId>"})

Sicherheit

Der Satellit scannt ein Netz und ist über einen Cloud-Relay erreichbar — deshalb:

  • Reagiert nur auf den eigenen RVS-Raum (Token).
  • CONTROL_ENABLED=false = reiner Info-Satellit (steuert nichts). Standard-sicher.
  • Bei true: nur Aktionen aus CONTROL_ALLOWLIST, alles andere wird abgelehnt.
  • Jede ausgeführte Aktion wird geloggt.
  • Keine offenen Ports — reiner Client.

Empfehlung: in vertrauenswürdigen Netzen CONTROL_ENABLED=true mit enger Allowlist; sonst false und nur beobachten.