Entwickler- & API‑Anleitung
1. Erste Verwendung
1.1 Vorbereitung
Schritt 1. Bitte stellen Sie sicher, dass das Gateway eingeschaltet ist und ordnungsgemäß funktioniert.
Schritt 2. Stellen Sie sicher, dass das Gateway und der PC mit demselben LAN verbunden sind. Geben Sie dann die URL von CUBE in Ihren Browser ein.
Hinweis: Wenn Sie mehrere Gateways haben, können Sie die entsprechende IP-Adresse abrufen, um auf das angegebene Gateway auf die unten beschriebenen zwei Arten zuzugreifen.
Melden Sie sich bei Ihrem WLAN-Router an und prüfen Sie die IP-Adresse des Gateways im DHCP.
CUBE unterstützt die lokale Erkennung über mDNS.
1.2 Loslegen
Rufen Sie die Schnittstelle [Access Token] auf und erhalten eine Fehlermeldung, die auffordert, auf < zu klickenFertig>. Beachten Sie, dass die Schnittstellenzugriffe nach dem Drücken nicht länger als 5 Minuten gültig sind.
// Anfrage
curl --location --request GET 'http://<ip address>/open-api/V2/rest/bridge/access_token' --header 'Content-Type: application/json'
// Antwort
{
"error": 401,
"data": {},
"message": "link button not pressed"
}Klicken Sie auf <Fertig> und rufen Sie die Schnittstelle [Access Token] erneut auf. Die Antwort ist erfolgreich und das Token wurde erhalten.
Token verifizieren. Rufen Sie die Schnittstelle [Get Device List] auf. Die Antwort ist erfolgreich und die Geräteliste wurde erhalten.
Methode zum Erhalten des CUBE-Zugriffstokens: Nachdem die Schnittstelle [Access Token] aufgerufen wurde, fordert ein globales Popup auf der CUBE-Webkonsole den Benutzer auf, die Erfassung der Schnittstellenzugangsdaten zu bestätigen.
Hinweis: Wenn Sie mehr als eine CUBE-Webkonsole-Seite geöffnet haben, erscheint das Bestätigungs-Popup auf mehreren Webkonsole-Seiten gleichzeitig, und die Popups der anderen Webkonsole-Seiten werden geschlossen, nachdem auf einer der Seiten die Bestätigung angeklickt wurde.
2. Kernkonzept
2.1 Adresse der Entwicklungs-Schnittstelle
Die Gateway-Web-API-Schnittstelle hat zwei Zugriffsarten (basierend auf IP oder Domainname), normalerweise ist der Root-Pfad /open-api/V2/rest/< specific function module >
// IP-Zugriff http:///open-api/V2/rest/bridge
// Domainnamen-Zugriff http:///open-api/V2/rest/bridge
2.2 Geräte-Anzeigekategorie & Fähigkeiten
**Geräte-Anzeigekategorie (DisplayCategory). **Die Geräte-Anzeigekategorie wird verwendet, um spezifische Kategorien (des Geräts) zu identifizieren, wie z. B. switch, plug, light usw. Diese Informationen bestimmen die UI-Anzeigedarstellung des Geräts im Gateway.
**Geräte-Fähigkeit. **Die Gerätefähigkeit wird verwendet, um die spezifischen Unterfunktionen des Geräts zu beschreiben. Zum Beispiel Leistungssteuerung, Helligkeitsregelung, Farbtemperaturregelung usw. Ein einzelnes Gerät kann 1 oder mehr Fähigkeiten unterstützen.
capability: Beschreibt den Namen der Fähigkeit, der weltweit eindeutig sein muss und vom Typ String ist. Mehrere englische Wörter sollten durch Bindestriche ("-") getrennt werden. Zum Beispiel:
"thermostat-target-setpoint".name: Beschreibt die Kategorie unterhalb der Fähigkeit, ebenfalls vom Typ String. Mehrere englische Wörter sollten durch Bindestriche ("-") getrennt werden. Zum Beispiel:
"auto-mode","manual-mode".permission: Beschreibt die mit der Fähigkeit verbundenen Berechtigungen. Der Typ ist String, formatiert als 8421-Binärcode. Beispiele schließen ein:
Gerät steuerbar:
"1000"Gerät konfigurierbar:
"0010"Gerät steuerbar und konfigurierbar:
"1010"Gerät steuerbar und berichtsfähig:
"1100"
Die Bedeutung jedes Bits, von rechts nach links, ist wie folgt: ⅰ. Bit 0: Erlaubt das Abfragen des Geräts ⅱ. Bit 1: Erlaubt das Konfigurieren des Geräts ⅲ. Bit 2: Erlaubt dem Gerät, Daten zu melden ⅳ. Bit 3: Erlaubt das Steuern des Geräts
settings: Beschreibt die Konfigurationselemente für die Fähigkeit, die vom Typ Objekt sind und eine Beschreibung jedes Konfigurationselements enthalten. ⅰ. key: Beschreibt den Namen des Konfigurationselements, der vom Typ String ist. Mehrere englische Wörter sollten in camelCase ausgedrückt werden. Zum Beispiel: "temperatureUnit". ⅱ. value: Beschreibt den Inhalt des Konfigurationselements. Die spezifischen Spezifikationen werden in der folgenden Tabelle detailliert beschrieben.
permission
string
N
Beschreibt die Berechtigungen für das Konfigurationselement.
Optionale Werte:
Erlaubt die Änderung dieses Konfigurationselements:
"10"Erlaubt das Anzeigen dieses Konfigurationselements:
"01"Erlaubt sowohl das Ändern als auch das Anzeigen dieses Konfigurationselements:
"11"
Bit-Erklärung:
Bit 0: Erlaubt das Anzeigen dieses Konfigurationselements
Bit 1: Erlaubt die Änderung dieses Konfigurationselements | | type | string | N | Beschreibt den Datentyp des Werts des Konfigurationselements. Optionale Werte:
"enum""numeric""object""boolean""string"
Typ-spezifische Richtlinien:
Wenn
**type = enum**:Das
valueFeld (das den Wert des Konfigurationselements beschreibt) ist erforderlich, wennpermissionÄnderung erlaubt ("10"oder"11").Das
default(das den Standardwert des Konfigurationselements beschreibt) undvalues(die die auswählbaren Werte für das Konfigurationselement beschreiben) Felder optional sind.
Wenn
**type = numeric**:Das
valueFeld ist erforderlich, wennpermissionÄnderung erlaubt ("10"oder"11").Die folgenden Felder sind optional:
min(beschreibt den Minimalwert des Konfigurationselements)max(beschreibt den Maximalwert des Konfigurationselements)step(beschreibt den Schrittwert für das Konfigurationselement)precision(beschreibt die Genauigkeit)unit(beschreibt die Einheit des Konfigurationselements)default(beschreibt den Standardwert)
Wenn
**type = object**:Das
valueFeld ist erforderlich, wennpermissionÄnderung erlaubt ("10"oder"11").Das
defaultFeld ist optional.
Wenn
**type = boolean**:Das
valueFeld ist erforderlich, wennpermissionÄnderung erlaubt ("10"oder"11").Das
defaultFeld ist optional.
Wenn
**type = string**:Das
valueFeld ist erforderlich, wennpermissionÄnderung erlaubt ("10"oder"11").Das
defaultFeld ist optional. |
3.Web-API
Datentyp
string
String-Datentyp. UTF8-kodiert.
number
Zahlendatentyp. Doppelpräzisions-64-Bit-Binärformat IEEE 754
int
Ganzzahldatentyp.
object
Objektdatentyp. JSON-konformes Objekt
string[]
Array von Strings
int[]
Array von Ganzzahlen
object[]
Array von Objekten
bool
Boolean
date
Zeitstring. String im ISO-Format (ISO 8601 Erweitertes Format): YYYY-MM-DDTHH:mm:ss.sssZ. Die Zeitzone ist immer UTC (Coordinated Universal Time), gekennzeichnet durch ein Suffix "Z".
Allgemeine Antwortergebnisse
error
int
N
Fehlercode:
0: Erfolg
400: Parameterfehler
401: Authentifizierung fehlgeschlagen
500: Serverausnahme
data
object
N
Antwort-Datenkörper
message
string
N
Antwortbeschreibung:
Wenn error gleich 0 ist, lautet der Inhalt success
Wenn error ungleich 0 ist, ist es ein nicht-leerer String und der Inhalt ist eine Fehlerbeschreibung.
Antwortbeispiel:
Ressourcenliste
Unterstützte Sounds
- alert1 (Alarmton 1)
alert2 (Alarmton 2)
alert3 (Alarmton 3)
alert4 (Alarmton 4)
alert5 (Alarmton 5)
doorbell1 (Türklingelton 1)
doorbell2 (Türklingelton 2)
doorbell3 (Türklingelton 3)
doorbell4 (Türklingelton 4)
doorbell5 (Türklingelton 5)
alarm1 (Alarmton 1)
alarm2 (Alarmton 2)
alarm3 (Alarmton 3)
alarm4 (Alarmton 4)
alarm5 (Alarmton 5) | | Unterstützte Deep | - bootComplete (Systemstart abgeschlossen)
networkConnected (Netzwerk verbunden)
networkDisconnected (Netzwerk getrennt)
systemShutdown (Systemabschaltung) -deviceDiscovered (Gerät entdeckt)
system Armed (System aktiviert)
system Disarmed (System deaktiviert)
factoryReset (Gerät zurücksetzen) |
3.1 Die Gateway-Funktion
a. Access Token
Ermöglicht Benutzern den Zugriff auf das Token.
Hinweis: Das Token wird nach dem Zurücksetzen des Geräts gelöscht.
Hinweis: Nach dem Erhalt des Tokens müssen Sie die Taste erneut drücken, um erfolgreich ein neues Token zu erhalten.
:::tips
URL:
/open-api/V2/rest/bridge/access_tokenMethode:
GETHeader:
Content-Type: application/json ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
app_name
string
Y
Beschreibung des Anwendungsnamens.
Erfolgreiche Datenantwort:
Attribut
Typ
Optional
Beschreibung
token
string
N
Das Zugriffs-Token der Schnittstelle. Es ist langfristig gültig, bitte speichern Sie es
app_name
string
Y
Beschreibung des Anwendungsnamens.
:::tips Bedingung: Benutzer löst die < command key > aus und ruft diese Schnittstelle innerhalb der gültigen Zeit auf. **Statuscode: **200 OK ::: Antwortbeispiel:
Fehlerhafte Datenantwort:leeres Objekt :::tips Bedingungen:Der Benutzer hat die < command key > nicht ausgelöst, oder die gültige Zeit ist abgelaufen. **Statuscode: ** 200 OK ::: Antwortbeispiel:
b. Den Status des Gateways abrufen
Ermöglicht autorisierten Benutzern, den Status des Gateways über diese Schnittstelle abzurufen :::tips
URL:
/open-api/V2/rest/bridge/runtimeMethode:
GETHeader:
Content-Type: application/json
Autorization: Bearer ::: Anfrageparameter: keine Erfolgreiche Datenantwort:
Attribut
Typ
Optional
Beschreibung
ram_used
int
N
RAM-Nutzungsprozentsatz. [0-100]
cpu_used
int
N
CPU-Nutzungsprozentsatz. [0-100]
power_up_time
date
N
Die letzte Einschaltzeit
cpu_temp
int
N
CPU-Temperatur:
Einheit: Celsius
cpu_temp_unit
string
N
CPU-Temperatur-Einheit:
Optional
Werte:'c', 'f'
sd_card_used
int
Y
SD-Karten-Nutzung (Prozentsatz):
Bereich:[0-100] mit einer Dezimalstelle Genauigkeit
*Hinweis: Wenn die SD-Karte nicht eingesetzt oder nicht formatiert ist, ist der Wert leer.
:::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
c. Gateway konfigurieren
Ermöglicht autorisierten Benutzern, das Gateway über diese Schnittstelle zu konfigurieren :::tips
URL:
/open-api/V2/rest/bridge/configMethode:
PUTHeader:
Content-Type: application/json
Autorization: Bearer ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
volume
int
Y
Systemlautstärke. [0-100]
Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
d. Gateway-Informationen abrufen
Ermöglicht autorisierten Benutzern, die Gateway-Informationen über diese Schnittstelle zu erhalten :::tips
URL:
/open-api/V2/rest/bridgeMethode:
GETHeader:
Content-Type: application/json ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
ip
string
N
IP-Adresse
mac
string
N
MAC-Adresse
domain
string
Y
Gateway-Service-Domain
fw_version
string
N
Firmware-Version
name
string
N
Gerätename
Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Keine **Statuscode: **200 OK ::: Antwortbeispiel:
e. Gateway stummschalten
Ermöglicht autorisierten Benutzern, das Gateway über diese Schnittstelle stummzuschalten. :::tips
URL:
/open-api/v2/rest/bridge/muteMethode:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter: keine Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
f. Gateway lautlos schalten
Ermöglicht autorisierten Benutzern, das Gateway über diese Schnittstelle wieder laut zu schalten. :::tips
URL:
/open-api/v2/rest/bridge/unmuteMethode:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter: keine Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
g. Gateway-Alarm abbrechen
Ermöglicht autorisierten Benutzern, den Alarmtonzustand des Gateways über diese Schnittstelle zu deaktivieren. :::tips
URL:
/open-api/v2/rest/bridge/cancel_alarmMethode:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter: keine Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
3.2 Hardware-Funktion
a. Gateway neu starten
Ermöglicht einem autorisierten Benutzer, das Gateway über diese Schnittstelle neu zu starten :::tips
URL:
/open-api/V2/rest/hardware/rebootMethode:
POSTHeader:
Content-Type: application/json
Autorization: Bearer ::: Anfrageparameter: keine Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: **200 OK :::
b. Lautsprechersteuerung
Ermöglicht autorisierten Benutzern, den Lautsprecher über diese Schnittstelle zu steuern :::tips
URL:
/open-api/V2/rest/hardware/speakerMethode:
POSTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
type
string
N
Optionale Parameter: 1.play_sound (Ton abspielen) 2.play_beep (Piepston abspielen)
sound
SoundObject
Y (N wenn type play_sound ist.)
Der Sound.
beep
BeepObject
Y (N wenn type play_beep ist.)
Der Piepston
SoundObject
Attribut
Typ
Optional
Beschreibung
name
string
N
Der Soundname. Die unterstützten Werte können in [Resource List - Supported sound] nachgeprüft werden
volume
int
N
Die Lautstärke des Sounds. [0-100]
countdown
int
N
Die Dauer, für die der Lautsprecher den Ton abspielt; er stoppt automatisch, wenn die Zeit abgelaufen ist. Einheit: Sekunde. [0,1799]
BeepObject
Attribut
Typ
Optional
Beschreibung
name
string
N
Der Deep-Name. Die unterstützten Werte können in [Resource List - Supported deep] nachgeprüft werden
volume
int
N
Die Deep-Lautstärke. [0-100]
Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: ** 200 OK ::: Antwortbeispiel:
3.3 Geräteverwaltungs-Funktion
a. Unterstützter Gerätetyp
Gerätetyp
Wert
iHost-Version
Steckdose
plug
≥ 2.1.0
Schalter
switch
≥ 2.1.0
Licht
light
≥ 2.1.0
Vorhang
curtain
≥ 2.1.0
Tür-/Fenstersensor
contactSensor
≥ 2.1.0
Bewegungssensor
motionSensor
≥ 2.1.0
Temperatursensor
temperatureSensor
≥ 2.1.0
Feuchtigkeitssensor
humiditySensor
≥ 2.1.0
Temperatur- und Feuchtigkeitssensor
temperatureAndHumiditySensor
≥ 2.1.0
Wasserleckdetektor
waterLeakDetector
≥ 2.1.0
Rauchmelder
smokeDetector
≥ 2.1.0
Drahtlose Taste
button
≥ 2.1.0
Kamera
camera
≥ 2.1.0
Allgemeiner Sensor
sensor
≥ 2.1.0
Allgemeiner Sensor
sensor
≥ 2.1.0
Deckenventilator mit Licht
fanLight
≥ 2.1.0
Klimaanlage
airConditioner
≥ 2.1.0
Ventilator
fan
≥ 2.1.0
Thermostat
thermostat
≥ 2.1.0
b. Unterstützte Gerätefunktionen
Netzschalter (power):
Beispiel für Funktionsdeklaration:
Zustandsattribut:
Protokoll (Statusabfrage & Steuerbefehle):
Einschalten:
Ausschalten:
Kanalumschaltung (toggle):
Beispiel für Funktionsdeklaration:
Einzelkomponenten-Beispiel:
Beispiel für mehrere Komponenten:
Zustandsattribut:
Protokoll (Statusabfrage & Steuerbefehle):
Umschaltformat:
Kanal-Sekundenbetrieb (toggle-inching):
Beispiel für Funktionsdeklaration:
Zustandsattribut
Keine
Protokoll (Statusabfrage & Steuerbefehle)
Keine
Helligkeitsanpassung (brightness):
Beispiel für Funktionsdeklaration:
Zustandsattribut:
Protokoll (Statusabfrage & Steuerbefehle):
Setze Helligkeit auf 80%. (0 ist am dunkelsten und 100 am hellsten.)
Farbtemperaturanpassung (color-temperature):
Beispiel für Funktionsdeklaration:
Zustandsattribut:
Protokoll (Statusabfrage & Steuerbefehle):
Farbtemperatur auf 50% einstellen:
Farbregelung (color-rgb):
Beispiel für Funktionsdeklaration:
Zustandsattribut:
Protokoll (Statusabfrage & Steuerbefehle):
Farbe auf Violett einstellen:
Prozentuale Anpassung (percentage):
Beispiel für Funktionsdeklaration:
Zustandsattribut:
Protokoll (Statusabfrage & Steuerbefehle):
Auf 40% einstellen:
Motorsteuerung (motor-control):
Beispiel für Funktionsdeklaration:
Zustandsattribut:
Protokoll (Statusabfrage & Steuerbefehle):
Motor öffnen:
Motorumkehr (motor-reverse):
Beispiel für Funktionsdeklaration:
Zustandsattribut:
Protokoll (Statusabfrage & Steuerbefehle):
Motor auf Vorwärts einstellen:
Motorkalibrierung (motor-clb)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusmeldung):
Melden, dass Motor kalibriert wird:
Einschaltzustand beim Start (startup)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Stromzustand auf immer eingeschaltet setzen:
Aufweckaktivierung (identify)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusmeldung & Steuerbefehle):
Aufweckaktivierungszeit einstellen:
Aktivierungsstatus melden:
Echtzeit-Leistungsverbrauchsstatistik-Schalter (power-consumption)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Echtzeitstatistiken starten/beenden:
Leistungsverbrauch nach Zeitraum abfragen:
Mit Statistikergebnis für den Zeitraum antworten:
Protokoll (Statusmeldung & Steuerbefehle):
Echtzeitstatistiken starten:
Echtzeitstatistiken beenden:
Historischen Energieverbrauch abrufen:
Echtzeit-Energieverbrauch abrufen:
Erkennungsmodus für Temperatur und Luftfeuchtigkeit (thermostat-mode-detect)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Format:
Beispiel:
Thermostatmodus (thermostat-mode)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Adaptive Wiederherstellungsstatus des Thermostats (thermostat/adaptive-recovery-status)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Thermostat Zieltemperatur-Einstellung (thermostat-target-setpoint)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Sensorerkennung (detect)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Temperaturerkennung (temperature)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Feuchtigkeitserkennung (humidity)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Batterieerkennung (battery)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Einzeltastenerkennung (press)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Mehrfachtastenerkennung (multi-press)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Signalstärke-Erkennung (rssi)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Manipulationsalarm (tamper-alert)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Beleuchtungsstärkeerkennung (illumination-level)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Spannungserkennung (voltage)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Stromstärke-Erkennung (electric-current)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Leistungserkennung (electric-power)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Fehlererkennung (fault)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Schwellwertunterbrecher (threshold-breaker)
Beispiel für Funktionsdeklaration:
Attribute (Zustand)
Keine
Protokoll (Statusabfrage & Steuerbefehle)
Keine
Inch-Funktion (inching)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Keine
Protokoll (Statusabfrage & Steuerbefehle):
Keine
Kamera-Stream (camera-stream)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Keine
Protokoll (Statusabfrage & Steuerbefehle):
Keine
Modussteuerung (mode)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Kohlendioxid-Erkennung (co2)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Beleuchtungsstärkeerkennung (illumination)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Raucherkennung (smoke)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Türmagnet Öffnen/Schließen Erkennung (Kontakt)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Bewegungserkennung (motion)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Wasserleck-Erkennung (water-leak)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Fenstererkennungsschalter (window-detection)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Kindersicherungsschalter (child-lock)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Anti-Direktstoß-Schalter (anti-direct-blow)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Horizontaler Schwenkschalter (horizontal-swing)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Vertikaler Schwenkschalter (vertical-swing)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
ECO-Modus-Schalter (eco)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Einschaltverhalten umschalten (toggle-startup)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Erkennung halten (detect-hold)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Umschalten Identifizieren/Aktivieren (toggle-identify)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Umschalten Spannungs-Erkennung (toggle-voltage)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Unterkomponenten-Stromerkennung (toggle-electric-current)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Unterkomponenten-Leistungserkennung (toggle-electric-power)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Unterkomponenten-Energieverbrauchsstatistik (toggle-power-consumption)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Echtzeitstatistiken starten/beenden:
Leistungsverbrauch nach Zeitraum abfragen:
Antwort für Energieverbrauch innerhalb des Zeitbereichs:
Protokoll (Statusabfrage & Steuerbefehle):
Echtzeitstatistiken starten:
Echtzeitstatistiken beenden:
Historischen Energieverbrauch abrufen:
Echtzeit-Energieverbrauch abrufen:
Linkqualitätsindikator (lqi)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Funktionale Konfiguration (configuration)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
System (system)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Feuchtigkeit (moisture)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Barometrischer Druck (barometric-pressure)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Windgeschwindigkeit (wind-speed)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Windrichtung (wind-direction)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Niederschlag (rainfall)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Ultraviolett-Index (ultraviolet-index)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Elektrische Leitfähigkeit (electrical-conductivity)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Sendestärke (transmit-power)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
PM2.5-Erkennung (pm25)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
VOC-Index (voc-index)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Erdgas-Erkennung (gas)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Bewässerungsarbeitsstatus (irrigation/work-status)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Berichterstattung des Arbeitsstatus:
Abfrage des Arbeitsstatus:
Ergebnis der Arbeitsstatus-Abfrage:
Bewässerungsarbeitsmodus (irrigation/work-mode)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Protokoll (Statusabfrage & Steuerbefehle):
Automatischer Bewässerungscontroller (irrigation/auto-controller)
Beispiel für Funktionsdeklaration:
Attribute (Zustand):
Einmal- oder wiederholte Zeitplanung:
Einmaliges oder wiederholtes Volumen:
Protokoll (Statusabfrage & Steuerbefehle):
Einmal- oder wiederholte Zeitplanung:
Einmaliges oder wiederholtes Volumen:
Unterstützte Voreingestellte Modi
fanLevel (Lüfterstufe)
"low"
"medium"
"high"
thermostatMode (Thermostatmodus)
"auto"
"manual"
airConditionerMode >= 1.11.0 (Klimaanlagenmodus)
"cool"
"heat"
"auto"
"fan"
"dry"
fanMode >= 1.11.0 (Lüftermodus)
"normal"
"sleep"
"child"
horizontalAngle >= 1.11.0 (Horizontaler Winkel)
"30"
"60"
"90"
"120"
"180"
"360"
verticalAngle >= 1.11.0 (Vertikaler Winkel)
"30"
"60"
"90"
"120"
"180"
"360"
c. Beschreibung der Tags
Der spezielle Schlüssel toggle wird verwendet, um den Namen der Toggle-Unterkomponente festzulegen.
Der spezielle Schlüssel temperature_unit wird verwendet, um die Temperatureinheit festzulegen.
d. Spezielle Fehlercodes und Beschreibung
Fehlercode
Beschreibung
iHost-Version
110000
Das Untergerät/Gruppe, das der id entspricht, existiert nicht
≥2.1.0
110001
Das Gateway befindet sich im Zustand, Zigbee-Geräte zu entdecken
≥2.1.0
110002
Geräte in einer Gruppe haben keine gemeinsame Fähigkeit
≥2.1.0
110003
Falsche Anzahl von Geräten
≥2.1.0
110004
Falsche Anzahl von Gruppen
≥2.1.0
110005
Gerät offline
≥2.1.0
110006
Aktualisierung des Gerätestatus fehlgeschlagen
≥2.1.0
110007
Aktualisierung des Gruppenstatus fehlgeschlagen
≥2.1.0
110008
Die maximale Anzahl von Gruppen wurde erreicht. Erstellen Sie bis zu 50 Gruppen
≥2.1.0
110009
Die IP-Adresse des Kamerageräts ist falsch
≥2.1.0
110010
Zugriffsautorisierungsfehler des Kamerageräts
≥2.1.0
110011
Stream-Adresse des Kamerageräts fehlerhaft
≥2.1.0
110012
Videoencoding des Kamerageräts wird nicht unterstützt
≥2.1.0
110013
Gerät existiert bereits
≥2.1.0
110014
Kamera unterstützt keinen Offline-Betrieb
≥2.1.0
110015
Das Kontopasswort stimmt nicht mit dem Kontopasswort in der RTSP-Stream-Adresse überein
≥2.1.0
110016
Das Gateway befindet sich im Zustand, ONVIF-Kameras zu entdecken
≥2.1.0
110017
Überschreitung der maximalen Anzahl hinzugefügter Kameras
≥2.1.0
110018
Der Pfad der ESP-Kamera ist falsch
≥2.1.0
110019
Fehler beim Zugriff auf die Service-Adresse des Drittanbietergeräts
≥2.1.0
e. Suche nach Untergerät
Ermöglichen Sie autorisierten Benutzern, die Gateway-Suche nach Untergeräten über diese Schnittstelle zu aktivieren oder zu deaktivieren
💡Hinweis: Unterstützt derzeit nur die Suche nach Zigbee-Untergeräten.
💡Hinweis: Zigbee-Untergeräte werden nach der Suche automatisch hinzugefügt. Die Schnittstelle "Untergeräte manuell hinzufügen" muss nicht verwendet werden :::tips
URL:/open-api/V2/rest/devices/discovery
Methode: PUT
Header:
Content-Type: application/json
Autorization: Bearer ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
aktivieren
boolean
N
true (Pairing starten); false (Pairing pausieren)
type
string
N
Suchtyp: Zigbee
Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: ** 200 OK ::: Antwortbeispiel:
f. Untergerät manuell hinzufügen
Erlauben Sie autorisierten Benutzern, ein einzelnes Untergerät über diese Schnittstelle hinzuzufügen.
Hinweis: Derzeit werden nur RTSP-Kamera und ESP32-Kamera unterstützt :::tips
URL:/open-api/V2/rest/devices
Methode:POST
Header:
Content-Type: application/json
Autorization: Bearer ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
name
string
N
Name des Untergeräts
display_category
string
N
Gerätetyp. Unterstützt nur Kamera。
capabilities
CapabilityObject[]
N
Fähigkeitsliste. Wenn display_category = camera, enthalten die Fähigkeiten nur camera-stream-Fähigkeiten.
protocal
string
N
Geräteprotokoll. RTSP; ESP32-CAM
manufacturer
string
N
Hersteller.
model
string
N
Gerätemodell
firmware_version
string
N
Firmware-Version des Geräts
CapabilityObject
Attribut
Typ
Optional
Beschreibung
capability
string
N
Name der Fähigkeit. Unterstützt nur "camera-stream"
permission
string
N
Geräteberechtigung. Unterstützt nur Lesen.
configuration
CameraStreamConfigurationObject
Y
Kamera-Stream-Konfiguration.
SettingsObject
Attribut
Typ
Optional
Beschreibung
streamSetting
StreamSettingObject
N
Streamdienst-Konfiguration
StreamSettingObject
Attribut
Typ
Optional
Beschreibung
type
string
N
Streamdienst-Konfiguration
permission
string
N
Fähigkeitsberechtigung. Unterstützt nur "11" (änderbar).
value
StreamSettingValueObject
N
Spezifische Konfigurationswerte
StreamSettingValueObject
Attribut
Typ
Optional
Beschreibung
stream_url
string
N
Stream-URL-Format
Format:<schema>://<hostname>:<port>/<username>:<password>@<service_path>
Schema-Optionen:
rtsp (Real-Time Streaming Protocol)
http (Hypertext Transfer Protocol) — Für ESP32-CAM-Geräte
*Hinweis: Einige Kameras benötigen möglicherweise keinen Benutzernamen oder kein Passwort. In solchen Fällen können Sie <username> und <password> Felder aus der URL weglassen.
Erfolgreiche Datenantwort:
Attribut
Typ
Optional
Beschreibung
serial_number
string
N
Eindeutige Seriennummer des Geräts
:::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
Fehlerhafte Datenantwort: leeres Objekt :::tips Bedingung:
Fehler beim Zugriff auf den Kamera-Stream (Formatfehler, Autorisierungsfehler, Netzwerkfehler usw.)
Gerät existiert bereits
Wenn das Hinzufügen eines einzelnen Geräts fehlschlägt, wird zurückgegeben, dass alle Geräte nicht hinzugefügt wurden.
Statuscode: 200 OK Fehlercode: ● 110009 Fehlerhafte Kamera-IP-Adresse ● 110010 Kamerazugriffsautorisierungsfehler ● 110011 Fehlerhafte Kamera-Stream-Adresse ● 110012 Das Kamera-Videoencoding wird nicht unterstützt ● 110013 Gerät existiert bereits ::: Antwortbeispiel:
g. Liste der Untergeräte abrufen
Ermöglichen Sie autorisierten Benutzern, die Liste der Gateway-Untergeräte über diese Schnittstelle abzurufen. :::tips
URL:/open-api/V2/rest/devices
Methode: GET
Header:
Content-Type: application/json
Autorization: Bearer ::: Anfrageparameter: keine Erfolgreiche Datenantwort:
Attribut
Typ
Optional
Beschreibung
device_list
ResponseDeviceObject[]
N
Geräteliste
ResponseDeviceObject
Attribut
Typ
Optional
Beschreibung
serial_number
string
N
Eindeutige Seriennummer des Geräts
third_serial_number
string
"N" wenn ein Drittanbietergerät verbunden ist, sonst "Y"
Eindeutige Seriennummer des Drittanbietergeräts
service_address
string
"N" wenn ein Drittanbietergerät verbunden ist, sonst "Y"
Service-Adresse des Drittanbieters
name
string
N
Gerätename, wenn er nicht umbenannt wurde, wird er vom Frontend gemäß den Standardanzeigeregeln angezeigt.
manufacturer
string
N
Hersteller
model
string
N
Gerätemodell
firmware_version
string
N
Firmware-Version. Kann eine leere Zeichenkette sein.
hostname
string
Y
Hostname des Geräts
mac_address
string
Y
MAC-Adresse des Geräts
app_name
string
Y
Der Name der Anwendung, zu der es gehört. Wenn app_name beim Abrufen des Open-Interface-Zertifikats ausgefüllt wurde, werden alle nachfolgenden Geräte, die über das Zertifikat verbunden werden, in dieses Feld geschrieben.
display_category
string
N
Gerätekategorie
capabilities
CapabilityObject[]
N
Gerätefähigkeiten
protocol
string
"N" wenn ein Drittanbietergerät verbunden ist, sonst "Y"
Geräteprotokoll: zigbee, onvif, rtsp, esp32-cam
state
object
Y
Gerätezustandsobjekt. Für Zustandsbeispiele verschiedener Fähigkeiten prüfen Sie bitte 【Unterstützte Gerätefähigkeiten】
Tags
object
Y
JSON-Format Schlüssel-Wert, benutzerdefinierte Geräteinformationen. Die Funktion ist wie folgt:- Wird zum Speichern von Gerätekanälen verwendet- Wird zum Speichern von Temperatureinheiten verwendet- Benutzerdefinierte Informationen für andere Drittanbietergeräte
online
boolean
N
Online-Status: True für onlineFalse ist offline
Subnetz
boolean
Y
Ob es sich im selben Subnetz wie das Gateway befindet
CapabilityObject 💡Hinweis: Bitte prüfen Sie die Beispiele unterstützter Gerätefähigkeiten unter [Supported Device Capabilities].
Attribut
Typ
Optional
Beschreibung
capability
string
N
Fähigkeitsname. Details siehe [Supported Device Capabilities]
permission
string
N
Berechtigung der Fähigkeit. Mögliche Werte sind "read" (lesbar), "write" (schreibbar), "readWrite" (lesbar und schreibbar).
configuration
object
Y
Konfigurationsinformationen der Fähigkeit. Derzeit wird camera-stream verwendet, siehe [Supported Device Capabilities]
name
string
Y
Das Namensfeld in toggle. Die Sub-Channel-Nummer, die zur Identifizierung von Mehrkanalgeräten verwendet wird. Wenn name beispielsweise 1 ist, bedeutet dies Kanal 1.
:::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
h. Aktualisieren angegebener Geräteinformationen oder -zustand
Ermöglicht autorisierten Benutzern, die Basisinformationen von Untergeräten zu ändern und über diese Schnittstelle Steuerbefehle auszugeben. :::tips
URL:/open-api/V2/rest/devices/{serial_number}
Methode:PUT
Header:
Content-Type: application/json
Autorization: Bearer ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
name
string
Y
Gerätename
Tags
object
Y
JSON-Format Schlüssel-Wert, benutzerdefinierte Geräteinformationen.
state
object
Y
Gerätezustandsobjekt. Für Zustandsbeispiele verschiedener Fähigkeiten prüfen Sie bitte [Support Device Capabilities]
configuration
object
Y
Konfigurationsinformationen der Fähigkeit, derzeit kann nur die Kamera_stream-Fähigkeit geändert werden.
Erfolgreiche Datenantwort: :::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentitätsprüfung ist bestanden. **Statuscode: **200 OK Fehlercode:
110000 Das Untergerät/die Gruppe, die der id entspricht, existiert nicht ::: Antwortbeispiel:
i. Untergerät löschen
Ermöglicht autorisierten Benutzern, Untergeräte über diese Schnittstelle zu löschen. :::tips
URL:/open-api/V2/rest/devices/{serial_number}
Methode:DELETE
Header:
Content-Type: application/json
Autorization: Bearer ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
name
string
Y
Gerätename.
Tags
object
Y
Schlüssel-Wert-Paare im JSON-Format, die verwendet werden, um Gerätenamen von Kanälen und andere Informationen über Untergeräte zu speichern.
state
object
Y
Gerätestatus ändern; für spezifische Protokolldetails siehe "Supported Device Capabilities."
capabilities
CapabilityObject []
Y
Konfigurationsinformationen der Fähigkeit; alle Fähigkeiten, die das Einstellen von Konfigurationen unterstützen, können geändert werden. Beachten Sie, dass Berechtigungen nicht geändert werden können.
Erfolgreiche Datenantwort: :::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentitätsprüfung ist bestanden. **Statuscode: **200 OK Fehlercodes:
110000: Das Untergerät/die Gruppe, die der ID entspricht, existiert nicht.
110006: Aktualisierung des Gerätezustands fehlgeschlagen.
110019: Zugriff auf den Dienstadresse des Drittanbietergeräts fehlgeschlagen.
110024: Aktualisierung der Gerätekonfiguration fehlgeschlagen. ::: Antwortbeispiel:
j. Untergerät löschen
Ermöglicht autorisierten Benutzern, Untergeräte über diese Schnittstelle zu löschen. :::tips
URL:
/open-api/v2/rest/devices/{serial_number}Methode:
DELETEHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter: Keine Erfolgreiche Datenantwort: :::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
k. Gerätestatus abfragen
Ermöglicht autorisierten Benutzern, den Gerätestatus über diese Schnittstelle abzufragen. :::tips
URL:
/open-api/v2/rest/devices/:serial_number/query-state/{capability}Methode:POST
Header:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
query_state
object
N
Gerätestatus abfragen; für spezifische Protokolldetails siehe "Supported Device Capabilities."
Erfolgreiche Datenantwort: :::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
3.4 Sicherheitsverwaltung
a. Sicherheitsliste abrufen
Ermöglicht autorisierten Benutzern, Gateway-Einstellungen über diese Schnittstelle zu ändern. :::tips
URL:
/open-api/v2/rest/securityMethode:
GETHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter: Keine Erfolgreiche Datenantwort:
Attribut
Typ
Optional
Beschreibung
security_list
ResponseSecurityObject[]
N
Antwort Geräteliste
ResponseDeviceObject
Attribut
Typ
Optional
Beschreibung
sid
int
N
Sicherheits-ID
name
string
N
Sicherheitsname
aktivieren
bool
N
Ob aktiviert
true Aktiviert
false Deaktiviert |
:::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
b. Angegebene Sicherheitsmodus aktivieren
Ermöglicht autorisierten Benutzern, einen angegebenen Sicherheitsmodus über diese Schnittstelle zu aktivieren. :::tips
URL:
/open-api/v2/rest/security/{security_id}/enableMethode:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter: Keine Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
c. Angegebenen Sicherheitsmodus deaktivieren
Ermöglicht autorisierten Benutzern, einen angegebenen Sicherheitsmodus über diese Schnittstelle zu deaktivieren. :::tips
URL:
/open-api/v2/rest/security/{security_id}/disableMethode:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter: Keine Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
d. Ein-Klick-Sicherheits-Einrichtung aktivieren
Ermöglicht autorisierten Benutzern, den Ein-Klick-Sicherheitsmodus über diese Schnittstelle zu aktivieren. :::tips
URL:
/open-api/v2/rest/security/enableMethode:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter: Keine Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
e. Sicherheit deaktivieren
Ermöglicht autorisierten Benutzern, die Sicherheit über diese Schnittstelle zu deaktivieren. :::tips
URL:
/open-api/v2/rest/security/disableMethode:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter: Keine Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
4. Zugriff für Drittanbietergeräte
4.1 Zugriffsanleitung
Gerätezugang

Zugriff für Drittanbieter-Gateway

Zugriffsschritte
Bestimmen Sie die Klassifizierung des Geräts im Gateway. Details siehe [Supported Device Type].
Bestimmen Sie die Fähigkeiten, auf die das Gerät zugreifen kann. Details siehe [Supported Device Capabilities].
Rufen Sie die Schnittstelle [Discovery Request] auf, um das Gerät zum Gateway hinzuzufügen.
Hinweis: Sie müssen die Dienstadresse bereitstellen, um die vom Gateway ausgestellten Anweisungen zu empfangen; diese wird verwendet, um die vom Gateway ausgestellten Geräte-Steuerbefehle zu empfangen.
Wenn sich der Status des Drittanbietergeräts ändert, müssen Sie die Schnittstelle [Device States Change Report] aufrufen, um den neuesten Status zurück an das Gateway zu senden.
Nach dem Hinzufügen erscheint das Drittanbietergerät in der Geräteliste und verfügt über die meisten Funktionen des Gateways (wie andere Nicht-Drittanbietergeräte). Die gängigen offenen Schnittstellen im Zusammenhang mit dem Gerät können normal verwendet werden.
Wählen Sie die passende Gerätekategorie. Die Klassifizierung beeinflusst das endgültige Anzeigeergebnis der UI nach der Verbindung des Geräts mit dem Gateway.
Wählen Sie die richtige Gerätefähigkeit. Die Fähigkeitsliste bestimmt das Protokoll für den Gerätezustand.
Programmschritt
a. Gerätezugang

