Dla deweloperów i przewodnik po API

1. Rozpoczęcie użytkowania

1.1 Przygotowanie

Krok 1. Upewnij się, że bramka jest włączona i działa prawidłowo.

Krok 2. Upewnij się, że bramka i komputer są podłączone do tej samej sieci LAN. Następnie wpisz URL CUBE w przeglądarce.

Uwaga: Jeśli masz kilka bramek, możesz uzyskać odpowiedni adres IP, aby uzyskać dostęp do określonej bramki na dwa poniższe sposoby.

  1. Zaloguj się do swojego routera bezprzewodowego i sprawdź adres IP bramki w DHCP.

  2. CUBE obsługuje lokalne wykrywanie za pomocą mDNS.

1.2 Rozpocznij

  • Wywołaj interfejs [Access Token], i otrzymasz odpowiedź o błędzie, z komunikatem wzywającym do kliknięcia <Gotowe>. Zauważ, że po naciśnięciu dostęp do interfejsu jest ważny nie dłużej niż 5 minut.

// Żądanie
curl --location --request GET 'http://<adres ip>/open-api/V2/rest/bridge/access_token' --header 'Content-Type: application/json'

// Odpowiedź
{
  "error": 401,
  "data": {},
  "message": "link button not pressed" 
}
  • Kliknij <Gotowe> i ponownie wywołaj interfejs [Access Token]. Odpowiedź jest pomyślna i token zostaje uzyskany.

  • Zweryfikuj token. Wywołaj interfejs [Get Device List]. Odpowiedź jest pomyślna i lista urządzeń zostaje pobrana.

  • Metoda uzyskania tokena dostępu do CUBE: Po wywołaniu interfejsu [Access Token], na stronie konsoli WWW CUBE pojawi się globalne okno wyskakujące, które wzywa użytkownika do potwierdzenia uzyskania poświadczeń wywołania interfejsu.

  • Uwaga: Jeśli otworzysz więcej niż jedną stronę konsoli WWW CUBE, okno potwierdzenia pojawi się na wielu stronach konsoli jednocześnie, a okno wyskakujące na innych stronach zostanie zamknięte po potwierdzeniu na jednej ze stron konsoli.

2. Główna koncepcja

2.1 Adres interfejsu deweloperskiego

Interfejs Web API bramki ma dwa sposoby dostępu (na podstawie IP lub nazwy domeny), zwykle ścieżka główna to /open-api/V2/rest/< specific function module >

// Dostęp przez IP http:///open-api/V2/rest/bridge

// Dostęp przez nazwę domeny http:///open-api/V2/rest/bridge

2.2 Kategoria wyświetlania urządzenia i możliwości

  • **Kategoria wyświetlania urządzenia (DisplayCategory).** Kategoria wyświetlania urządzenia służy do identyfikacji określonych kategorii (urządzeń), takich jak switch, plug, light itp. Informacja ta określi efekt wyświetlania UI urządzenia w bramce.

  • **Możliwość urządzenia.** Możliwość urządzenia służy do opisu konkretnych podfunkcji urządzenia. Na przykład sterowanie zasilaniem, sterowanie jasnością, sterowanie temperaturą barwową itd. Pojedyncze urządzenie może obsługiwać 1 lub więcej możliwości.

    • zdolność: Opisuje nazwę możliwości, która musi być globalnie unikalna i typu string. Wiele angielskich słów powinno być oddzielonych myślnikami ("-"). Na przykład: "thermostat-target-setpoint".

    • nazwa: Opisuje kategorię pod możliwością, również typu string. Wiele angielskich słów powinno być oddzielonych myślnikami ("-"). Na przykład: "auto-mode", "manual-mode".

    • uprawnienie: Opisuje uprawnienia związane z możliwością. Typ to string, sformatowany w postaci kodu binarnego 8421. Przykłady obejmują:

      • Urządzenie możliwe do sterowania: "1000"

      • Urządzenie możliwe do skonfigurowania: "0010"

      • Urządzenie możliwe do sterowania i konfigurowania: "1010"

      • Urządzenie możliwe do sterowania i raportowania: "1100"

Znaczenie każdego bitu, od prawej do lewej, jest następujące: ⅰ. Bit 0: Pozwala na zapytanie urządzenia ⅱ. Bit 1: Pozwala na konfigurację urządzenia ⅲ. Bit 2: Pozwala urządzeniu na raportowanie danych ⅳ. Bit 3: Pozwala na sterowanie urządzeniem

ustawienia: Opisuje elementy konfiguracji dla możliwości, które są typu obiekt i zawierają opis każdego elementu konfiguracji. ⅰ. klucz: Opisuje nazwę elementu konfiguracji, która jest typu string. Wiele angielskich słów powinno być wyrażone w camelCase. Na przykład: "temperatureUnit". ⅱ. wartość: Opisuje zawartość elementu konfiguracji. Konkretne specyfikacje są szczegółowo opisane w tabeli poniżej.

Atrybut
Typ
Opcjonalne
Opis

uprawnienie

string

N

Opisuje uprawnienia dla elementu konfiguracji.

Dostępne opcje:

  • Pozwól na modyfikację tego elementu konfiguracji: "10"

  • Pozwól na przeglądanie tego elementu konfiguracji: "01"

  • Pozwól zarówno na modyfikację, jak i przeglądanie tego elementu konfiguracji: "11"

Wyjaśnienie bitów:

  1. Bit 0: Pozwala na przeglądanie tego elementu konfiguracji

  2. Bit 1: Pozwala na modyfikację tego elementu konfiguracji | | typ | string | N | Opisuje typ danych wartości elementu konfiguracji. Dostępne opcje:

  • "enum"

  • "numeric"

  • "object"

  • "boolean"

  • "string"

Wytyczne specyficzne dla typów:

  1. Kiedy **type = enum**:

    • Z wartość pole (opisujące wartość elementu konfiguracji) jest wymagane jeśli uprawnienie pozwala na modyfikację ("10" lub "11").

    • Z domyślny (opisujący wartość domyślną elementu konfiguracji) oraz wartości (opisujące dostępne wartości dla elementu konfiguracji) pola są opcjonalne.

  2. Kiedy **type = numeric**:

    • Z wartość pole jest wymagane jeśli uprawnienie pozwala na modyfikację ("10" lub "11").

    • Następujące pola są opcjonalne:

      • min (opisujące minimalną wartość elementu konfiguracji)

      • max (opisujące maksymalną wartość elementu konfiguracji)

      • krok (opisujące wartość kroku dla elementu konfiguracji)

      • dokładność (opisujące precyzję)

      • jednostka (opisujące jednostkę elementu konfiguracji)

      • domyślny (opisujące wartość domyślną)

  3. Kiedy **type = object**:

    • Z wartość pole jest wymagane jeśli uprawnienie pozwala na modyfikację ("10" lub "11").

    • Z domyślny pole jest opcjonalne.

  4. Kiedy **type = boolean**:

    • Z wartość pole jest wymagane jeśli uprawnienie pozwala na modyfikację ("10" lub "11").

    • Z domyślny pole jest opcjonalne.

  5. Kiedy **type = string**:

    • Z wartość pole jest wymagane jeśli uprawnienie pozwala na modyfikację ("10" lub "11").

    • Z domyślny pole jest opcjonalne. |

3. Web API

Typ danych

Typ
Opis

string

Typ danych string. Kodowanie UTF8.

int

Typ danych całkowitych.

object

Typ danych obiekt. Obiekt zgodny z JSON

string[]

Tablica stringów

int[]

Tablica liczb całkowitych

object[]

Tablica obiektów

bool

Wartość logiczna

date

Ciąg czasu. Ciąg w formacie ISO (ISO 8601 Extended Format): YYYY-MM-DDTHH:mm:ss.sssZ. Strefa czasowa jest zawsze UTC (Uniwersalny Czas Koordynowany), oznaczona sufiksem "Z".

Ogólne wyniki odpowiedzi

Atrybut
Typ
Opcjonalne
Opis

error

int

N

Kod błędu:

0: Sukces

400: Błąd parametru

401: Uwierzytelnianie nie powiodło się

500: Wyjątek serwera

data

object

N

Treść danych odpowiedzi

message

string

N

Opis odpowiedzi:

Gdy error jest równy 0, zawartość to success

Gdy error jest różny od 0, jest to niepusty ciąg znaków i zawiera opis błędu.

Przykład odpowiedzi:

Lista zasobów

Typ
Opis

Obsługiwane dźwięki

- alert1 (Dźwięk alarmu 1)

  • alert2 (Dźwięk alarmu 2)

  • alert3 (Dźwięk alarmu 3)

  • alert4 (Dźwięk alarmu 4)

  • alert5 (Dźwięk alarmu 5)

  • doorbell1 (Dźwięk dzwonka 1)

  • doorbell2 (Dźwięk dzwonka 2)

  • doorbell3 (Dźwięk dzwonka 3)

  • doorbell4 (Dźwięk dzwonka 4)

  • doorbell5 (Dźwięk dzwonka 5)

  • alarm1 (Dźwięk alarmu 1)

  • alarm2 (Dźwięk alarmu 2)

  • alarm3 (Dźwięk alarmu 3)

  • alarm4 (Dźwięk alarmu 4)

  • alarm5 (Dźwięk alarmu 5) | | Obsługiwane deep | - bootComplete (Uruchamianie systemu zakończone)

  • networkConnected (Sieć połączona)

  • networkDisconnected (Sieć rozłączona)

  • systemShutdown (Zamknięcie systemu) -deviceDiscovered (Wykryto urządzenie)

  • system Armed (System uzbrojony/aktywowany)

  • system Disarmed (System rozbrojony/dezaktywowany)

  • factoryReset (Reset urządzenia) |

3.1 Funkcja bramki

a. Token dostępu

Pozwól użytkownikom uzyskać token dostępu.

  • Uwaga: Token zostanie wyczyszczony po zresetowaniu urządzenia.

  • Uwaga: Po uzyskaniu tokena musisz ponownie nacisnąć przycisk, aby pomyślnie uzyskać nowy token.

:::porady

  • URL/open-api/V2/rest/bridge/access_token

  • MetodaGET

  • Nagłówek

    • Content-Type: application/json ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

app_name

string

Y

Opis nazwy aplikacji.

