Dla deweloperów i przewodnik po API
1. Rozpoczęcie użytkowania
1.1 Przygotowanie
Krok 1. Upewnij się, że bramka jest włączona i działa prawidłowo.
Krok 2. Upewnij się, że bramka i komputer są podłączone do tej samej sieci LAN. Następnie wpisz URL CUBE w przeglądarce.
Uwaga: Jeśli masz kilka bramek, możesz uzyskać odpowiedni adres IP, aby uzyskać dostęp do określonej bramki na dwa poniższe sposoby.
Zaloguj się do swojego routera bezprzewodowego i sprawdź adres IP bramki w DHCP.
CUBE obsługuje lokalne wykrywanie za pomocą mDNS.
1.2 Rozpocznij
Wywołaj interfejs [Access Token], i otrzymasz odpowiedź o błędzie, z komunikatem wzywającym do kliknięcia <Gotowe>. Zauważ, że po naciśnięciu dostęp do interfejsu jest ważny nie dłużej niż 5 minut.
// Żądanie
curl --location --request GET 'http://<adres ip>/open-api/V2/rest/bridge/access_token' --header 'Content-Type: application/json'
// Odpowiedź
{
"error": 401,
"data": {},
"message": "link button not pressed"
}Kliknij <Gotowe> i ponownie wywołaj interfejs [Access Token]. Odpowiedź jest pomyślna i token zostaje uzyskany.
Zweryfikuj token. Wywołaj interfejs [Get Device List]. Odpowiedź jest pomyślna i lista urządzeń zostaje pobrana.
Metoda uzyskania tokena dostępu do CUBE: Po wywołaniu interfejsu [Access Token], na stronie konsoli WWW CUBE pojawi się globalne okno wyskakujące, które wzywa użytkownika do potwierdzenia uzyskania poświadczeń wywołania interfejsu.
Uwaga: Jeśli otworzysz więcej niż jedną stronę konsoli WWW CUBE, okno potwierdzenia pojawi się na wielu stronach konsoli jednocześnie, a okno wyskakujące na innych stronach zostanie zamknięte po potwierdzeniu na jednej ze stron konsoli.
2. Główna koncepcja
2.1 Adres interfejsu deweloperskiego
Interfejs Web API bramki ma dwa sposoby dostępu (na podstawie IP lub nazwy domeny), zwykle ścieżka główna to /open-api/V2/rest/< specific function module >
// Dostęp przez IP http:///open-api/V2/rest/bridge
// Dostęp przez nazwę domeny http:///open-api/V2/rest/bridge
2.2 Kategoria wyświetlania urządzenia i możliwości
**Kategoria wyświetlania urządzenia (DisplayCategory).** Kategoria wyświetlania urządzenia służy do identyfikacji określonych kategorii (urządzeń), takich jak switch, plug, light itp. Informacja ta określi efekt wyświetlania UI urządzenia w bramce.
**Możliwość urządzenia.** Możliwość urządzenia służy do opisu konkretnych podfunkcji urządzenia. Na przykład sterowanie zasilaniem, sterowanie jasnością, sterowanie temperaturą barwową itd. Pojedyncze urządzenie może obsługiwać 1 lub więcej możliwości.
zdolność: Opisuje nazwę możliwości, która musi być globalnie unikalna i typu string. Wiele angielskich słów powinno być oddzielonych myślnikami ("-"). Na przykład:
"thermostat-target-setpoint".nazwa: Opisuje kategorię pod możliwością, również typu string. Wiele angielskich słów powinno być oddzielonych myślnikami ("-"). Na przykład:
"auto-mode","manual-mode".uprawnienie: Opisuje uprawnienia związane z możliwością. Typ to string, sformatowany w postaci kodu binarnego 8421. Przykłady obejmują:
Urządzenie możliwe do sterowania:
"1000"Urządzenie możliwe do skonfigurowania:
"0010"Urządzenie możliwe do sterowania i konfigurowania:
"1010"Urządzenie możliwe do sterowania i raportowania:
"1100"
Znaczenie każdego bitu, od prawej do lewej, jest następujące: ⅰ. Bit 0: Pozwala na zapytanie urządzenia ⅱ. Bit 1: Pozwala na konfigurację urządzenia ⅲ. Bit 2: Pozwala urządzeniu na raportowanie danych ⅳ. Bit 3: Pozwala na sterowanie urządzeniem
ustawienia: Opisuje elementy konfiguracji dla możliwości, które są typu obiekt i zawierają opis każdego elementu konfiguracji. ⅰ. klucz: Opisuje nazwę elementu konfiguracji, która jest typu string. Wiele angielskich słów powinno być wyrażone w camelCase. Na przykład: "temperatureUnit". ⅱ. wartość: Opisuje zawartość elementu konfiguracji. Konkretne specyfikacje są szczegółowo opisane w tabeli poniżej.
uprawnienie
string
N
Opisuje uprawnienia dla elementu konfiguracji.
Dostępne opcje:
Pozwól na modyfikację tego elementu konfiguracji:
"10"Pozwól na przeglądanie tego elementu konfiguracji:
"01"Pozwól zarówno na modyfikację, jak i przeglądanie tego elementu konfiguracji:
"11"
Wyjaśnienie bitów:
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. Dostępne opcje:
"enum""numeric""object""boolean""string"
Wytyczne specyficzne dla typów:
Kiedy
**type = enum**:Z
wartośćpole (opisujące wartość elementu konfiguracji) jest wymagane jeśliuprawnieniepozwala na modyfikację ("10"lub"11").Z
domyślny(opisujący wartość domyślną elementu konfiguracji) orazwartości(opisujące dostępne wartości dla elementu konfiguracji) pola są opcjonalne.
Kiedy
**type = numeric**:Z
wartośćpole jest wymagane jeśliuprawnieniepozwala na modyfikację ("10"lub"11").Następujące pola są opcjonalne:
min(opisujące minimalną wartość elementu konfiguracji)max(opisujące maksymalną wartość elementu konfiguracji)krok(opisujące wartość kroku dla elementu konfiguracji)dokładność(opisujące precyzję)jednostka(opisujące jednostkę elementu konfiguracji)domyślny(opisujące wartość domyślną)
Kiedy
**type = object**:Z
wartośćpole jest wymagane jeśliuprawnieniepozwala na modyfikację ("10"lub"11").Z
domyślnypole jest opcjonalne.
Kiedy
**type = boolean**:Z
wartośćpole jest wymagane jeśliuprawnieniepozwala na modyfikację ("10"lub"11").Z
domyślnypole jest opcjonalne.
Kiedy
**type = string**:Z
wartośćpole jest wymagane jeśliuprawnieniepozwala na modyfikację ("10"lub"11").Z
domyślnypole 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łkowitych.
object
Typ danych obiekt. Obiekt zgodny z JSON
string[]
Tablica stringów
int[]
Tablica liczb całkowitych
object[]
Tablica obiektów
bool
Wartość logiczna
date
Ciąg czasu. Ciąg w formacie ISO (ISO 8601 Extended Format): YYYY-MM-DDTHH:mm:ss.sssZ. Strefa czasowa jest zawsze UTC (Uniwersalny Czas Koordynowany), oznaczona sufiksem "Z".
Ogólne wyniki odpowiedzi
error
int
N
Kod błędu:
0: Sukces
400: Błąd parametru
401: Uwierzytelnianie nie powiodło się
500: Wyjątek serwera
data
object
N
Treść danych odpowiedzi
message
string
N
Opis odpowiedzi:
Gdy error jest równy 0, zawartość to success
Gdy error jest różny od 0, jest to niepusty ciąg znaków i zawiera opis błędu.
Przykład odpowiedzi:
Lista zasobów
Obsługiwane dźwięki
- alert1 (Dźwięk alarmu 1)
alert2 (Dźwięk alarmu 2)
alert3 (Dźwięk alarmu 3)
alert4 (Dźwięk alarmu 4)
alert5 (Dźwięk alarmu 5)
doorbell1 (Dźwięk dzwonka 1)
doorbell2 (Dźwięk dzwonka 2)
doorbell3 (Dźwięk dzwonka 3)
doorbell4 (Dźwięk dzwonka 4)
doorbell5 (Dźwięk dzwonka 5)
alarm1 (Dźwięk alarmu 1)
alarm2 (Dźwięk alarmu 2)
alarm3 (Dźwięk alarmu 3)
alarm4 (Dźwięk alarmu 4)
alarm5 (Dźwięk alarmu 5) | | Obsługiwane deep | - bootComplete (Uruchamianie systemu zakończone)
networkConnected (Sieć połączona)
networkDisconnected (Sieć rozłączona)
systemShutdown (Zamknięcie systemu) -deviceDiscovered (Wykryto urządzenie)
system Armed (System uzbrojony/aktywowany)
system Disarmed (System rozbrojony/dezaktywowany)
factoryReset (Reset urządzenia) |
3.1 Funkcja bramki
a. Token dostępu
Pozwól użytkownikom uzyskać token dostępu.
Uwaga: Token zostanie wyczyszczony po zresetowaniu urządzenia.
Uwaga: Po uzyskaniu tokena musisz ponownie nacisnąć przycisk, aby pomyślnie uzyskać nowy token.
:::porady
URL:
/open-api/V2/rest/bridge/access_tokenMetoda:
GETNagłówek:
Content-Type: application/json ::: Parametry żądania:
Atrybut
Typ
Opcjonalne
Opis
app_name
string
Y
Opis nazwy aplikacji.
Pomyślna odpowiedź z danymi:
Atrybut
Typ
Opcjonalne
Opis
token
string
N
Token dostępu do interfejsu. Jest ważny długo, proszę zapisać
app_name
string
Y
Opis nazwy aplikacji.
:::porady Warunek : Użytkownik wyzwala < command key > i uzyskuje dostęp do tego interfejsu w czasie ważności. **Kod stanu: **200 OK ::: Przykład odpowiedzi:
Niepowodzenie odpowiedzi danych:pusty obiekt :::porady Warunki:Użytkownik nie wyzwolił < command key >, lub czas ważności wygasł. **Kod stanu: ** 200 OK ::: Przykład odpowiedzi:
b. Pobierz stan bramki
Pozwól autoryzowanym użytkownikom uzyskać status bramki przez ten interfejs :::porady
URL:
/open-api/V2/rest/bridge/runtimeMetoda:
GETNagłówek:
Content-Type: application/json
Autorization: Bearer ::: Parametry żądania: brak Pomyślna odpowiedź z danymi:
Atrybut
Typ
Opcjonalne
Opis
ram_used
int
N
Procent użycia pamięci RAM.[0-100]
cpu_used
int
N
Procent użycia CPU. [0-100]
power_up_time
date
N
Ostatni czas włączenia zasilania
cpu_temp
int
N
Temperatura CPU:
Jednostka: Celsjusz
cpu_temp_unit
string
N
Jednostka temperatury CPU:
Opcjonalne
wartości:'c', 'f'
sd_card_used
int
Y
Użycie karty SD (procent):
Zakres:[0-100] z dokładnością do jednego miejsca po przecinku
*Uwaga: Jeśli karta SD nie jest włożona lub nie jest sformatowana, wartość jest pusta.
:::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:
c. Konfiguracja bramki
Pozwala autoryzowanym użytkownikom ustawić bramkę przez ten interfejs :::porady
URL:
/open-api/V2/rest/bridge/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ź z danymi: pusty obiekt {} :::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:
d. Pobierz informacje o bramce
Pozwól autoryzowanym użytkownikom uzyskać informacje o bramce przez ten interfejs :::porady
URL:
/open-api/V2/rest/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 bramki
fw_version
string
N
Wersja firmware
name
string
N
Nazwa urządzenia
Pomyślna odpowiedź z danymi: pusty obiekt {} :::porady Warunki: Brak **Kod stanu: **200 OK ::: Przykład odpowiedzi:
e. Wyciszenie bramki
Pozwala autoryzowanym użytkownikom wyciszyć bramkę przez ten interfejs. :::porady
URL:
/open-api/v2/rest/bridge/muteMetoda:
PUTNagłówek:
Content-Type: application/json
Authorization: Bearer ::: Parametry żądania: brak Pomyślna odpowiedź z danymi: pusty obiekt {} :::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:
f. Wyłączenie wyciszenia bramki
Pozwala autoryzowanym użytkownikom wyłączyć wyciszenie bramki przez ten interfejs. :::porady
URL:
/open-api/v2/rest/bridge/unmuteMetoda:
PUTNagłówek:
Content-Type: application/json
Authorization: Bearer ::: Parametry żądania: brak Pomyślna odpowiedź z danymi: pusty obiekt {} :::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:
g. Anuluj alarm bramki
Pozwala autoryzowanym użytkownikom wyłączyć stan dźwięku alarmu na bramce przez ten interfejs. :::porady
URL:
/open-api/v2/rest/bridge/cancel_alarmMetoda:
PUTNagłówek:
Content-Type: application/json
Authorization: Bearer ::: Parametry żądania: brak Pomyślna odpowiedź z danymi: pusty obiekt {} :::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:
3.2 Funkcje sprzętowe
a. Restart bramki
Pozwala autoryzowanemu użytkownikowi zrestartować bramkę przez ten interfejs :::porady
URL:
/open-api/V2/rest/hardware/rebootMetoda:
POSTNagłówek:
Content-Type: application/json
Autorization: Bearer ::: Parametry żądania: brak Pomyślna odpowiedź z danymi: pusty obiekt {} :::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK :::
b. Sterowanie głośnikiem
Pozwala autoryzowanym użytkownikom sterować głośnikiem przez ten interfejs :::porady
URL:
/open-api/V2/rest/hardware/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 pik)
sound
SoundObject
Y (N jeśli type to play_sound.)
Dźwięk.
beep
BeepObject
Y (N jeśli type to play_beep.)
Pik
SoundObject
Atrybut
Typ
Opcjonalne
Opis
name
string
N
Nazwa dźwięku. Obsługiwane wartości można sprawdzić w [Resource List - Supported sound]
volume
int
N
Głośność dźwięku. [0-100]
countdown
int
N
Czas trwania odtwarzania dźwięku przez głośnik; odtwarzanie zatrzyma się automatycznie po upływie czasu. Jednostka: sekunda. [0,1799]
BeepObject
Atrybut
Typ
Opcjonalne
Opis
name
string
N
Nazwa deep. Obsługiwane wartości można sprawdzić w [Resource List - Supported deep]
volume
int
N
Głośność deep. [0-100]
Pomyślna odpowiedź z danymi: pusty obiekt {} :::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: ** 200 OK ::: Przykład odpowiedzi:
3.3 Funkcje zarządzania urządzeniami
a. Obsługiwane typy urządzeń
Typ urządzenia
Wartość
Wersja iHost
Gniazdko
plug
≥ 2.1.0
Włącznik
switch
≥ 2.1.0
Światło
light
≥ 2.1.0
Zasłona
curtain
≥ 2.1.0
Czujnik drzwi/okien
contactSensor
≥ 2.1.0
Czujnik ruchu
motionSensor
≥ 2.1.0
Czujnik temperatury
temperatureSensor
≥ 2.1.0
Czujnik wilgotności
humiditySensor
≥ 2.1.0
Czujnik temperatury i wilgotności
temperatureAndHumiditySensor
≥ 2.1.0
Detektor wycieku wody
waterLeakDetector
≥ 2.1.0
Detektor dymu
smokeDetector
≥ 2.1.0
Przycisk bezprzewodowy
button
≥ 2.1.0
Kamera
camera
≥ 2.1.0
Ogólny czujnik
sensor
≥ 2.1.0
Ogólny czujnik
sensor
≥ 2.1.0
Wentylator ze światłem
fanLight
≥ 2.1.0
Klimatyzator
airConditioner
≥ 2.1.0
Wentylator
fan
≥ 2.1.0
Termostat
thermostat
≥ 2.1.0
b. Obsługiwane możliwości urządzeń
Przełącznik zasilania (power):
Przykład deklaracji zdolności:
Atrybut stanu:
Protokół (zapytanie o status i instrukcje sterowania):
Włącz:
Wyłącz:
Przełączanie kanału (toggle):
Przykład deklaracji zdolności:
Przykład pojedynczego elementu:
Przykład wielu komponentów:
Atrybut stanu:
Protokół (zapytanie o status i instrukcje sterowania):
Format przełączania:
Inching kanału (toggle-inching):
Przykład deklaracji zdolności:
Atrybut stanu
Brak
Protokół (zapytanie o status i instrukcje sterowania)
Brak
Regulacja jasności (brightness):
Przykład deklaracji zdolności:
Atrybut stanu:
Protokół (zapytanie o status i instrukcje sterowania):
Ustaw jasność na 80%. (0 = najciemniej, 100 = najjaśniej.)
Regulacja temperatury barwowej (color-temperature):
Przykład deklaracji zdolności:
Atrybut stanu:
Protokół (zapytanie o status i instrukcje sterowania):
Dostosuj temperaturę barwową do 50%:
Regulacja koloru (color-rgb):
Przykład deklaracji zdolności:
Atrybut stanu:
Protokół (zapytanie o status i instrukcje sterowania):
Ustaw kolor na purpurowy:
Regulacja procentowa (percentage):
Przykład deklaracji zdolności:
Atrybut stanu:
Protokół (zapytanie o status i instrukcje sterowania):
Dostosuj do 40%:
Sterowanie silnikiem (motor-control):
Przykład deklaracji zdolności:
Atrybut stanu:
Protokół (zapytanie o status i instrukcje sterowania):
Otwórz silnik:
Odwrócenie kierunku silnika (motor-reverse):
Przykład deklaracji zdolności:
Atrybut stanu:
Protokół (zapytanie o status i instrukcje sterowania):
Ustaw silnik na pracę do przodu:
Kalibracja silnika (motor-clb)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (raportowanie statusu):
Zgłoś, że silnik jest kalibrowany:
Stan włączenia zasilania (startup)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Ustaw stan zasilania na zawsze włączony:
Aktywacja budzenia (identify)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (raportowanie statusu i instrukcje sterowania):
Ustaw czas aktywacji budzenia:
Zgłoś status aktywacji:
Przełącznik statystyk zużycia energii w czasie rzeczywistym (power-consumption)
Przykład deklaracji zdolności:
Atrybuty (stan):
Rozpocznij/Zatrzymaj statystyki w czasie rzeczywistym:
Zapytaj o zużycie energii w przedziale czasowym:
Odpowiedz wynikiem statystyk w zadanym przedziale czasowym:
Protokół (raportowanie statusu i instrukcje sterowania):
Rozpocznij statystyki czasu rzeczywistego:
Zatrzymaj statystyki czasu rzeczywistego:
Pobierz historyczne zużycie energii:
Pobierz zużycie energii w czasie rzeczywistym:
Wykrywanie trybu temperatury i wilgotności (thermostat-mode-detect)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Format:
Przykład:
Tryb termostatu (thermostat-mode)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Status adaptacyjnego odzyskiwania termostatu (thermostat/adaptive-recovery-status)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Ustawienie docelowej temperatury trybu termostatu (thermostat-target-setpoint)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie czujników (detect)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie temperatury (temperature)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie wilgotności (humidity)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie stanu baterii (battery)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie pojedynczego przycisku (press)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie wielokrotnego naciśnięcia (multi-press)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie siły sygnału (rssi)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie manipulacji (tamper-alert)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie poziomu oświetlenia (illumination-level)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie napięcia (voltage)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie prądu elektrycznego (electric-current)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie mocy elektrycznej (electric-power)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie błędów (fault)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Przełącznik progowy (threshold-breaker)
Przykład deklaracji zdolności:
Atrybuty (stan)
Brak
Protokół (zapytanie o status i instrukcje sterowania)
Brak
Funkcja inch (inching)
Przykład deklaracji zdolności:
Atrybuty (stan):
Brak
Protokół (zapytanie o status i instrukcje sterowania):
Brak
Strumień kamery (camera-stream)
Przykład deklaracji zdolności:
Atrybuty (stan):
Brak
Protokół (zapytanie o status i instrukcje sterowania):
Brak
Sterowanie trybem (mode)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie dwutlenku węgla (co2)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie oświetlenia (illumination)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie dymu (smoke)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie otwarcia/zamknięcia magnetycznego drzwi (contact)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie ruchu (motion)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie wycieku wody (water-leak)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Przełącznik wykrywania okna (window-detection)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Blokada dziecięca (child-lock)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Przełącznik przeciwdziałający bezpośredniemu nadmuchowi (anti-direct-blow)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Poziome wychylenie (horizontal-swing)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Pionowe wychylenie (vertical-swing)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Tryb ECO (eco)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Przełącznik stanu uruchamiania (toggle-startup)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie zatrzymania (detect-hold)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Przełącznik identyfikacji/aktywacji (toggle-identify)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie napięcia (toggle-voltage)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie prądu elektrycznego w podkomponencie (toggle-electric-current)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie mocy w podkomponencie (toggle-electric-power)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Statystyka zużycia energii w podkomponencie (toggle-power-consumption)
Przykład deklaracji zdolności:
Atrybuty (stan):
Rozpocznij/Zatrzymaj statystyki w czasie rzeczywistym:
Zapytaj o zużycie energii w przedziale czasowym:
Odpowiedź dla zużycia energii w obrębie zakresu czasu:
Protokół (zapytanie o status i instrukcje sterowania):
Rozpocznij statystyki czasu rzeczywistego:
Zatrzymaj statystyki czasu rzeczywistego:
Pobierz historyczne zużycie energii:
Pobierz zużycie energii w czasie rzeczywistym:
Wskaźnik jakości łącza (lqi)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Konfiguracja funkcjonalna (configuration)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
System (system)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wilgotność (moisture)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Ciśnienie barometryczne (barometric-pressure)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Prędkość wiatru (wind-speed)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Kierunek wiatru (wind-direction)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Opad (rainfall)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Indeks ultrafioletu (ultraviolet-index)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Przewodność elektryczna (electrical-conductivity)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Moc nadawcza (transmit-power)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie PM2.5 (pm25)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Indeks VOC (voc-index)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Wykrywanie gazu ziemnego (gas)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Status pracy nawadniania (irrigation/work-status)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Raportowanie statusu pracy:
Zapytanie o status pracy:
Wynik zapytania o status pracy:
Tryb pracy nawadniania (irrigation/work-mode)
Przykład deklaracji zdolności:
Atrybuty (stan):
Protokół (zapytanie o status i instrukcje sterowania):
Automatyczny sterownik nawadniania (irrigation/auto-controller)
Przykład deklaracji zdolności:
Atrybuty (stan):
Jednorazowe lub powtarzalne harmonogramowanie:
Jednorazowa lub powtarzalna objętość:
Protokół (zapytanie o status i instrukcje sterowania):
Jednorazowe lub powtarzalne harmonogramowanie:
Jednorazowa lub powtarzalna objętość:
Obsługiwane tryby wstępne
poziomWentylatora (fan Level)
"low"
"medium"
"high"
trybTermostatu (Thermostat Mode)
"auto"
"manual"
trybKlimatyzatora >= 1.11.0 (airConditioner Mode)
"cool"
"heat"
"auto"
"fan"
"dry"
trybWentylatora >= 1.11.0 (Fan Mode)
"normal"
"sleep"
"child"
kątPoziomy >= 1.11.0 (Horizontal Angle)
"30"
"60"
"90"
"120"
"180"
"360"
kątPionowy >= 1.11.0 (Vertical Angle)
"30"
"60"
"90"
"120"
"180"
"360"
c. Opis tagów
Specjalny klucz toggle służy do ustawienia nazwy podkomponentu toggle.
Specjalny klucz temperature_unit służy do ustawienia jednostki temperatury.
d. Specjalne kody błędów i opis
Kod błędu
Opis
Wersja iHost
110000
Pod-urządzenie/grupa odpowiadająca id nie istnieje
≥2.1.0
110001
Brama jest w stanie wyszukiwania urządzeń zigbee
≥2.1.0
110002
Urządzenia w grupie nie mają wspólnej funkcjonalności
≥2.1.0
110003
Nieprawidłowa liczba urządzeń
≥2.1.0
110004
Nieprawidłowa liczba grup
≥2.1.0
110005
Urządzenie offline
≥2.1.0
110006
Nie udało się zaktualizować statusu urządzenia
≥2.1.0
110007
Nie udało się zaktualizować statusu grupy
≥2.1.0
110008
Osiągnięto maksymalną liczbę grup. Utwórz do 50 grup
≥2.1.0
110009
Adres IP urządzenia kamery jest nieprawidłowy
≥2.1.0
110010
Błąd autoryzacji dostępu do urządzenia kamery
≥2.1.0
110011
Błąd adresu strumienia urządzenia kamery
≥2.1.0
110012
Kodowanie wideo urządzenia kamery nie jest obsługiwane
≥2.1.0
110013
Urządzenie już istnieje
≥2.1.0
110014
Kamera nie obsługuje działania w trybie offline
≥2.1.0
110015
Hasło konta nie jest zgodne z hasłem konta w adresie strumienia RTSP
≥2.1.0
110016
Brama jest w stanie wyszukiwania kamer onvif
≥2.1.0
110017
Przekroczono maksymalną liczbę dodanych kamer
≥2.1.0
110018
Ścieżka kamery ESP jest błędna
≥2.1.0
110019
Nie udało się uzyskać dostępu do adresu usługi urządzenia zewnętrznego
≥2.1.0
e. Wyszukiwanie pod-urządzenia
Pozwól autoryzowanym użytkownikom włączyć lub wyłączyć wyszukiwanie pod-urządzeń przez bramę za pośrednictwem tego interfejsu
💡Uwaga: Obecnie obsługiwane jest tylko wyszukiwanie pod-urządzeń Zigbee.
💡Uwaga: Pod-urządzenia Zigbee zostaną dodane automatycznie po wyszukiwaniu. Nie trzeba używać interfejsu "Ręcznie dodaj pod-urządzenia" :::tips
URL:/open-api/V2/rest/devices/discovery
Metoda: PUT
Nagłówek:
Content-Type: application/json
Autorization: Bearer ::: Parametry żądania:
Atrybut
Typ
Opcjonalne
Opis
enable
boolean
N
true (Rozpocznij parowanie); false (Wstrzymaj parowanie)
type
string
N
Typ wyszukiwania: Zigbee
Pomyślna odpowiedź z danymi: pusty obiekt {} :::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: ** 200 OK ::: Przykład odpowiedzi:
f. Ręczne dodawanie pod-urządzenia
Pozwól autoryzowanym użytkownikom dodać pojedyncze pod-urządzenie przez ten interfejs.
Uwaga: Obecnie obsługiwane są tylko kamery RTSP i ESP32-CAM :::tips
URL:/open-api/V2/rest/devices
Metoda:POST
Nagłówek:
Content-Type: application/json
Autorization: Bearer ::: Parametry żądania:
Atrybut
Typ
Opcjonalne
Opis
name
string
N
Nazwa pod-urządzenia
display_category
string
N
Typ urządzenia. Obsługiwane tylko kamery.
capabilities
CapabilityObject[]
N
Lista możliwości. Gdy display_category = camera, capabilities obejmują tylko możliwości camera-stream.
protocal
string
N
Protokół urządzenia. RTSP; ESP32-CAM
manufacturer
string
N
Producent.
model
string
N
Model urządzenia
firmware_version
string
N
Wersja oprogramowania urządzenia
CapabilityObject
Atrybut
Typ
Opcjonalne
Opis
capability
string
N
Nazwa możliwości. Obsługiwane tylko "camera-stream"
uprawnienie
string
N
Uprawnienie urządzenia. Obsługuje tylko odczyt.
configuration
CameraStreamConfigurationObject
Y
Konfiguracja strumienia kamery.
SettingsObject
Atrybut
Typ
Opcjonalne
Opis
streamSetting
StreamSettingObject
N
Konfiguracja usługi strumieniowej
StreamSettingObject
Atrybut
Typ
Opcjonalne
Opis
type
string
N
Konfiguracja usługi strumieniowej
uprawnienie
string
N
Uprawnienie do możliwości. Obsługuje tylko "11" (możliwe do modyfikacji).
wartość
StreamSettingValueObject
N
Konkretne wartości konfiguracji
StreamSettingValueObject
Atrybut
Typ
Opcjonalne
Opis
stream_url
string
N
Format URL strumienia
Format:<schema>://<hostname>:<port>/<username>:<password>@<service_path>
Opcje schematu:
rtsp (Protokół strumieniowania w czasie rzeczywistym)
http (Protokół transferu hipertekstu) — Dla urządzeń ESP32-CAM
*Uwaga: Niektóre kamery mogą nie wymagać nazwy użytkownika ani hasła. W takich przypadkach można pominąć <username> oraz <password> pola z URL.
Pomyślna odpowiedź z danymi:
Atrybut
Typ
Opcjonalne
Opis
serial_number
string
N
Unikalny numer seryjny urządzenia
:::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:
Odpowiedź danych o niepowodzeniu: pusty obiekt :::tips Warunek:
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 się nie powiedzie, zwracane jest, że wszystkie urządzenia nie zostały dodane.
Kod statusu: 200 OK Kod błędu: ● 110009 Błąd adresu IP kamery ● 110010 Błąd autoryzacji dostępu do kamery ● 110011 Błąd adresu strumienia kamery ● 110012 Kodowanie wideo kamery nie jest obsługiwane ● 110013 Urządzenie już istnieje ::: Przykład odpowiedzi:
g. Pobierz listę pod-urządzeń
Pozwól autoryzowanym użytkownikom uzyskać listę pod-urządzeń bramy za pośrednictwem tego interfejsu. :::tips
URL:/open-api/V2/rest/devices
Metoda: GET
Nagłówek:
Content-Type: application/json
Autorization: Bearer ::: Parametry żądania: brak Pomyślna odpowiedź z danymi:
Atrybut
Typ
Opcjonalne
Opis
device_list
ResponseDeviceObject[]
N
Lista urządzeń
ResponseDeviceObject
Atrybut
Typ
Opcjonalne
Opis
serial_number
string
N
Unikalny numer seryjny urządzenia
third_serial_number
string
"N" gdy podłączone jest urządzenie zewnętrzne, w przeciwnym razie "Y"
Unikalny numer seryjny urządzenia zewnętrznego
service_address
string
"N" gdy podłączone jest urządzenie zewnętrzne, w przeciwnym razie "Y"
Adres usługi urządzenia zewnętrznego
name
string
N
Nazwa urządzenia; jeśli nie została zmieniona, zostanie wyświetlona przez interfejs zgodnie z domyślnymi regułami wyświetlania.
manufacturer
string
N
Producent
model
string
N
Model urządzenia
firmware_version
string
N
Wersja oprogramowania. Może być pustym ciągiem znaków.
hostname
string
Y
Nazwa hosta urządzenia
mac_address
string
Y
Adres MAC urządzenia
app_name
string
Y
Nazwa aplikacji, do której należy. Jeśli app_name zostanie wypełnione podczas uzyskiwania certyfikatu interfejsu otwartego, to wszystkie późniejsze urządzenia podłączone przez ten certyfikat będą wpisywane w to pole.
display_category
string
N
Kategoria urządzenia
capabilities
CapabilityObject[]
N
Możliwości urządzenia
protocol
string
"N" gdy podłączone jest urządzenie zewnętrzne, w przeciwnym razie "Y"
Protokół urządzenia: zigbee, onvif, rtsp, esp32-cam
state
object
Y
Obiekt stanu urządzenia. Aby zobaczyć przykłady stanów dla różnych możliwości, sprawdź 【Support Device Capabilities】
tags
object
Y
Format JSON klucz-wartość, niestandardowe informacje o urządzeniu. Funkcja jest następująca: - Służy do przechowywania kanałów urządzenia - Służy do przechowywania jednostek temperatury - Niestandardowe informacje dla innych urządzeń stron trzecich
online
boolean
N
Status online: True oznacza online False oznacza offline
podsiec
boolean
Y
Czy znajduje się w tej samej podsieci co bramka
CapabilityObject 💡Uwaga: Proszę sprawdzić Przykłady Obsługiwanych Funkcji Urządzeń w [Supported Device Capabilities].
Atrybut
Typ
Opcjonalne
Opis
capability
string
N
Nazwa możliwości. Szczegóły sprawdź w [Supported Device Capabilities]
uprawnienie
string
N
Uprawnienie możliwości. Możliwe wartości to "read" (do odczytu), "write" (zapis), "readWrite" (odczyt i zapis).
configuration
object
Y
Informacje konfiguracyjne możliwości. Obecnie używane jest camera-stream, sprawdź [Supported Device Capabilities]
name
string
Y
Pole name w toggle. Numer podkanału używany do identyfikacji urządzeń wielokanałowych. Na przykład, jeśli name to 1, oznacza to kanał 1.
:::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:
h. Aktualizuj określone informacje lub stan urządzenia
Pozwól uprawnionym użytkownikom modyfikować podstawowe informacje o pod-urządzeniu oraz wydawać polecenia sterujące przez to API. :::tips
URL:/open-api/V2/rest/devices/{serial_number}
Metoda:PUT
Nagłówek:
Content-Type: application/json
Autorization: Bearer ::: Parametry żądania:
Atrybut
Typ
Opcjonalne
Opis
name
string
Y
Nazwa urządzenia
tags
object
Y
Format JSON klucz-wartość, niestandardowe informacje o urządzeniu.
state
object
Y
Obiekt stanu urządzenia. Przykłady stanów dla różnych możliwości sprawdź w [Support Device Capabilities]
configuration
object
Y
Informacje konfiguracyjne możliwości, obecnie tylko capability camera_stream obsługuje modyfikację.
Pomyślna odpowiedź z danymi: :::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika została pomyślnie zakończona. **Kod statusu: **200 OK Kod błędu:
110000 Pod-urządzenie/grupa odpowiadająca id nie istnieje ::: Przykład odpowiedzi:
i. Usuń pod-urządzenie
Pozwól uprawnionym użytkownikom usuwać pod-urządzenia przez to API. :::tips
URL:/open-api/V2/rest/devices/{serial_number}
Metoda:DELETE
Nagłówek:
Content-Type: application/json
Autoryzacja: Bearer ::: Parametry żądania:
Atrybut
Typ
Opcjonalne
Opis
name
string
Y
Nazwa urządzenia.
tags
object
Y
Pary klucz-wartość w formacie JSON używane do przechowywania nazw kanałów urządzenia i innych informacji o pod-urządzeniach.
state
object
Y
Zmień stan urządzenia; szczegółowe informacje protokołu znajdują się w "Supported Device Capabilities."
capabilities
CapabilityObject []
Y
Informacje konfiguracyjne możliwości; wszystkie możliwości, które obsługują ustawianie konfiguracji, mogą być modyfikowane. Uwaga: uprawnienia nie mogą być zmieniane.
Pomyślna odpowiedź z danymi: :::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika została pomyślnie zakończona. **Kod statusu: **200 OK Kody błędów:
110000: Pod-urządzenie/grupa odpowiadająca ID nie istnieje.
110006: Nie udało się zaktualizować stanu urządzenia.
110019: Nie udało się uzyskać dostępu do adresu usługi urządzenia stron trzecich.
110024: Nie udało się zaktualizować konfiguracji urządzenia. ::: Przykład odpowiedzi:
j. Usuń pod-urządzenie
Pozwala uprawnionym użytkownikom usuwać pod-urządzenia przez to API. :::tips
URL:
/open-api/v2/rest/devices/{serial_number}Metoda:
DELETENagłówek:
Content-Type: application/json
Authorization: Bearer ::: Parametry żądania: Brak Pomyślna odpowiedź z danymi: :::tips Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:
k. Zapytaj o stan urządzenia
Pozwala uprawnionym użytkownikom zapytać o stan urządzenia przez to API. :::tips
URL:
/open-api/v2/rest/devices/:serial_number/query-state/{capability}Metoda:POST
Nagłówek:
Content-Type: application/json
Authorization: Bearer ::: Parametry żądania:
Atrybut
Typ
Opcjonalne
Opis
query_state
object
N
Zapytaj o stan urządzenia; szczegóły protokołu znajdują się w "Supported Device Capabilities."
Pomyślna odpowiedź z danymi: :::tips Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:
3.4 Zarządzanie bezpieczeństwem
a. Pobierz listę zabezpieczeń
Pozwól uprawnionym użytkownikom modyfikować ustawienia bramki przez to API. :::tips
URL:
/open-api/v2/rest/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 zabezpieczenia
name
string
N
nazwa zabezpieczenia
enable
bool
N
czy włączone
true Włączone
false Wyłączone |
:::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:
b. Włącz określony tryb zabezpieczeń
Pozwól uprawnionym użytkownikom włączyć określony tryb zabezpieczeń przez to API. :::tips
URL:
/open-api/v2/rest/security/{security_id}/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 i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:
c. Wyłącz określony tryb zabezpieczeń
Pozwól uprawnionym użytkownikom wyłączyć określony tryb zabezpieczeń przez to API. :::tips
URL:
/open-api/v2/rest/security/{security_id}/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 i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:
d. Jednoklikowe włączenie zabezpieczeń
Pozwól uprawnionym użytkownikom włączyć tryb jednoklikowych ustawień zabezpieczeń przez to API. :::tips
URL:
/open-api/v2/rest/security/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 i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:
e. Wyłącz zabezpieczenia
Pozwól uprawnionym użytkownikom wyłączyć zabezpieczenia przez to API. :::tips
URL:
/open-api/v2/rest/security/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 i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: **200 OK ::: Przykład odpowiedzi:
4. Dostęp urządzeń stron trzecich
4.1 Instrukcja dostępu
Dostęp urządzenia

