Schemat opisuje podstawowy model danych, który reprezentuje i interpretuje dane generowane przez urządzenia logiczne lub fizyczne w systemie Weave.
Schemat:
- Ujednolicony – zawiera formalne zatwierdzone definicje funkcji, które zapewniają spójny interfejs niezależnie od implementacji. Na przykład żarówka przedstawiona w schemacie ma zawsze główne funkcje, takie jak stany włączenia i wyłączenia, działania lub poziomy przyciemnienia.
- Kompozytowa – użytkownik może tworzyć złożone zasoby składające się z mniejszych, dobrze zdefiniowanych funkcji. Na przykład Nest Detect zawiera 2 typy czujników: ruch i otwarte/zamknięcie. Funkcje tego typu czujników są ustandaryzowane w schemacie i można ich używać na różnych urządzeniach.
- Elastyczne – użytkownik może tworzyć niestandardowe rozszerzenia standardowych funkcji. Możesz na przykład rozszerzyć standardowe funkcje czujników ruchu o dodatkowe funkcje na potrzeby konkretnej aplikacji zabezpieczającej.
- Wersjonowane – wszystkie zmiany schematu są kompatybilne na potrzeby przekazywania do przodu i do tyłu.
Schemat definiuje 3 elementy: cechy, interfejsy i zasoby. Schemat obejmuje niemal wszystkie funkcje ekosystemu Nest na co dzień. Przyjrzyjmy się tym elementom dokładniej.
Cechy
Cecha
to jednostka podstawowych funkcji. Mogą to być ogólne stany lub możliwości urządzeń albo opis konfiguracji wpływającej na jej działanie. Ta sama cecha może być wspólna dla wielu urządzeń albo tylko niektórych z nich.W schemacie możesz na przykład zdefiniować te cechy, których będziesz używać na urządzeniach Nest:
Interfejsy
Możesz rozszerzyć kompatybilność cech, grupując je, szczególnie jeśli wiele cech reprezentuje nową, konkretną funkcję. Taka grupa cech jest nazywana interfejsem
.Na przykład interfejs interkomu może obejmować cechy głośnika i mikrofonu:
Zasoby
Zasób
reprezentuje obiekt logiczny lub fizyczny w schemacie. Na przykład Nest Protect jest zasobem. Oto Nest Guard. Użytkownik lub struktura, na przykład dom użytkownika.Zasoby składają się z określonych cech, które odzwierciedlają konfigurację, stan i możliwości.
Relacja między zasobami, interfejsami i cechami wygląda tak:
Jak widać, niektóre cechy, takie jak cecha ruchu, są wspólne dla różnych zasobów. Niektóre interfejsy, np. Intercom, są również wspólne dla różnych zasobów. Cechy, interfejsy i zasoby są zdefiniowane w schemacie i można je wykorzystać w różnych zasobach i na różnych urządzeniach w systemie Weave.
Elementy charakterystyczne
Cechy charakterystyczne są podzielone na 3 główne elementy: właściwości, polecenia i zdarzenia. Przyjrzyjmy się przykładom poszczególnych elementów cech.
Usługi
Właściwości
odpowiadają stanowi cechy. Właściwości mogą być dostępne tylko do odczytu lub tylko do odczytu.Przykład:
- Wersja oprogramowania to właściwość cech urządzenia. Na ogół jest to cecha ogólna. Termostaty Nest, kamery i zabezpieczenia – każdy z nich ma własną wersję oprogramowania.
- Stan śluzy to właściwość właściwości Bolt Lock, ale dotyczy ona takich urządzeń jak Yale x Nest Lock. Na termostacie Nest nie zobaczysz np. blokady.
Polecenia
Polecenia
to niestandardowe żądania działania związane z cechą, zawierające oczekiwaną odpowiedź. Są one często nazywane poleceniami niestandardowymi i można je rozszerzać na konkretne zmiany stanu właściwości. Przykład:- Bot Lock Change to niestandardowe polecenie, które zmienia właściwość stanu Bolt w typie właściwości Bolt Lock.
- Ustaw kod PIN użytkownika to polecenie niestandardowe, które tworzy nową wartość lub aktualizuje istniejącą właściwość Pincode użytkownika – typ ustawień Ustawienia kodu PIN użytkownika.
Zdarzenia
Zdarzenia
to rejestry zdarzeń cech. Informują subskrybenta o zmianach właściwości właściwości lub innego rodzaju zdarzeniach, takich jak zresetowanie systemu.Na przykład zdarzenie Zmiana stanu wykonawcy Bolt należącego do cechy Bolt Lock powiadamia subskrybenta o bieżącym stanie wielu usług właściwości Bolt Lock, a także o osobie, który jako ostatni spowodował zmianę właściwości. Wszystkie te informacje są przesyłane w postaci pojedynczego zdarzenia.
Język opisu schematu Weave
Cechy schematu, interfejsy i zasoby w Weave są zdefiniowane i opisane w języku DSL, który korzysta ze składni buforów protokołów Google w wersji 3. Ten język nazywa się Waveve Schema Description Language (WDL)
.WDL działa za pomocą kompilatora, który generuje różne implementacje i kodowania na danej platformie. Typ wygenerowanego kodu zależy od zasobu:
- Goal-C, Swift, Java, Scala – aplikacje mobilne i usługi w chmurze
- C++ z kodowaniem TLV Weave – umieszczone urządzenia i aplikacje mobilne
Przykłady WDL omówimy bardziej szczegółowo później.
Podsumowanie
Czego się nauczyliśmy:
- Schemat opisuje podstawowy model danych dla systemu Weave.
- Schemat definiuje 3 elementy:
- Trakt Jednostka podstawowych funkcji
- Interfejs Grupa cech, które reprezentują nową, konkretną funkcję
- Zasób logiczna lub fizyczna rzecz
- Te cechy obejmują właściwości, polecenia i zdarzenia:
- Właściwość Stan cechy zasobu
- Polecenia – niestandardowe żądanie działania cechy
- Wykaz zdarzeń dotyczących cechy
- Schemat jest definiowany przez Weave Schema Description Language (WDL) , oparty na buforach protokołów Google w wersji 3
Więcej szczegółowych informacji znajdziesz tutaj: