Entwickler- & API-Anleitung
1. Erste Nutzung
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 Ihrem Browser ein.
Hinweis: Wenn Sie mehrere Gateways haben, können Sie die entsprechende IP-Adresse abrufen, um auf das angegebene Gateway auf die folgenden zwei Weisen 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 Erste Schritte
Rufen Sie die [Access Token]-Schnittstelle auf und erhalten Sie eine Fehlerantwort, die auffordert, < zu klickenFertig>. Beachten Sie, dass nach dem Drücken der Schnittstellenzugriff nicht länger als 5 Minuten gültig ist.
// 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 [Access Token]-Schnittstelle erneut auf. Die Antwort ist erfolgreich und das Token wird erhalten.
Token verifizieren. Rufen Sie die [Get Device List]-Schnittstelle auf. Die Antwort ist erfolgreich und die Geräteliste wird erhalten.
Methode zum Abrufen des CUBE-Zugriffstokens: Nachdem die [Access Token]-Schnittstelle aufgerufen wurde, fordert das globale Popup-Feld der CUBE-Webkonsole den Benutzer auf, die Erteilung der Schnittstellenaufruf-Anmeldeinformationen zu bestätigen.
Hinweis: Wenn Sie mehr als eine CUBE-Webkonsole geöffnet haben, erscheint das Bestätigungs-Popup auf mehreren Webkonsole-Seiten gleichzeitig, und die Popup-Fenster der anderen Webkonsole-Seiten werden geschlossen, nachdem auf einer der Webkonsole-Seiten die Bestätigung angeklickt wurde.
2. Kernkonzept
2.1 Adresse der Entwicklungs-Schnittstelle
Die Web-API-Schnittstelle des Gateways hat zwei Zugriffsmethoden (basierend auf IP oder Domänennamen), normalerweise ist der Stamm-Pfad /open-api/V2/rest/< specific function module >
// IP-Zugriff http:///open-api/V2/rest/bridge
// Domain-Name-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 (Geräte-)spezifische Kategorien zu identifizieren, wie z. B. switch, plug, light usw. Diese Informationen bestimmen die UI-Anzeige des Geräts im Gateway.
**Geräte-Fähigkeit. **Geräte-Fähigkeit wird verwendet, um die spezifischen Unterfunktionen des Geräts zu beschreiben. Zum Beispiel Leistungssteuerung, Helligkeitssteuerung, Farbtemperatursteuerung usw. Ein einzelnes Gerät kann 1 oder mehr Fähigkeiten unterstützen.
capability: Beschreibt den Fähigkeitsnamen, der global eindeutig sein muss und vom Typ String ist. Mehrere englische Wörter sollten mit Bindestrichen ("-") getrennt werden. Zum Beispiel:
"thermostat-target-setpoint".name: Beschreibt die Kategorie unter der Fähigkeit, ebenfalls vom Typ String. Mehrere englische Wörter sollten mit Bindestrichen ("-") 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 sind:
Gerät steuerbar:
"1000"Gerät konfigurierbar:
"0010"Gerät steuerbar und konfigurierbar:
"1010"Gerät steuerbar und meldungsfä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 sind in der Tabelle unten aufgeführt.
permission
string
N
Beschreibt die Berechtigungen für das Konfigurationselement.
Optionale Werte:
Erlaube die Änderung dieses Konfigurationselements:
"10"Erlaube das Anzeigen dieses Konfigurationselements:
"01"Erlaube sowohl Änderung als auch Anzeige dieses Konfigurationselements:
"11"
Bit-Erklärung:
Bit 0: Erlaubt das Anzeigen dieses Konfigurationselements
Bit 1: Erlaubt die Änderung dieses Konfigurationselements | | Typ | string | N | Beschreibt den Datentyp des Wertes 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. Doppeltgenaue 64-Bit-Binärform im IEEE-754-Format
int
Ganzzahliger Datentyp.
object
Objektdatentyp. JSON-kompatibles Objekt
string[]
Array von Strings
int[]
Array von Ganzzahlen
object[]
Array von Objekten
bool
Boolesch
date
Zeitzeichenfolge. Zeichenfolge im ISO-Format (ISO 8601 Extended Format): YYYY-MM-DDTHH:mm:ss.sssZ. Die Zeitzone ist immer UTC (Coordinated Universal Time), gekennzeichnet durch ein Suffix "Z".
Allgemeine Antwort-Ergebnisse
error
int
N
Fehlercode:
0: Erfolg
400: Parameterfehler
401: Authentifizierung fehlgeschlagen
500: Server-Ausnahme
data
object
N
Antwort-Datenkörper
message
string
N
Antwortbeschreibung:
Wenn error gleich 0 ist, ist der Inhalt success
Wenn error ungleich 0 ist, ist es eine nicht-leere Zeichenfolge, und der Inhalt ist eine Fehlerbeschreibung.
Antwortbeispiel:
Ressourcenliste
Unterstützte Töne
- 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 (System heruntergefahren) -deviceDiscovered (Gerät entdeckt)
system Armed (System scharfgeschaltet aktiviert)
system Disarmed (System scharfgeschaltet 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 einem Gerätezurücksetzen gelöscht.
Hinweis: Nachdem Sie das Token erhalten haben, 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 Schnittstellenzugriffs-Token. Es ist langfristig gültig, bitte speichern Sie es
app_name
string
Y
Beschreibung des Anwendungsnamens.
:::tips Bedingung: Benutzer löst die < Befehlstaste > aus und greift innerhalb der gültigen Zeit auf diese Schnittstelle zu. **Statuscode: **200 OK ::: Antwortbeispiel:
Fehlerhafte Datenantwort:leeres Objekt :::tips Bedingungen:Der Benutzer hat die < Befehlstaste > 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 zu erhalten :::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-Auslastungsprozent. [0-100]
cpu_used
int
N
CPU-Auslastungsprozentsatz. [0-100]
power_up_time
date
N
Die letzte Einschaltdauer
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-Auslastung (Prozentsatz):
Bereich:[0-100] mit einer Nachkommastelle Präzision
*Hinweis: Wenn die SD-Karte nicht eingesetzt oder nicht formatiert ist, ist der Wert leer.
:::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
c. Gateway einstellen
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 legal und die Benutzeridentitä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-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 legal und die Benutzeridentitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
f. Gateway Stummschaltung aufheben
Ermöglicht autorisierten Benutzern, die Stummschaltung des Gateways über diese Schnittstelle aufzuheben. :::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 legal und die Benutzeridentitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
g. Gateway-Alarm abbrechen
Ermöglicht autorisierten Benutzern, den Alarmtonstatus am Gateway ü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 legal und die Benutzeridentitä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 legal und die Benutzeridentitä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 (Piepton abspielen)
sound
SoundObject
Y (N, falls type play_sound ist.)
Der Ton.
beep
BeepObject
Y (N, falls type play_beep ist.)
Der Piepton
SoundObject
Attribut
Typ
Optional
Beschreibung
name
string
N
Der Tonname. Die unterstützten Werte können in [Ressourcenliste - Unterstützte Töne] überprüft werden
volume
int
N
Die Lautstärke des Tons. [0-100]
countdown
int
N
Die Dauer, für die der Lautsprecher den Ton abspielt; nach Ablauf der Zeit wird die Wiedergabe automatisch gestoppt. Einheit: Sekunde. [0,1799]
BeepObject
Attribut
Typ
Optional
Beschreibung
name
string
N
Der Deep-Name. Die unterstützten Werte können in [Ressourcenliste - Unterstützte Deep] überprüft werden
volume
int
N
Die Deep-Lautstärke. [0-100]
Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentitätsprüfung wurde bestanden. **Statuscode: ** 200 OK ::: Antwortbeispiel:
3.3 Geräteverwaltungsfunktion
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
Wassermelder
waterLeakDetector
≥ 2.1.0
Rauchmelder
smokeDetector
≥ 2.1.0
Drahtloser Knopf
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 Fähigkeitsdeklaration:
Statusattribut:
Protokoll (Statusabfrage & Steuerungsbefehle):
Einschalten:
Ausschalten:
Kanalumschalter (toggle):
Beispiel für Fähigkeitsdeklaration:
Einzelkomponenten-Beispiel:
Beispiel für mehrere Komponenten:
Statusattribut:
Protokoll (Statusabfrage & Steuerungsbefehle):
Umschaltformat:
Kanal-Impuls (toggle-inching):
Beispiel für Fähigkeitsdeklaration:
Statusattribut
Keine
Protokoll (Statusabfrage & Steuerungsbefehle)
Keine
Helligkeitsregelung (brightness):
Beispiel für Fähigkeitsdeklaration:
Statusattribut:
Protokoll (Statusabfrage & Steuerungsbefehle):
Setze die Helligkeit auf 80 %. (0 ist am dunkelsten, 100 am hellsten.)
Farbtemperaturregelung (color-temperature):
Beispiel für Fähigkeitsdeklaration:
Statusattribut:
Protokoll (Statusabfrage & Steuerungsbefehle):
Farbtemperatur auf 50 % einstellen:
Farbregelung (color-rgb):
Beispiel für Fähigkeitsdeklaration:
Statusattribut:
Protokoll (Statusabfrage & Steuerungsbefehle):
Farbe auf Lila setzen:
Prozentuale Einstellung (percentage):
Beispiel für Fähigkeitsdeklaration:
Statusattribut:
Protokoll (Statusabfrage & Steuerungsbefehle):
Auf 40 % einstellen:
Motorsteuerung (motor-control):
Beispiel für Fähigkeitsdeklaration:
Statusattribut:
Protokoll (Statusabfrage & Steuerungsbefehle):
Motor öffnen:
Motordrehrichtungsumkehr (motor-reverse):
Beispiel für Fähigkeitsdeklaration:
Statusattribut:
Protokoll (Statusabfrage & Steuerungsbefehle):
Motor auf Vorwärts einstellen:
Motorkalibrierung (motor-clb)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusmeldung):
Melde, dass der Motor kalibriert wird:
Einschaltzustand beim Start (startup)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Stromzustand auf Immer An setzen:
Weckaktivierung (identify)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusmeldung & Steuerungsbefehle):
Weckaktivierungszeit einstellen:
Aktivierungsstatus melden:
Echtzeit-Leistungsstatistik-Schalter (power-consumption)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Echtzeitstatistik starten/stoppen:
Stromverbrauch nach Zeitraum abfragen:
Mit Ergebnis der Statistik innerhalb des Zeitraums antworten:
Protokoll (Statusmeldung & Steuerungsbefehle):
Echtzeitstatistik starten:
Echtzeitstatistik stoppen:
Historischen Stromverbrauch abrufen:
Echtzeit-Stromverbrauch abrufen:
Temperatur- und Feuchtigkeitsmodus-Erkennung (thermostat-mode-detect)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Format:
Beispiel:
Thermostatmodus (thermostat-mode)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Adaptive Wiederherstellungsstatus des Thermostats (thermostat/adaptive-recovery-status)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Einstellung der Zieltemperatur des Thermostatmodus (thermostat-target-setpoint)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Sensordetektion (detect)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Temperaturerkennung (temperature)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Feuchterkennung (humidity)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Batteriestatus (battery)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Einzeltastenerkennung (press)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Mehrfachtastenerkennung (multi-press)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Signalstärke-Erkennung (rssi)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Manipulationsalarm (tamper-alert)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Beleuchtungsstärke-Erkennung (illumination-level)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Spannungserkennung (voltage)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Stromstärke-Erkennung (electric-current)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Leistungserkennung (electric-power)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Fehlererkennung (fault)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Schwellwert-Übertreter (threshold-breaker)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status)
Keine
Protokoll (Statusabfrage & Steuerungsbefehle)
Keine
Impulsfunktion (inching)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Keine
Protokoll (Statusabfrage & Steuerungsbefehle):
Keine
Kamerastream (camera-stream)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Keine
Protokoll (Statusabfrage & Steuerungsbefehle):
Keine
Modussteuerung (mode)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Kohlendioxid-Erkennung (co2)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Beleuchtungsstärke-Erkennung (illumination)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Raucherkennung (smoke)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Türmagnet Öffnen/Schließen Erkennung (Kontakt)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Bewegungserkennung (motion)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Wasserleck-Erkennung (water-leak)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Fenstererkennungs-Schalter (window-detection)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Kindersicherungsschalter (child-lock)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Anti-Direktstoß Schalter (anti-direct-blow)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Horizontaler Schwenkschalter (horizontal-swing)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Vertikaler Schwenkschalter (vertical-swing)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
ECO-Modus-Schalter (eco)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Umschalten beim Start (toggle-startup)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Erkennungs-Halten (detect-hold)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Umschalten Identifizieren/Aktivieren (toggle-identify)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Umschalten Spannungserkennung (toggle-voltage)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Unterkomponenten-Stromerkennung (toggle-electric-current)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Unterkomponenten-Leistungserkennung (toggle-electric-power)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Unterkomponenten Energieverbrauchsstatistik (toggle-power-consumption)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Echtzeitstatistik starten/stoppen:
Stromverbrauch nach Zeitraum abfragen:
Antwort für Energieverbrauch innerhalb des Zeitbereichs:
Protokoll (Statusabfrage & Steuerungsbefehle):
Echtzeitstatistik starten:
Echtzeitstatistik stoppen:
Historischen Stromverbrauch abrufen:
Echtzeit-Stromverbrauch abrufen:
Verbindungsqualitätsindikator (lqi)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Funktionale Konfiguration (configuration)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
System (system)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Feuchtigkeit (moisture)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Luftdruck (barometric-pressure)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Windgeschwindigkeit (wind-speed)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Windrichtung (wind-direction)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Niederschlag (rainfall)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
UV-Index (ultraviolet-index)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Elektrische Leitfähigkeit (electrical-conductivity)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Sendeleistung (transmit-power)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
PM2,5-Erkennung (pm25)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
VOC-Index (voc-index)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Erdgas-Erkennung (gas)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Bewässerungsarbeitsstatus (irrigation/work-status)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Berichterstattung zum Arbeitsstatus:
Abfrage des Arbeitsstatus:
Ergebnis der Arbeitsstatus-Abfrage:
Bewässerungsarbeitsmodus (irrigation/work-mode)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Protokoll (Statusabfrage & Steuerungsbefehle):
Automatischer Bewässerungsregler (irrigation/auto-controller)
Beispiel für Fähigkeitsdeklaration:
Attribute (Status):
Einmalige oder wiederholte Zeitplanung:
Einmaliges oder wiederholtes Volumen:
Protokoll (Statusabfrage & Steuerungsbefehle):
Einmalige 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/die Gruppe, die der id entspricht, existiert nicht
≥2.1.0
110001
Das Gateway befindet sich im Zustand des Entdeckens von Zigbee-Geräten
≥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 fehlerhaft
≥2.1.0
110010
Zugriffsautorisierungsfehler des Kamerageräts
≥2.1.0
110011
Stream-Adresse des Kamerageräts fehlerhaft
≥2.1.0
110012
Video-Codierung der Kamera 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 des Entdeckens von ONVIF-Kameras
≥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
Zugriff auf die Service-Adresse des Drittanbietergeräts fehlgeschlagen
≥2.1.0
e. Suche nach Untergeräten
Ermöglicht 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 "Manuell Untergeräte 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 (Paarung starten); false (Paarung pausieren)
type
string
N
Suchtyp: Zigbee
Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentitätsprüfung wurde bestanden. **Statuscode: ** 200 OK ::: Antwortbeispiel:
f. Manuelles Hinzufügen des Untergeräts
Ermöglicht 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 capabilities 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
Geräte-Firmware-Version
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
Konfiguration des Stream-Dienstes
StreamSettingObject
Attribut
Typ
Optional
Beschreibung
type
string
N
Konfiguration des Stream-Dienstes
permission
string
N
Fähigkeitsberechtigung. Unterstützt nur "11" (änderbar).
value
StreamSettingValueObject
N
Spezifische Konfigurationswerte
StreamSettingValueObject
Attribut
Typ
Optional
Beschreibung
stream_url
string
N
Format der Stream-URL
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 das <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 legal und die Benutzeridentitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
Fehlschlag-Datenantwort: leeres Objekt :::tips Bedingung:
Fehler beim Zugriff auf die Kamera-Stream-Adresse (Formatfehler, Autorisierungsfehler, Netzwerk-Ausnahme usw.)
Gerät existiert bereits
Wenn das Hinzufügen eines einzelnen Geräts fehlschlägt, werden alle Geräte als nicht hinzugefügt zurückgegeben.
Statuscode: 200 OK Fehlercode: ● 110009 Kamera-IP-Adresse fehlerhaft ● 110010 Kamerazugriffs-Autorisierungsfehler ● 110011 Kamera-Stream-Adresse fehlerhaft ● 110012 Die Kamera-Video-Codierung wird nicht unterstützt ● 110013 Gerät existiert bereits ::: Antwortbeispiel:
g. Liste der Untergeräte abrufen
Ermöglicht autorisierten Benutzern, die Liste der Gateway-Untergeräte über diese Schnittstelle zu erhalten. :::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 angeschlossen ist, ansonsten "Y"
Eindeutige Seriennummer des Drittanbietergeräts
service_address
string
"N" wenn ein Drittanbietergerät angeschlossen ist, ansonsten "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 ein leerer String sein.
hostname
string
Y
Geräte-Hostname
mac_address
string
Y
MAC-Adresse des Geräts
app_name
string
Y
Der Name der Anwendung, zu der es gehört. Wenn bei der Erlangung des Open-Interface-Zertifikats app_name ausgefüllt wurde, werden alle nachfolgenden über das Zertifikat verbundenen Geräte in dieses Feld geschrieben.
display_category
string
N
Gerätekategorie
capabilities
CapabilityObject[]
N
Gerätefähigkeiten
protocol
string
"N" wenn ein Drittanbietergerät angeschlossen ist, ansonsten "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 verwendet, um Gerätekanäle zu speichern - Wird verwendet, um Temperatureinheiten zu speichern - Benutzerdefinierte Informationen für andere Drittanbietergeräte
online
boolean
N
Online-Status: True für online False ist offline
Subnetz
boolean
Y
Ob es sich im gleichen 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
Name der Fähigkeit. Für 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 zur Identifizierung von Mehrkanalgeräten verwendete Unterkanalnummer. Wenn z. B. name 1 ist, bedeutet dies Kanal 1.
:::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
h. Aktualisieren bestimmter Geräteinformationen oder -zustände
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 für Fähigkeiten, derzeit unterstützt nur die Fähigkeit camera_stream Änderungen.
Erfolgreiche Datenantwort: :::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentitätsprüfung wurde 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
Autorisierung: 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 für Fähigkeiten; alle Fähigkeiten, die das Setzen 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 wurde bestanden. **Statuscode: **200 OK Fehlercodes:
110000: Das Untergerät/die Gruppe, die der ID entspricht, existiert nicht.
110006: Aktualisierung des Gerätestatus fehlgeschlagen.
110019: Zugriff auf die Drittanbieterdienstadresse 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
Autorisierung: Bearer ::: Anfrageparameter: Keine Erfolgreiche Datenantwort: :::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
k. Gerätezustand abfragen
Ermöglicht autorisierten Benutzern, den Gerätezustand ü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ätezustand abfragen; für spezifische Protokolldetails siehe "Supported Device Capabilities."
Erfolgreiche Datenantwort: :::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentitä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
Autorisierung: 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 legal und die Benutzeridentitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
b. Bestimmten Sicherheitsmodus aktivieren
Ermöglicht autorisierten Benutzern, einen bestimmten Sicherheitsmodus über diese Schnittstelle zu aktivieren. :::tips
URL:
/open-api/v2/rest/security/{security_id}/enableMethode:
PUTHeader:
Content-Type: application/json
Autorisierung: Bearer ::: Anfrageparameter: Keine Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
c. Bestimmten Sicherheitsmodus deaktivieren
Ermöglicht autorisierten Benutzern, einen bestimmten Sicherheitsmodus über diese Schnittstelle zu deaktivieren. :::tips
URL:
/open-api/v2/rest/security/{security_id}/disableMethode:
PUTHeader:
Content-Type: application/json
Autorisierung: Bearer ::: Anfrageparameter: Keine Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
d. Ein-Klick Sicherheits-Einrichtung aktivieren
Ermöglicht autorisierten Benutzern, den Ein-Klick-Sicherheits-Einrichtungsmodus über diese Schnittstelle zu aktivieren. :::tips
URL:
/open-api/v2/rest/security/enableMethode:
PUTHeader:
Content-Type: application/json
Autorisierung: Bearer ::: Anfrageparameter: Keine Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentitä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
Autorisierung: Bearer ::: Anfrageparameter: Keine Erfolgreiche Datenantwort: leeres Objekt {} :::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentitätsprüfung wurde bestanden. **Statuscode: **200 OK ::: Antwortbeispiel:
4. Zugriff von Drittanbietergeräten
4.1 Zugriffsanleitung
Gerätezugriff