Pomyślna odpowiedź z danymi:

Atrybut

Typ

Opcjonalne

Opis

token

string

N

Token dostępu do interfejsu. Jest ważny długo, proszę zapisać

app_name

string

Y

Opis nazwy aplikacji.

:::porady Warunek : Użytkownik wyzwala < command key > i uzyskuje dostęp do tego interfejsu w czasie ważności. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

Niepowodzenie odpowiedzi danych:pusty obiekt :::porady Warunki:Użytkownik nie wyzwolił < command key >, lub czas ważności wygasł. **Kod stanu: ** 200 OK ::: Przykład odpowiedzi:

b. Pobierz stan bramki

Pozwól autoryzowanym użytkownikom uzyskać status bramki przez ten interfejs :::porady

  • URL/open-api/V2/rest/bridge/runtime

  • MetodaGET

  • Nagłówek

    • Content-Type: application/json

    • Autorization: Bearer ::: Parametry żądania: brak Pomyślna odpowiedź z danymi:

Atrybut

Typ

Opcjonalne

Opis

ram_used

int

N

Procent użycia pamięci RAM.[0-100]

cpu_used

int

N

Procent użycia CPU. [0-100]

power_up_time

date

N

Ostatni czas włączenia zasilania

cpu_temp

int

N

Temperatura CPU:

Jednostka: Celsjusz

cpu_temp_unit

string

N

Jednostka temperatury CPU:

Opcjonalne

wartości:'c', 'f'

sd_card_used

int

Y

Użycie karty SD (procent):

Zakres:[0-100] z dokładnością do jednego miejsca po przecinku

*Uwaga: Jeśli karta SD nie jest włożona lub nie jest sformatowana, wartość jest pusta.

:::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

c. Konfiguracja bramki

Pozwala autoryzowanym użytkownikom ustawić bramkę przez ten interfejs :::porady

  • URL/open-api/V2/rest/bridge/config

  • MetodaPUT

  • Nagłówek

    • Content-Type: application/json

    • Autorization: Bearer ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

volume

int

Y

Głośność systemu. [0-100]

Pomyślna odpowiedź z danymi: pusty obiekt {} :::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

d. Pobierz informacje o bramce

Pozwól autoryzowanym użytkownikom uzyskać informacje o bramce przez ten interfejs :::porady

  • URL/open-api/V2/rest/bridge

  • MetodaGET

  • Nagłówek

    • Content-Type: application/json ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

ip

string

N

adres ip

mac

string

N

adres mac

domain

string

Y

Domena usługi bramki

fw_version

string

N

Wersja firmware

name

string

N

Nazwa urządzenia

Pomyślna odpowiedź z danymi: pusty obiekt {} :::porady Warunki: Brak **Kod stanu: **200 OK ::: Przykład odpowiedzi:

e. Wyciszenie bramki

Pozwala autoryzowanym użytkownikom wyciszyć bramkę przez ten interfejs. :::porady

  • URL/open-api/v2/rest/bridge/mute

  • MetodaPUT

  • Nagłówek

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametry żądania: brak Pomyślna odpowiedź z danymi: pusty obiekt {} :::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

f. Wyłączenie wyciszenia bramki

Pozwala autoryzowanym użytkownikom wyłączyć wyciszenie bramki przez ten interfejs. :::porady

  • URL/open-api/v2/rest/bridge/unmute

  • MetodaPUT

  • Nagłówek

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametry żądania: brak Pomyślna odpowiedź z danymi: pusty obiekt {} :::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

g. Anuluj alarm bramki

Pozwala autoryzowanym użytkownikom wyłączyć stan dźwięku alarmu na bramce przez ten interfejs. :::porady

  • URL/open-api/v2/rest/bridge/cancel_alarm

  • MetodaPUT

  • Nagłówek

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametry żądania: brak Pomyślna odpowiedź z danymi: pusty obiekt {} :::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

3.2 Funkcje sprzętowe

a. Restart bramki

Pozwala autoryzowanemu użytkownikowi zrestartować bramkę przez ten interfejs :::porady

  • URL/open-api/V2/rest/hardware/reboot

  • MetodaPOST

  • Nagłówek

    • Content-Type: application/json

    • Autorization: Bearer ::: Parametry żądania: brak Pomyślna odpowiedź z danymi: pusty obiekt {} :::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK :::

b. Sterowanie głośnikiem

Pozwala autoryzowanym użytkownikom sterować głośnikiem przez ten interfejs :::porady

  • URL/open-api/V2/rest/hardware/speaker

  • MetodaPOST

  • Nagłówek

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

type

string

N

Opcjonalne parametry: 1.play_sound (odtwórz dźwięk) 2.play_beep (odtwórz pik)

sound

SoundObject

Y (N jeśli type to play_sound.)

Dźwięk.

beep

BeepObject

Y (N jeśli type to play_beep.)

Pik

SoundObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa dźwięku. Obsługiwane wartości można sprawdzić w [Resource List - Supported sound]

volume

int

N

Głośność dźwięku. [0-100]

countdown

int

N

Czas trwania odtwarzania dźwięku przez głośnik; odtwarzanie zatrzyma się automatycznie po upływie czasu. Jednostka: sekunda. [0,1799]

BeepObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa deep. Obsługiwane wartości można sprawdzić w [Resource List - Supported deep]

volume

int

N

Głośność deep. [0-100]

Pomyślna odpowiedź z danymi: pusty obiekt {} :::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: ** 200 OK ::: Przykład odpowiedzi:

3.3 Funkcje zarządzania urządzeniami

a. Obsługiwane typy urządzeń

Typ urządzenia

Wartość

Wersja iHost

Gniazdko

plug

≥ 2.1.0

Włącznik

switch

≥ 2.1.0

Światło

light

≥ 2.1.0

Zasłona

curtain

≥ 2.1.0

Czujnik drzwi/okien

contactSensor

≥ 2.1.0

Czujnik ruchu

motionSensor

≥ 2.1.0

Czujnik temperatury

temperatureSensor

≥ 2.1.0

Czujnik wilgotności

humiditySensor

≥ 2.1.0

Czujnik temperatury i wilgotności

temperatureAndHumiditySensor

≥ 2.1.0

Detektor wycieku wody

waterLeakDetector

≥ 2.1.0

Detektor dymu

smokeDetector

≥ 2.1.0

Przycisk bezprzewodowy

button

≥ 2.1.0

Kamera

camera

≥ 2.1.0

Ogólny czujnik

sensor

≥ 2.1.0

Ogólny czujnik

sensor

≥ 2.1.0

Wentylator ze światłem

fanLight

≥ 2.1.0

Klimatyzator

airConditioner

≥ 2.1.0

Wentylator

fan

≥ 2.1.0

Termostat

thermostat

≥ 2.1.0

b. Obsługiwane możliwości urządzeń

Przełącznik zasilania (power):

Przykład deklaracji zdolności:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterowania):

Włącz:

Wyłącz:

Przełączanie kanału (toggle):

Przykład deklaracji zdolności:

Przykład pojedynczego elementu:

Przykład wielu komponentów:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterowania):

Format przełączania:

Inching kanału (toggle-inching):

Przykład deklaracji zdolności:

Atrybut stanu

Brak

Protokół (zapytanie o status i instrukcje sterowania)

Brak

Regulacja jasności (brightness):

Przykład deklaracji zdolności:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterowania):

Ustaw jasność na 80%. (0 = najciemniej, 100 = najjaśniej.)

Regulacja temperatury barwowej (color-temperature):

Przykład deklaracji zdolności:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterowania):

Dostosuj temperaturę barwową do 50%:

Regulacja koloru (color-rgb):

Przykład deklaracji zdolności:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterowania):

Ustaw kolor na purpurowy:

Regulacja procentowa (percentage):

Przykład deklaracji zdolności:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterowania):

Dostosuj do 40%:

Sterowanie silnikiem (motor-control):

Przykład deklaracji zdolności:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterowania):

Otwórz silnik:

Odwrócenie kierunku silnika (motor-reverse):

Przykład deklaracji zdolności:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterowania):

Ustaw silnik na pracę do przodu:

Kalibracja silnika (motor-clb)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (raportowanie statusu):

Zgłoś, że silnik jest kalibrowany:

Stan włączenia zasilania (startup)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Ustaw stan zasilania na zawsze włączony:


Aktywacja budzenia (identify)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (raportowanie statusu i instrukcje sterowania):

Ustaw czas aktywacji budzenia:

Zgłoś status aktywacji:

Przełącznik statystyk zużycia energii w czasie rzeczywistym (power-consumption)

Przykład deklaracji zdolności:

Atrybuty (stan):

Rozpocznij/Zatrzymaj statystyki w czasie rzeczywistym:

Zapytaj o zużycie energii w przedziale czasowym:

Odpowiedz wynikiem statystyk w zadanym przedziale czasowym:

Protokół (raportowanie statusu i instrukcje sterowania):

Rozpocznij statystyki czasu rzeczywistego:

Zatrzymaj statystyki czasu rzeczywistego:

Pobierz historyczne zużycie energii:

Pobierz zużycie energii w czasie rzeczywistym:

Wykrywanie trybu temperatury i wilgotności (thermostat-mode-detect)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Format:

Przykład:

Tryb termostatu (thermostat-mode)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Status adaptacyjnego odzyskiwania termostatu (thermostat/adaptive-recovery-status)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Ustawienie docelowej temperatury trybu termostatu (thermostat-target-setpoint)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie czujników (detect)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie temperatury (temperature)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie wilgotności (humidity)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie stanu baterii (battery)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie pojedynczego przycisku (press)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie wielokrotnego naciśnięcia (multi-press)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie siły sygnału (rssi)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie manipulacji (tamper-alert)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie poziomu oświetlenia (illumination-level)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie napięcia (voltage)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie prądu elektrycznego (electric-current)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie mocy elektrycznej (electric-power)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie błędów (fault)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Przełącznik progowy (threshold-breaker)

Przykład deklaracji zdolności:

Atrybuty (stan)

  • Brak

Protokół (zapytanie o status i instrukcje sterowania)

  • Brak

Funkcja inch (inching)

Przykład deklaracji zdolności:

Atrybuty (stan):

  • Brak

Protokół (zapytanie o status i instrukcje sterowania):

  • Brak

Strumień kamery (camera-stream)

Przykład deklaracji zdolności:

Atrybuty (stan):

  • Brak

Protokół (zapytanie o status i instrukcje sterowania):

  • Brak

Sterowanie trybem (mode)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie dwutlenku węgla (co2)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie oświetlenia (illumination)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie dymu (smoke)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie otwarcia/zamknięcia magnetycznego drzwi (contact)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie ruchu (motion)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie wycieku wody (water-leak)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Przełącznik wykrywania okna (window-detection)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Blokada dziecięca (child-lock)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Przełącznik przeciwdziałający bezpośredniemu nadmuchowi (anti-direct-blow)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Poziome wychylenie (horizontal-swing)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Pionowe wychylenie (vertical-swing)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Tryb ECO (eco)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Przełącznik stanu uruchamiania (toggle-startup)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie zatrzymania (detect-hold)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Przełącznik identyfikacji/aktywacji (toggle-identify)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie napięcia (toggle-voltage)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie prądu elektrycznego w podkomponencie (toggle-electric-current)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie mocy w podkomponencie (toggle-electric-power)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Statystyka zużycia energii w podkomponencie (toggle-power-consumption)

Przykład deklaracji zdolności:

Atrybuty (stan):

Rozpocznij/Zatrzymaj statystyki w czasie rzeczywistym:

Zapytaj o zużycie energii w przedziale czasowym:

Odpowiedź dla zużycia energii w obrębie zakresu czasu:

Protokół (zapytanie o status i instrukcje sterowania):

Rozpocznij statystyki czasu rzeczywistego:

Zatrzymaj statystyki czasu rzeczywistego:

Pobierz historyczne zużycie energii:

Pobierz zużycie energii w czasie rzeczywistym:

Wskaźnik jakości łącza (lqi)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Konfiguracja funkcjonalna (configuration)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

System (system)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wilgotność (moisture)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Ciśnienie barometryczne (barometric-pressure)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Prędkość wiatru (wind-speed)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Kierunek wiatru (wind-direction)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Opad (rainfall)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Indeks ultrafioletu (ultraviolet-index)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Przewodność elektryczna (electrical-conductivity)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Moc nadawcza (transmit-power)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie PM2.5 (pm25)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Indeks VOC (voc-index)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Wykrywanie gazu ziemnego (gas)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Status pracy nawadniania (irrigation/work-status)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Raportowanie statusu pracy:

Zapytanie o status pracy:

Wynik zapytania o status pracy:

Tryb pracy nawadniania (irrigation/work-mode)

Przykład deklaracji zdolności:

Atrybuty (stan):

Protokół (zapytanie o status i instrukcje sterowania):

Automatyczny sterownik nawadniania (irrigation/auto-controller)

Przykład deklaracji zdolności:

Atrybuty (stan):

Jednorazowe lub powtarzalne harmonogramowanie:

Jednorazowa lub powtarzalna objętość:

Protokół (zapytanie o status i instrukcje sterowania):

Jednorazowe lub powtarzalne harmonogramowanie:

Jednorazowa lub powtarzalna objętość:

Obsługiwane tryby wstępne

**Nazwy trybów **
**Wartości opcjonalne **

poziomWentylatora (fan Level)

"low"

"medium"

"high"

trybTermostatu (Thermostat Mode)

"auto"

"manual"

trybKlimatyzatora >= 1.11.0 (airConditioner Mode)

"cool"

"heat"

"auto"

"fan"

"dry"

trybWentylatora >= 1.11.0 (Fan Mode)

"normal"

"sleep"

"child"

kątPoziomy >= 1.11.0 (Horizontal Angle)

"30"

"60"

"90"

"120"

"180"

"360"

kątPionowy >= 1.11.0 (Vertical Angle)

"30"

"60"

"90"

"120"

"180"

"360"

c. Opis tagów

  • Specjalny klucz toggle służy do ustawienia nazwy podkomponentu toggle.

  • Specjalny klucz temperature_unit służy do ustawienia jednostki temperatury.

d. Specjalne kody błędów i opis

Kod błędu

Opis

Wersja iHost

110000

Pod-urządzenie/grupa odpowiadająca id nie istnieje

≥2.1.0

110001

Brama jest w stanie wyszukiwania urządzeń zigbee

≥2.1.0

110002

Urządzenia w grupie nie mają wspólnej funkcjonalności

≥2.1.0

110003

Nieprawidłowa liczba urządzeń

≥2.1.0

110004

Nieprawidłowa liczba grup

≥2.1.0

110005

Urządzenie offline

≥2.1.0

110006

Nie udało się zaktualizować statusu urządzenia

≥2.1.0

110007

Nie udało się zaktualizować statusu grupy

≥2.1.0

110008

Osiągnięto maksymalną liczbę grup. Utwórz do 50 grup

≥2.1.0

110009

Adres IP urządzenia kamery jest nieprawidłowy

≥2.1.0

110010

Błąd autoryzacji dostępu do urządzenia kamery

≥2.1.0

110011

Błąd adresu strumienia urządzenia kamery

≥2.1.0

110012

Kodowanie wideo urządzenia kamery nie jest obsługiwane

≥2.1.0

110013

Urządzenie już istnieje

≥2.1.0

110014

Kamera nie obsługuje działania w trybie offline

≥2.1.0

110015

Hasło konta nie jest zgodne z hasłem konta w adresie strumienia RTSP

≥2.1.0

110016

Brama jest w stanie wyszukiwania kamer onvif

≥2.1.0

110017

Przekroczono maksymalną liczbę dodanych kamer

≥2.1.0

110018

Ścieżka kamery ESP jest błędna

≥2.1.0

110019

Nie udało się uzyskać dostępu do adresu usługi urządzenia zewnętrznego

≥2.1.0

e. Wyszukiwanie pod-urządzenia

Pozwól autoryzowanym użytkownikom włączyć lub wyłączyć wyszukiwanie pod-urządzeń przez bramę za pośrednictwem tego interfejsu

  • 💡Uwaga: Obecnie obsługiwane jest tylko wyszukiwanie pod-urządzeń Zigbee.

  • 💡Uwaga: Pod-urządzenia Zigbee zostaną dodane automatycznie po wyszukiwaniu. Nie trzeba używać interfejsu "Ręcznie dodaj pod-urządzenia" :::tips

  • URL:/open-api/V2/rest/devices/discovery

  • Metoda: PUT

  • Nagłówek

    • Content-Type: application/json

    • Autorization: Bearer ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

enable

boolean

N

true (Rozpocznij parowanie); false (Wstrzymaj parowanie)

type

string

N

Typ wyszukiwania: Zigbee

Pomyślna odpowiedź z danymi: pusty obiekt {} :::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: ** 200 OK ::: Przykład odpowiedzi:

f. Ręczne dodawanie pod-urządzenia

Pozwól autoryzowanym użytkownikom dodać pojedyncze pod-urządzenie przez ten interfejs.

  • Uwaga: Obecnie obsługiwane są tylko kamery RTSP i ESP32-CAM :::tips

  • URL:/open-api/V2/rest/devices

  • Metoda:POST

  • Nagłówek

    • Content-Type: application/json

    • Autorization: Bearer ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa pod-urządzenia

display_category

string

N

Typ urządzenia. Obsługiwane tylko kamery.

capabilities

CapabilityObject[]

N

Lista możliwości. Gdy display_category = camera, capabilities obejmują tylko możliwości camera-stream.

protocal

string

N

Protokół urządzenia. RTSP; ESP32-CAM

manufacturer

string

N

Producent.

model

string

N

Model urządzenia

firmware_version

string

N

Wersja oprogramowania urządzenia

CapabilityObject

Atrybut

Typ

Opcjonalne

Opis

capability

string

N

Nazwa możliwości. Obsługiwane tylko "camera-stream"

uprawnienie

string

N

Uprawnienie urządzenia. Obsługuje tylko odczyt.

configuration

CameraStreamConfigurationObject

Y

Konfiguracja strumienia kamery.

SettingsObject

Atrybut

Typ

Opcjonalne

Opis

streamSetting

StreamSettingObject

N

Konfiguracja usługi strumieniowej

StreamSettingObject

Atrybut

Typ

Opcjonalne

Opis

type

string

N

Konfiguracja usługi strumieniowej

uprawnienie

string

N

Uprawnienie do możliwości. Obsługuje tylko "11" (możliwe do modyfikacji).

wartość

StreamSettingValueObject

N

Konkretne wartości konfiguracji

StreamSettingValueObject

Atrybut

Typ

Opcjonalne

Opis

stream_url

string

N

Format URL strumienia

Format:<schema>://<hostname>:<port>/<username>:<password>@<service_path>

Przykład:rtsp://admin:[email protected]:554/streaming/channel01

Opcje schematu:

rtsp (Protokół strumieniowania w czasie rzeczywistym)

http (Protokół transferu hipertekstu) — Dla urządzeń ESP32-CAM

*Uwaga: Niektóre kamery mogą nie wymagać nazwy użytkownika ani hasła. W takich przypadkach można pominąć <username> oraz <password> pola z URL.

Pomyślna odpowiedź z danymi:

Atrybut

Typ

Opcjonalne

Opis

serial_number

string

N

Unikalny numer seryjny urządzenia

:::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

Odpowiedź danych o niepowodzeniu: pusty obiekt :::tips Warunek

  1. Błąd dostępu do adresu strumienia kamery (błąd formatu, błąd autoryzacji, wyjątek sieciowy itp.)

  2. Urządzenie już istnieje

  3. Jeśli dodanie pojedynczego urządzenia się nie powiedzie, zwracane jest, że wszystkie urządzenia nie zostały dodane.

Kod statusu: 200 OK Kod błędu: ● 110009 Błąd adresu IP kamery ● 110010 Błąd autoryzacji dostępu do kamery ● 110011 Błąd adresu strumienia kamery ● 110012 Kodowanie wideo kamery nie jest obsługiwane ● 110013 Urządzenie już istnieje ::: Przykład odpowiedzi:

g. Pobierz listę pod-urządzeń

Pozwól autoryzowanym użytkownikom uzyskać listę pod-urządzeń bramy za pośrednictwem tego interfejsu. :::tips

  • URL:/open-api/V2/rest/devices

  • Metoda: GET

  • Nagłówek

    • Content-Type: application/json

    • Autorization: Bearer ::: Parametry żądania: brak Pomyślna odpowiedź z danymi:

Atrybut

Typ

Opcjonalne

Opis

device_list

ResponseDeviceObject[]

N

Lista urządzeń

ResponseDeviceObject

Atrybut

Typ

Opcjonalne

Opis

serial_number

string

N

Unikalny numer seryjny urządzenia

third_serial_number

string

"N" gdy podłączone jest urządzenie zewnętrzne, w przeciwnym razie "Y"

Unikalny numer seryjny urządzenia zewnętrznego

service_address

string

"N" gdy podłączone jest urządzenie zewnętrzne, w przeciwnym razie "Y"

Adres usługi urządzenia zewnętrznego

name

string

N

Nazwa urządzenia; jeśli nie została zmieniona, zostanie wyświetlona przez interfejs zgodnie z domyślnymi regułami wyświetlania.

manufacturer

string

N

Producent

model

string

N

Model urządzenia

firmware_version

string

N

Wersja oprogramowania. Może być pustym ciągiem znaków.

hostname

string

Y

Nazwa hosta urządzenia

mac_address

string

Y

Adres MAC urządzenia

app_name

string

Y

Nazwa aplikacji, do której należy. Jeśli app_name zostanie wypełnione podczas uzyskiwania certyfikatu interfejsu otwartego, to wszystkie późniejsze urządzenia podłączone przez ten certyfikat będą wpisywane w to pole.

display_category

string

N

Kategoria urządzenia

capabilities

CapabilityObject[]

N

Możliwości urządzenia

protocol

string

"N" gdy podłączone jest urządzenie zewnętrzne, w przeciwnym razie "Y"

Protokół urządzenia: zigbee, onvif, rtsp, esp32-cam

state

object

Y

Obiekt stanu urządzenia. Aby zobaczyć przykłady stanów dla różnych możliwości, sprawdź 【Support Device Capabilities】

tags

object

Y

Format JSON klucz-wartość, niestandardowe informacje o urządzeniu. Funkcja jest następująca: - Służy do przechowywania kanałów urządzenia - Służy do przechowywania jednostek temperatury - Niestandardowe informacje dla innych urządzeń stron trzecich

online

boolean

N

Status online: True oznacza online False oznacza offline

podsiec

boolean

Y

Czy znajduje się w tej samej podsieci co bramka

CapabilityObject 💡Uwaga: Proszę sprawdzić Przykłady Obsługiwanych Funkcji Urządzeń w [Supported Device Capabilities].

Atrybut

Typ

Opcjonalne

Opis

capability

string

N

Nazwa możliwości. Szczegóły sprawdź w [Supported Device Capabilities]

uprawnienie

string

N

Uprawnienie możliwości. Możliwe wartości to "read" (do odczytu), "write" (zapis), "readWrite" (odczyt i zapis).

configuration

object

Y

Informacje konfiguracyjne możliwości. Obecnie używane jest camera-stream, sprawdź [Supported Device Capabilities]

name

string

Y

Pole name w toggle. Numer podkanału używany do identyfikacji urządzeń wielokanałowych. Na przykład, jeśli name to 1, oznacza to kanał 1.

:::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

h. Aktualizuj określone informacje lub stan urządzenia

Pozwól uprawnionym użytkownikom modyfikować podstawowe informacje o pod-urządzeniu oraz wydawać polecenia sterujące przez to API. :::tips

  • URL:/open-api/V2/rest/devices/{serial_number}

  • Metoda:PUT

  • Nagłówek

    • Content-Type: application/json

    • Autorization: Bearer ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

name

string

Y

Nazwa urządzenia

tags

object

Y

Format JSON klucz-wartość, niestandardowe informacje o urządzeniu.

state

object

Y

Obiekt stanu urządzenia. Przykłady stanów dla różnych możliwości sprawdź w [Support Device Capabilities]

configuration

object

Y

Informacje konfiguracyjne możliwości, obecnie tylko capability camera_stream obsługuje modyfikację.

Pomyślna odpowiedź z danymi: :::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika została pomyślnie zakończona. **Kod statusu: **200 OK Kod błędu:

  • 110000 Pod-urządzenie/grupa odpowiadająca id nie istnieje ::: Przykład odpowiedzi:

i. Usuń pod-urządzenie

Pozwól uprawnionym użytkownikom usuwać pod-urządzenia przez to API. :::tips

  • URL:/open-api/V2/rest/devices/{serial_number}

  • Metoda:DELETE

  • Nagłówek

    • Content-Type: application/json

    • Autoryzacja: Bearer ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

name

string

Y

Nazwa urządzenia.

tags

object

Y

Pary klucz-wartość w formacie JSON używane do przechowywania nazw kanałów urządzenia i innych informacji o pod-urządzeniach.

state

object

Y

Zmień stan urządzenia; szczegółowe informacje protokołu znajdują się w "Supported Device Capabilities."

capabilities

CapabilityObject []

Y

Informacje konfiguracyjne możliwości; wszystkie możliwości, które obsługują ustawianie konfiguracji, mogą być modyfikowane. Uwaga: uprawnienia nie mogą być zmieniane.

Pomyślna odpowiedź z danymi: :::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika została pomyślnie zakończona. **Kod statusu: **200 OK Kody błędów:

  • 110000: Pod-urządzenie/grupa odpowiadająca ID nie istnieje.

  • 110006: Nie udało się zaktualizować stanu urządzenia.

  • 110019: Nie udało się uzyskać dostępu do adresu usługi urządzenia stron trzecich.

  • 110024: Nie udało się zaktualizować konfiguracji urządzenia. ::: Przykład odpowiedzi:

j. Usuń pod-urządzenie

Pozwala uprawnionym użytkownikom usuwać pod-urządzenia przez to API. :::tips

  • URL/open-api/v2/rest/devices/{serial_number}

  • MetodaDELETE

  • Nagłówek

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametry żądania: Brak Pomyślna odpowiedź z danymi: :::tips Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

k. Zapytaj o stan urządzenia

Pozwala uprawnionym użytkownikom zapytać o stan urządzenia przez to API. :::tips

  • URL/open-api/v2/rest/devices/:serial_number/query-state/{capability}

  • Metoda:POST

  • Nagłówek

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

query_state

object

N

Zapytaj o stan urządzenia; szczegóły protokołu znajdują się w "Supported Device Capabilities."

Pomyślna odpowiedź z danymi: :::tips Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

3.4 Zarządzanie bezpieczeństwem

a. Pobierz listę zabezpieczeń

Pozwól uprawnionym użytkownikom modyfikować ustawienia bramki przez to API. :::tips

  • URL/open-api/v2/rest/security

  • MetodaGET

  • Nagłówek

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametry żądania: Brak Pomyślna odpowiedź z danymi:

Atrybut

Typ

Opcjonalne

Opis

security_list

ResponseSecurityObject[]

N

lista urządzeń w odpowiedzi

ResponseDeviceObject

Atrybut

Typ

Opcjonalne

Opis

sid

int

N

id zabezpieczenia

name

string

N

nazwa zabezpieczenia

enable

bool

N

czy włączone

  • true Włączone

  • false Wyłączone |

:::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

b. Włącz określony tryb zabezpieczeń

Pozwól uprawnionym użytkownikom włączyć określony tryb zabezpieczeń przez to API. :::tips

  • URL/open-api/v2/rest/security/{security_id}/enable

  • MetodaPUT

  • Nagłówek

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametry żądania: Brak Pomyślna odpowiedź z danymi:pusty obiekt {} :::tips Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

c. Wyłącz określony tryb zabezpieczeń

Pozwól uprawnionym użytkownikom wyłączyć określony tryb zabezpieczeń przez to API. :::tips

  • URL/open-api/v2/rest/security/{security_id}/disable

  • MetodaPUT

  • Nagłówek

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametry żądania: Brak Pomyślna odpowiedź z danymi:pusty obiekt {} :::tips Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

d. Jednoklikowe włączenie zabezpieczeń

Pozwól uprawnionym użytkownikom włączyć tryb jednoklikowych ustawień zabezpieczeń przez to API. :::tips

  • URL/open-api/v2/rest/security/enable

  • MetodaPUT

  • Nagłówek

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametry żądania: Brak Pomyślna odpowiedź z danymi:pusty obiekt {} :::tips Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

e. Wyłącz zabezpieczenia

Pozwól uprawnionym użytkownikom wyłączyć zabezpieczenia przez to API. :::tips

  • URL/open-api/v2/rest/security/disable

  • MetodaPUT

  • Nagłówek

    • Content-Type: application/json

    • Authorization: Bearer ::: Parametry żądania: Brak Pomyślna odpowiedź z danymi:pusty obiekt {} :::tips Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

4. Dostęp urządzeń stron trzecich

4.1 Instrukcja dostępu

Dostęp urządzenia

1.0.jpg

Dostęp bramki stron trzecich

2.0.jpg

Kroki dostępu

  1. Określ klasyfikację urządzenia w bramce. Szczegóły sprawdź w [Supported Device Type].

  2. Określ możliwości, do których urządzenie może mieć dostęp. Szczegóły sprawdź w [Supported Device Capabilities].

  3. Wywołaj interfejs [Discovery Request], aby dodać urządzenie do bramki.

    1. Uwaga: Musisz podać adres usługi do odbierania instrukcji wydawanych przez bramkę, który służy do odbierania poleceń sterowania urządzeniem wydawanych przez bramkę.

  4. Jeśli status urządzenia stron trzecich się zmieni, musisz wywołać interfejs [Device States Change Report], aby wysłać najnowszy stan z powrotem do bramki.

  5. Po dodaniu urządzenie stron trzecich pojawi się na liście urządzeń, z większością funkcji bramki (inne urządzenia nie będące stroną trzecią). Powszechne otwarte interfejsy związane z urządzeniem będą działać normalnie.

  • Wybierz odpowiednią kategorię urządzenia. Klasyfikacja wpłynie na ostateczny wygląd interfejsu użytkownika po podłączeniu urządzenia do bramki.

  • Wybierz odpowiednią zdolność urządzenia. Lista możliwości określi stan protokołu urządzenia.

Proces programowy

