square-codePrzewodnik dla deweloperów i API

1. Rozpoczęcie użytkowania

1.1 Przygotowanie

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

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

Uwaga: Jeśli masz kilka bram, możesz uzyskać odpowiadający adres IP, aby uzyskać dostęp do określonej bramy na dwa poniższe sposoby.

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

  2. CUBE obsługuje lokalne wykrywanie przez mDNS.

1.2 Rozpoczęcie

  • Wywołaj interfejs [Access Token], i otrzymasz odpowiedź o błędzie, z komunikatem zachęcającym do kliknięcia <Gotowe>. Zwróć uwagę, ż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://<ip address>/open-api/V2/rest/bridge/access_token' --header 'Content-Type: application/json'

// Odpowiedź
{
  "error": 401,
  "data": {},
  "message": "link button not pressed" 
}
  • Kliknij <Gotowe> i wywołaj ponownie 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 tokenu dostępu do CUBE: Po wywołaniu interfejsu [Access Token], na stronie konsoli WWW CUBE pojawia się globalne wyskakujące okno z prośbą o potwierdzenie uzyskania poświadczeń dostępu do interfejsu.

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

2. Główne pojęcia

2.1 Adres interfejsu deweloperskiego

Interfejs Web API bramy 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 przełącznik, wtyczka, światło itp. Informacja ta określi efekt wyświetlania UI urządzenia w bramie.

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

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

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

    • permission: Opisuje uprawnienia związane z możliwością. Typ to string, sformatowany jako kod binarny 8421. Przykłady obejmują:

      • Urządzenie sterowalne: "1000"

      • Urządzenie konfigurowalne: "0010"

      • Urządzenie sterowalne i konfigurowalne: "1010"

      • Urządzenie sterowalne i raportujące: "1100"

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

settings: Opisuje elementy konfiguracji dla możliwości, które są typu obiekt i zawierają opis każdego elementu konfiguracji. i. key: Opisuje nazwę elementu konfiguracji, która jest typu string. Kilka angielskich słów powinno być zapisanych w camelCase. Na przykład: "temperatureUnit". ii. value: Opisuje zawartość elementu konfiguracji. Szczegółowe specyfikacje opisano w poniższej tabeli.

Atrybut
Typ
Opcjonalne
Opis

permission

string

N

Opisuje uprawnienia dla elementu konfiguracji.

Wartości opcjonalne:

  • 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. Wartości opcjonalne:

  • "enum"

  • "numeric"

  • "object"

  • "boolean"

  • "string"

Wytyczne specyficzne dla typu:

  1. Gdy **type = enum**:

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

    • Pole default (opisujące wartość domyślną elementu konfiguracji) oraz values (opisujące możliwe wartości do wyboru dla elementu konfiguracji) pola są opcjonalne.

  2. Gdy **type = numeric**:

    • Pole value pole jest wymagane jeśli permission pozwala na modyfikację ("10" lub "11").

    • Poniższe pola są opcjonalne:

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

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

      • step (opisujące krok wartości dla elementu konfiguracji)

      • precision (opisujące precyzję)

      • unit (opisujące jednostkę elementu konfiguracji)

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

  3. Gdy **type = object**:

    • Pole value pole jest wymagane jeśli permission pozwala na modyfikację ("10" lub "11").

    • Pole default pole jest opcjonalne.

  4. Gdy **type = boolean**:

    • Pole value pole jest wymagane jeśli permission pozwala na modyfikację ("10" lub "11").

    • Pole default pole jest opcjonalne.

  5. Gdy **type = string**:

    • Pole value pole jest wymagane jeśli permission pozwala na modyfikację ("10" lub "11").

    • Pole default pole jest opcjonalne. |

3. Web API

Typ danych

Typ
Opis

string

Typ danych string. Kodowanie UTF8.

int

Typ danych całkowity.

object

Typ danych obiekt. Obiekt zgodny z JSON

string[]

Tablica stringów

int[]

Tablica wartości całkowitych

object[]

Tablica obiektów

bool

Boolean

date

Ciąg czasu. Ciąg w formacie ISO (ISO 8601 Extended Format): YYYY-MM-DDTHH:mm:ss.sssZ. Strefa czasowa jest zawsze UTC (Coordinated Universal Time), 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, treść to success

Gdy error jest różny od 0, jest to niepusty string, a treść to 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 zdarzenia głębokie | - bootComplete (Uruchomienie systemu zakończone)

  • networkConnected (Sieć połączona)

  • networkDisconnected (Sieć rozłączona)

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

  • system Armed (System uzbrojony włączony)

  • system Disarmed (System uzbrojony wyłączony)

  • factoryReset (Reset urządzenia) |

3.1 Funkcje bramy

a. Token dostępu

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

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

  • Uwaga: Po uzyskaniu tokenu trzeba 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ź danych:

Atrybut

Typ

Opcjonalne

Opis

token

string

N

Token dostępu do interfejsu. Jest ważny przez długi czas, proszę go 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 bramy

Pozwól uprawnionym użytkownikom uzyskać status bramy 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ź danych:

Atrybut