Zugriff für Drittanbieter-Gateway

Zugriffsschritte
Bestimmen Sie die Klassifizierung des Geräts im Gateway. Die Details finden Sie bitte unter [Supported Device Type].
Bestimmen Sie die Fähigkeiten, auf die das Gerät zugreifen kann. Die Details finden Sie bitte unter [Supported Device Capabilities].
Rufen Sie die Schnittstelle [Discovery Request] auf, um das Gerät zum Gateway hinzuzufügen.
Achtung: Sie müssen die Serviceadresse bereitstellen, um die vom Gateway ausgestellten Anweisungen zu empfangen. Diese Adresse wird verwendet, um die vom Gateway ausgestellten Geräte-Steueranweisungen zu empfangen.
Wenn sich der Status des Drittanbietergeräts ändert, müssen Sie die Schnittstelle [Device States Change Report] aufrufen, um den neuesten Status an das Gateway zurückzusenden.
Nach dem Hinzufügen erscheint das Drittanbietergerät in der Geräteliste mit den 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, nachdem das Gerät mit dem Gateway verbunden ist.
Wählen Sie die richtige Gerätegröße. Die Fähigkeitsliste bestimmt den Zustand des Gerätestatusprotokolls.
Programmvorgang
a. Gerätezugriff

b. Drittanbieter-Gateway-Zugriff