b. Drittanbieter-Gateway-Zugang

4.2 Zugriffsbeispiel
Schalter, Steckdose
Drittanbietergeräte synchronisieren
Gerätestatus melden
Offline/Online melden
Empfangen der Anweisungen zur Gateway-Gerätesteuerung
Gerät abfragen
4.3 Web-API
Drittanbieter-Anfrage-Gateway-Schnittstelle
Anfrageformat
Ermöglicht autorisierten Benutzern, Ereignisanfragen über diese Schnittstelle an das Gateway zu senden. :::tips
URL:/open-api/V2/rest/thirdparty/event
Methode:POST
Header:
Content-Type: application/json
Autorization: Bearer ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
event
EventObject
N
Strukturinformationen des Anfrage-Ereignisobjekts
EventObject
Attribut
Typ
Optional
Beschreibung
header
HeaderObject
N
Strukturinformationen des Anfrage-Headers
endpoint
EndpointObject
Y
Strukturinformationen des Anfrage-EndpunktsHinweis: Dieses Feld ist leer, wenn eine neue Geräteliste synchronisiert wird.
payload
PayloadObject
N
Strukturinformationen der Anfrage-Payload
HeaderObject
Attribut
Typ
Optional
Beschreibung
name
string
N
Anfrage-Name. optionale Parameter: DiscoveryRequest: Synchronisiere neue Geräte DeviceStatesChangeReport: Gerätezustands-Updatebericht DeviceOnlineChangeReport: Bericht zum Online-Status des Geräts
message_id
string
N
Anfrage-Nachrichten-ID, UUID_V4
version
string
N
Angeforderte Protokollversionsnummer. Derzeit fest auf 1
EndpointObject
Attribut
Typ
Optional
Beschreibung
serial_number
string
N
Eindeutige Seriennummer des Geräts
third_serial_number
string
N
Eindeutige Seriennummer des Drittanbietergeräts
Tags
object
Y
JSON-Format Schlüssel-Wert, benutzerdefinierte Geräteinformationen. [Geräteverwaltungsfunktion] - [Beschreibung der Tags]
PayloadObject Je nach unterschiedlichem header.name unterschiedliche Anfragestruktur.
Antwortformat
:::tips **Statuscode: **200 OK Antwortparameter: :::
Attribut
Typ
Optional
Beschreibung
header
HeaderObject
N
Strukturinformationen des Antwort-Headers
payload
PayloadObject
N
Strukturinformationen der Antwort-Payload
HeaderObject
Attribut
Typ
Optional
Beschreibung
name
string
N
Name des Antwort-Headers. optionale Parameter:Response: Erfolgreiche Antwort ErrorResponse: Fehlerantwort
message_id
string
N
Nachrichten-ID des Antwort-Headers, UUID_V4. Übergeben Sie hier die message_id des Anfrage-Headers *Wenn der Anforderungsparameter message_id fehlt, ist dieses Feld bei der Antwort ein leerer String.
version
string
N
- Anforderungsprotokollversionsnummer. Derzeit fest auf 1.
Erfolgreiche Antwort--PayloadObject :
Je nach Anfragetyp ist die Antwortstruktur unterschiedlich. Details finden Sie in der jeweiligen Anfragedokumentation.
Fehlerantwort--PayloadObject:
Attribut
Typ
Optional
Beschreibung
type
string
N
Fehlertypen:
INVALID_PARAMETERS: Parameterfehler
AUTH_FAILURE: Autorisierungsfehler
INTERNAL_ERROR: Interner Dienstfehler | | description | string | N | Fehlerbeschreibung |
DiscoveryRequest Synchronisiere eine neue Geräteliste
Hinweis: Nachdem das Gerät mit dem Gateway synchronisiert wurde, ist es standardmäßig online, also online=true. Nachfolgende Online-Änderungen hängen vollständig von der Synchronisierung mit dem Drittanbieter über die Schnittstelle DeviceOnlineChangeReport ab.
Anfrageparameter: EndpointObject**:**Keine PayloadObject:
Attribut
Typ
Optional
Beschreibung
endpoints
EndpointObject[]
N
Geräteliste
EndpointObject:
Attribut
Typ
Optional
Beschreibung
third_serial_number
string
N
Eindeutige Seriennummer des Drittanbietergeräts
name
string
N
Gerätename
display_category
string
N
Gerätekategorie. Siehe [Supported Device Type] für Details. *Drittanbietergeräte unterstützen derzeit nicht das Hinzufügen von Kameras.
capabilities
CapabilityObject[]
N
Fähigkeitsliste
state
object
N
Anfangszustandsinformationen
manufacturer
string
N
Hersteller
model
string
N
Gerätemodell
Tags
object
Y
JSON-Format Schlüssel-Wert, benutzerdefinierte Geräteinformationen:Wird verwendet, um Gerätekanäle zu speichernWird verwendet, um Temperatureinheiten zu speichernAndere benutzerdefinierte Drittanbieter-Daten
firmware_version
string
N
Firmware-Version
Beispiel für Anfrage:
Antwortparameter: PayloadObject:
Attribut
Typ
Optional
Beschreibung
endpoints
EndpointObject[]
N
Geräteliste
EndpointObject:
Attribut
Typ
Optional
Beschreibung
serial_number
string
N
Eindeutige Seriennummer des Geräts
third_serial_number
string
N
Eindeutige Seriennummer des Drittanbietergeräts
Beispiel für eine korrekte Antwort:
Beispiel für eine Fehlerantwort:
DeviceStatesChangeReport Gerätezustandsänderungsbericht
Hinweis: Wiederholte Zustandsberichte können fälschlicherweise Szenen auslösen.
Anfrageparameter: PayloadObject:
Attribut
Typ
Optional
Beschreibung
state
object
N
Gerätezustand, Details siehe [Supported device cabilities]
Beispiel für Anfrage:
Antwortparameter: PayloadObject: Leeres Objekt Beispiel einer erfolgreichen Antwort:
DeviceOnlineChangeReport Bericht zum Online-Status des Geräts
Hinweis: Wiederholte Zustandsberichte können fälschlicherweise Szenen auslösen.
Anfrageparameter: PayloadObject:
Attribut
Typ
Optional
Beschreibung
online
boolean
N
Geräteonline-Status true: Online
false: Offline
Beispiel für Anfrage:
Antwortparameter: PayloadObject: Leeres Objekt Beispiel einer erfolgreichen Antwort:
DeviceInformationUpdatedReport Geräteinformationsaktualisierungsbericht
Hinweis: Aktualisierungen können bestehende Szenen oder Sicherheitsfunktionen beeinflussen.
Anfrageparameter: PayloadObject:
Attribut
Typ
Optional
Beschreibung
capabilities
| CapabilityObject[]
| N
| Fähigkeitsliste. Details finden Sie im Abschnitt Unterstützte Gerätefähigkeiten. **Hinweis: **Dieser Parameter aktualisiert nur das value von dem Einstellung Schlüssel innerhalb des CapabilityObject, und Aktualisierungen sind nur zulässig, wenn das permission für den Einstellung Schlüssel ist 11 oder 01. Für die spezifische Strukturdefinition des Einstellung in CapabilityObjectverweisen Sie auf die detaillierte Beschreibung in Abschnitt 2.3 Gerätekategorien & Gerätefähigkeiten. | | tags
| object
| Y
| JSON-Format Schlüssel-Wert, benutzerdefinierte Geräteinformationen.
Kann verwendet werden, um Gerätekanäle zu speichern
Kann verwendet werden, um Temperatureinheiten zu speichern
Andere benutzerdefinierte Drittanbieter-Daten |
Beispiel für Anfrage:
Antwortparameter: PayloadObject: Leeres Objekt Beispiel einer erfolgreichen Antwort:
Gateway sendet die Anweisungs-Schnittstelle über die Geräte-Dienstadresse
Hinweis:
Die Drittparteien müssen innerhalb von 3 s auf die Anfrage des Gateways antworten. Andernfalls wird das Gateway die Befehlsverarbeitung als abgelaufen einstufen.
Wenn der Drittanbieterservice offline ist, setzt das Gateway das Gerät in einen Offline-Zustand, und der Drittanbieterservice muss den Gerätestatus (DeviceStatesChangeReport) oder den Online-Status (DeviceOnlineChangeReport) melden, bevor er wieder online geht.
Anfrageformat
Das Gateway sendet Anweisungen über die Geräte-Dienstadressen-Schnittstelle an den Drittanbieter. :::tips
URL:
Methode:POST
Header:
Content-Type: application/json ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
directive
DirectiveObject
N
Strukturinformationen des Directive-Objekts
DirectiveObject
Attribut
Typ
Optional
Beschreibung
header
HeaderObject
N
Strukturinformationen des Anfrage-Headers
endpoint
EndpointObject
N
Strukturinformationen des Anfrage-Endpunkts
payload
PayloadObject
N
Strukturinformationen der Anfrage-Payload
HeaderObject
Attribut
Typ
Optional
Beschreibung
name
string
N
Anfrage-Name. Optionale Parameter:UpdateDeviceStates: Gerätezustände aktualisieren
message_id
string
N
Anfrage-Nachrichten-ID, UUID_V4
version
string
N
Angeforderte Protokollversionsnummer. Derzeit fest auf 1.
EndpointObject
Attribut
Typ
Optional
Beschreibung
serial_number
string
N
Eindeutige Seriennummer des Geräts
third_serial_number
string
N
Eindeutige Seriennummer des Drittanbietergeräts
Tags
object
N
JSON-Format Schlüssel-Wert, benutzerdefinierte Geräteinformationen. [Geräteverwaltungsfunktion] - [Beschreibung der Tags]
PayloadObject: Je nach unterschiedlichem header.name, gibt es für jeden eine spezifische Anfragestruktur.
Beispiel für Anfrage:
Antwortformat
:::tips **HTTP-Statuscode: **200 OK HTTP-Antwortattribute: :::
Attribut
Typ
Optional
Beschreibung
event
EventObject
N
Strukturinformationen des Antwort-Ereignisses
EventObject
Attribut
Typ
Optional
Beschreibung
header
HeaderObject
N
Strukturinformationen des Anfrage-Headers
payload
PayloadObject
N
Strukturinformationen der Anfrage-Payload
HeaderObject
Attribut
Typ
Optional
Beschreibung
name
string
N
Name des Antwort-Headers. Optionale Parameter: UpdateDeviceStatesResponse: Antwort auf Gerätezustandsaktualisierung ErrorResponse: Fehlerantwort
message_id
string
N
Nachrichten-ID des Antwort-Headers, UUID_V4. Übergeben Sie hier die message_id des Anfrage-Headers
version
string
N
Angeforderte Protokollversionsnummer. Derzeit fest auf 1.
Erfolgreiche Antwort--PayloadObject:
Je nach Anfragetyp ist die Antwortstruktur unterschiedlich. Details finden Sie in der jeweiligen Anfragedokumentation.
Fehlerantwort--PayloadObject:
Attribut
Typ
Optional
Beschreibung
type
string
N
Fehlertypen:
ENDPOINT_UNREACHABLE: Gerät ist nicht erreichbar oder offline
ENDPOINT_LOW_POWER: Gerät befindet sich im Energiesparmodus und kann nicht gesteuert werden
INVALID_DIRECTIVE: Abnormale Anweisung vom Gateway
NO_SUCH_ENDPOINT: Gerät existiert nicht
NOT_SUPPORTED_IN_CURRENT_MODE: Der aktuelle Modus unterstützt die Operation nicht
INTERNAL_ERROR: Interner Dienstfehler
REMOTE_KEY_CODE_NOT_LEARNED: Fernbedienungstasten-Code nicht gelernt |
:::tips Bedingungen: Die Anfrageparameter sind legal. **Statuscode: **200 OK Antwortparameter: :::
UpdateDeviceStates
Anfrageparameter: PayloadObject:
Attribut
Typ
Optional
Beschreibung
state
object
N
Gerätezustand, Details siehe [Supported device cabilities].
Beispiel für Anfrage:
Antwortparameter: PayloadObject:Leeres Objekt Beispiel einer erfolgreichen Antwort
QueryDeviceStates
Anfrageparameter: PayloadObject:
Attribut
Typ
Optional
Beschreibung
state
object
N
Gerätezustand, Details siehe [Supported device cabilities].
Beispiel für Anfrage:
Antwortparameter: PayloadObject:
Attribut
Typ
Optional
Beschreibung
state
object
N
Gerätezustand, Details siehe [Supported device cabilities].
Antwortbeispiel:
ConfigureDeviceCapabilities
Anfrageparameter: PayloadObject:
Attribut
Typ
Optional
Beschreibung
capabilities
CapabilityObject[]
N
Fähigkeitsliste. Details siehe Abschnitt Unterstützte Gerätefähigkeiten. Beachten Sie, dass das Feld permission nicht geändert werden kann; beim Synchronisieren denselben Wert übergeben.
Beispiel für Anfrage:
Antwortparameter: PayloadObject:Leeres Objekt Beispiel einer erfolgreichen Antwort
5. Server-sent Events
MDN EventSource-Schnittstellenbeschreibung:https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events
5.1 Anweisung
Das Gateway unterstützt das Pushen von Nachrichten an den Client mittels SSE (Server-sent events). Der Client kann SSE-Nachrichten nach Erhalt der Zugangsdaten überwachen und den Inhalt der Push-Nachrichten gemäß dem Ereignisbenachrichtigungsprotokoll der Entwicklungs-Schnittstelle nach Empfang der Nachrichten vom Gateway parsen. Es ist zu beachten, dass das Gateway derzeit das HTTP1.1-Protokoll verwendet, sodass auf der Browserseite eine maximale Verbindungsanzahl von nicht mehr als 6 besteht (Spezifische Hinweise finden Sie in der MDN EventSource-Schnittstellenbeschreibung.)
5.2 Allgemeines Format
:::tips
URL:/open-api/V2/sse/bridge
Methode:
GET::: Anfrageparameter:
access_token
string
N
Access-Token
Hinweis: Beim Anfordern einer SSE-Verbindung prüft das Gateway das access_token, und es wird ein Authentifizierungsfehler zurückgegeben, wenn es ungültig ist. { "error": 401, "data": {}, "message": "invalid access_token"}
## Zum Beispiel: Modulname: device Version: 1,v2,v3 Nachrichtentyp: addDevice
Beispiel:
5.3 Gerätemodul
a. Gerät hinzufügen-Ereignis
:::tips Modulname:device Version:v2 Nachrichtentyp:addDevice event.data Parameter: :::
payload
ResponseDeviceObjectObject - Schnittstelle identisch mit Get Device List
N
Geräteinformationen
Beispiel:
b. Ereignis: Gerätezustand aktualisieren
:::tips Modulname:device Version:v2 Nachrichtentyp:updateDeviceState event.data Parameter: :::
endpoint
EndpointObject
N
Geräteinformationen
payload
object。 Struktur identisch mit dem Gerätezustand
N
Gerätestatusdaten
EndpointObject:
serial_number
string
N
Eindeutige Seriennummer des Geräts
third_serial_number
string
Y
Die eindeutige Seriennummer des Drittanbietergeräts. Für über offene Schnittstellen verbundene Geräte ist dieses Feld erforderlich.
Beispiel:
c. Ereignis: Geräteinformationen aktualisieren
:::tips Modulname:device Version:v2 Nachrichtentyp:updateDeviceInfo event.data Parameter: :::
endpoint
EndpointObject
N
Geräteinformationen
payload
DeviceChangeObject
N
Daten der Geräteänderung
EndpointObject:
serial_number
string
N
Eindeutige Seriennummer des Geräts
third_serial_number
string
Y
Die eindeutige Seriennummer des Drittanbietergeräts. Für über offene Schnittstellen verbundene Geräte ist dieses Feld erforderlich.
DeviceChangeObject
name
string
N
Gerätename
capabilities
CapabilityObject []
Y
Liste der Gerätefähigkeiten.
Tags
object
Y
Tagsobject | Nullable | JSON-Format Schlüssel-Wert-Paare für benutzerdefinierte Geräteinformationen.
Kann verwendet werden, um Gerätekanäle zu speichern.
Kann verwendet werden, um Temperatureinheiten zu speichern.
Für andere benutzerdefinierte Drittanbieter-Daten. |
Beispiel:
d. Ereignis: Gerät löschen
:::tips Modulname:device Version:v2 Nachrichtentyp:deleteDevice event.data Parameter: :::
endpoint
EndpointObject
N
Geräteinformationen
EndpointObject:
serial_number
string
N
Eindeutige Seriennummer des Geräts
third_serial_number
string
Y
Die eindeutige Seriennummer des Drittanbietergeräts. Für über offene Schnittstellen verbundene Geräte ist dieses Feld erforderlich.
Beispiel:
e. Ereignis: Geräte-Online-Status aktualisieren
:::tips Modulname:device Version:v2 Nachrichtentyp:updateDeviceOnline event.data Parameter: :::
endpoint
EndpointObject
N
Geräteinformationen
payload
DeviceChangeObject
N
Daten der Geräteänderung
EndpointObject:
serial_number
string
N
Eindeutige Seriennummer des Geräts
third_serial_number
string
Y
Die eindeutige Seriennummer des Drittanbietergeräts. Für über offene Schnittstellen verbundene Geräte ist dieses Feld erforderlich.
DeviceChangeObject
online
boolean
N
Geräte-Online-Status
Beispiel:
5.4 Gateway-Modul
a. Sicherheitsstatus-Aktualisierungsereignis
:::tips Modulname:device Version:v2 Nachrichtentyp:updateDeviceOnline event.data Parameter: :::
Attribut
Typ
Optional
Beschreibung
payload
SecurityStateObject
N
Geräteinformationen
SecurityStateObject
Attribut
Typ
Optional
Beschreibung
alarm_state
string
N
arming| Bewaffnetdisarming| Entwaffnet |
Beispiel:
5.5 Sicherheitsmodul
a. Arm-State-Aktualisierungsereignis
:::tips Modulname:device Version:v2 Nachrichtentyp:updateDeviceOnline event.data Parameter: :::
Attribut
Typ
Optional
Beschreibung
payload
ArmStateObject
N
Arm- und Disarm-Informationen
ArmStateObject:
Attribut
Typ
Optional
Beschreibung
arm_state
string
N
arming| Bewaffnetdisarming| Deaktiviert | | detail | DetailObject | N | Arm-/Disarm-Details |
DetailObject:
Attribut
Typ
Optional
Beschreibung
sid
int
N
Sicherheitsmodus-ID
name
string
N
Sicherheitsname
Beispiel
6. TTS (Text-to-Speech) Engine-Funktion
6.1 Anleitung
Schlüsselrolle
TTS-Dienstanbieter: Der TTS-Engine-Dienstanbieter ist verantwortlich für die Registrierung der TTS-Engine am Gateway und die Bereitstellung von TTS-Diensten
Gateway-Server:iHost
Gateway Open API Client
6.1.1 Registrierung des TTS-Engine-Dienstes
【TTS-Dienstanbieter】Ruft die Schnittstelle auf, um die TTS-Engine am Gateway zu registrieren.
【Gateway-Server】Nach erfolgreicher Registrierung speichert das Gateway die Basisinformationen der TTS-Engine (einschließlich der Dienstadresse server_address, und die anschließende Kommunikation zwischen dem Gateway und dem TTS-Dienstanbieter erfolgt über die Adresse server_address) und vergibt die TTS-Engine-Service-ID innerhalb des Gateways.