Typ

Opcjonalne

Opis

ram_used

int

N

Procent wykorzystania pamięci RAM.[0-100]

cpu_used

int

N

Procent wykorzystania 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

values:'c', 'f'

sd_card_used

int

Y

Wykorzystanie karty SD (procent):

Zakres:[0-100] z precyzją 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, a weryfikacja tożsamości użytkownika przeszła. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

c. Konfiguracja bramy

Pozwól uprawnionym użytkownikom ustawić bramę 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ź danych: pusty Obiekt {} :::porady Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika przeszła. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

d. Pobierz informacje o bramie

Pozwól uprawnionym użytkownikom uzyskać informacje o bramie 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 bramy

fw_version

string

N

Wersja oprogramowania układowego

name

string

N

Nazwa urządzenia

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

e. Wyciszenie bramy

Pozwala uprawnionym użytkownikom wyciszyć bramę 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ź danych: pusty Obiekt {} :::porady Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika przeszła. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

f. Wyłączenie wyciszenia bramy

Pozwala uprawnionym użytkownikom wyłączyć wyciszenie bramy 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ź danych: pusty Obiekt {} :::porady Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika przeszła. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

g. Anulowanie alarmu bramy

Pozwala uprawnionym użytkownikom wyłączyć stan dźwięku alarmu na bramie 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ź danych: pusty Obiekt {} :::porady Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika przeszła. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

3.2 Funkcje sprzętowe

a. Restart bramy

Pozwól uprawnionemu użytkownikowi zrestartować bramę 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ź danych: pusty Obiekt {} :::porady Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika przeszła. **Kod stanu: **200 OK :::

b. Sterowanie głośnikiem

Pozwól uprawnionym 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 sygnał dźwiękowy)

sound

SoundObject

Y (N jeśli type to play_sound.)

Dźwięk.

beep

BeepObject

Y (N jeśli type to play_beep.)

Sygnał dźwiękowy

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 zdarzenia głębokiego. Obsługiwane wartości można sprawdzić w [Resource List - Supported deep]

volume

int

N

Głośność zdarzenia głębokiego. [0-100]

Pomyślna odpowiedź danych: pusty Obiekt {} :::porady Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika przeszła. **Kod stanu: ** 200 OK ::: Przykład odpowiedzi:

3.3 Funkcje zarządzania urządzeniami

a. Obsługiwany typ urządzenia

Typ urządzenia

Wartość

Wersja iHost

Wtyczka

plug

≥ 2.1.0

Przełącznik

switch

≥ 2.1.0

Światło

light

≥ 2.1.0

Zasłona

curtain

≥ 2.1.0

Czujnik drzwi/okna

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

Czujnik wycieku wody

waterLeakDetector

≥ 2.1.0

Czujnik 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 z oświetleniem

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ądzenia

Włącznik zasilania (power):

Przykład deklaracji możliwości:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterujące):

Włącz:

Wyłącz:

Przełącznik kanału (toggle):

Przykład deklaracji możliwości:

Przykład pojedynczego komponentu:

Przykład wielu komponentów:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterujące):

Format przełączania:

Inching kanału (toggle-inching):

Przykład deklaracji możliwości:

Atrybut stanu

Brak

Protokół (zapytanie o status i instrukcje sterujące)

Brak

Regulacja jasności (brightness):

Przykład deklaracji możliwości:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterujące):

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

Regulacja temperatury barwowej (color-temperature):

Przykład deklaracji możliwości:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterujące):

Dostosuj temperaturę barwową do 50%:

Regulacja koloru (color-rgb):

Przykład deklaracji możliwości:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterujące):

Ustaw kolor na fioletowy:

Regulacja procentowa (percentage):

Przykład deklaracji możliwości:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterujące):

Dostosuj do 40%:

Sterowanie silnikiem (motor-control):

Przykład deklaracji możliwości:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterujące):

Otwórz silnik:

Odwrócenie silnika (motor-reverse):

Przykład deklaracji możliwości:

Atrybut stanu:

Protokół (zapytanie o status i instrukcje sterujące):

Ustaw silnik do przodu:

Kalibracja silnika (motor-clb)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (raportowanie stanu):

Zgłoś, że stan silnika jest w trakcie kalibracji:

Stan włączenia zasilania przy starcie (startup)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Ustaw stan zasilania na zawsze włączony:


Aktywacja po przebudzeniu (identify)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (raportowanie stanu i instrukcje sterujące):

Ustaw czas aktywacji po przebudzeniu:

Zgłoś status aktywacji:

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

Przykład deklaracji możliwości:

Atrybuty (Stan):

Rozpocznij/Zatrzymaj statystyki w czasie rzeczywistym:

Zapytaj o zużycie energii według zakresu czasu:

Odpowiedz wynikiem statystyk w obrębie zakresu czasu:

Protokół (raportowanie stanu i instrukcje sterujące):

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 możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Format:

Przykład:

