Przewodnik 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.
Zaloguj się do swojego routera bezprzewodowego i sprawdź adres IP bramy w DHCP.
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.
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:
Bit 0: Pozwala na przeglądanie tego elementu konfiguracji
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:
Gdy
**type = enum**:Pole
value(opisujące wartość elementu konfiguracji) jest wymagane jeślipermissionpozwala na modyfikację ("10"lub"11").Pole
default(opisujące wartość domyślną elementu konfiguracji) orazvalues(opisujące możliwe wartości do wyboru dla elementu konfiguracji) pola są opcjonalne.
Gdy
**type = numeric**:Pole
valuepole jest wymagane jeślipermissionpozwala 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ą)
Gdy
**type = object**:Pole
valuepole jest wymagane jeślipermissionpozwala na modyfikację ("10"lub"11").Pole
defaultpole jest opcjonalne.
Gdy
**type = boolean**:Pole
valuepole jest wymagane jeślipermissionpozwala na modyfikację ("10"lub"11").Pole
defaultpole jest opcjonalne.
Gdy
**type = string**:Pole
valuepole jest wymagane jeślipermissionpozwala na modyfikację ("10"lub"11").Pole
defaultpole jest opcjonalne. |
3. Web API
Typ danych
string
Typ danych string. Kodowanie UTF8.
number
Typ danych liczbowy. podwójna precyzja 64-bitowy format binarny IEEE 754
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
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
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_tokenMetoda:
GETNagłó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/runtimeMetoda:
GETNagłó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/configMetoda:
PUTNagłó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/bridgeMetoda:
GETNagłó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/muteMetoda:
PUTNagłó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/unmuteMetoda:
PUTNagłó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_alarmMetoda:
PUTNagłó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/rebootMetoda:
POSTNagłó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/speakerMetoda:
POSTNagłó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
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>
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:
Błąd dostępu do adresu strumienia kamery (błąd formatu, błąd autoryzacji, wyjątek sieciowy itp.)
Urządzenie już istnieje
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}Metoda:
DELETENagłó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/securityMetoda:
GETNagłó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}/enableMetoda:
PUTNagłó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}/disableMetoda:
PUTNagłó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/enableMetoda:
PUTNagłó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/disableMetoda:
PUTNagłó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
Określ klasyfikację urządzenia w bramie. Szczegóły sprawdź w [Obsługiwane typy urządzeń].
Określ możliwości, które urządzenie może udostępniać. Szczegóły sprawdź w [Obsługiwane możliwości urządzeń].
Wywołaj interfejs [Discovery Request], aby dodać urządzenie do bramy.
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ę.
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.
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
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:
Strony trzecie muszą odpowiedzieć na żądanie bramy w ciągu 3s. W przeciwnym razie brama uzna przetwarzanie polecenia za przekroczone czasowo.
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_events
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
Metoda:
GET::: Parametry żądania:
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: :::
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: :::
endpoint
EndpointObject
N
Informacje o urządzeniu
payload
object。 Struktura taka sama jak stan urządzenia
N
Dane stanu urządzenia
EndpointObject:
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: :::
endpoint
EndpointObject
N
Informacje o urządzeniu
payload
DeviceChangeObject
N
Dane zmiany urządzenia
EndpointObject:
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
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: :::
endpoint
EndpointObject
N
Informacje o urządzeniu
EndpointObject:
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: :::
endpoint
EndpointObject
N
Informacje o urządzeniu
payload
DeviceChangeObject
N
Dane zmiany urządzenia
EndpointObject:
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
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| Uzbrojonydisarming| 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| Uzbrojonydisarming| 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
【Dostawca usługi TTS】Wywołuje interfejs w celu zarejestrowania silnika TTS na bramie.
【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
【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ę).
【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
【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ę).
【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.
【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ę).
【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)
【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/enginesMetoda:
GETNagłó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-listMetoda:
GETNagłó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}/synthesizeMetoda:
POSTNagłó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/eventMetoda:
POSTNagłó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>Metoda:
POSTNagłó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>Metoda:
POSTNagłó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-playerMetoda:
POSTNagłó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
[Dostawca usługi UI]: Wywołuje API w celu usunięcia określonej niestandardowej karty UI.
[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/cardsMetoda:
POSTNagłó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/cardsMetoda:
GETNagłó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}Metoda:
PUTNagłó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żywanelubsrcmusi 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}Metoda:
DELETENagłó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 OKKod błędu:
406: Brak uprawnień do dostępu do tego zasobu. ::: **Przykład odpowiedzi: **
Last updated