Dostęp bramki stron trzecich

Kroki dostępu
Określ klasyfikację urządzenia w bramce. Szczegóły sprawdź w [Supported Device Type].
Określ możliwości, do których urządzenie może mieć dostęp. Szczegóły sprawdź w [Supported Device Capabilities].
Wywołaj interfejs [Discovery Request], aby dodać urządzenie do bramki.
Uwaga: Musisz podać adres usługi do odbierania instrukcji wydawanych przez bramkę, który służy do odbierania poleceń sterowania urządzeniem wydawanych przez bramkę.
Jeśli status urządzenia stron trzecich się zmieni, musisz wywołać interfejs [Device States Change Report], aby wysłać najnowszy stan z powrotem do bramki.
Po dodaniu urządzenie stron trzecich pojawi się na liście urządzeń, z większością funkcji bramki (inne urządzenia nie będące stroną trzecią). Powszechne otwarte interfejsy związane z urządzeniem będą działać normalnie.
Wybierz odpowiednią kategorię urządzenia. Klasyfikacja wpłynie na ostateczny wygląd interfejsu użytkownika po podłączeniu urządzenia do bramki.
Wybierz odpowiednią zdolność urządzenia. Lista możliwości określi stan protokołu urządzenia.
Proces programowy
a. Dostęp urządzenia