Tryb termostatu (thermostat-mode)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

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

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

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

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie czujnika (detect)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie temperatury (temperature)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie wilgotności (humidity)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie stanu baterii (battery)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie pojedynczego przycisku (press)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie wielokrotnego przycisku (multi-press)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie siły sygnału (rssi)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie sabotażu (tamper-alert)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie natężenia oświetlenia (illumination-level)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie napięcia (voltage)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie natężenia prądu (electric-current)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie mocy elektrycznej (electric-power)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie usterek (fault)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wyłącznik progu (threshold-breaker)

Przykład deklaracji możliwości:

Atrybuty (Stan)

  • Brak

Protokół (zapytanie o status i instrukcje sterujące)

  • Brak

Funkcja inch (inching)

Przykład deklaracji możliwości:

Atrybuty (Stan):

  • Brak

Protokół (zapytanie o status i instrukcje sterujące):

  • Brak

Strumień kamery (camera-stream)

Przykład deklaracji możliwości:

Atrybuty (Stan):

  • Brak

Protokół (zapytanie o status i instrukcje sterujące):

  • Brak

Sterowanie trybem (mode)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie dwutlenku węgla (co2)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie oświetlenia (illumination)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie dymu (smoke)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie otwarcia/zamknięcia drzwi magnetycznych (kontakt)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie ruchu (motion)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie wycieku wody (water-leak)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Przełącznik wykrywania okna (window-detection)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Przełącznik blokady rodzicielskiej (child-lock)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Przełącznik przeciwbezpośredniego uderzenia (anti-direct-blow)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Przełącznik poziomego wachlowania (horizontal-swing)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Przełącznik pionowego wachlowania (vertical-swing)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Przełącznik trybu ECO (eco)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Przełącznik uruchamiania (toggle-startup)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykryj przytrzymanie (detect-hold)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

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

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Przełącznik wykrywania napięcia (toggle-voltage)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie prądu elektrycznego podkomponentu (toggle-electric-current)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie mocy podkomponentu (toggle-electric-power)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Statystyka zużycia energii podkomponentu (toggle-power-consumption)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Rozpocznij/Zatrzymaj statystyki w czasie rzeczywistym:

Zapytaj o zużycie energii według zakresu czasu:

Odpowiedź dla zużycia energii w ramach zakresu czasowego:

Protokół (zapytanie o status i instrukcje sterujące):

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 możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Konfiguracja funkcjonalna (configuration)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

System (system)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wilgotność (moisture)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Ciśnienie atmosferyczne (barometric-pressure)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Prędkość wiatru (wind-speed)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Kierunek wiatru (wind-direction)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Opady (rainfall)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Indeks ultrafioletowy (ultraviolet-index)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Przewodność elektryczna (electrical-conductivity)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Moc nadawcza (transmit-power)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie PM2.5 (pm25)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Indeks VOC (voc-index)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Wykrywanie gazu ziemnego (gas)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Status pracy nawadniania (irrigation/work-status)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Raportowanie statusu pracy:

Zapytanie o status pracy:

Wynik zapytania o status pracy:

Tryb pracy nawadniania (irrigation/work-mode)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Protokół (zapytanie o status i instrukcje sterujące):

Automatyczny sterownik nawadniania (irrigation/auto-controller)

Przykład deklaracji możliwości:

Atrybuty (Stan):

Harmonogram jednorazowy lub powtarzany:

Jednorazowa lub powtarzana objętość:

Protokół (zapytanie o status i instrukcje sterujące):

Harmonogram jednorazowy lub powtarzany:

Jednorazowa lub powtarzana objętość:

Obsługiwane tryby presetów

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

fanLevel (poziom wentylatora)

"low"

"medium"

"high"

thermostatMode (tryb termostatu)

"auto"

"manual"

airConditionerMode >= 1.11.0 (Tryb klimatyzatora)

"cool"

"heat"

"auto"

"fan"

"dry"

fanMode >= 1.11.0 (Tryb wentylatora)

"normal"

"sleep"

"child"

horizontalAngle >= 1.11.0 (Kąt poziomy)

"30"

"60"

"90"

"120"

"180"

"360"

verticalAngle >= 1.11.0 (Kąt pionowy)

"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. Specjalny kod błędu i opis

Kod błędu

Opis

Wersja iHost

110000

Podurządzenie/grupa odpowiadająca id nie istnieje

≥2.1.0

110001

Brama jest w stanie wykrywania urządzeń zigbee

≥2.1.0

110002

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

≥2.1.0

110003

Niepoprawna liczba urządzeń

≥2.1.0

110004

Niepoprawna liczba grup

≥2.1.0

110005

Urządzenie offline

≥2.1.0

110006

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

≥2.1.0

110007

Nie udało się zaktualizować stanu 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 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 wykrywania kamer onvif

≥2.1.0

110017

Przekroczono maksymalną liczbę dodanych kamer

≥2.1.0

110018

Ścieżka kamery ESP jest nieprawidłowa

≥2.1.0

110019

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

≥2.1.0

e. Wyszukiwanie podurządzeń