6.1.2 Abrufen der Liste synthetisierter Audios
【Gateway Open API Client】Ruft die Schnittstelle auf, um die Liste der registrierten TTS-Engine-Dienste zu erhalten. Sie können die aktuelle Liste der registrierten TTS-Engines abrufen (einschließlich der vom Gateway zugewiesenen TTS-Engine-ID).
【Gateway Open API Client】Ruft die Schnittstelle auf, um die Liste der Audios einer angegebenen TTS-Engine zu erhalten. Das Gateway sendet synchron eine Anforderung zur Audiolistenabfrage an den angegebenen TTS-Dienstanbieter und gibt das Ergebnis zurück.

6.1.3 Sprachsynthese durch Angabe einer Sprach-Engine
【Gateway Open API Client】Ruft die Schnittstelle auf, um die Liste der registrierten TTS-Engine-Dienste zu erhalten. Sie können die aktuelle Liste der registrierten TTS-Engines abrufen (einschließlich der vom Gateway zugewiesenen TTS-Engine-ID).
【Gateway Open API Client】Ruft die Schnittstelle auf, um die Liste der Audios einer angegebenen TTS-Engine zu erhalten. Das Gateway sendet synchron eine Anforderung zur Audiolistenabfrage an den angegebenen TTS-Dienstanbieter und gibt das Ergebnis zurück.