4.2 Zugriffsbeispiel
Schalter, Steckdose
Synchronisieren von Drittanbietergeräten
Gerätezustand 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-Endpunkts Hinweis: 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
Anforderungsname. Optionale Parameter: DiscoveryRequest: Synchronisieren neuer Geräte DeviceStatesChangeReport: Bericht über Gerätestatusaktualisierungen DeviceOnlineChangeReport: Bericht über Online-Status des Geräts
message_id
string
N
Anfrage-Nachrichten-ID, UUID_V4
version
string
N
Angeforderte Protokollversionsnummer. Derzeit auf 1 festgelegt
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] - [Tags-Beschreibung]
PayloadObject Je nach unterschiedlichem header.name gibt es unterschiedliche Anfragestrukturen.
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. Hier die im Anfrage-Header message_id übergebene ID einfügen *Wenn die Anfrage keinen message_id-Parameter enthält, ist dieses Feld bei der Antwort eine leere Zeichenkette.
version
string
N
- Angeforderte Protokollversionsnummer. Derzeit auf 1 festgelegt.
Erfolgreiche Antwort--PayloadObject :
Je nach Anforderungstyp unterscheidet sich die Antwortstruktur. Details finden Sie in der jeweiligen Anforderungsdokumentation.
Fehlerantwort--PayloadObject:
Attribut
Typ
Optional
Beschreibung
type
string
N
Fehlertypen:
INVALID_PARAMETERS: Parameterfehler
AUTH_FAILURE: Autorisierungsfehler
INTERNAL_ERROR: Interner Dienstfehler | | Beschreibung | string | N | Fehlerbeschreibung |
DiscoveryRequest Synchronisiert eine neue Geräteliste
Hinweis: Nachdem das Gerät mit dem Gateway synchronisiert wurde, ist es standardmäßig online, d. h. online=true. Nachfolgende Online-Änderungen hängen vollständig von der Synchronisierung mit dem Drittanbieter über die DeviceOnlineChangeReport-Schnittstelle 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. Details siehe [Supported Device Type]. *Drittanbietergeräte unterstützen derzeit das Hinzufügen von Kameras nicht.
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 speichern Wird verwendet, um Temperatureinheiten zu speichern Andere benutzerdefinierte Drittanbieterdaten
firmware_version
string
N
Firmware-Version
Beispiel einer 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 einer korrekten Antwort:
Beispiel einer Fehlerantwort:
DeviceStatesChangeReport Bericht über Änderungen des Gerätezustands
Hinweis: Wiederholte Statusberichte können fälschlicherweise zu einer Auslösung einer zugehörigen Szene führen.
Anfrageparameter: PayloadObject:
Attribut
Typ
Optional
Beschreibung
state
object
N
Gerätezustand, siehe [Supported device cabilities] für Details
Beispiel einer Anfrage:
Antwortparameter: PayloadObject: Leeres Objekt Beispiel einer erfolgreichen Antwort:
DeviceOnlineChangeReport Bericht über den Online-Status des Geräts
Hinweis: Wiederholte Statusberichte können fälschlicherweise zu einer Auslösung einer zugehörigen Szene führen.
Anfrageparameter: PayloadObject:
Attribut
Typ
Optional
Beschreibung
online
boolean
N
Geräte-Online-Status true: Online
false: Offline
Beispiel einer Anfrage:
Antwortparameter: PayloadObject: Leeres Objekt Beispiel einer erfolgreichen Antwort:
DeviceInformationUpdatedReport Bericht über aktualisierte Geräteinformationen
Hinweis: Aktualisierungen können bestehende Szenen oder Sicherheitsfunktionen beeinflussen.
Anfrageparameter: PayloadObject:
Attribut
Typ
Optional
Beschreibung
capabilities
| CapabilityObject[]
| N
| Fähigkeitenliste. 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 erlaubt, wenn das permission für den Einstellung Schlüssel ist 11 oder 01. Für die spezifische Strukturdefinition des Einstellung in CapabilityObjectsiehe die detaillierte Beschreibung in Abschnitt 2.3 Geräteanzeigekategorien & 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 einer Anfrage:
Antwortparameter: PayloadObject: Leeres Objekt Beispiel einer erfolgreichen Antwort:
Gateway sendet die Anweisungs-Schnittstelle über die Geräte-Serviceadresse
Hinweis:
Die Drittanbieter müssen innerhalb von 3s auf die Anforderung des Gateways antworten. Andernfalls beurteilt das Gateway die Befehlsverarbeitung als zeitüberschritten.
Wenn der Drittanbieterdienst offline ist, setzt das Gateway das Gerät in einen Offline-Zustand, und der Drittanbieterdienst muss den Gerätestatus (DeviceStatesChangeReport) oder den Online-Zustand (DeviceOnlineChangeReport) melden, bevor er wieder online ist.
Anfrageformat
Das Gateway sendet Anweisungen über die Geräte-Serviceadresse-Schnittstelle an den Drittanbieter. :::tips
URL:
Methode:POST
Header:
Content-Type: application/json ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
directive
DirectiveObject
N
Strukturinformationen des Direktivenobjekts
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
Anforderungsname. Optionale Parameter: UpdateDeviceStates: Gerätezustände aktualisieren
message_id
string
N
Anfrage-Nachrichten-ID, UUID_V4
version
string
N
Angeforderte Protokollversionsnummer. Derzeit auf 1 festgelegt.
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] - [Tags-Beschreibung]
PayloadObject: Je nach unterschiedlichem header.name, gibt es für jeden eine spezifische Anfragestruktur.
Beispiel einer 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. Optionaler Parameter: UpdateDeviceStatesResponse: Antwort auf Gerätezustandsaktualisierung ErrorResponse: Fehlerantwort
message_id
string
N
Nachrichten-ID des Antwort-Headers, UUID_V4. Hier die im Anfrage-Header message_id übergebene ID einfügen
version
string
N
Angeforderte Protokollversionsnummer. Derzeit auf 1 festgelegt.
Erfolgreiche Antwort--PayloadObject:
Je nach Anforderungstyp unterscheidet sich die Antwortstruktur. Details finden Sie in der jeweiligen Anforderungsdokumentation.
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: Ungewöhnliche Direktive 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: Fernbedienungs-Tastencode nicht gelernt |
:::tips Bedingungen: Die Anfrageparameter sind legal. **Statuscode: **200 OK Antwortparameter: :::
UpdateDeviceStates
Anfrageparameter: PayloadObject:
Attribut
Typ
Optional
Beschreibung
state
object
N
Gerätezustand, siehe [Supported device cabilities] für Details.
Beispiel einer Anfrage:
Antwortparameter: PayloadObject:leeres Objekt Beispiel einer erfolgreichen Antwort
QueryDeviceStates
Anfrageparameter: PayloadObject:
Attribut
Typ
Optional
Beschreibung
state
object
N
Gerätezustand, siehe [Supported device cabilities] für Details.
Beispiel einer Anfrage:
Antwortparameter: PayloadObject:
Attribut
Typ
Optional
Beschreibung
state
object
N
Gerätezustand, siehe [Supported device cabilities] für Details.
Beispielantwort:
ConfigureDeviceCapabilities
Anfrageparameter: PayloadObject:
Attribut
Typ
Optional
Beschreibung
capabilities
CapabilityObject[]
N
Fähigkeitsliste. Details finden Sie im Abschnitt unterstützte Gerätefähigkeiten. Beachten Sie, dass das Feld permission nicht geändert werden kann; beim Synchronisieren denselben Wert übergeben.
Beispiel einer 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 Anleitung
Das Gateway unterstützt das Pushen von Nachrichten an den Client mittels SSE (Server-sent events). Der Client kann SSE-Nachrichten überwachen, nachdem er die Zugangsdaten erhalten hat, und den Inhalt der Push-Nachrichten entsprechend dem Entwicklungsinterface-Ereignisbenachrichtigungsprotokoll parsen, nachdem Nachrichten vom Gateway empfangen wurden. Es ist zu beachten, dass das Gateway derzeit das HTTP1.1-Protokoll verwendet, sodass im Browser maximal nicht mehr als 6 Verbindungen für SSE erlaubt sind (spezifische Hinweise finden Sie in der MDN EventSource-Schnittstellenbeschreibung).
5.2 Gemeinsames 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 gibt einen Authentifizierungsfehler zurück, 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. Ereignis Gerät hinzufügen
:::tips Modulname:device Version:v2 Nachrichtentyp:addDevice event.data Parameter: :::
payload
ResponseDeviceObjectObject - Schnittstelle identisch mit der 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
Objekt。 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 Geräte, die über offene Schnittstellen verbunden sind, ist dieses Feld erforderlich.
Beispiel:
c. Ereignis Geräteinfo aktualisieren
:::tips Modulname:device Version:v2 Nachrichtentyp:updateDeviceInfo event.data Parameter: :::
endpoint
EndpointObject
N
Geräteinformationen
payload
DeviceChangeObject
N
Geräteänderungsdaten
EndpointObject:
serial_number
string
N
Eindeutige Seriennummer des Geräts
third_serial_number
string
Y
Die eindeutige Seriennummer des Drittanbietergeräts. Für Geräte, die über offene Schnittstellen verbunden sind, 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 Geräte, die über offene Schnittstellen verbunden sind, ist dieses Feld erforderlich.
Beispiel:
e. Ereignis Geräte-Online aktualisieren
:::tips Modulname:device Version:v2 Nachrichtentyp:updateDeviceOnline event.data Parameter: :::
endpoint
EndpointObject
N
Geräteinformationen
payload
DeviceChangeObject
N
Geräteänderungsdaten
EndpointObject:
serial_number
string
N
Eindeutige Seriennummer des Geräts
third_serial_number
string
Y
Die eindeutige Seriennummer des Drittanbietergeräts. Für Geräte, die über offene Schnittstellen verbunden sind, ist dieses Feld erforderlich.
DeviceChangeObject
online
boolean
N
Geräte-Online-Status
Beispiel:
5.4 Gateway-Modul
a. Ereignis Sicherheitsstatus-Aktualisierung
:::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. Ereignis Armzustand-Aktualisierung
:::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| Entwaffnet | | 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 Anbieter des TTS-Dienst-Engines 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 weist innerhalb des Gateways eine TTS-Engine-Service-ID zu.