Pozwól autoryzowanym użytkownikom włączyć lub wyłączyć wyszukiwanie podurządzeń przez bramę za pomocą tego interfejsu

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

  • 💡Uwaga: Podurządzenia Zigbee zostaną automatycznie dodane po wyszukaniu. Nie ma potrzeby używania interfejsu "Ręcznie dodaj podurzą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ź danych: pusty Obiekt {} :::porady Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika przeszła. **Kod stanu: ** 200 OK ::: Przykład odpowiedzi:

f. Ręczne dodawanie podurządzenia

Pozwól autoryzowanym użytkownikom dodać pojedyncze podurządzenie za pomocą tego interfejsu.

  • Uwaga: Obecnie obsługiwane są tylko kamery RTSP i ESP32 Camera :::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 podurządzenia

display_category

string

N

Typ urządzenia. Obsługiwane tylko kamery.

capabilities

CapabilityObject[]

N

Lista możliwości. Gdy display_category = camera, capabilities zawiera 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"

permission

string

N

Uprawnienia urządzenia. Obsługiwane tylko odczytywanie.

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

permission

string

N

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

value

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ół przesyłania strumieni czasu rzeczywistego)

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 w URL.

Pomyślna odpowiedź danych:

Atrybut

Typ

Opcjonalne

Opis

serial_number

string

N

Unikalny numer seryjny urządzenia

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

Odpowiedź z danymi niepowodzenia: 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 nie powiedzie się, zwracane są wszystkie urządzenia jako nieudane do dodania.

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ę podurządzeń

Pozwól autoryzowanym użytkownikom uzyskać listę podurządzeń bramy za pomocą 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ź danych:

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, front-end wyświetli ją zgodnie z domyślnymi zasadami wyświetlania.

manufacturer

string

N

Producent

model

string

N

Model urządzenia

firmware_version

string

N

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

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 został wypełniony przy uzyskiwaniu certyfikatu interfejsu otwartego, wszystkie późniejsze urządzenia podłączone przez ten certyfikat będą zapisywane w tym polu.

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

stan

object

Y

Obiekt stanu urządzenia. Przykłady stanów dla różnych możliwości znajdziesz w 【Obsługiwane możliwości urządzeń】

tagi

object

Y

Klucz-wartość w formacie JSON, niestandardowe informacje o urządzeniu. Funkcje są następujące: - Używane do przechowywania kanałów urządzenia - Używane do przechowywania jednostek temperatury - Niestandardowe informacje dla innych urządzeń stron trzecich

online

boolean

N

Stan online: True oznacza onlineFalse oznacza offline

podsiec

boolean

Y

Czy znajduje się w tej samej podsieci co brama

CapabilityObject 💡Uwaga: Sprawdź przykłady obsługiwanych możliwości urządzeń w [Obsługiwane możliwości urządzeń].

Atrybut

Typ

Opcjonalne

Opis

capability

string

N

Nazwa możliwości. Szczegóły sprawdź w [Obsługiwane możliwości urządzeń]

permission

string

N

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

configuration

object

Y

Informacje konfiguracyjne możliwości. Aktualnie używane camera-stream, sprawdź [Obsługiwane możliwości urządzeń]

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, a weryfikacja tożsamości użytkownika przeszła. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

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

Pozwól autoryzowanym użytkownikom modyfikować podstawowe informacje o urządzeniu podrzędnym i wydawać polecenia sterujące za pomocą tego interfejsu. :::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

tagi

object

Y

Klucz-wartość w formacie JSON, niestandardowe informacje o urządzeniu.

stan

object

Y

Obiekt stanu urządzenia. Przykłady stanów dla różnych możliwości znajdziesz w [Obsługiwane możliwości urządzeń]

configuration

object

Y

Informacje konfiguracyjne możliwości, obecnie modyfikacji podlega tylko capability camera_stream.

Pomyślna odpowiedź z danymi: :::tips Warunki: Parametry żądania są poprawne, a weryfikacja tożsamości użytkownika zakończona sukcesem. **Kod stanu: **200 OK Kod błędu:

  • 110000 Urządzenie podrzędne/grupa odpowiadająca id nie istnieje ::: Przykład odpowiedzi:

i. Usuń urządzenie podrzędne

Pozwól autoryzowanym użytkownikom usuwać urządzenia podrzędne za pomocą tego interfejsu. :::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.

tagi

object

Y

Pary klucz-wartość w formacie JSON używane do przechowywania nazw kanałów urządzeń i innych informacji o urządzeniach podrzędnych.

stan

object

Y

Zmień stan urządzenia; szczegóły protokołu znajdują się w "Obsługiwane możliwości urządzeń."

capabilities

CapabilityObject []

Y

Informacje konfiguracyjne możliwości; wszystkie możliwości, które obsługują ustawienia konfiguracji, mogą być modyfikowane. Uwaga: uprawnień nie można zmieniać.

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

  • 110000: Urządzenie podrzędne/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 strony trzeciej.

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

j. Usuń urządzenie podrzędne

Pozwala autoryzowanym użytkownikom usuwać urządzenia podrzędne za pomocą tego interfejsu. :::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, a weryfikacja tożsamości użytkownika przeszła. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