a. Dostęp urządzenia

3.0.jpg

b. Dostęp bramki stron trzecich

4.0.jpg

4.2 Przykład dostępu

Przełącznik, Wtyczka

Synchronizuj urządzenia stron trzecich

Zgłoś stan urządzenia

Zgłoś offline/online

Odbierz instrukcje dotyczące sterowania urządzeniem przez bramkę

Zapytaj o urządzenie

4.3 Web API

Interfejs żądań bramki dla stron trzecich

Format żądania

Pozwala uprawnionym użytkownikom wysyłać żądania zdarzeń do bramki przez to API. :::tips

  • URL:/open-api/V2/rest/thirdparty/event

  • Metoda:POST

  • Nagłówek

    • Content-Type: application/json

    • Autorization: Bearer ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

event

EventObject

N

Struktura obiektu zdarzenia żądania

EventObject

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka żądania

endpoint

EndpointObject

Y

Struktura endpointu żądania Uwaga: Pole jest puste przy synchronizacji nowej listy urządzeń.

payload

PayloadObject

N

Struktura ładunku żądania

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa żądania. parametr opcjonalny: DiscoveryRequest: Synchronizuj nowe urządzenia DeviceStatesChangeReport: Raport aktualizacji stanu urządzenia DeviceOnlineChangeReport: Raport statusu online urządzenia

message_id

string

N

ID wiadomości żądania, UUID_V4

version

string

N

Numer wersji protokołu żądania. Obecnie ustalony na 1

EndpointObject

Atrybut

Typ

Opcjonalne

Opis

serial_number

string

N

Unikalny numer seryjny urządzenia

third_serial_number

string

N

Unikalny numer seryjny urządzenia zewnętrznego

tags

object

Y

Format JSON klucz-wartość, niestandardowe informacje o urządzeniu. [Funkcja zarządzania urządzeniami] - [Opis tagów]

PayloadObject W zależności od różnych header.name mają różne struktury żądań.

Format odpowiedzi

:::tips **Kod statusu: **200 OK Parametry odpowiedzi: :::

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka odpowiedzi

payload

PayloadObject

N

Struktura ładunku odpowiedzi

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa nagłówka odpowiedzi. parametry opcjonalne: Response: Pomyślna odpowiedź ErrorResponse: Odpowiedź z błędem

message_id

string

N

ID wiadomości nagłówka odpowiedzi, UUID_V4. Przekaż tutaj message_id z nagłówka żądania *Jeśli parametr message_id w żądaniu jest pominięty, to pole będzie pustym łańcuchem w odpowiedzi.

version

string

N

- Numer wersji protokołu żądania. Obecnie ustalony na 1.

Pomyślna odpowiedź--PayloadObject :

W zależności od typu żądania, struktura odpowiedzi jest inna. Szczegóły znajdują się w dokumentacji konkretnego polecenia żądania.

Niepomyślna odpowiedź--PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

type

string

N

Rodzaje błędów:

  • INVALID_PARAMETERS: Błąd parametrów

  • AUTH_FAILURE: Błąd autoryzacji

  • INTERNAL_ERROR: Błąd wewnętrznej usługi | | description | string | N | Opis błędu |

DiscoveryRequest Synchronizuj nową listę urządzeń

  • Uwaga: Po zsynchronizowaniu urządzenie z bramką domyślnie jest online, czyli online=true. Późniejsze zmiany online zależą całkowicie od synchronizacji ze stroną trzecią przez interfejs DeviceOnlineChangeReport.

Parametry żądania: EndpointObject**:**Brak PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

endpoints

EndpointObject[]

N

Lista urządzeń

EndpointObject:

Atrybut

Typ

Opcjonalne

Opis

third_serial_number

string

N

Unikalny numer seryjny urządzenia zewnętrznego

name

string

N

Nazwa urządzenia

display_category

string

N

Kategoria urządzenia. Szczegóły w [Supported Device Type]. *Urządzenia stron trzecich obecnie nie obsługują dodawania kamer.

capabilities

CapabilityObject[]

N

Lista możliwości

state

object

N

Informacje o stanie początkowym

manufacturer

string

N

Producent

model

string

N

Model urządzenia

tags

object

Y

Format JSON klucz-wartość, niestandardowe informacje o urządzeniu: Służy do przechowywania kanałów urządzenia Służy do przechowywania jednostek temperatury Inne niestandardowe dane stron trzecich

firmware_version

string

N

Wersja firmware

service_address

string

N

Adres usługi. Na przykład http://192.168.31.14/service_address

Przykład żądania :

Parametry odpowiedzi: PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

endpoints

EndpointObject[]

N

Lista urządzeń

EndpointObject:

Atrybut

Typ

Opcjonalne

Opis

serial_number

string

N

Unikalny numer seryjny urządzenia

third_serial_number

string

N

Unikalny numer seryjny urządzenia zewnętrznego

Przykład poprawnej odpowiedzi:

Przykład odpowiedzi z błędem:

DeviceStatesChangeReport Raport zmiany stanu urządzenia

  • Uwaga: Powtarzające się raporty stanu mogą fałszywie wywołać powiązane sceny.

Parametry żądania: PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

state

object

N

Stan urządzenia, zobacz [Supported device cabilities] po szczegóły

Przykład żądania :

Parametry odpowiedzi: PayloadObject: Pusty obiekt Przykład pomyślnej odpowiedzi:

DeviceOnlineChangeReport Raport statusu online urządzenia

  • Uwaga: Powtarzające się raporty stanu mogą fałszywie wywołać powiązane sceny.

Parametry żądania: PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

online

boolean

N

Status online urządzenia true: Online

false: Offline

Przykład żądania :

Parametry odpowiedzi: PayloadObject: Pusty obiekt Przykład pomyślnej odpowiedzi:

DeviceInformationUpdatedReport Raport zaktualizowanych informacji o urządzeniu

  • Uwaga: Aktualizacja może wpłynąć na istniejące sceny lub funkcje zabezpieczeń.

Parametry żądania: PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

capabilities

| CapabilityObject[]

| N

| Lista możliwości. Szczegóły można znaleźć w sekcji wspieranych możliwości urządzeń. **Uwaga: **Ten parametr zaktualizuje tylko wartość z ustawienia klucz w ramach CapabilityObject, a aktualizacje są dozwolone tylko jeśli uprawnienie dla ustawienia klucz jest 11 lub 01. Szczegółową definicję struktury ustawienia w CapabilityObject, można znaleźć w szczegółowym opisie w sekcji 2.3 Kategorie wyświetlania urządzeń i możliwości urządzeń. | | tags

| object

| Y

| Format JSON klucz-wartość, niestandardowe informacje o urządzeniu.

  • Może być używane do przechowywania kanałów urządzenia

  • Może być używane do przechowywania jednostek temperatury

  • Inne niestandardowe dane stron trzecich |

Przykład żądania :

parametry odpowiedzi: PayloadObject: Pusty obiekt Przykład pomyślnej odpowiedzi:

Bramka wysyła interfejs polecenia przez adres usługi urządzenia

  • Uwaga:

  1. Strony trzecie muszą odpowiedzieć na żądanie bramki w ciągu 3s. W przeciwnym razie bramka uzna przetwarzanie polecenia za przekroczone czasowo.

  2. Jeśli usługa strony trzeciej jest offline, bramka ustawi urządzenie w stan offline, a usługa strony trzeciej musi zgłosić stan urządzenia (DeviceStatesChangeReport) lub stan online (DeviceOnlineChangeReport), zanim powróci do stanu online.

Format żądania

Bramka wysyła polecenia do strony trzeciej przez interfejs adresu usługi urządzenia. :::tips

  • URL

  • Metoda:POST

  • Nagłówek

    • Content-Type: application/json ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

directive

DirectiveObject

N

Struktura obiektu dyrektywy

DirectiveObject

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka żądania

endpoint

EndpointObject

N

Struktura endpointu żądania

payload

PayloadObject

N

Struktura ładunku żądania

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa żądania. Parametry opcjonalne: UpdateDeviceStates: Zaktualizuj stany urządzenia

message_id

string

N

ID wiadomości żądania, UUID_V4

version

string

N

Numer wersji protokołu żądania. Obecnie ustalony na 1.

EndpointObject

Atrybut

Typ

Opcjonalne

Opis

serial_number

string

N

Unikalny numer seryjny urządzenia

third_serial_number

string

N

Unikalny numer seryjny urządzenia zewnętrznego

tags

object

N

Format JSON klucz-wartość, niestandardowe informacje o urządzeniu. [Funkcja zarządzania urządzeniami] - [Opis tagów]

PayloadObject: W zależności od różnych header.name, istnieje dla każdego specyficzna struktura żądania.

Przykład żądania :

Format odpowiedzi

:::tips **Kod statusu HTTP: **200 OK Atrybut odpowiedzi HTTP: :::

Atrybut

Typ

Opcjonalne

Opis

event

EventObject

N

Struktura zdarzenia odpowiedzi

EventObject

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka żądania

payload

PayloadObject

N

Struktura ładunku żądania

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa nagłówka odpowiedzi. Parametr opcjonalny: UpdateDeviceStatesResponse: Odpowiedź na aktualizację stanów urządzenia ErrorResponse: Odpowiedź z błędem

message_id

string

N

ID wiadomości nagłówka odpowiedzi, UUID_V4. Przekaż tutaj message_id z nagłówka żądania

version

string

N

Numer wersji protokołu żądania. Obecnie ustalony na 1.

Pomyślna odpowiedź--PayloadObject:

W zależności od typu żądania, struktura odpowiedzi jest inna. Szczegóły znajdują się w dokumentacji konkretnego polecenia żądania.

Niepomyślna odpowiedź--PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

type

string

N

Rodzaje błędów:

  • ENDPOINT_UNREACHABLE: Urządzenie jest nieosiągalne lub offline

  • ENDPOINT_LOW_POWER: Urządzenie jest w trybie niskiego zużycia energii i nie może być sterowane

  • INVALID_DIRECTIVE: Nieprawidłowa dyrektywa od bramki

  • NO_SUCH_ENDPOINT: Urządzenie nie istnieje

  • NOT_SUPPORTED_IN_CURRENT_MODE: Bieżący tryb nie obsługuje tej operacji

  • INTERNAL_ERROR: Błąd wewnętrznej usługi

  • REMOTE_KEY_CODE_NOT_LEARNED: Kod klawisza pilota nie został nauczony |

