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.

  1. Melden Sie sich bei Ihrem WLAN-Router an und prüfen Sie die IP-Adresse des Gateways im DHCP.

  2. 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.

Attribut
Typ
Optional
Beschreibung

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:

  1. Bit 0: Erlaubt das Anzeigen dieses Konfigurationselements

  2. 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:

  1. Wenn **type = enum**:

    • Das value Feld (das den Wert des Konfigurationselements beschreibt) ist erforderlich, wenn permission Änderung erlaubt ("10" oder "11").

    • Das default (das den Standardwert des Konfigurationselements beschreibt) und values (die die auswählbaren Werte für das Konfigurationselement beschreiben) Felder optional sind.

  2. Wenn **type = numeric**:

    • Das value Feld ist erforderlich, wenn permission Ä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)

  3. Wenn **type = object**:

    • Das value Feld ist erforderlich, wenn permission Änderung erlaubt ("10" oder "11").

    • Das default Feld ist optional.

  4. Wenn **type = boolean**:

    • Das value Feld ist erforderlich, wenn permission Änderung erlaubt ("10" oder "11").

    • Das default Feld ist optional.

  5. Wenn **type = string**:

    • Das value Feld ist erforderlich, wenn permission Änderung erlaubt ("10" oder "11").

    • Das default Feld ist optional. |

3.Web-API

Datentyp

Typ
Beschreibung

string

String-Datentyp. UTF8-kodiert.

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

Attribut
Typ
Optional
Beschreibung

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

Typ
Beschreibung

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_token

  • MethodeGET

  • Header

    • 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/runtime

  • MethodeGET

  • Header

    • 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/config

  • MethodePUT

  • Header

    • 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/bridge

  • MethodeGET

  • Header

    • 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/mute

  • MethodePUT

  • Header

    • 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/unmute

  • MethodePUT

  • Header

    • 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_alarm

  • MethodePUT

  • Header

    • 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/reboot

  • MethodePOST

  • Header

    • 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/speaker

  • MethodePOST

  • Header

    • 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

**Modusnamen **
**Optionale Werte **

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>

Beispiel:rtsp://admin:[email protected]:554/streaming/channel01

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

  1. Fehler beim Zugriff auf den Kamera-Stream (Formatfehler, Autorisierungsfehler, Netzwerkfehler usw.)

  2. Gerät existiert bereits

  3. 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}

  • MethodeDELETE

  • Header

    • 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/security

  • MethodeGET

  • Header

    • 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}/enable

  • MethodePUT

  • Header

    • 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}/disable

  • MethodePUT

  • Header

    • 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/enable

  • MethodePUT

  • Header

    • 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/disable

  • MethodePUT

  • Header

    • 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

1.0.jpg

Zugriff für Drittanbieter-Gateway

2.0.jpg

Zugriffsschritte

  1. Bestimmen Sie die Klassifizierung des Geräts im Gateway. Details siehe [Supported Device Type].

  2. Bestimmen Sie die Fähigkeiten, auf die das Gerät zugreifen kann. Details siehe [Supported Device Capabilities].

  3. Rufen Sie die Schnittstelle [Discovery Request] auf, um das Gerät zum Gateway hinzuzufügen.

    1. 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.

  4. 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.

  5. 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

3.0.jpg

b. Drittanbieter-Gateway-Zugang

4.0.jpg

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

service_address

string

N

Dienstadresse. Zum Beispiel http://192.168.31.14/service_address

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:

  1. Die Drittparteien müssen innerhalb von 3 s auf die Anfrage des Gateways antworten. Andernfalls wird das Gateway die Befehlsverarbeitung als abgelaufen einstufen.

  2. 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

  • MethodeGET ::: Anfrageparameter:

Name
Typ
Optional
Beschreibung

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: :::

Name
Typ
Optional
Beschreibung

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: :::

Name
Typ
Optional
Beschreibung

endpoint

EndpointObject

N

Geräteinformationen

payload

object。 Struktur identisch mit dem Gerätezustand

N

Gerätestatusdaten

EndpointObject:

Parameter
Typ
Optional
Beschreibung

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: :::

Name
Typ
Optional
Beschreibung

endpoint

EndpointObject

N

Geräteinformationen

payload

DeviceChangeObject

N

Daten der Geräteänderung

EndpointObject:

Attribut
Typ
Optional
Beschreibung

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
Typ
Optional
Beschreibung

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: :::

** Name **
** Typ **
** Optional**
** Beschreibung **

endpoint

EndpointObject

N

Geräteinformationen

EndpointObject:

Attribut
Typ
Optional
Beschreibung

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: :::

Name
Typ
Optional
Beschreibung

endpoint

EndpointObject

N

Geräteinformationen

payload

DeviceChangeObject

N

Daten der Geräteänderung

EndpointObject:

Attribut
Typ
Optional
Beschreibung

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
Typ
Optional
Beschreibung

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 | Bewaffnet

  • disarming | 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 | Bewaffnet

  • disarming | 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

  1. 【TTS-Dienstanbieter】Ruft die Schnittstelle auf, um die TTS-Engine am Gateway zu registrieren.

  2. 【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.

image.png

6.1.2 Abrufen der Liste synthetisierter Audios

  1. 【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).

  2. 【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.

image.png

6.1.3 Sprachsynthese durch Angabe einer Sprach-Engine

  1. 【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).

  2. 【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.

image.png

6.1.4 Audio synthetisieren und TTS-Sprachwiedergabe.

  1. 【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).

  2. 【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)

  3. 【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/engines

  • MethodeGET

  • Header

    • 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-list

  • MethodeGET

  • Header

    • 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}/synthesize

  • MethodePOST

  • Header

    • 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/event

  • MethodePOST

  • Header

    • 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>

  • MethodePOST

  • Header

    • 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>

  • MethodePOST

  • Header

    • 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-player

  • MethodePOST

  • Header

    • 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.

image.png

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.

image.png

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.

image.png

8.1.4 Löschen einer benutzerdefinierten UI-Karte

  1. [UI-Dienstanbieter]: Ruft die API auf, um eine angegebene benutzerdefinierte UI-Karte zu löschen.

  2. [Gateway-Server]: Das Gateway entfernt alle Informationen, die sich auf die angegebene UI-Karte beziehen.

image.png

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/cards

  • MethodePOST

  • Header

    • 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/cards

  • MethodeGET

  • Header

    • 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}

  • MethodePUT

  • Header

    • 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 used oder src muss 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}

  • MethodeDELETE

  • Header

    • 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 OK Fehlercode:

  • 406: Keine Berechtigung zum Zugriff auf diese Ressource. ::: **Antwortbeispiel: **

Zuletzt aktualisiert