b. Dostęp bramki stron trzecich

4.2 Przykład dostępu
Przełącznik, Wtyczka
Synchronizuj urządzenia stron trzecich
Zgłoś stan urządzenia
Zgłoś offline/online
Odbierz instrukcje dotyczące sterowania urządzeniem przez bramkę
Zapytaj o urządzenie
4.3 Web API
Interfejs żądań bramki dla stron trzecich
Format żądania
Pozwala uprawnionym użytkownikom wysyłać żądania zdarzeń do bramki przez to API. :::tips
URL:/open-api/V2/rest/thirdparty/event
Metoda:POST
Nagłówek:
Content-Type: application/json
Autorization: Bearer ::: Parametry żądania:
Atrybut
Typ
Opcjonalne
Opis
event
EventObject
N
Struktura obiektu zdarzenia żądania
EventObject
Atrybut
Typ
Opcjonalne
Opis
header
HeaderObject
N
Struktura nagłówka żądania
endpoint
EndpointObject
Y
Struktura endpointu żądania Uwaga: Pole jest puste przy synchronizacji nowej listy urządzeń.
payload
PayloadObject
N
Struktura ładunku żądania
HeaderObject
Atrybut
Typ
Opcjonalne
Opis
name
string
N
Nazwa żądania. parametr opcjonalny: DiscoveryRequest: Synchronizuj nowe urządzenia DeviceStatesChangeReport: Raport aktualizacji stanu urządzenia DeviceOnlineChangeReport: Raport statusu online urządzenia
message_id
string
N
ID wiadomości żądania, UUID_V4
version
string
N
Numer wersji protokołu żądania. Obecnie ustalony na 1
EndpointObject
Atrybut
Typ
Opcjonalne
Opis
serial_number
string
N
Unikalny numer seryjny urządzenia
third_serial_number
string
N
Unikalny numer seryjny urządzenia zewnętrznego
tags
object
Y
Format JSON klucz-wartość, niestandardowe informacje o urządzeniu. [Funkcja zarządzania urządzeniami] - [Opis tagów]
PayloadObject W zależności od różnych header.name mają różne struktury żądań.
Format odpowiedzi
:::tips **Kod statusu: **200 OK Parametry odpowiedzi: :::
Atrybut
Typ
Opcjonalne
Opis
header
HeaderObject
N
Struktura nagłówka odpowiedzi
payload
PayloadObject
N
Struktura ładunku odpowiedzi
HeaderObject
Atrybut
Typ
Opcjonalne
Opis
name
string
N
Nazwa nagłówka odpowiedzi. parametry opcjonalne: Response: Pomyślna odpowiedź ErrorResponse: Odpowiedź z błędem
message_id
string
N
ID wiadomości nagłówka odpowiedzi, UUID_V4. Przekaż tutaj message_id z nagłówka żądania *Jeśli parametr message_id w żądaniu jest pominięty, to pole będzie pustym łańcuchem w odpowiedzi.
version
string
N
- Numer wersji protokołu żądania. Obecnie ustalony na 1.
Pomyślna odpowiedź--PayloadObject :
W zależności od typu żądania, struktura odpowiedzi jest inna. Szczegóły znajdują się w dokumentacji konkretnego polecenia żądania.
Niepomyślna odpowiedź--PayloadObject:
Atrybut
Typ
Opcjonalne
Opis
type
string
N
Rodzaje błędów:
INVALID_PARAMETERS: Błąd parametrów
AUTH_FAILURE: Błąd autoryzacji
INTERNAL_ERROR: Błąd wewnętrznej usługi | | description | string | N | Opis błędu |
DiscoveryRequest Synchronizuj nową listę urządzeń
Uwaga: Po zsynchronizowaniu urządzenie z bramką domyślnie jest online, czyli online=true. Późniejsze zmiany online zależą całkowicie od synchronizacji ze stroną trzecią przez interfejs DeviceOnlineChangeReport.
Parametry żądania: EndpointObject**:**Brak PayloadObject:
Atrybut
Typ
Opcjonalne
Opis
endpoints
EndpointObject[]
N
Lista urządzeń
EndpointObject:
Atrybut
Typ
Opcjonalne
Opis
third_serial_number
string
N
Unikalny numer seryjny urządzenia zewnętrznego
name
string
N
Nazwa urządzenia
display_category
string
N
Kategoria urządzenia. Szczegóły w [Supported Device Type]. *Urządzenia stron trzecich obecnie nie obsługują dodawania kamer.
capabilities
CapabilityObject[]
N
Lista możliwości
state
object
N
Informacje o stanie początkowym
manufacturer
string
N
Producent
model
string
N
Model urządzenia
tags
object
Y
Format JSON klucz-wartość, niestandardowe informacje o urządzeniu: Służy do przechowywania kanałów urządzenia Służy do przechowywania jednostek temperatury Inne niestandardowe dane stron trzecich
firmware_version
string
N
Wersja firmware
Przykład żądania :
Parametry odpowiedzi: PayloadObject:
Atrybut
Typ
Opcjonalne
Opis
endpoints
EndpointObject[]
N
Lista urządzeń
EndpointObject:
Atrybut
Typ
Opcjonalne
Opis
serial_number
string
N
Unikalny numer seryjny urządzenia
third_serial_number
string
N
Unikalny numer seryjny urządzenia zewnętrznego
Przykład poprawnej odpowiedzi:
Przykład odpowiedzi z błędem:
DeviceStatesChangeReport Raport zmiany stanu urządzenia
Uwaga: Powtarzające się raporty stanu mogą fałszywie wywołać powiązane sceny.
Parametry żądania: PayloadObject:
Atrybut
Typ
Opcjonalne
Opis
state
object
N
Stan urządzenia, zobacz [Supported device cabilities] po szczegóły
Przykład żądania :
Parametry odpowiedzi: PayloadObject: Pusty obiekt Przykład pomyślnej odpowiedzi:
DeviceOnlineChangeReport Raport statusu online urządzenia
Uwaga: Powtarzające się raporty stanu mogą fałszywie wywołać powiązane sceny.
Parametry żądania: PayloadObject:
Atrybut
Typ
Opcjonalne
Opis
online
boolean
N
Status online urządzenia true: Online
false: Offline
Przykład żądania :
Parametry odpowiedzi: PayloadObject: Pusty obiekt Przykład pomyślnej odpowiedzi:
DeviceInformationUpdatedReport Raport zaktualizowanych informacji o urządzeniu
Uwaga: Aktualizacja może wpłynąć na istniejące sceny lub funkcje zabezpieczeń.
Parametry żądania: PayloadObject:
Atrybut
Typ
Opcjonalne
Opis
capabilities
| CapabilityObject[]
| N
| Lista możliwości. Szczegóły można znaleźć w sekcji wspieranych możliwości urządzeń. **Uwaga: **Ten parametr zaktualizuje tylko wartość z ustawienia klucz w ramach CapabilityObject, a aktualizacje są dozwolone tylko jeśli uprawnienie dla ustawienia klucz jest 11 lub 01. Szczegółową definicję struktury ustawienia w CapabilityObject, można znaleźć w szczegółowym opisie w sekcji 2.3 Kategorie wyświetlania urządzeń i możliwości urządzeń. | | tags
| object
| Y
| Format JSON klucz-wartość, niestandardowe informacje o urządzeniu.
Może być używane do przechowywania kanałów urządzenia
Może być używane do przechowywania jednostek temperatury
Inne niestandardowe dane stron trzecich |
Przykład żądania :
parametry odpowiedzi: PayloadObject: Pusty obiekt Przykład pomyślnej odpowiedzi:
Bramka wysyła interfejs polecenia przez adres usługi urządzenia
Uwaga:
Strony trzecie muszą odpowiedzieć na żądanie bramki w ciągu 3s. W przeciwnym razie bramka uzna przetwarzanie polecenia za przekroczone czasowo.
Jeśli usługa strony trzeciej jest offline, bramka ustawi urządzenie w stan offline, a usługa strony trzeciej musi zgłosić stan urządzenia (DeviceStatesChangeReport) lub stan online (DeviceOnlineChangeReport), zanim powróci do stanu online.
Format żądania
Bramka wysyła polecenia do strony trzeciej przez interfejs adresu usługi urządzenia. :::tips
URL:
Metoda:POST
Nagłówek:
Content-Type: application/json ::: Parametry żądania:
Atrybut
Typ
Opcjonalne
Opis
directive
DirectiveObject
N
Struktura obiektu dyrektywy
DirectiveObject
Atrybut
Typ
Opcjonalne
Opis
header
HeaderObject
N
Struktura nagłówka żądania
endpoint
EndpointObject
N
Struktura endpointu żądania
payload
PayloadObject
N
Struktura ładunku żądania
HeaderObject
Atrybut
Typ
Opcjonalne
Opis
name
string
N
Nazwa żądania. Parametry opcjonalne: UpdateDeviceStates: Zaktualizuj stany urządzenia
message_id
string
N
ID wiadomości żądania, UUID_V4
version
string
N
Numer wersji protokołu żądania. Obecnie ustalony na 1.
EndpointObject
Atrybut
Typ
Opcjonalne
Opis
serial_number
string
N
Unikalny numer seryjny urządzenia
third_serial_number
string
N
Unikalny numer seryjny urządzenia zewnętrznego
tags
object
N
Format JSON klucz-wartość, niestandardowe informacje o urządzeniu. [Funkcja zarządzania urządzeniami] - [Opis tagów]
PayloadObject: W zależności od różnych header.name, istnieje dla każdego specyficzna struktura żądania.
Przykład żądania :
Format odpowiedzi
:::tips **Kod statusu HTTP: **200 OK Atrybut odpowiedzi HTTP: :::
Atrybut
Typ
Opcjonalne
Opis
event
EventObject
N
Struktura zdarzenia odpowiedzi
EventObject
Atrybut
Typ
Opcjonalne
Opis
header
HeaderObject
N
Struktura nagłówka żądania
payload
PayloadObject
N
Struktura ładunku żądania
HeaderObject
Atrybut
Typ
Opcjonalne
Opis
name
string
N
Nazwa nagłówka odpowiedzi. Parametr opcjonalny: UpdateDeviceStatesResponse: Odpowiedź na aktualizację stanów urządzenia ErrorResponse: Odpowiedź z błędem
message_id
string
N
ID wiadomości nagłówka odpowiedzi, UUID_V4. Przekaż tutaj message_id z nagłówka żądania
version
string
N
Numer wersji protokołu żądania. Obecnie ustalony na 1.
Pomyślna odpowiedź--PayloadObject:
W zależności od typu żądania, struktura odpowiedzi jest inna. Szczegóły znajdują się w dokumentacji konkretnego polecenia żądania.
Niepomyślna odpowiedź--PayloadObject:
Atrybut
Typ
Opcjonalne
Opis
type
string
N
Rodzaje błędów:
ENDPOINT_UNREACHABLE: Urządzenie jest nieosiągalne lub offline
ENDPOINT_LOW_POWER: Urządzenie jest w trybie niskiego zużycia energii i nie może być sterowane
INVALID_DIRECTIVE: Nieprawidłowa dyrektywa od bramki
NO_SUCH_ENDPOINT: Urządzenie nie istnieje
NOT_SUPPORTED_IN_CURRENT_MODE: Bieżący tryb nie obsługuje tej operacji
INTERNAL_ERROR: Błąd wewnętrznej usługi
REMOTE_KEY_CODE_NOT_LEARNED: Kod klawisza pilota nie został nauczony |
:::porady Warunki: Parametry żądania są prawidłowe. **Kod statusu: **200 OK Parametry odpowiedzi: :::
UpdateDeviceStates
Parametry żądania: PayloadObject:
Atrybut
Typ
Opcjonalne
Opis
state
object
N
Stan urządzenia, zobacz [Supported device cabilities] po szczegóły.
Przykład żądania :
Parametry odpowiedzi: PayloadObject:pusty obiekt Przykład pomyślnej odpowiedzi
QueryDeviceStates
Parametry żądania: PayloadObject:
Atrybut
Typ
Opcjonalne
Opis
state
object
N
Stan urządzenia, zobacz [Supported device cabilities] po szczegóły.
Przykład żądania :
Parametry odpowiedzi: PayloadObject:
Atrybut
Typ
Opcjonalne
Opis
state
object
N
Stan urządzenia, zobacz [Supported device cabilities] po szczegóły.
Przykład odpowiedzi:
ConfigureDeviceCapabilities
Parametry żądania: PayloadObject:
Atrybut
Typ
Opcjonalne
Opis
capabilities
CapabilityObject[]
N
Lista możliwości. Szczegóły można znaleźć w części obsługiwanych możliwości urządzeń. Uwaga, pole permission nie może być zmienione, przekaż tę samą wartość podczas synchronizacji.
Przykład żądania :
Parametry odpowiedzi: PayloadObject:pusty obiekt Przykład pomyślnej odpowiedzi
5. Zdarzenia wysyłane przez serwer
Opis interfejsu MDN EventSource:https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events
5.1 Instrukcja
Bramka obsługuje wysyłanie wiadomości do klienta za pomocą SSE (Server-sent events). Klient może monitorować wiadomości SSE po uzyskaniu poświadczeń dostępu i może parsować zawartość wiadomości push zgodnie z protokołem powiadomień zdarzeń interfejsu programistycznego po otrzymaniu wiadomości wysłanych przez bramkę. Należy zauważyć, że bramka obecnie używa protokołu HTTP1.1, więc SSE po stronie przeglądarki będzie miało maksymalnie nie więcej niż 6 połączeń (Szczegółowe informacje można znaleźć w opisie interfejsu MDN EventSource.)
5.2 Wspólny format
:::porady
URL:/open-api/V2/sse/bridge
Metoda:
GET::: Parametry żądania:
access_token
string
N
Token dostępu
Uwaga: Przy żądaniu połączenia SSE bramka sprawdzi access_token i zwróci błąd autoryzacji, jeśli jest nieprawidłowy. { "error": 401, "data": {}, "message": "invalid access_token"}
## Na przykład: Nazwa modułu: device Wersja: 1,v2,v3 Typ wiadomości: addDevice
Przykład:
5.3 Moduł urządzeń
a. Zdarzenie dodania urządzenia
:::tips Nazwa modułu:device Wersja:v2 Typ wiadomości:addDevice event.data parametry: :::
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 stron trzecich. Dla urządzeń podłączonych przez otwarte interfejsy to pole jest wymagane.
Przykład:
c. Zdarzenie aktualizacji informacji o urządzeniu
:::tips Nazwa modułu:device Wersja:v2 Typ wiadomości:updateDeviceInfo event.data parametry: :::
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 stron trzecich. Dla urządzeń podłączonych przez otwarte interfejsy to pole jest wymagane.
DeviceChangeObject
name
string
N
Nazwa urządzenia
capabilities
CapabilityObject []
Y
Lista możliwości urządzenia.
tags
object
Y
tagsobject | Nullable | Pary klucz-wartość w formacie JSON dla niestandardowych informacji o urządzeniu.
Może być używane do przechowywania kanałów urządzenia.
Może być używane do przechowywania jednostek temperatury.
Dla innych niestandardowych danych stron trzecich. |
Przykład:
d. Zdarzenie usunięcia urządzenia
:::tips Nazwa modułu:device Wersja:v2 Typ wiadomości:deleteDevice event.data parametry: :::
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 stron trzecich. Dla urządzeń podłączonych przez otwarte interfejsy to pole jest wymagane.
Przykład:
e. Zdarzenie aktualizacji statusu online urządzenia
:::tips Nazwa modułu:device Wersja:v2 Typ wiadomości:updateDeviceOnline event.data parametry: :::
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 stron trzecich. Dla urządzeń podłączonych przez otwarte interfejsy to pole jest wymagane.
DeviceChangeObject
online
boolean
N
Status online urządzenia
Przykład:
5.4 Moduł bramki
a. Zdarzenie aktualizacji stanu zabezpieczeń
:::tips Nazwa modułu:device Wersja:v2 Typ wiadomości:updateDeviceOnline event.data parametry: :::
Atrybut
Typ
Opcjonalne
Opis
payload
SecurityStateObject
N
Informacje o urządzeniu
SecurityStateObject
Atrybut
Typ
Opcjonalne
Opis
alarm_state
string
N
arming| Uzbrojonydisarming| Rozbrojony |
Przykład:
5.5 Moduł bezpieczeństwa
a. Zdarzenie aktualizacji stanu uzbrojenia
:::tips Nazwa modułu:device Wersja:v2 Typ wiadomości:updateDeviceOnline event.data parametry: :::
Atrybut
Typ
Opcjonalne
Opis
payload
ArmStateObject
N
informacje o uzbrajaniu i rozbrajaniu
ArmStateObject:
Atrybut
Typ
Opcjonalne
Opis
arm_state
string
N
arming| Uzbrojonydisarming| Rozbrojony | | detail | DetailObject | N | Szczegóły uzbrojenia/rozbrojenia |
DetailObject:
Atrybut
Typ
Opcjonalne
Opis
sid
int
N
安防模式id
name
string
N
nazwa zabezpieczenia
Przykład
6. TTS (Funkcja silnika Text-to-Speech)
6.1 Instrukcja
Kluczowa rola
Dostawca usługi TTS: Dostawca usługi silnika TTS odpowiada za zarejestrowanie silnika TTS na bramce oraz zapewnienie usług TTS
Serwer bramki:iHost
Klient Open API bramki
6.1.1 Rejestrowanie usługi silnika TTS
【Dostawca usługi TTS】Wywołuje interfejs, aby zarejestrować silnik TTS na bramce.
【Serwer bramki】Po pomyślnej rejestracji bramka przechowa podstawowe informacje o silniku TTS (w tym adres usługi server_address, a późniejsza komunikacja między bramką a Dostawcą usługi TTS będzie odbywać się przez adres server_address) oraz przydzieli wewnętrzne ID usługi silnika TTS w bramce.