6.1.4 Audio synthetisieren und TTS-Sprachwiedergabe.
【Gateway Open API Client】Ruft die Schnittstelle auf, um die Liste der registrierten TTS-Engine-Dienste zu erhalten. Sie können die aktuelle Liste der registrierten TTS-Engines abrufen (einschließlich der vom Gateway zugewiesenen TTS-Engine-ID).
【Gateway Open API Client】Ruft die Schnittstelle auf, um die Liste der Audios einer angegebenen TTS-Engine zu erhalten. Das Gateway sendet synchron eine Anforderung zur Audiolistenabfrage an den angegebenen TTS-Dienstanbieter und gibt das Ergebnis zurück. (einschließlich der TTS-Audiodatei-Adresse)
【Gateway Open API Client】Notiert die TTS-Audiodatei-Adresse aus dem zuvor zurückgegebenen Ergebnis, ruft die Schnittstelle zum Abspielen der Audiodatei auf und spielt sie über das Gateway ab.
6.2 TTS-Engine-Modul
6.2.1 Gateway Offene Fähigkeiten
a. Abrufen der Liste der registrierten TTS-Engine-Dienste
:::tips
URL:
/open-api/V2/rest/tts/enginesMethode:
GETHeader:
Content-Type: application/json
Authorization: Bearer ::: Anforderungsparameter: keine Korrekte Datenantwort:
Attribut
Typ
Optional
Beschreibung
engines
EngineObject []
N
Liste der registrierten TTS-Engines
EngineObject Struktur
Attribut
Typ
Optional
Beschreibung
id
string
N
Vom Gateway zugewiesene Engine-ID
name
string
N
Name des TS-Engine-Dienstes
:::tips Bedingungen: Die Anforderungsparameter sind gültig und die Benutzeridentitätsprüfung ist bestanden. **Statuscode: **200 OK Antwortbeispiel:: :::
b. Abrufen der Liste der Audios einer angegebenen TTS-Engine
:::tips
URL:
/open-api/V2/rest/tts/engine/{id}/audio-listMethode:
GETHeader:
Content-Type: application/json
Authorization: Bearer ::: Anforderungsparameter: keine Korrekte Datenantwort:
Attribut
Typ
Optional
Beschreibung
audio_list
AudioObject []
N
Audioliste
AudioObject Struktur
Attribut
Typ
Optional
Beschreibung
url
string
N
URL der Audiodatei, zum Beispiel:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Beschriftung der Audiodatei
:::tips Bedingungen: Die Anforderungsparameter sind gültig und die Benutzeridentitätsprüfung ist bestanden. **Statuscode: **200 OK **Fehlercode: **
190000 Die Engine funktioniert abnormal
Antwortbeispiel:: :::
c. Sprachsynthese mit der angegebenen TTS-Engine ausführen
:::tips
URL:
/open-api/V2/rest/tts/engine/{id}/synthesizeMethode:
POSTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anforderungsparameter:
Attribut
Typ
Optional
Beschreibung
text
string
N
Text, der zur Synthese des Audios verwendet wird
label
string
Y
Beschriftung der Audiodatei
language
string
Y
Transparentes Feld. Optionaler Sprachcode für die Syntheseanforderung. Die konkrete Liste der unterstützten Sprachcodes wird vom TTS-Engine-Dienstanbieter bereitgestellt. Beachten Sie, dass der TTS-Engine-Dienst die Standardsprache für die Sprachsynthese unterstützen muss, was bedeutet, dass wenn die Sprache nicht übergeben wird, die Standardsprache der Engine für die Synthese verwendet wird.
options
object
Y
Transparentes Feld. Wird verwendet, um die für die Synthese erforderlichen Konfigurationsparameter an den TTS-Engine-Dienst zu übergeben.
Korrekte Datenantwort:
Attribut
Typ
Optional
Beschreibung
audio
AudioObject
N
Audioliste
AudioObject Struktur
Attribut
Typ
Optional
Beschreibung
url
string
N
URL der Audiodatei, zum Beispiel:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Beschriftung der Audiodatei
:::tips Bedingungen: Die Anforderungsparameter sind gültig und die Benutzeridentitätsprüfung ist bestanden. **Statuscode: **200 OK **Fehlercode: **
190000 Die Engine funktioniert abnormal
Antwortbeispiel:: :::
6.2.2 Kommunikation zwischen Gateway und TTS-Dienst
a. Registrierung des TTS-Engine-Dienstes
Anfrage vom TTS-Dienstanbieter an das Gateway senden
:::tips
URL:
/open-api/V2/rest/thirdparty/eventMethode:
POSTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anforderungsparameter:
Attribut
Typ
Optional
Beschreibung
event
EventObject
N
Strukturinformationen des Request Event Object
EventObject
Attribut
Typ
Optional
Beschreibung
header
HeaderObject
N
Strukturinformationen des Anfrage-Headers
payload
PayloadObject
N
Strukturinformationen der Anfrage-Payload
HeaderObject
Attribut
Typ
Optional
Beschreibung
name
string
N
Request-Name. Optionaler Parameter.
RegisterTTSEngine | | message_id | string | N | Request-Nachrichten-ID, UUID_V4 | | version | string | N | Versionsnummer des Anforderungsprotokolls. Derzeit fest auf 1 |
PayloadObject
Attribut
Typ
Optional
Beschreibung
service_address
string
N
Dienstadresse. Zum Beispiel, http:///
name
string
N
Dienstname
Anfragebeispiel:
**Korrekte Antwortparameter: **
Attribut
Typ
Optional
Beschreibung
header
HeaderObject
N
Strukturinformationen des Anfrage-Headers
payload
PayloadObject
N
Strukturinformationen der Anfrage-Payload
HeaderObject
Attribut
Typ
Optional
Beschreibung
name
string
N
Antwort-Header-Name. Optionaler Parameter:
Antwort (Erfolgreiche Antwort)
ErrorResponse (Fehlerantwort) | | message_id | string | N | Response-Header-Nachrichten-ID, UUID_V4. Eingehende Anforderungsnachricht hier: header.message_id | | version | string | N | Versionsnummer des Anforderungsprotokolls. Derzeit fest auf 1 |
PayloadObject
Attribut
Typ
Optional
Beschreibung
engine_id
string
N
Vom Gateway zugewiesene Engine-ID
:::tips Bedingungen: Die Anforderungsparameter sind gültig und die Benutzeridentitätsprüfung ist bestanden. **Statuscode: **200 OK Antwortbeispiel:: ::: Korrektes Antwortbeispiel:
**Abnorme Antwortparameter: **
Attribut
Typ
Optional
Beschreibung
type
string
N
Fehlertyp
INVALID_PARAMETERS (Parameterfehler)
AUTH_FAILURE (Authentifizierungsfehler)
INTERNAL_ERROR (Interner Dienstfehler) | | description | string | N | Fehlerbeschreibung |
Fehlerantwortbeispiel:
b. Befehl zur Synchronisierung der Audioliste
Sendet vom Gateway einen Befehl an den TTS-Dienstanbieter.
:::tips
URL:
<service address>Methode:
POSTHeader:
Content-Type: application/json ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
directive
DirectiveObject
N
Strukturinformationen des Anweisungsobjekts
DirectiveObject
Attribut
Typ
Optional
Beschreibung
header
HeaderObject
N
Strukturinformationen des Anfrage-Headers
payload
PayloadObject
N
Strukturinformationen der Anfrage-Payload
HeaderObject
Attribut
Typ
Optional
Beschreibung
name
string
N
Request-Name. Optionaler Parameter:
SyncTTSAudioList | | message_id | string | N | Request-Nachrichten-ID, UUID_V4 | | version | string | N | Versionsnummer des Anforderungsprotokolls. Derzeit fest auf 1 |
Anfragebeispiel:
**Korrekte Antwortparameter: **
Attribut
Typ
Optional
Beschreibung
header
HeaderObject
N
Strukturinformationen des Anfrage-Headers
payload
PayloadObject
N
Strukturinformationen der Anfrage-Payload
HeaderObject
Attribut
Typ
Optional
Beschreibung
name
string
N
Antwort-Header-Name. Optionaler Parameter:
Antwort (Erfolgreiche Antwort)
ErrorResponse (Fehlerantwort) | | message_id | string | N | Response-Header-Nachrichten-ID, UUID_V4. Eingehende Anforderungsnachricht hier: header.message_id | | version | string | N | Versionsnummer des Anforderungsprotokolls. Derzeit fest auf 1 |
PayloadObject:
Attribut
Typ
Optional
Beschreibung
audio_list
AudioObject []
N
TTS-Audioliste
AudioObject Struktur
Attribut
Typ
Optional
Beschreibung
url
string
N
URL der Audiodatei, zum Beispiel:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Beschriftung der Audiodatei
:::tips Bedingungen: Die Anforderungsparameter sind gültig und die Benutzeridentitätsprüfung ist bestanden. **Statuscode: **200 OK Antwortbeispiel:: ::: Korrektes Antwortbeispiel:
**Abnorme Antwortparameter: **
Attribut
Typ
Optional
Beschreibung
type
string
N
Fehlertyp
INVALID_PARAMETERS (Parameterfehler)
AUTH_FAILURE (Authentifizierungsfehler)
INTERNAL_ERROR (Interner Dienstfehler) | | description | string | N | Fehlerbeschreibung |
Fehlerantwortbeispiel:
c. Sprachsynthesebefehl
Sendet vom Gateway einen Befehl an den TTS-Dienstanbieter.
:::tips
URL:
<service address>Methode:
POSTHeader:
Content-Type: application/json ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
directive
DirectiveObject
N
Strukturinformationen des Anweisungsobjekts
DirectiveObject
Attribut
Typ
Optional
Beschreibung
header
HeaderObject
N
Strukturinformationen des Anfrage-Headers
payload
PayloadObject
N
Strukturinformationen der Anfrage-Payload
HeaderObject
Attribut
Typ
Optional
Beschreibung
name
string
N
Request-Name. Optionaler Parameter:
SynthesizeSpeech | | message_id | string | N | Request-Nachrichten-ID: UUID_V4 | | version | string | N | Versionsnummer des Anforderungsprotokolls. Derzeit fest auf 1 |
PayloadObject
Attribut
Typ
Optional
Beschreibung
text
string
N
Text, der zur Synthese des Audios verwendet wird
label
string
Y
Beschriftung der Audiodatei
language
string
Y
Transparentes Feld. Optionaler Sprachcode für die Syntheseanforderung. Die konkrete Liste der unterstützten Sprachcodes wird vom TTS-Engine-Dienstanbieter bereitgestellt. Beachten Sie, dass der TTS-Engine-Dienst die Standardsprache für die Sprachsynthese unterstützen muss, was bedeutet, dass wenn die Sprache nicht übergeben wird, die Standardsprache der Engine für die Synthese verwendet wird.
options
object
Y
Transparentes Feld. Wird verwendet, um die für die Synthese erforderlichen Konfigurationsparameter an den TTS-Engine-Dienst zu übergeben.
Anfragebeispiel:
**Korrekte Antwortparameter: **
Attribut
Typ
Optional
Beschreibung
header
HeaderObject
N
Strukturinformationen des Anfrage-Headers
payload
PayloadObject
N
Strukturinformationen der Anfrage-Payload
HeaderObject
Attribut
Typ
Optional
Beschreibung
name
string
N
Antwort-Header-Name. Optionaler Parameter:
Antwort (Erfolgreiche Antwort)
ErrorResponse (Fehlerantwort) | | message_id | string | N | Response-Header-Nachrichten-ID, UUID_V4. Eingehende Anforderungsnachricht hier: header.message_id | | version | string | N | Versionsnummer des Anforderungsprotokolls. Derzeit fest auf 1 |
PayloadObject
Attribut
Typ
Optional
Beschreibung
audio
AudioObject
N
TTS-Audio
AudioObject Struktur
Attribut
Typ
Optional
Beschreibung
url
string
N
URL der Audiodatei, zum Beispiel:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Beschriftung der Audiodatei
:::tips Bedingungen: Die Anforderungsparameter sind gültig und die Benutzeridentitätsprüfung ist bestanden. **Statuscode: **200 OK Antwortbeispiel:: ::: Korrektes Antwortbeispiel:
**Abnorme Antwortparameter: **
Attribut
Typ
Optional
Beschreibung
type
string
N
Fehlertyp
INVALID_PARAMETERS (Parameterfehler)
AUTH_FAILURE (Authentifizierungsfehler)
INTERNAL_ERROR (Interner Dienstfehler) | | description | string | N | Fehlerbeschreibung |
Fehlerantwortbeispiel:
7. Multimedia-Modul
7.1 Abspielen einer Audiodatei
:::tips
URL:
/open-api/V2/rest/media/audio-playerMethode:
POSTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anforderungsparameter:
Attribut
Typ
Optional
Beschreibung
audio_url
string
N
Audio-URL-Adresse
Korrekte Datenantwort: :::tips Bedingungen: Die Anforderungsparameter sind gültig und die Benutzeridentitätsprüfung ist bestanden. **Statuscode: **200 OK Antwortbeispiel:: :::
8. Benutzerdefinierte UI-Karte
Benutzerdefinierte UI-Karten ermöglichen es Ihnen, beliebige Inhalte innerhalb der Karte anzuzeigen. Dieser Inhalt kann eine Webseite, ein Bild oder jeder Dienst mit einer UI sein. Sie müssen lediglich die URL des Inhalts angeben, den Sie anzeigen möchten. Die UI-Karte passt automatisch Breite und Höhe an, und der Inhalt wird in einem iFrame gerendert.
8.1 Anleitung
Schlüsselrolle
UI-Dienstanbieter: Der Anbieter, der für die Erstellung benutzerdefinierter UI-Karten auf dem Gateway verantwortlich ist.
Gateway-Server: Der Gateway-Server (iHost).
Gateway Open API Client: Der Open API-Client für das Gateway.
8.1.1 Erstellen einer benutzerdefinierten UI-Karte
[UI-Dienstanbieter]: Ruft die API auf, um eine benutzerdefinierte UI-Karte auf dem Gateway zu erstellen.
[Gateway-Server]: Nach erfolgreicher Registrierung speichert das Gateway die Basisinformationen der UI-Karte (einschließlich Größenkonfiguration und Kartenressourcen-URL) und weist eine interne UI-Karten-ID innerhalb des Gateways zu.