6.1.2 Abrufen der Liste der synthetisierten Audiodateien
【Gateway Open API Client】Ruft die Schnittstelle auf, um die Liste der registrierten TTS-Engine-Dienste zu erhalten. Sie können die aktuell 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 Audiodateien einer angegebenen TTS-Engine zu erhalten. Das Gateway sendet eine synchrone Audio-Listen-Anweisung 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 aktuell 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 Audiodateien einer angegebenen TTS-Engine zu erhalten. Das Gateway sendet eine synchrone Audio-Listen-Anweisung 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 aktuell 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 Audiodateien einer angegebenen TTS-Engine zu erhalten. Das Gateway sendet eine synchrone Audio-Listen-Anweisung an den angegebenen TTS-Dienstanbieter und gibt das Ergebnis zurück. (einschließlich der TTS-Audiodatei-Adresse)
【Gateway Open API Client】Speichert die TTS-Audiodatei-Adresse aus dem in den vorherigen Schritten zurückgegebenen Ergebnis, ruft die Schnittstelle zum Abspielen der Audiodatei auf und spielt diese über das Gateway ab.
6.2 TTS-Engine-Modul
6.2.1 Gateway-öffentliche Funktionen
a. Abrufen der Liste der registrierten TTS-Engine-Dienste
:::tips
URL:
/open-api/V2/rest/tts/enginesMethode:
GETHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter: 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 TTS-Engine-Dienstes
:::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentität wurde verifiziert. **Statuscode: **200 OK Antwortbeispiel:: :::
b. Liste der Audiodateien einer angegebenen TTS-Engine abrufen
:::tips
URL:
/open-api/V2/rest/tts/engine/{id}/audio-listMethode:
GETHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter: 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
Bezeichnung der Audiodatei
:::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentität wurde verifiziert. **Statuscode: **200 OK **Fehlercode: **
190000 Die Engine läuft nicht normal
Antwortbeispiel:: :::
c. Sprachsynthese mit der angegebenen TTS-Engine durchführen
:::tips
URL:
/open-api/V2/rest/tts/engine/{id}/synthesizeMethode:
POSTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
text
string
N
Text, der zur Synthese des Audios verwendet wird
label
string
Y
Bezeichnung der Audiodatei
language
string
Y
Transparentes Feld. Optionaler Sprachcode für die Syntheseanforderung. Die genaue 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. Das bedeutet, dass bei Nichtübermittlung der Sprache 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
Bezeichnung der Audiodatei
:::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentität wurde verifiziert. **Statuscode: **200 OK **Fehlercode: **
190000 Die Engine läuft nicht normal
Antwortbeispiel:: :::
6.2.2 Kommunikation zwischen Gateway und TTS-Dienst
a. Registrierung des TTS-Engine-Dienstes
Anforderung an das Gateway senden durch den TTS-Dienstanbieter
:::tips
URL:
/open-api/V2/rest/thirdparty/eventMethode:
POSTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
event
EventObject
N
Strukturinformation des Request-Event-Objekts
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
Anfragename. Optionaler Parameter.
RegisterTTSEngine | | message_id | string | N | Anfrage-Nachrichten-ID, UUID_V4 | | version | string | N | Versionsnummer des Anfrageprotokolls. Derzeit fest auf 1 gesetzt |
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
Name des Antwort-Headers. Optionaler Parameter:
Antwort (Erfolgreiche Antwort)
ErrorResponse (Fehlerantwort) | | message_id | string | N | Antwort-Header Nachrichten-ID, UUID_V4. Eingehende Anfrage-Nachricht hier: header.message_id | | version | string | N | Versionsnummer des Anfrageprotokolls. Derzeit fest auf 1 gesetzt |
PayloadObject
Attribut
Typ
Optional
Beschreibung
engine_id
string
N
Vom Gateway zugewiesene Engine-ID
:::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentität wurde verifiziert. **Statuscode: **200 OK Antwortbeispiel:: ::: Korrektes Antwortbeispiel:
**Abnormale Antwortparameter: **
Attribut
Typ
Optional
Beschreibung
type
string
N
Fehlertyp
INVALID_PARAMETERS (Parameterfehler)
AUTH_FAILURE (Authentifizierungsfehler)
INTERNAL_ERROR (Interner Dienstfehler) | | description | string | N | Fehlerbeschreibung |
Fehlerantwort-Beispiel:
b. Synchronisieren des Audiolisten-Befehls
Befehl an den TTS-Dienstanbieter senden durch das Gateway.
:::tips
URL:
<service address>Methode:
POSTHeader:
Content-Type: application/json ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
directive
DirectiveObject
N
Strukturinformation des Instruktionsobjekts
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
Anfragename. Optionaler Parameter:
SyncTTSAudioList | | message_id | string | N | Anfrage-Nachrichten-ID, UUID_V4 | | version | string | N | Versionsnummer des Anfrageprotokolls. Derzeit fest auf 1 gesetzt |
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
Name des Antwort-Headers. Optionaler Parameter:
Antwort (Erfolgreiche Antwort)
ErrorResponse (Fehlerantwort) | | message_id | string | N | Antwort-Header Nachrichten-ID, UUID_V4. Eingehende Anfrage-Nachricht hier: header.message_id | | version | string | N | Versionsnummer des Anfrageprotokolls. Derzeit fest auf 1 gesetzt |
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
Bezeichnung der Audiodatei
:::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentität wurde verifiziert. **Statuscode: **200 OK Antwortbeispiel:: ::: Korrektes Antwortbeispiel:
**Abnormale Antwortparameter: **
Attribut
Typ
Optional
Beschreibung
type
string
N
Fehlertyp
INVALID_PARAMETERS (Parameterfehler)
AUTH_FAILURE (Authentifizierungsfehler)
INTERNAL_ERROR (Interner Dienstfehler) | | description | string | N | Fehlerbeschreibung |
Fehlerantwort-Beispiel:
c. Sprachsynthese-Befehl
Befehl an den TTS-Dienstanbieter senden durch das Gateway.
:::tips
URL:
<service address>Methode:
POSTHeader:
Content-Type: application/json ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
directive
DirectiveObject
N
Strukturinformation des Instruktionsobjekts
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
Anfragename. Optionaler Parameter:
SynthesizeSpeech | | message_id | string | N | Anfrage-Nachrichten-ID: UUID_V4 | | version | string | N | Versionsnummer des Anfrageprotokolls. Derzeit fest auf 1 gesetzt |
PayloadObject
Attribut
Typ
Optional
Beschreibung
text
string
N
Text, der zur Synthese des Audios verwendet wird
label
string
Y
Bezeichnung der Audiodatei
language
string
Y
Transparentes Feld. Optionaler Sprachcode für die Syntheseanforderung. Die genaue 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. Das bedeutet, dass bei Nichtübermittlung der Sprache 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
Name des Antwort-Headers. Optionaler Parameter:
Antwort (Erfolgreiche Antwort)
ErrorResponse (Fehlerantwort) | | message_id | string | N | Antwort-Header Nachrichten-ID, UUID_V4. Eingehende Anfrage-Nachricht hier: header.message_id | | version | string | N | Versionsnummer des Anfrageprotokolls. Derzeit fest auf 1 gesetzt |
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
Bezeichnung der Audiodatei
:::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentität wurde verifiziert. **Statuscode: **200 OK Antwortbeispiel:: ::: Korrektes Antwortbeispiel:
**Abnormale Antwortparameter: **
Attribut
Typ
Optional
Beschreibung
type
string
N
Fehlertyp
INVALID_PARAMETERS (Parameterfehler)
AUTH_FAILURE (Authentifizierungsfehler)
INTERNAL_ERROR (Interner Dienstfehler) | | description | string | N | Fehlerbeschreibung |
Fehlerantwort-Beispiel:
7. Multimedia-Modul
7.1 Audiodatei abspielen
:::tips
URL:
/open-api/V2/rest/media/audio-playerMethode:
POSTHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
audio_url
string
N
Audio-URL-Adresse
Korrekte Datenantwort: :::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentität wurde verifiziert. **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 anzuzeigenden Inhalts angeben. Die UI-Karte passt automatisch ihre Breite und Höhe an, und der Inhalt wird mithilfe eines 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 Kartenresource-URL) und weist eine interne UI-Karten-ID innerhalb des Gateways zu.