k. Zapytaj o stan urządzenia

Pozwala autoryzowanym użytkownikom zapytać o stan urządzenia za pomocą tego interfejsu. :::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 "Obsługiwane możliwości urządzeń."

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

3.4 Zarządzanie zabezpieczeniami

a. Pobierz listę zabezpieczeń

Pozwala autoryzowanym użytkownikom modyfikować ustawienia bramy za pomocą tego interfejsu. :::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 zabezpieczeń

name

string

N

Nazwa zabezpieczenia

enable

bool

N

Czy włączone

  • true Włączone

  • false Wyłączone |

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

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

Pozwala autoryzowanym użytkownikom włączyć określony tryb zabezpieczeń za pomocą tego interfejsu. :::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, a weryfikacja tożsamości użytkownika przeszła. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

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

Pozwala autoryzowanym użytkownikom wyłączyć określony tryb zabezpieczeń za pomocą tego interfejsu. :::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, a weryfikacja tożsamości użytkownika przeszła. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

d. Jednoprzyciskowe włączenie zabezpieczeń

Pozwala autoryzowanym użytkownikom włączyć tryb jednoprzyciskowego ustawienia zabezpieczeń za pomocą tego interfejsu. :::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, a weryfikacja tożsamości użytkownika przeszła. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

e. Wyłącz zabezpieczenia

Pozwala autoryzowanym użytkownikom wyłączyć zabezpieczenia za pomocą tego interfejsu. :::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, a weryfikacja tożsamości użytkownika przeszła. **Kod stanu: **200 OK ::: Przykład odpowiedzi:

4. Urządzenia stron trzecich — dostęp

4.1 Instrukcja dostępu

Dostęp do urządzenia

Dostęp bramy stron trzecich

Kroki dostępu

  1. Określ klasyfikację urządzenia w bramie. Szczegóły sprawdź w [Obsługiwane typy urządzeń].

  2. Określ możliwości, które urządzenie może udostępniać. Szczegóły sprawdź w [Obsługiwane możliwości urządzeń].

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

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

  4. Jeśli stan urządzenia strony trzeciej się zmieni, musisz wywołać interfejs [Device States Change Report], aby przesłać najnowszy stan z powrotem do bramy.

  5. Po dodaniu urządzenie strony trzeciej pojawi się na liście urządzeń i będzie miało większość funkcji bramy (inne urządzenia nie będące stroną trzecią). Typowe 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 połączeniu urządzenia z bramą.

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

Proces programowy

a. Dostęp urządzenia

b. Dostęp bramy stron trzecich

4.2 Przykład dostępu

Włącznik, Wtyczka

Synchronizuj urządzenia stron trzecich

Zgłoś stan urządzenia

Zgłoś offline/online

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

Zapytaj o urządzenie

4.3 Web API

Interfejs żądań dla stron trzecich do bramy

Format żądania

Pozwala autoryzowanym użytkownikom wysyłać żądania zdarzeń do bramy za pomocą tego interfejsu. :::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 w żądaniu

EventObject

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka w żądaniu

endpoint

EndpointObject

Y

Struktura endpointu w żądaniuUwaga: To pole jest puste podczas synchronizacji nowej listy urządzeń.

payload

PayloadObject

N

Struktura ładunku (payload) w żądaniu

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

tagi

object

Y

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

PayloadObject Zależnie od różnych header.name struktura żądania jest różna.

Format odpowiedzi

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

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka odpowiedzi

payload

PayloadObject

N

Struktura payloadu 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 brakujący, pole to będzie pustym ciągiem 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 różna. Szczegóły znajdują się w instrukcji konkretnego żądania.

Odpowiedź o błędzie--PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

type

string

N

Typy błędów:

  • INVALID_PARAMETERS: Błąd parametru

  • 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ądzenia do bramy, domyślnie jest ono online, czyli online=true. Późniejsze zmiany online są całkowicie zależne od synchronizacji ze stroną trzecią poprzez 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 [Obsługiwane typy urządzeń]. *Urządzenia stron trzecich obecnie nie obsługują dodawania kamer.

capabilities

CapabilityObject[]

N

Lista możliwości

stan

object

N

Początkowe informacje o stanie

manufacturer

string

N

Producent

model

string

N

Model urządzenia

tagi

object

Y

Klucz-wartość w formacie JSON, 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 oprogramowania układowego

service_address

string

N

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 uruchamiać powiązaną scenę.

Parametry żądania: PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

stan

object

N

Stan urządzenia, zobacz [Obsługiwane możliwości urządzeń] dla szczegółów

Przykład żądania :

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

DeviceOnlineChangeReport Raport stanu online urządzenia

  • Uwaga: Powtarzające się raporty stanu mogą fałszywie uruchamiać powiązaną scenę.

Parametry żądania: PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

online

boolean

N

Stan online urządzenia true: Online

false: Offline

Przykład żądania :

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

DeviceInformationUpdatedReport Raport aktualizacji informacji o urządzeniu

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

Parametry żądania: PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

capabilities

| CapabilityObject[]

| N