:::porady Warunki: Parametry żądania są prawidłowe. **Kod statusu: **200 OK Parametry odpowiedzi: :::

UpdateDeviceStates

Parametry żądania: PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

state

object

N

Stan urządzenia, zobacz [Supported device cabilities] po szczegóły.

Przykład żądania :

Parametry odpowiedzi: PayloadObject:pusty obiekt Przykład pomyślnej odpowiedzi

QueryDeviceStates

Parametry żądania: PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

state

object

N

Stan urządzenia, zobacz [Supported device cabilities] po szczegóły.

Przykład żądania :

Parametry odpowiedzi: PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

state

object

N

Stan urządzenia, zobacz [Supported device cabilities] po szczegóły.

Przykład odpowiedzi:

ConfigureDeviceCapabilities

Parametry żądania: PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

capabilities

CapabilityObject[]

N

Lista możliwości. Szczegóły można znaleźć w części obsługiwanych możliwości urządzeń. Uwaga, pole permission nie może być zmienione, przekaż tę samą wartość podczas synchronizacji.

Przykład żądania :

Parametry odpowiedzi: PayloadObject:pusty obiekt Przykład pomyślnej odpowiedzi

5. Zdarzenia wysyłane przez serwer

Opis interfejsu MDN EventSource:https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events

5.1 Instrukcja

Bramka obsługuje wysyłanie wiadomości do klienta za pomocą SSE (Server-sent events). Klient może monitorować wiadomości SSE po uzyskaniu poświadczeń dostępu i może parsować zawartość wiadomości push zgodnie z protokołem powiadomień zdarzeń interfejsu programistycznego po otrzymaniu wiadomości wysłanych przez bramkę. Należy zauważyć, że bramka obecnie używa protokołu HTTP1.1, więc SSE po stronie przeglądarki będzie miało maksymalnie nie więcej niż 6 połączeń (Szczegółowe informacje można znaleźć w opisie interfejsu MDN EventSource.)

5.2 Wspólny format

:::porady

  • URL:/open-api/V2/sse/bridge

  • MetodaGET ::: Parametry żądania:

Nazwa
Typ
Opcjonalne
Opis

access_token

string

N

Token dostępu

Uwaga: Przy żądaniu połączenia SSE bramka sprawdzi access_token i zwróci błąd autoryzacji, jeśli jest nieprawidłowy. { "error": 401, "data": {}, "message": "invalid access_token"}

## Na przykład: Nazwa modułu: device Wersja: 1,v2,v3 Typ wiadomości: addDevice

Przykład:

5.3 Moduł urządzeń

a. Zdarzenie dodania urządzenia

:::tips Nazwa modułu:device Wersja:v2 Typ wiadomości:addDevice event.data parametry: :::

Nazwa
Typ
Opcjonalne
Opis

payload

ResponseDeviceObjectObject - Interfejs taki sam jak Pobierz listę urządzeń

N

informacje o urządzeniu

Przykład:

b. Zdarzenie aktualizacji stanu urządzenia

:::tips Nazwa modułu:device Wersja:v2 Typ wiadomości:updateDeviceState event.data parametry: :::

Nazwa
Typ
Opcjonalne
Opis

endpoint

EndpointObject

N

Informacje o urządzeniu

payload

object。 Struktura taka sama jak stan urządzenia

N

Dane stanu urządzenia

EndpointObject:

Parametr
Typ
Opcjonalne
Opis

serial_number

string

N

Unikalny numer seryjny urządzenia

third_serial_number

string

Y

Unikalny numer seryjny urządzenia stron trzecich. Dla urządzeń podłączonych przez otwarte interfejsy to pole jest wymagane.

Przykład:

c. Zdarzenie aktualizacji informacji o urządzeniu

:::tips Nazwa modułu:device Wersja:v2 Typ wiadomości:updateDeviceInfo event.data parametry: :::

Nazwa
Typ
Opcjonalne
Opis

endpoint

EndpointObject

N

Informacje o urządzeniu

payload

DeviceChangeObject

N

Dane zmiany urządzenia

EndpointObject:

Atrybut
Typ
Opcjonalne
Opis

serial_number

string

N

Unikalny numer seryjny urządzenia

third_serial_number

string

Y

Unikalny numer seryjny urządzenia stron trzecich. Dla urządzeń podłączonych przez otwarte interfejsy to pole jest wymagane.

DeviceChangeObject

Nazwa
Typ
Opcjonalne
Opis

name

string

N

Nazwa urządzenia

capabilities

CapabilityObject []

Y

Lista możliwości urządzenia.

tags

object

Y

tagsobject | Nullable | Pary klucz-wartość w formacie JSON dla niestandardowych informacji o urządzeniu.

  • Może być używane do przechowywania kanałów urządzenia.

  • Może być używane do przechowywania jednostek temperatury.

  • Dla innych niestandardowych danych stron trzecich. |

Przykład:

d. Zdarzenie usunięcia urządzenia

:::tips Nazwa modułu:device Wersja:v2 Typ wiadomości:deleteDevice event.data parametry: :::

** Nazwa **
** Typ **
** Opcjonalne**
** Opis **

endpoint

EndpointObject

N

Informacje o urządzeniu

EndpointObject:

Atrybut
Typ
Opcjonalne
Opis

serial_number

string

N

Unikalny numer seryjny urządzenia

third_serial_number

string

Y

Unikalny numer seryjny urządzenia stron trzecich. Dla urządzeń podłączonych przez otwarte interfejsy to pole jest wymagane.

Przykład:

e. Zdarzenie aktualizacji statusu online urządzenia

:::tips Nazwa modułu:device Wersja:v2 Typ wiadomości:updateDeviceOnline event.data parametry: :::

Nazwa
Typ
Opcjonalne
Opis

endpoint

EndpointObject

N

Informacje o urządzeniu

payload

DeviceChangeObject

N

Dane zmiany urządzenia

EndpointObject:

Atrybut
Typ
Opcjonalne
Opis

serial_number

string

N

Unikalny numer seryjny urządzenia

third_serial_number

string

Y

Unikalny numer seryjny urządzenia stron trzecich. Dla urządzeń podłączonych przez otwarte interfejsy to pole jest wymagane.

DeviceChangeObject

Nazwa
Typ
Opcjonalne
Opis

online

boolean

N

Status online urządzenia

Przykład:

5.4 Moduł bramki

a. Zdarzenie aktualizacji stanu zabezpieczeń

:::tips Nazwa modułu:device Wersja:v2 Typ wiadomości:updateDeviceOnline event.data parametry: :::

Atrybut

Typ

Opcjonalne

Opis

payload

SecurityStateObject

N

Informacje o urządzeniu

SecurityStateObject

Atrybut

Typ

Opcjonalne

Opis

alarm_state

string

N

  • arming | Uzbrojony

  • disarming | Rozbrojony |

Przykład:

5.5 Moduł bezpieczeństwa

a. Zdarzenie aktualizacji stanu uzbrojenia

:::tips Nazwa modułu:device Wersja:v2 Typ wiadomości:updateDeviceOnline event.data parametry: :::

Atrybut

Typ

Opcjonalne

Opis

payload

ArmStateObject

N

informacje o uzbrajaniu i rozbrajaniu

ArmStateObject:

Atrybut

Typ

Opcjonalne

Opis

arm_state

string

N

  • arming | Uzbrojony

  • disarming | Rozbrojony | | detail | DetailObject | N | Szczegóły uzbrojenia/rozbrojenia |

DetailObject:

Atrybut

Typ

Opcjonalne

Opis

sid

int

N

安防模式id

name

string

N

nazwa zabezpieczenia

Przykład

6. TTS (Funkcja silnika Text-to-Speech)

6.1 Instrukcja

Kluczowa rola

  • Dostawca usługi TTS: Dostawca usługi silnika TTS odpowiada za zarejestrowanie silnika TTS na bramce oraz zapewnienie usług TTS

  • Serwer bramki:iHost

  • Klient Open API bramki

6.1.1 Rejestrowanie usługi silnika TTS

  1. 【Dostawca usługi TTS】Wywołuje interfejs, aby zarejestrować silnik TTS na bramce.

  2. 【Serwer bramki】Po pomyślnej rejestracji bramka przechowa podstawowe informacje o silniku TTS (w tym adres usługi server_address, a późniejsza komunikacja między bramką a Dostawcą usługi TTS będzie odbywać się przez adres server_address) oraz przydzieli wewnętrzne ID usługi silnika TTS w bramce.

image.png

6.1.2 Pobierz listę zsyntetyzowanych dźwięków

  1. 【Klient Open API bramki】Wywołuje interfejs, aby uzyskać listę zarejestrowanych usług silnika TTS. Możesz uzyskać aktualną listę zarejestrowanych silników TTS (w tym ID silnika TTS przydzielone przez bramkę).

  2. 【Klient Open API bramki】Wywołuje interfejs, aby uzyskać listę dźwięków dla określonego silnika TTS. Bramka wyda synchroniczne polecenie listy audio do wskazanego Dostawcy usługi TTS i zwróci wynik.

image.png

6.1.3 Syntetyzowanie mowy poprzez określenie silnika mowy

  1. 【Klient Open API bramki】Wywołuje interfejs, aby uzyskać listę zarejestrowanych usług silnika TTS. Możesz uzyskać aktualną listę zarejestrowanych silników TTS (w tym ID silnika TTS przydzielone przez bramkę).

  2. 【Klient Open API bramki】Wywołuje interfejs, aby uzyskać listę dźwięków dla określonego silnika TTS. Bramka wyda synchroniczne polecenie listy audio do wskazanego Dostawcy usługi TTS i zwróci wynik.

image.png

6.1.4 Syntetyzuj dźwięk i odtwarzaj mowę TTS.

  1. 【Klient Open API bramki】Wywołuje interfejs, aby uzyskać listę zarejestrowanych usług silnika TTS. Możesz uzyskać aktualną listę zarejestrowanych silników TTS (w tym ID silnika TTS przydzielone przez bramkę).

  2. 【Klient Open API bramki】Wywołuje interfejs, aby uzyskać listę dźwięków dla określonego silnika TTS. Bramka wyda synchroniczne polecenie listy audio do wskazanego Dostawcy usługi TTS i zwróci wynik. (w tym adres pliku audio TTS)

  3. 【Klient Open API bramki】Zapisz adres pliku audio TTS z wyniku zwróconego w poprzednim kroku, wywołaj interfejs odtwarzania pliku audio i odtwórz go przez bramkę.