8.1.2 Abrufen der UI-Karten-Liste
[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 Resource-URL.
[Gateway-Server]: Nach erfolgreicher Änderung speichert das Gateway die aktualisierten UI-Karten-Informationen, einschließlich der neuen Größenkonfiguration und der Resource-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 im Zusammenhang mit der angegebenen UI-Karte.

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 ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
label
string
Y
Kartenbezeichnung: Wird verwendet, um die Karte zu beschreiben. Sie ist das Alias der Karte.
cast_settings
CastSettingsObject
Y
Einstellungen für Cast-Karten: Konfigurationsoptionen für Cast-Karten.
web_settings
WebSettingsObject
N
Einstellungen für Web-Karten: Konfigurationsoptionen 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 ID der UI-Karte
:::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentitätsprüfung wurde bestanden. **Statuscode: ** 200 OK ::: 请求示例:
Antwortbeispiel:
8.2.2 Abrufen der UI-Karten-Liste
:::tips
URL:
/open-api/v2/rest/ui/cardsMethode:
GETHeader:
Content-Type: application/json
Authorization: Bearer ::: Anfrageparameter: Keine Antwortparameter:
Attribut
Typ
Optional
Beschreibung
data
CardObject[]
N
Liste der UI-Karten
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. Sie ist das Alias der Karte.
web_settings
WebSettingsObject
N
Einstellungen für Cast-Karten: Konfigurationsoptionen für Cast-Karten.
app_name
string
Y
Einstellungen für Web-Karten: Konfigurationsoptionen 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 Spezifikation 2x2. Die 2x2-Spezifikation wird nicht wirksam. |
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 vorhandenen 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 ::: Anfrageparameter:
Attribut
Typ
Optional
Beschreibung
label
string
Y
Wird verwendet, um die Karte zu beschreiben. Sie ist das Alias der Karte.
cast_settings
CastSettingsObject
Y
Einstellungen für Cast-Karten
web_settings
WebSettingsObject
Y
Einstellungen für Web-Karten
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 Anfrageparameter sind legal und die Benutzeridentität wurde verifiziert. Die zu ändernde UI-Karte muss vom Anbieter der benutzerdefinierten UI-Karte erstellt worden sein, der die Schnittstelle aufruft. **Statuscode: ** 200 OK Fehlercode:
406: Keine Berechtigung für den Zugriff auf diese Ressource ::: **Antwortbeispiel: **
**Anfragebeispiel: **
8.2.4 Löschen einer benutzerdefinierten UI-Karte
Autorisierte Benutzer dürfen eine vorhandene 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 ::: Anfrageparameter: Keine Erfolgreiche Datenantwort: :::tips Bedingungen: Die Anfrageparameter sind legal und die Benutzeridentität wurde verifiziert. Die zu ändernde UI-Karte muss vom Anbieter der benutzerdefinierten UI-Karte erstellt worden sein, der die Schnittstelle aufruft. **Statuscode: **
200 OKFehlercode:
406: Keine Berechtigung für den Zugriff auf diese Ressource. ::: **Antwortbeispiel: **
Zuletzt aktualisiert