| Lista możliwości. Szczegóły znajdują się w sekcji obsługiwanych możliwości urządzeń. **Uwaga:** Ten parametr zaktualizuje tylko value z ustawienia klucza w CapabilityObject, a aktualizacje są dozwolone tylko jeśli permission dla ustawienia klucza jest 11 lub 01. Szczegółową definicję struktury ustawienia w CapabilityObjectodsyłaj do szczegółowego opisu w sekcji 2.3 Kategorie wyświetlania urządzeń i możliwości urządzeń. | | tags

| object

| Y

| Klucz-wartość w formacie JSON, 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:

Brama wysyła interfejs poleceń przez adres usługi urządzenia

  • Uwaga:

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

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

Format żądania

Brama wysyła instrukcje 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 w żądaniu

endpoint

EndpointObject

N

Struktura endpointu w żądaniu

payload

PayloadObject

N

Struktura ładunku (payload) w żądaniu

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa żądania. Parametry opcjonalne: UpdateDeviceStates: Aktualizuj stany urządzeń

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

tagi

object

N

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

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

Przykład żądania :

Format odpowiedzi

:::tips **HTTP Kod stanu: **200 OK Atrybuty odpowiedzi HTTP: :::

Atrybut

Typ

Opcjonalne

Opis

event

EventObject

N

Struktura zdarzenia odpowiedzi

EventObject

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka w żądaniu

payload

PayloadObject

N

Struktura ładunku (payload) w żądaniu

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa nagłówka odpowiedzi. Parametr opcjonalny: UpdateDeviceStatesResponse: Odpowiedź na aktualizację stanów urządzeń 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 różna. Szczegóły znajdują się w instrukcji konkretnego żądania.

Odpowiedź o błędzie--PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

type

string

N

Typy błędów:

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

  • ENDPOINT_LOW_POWER: Urządzenie jest w trybie niskiego poboru mocy i nie może być sterowane

  • INVALID_DIRECTIVE: Nieprawidłowa dyrektywa od bramy

  • 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 przycisku pilota nie został nauczony |

:::porady Warunki: Parametry żądania są poprawne. **Kod stanu: **200 OK Parametry odpowiedzi: :::

UpdateDeviceStates

Parametry żądania: PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

stan

object

N

Stan urządzenia, zobacz [Obsługiwane możliwości urządzeń] dla szczegółów.

Przykład żądania :

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

QueryDeviceStates

Parametry żądania: PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

stan

object

N

Stan urządzenia, zobacz [Obsługiwane możliwości urządzeń] dla szczegółów.

Przykład żądania :

Parametry odpowiedzi: PayloadObject:

Atrybut

Typ

Opcjonalne

Opis

stan

object

N

Stan urządzenia, zobacz [Obsługiwane możliwości urządzeń] dla szczegółów.

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. Wydarzenia wysyłane przez serwer (Server-sent events)

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

5.1 Instrukcja