6.2 Moduł silnika TTS

6.2.1 Otwarta zdolność bramki

a. Pobierz listę zarejestrowanych usług silnika TTS

:::porady

  • URL/open-api/V2/rest/tts/engines

  • MetodaGET

  • Nagłówek

    • Content-Type: application/json

    • Autoryzacja: Bearer ::: Parametry żądania: brak Poprawna odpowiedź z danymi:

Atrybut

Typ

Opcjonalne

Opis

engines

EngineObject []

N

Lista zarejestrowanych silników TTS

Struktura EngineObject

Atrybut

Typ

Opcjonalne

Opis

id

string

N

ID silnika przypisane przez bramkę

name

string

N

Nazwa usługi silnika TS

:::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. **Kod statusu: **200 OK Przykład odpowiedzi:: :::

b. Pobierz listę audio dla określonego silnika TTS

:::porady

  • URL/open-api/V2/rest/tts/engine/{id}/audio-list

  • MetodaGET

  • Nagłówek

    • Content-Type: application/json

    • Autoryzacja: Bearer ::: Parametry żądania: brak Poprawna odpowiedź z danymi:

Atrybut

Typ

Opcjonalne

Opis

audio_list

AudioObject []

N

Lista audio

Struktura AudioObject

Atrybut

Typ

Opcjonalne

Opis

url

string

N

URL pliku audio, na przykład:

https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3

label

string

Y

Etykieta pliku audio

:::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. **Kod statusu: **200 OK **Kod błędu: **

  • 190000 Silnik działa nieprawidłowo

Przykład odpowiedzi:: :::

c. Wykonaj syntezę mowy przy użyciu określonego silnika TTS

:::porady

  • URL/open-api/V2/rest/tts/engine/{id}/synthesize

  • MetodaPOST

  • Nagłówek

    • Content-Type: application/json

    • Autoryzacja: Bearer ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

text

string

N

Tekst używany do syntezy audio

label

string

Y

Etykieta pliku audio

language

string

Y

Pole przeźroczyste. Opcjonalny kod języka dla żądania syntezy mowy. Konkretna lista obsługiwanych kodów językowych jest dostarczana przez dostawcę usługi silnika TTS. Należy zauważyć, że usługa silnika TTS musi obsługiwać domyślny język do syntezy mowy, co oznacza, że jeśli język nie zostanie przekazany, do syntezy zostanie użyty domyślny język silnika.

options

object

Y

Pole przeźroczyste. Służy do przekazania parametrów konfiguracyjnych wymaganych do syntezy do usługi silnika TTS.

Poprawna odpowiedź z danymi:

Atrybut

Typ

Opcjonalne

Opis

audio

AudioObject

N

Lista audio

Struktura AudioObject

Atrybut

Typ

Opcjonalne

Opis

url

string

N

URL pliku audio, na przykład:

https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3

label

string

Y

Etykieta pliku audio

:::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. **Kod statusu: **200 OK **Kod błędu: **

  • 190000 Silnik działa nieprawidłowo

Przykład odpowiedzi:: :::

6.2.2 Komunikacja między bramką a usługą TTS

a. Rejestrowanie usługi silnika TTS

Wyślij żądanie do bramki przez Dostawcę usługi TTS

:::porady

  • URL/open-api/V2/rest/thirdparty/event

  • MetodaPOST

  • Nagłówek

    • Content-Type: application/json

    • Autoryzacja: Bearer ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

event

EventObject

N

Struktura obiektu zdarzenia żądania Informacje

EventObject

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka żądania

payload

PayloadObject

N

Struktura ładunku żądania

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa żądania. Parametr opcjonalny.

  • RegisterTTSEngine | | message_id | string | N | ID wiadomości żądania, UUID_V4 | | version | string | N | Numer wersji protokołu żądania. Obecnie stały: 1 |

PayloadObject

Atrybut

Typ

Opcjonalne

Opis

service_address

string

N

Adres usługi. Na przykład, http:///

name

string

N

Nazwa usługi

Przykład żądania:

**Poprawne parametry odpowiedzi: **

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka żądania

payload

PayloadObject

N

Struktura ładunku żądania

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa nagłówka odpowiedzi. Parametr opcjonalny:

  • Odpowiedź (odpowiedź pomyślna)

  • ErrorResponse (odpowiedź z błędem) | | message_id | string | N | ID wiadomości nagłówka odpowiedzi, UUID_V4. Nadchodzące żądanie wiadomości tutaj: header.message_id | | version | string | N | Numer wersji protokołu żądania. Obecnie stały: 1 |

PayloadObject

Atrybut

Typ

Opcjonalne

Opis

engine_id

string

N

ID silnika przypisane przez bramkę

:::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. **Kod statusu: **200 OK Przykład odpowiedzi:: ::: Przykład poprawnej odpowiedzi::

**Parametry odpowiedzi w przypadku nieprawidłowości: **

Atrybut

Typ

Opcjonalne

Opis

type

string

N

Typ błędu

  • INVALID_PARAMETERS (Błąd parametrów)

  • AUTH_FAILURE (Błąd uwierzytelniania)

  • INTERNAL_ERROR (Wewnętrzny błąd usługi) | | description | string | N | Opis błędu |

Przykład odpowiedzi błędu::

b. Synchronizuj polecenie listy audio

Wyślij polecenie do Dostawcy usługi TTS przez bramkę.

:::porady

  • URL<adres usługi>

  • MetodaPOST

  • Nagłówek

    • Content-Type: application/json ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

directive

DirectiveObject

N

Informacje o strukturze obiektu instrukcji

DirectiveObject

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka żądania

payload

PayloadObject

N

Struktura ładunku żądania

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa żądania. Parametr opcjonalny:

  • SyncTTSAudioList | | message_id | string | N | ID wiadomości żądania, UUID_V4 | | version | string | N | Numer wersji protokołu żądania. Obecnie stały: 1 |

Przykład żądania:

**Poprawne parametry odpowiedzi: **

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka żądania

payload

PayloadObject

N

Struktura ładunku żądania

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa nagłówka odpowiedzi. Parametr opcjonalny:

  • Odpowiedź (odpowiedź pomyślna)

  • ErrorResponse (odpowiedź z błędem) | | message_id | string | N | ID wiadomości nagłówka odpowiedzi, UUID_V4. Nadchodzące żądanie wiadomości tutaj: header.message_id | | version | string | N | Numer wersji protokołu żądania. Obecnie stały: 1 |

PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

audio_list

AudioObject []

N

Lista audio TTS

Struktura AudioObject

Atrybut

Typ

Opcjonalne

Opis

url

string

N

URL pliku audio, na przykład:

https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3

label

string

Y

Etykieta pliku audio

:::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. **Kod statusu: **200 OK Przykład odpowiedzi:: ::: Przykład poprawnej odpowiedzi::

**Parametry odpowiedzi w przypadku nieprawidłowości: **

Atrybut

Typ

Opcjonalne

Opis

type

string

N

Typ błędu

  • INVALID_PARAMETERS (Błąd parametrów)

  • AUTH_FAILURE (Błąd uwierzytelniania)

  • INTERNAL_ERROR (Wewnętrzny błąd usługi) | | description | string | N | Opis błędu |

Przykład odpowiedzi błędu::

c. Polecenie syntezy mowy

Wyślij polecenie do Dostawcy usługi TTS przez bramkę.

:::porady

  • URL<adres usługi>

  • MetodaPOST

  • Nagłówek

    • Content-Type: application/json ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

directive

DirectiveObject

N

Informacje o strukturze obiektu instrukcji

DirectiveObject

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka żądania

payload

PayloadObject

N

Struktura ładunku żądania

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa żądania. Parametr opcjonalny:

  • SynthesizeSpeech | | message_id | string | N | ID wiadomości żądania: UUID_V4 | | version | string | N | Numer wersji protokołu żądania. Obecnie stały: 1 |

PayloadObject

Atrybut

Typ

Opcjonalne

Opis

text

string

N

Tekst używany do syntezy audio

label

string

Y

Etykieta pliku audio

language

string

Y

Pole przeźroczyste. Opcjonalny kod języka dla żądania syntezy mowy. Konkretna lista obsługiwanych kodów językowych jest dostarczana przez dostawcę usługi silnika TTS. Należy zauważyć, że usługa silnika TTS musi obsługiwać domyślny język do syntezy mowy, co oznacza, że jeśli język nie zostanie przekazany, do syntezy zostanie użyty domyślny język silnika.

options

object

Y

Pole przeźroczyste. Służy do przekazania parametrów konfiguracyjnych wymaganych do syntezy do usługi silnika TTS.

Przykład żądania:

**Poprawne parametry odpowiedzi: **

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka żądania

payload

PayloadObject

N

Struktura ładunku żądania

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa nagłówka odpowiedzi. Parametr opcjonalny:

  • Odpowiedź (odpowiedź pomyślna)

  • ErrorResponse (odpowiedź z błędem) | | message_id | string | N | ID wiadomości nagłówka odpowiedzi, UUID_V4. Nadchodzące żądanie wiadomości tutaj: header.message_id | | version | string | N | Numer wersji protokołu żądania. Obecnie stały: 1 |

PayloadObject

Atrybut

Typ

Opcjonalne

Opis

audio

AudioObject

N

Audio TTS

Struktura AudioObject

Atrybut

Typ

Opcjonalne

Opis

url

string

N

URL pliku audio, na przykład:

https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3

label

string

Y

Etykieta pliku audio

:::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. **Kod statusu: **200 OK Przykład odpowiedzi:: ::: Przykład poprawnej odpowiedzi::

**Parametry odpowiedzi w przypadku nieprawidłowości: **

Atrybut

Typ

Opcjonalne

Opis

type

string

N

Typ błędu

  • INVALID_PARAMETERS (Błąd parametrów)

  • AUTH_FAILURE (Błąd uwierzytelniania)

  • INTERNAL_ERROR (Wewnętrzny błąd usługi) | | description | string | N | Opis błędu |