6.1.2 Pobierz listę zsyntetyzowanych dźwięków
【Klient Open API bramki】Wywołuje interfejs, aby uzyskać listę zarejestrowanych usług silnika TTS. Możesz uzyskać aktualną listę zarejestrowanych silników TTS (w tym ID silnika TTS przydzielone przez bramkę).
【Klient Open API bramki】Wywołuje interfejs, aby uzyskać listę dźwięków dla określonego silnika TTS. Bramka wyda synchroniczne polecenie listy audio do wskazanego Dostawcy usługi TTS i zwróci wynik.

6.1.3 Syntetyzowanie mowy poprzez określenie silnika mowy
【Klient Open API bramki】Wywołuje interfejs, aby uzyskać listę zarejestrowanych usług silnika TTS. Możesz uzyskać aktualną listę zarejestrowanych silników TTS (w tym ID silnika TTS przydzielone przez bramkę).
【Klient Open API bramki】Wywołuje interfejs, aby uzyskać listę dźwięków dla określonego silnika TTS. Bramka wyda synchroniczne polecenie listy audio do wskazanego Dostawcy usługi TTS i zwróci wynik.

6.1.4 Syntetyzuj dźwięk i odtwarzaj mowę TTS.
【Klient Open API bramki】Wywołuje interfejs, aby uzyskać listę zarejestrowanych usług silnika TTS. Możesz uzyskać aktualną listę zarejestrowanych silników TTS (w tym ID silnika TTS przydzielone przez bramkę).
【Klient Open API bramki】Wywołuje interfejs, aby uzyskać listę dźwięków dla określonego silnika TTS. Bramka wyda synchroniczne polecenie listy audio do wskazanego Dostawcy usługi TTS i zwróci wynik. (w tym adres pliku audio TTS)
【Klient Open API bramki】Zapisz adres pliku audio TTS z wyniku zwróconego w poprzednim kroku, wywołaj interfejs odtwarzania pliku audio i odtwórz go przez bramkę.
6.2 Moduł silnika TTS
6.2.1 Otwarta zdolność bramki
a. Pobierz listę zarejestrowanych usług silnika TTS
:::porady
URL:
/open-api/V2/rest/tts/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 przypisane przez bramkę
name
string
N
Nazwa usługi silnika TS
:::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. **Kod statusu: **200 OK Przykład odpowiedzi:: :::
b. Pobierz listę audio dla określonego silnika TTS
:::porady
URL:
/open-api/V2/rest/tts/engine/{id}/audio-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
:::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. **Kod statusu: **200 OK **Kod błędu: **
190000 Silnik działa nieprawidłowo
Przykład odpowiedzi:: :::
c. Wykonaj syntezę mowy przy użyciu określonego silnika TTS
:::porady
URL:
/open-api/V2/rest/tts/engine/{id}/synthesizeMetoda:
POSTNagłówek:
Content-Type: application/json
Autoryzacja: Bearer ::: Parametry żądania:
Atrybut
Typ
Opcjonalne
Opis
text
string
N
Tekst używany do syntezy audio
label
string
Y
Etykieta pliku audio
language
string
Y
Pole przeźroczyste. Opcjonalny kod języka dla żądania syntezy mowy. Konkretna lista obsługiwanych kodów językowych jest dostarczana przez dostawcę usługi silnika TTS. Należy zauważyć, że usługa silnika TTS musi obsługiwać domyślny język do syntezy mowy, co oznacza, że jeśli język nie zostanie przekazany, do syntezy zostanie użyty domyślny język silnika.
options
object
Y
Pole przeźroczyste. Służy do przekazania parametrów konfiguracyjnych wymaganych do syntezy do usługi silnika TTS.
Poprawna odpowiedź z danymi:
Atrybut
Typ
Opcjonalne
Opis
audio
AudioObject
N
Lista audio
Struktura AudioObject
Atrybut
Typ
Opcjonalne
Opis
url
string
N
URL pliku audio, na przykład:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Etykieta pliku audio
:::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. **Kod statusu: **200 OK **Kod błędu: **
190000 Silnik działa nieprawidłowo
Przykład odpowiedzi:: :::
6.2.2 Komunikacja między bramką a usługą TTS
a. Rejestrowanie usługi silnika TTS
Wyślij żądanie do bramki przez Dostawcę usługi TTS
:::porady
URL:
/open-api/V2/rest/thirdparty/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 żądania
payload
PayloadObject
N
Struktura ładunku żądania
HeaderObject
Atrybut
Typ
Opcjonalne
Opis
name
string
N
Nazwa żądania. Parametr opcjonalny.
RegisterTTSEngine | | message_id | string | N | ID wiadomości żądania, UUID_V4 | | version | string | N | Numer wersji protokołu żądania. Obecnie stały: 1 |
PayloadObject
Atrybut
Typ
Opcjonalne
Opis
service_address
string
N
Adres usługi. Na przykład, http:///
name
string
N
Nazwa usługi
Przykład żądania:
**Poprawne parametry odpowiedzi: **
Atrybut
Typ
Opcjonalne
Opis
header
HeaderObject
N
Struktura nagłówka żądania
payload
PayloadObject
N
Struktura ładunku żądania
HeaderObject
Atrybut
Typ
Opcjonalne
Opis
name
string
N
Nazwa nagłówka odpowiedzi. Parametr opcjonalny:
Odpowiedź (odpowiedź pomyślna)
ErrorResponse (odpowiedź z błędem) | | message_id | string | N | ID wiadomości nagłówka odpowiedzi, UUID_V4. Nadchodzące żądanie wiadomości tutaj: header.message_id | | version | string | N | Numer wersji protokołu żądania. Obecnie stały: 1 |
PayloadObject
Atrybut
Typ
Opcjonalne
Opis
engine_id
string
N
ID silnika przypisane przez bramkę
:::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. **Kod statusu: **200 OK Przykład odpowiedzi:: ::: Przykład poprawnej odpowiedzi::
**Parametry odpowiedzi w przypadku nieprawidłowości: **
Atrybut
Typ
Opcjonalne
Opis
type
string
N
Typ błędu
INVALID_PARAMETERS (Błąd parametrów)
AUTH_FAILURE (Błąd uwierzytelniania)
INTERNAL_ERROR (Wewnętrzny błąd usługi) | | description | string | N | Opis błędu |
Przykład odpowiedzi błędu::
b. Synchronizuj polecenie listy audio
Wyślij polecenie do Dostawcy usługi TTS przez bramkę.
:::porady
URL:
<adres usługi>Metoda:
POSTNagłówek:
Content-Type: application/json ::: Parametry żądania:
Atrybut
Typ
Opcjonalne
Opis
directive
DirectiveObject
N
Informacje o strukturze obiektu instrukcji
DirectiveObject
Atrybut
Typ
Opcjonalne
Opis
header
HeaderObject
N
Struktura nagłówka żądania
payload
PayloadObject
N
Struktura ładunku żądania
HeaderObject
Atrybut
Typ
Opcjonalne
Opis
name
string
N
Nazwa żądania. Parametr opcjonalny:
SyncTTSAudioList | | message_id | string | N | ID wiadomości żądania, UUID_V4 | | version | string | N | Numer wersji protokołu żądania. Obecnie stały: 1 |
Przykład żądania:
**Poprawne parametry odpowiedzi: **
Atrybut
Typ
Opcjonalne
Opis
header
HeaderObject
N
Struktura nagłówka żądania
payload
PayloadObject
N
Struktura ładunku żądania
HeaderObject
Atrybut
Typ
Opcjonalne
Opis
name
string
N
Nazwa nagłówka odpowiedzi. Parametr opcjonalny:
Odpowiedź (odpowiedź pomyślna)
ErrorResponse (odpowiedź z błędem) | | message_id | string | N | ID wiadomości nagłówka odpowiedzi, UUID_V4. Nadchodzące żądanie wiadomości tutaj: header.message_id | | version | string | N | Numer wersji protokołu żądania. Obecnie stały: 1 |
PayloadObject:
Atrybut
Typ
Opcjonalne
Opis
audio_list
AudioObject []
N
Lista audio TTS
Struktura AudioObject
Atrybut
Typ
Opcjonalne
Opis
url
string
N
URL pliku audio, na przykład:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Etykieta pliku audio
:::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. **Kod statusu: **200 OK Przykład odpowiedzi:: ::: Przykład poprawnej odpowiedzi::
**Parametry odpowiedzi w przypadku nieprawidłowości: **
Atrybut
Typ
Opcjonalne
Opis
type
string
N
Typ błędu
INVALID_PARAMETERS (Błąd parametrów)
AUTH_FAILURE (Błąd uwierzytelniania)
INTERNAL_ERROR (Wewnętrzny błąd usługi) | | description | string | N | Opis błędu |
Przykład odpowiedzi błędu::
c. Polecenie syntezy mowy
Wyślij polecenie do Dostawcy usługi TTS przez bramkę.
:::porady
URL:
<adres usługi>Metoda:
POSTNagłówek:
Content-Type: application/json ::: Parametry żądania:
Atrybut
Typ
Opcjonalne
Opis
directive
DirectiveObject
N
Informacje o strukturze obiektu instrukcji
DirectiveObject
Atrybut
Typ
Opcjonalne
Opis
header
HeaderObject
N
Struktura nagłówka żądania
payload
PayloadObject
N
Struktura ładunku żądania
HeaderObject
Atrybut
Typ
Opcjonalne
Opis
name
string
N
Nazwa żądania. Parametr opcjonalny:
SynthesizeSpeech | | message_id | string | N | ID wiadomości żądania: UUID_V4 | | version | string | N | Numer wersji protokołu żądania. Obecnie stały: 1 |
PayloadObject
Atrybut
Typ
Opcjonalne
Opis
text
string
N
Tekst używany do syntezy audio
label
string
Y
Etykieta pliku audio
language
string
Y
Pole przeźroczyste. Opcjonalny kod języka dla żądania syntezy mowy. Konkretna lista obsługiwanych kodów językowych jest dostarczana przez dostawcę usługi silnika TTS. Należy zauważyć, że usługa silnika TTS musi obsługiwać domyślny język do syntezy mowy, co oznacza, że jeśli język nie zostanie przekazany, do syntezy zostanie użyty domyślny język silnika.
options
object
Y
Pole przeźroczyste. Służy do przekazania parametrów konfiguracyjnych wymaganych do syntezy do usługi silnika TTS.
Przykład żądania:
**Poprawne parametry odpowiedzi: **
Atrybut
Typ
Opcjonalne
Opis
header
HeaderObject
N
Struktura nagłówka żądania
payload
PayloadObject
N
Struktura ładunku żądania
HeaderObject
Atrybut
Typ
Opcjonalne
Opis
name
string
N
Nazwa nagłówka odpowiedzi. Parametr opcjonalny:
Odpowiedź (odpowiedź pomyślna)
ErrorResponse (odpowiedź z błędem) | | message_id | string | N | ID wiadomości nagłówka odpowiedzi, UUID_V4. Nadchodzące żądanie wiadomości tutaj: header.message_id | | version | string | N | Numer wersji protokołu żądania. Obecnie stały: 1 |
PayloadObject
Atrybut
Typ
Opcjonalne
Opis
audio
AudioObject
N
Audio TTS
Struktura AudioObject
Atrybut
Typ
Opcjonalne
Opis
url
string
N
URL pliku audio, na przykład:
https://dl.espressif.cn/dl/audio/gs-16b-2c-44100hz.mp3
label
string
Y
Etykieta pliku audio
:::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. **Kod statusu: **200 OK Przykład odpowiedzi:: ::: Przykład poprawnej odpowiedzi::
**Parametry odpowiedzi w przypadku nieprawidłowości: **
Atrybut
Typ
Opcjonalne
Opis
type
string
N
Typ błędu
INVALID_PARAMETERS (Błąd parametrów)
AUTH_FAILURE (Błąd uwierzytelniania)
INTERNAL_ERROR (Wewnętrzny błąd usługi) | | description | string | N | Opis błędu |
Przykład odpowiedzi błędu::
7. Moduł multimedialny
7.1 Odtwarzanie pliku audio
:::porady
URL:
/open-api/V2/rest/media/audio-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: :::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. **Kod statusu: **200 OK Przykład odpowiedzi:: :::
8. Niestandardowa karta UI
Niestandardowe karty UI pozwalają wyświetlać dowolne treści w karcie. Treść ta może być stroną internetową, obrazem lub dowolną usługą z interfejsem użytkownika. Wystarczy podać URL treści, którą chcesz wyświetlić. Karta UI automatycznie dopasuje swoją szerokość i wysokość, a zawartość zostanie wyrenderowana przy użyciu iFrame.
8.1 Instrukcja
Kluczowa rola
Dostawca usługi UI: Dostawca odpowiedzialny za tworzenie niestandardowych kart UI na bramce.
Serwer bramki: Serwer bramki (iHost).
Klient Open API bramki: Klient Open API dla bramki.
8.1.1 Tworzenie niestandardowej karty UI
[Dostawca usługi UI]: Wywołuje API w celu utworzenia niestandardowej karty UI na bramce.
[Serwer bramki]: Po pomyślnej rejestracji bramka przechowuje podstawowe informacje o karcie UI (w tym konfigurację rozmiaru i URL zasobu karty) oraz przydziela wewnętrzne ID karty UI w bramce.