Bramka wspiera 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 analizować treść wiadomości push zgodnie z protokołem powiadomień zdarzeń interfejsu po otrzymaniu wiadomości wysłanych przez bramę. Należy zauważyć, że brama obecnie używa protokołu HTTP1.1, więc w przeglądarce SSE będzie ograniczenie maksymalnie do nie więcej niż 6 połączeń (Szczegółowe instrukcje znajdują się 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 brama sprawdzi access_token i zwróci błąd uwierzytelnienia, 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 strony trzeciej. Dla urządzeń podłączonych przez otwarte interfejsy, pole to 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 strony trzeciej. Dla urządzeń podłączonych przez otwarte interfejsy, pole to jest wymagane.

DeviceChangeObject

Nazwa
Typ
Opcjonalne
Opis

name

string

N

Nazwa urządzenia

capabilities

CapabilityObject []

Y

Lista możliwości urządzenia.

tagi

object

Y

tagiobject | 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 strony trzeciej. Dla urządzeń podłączonych przez otwarte interfejsy, pole to jest wymagane.

Przykład:

e. Zdarzenie aktualizacji stanu 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 strony trzeciej. Dla urządzeń podłączonych przez otwarte interfejsy, pole to jest wymagane.

DeviceChangeObject

Nazwa
Typ
Opcjonalne
Opis

online

boolean

N

Stan online urządzenia

Przykład:

5.4 Moduł bramy

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ł zabezpieczeń

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 uzbrajania/rozbrajania |

DetailObject:

Atrybut

Typ

Opcjonalne

Opis

sid

int

N

id trybu zabezpieczeń

name

string

N

Nazwa zabezpieczenia

Przykład

6. TTS (Silnik syntezy mowy (Text-to-Speech)

6.1 Instrukcja

Kluczowa rola

  • Dostawca usługi TTS: Dostawca usługi silnika TTS odpowiada za zarejestrowanie silnika TTS na bramie i świadczenie usług TTS

  • Serwer bramy:iHost

  • Klient Open API bramy

6.1.1 Rejestrowanie usługi silnika TTS

  1. 【Dostawca usługi TTS】Wywołuje interfejs w celu zarejestrowania silnika TTS na bramie.

  2. 【Serwer bramy】Po pomyślnej rejestracji brama zapisze podstawowe informacje o silniku TTS (w tym adres usługi server_address, a dalsza komunikacja między bramą a Dostawcą usług TTS będzie odbywać się przez adres server_address) oraz przydzieli wewnętrzne ID usługi silnika TTS w bramie.

6.1.2 Pobierz listę zsyntetyzowanych plików audio

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

  2. 【Klient Open API bramy】Wywołuje interfejs, aby uzyskać listę audio określonego silnika TTS. Brama wyda synchroniczne polecenie listy audio do określonego Dostawcy usługi TTS i zwróci wynik.

6.1.3 Synteza mowy z określeniem silnika mowy

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

  2. 【Klient Open API bramy】Wywołuje interfejs, aby uzyskać listę audio określonego silnika TTS. Brama wyda synchroniczne polecenie listy audio do określonego Dostawcy usługi TTS i zwróci wynik.

6.1.4 Syntetyzuj audio i odtwarzaj mowę TTS.

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

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

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

6.2 Moduł silnika TTS

6.2.1 Otwarte możliwości bramy

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 przydzielone przez bramę

name

string

N

Nazwa usługi silnika TS

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

b. Pobierz listę audio 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

:::wskazówki Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **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 zsyntetyzowania audio

label

string

Y

Etykieta pliku audio

language

string

Y

Pole przezroczyste. 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 pamiętać, ż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 przezroczyste. Służy do przekazywania parametrów konfiguracyjnych wymaganych do syntezy do usługi silnika mowy 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

:::wskazówki Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK **Kod błędu: **

  • 190000 Silnik działa nieprawidłowo

Przykład odpowiedzi:: :::

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

a. Rejestrowanie usługi silnika TTS

Wysłanie żądania do bramy 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 w żądaniu

payload

PayloadObject

N

Struktura ładunku (payload) w żądaniu

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa żądania. Parametr opcjonalny.

  • RegisterTTSEngine | | message_id | string | N | ID komunikatu żądania, UUID_V4 | | version | string | N | Wersja protokołu żądania. Obecnie ustalona na 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 w żądaniu

payload

PayloadObject

N

Struktura ładunku (payload) w żądaniu

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa nagłówka odpowiedzi. Parametr opcjonalny:

  • Odpowiedź (Odpowiedź pomyślna)

  • ErrorResponse (Odpowiedź błędu) | | message_id | string | N | ID komunikatu nagłówka odpowiedzi, UUID_V4. Tutaj wiadomość żądania przychodzącego: header.message_id | | version | string | N | Wersja protokołu żądania. Obecnie ustalona na 1 |

PayloadObject

Atrybut

Typ

Opcjonalne

Opis

engine_id

string

N

ID silnika przydzielone przez bramę

:::wskazówki Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK Przykład odpowiedzi:: ::: Poprawny przykład odpowiedzi::

**Parametry odpowiedzi przy 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 (Błąd wewnętrzny usługi) | | description | string | N | Opis błędu |

Przykład odpowiedzi błędu::

b. Synchronizuj polecenie listy audio

Wysłanie polecenia do Dostawcy usługi TTS przez bramę.

:::porady

  • URL<adres usługi>

  • MetodaPOST

  • Nagłówek

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

Atrybut

Typ

Opcjonalne

Opis

directive

DirectiveObject

N

Struktura informacji obiektu polecenia

DirectiveObject

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka w żądaniu

payload

PayloadObject

N

Struktura ładunku (payload) w żądaniu

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa żądania. Parametr opcjonalny:

  • SyncTTSAudioList | | message_id | string | N | ID komunikatu żądania, UUID_V4 | | version | string | N | Wersja protokołu żądania. Obecnie ustalona na 1 |

Przykład żądania:

**Poprawne parametry odpowiedzi: **

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka w żądaniu

payload

PayloadObject

N

Struktura ładunku (payload) w żądaniu

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa nagłówka odpowiedzi. Parametr opcjonalny:

  • Odpowiedź (Odpowiedź pomyślna)

  • ErrorResponse (Odpowiedź błędu) | | message_id | string | N | ID komunikatu nagłówka odpowiedzi, UUID_V4. Tutaj wiadomość żądania przychodzącego: header.message_id | | version | string | N | Wersja protokołu żądania. Obecnie ustalona na 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

:::wskazówki Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK Przykład odpowiedzi:: ::: Poprawny przykład odpowiedzi::

**Parametry odpowiedzi przy 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 (Błąd wewnętrzny usługi) | | description | string | N | Opis błędu |

Przykład odpowiedzi błędu::

c. Polecenie syntezy mowy

Wysłanie polecenia do Dostawcy usługi TTS przez bramę.

:::porady

  • URL<adres usługi>

  • MetodaPOST

  • Nagłówek

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

Atrybut

Typ

Opcjonalne

Opis

directive

DirectiveObject

N

Struktura informacji obiektu polecenia

DirectiveObject

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka w żądaniu

payload

PayloadObject

N

Struktura ładunku (payload) w żądaniu

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa żądania. Parametr opcjonalny:

  • SynthesizeSpeech | | message_id | string | N | ID komunikatu żądania: UUID_V4 | | version | string | N | Wersja protokołu żądania. Obecnie ustalona na 1 |

PayloadObject

Atrybut

Typ

Opcjonalne

Opis

text

string

N

Tekst używany do zsyntetyzowania audio

label

string

Y

Etykieta pliku audio

language

string

Y

Pole przezroczyste. 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 pamiętać, ż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 przezroczyste. Służy do przekazywania parametrów konfiguracyjnych wymaganych do syntezy do usługi silnika mowy TTS.

Przykład żądania:

**Poprawne parametry odpowiedzi: **

Atrybut

Typ

Opcjonalne

Opis

header

HeaderObject

N

Struktura nagłówka w żądaniu

payload

PayloadObject

N

Struktura ładunku (payload) w żądaniu

HeaderObject

Atrybut

Typ

Opcjonalne

Opis

name

string

N

Nazwa nagłówka odpowiedzi. Parametr opcjonalny:

  • Odpowiedź (Odpowiedź pomyślna)

  • ErrorResponse (Odpowiedź błędu) | | message_id | string | N | ID komunikatu nagłówka odpowiedzi, UUID_V4. Tutaj wiadomość żądania przychodzącego: header.message_id | | version | string | N | Wersja protokołu żądania. Obecnie ustalona na 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

:::wskazówki Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK Przykład odpowiedzi:: ::: Poprawny przykład odpowiedzi::

**Parametry odpowiedzi przy 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 (Błąd wewnętrzny 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: :::wskazówki Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK Przykład odpowiedzi:: :::

8. Niestandardowa karta UI

Niestandardowe karty UI pozwalają wyświetlać dowolne treści w karcie. Treścią może być strona internetowa, obraz lub dowolna usługa 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 bramie.

  • Serwer bramy: Serwer bramy (iHost).

  • Klient Open API bramy: Klient Open API dla bramy.

8.1.1 Tworzenie niestandardowej karty UI

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

  • [Serwer bramy]: Po pomyślnej rejestracji brama zapisuje podstawowe informacje o karcie UI (w tym konfigurację rozmiaru i URL zasobu karty) i przypisuje wewnętrzne ID karty UI w bramie.

8.1.2 Pobieranie listy kart UI

  • [Dostawca usługi UI]: Wywołuje API w celu pobrania listy kart UI.

  • [Serwer bramy]: Zwraca listę kart UI przechowywanych na bramie, w tym niestandardowe karty UI nieutworzone przez wywołującego.

8.1.3 Modyfikacja konfiguracji określonej karty UI

  • [Dostawca usługi UI]: Wywołuje API w celu modyfikacji konfiguracji określonej karty UI, takiej jak konfiguracja rozmiaru i URL zasobu.

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

8.1.4 Usuwanie niestandardowej karty UI

  1. [Dostawca usługi UI]: Wywołuje API w celu usunięcia określonej niestandardowej karty UI.

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

8.2 Moduł niestandardowej karty UI

8.2.1 Tworzenie niestandardowej karty UI

Dostawca usługi UI wysyła żądanie do bramy, aby utworzyć niestandardową kartę 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ę.

default

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.

default

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

Atrybut

Typ

Opcjonalne

Opis

id

string

N

Unikalne ID karty UI

:::porady Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika przeszła. **Kod stanu: ** 200 OK ::: Przykład żą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

Obiekt CardObjec:

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 rolę 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ę.

default

string

N

Specyfikacja domyślna:

Parametr opcjonalny: 2x2

używane

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.

default

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

Użytkownicy z autoryzacją mogą modyfikować konfigurację istniejącej karty UI za pomocą tego interfejsu. Dostawcy usług niestandardowych kart mogą modyfikować tylko te 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żywane

string

Y, Jeden z nich używane lub src musi być dostarczony, ale wymagany jest co najmniej jeden z tych parametrów.

Aktualna specyfikacja:

Parametr opcjonalny:

  • 2x2

| | src | string | Y, Jeden z nich używane 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żywane

string

Y, Jeden z nich używane lub src musi być dostarczony, ale wymagany jest co najmniej jeden z tych parametrów.

Aktualna specyfikacja:

Parametr opcjonalny:

  • 1x1

  • 2x1 | | src | string | Y, Jeden z nich używane 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 została pomyślnie przeprowadzona. Karta UI podlegająca modyfikacji musi być utworzona przez dostawcę niestandardowej karty UI wywołującego interfejs. **Kod stanu: ** 200 OK Kod błędu:

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

**Przykład żądania: **

8.2.4 Usuń niestandardową kartę UI

Użytkownicy z autoryzacją mają uprawnienia do usunięcia istniejącej karty UI za pomocą tego interfejsu. Dostawcy niestandardowych kart mogą usuwać tylko te 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: :::wskazówki Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. Karta UI podlegająca modyfikacji musi być utworzona przez dostawcę niestandardowej karty UI wywołującego interfejs. **Kod stanu: ** 200 OK Kod błędu:

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

Last updated