# JSON-RPC Einführung
Die JSON-RPC-Schnittstellen bieten viele Möglichkeiten zur Interaktion mit Hyperion. Man kann Informationen über den Server und die Instanzen abrufen und Aktionen ausführen (z. B. einen Prioritätseingang setzen).
# Was ist JSON?
JSON ist ein standardisiertes Nachrichtenformat (siehe [JSON.org (http://www.json.org/)]) und wird von den meisten Programmiersprachen unterstützt. Es ist für Menschen lesbar, was die Fehlersuche erleichtert.
# Senden von JSON
Hyperion benötigt eine speziell formatierte JSON-Nachricht. Ein Argument command
ist immer erforderlich. Ein Argument "tan" ist optional. Dies ist eine Ganzzahl, die man frei wählen kann - sie ist Teil der Antwort, die man erhält, um die Antwort von anderen Server-Nachrichten zu filtern (diese Funktionalität ist wahrscheinlich nur für fortgeschrittene Anwendungsfälle notwendig).
{
"command" : "YourCommand",
"tan" : 1
}
Je nach Befehl kann ein zusätzlicher Subbefehl erforderlich sein:
{
"command" : "YourCommand",
"subcommand" : "YourSubCommand",
"tan" : 1
}
# Rückantwort
Die meisten Nachrichten, die du sendest, lösen eine Antwort des folgenden Formats aus:
{
"command" : "YourCommand",
"info":{ ...DATA... },
"instance": 0,
"success" : true,
"tan" : 1
}
- command: Der angeforderte Befehl.
- tan: Die von dir angegebene tan (Wenn nicht, wird sie in der Antwort standardmäßig auf 0 gesetzt).
- instance: Instanz, welche das Update gesendet hat
- success: true oder false. Wenn es falsch ist, enthält ein Fehler-Argument Details zu dem Problem.
- info: Die von dir angeforderten Daten (falls vorhanden).
# Verbindung
Hyperion unterstützt derzeit mehrere Verbindungsmechanismen: TCP Socket ("Json Server"), WebSocket und HTTP/S.
TIP
Du kannst Hyperion-Server automatisch erkennen! Siehe Hyperion erkennen
# TCP-Socket
Dies ist eine "rohe" Verbindung, du kannst zeilengetrenntes json vom Server senden und empfangen (Standardport: 19444). Dies wird auch als "Json-Server" bezeichnet.
# WebSocket
Dies ist Teil des Hyperion-Webservers (Standard-Port: 8090). Man sendet und empfängt json-Befehle. WSS wird auch auf Port 8092 unterstützt. Es wird nur der TEXT-Modus unterstützt. Lese mehr über Websockets unter Websocket (opens new window).
# HTTP/S Json
HTTP-Anfragen können auch an den Webserver gesendet werden (Standardport: 8090, für HTTPS: 8092). Sende eine HTTP/S POST-Anfrage zusammen mit einer korrekt formatierten Json-Nachricht im Body an die (Beispiel-)URL: http://Ip:WebserverPort/json-rpc
Beispielbild mit Firefox (opens new window)/Chrome (opens new window) Addon zum Senden von HTTP-JSON-Nachrichten
TIP
Wenn du eine "Keine Autorisierung"-Antwort erhältst, musst du ein Autorisierungs-Token erstellen
HTTP/S-Einschränkungen
Bitte beachtet, dass dem HTTP-JSON-RPC aufgrund von technischen Einschränkungen folgende Funktionen fehlen.
- Bild-Streams, Led-Farb-Streams, Logging-Streams, Abonnements
# API
# Server-Infos
Eine Vielzahl von Daten ist vom Server verfügbar: Server Info
# Steuerung
Steuer deinen Hyperion Server: Steuerung
# Authentifizierung
Authentifizierungsmechanismen: Authentifizierung
# Abonnieren
Daten-Abonnements: Abonnieren
# Drittanbieter-Bibliotheken
- Hyperion-py (opens new window) ist ein Drittanbieter-Bibliotheken Python-Bibliothek für die Kommunikation mit Hyperion-NG. Sie verwendet die hier beschriebene API als zugrundeliegenden Kommunikationsmechanismus und stellt diesen in einer benutzerfreundlichen Weise dar. Als Drittanbieter-Bibliotheken wird sie nicht vom Hyperion-Entwicklungsteam unterstützt.