8.1.2 Pobieranie listy kart UI
[Dostawca usługi UI]: Wywołuje API, aby pobrać listę kart UI.
[Serwer bramki]: Zwraca listę kart UI przechowywanych na bramce, w tym niestandardowe karty UI nie utworzone przez wywołującego.

8.1.3 Modyfikowanie konfiguracji określonej karty UI
[Dostawca usługi UI]: Wywołuje API, aby zmodyfikować konfigurację określonej karty UI, taką jak konfiguracja rozmiaru i URL zasobu.
[Serwer bramki]: Po pomyślnej modyfikacji bramka zapisuje zaktualizowane informacje o karcie UI, w tym nową konfigurację rozmiaru i URL zasobu.

8.1.4 Usuwanie niestandardowej karty UI
[Dostawca usługi UI]: Wywołuje API, aby usunąć określoną niestandardową kartę UI.
[Serwer bramki]: Bramka 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 bramki w celu utworzenia niestandardowej karty 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ę.
domyślny
string
N
Specyfikacja domyślna: Domyślna specyfikacja rozmiaru jest używana, z opcjonalnymi parametrami: 2x2
WebSettingsObject:
Atrybut
Typ
Opcjonalne
Opis
dimensions
DimensionObject []
N
Konfiguracja rozmiaru: Musi zawierać co najmniej jedną konfigurację.
drawer_component
DrawerObject
Y
Ustawienia wyświetlania komponentu Drawer.
domyślny
string
N
Specyfikacja domyślna:
1x1
2x1 |
DimensionObject:
Atrybut
Typ
Opcjonalne
Opis
src
string
N
URL zasobu: Na przykład: http://example.html
size
string
N
Specyfikacje rozmiaru:
Opcjonalne parametry CastSettingsObject:
2×2
Opcjonalne parametry WebSettingsObject:
1x1
2x1 |
DrawerObject:
Atrybut
Typ
Opcjonalne
Opis
src
string
N
URL zasobu: Na przykład: http://example.html
Pomyślna odpowiedź z danymi:
Atrybut
Typ
Opcjonalne
Opis
id
string
N
Unikalne ID karty UI
:::porady Warunki: Parametry żądania są prawidłowe i weryfikacja tożsamości użytkownika została pomyślnie przeprowadzona. **Kod stanu: ** 200 OK ::: 示例 żądania:
Przykład odpowiedzi:
8.2.2 Pobierz listę kart UI
:::porady
URL:
/open-api/v2/rest/ui/cardsMetoda:
GETNagłówek:
Content-Type: application/json
Autoryzacja: Bearer ::: Parametry żądania: Brak Parametry odpowiedzi:
Atrybut
Typ
Opcjonalne
Opis
data
CardObject[]
N
Lista kart UI
CardObjec Object:
Atrybut
Typ
Opcjonalne
Opis
id
string
N
ID karty: Unikalny identyfikator karty.
label
string
Y
Etykieta karty: Służy do opisu karty. Pełni funkcję aliasu lub nazwy karty.
cast_settings
CastSettingsObject
Y
Etykieta karty: Służy do opisu karty. Jest to alias karty.
web_settings
WebSettingsObject
N
Ustawienia karty Cast: Ustawienia konfiguracyjne dla kart cast.
app_name
string
Y
Ustawienia karty Web: Ustawienia konfiguracyjne dla kart web.
CastSettingsObject:
Atrybut
Typ
Opcjonalne
Opis
dimensions
DimensionObject []
N
Konfiguracja rozmiaru: Musi zawierać co najmniej jedną konfigurację.
domyślny
string
N
Specyfikacja domyślna:
Parametr opcjonalny: 2x2
używany
string
N
Aktualna specyfikacja:
Parametr opcjonalny: 2x2
WebSettingsObject:
Atrybut
Typ
Opcjonalne
Opis
dimensions
DimensionObject []
N
Konfiguracja rozmiaru: Musi zawierać co najmniej jedną konfigurację.
drawer_component
DrawerObject
Y
Ustawienia wyświetlania komponentu Drawer.
domyślny
string
N
Specyfikacja domyślna:
Parametr opcjonalny:
1x1
2x1 | | used | string | N | Aktualna specyfikacja: Parametr opcjonalny:
1x1
2x1 |
DimensionObject:
Atrybut
Typ
Opcjonalne
Opis
src
string
N
URL zasobu: Na przykład: http://example.html
size
string
N
Specyfikacje rozmiaru:
Parametr opcjonalny:
1x1
2x1
Uwaga: Obecnie karty cast obsługują tylko specyfikację 2x2. Specyfikacja 2x2 nie będzie skuteczna. |
DrawerObject:
Atrybut
Typ
Opcjonalne
Opis
src
string
N
URL zasobu: Na przykład: http://example.html
Przykład odpowiedzi:
8.2.3 Modyfikacja konfiguracji określonej karty UI
Autoryzowani użytkownicy mogą modyfikować konfigurację istniejącej karty UI za pomocą tego interfejsu. Dostawcy usług niestandardowych kart mogą modyfikować tylko karty UI, które sami utworzyli.
:::porady
URL:
/open-api/v2/rest/ui/cards/{id}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żywany
string
Y, Którykolwiek używany lub src musi być dostarczony, ale wymagany jest co najmniej jeden z tych parametrów.
Aktualna specyfikacja:
Parametr opcjonalny:
2x2
| | src | string | Y, Którykolwiek używany lub src musi być dostarczony, ale wymagany jest co najmniej jeden z tych parametrów. | URL zasobu: http://example.html |
WebSettingsObject:
Atrybut
Typ
Opcjonalne
Opis
używany
string
Y, Którykolwiek używany lub src musi być dostarczony, ale wymagany jest co najmniej jeden z tych parametrów.
Aktualna specyfikacja:
Parametr opcjonalny:
1x1
2x1 | | src | string | Y, Którykolwiek
używanylubsrcmusi być dostarczony, ale wymagany jest co najmniej jeden z tych parametrów. | URL zasobu: http://example.html |
Pomyślna odpowiedź z danymi: :::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. Karta UI będąca przedmiotem modyfikacji musi być utworzona przez dostawcę niestandardowych kart UI wywołującego interfejs. **Kod statusu: ** 200 OK Kod błędu:
406: Brak uprawnień do dostępu do tego zasobu ::: **Przykład odpowiedzi: **
**Przykład żądania: **
8.2.4 Usuwanie niestandardowej karty UI
Autoryzowani użytkownicy mogą usuwać istniejącą kartę UI za pomocą tego interfejsu. Dostawcy niestandardowych kart mogą usuwać tylko karty UI, które sami utworzyli.
:::porady
URL:
/open-api/v2/rest/ui/cards/{id}Metoda:
DELETENagłówek:
Content-Type: application/json
Autoryzacja: Bearer ::: Parametry żądania: Brak Pomyślna odpowiedź z danymi: :::tips Warunki: Parametry żądania są prawidłowe, a weryfikacja tożsamości użytkownika zakończona pomyślnie. Karta UI będąca przedmiotem modyfikacji musi być utworzona przez dostawcę niestandardowych kart UI wywołującego interfejs. **Kod statusu: **
200 OKKod błędu:
406: Brak uprawnień do dostępu do tego zasobu. ::: **Przykład odpowiedzi: **
Last updated