Przykład odpowiedzi błędu::

7. Moduł multimedialny

7.1 Odtwarzanie pliku audio

:::porady

  • URL/open-api/V2/rest/media/audio-player

  • MetodaPOST

  • Nagłówek

    • Content-Type: application/json

    • Autoryzacja: Bearer ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

audio_url

string

N

Adres URL audio

Poprawna odpowiedź z danymi: :::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. **Kod statusu: **200 OK Przykład odpowiedzi:: :::

8. Niestandardowa karta UI

Niestandardowe karty UI pozwalają wyświetlać dowolne treści w karcie. Treść ta może być stroną internetową, obrazem lub dowolną usługą z interfejsem użytkownika. Wystarczy podać URL treści, którą chcesz wyświetlić. Karta UI automatycznie dopasuje swoją szerokość i wysokość, a zawartość zostanie wyrenderowana przy użyciu iFrame.

8.1 Instrukcja

Kluczowa rola

  • Dostawca usługi UI: Dostawca odpowiedzialny za tworzenie niestandardowych kart UI na bramce.

  • Serwer bramki: Serwer bramki (iHost).

  • Klient Open API bramki: Klient Open API dla bramki.

8.1.1 Tworzenie niestandardowej karty UI

  • [Dostawca usługi UI]: Wywołuje API w celu utworzenia niestandardowej karty UI na bramce.

  • [Serwer bramki]: Po pomyślnej rejestracji bramka przechowuje podstawowe informacje o karcie UI (w tym konfigurację rozmiaru i URL zasobu karty) oraz przydziela wewnętrzne ID karty UI w bramce.

image.png

8.1.2 Pobieranie listy kart UI

  • [Dostawca usługi UI]: Wywołuje API, aby pobrać listę kart UI.

  • [Serwer bramki]: Zwraca listę kart UI przechowywanych na bramce, w tym niestandardowe karty UI nie utworzone przez wywołującego.

image.png

8.1.3 Modyfikowanie konfiguracji określonej karty UI

  • [Dostawca usługi UI]: Wywołuje API, aby zmodyfikować konfigurację określonej karty UI, taką jak konfiguracja rozmiaru i URL zasobu.

  • [Serwer bramki]: Po pomyślnej modyfikacji bramka zapisuje zaktualizowane informacje o karcie UI, w tym nową konfigurację rozmiaru i URL zasobu.

image.png

8.1.4 Usuwanie niestandardowej karty UI

  1. [Dostawca usługi UI]: Wywołuje API, aby usunąć określoną niestandardową kartę UI.

  2. [Serwer bramki]: Bramka usunie wszystkie informacje związane z określoną kartą UI.

image.png

8.2 Moduł niestandardowej karty UI

8.2.1 Tworzenie niestandardowej karty UI

Dostawca usługi UI wysyła żądanie do bramki w celu utworzenia niestandardowej karty UI.

:::porady

  • URL/open-api/v2/rest/ui/cards

  • MetodaPOST

  • Nagłówek

    • Content-Type: application/json

    • Autoryzacja: Bearer ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

label

string

Y

Etykieta karty: Służy do opisu karty. Jest to alias karty.

cast_settings

CastSettingsObject

Y

Ustawienia karty Cast: Ustawienia konfiguracyjne dla kart cast.

web_settings

WebSettingsObject

N

Ustawienia karty Web: Ustawienia konfiguracyjne dla kart web.

CastSettingsObject:

Atrybut

Typ

Opcjonalne

Opis

dimensions

DimensionObject []

N

Konfiguracja rozmiaru: Musi zawierać co najmniej jedną konfigurację.

domyślny

string

N

Specyfikacja domyślna: Domyślna specyfikacja rozmiaru jest używana, z opcjonalnymi parametrami: 2x2

WebSettingsObject:

Atrybut

Typ

Opcjonalne

Opis

dimensions

DimensionObject []

N

Konfiguracja rozmiaru: Musi zawierać co najmniej jedną konfigurację.

drawer_component

DrawerObject

Y

Ustawienia wyświetlania komponentu Drawer.

domyślny

string

N

Specyfikacja domyślna:

  • 1x1

  • 2x1 |

DimensionObject:

Atrybut

Typ

Opcjonalne

Opis

src

string

N

URL zasobu: Na przykład: http://example.html

size

string

N

Specyfikacje rozmiaru:

Opcjonalne parametry CastSettingsObject:

  • 2×2

Opcjonalne parametry WebSettingsObject:

  • 1x1

  • 2x1 |

DrawerObject:

Atrybut

Typ

Opcjonalne

Opis

src

string

N

URL zasobu: Na przykład: http://example.html

Pomyślna odpowiedź z danymi:

Atrybut

Typ

Opcjonalne

Opis

id

string

N

Unikalne ID karty UI

:::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: ** 200 OK ::: 示例 żądania:

Przykład odpowiedzi:

8.2.2 Pobierz listę kart UI

:::porady

  • URL/open-api/v2/rest/ui/cards

  • MetodaGET

  • Nagłówek

    • Content-Type: application/json

    • Autoryzacja: Bearer ::: Parametry żądania: Brak Parametry odpowiedzi:

Atrybut

Typ

Opcjonalne

Opis

data

CardObject[]

N

Lista kart UI

CardObjec Object:

Atrybut

Typ

Opcjonalne

Opis

id

string

N

ID karty: Unikalny identyfikator karty.

label

string

Y

Etykieta karty: Służy do opisu karty. Pełni funkcję aliasu lub nazwy karty.

cast_settings

CastSettingsObject

Y

Etykieta karty: Służy do opisu karty. Jest to alias karty.

web_settings

WebSettingsObject

N

Ustawienia karty Cast: Ustawienia konfiguracyjne dla kart cast.

app_name

string

Y

Ustawienia karty Web: Ustawienia konfiguracyjne dla kart web.

CastSettingsObject:

Atrybut

Typ

Opcjonalne

Opis

dimensions

DimensionObject []

N

Konfiguracja rozmiaru: Musi zawierać co najmniej jedną konfigurację.

domyślny

string

N

Specyfikacja domyślna:

Parametr opcjonalny: 2x2

używany

string

N

Aktualna specyfikacja:

Parametr opcjonalny: 2x2

WebSettingsObject:

Atrybut

Typ

Opcjonalne

Opis

dimensions

DimensionObject []

N

Konfiguracja rozmiaru: Musi zawierać co najmniej jedną konfigurację.

drawer_component

DrawerObject

Y

Ustawienia wyświetlania komponentu Drawer.

domyślny

string

N

Specyfikacja domyślna:

Parametr opcjonalny:

  • 1x1

  • 2x1 | | used | string | N | Aktualna specyfikacja: Parametr opcjonalny:

  • 1x1

  • 2x1 |

DimensionObject:

Atrybut

Typ

Opcjonalne

Opis

src

string

N

URL zasobu: Na przykład: http://example.html

size

string

N

Specyfikacje rozmiaru:

Parametr opcjonalny:

  • 1x1

  • 2x1

Uwaga: Obecnie karty cast obsługują tylko specyfikację 2x2. Specyfikacja 2x2 nie będzie skuteczna. |

DrawerObject:

Atrybut

Typ

Opcjonalne

Opis

src

string

N

URL zasobu: Na przykład: http://example.html

Przykład odpowiedzi:

8.2.3 Modyfikacja konfiguracji określonej karty UI

Autoryzowani użytkownicy mogą modyfikować konfigurację istniejącej karty UI za pomocą tego interfejsu. Dostawcy usług niestandardowych kart mogą modyfikować tylko karty UI, które sami utworzyli.

:::porady

  • URL/open-api/v2/rest/ui/cards/{id}

  • MetodaPUT

  • Nagłówek

    • Content-Type: application/json

    • Autoryzacja: Bearer ::: Parametry żądania:

Atrybut

Typ

Opcjonalne

Opis

label

string

Y

Służy do opisu karty. Jest to alias karty.

cast_settings

CastSettingsObject

Y

Ustawienia karty Cast

web_settings

WebSettingsObject

Y

Ustawienia karty Web

CastSettingsObject:

Atrybut

Typ

Opcjonalne

Opis

używany

string

Y, Którykolwiek używany lub src musi być dostarczony, ale wymagany jest co najmniej jeden z tych parametrów.

Aktualna specyfikacja:

Parametr opcjonalny:

  • 2x2

| | src | string | Y, Którykolwiek używany lub src musi być dostarczony, ale wymagany jest co najmniej jeden z tych parametrów. | URL zasobu: http://example.html |

WebSettingsObject:

Atrybut

Typ

Opcjonalne

Opis

używany

string

Y, Którykolwiek używany lub src musi być dostarczony, ale wymagany jest co najmniej jeden z tych parametrów.

Aktualna specyfikacja:

Parametr opcjonalny:

  • 1x1

  • 2x1 | | src | string | Y, Którykolwiek używany lub src musi być dostarczony, ale wymagany jest co najmniej jeden z tych parametrów. | URL zasobu: http://example.html |

Pomyślna odpowiedź z danymi: :::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. Karta UI będąca przedmiotem modyfikacji musi być utworzona przez dostawcę niestandardowych kart UI wywołującego interfejs. **Kod statusu: ** 200 OK Kod błędu:

  • 406: Brak uprawnień do dostępu do tego zasobu ::: **Przykład odpowiedzi: **

**Przykład żądania: **

8.2.4 Usuwanie niestandardowej karty UI

Autoryzowani użytkownicy mogą usuwać istniejącą kartę UI za pomocą tego interfejsu. Dostawcy niestandardowych kart mogą usuwać tylko karty UI, które sami utworzyli.

:::porady

  • URL/open-api/v2/rest/ui/cards/{id}

  • MetodaDELETE

  • Nagłówek

    • Content-Type: application/json

    • Autoryzacja: Bearer ::: Parametry żądania: Brak Pomyślna odpowiedź z danymi: :::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. Karta UI będąca przedmiotem modyfikacji musi być utworzona przez dostawcę niestandardowych kart UI wywołującego interfejs. **Kod statusu: ** 200 OK Kod błędu:

  • 406: Brak uprawnień do dostępu do tego zasobu. ::: **Przykład odpowiedzi: **

Last updated