8.1.2 Abrufen der UI-Kartenliste
[UI-Dienstanbieter]: Ruft die API auf, um die Liste der UI-Karten abzurufen.
[Gateway-Server]: Gibt die auf dem Gateway gespeicherte Liste der UI-Karten zurück, einschließlich benutzerdefinierter UI-Karten, die nicht vom Aufrufer erstellt wurden.

8.1.3 Ändern der Konfiguration einer angegebenen UI-Karte
[UI-Dienstanbieter]: Ruft die API auf, um die Konfiguration einer angegebenen UI-Karte zu ändern, z. B. die Größenkonfiguration und die Ressourcen-URL.
[Gateway-Server]: Nach erfolgreicher Änderung speichert das Gateway die aktualisierten UI-Karteninformationen, einschließlich der neuen Größenkonfiguration und Ressourcen-URL.

8.1.4 Löschen einer benutzerdefinierten UI-Karte
[UI-Dienstanbieter]: Ruft die API auf, um eine angegebene benutzerdefinierte UI-Karte zu löschen.
[Gateway-Server]: Das Gateway entfernt alle Informationen, die sich auf die angegebene UI-Karte beziehen.

8.2 Modul für benutzerdefinierte UI-Karten
8.2.1 Erstellen einer benutzerdefinierten UI-Karte
Der UI-Dienstanbieter sendet eine Anfrage an das Gateway, um eine benutzerdefinierte UI-Karte zu erstellen.
:::tips
URL:
/open-api/v2/rest/ui/cardsMethode:
POSTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anforderungsparameter:
Attribut
Typ
Optional
Beschreibung
label
string
Y
Kartenbezeichnung: Wird verwendet, um die Karte zu beschreiben. Es ist das Alias der Karte.
cast_settings
CastSettingsObject
Y
Cast-Karteneinstellungen: Konfigurationseinstellungen für Cast-Karten.
web_settings
WebSettingsObject
N
Web-Karteneinstellungen: Konfigurationseinstellungen für Web-Karten.
CastSettingsObject:
Attribut
Typ
Optional
Beschreibung
dimensions
DimensionObject []
N
Größenkonfiguration: Muss mindestens eine Konfiguration enthalten.
default
string
N
Standardangabe: Die Standardgrößenspezifikation wird verwendet, mit optionalen Parametern: 2x2
WebSettingsObject:
Attribut
Typ
Optional
Beschreibung
dimensions
DimensionObject []
N
Größenkonfiguration: Muss mindestens eine Konfiguration enthalten.
drawer_component
DrawerObject
Y
Anzeigeeinstellungen der Drawer-Komponente.
default
string
N
Standardspezifikation:
1x1
2x1 |
DimensionObject:
Attribut
Typ
Optional
Beschreibung
src
string
N
Ressourcen-URL: Zum Beispiel: http://example.html
size
string
N
Größenspezifikationen:
CastSettingsObject optionale Parameter:
2×2
WebSettingsObject optionale Parameter:
1x1
2x1 |
DrawerObject:
Attribut
Typ
Optional
Beschreibung
src
string
N
Ressourcen-URL: Zum Beispiel: http://example.html
Erfolgreiche Datenantwort:
Attribut
Typ
Optional
Beschreibung
id
string
N
Eindeutige UI-Karten-ID
:::tips Bedingungen: Die Anfrageparameter sind gültig und die Benutzer-Identitätsprüfung wurde bestanden. **Statuscode: ** 200 OK ::: Anfragebeispiel:
Antwortbeispiel:
8.2.2 Abrufen der UI-Kartenliste
:::tips
URL:
/open-api/v2/rest/ui/cardsMethode:
GETHeader:
Content-Type: application/json
Authorization: Bearer ::: Anforderungsparameter: Keine Antwortparameter:
Attribut
Typ
Optional
Beschreibung
data
CardObject[]
N
UI-Kartenliste
CardObjec Objekt:
Attribut
Typ
Optional
Beschreibung
id
string
N
Karten-ID: Eine eindeutige Kennung für die Karte.
label
string
Y
Kartenbezeichnung: Wird verwendet, um die Karte zu beschreiben. Sie dient als Alias oder Name der Karte.
cast_settings
CastSettingsObject
Y
Kartenbezeichnung: Wird verwendet, um die Karte zu beschreiben. Es ist das Alias der Karte.
web_settings
WebSettingsObject
N
Cast-Karteneinstellungen: Konfigurationseinstellungen für Cast-Karten.
app_name
string
Y
Web-Karteneinstellungen: Konfigurationseinstellungen für Web-Karten.
CastSettingsObject:
Attribut
Typ
Optional
Beschreibung
dimensions
DimensionObject []
N
Größenkonfiguration: Muss mindestens eine Konfiguration enthalten.
default
string
N
Standardspezifikation:
Optionaler Parameter: 2x2
used
string
N
Aktuelle Spezifikation:
Optionaler Parameter: 2x2
WebSettingsObject:
Attribut
Typ
Optional
Beschreibung
dimensions
DimensionObject []
N
Größenkonfiguration: Muss mindestens eine Konfiguration enthalten.
drawer_component
DrawerObject
Y
Anzeigeeinstellungen der Drawer-Komponente.
default
string
N
Standardspezifikation:
Optionaler Parameter:
1x1
2x1 | | used | string | N | Aktuelle Spezifikation: Optionaler Parameter:
1x1
2x1 |
DimensionObject:
Attribut
Typ
Optional
Beschreibung
src
string
N
Ressourcen-URL: Zum Beispiel: http://example.html
size
string
N
Größenspezifikationen:
Optionaler Parameter:
1x1
2x1
Hinweis: Derzeit unterstützen Cast-Karten nur die 2x2-Spezifikation. Die 2x2-Spezifikation wird nicht wirksam sein. |
DrawerObject:
Attribut
Typ
Optional
Beschreibung
src
string
N
Ressourcen-URL: Zum Beispiel: http://example.html
Antwortbeispiel:
8.2.3 Ändern der Konfiguration einer angegebenen UI-Karte
Autorisierte Benutzer dürfen die Konfiguration einer bestehenden UI-Karte über diese Schnittstelle ändern. Anbieter benutzerdefinierter Karten können nur UI-Karten ändern, die sie erstellt haben.
:::tips
URL:
/open-api/v2/rest/ui/cards/{id}Methode:
PUTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anforderungsparameter:
Attribut
Typ
Optional
Beschreibung
label
string
Y
Wird verwendet, um die Karte zu beschreiben. Es ist das Alias der Karte.
cast_settings
CastSettingsObject
Y
Cast-Karteneinstellungen
web_settings
WebSettingsObject
Y
Web-Karteneinstellungen
CastSettingsObject:
Attribut
Typ
Optional
Beschreibung
used
string
Y, Entweder used oder src muss angegeben werden, aber mindestens einer dieser Parameter ist erforderlich.
Aktuelle Spezifikation:
Optionaler Parameter:
2x2
| | src | string | Y, Entweder used oder src muss angegeben werden, aber mindestens einer dieser Parameter ist erforderlich. | Ressourcen-URL: http://example.html |
WebSettingsObject:
Attribut
Typ
Optional
Beschreibung
used
string
Y, Entweder used oder src muss angegeben werden, aber mindestens einer dieser Parameter ist erforderlich.
Aktuelle Spezifikation:
Optionaler Parameter:
1x1
2x1 | | src | string | Y, Entweder
usedodersrcmuss angegeben werden, aber mindestens einer dieser Parameter ist erforderlich. | Ressourcen-URL: http://example.html |
Erfolgreiche Datenantwort: :::tips Bedingungen: Die Anforderungsparameter sind gültig und die Benutzeridentitätsprüfung ist bestanden. Die zu ändernde UI-Karte muss von dem Anbieter benutzerdefinierter UI-Karten erstellt worden sein, der die Schnittstelle aufruft. **Statuscode: ** 200 OK Fehlercode:
406: Keine Berechtigung zum Zugriff auf diese Ressource ::: **Antwortbeispiel: **
**Anfragebeispiel: **
8.2.4 Löschen einer benutzerdefinierten UI-Karte
Autorisierte Benutzer dürfen eine bestehende UI-Karte mit dieser Schnittstelle löschen. Anbieter benutzerdefinierter Karten können nur UI-Karten löschen, die sie erstellt haben.
:::tips
URL:
/open-api/v2/rest/ui/cards/{id}Methode:
DELETEHeader:
Content-Type: application/json
Authorization: Bearer ::: Anforderungsparameter: Keine Erfolgreiche Datenantwort: :::tips Bedingungen: Die Anforderungsparameter sind gültig und die Benutzeridentitätsprüfung ist bestanden. Die zu ändernde UI-Karte muss von dem Anbieter benutzerdefinierter UI-Karten erstellt worden sein, der die Schnittstelle aufruft. **Statuscode: **
200 OKFehlercode:
406: Keine Berechtigung zum Zugriff auf diese Ressource. ::: **Antwortbeispiel: **
Zuletzt aktualisiert