API SensorThings

Interfejs API OGC SensorThings — część 1 Wykrywanie
Skrót OGC STA
Status Specyfikacja implementacji standardu OGC
Rok rozpoczęty 2015
Ostatnia wersja 1.0
Redaktorzy Steve Liang ( SensorUp ), Chih-Yuan Huang ( National Central University ), Tania Khalafbeigi ( SensorUp )
Normy bazowe JSON , OGC/ISO 19156:2011 O&M
Domena Otwarte Konsorcjum Geoprzestrzenne , Internet Rzeczy
Strona internetowa Standardowa strona GitHub API OGC SensorThings
Interfejs API OGC SensorThings — część 2 Rdzeń zadań
Skrót OGC STA
Status Specyfikacja implementacji standardu OGC
Rok rozpoczęty 2018
Ostatnia wersja 1.0
Redaktorzy Steve Liang ( SensorUp ), Tania Khalafbeigi ( SensorUp )
Normy bazowe OGC SPS
Domena Otwarte Konsorcjum Geoprzestrzenne , Internet Rzeczy
Strona internetowa Standardowa strona GitHub API OGC SensorThings
Interfejs API OGC SensorThings — część 2 Podstawowy dokument do dyskusji dotyczący zadań
Skrót OGC STA
Status Dokument do dyskusji OGC
Rok rozpoczęty 2018
Ostatnia wersja 1.0
Redaktorzy Steve Liang ( SensorUp ), Tania Khalafbeigi ( SensorUp ), Kan Luo (Uniwersytet Calgary)
Normy bazowe OGC SensorRzeczy
Domena Otwarte Konsorcjum Geoprzestrzenne , Internet Rzeczy
Strona internetowa Strona pobierania podstawowego dokumentu dyskusyjnego OGC SensorThings API Tasking

SensorThings API to standard Open Geospatial Consortium (OGC) zapewniający otwartą i ujednoliconą platformę do łączenia urządzeń wykrywających IoT , danych i aplikacji przez Internet. Jest to otwarty standard dotyczący interoperacyjności składniowej i semantycznej interoperacyjności Internetu przedmiotów. Uzupełnia istniejące protokoły sieciowe IoT, takie jak CoAP , MQTT , HTTP , 6LowPAN . Podczas gdy wyżej wymienione protokoły sieciowe IoT odnoszą się do możliwości różnych systemów IoT do wymiany informacji, API OGC SensorThings dotyczy zdolności różnych systemów IoT do wykorzystywania i rozumienia wymienianych informacji. Jako standard OGC, SensorThings API umożliwia również łatwą integrację z istniejącymi Infrastruktury Danych Przestrzennych czy Systemy Informacji Geograficznej .

Interfejs API OGC SensorThings składa się z dwóch części: (1) Część I — Wykrywanie i (2) Część II — Zadania. OGC SensorThings API Part I — Sensing został udostępniony do publicznego komentowania 18 czerwca 2015 r. Komitet Techniczny OGC (TC) zatwierdza rozpoczęcie głosowania elektronicznego 3 grudnia 2015 r., a interfejs API SensorThings Part I — Sensing przeszedł głosowanie TC w lutym 1, 2016. Oficjalna specyfikacja standardu OGC została opublikowana online 26 lipca 2016 r. W 2019 r. API SensorThings zostało również opublikowane jako specyfikacja techniczna ITU-T Organizacji Narodów Zjednoczonych.

OGC SensorThings API Part II — Tasking Core został udostępniony do publicznego komentowania 20 lutego 2018 r. i przeszedł głosowanie TC 1 czerwca 2018 r. Oficjalna standardowa specyfikacja OGC dla SensorThings API Part II — Tasking Core została opublikowana online w styczniu 8, 2019.

Aby zapewnić lepszą obsługę programistów, dnia 18 grudnia 2018 r. opublikowano online dokument SensorThings API Part II — Tasking Core Discussion Paper. Dokument Tasking Core Discussion zawiera 15 przykładów w formacie JSON pokazujących, w jaki sposób można używać SensorThings API Part II — Tasking Core.

Projekt

Interfejs API SensorThings został zaprojektowany specjalnie z myślą o urządzeniach IoT o ograniczonych zasobach i społeczności programistów internetowych. Jest zgodny z zasadami REST , kodowaniem JSON oraz protokołem OASIS OData i konwencjami adresów URL. Ma również MQTT , które umożliwia użytkownikom/urządzeniom publikowanie i subskrybowanie aktualizacji z urządzeń, a oprócz HTTP może korzystać z CoAP .

Model danych API SensorThings

Podstawą interfejsu API SensorThings jest jego model danych oparty na normie ISO 19156 (ISO/OGC Observations and Measurements ), która definiuje koncepcyjny model obserwacji i funkcji związanych z próbkowaniem podczas dokonywania obserwacji. W kontekście SensorThings funkcje są modelowane jako Things , Sensors ( tj . Procedury w O&M) oraz Feature of Interests . W rezultacie interfejs API SensorThings zapewnia interoperacyjny widok skupienia na obserwacji, który jest szczególnie przydatny do pogodzenia różnic między heterogenicznymi systemami wykrywania (np. in-situ i czujnikami zdalnymi).

Urządzenie lub system IoT jest modelowane jako Rzecz . Rzecz ma dowolną liczbę Lokacji (w tym 0 Lokacji ) i dowolną liczbę Strumieni Danych (w tym 0 Strumieni Danych ). Każdy strumień danych obserwuje jedną ObservedProperty za pomocą jednego czujnika i ma wiele obserwacji zebranych przez czujnik . Każda obserwacja dotyczy jednej konkretnej interesującej cechy . Model oparty na O&M umożliwia SensorThings dostosowanie się do heterogenicznych urządzeń IoT i danych gromadzonych przez te urządzenia.

SensorThings API zapewnia dwie główne funkcjonalności, z których każda jest obsługiwana przez część. Te dwa profile to część Wykrywanie i część Zadania. Część Sensing zapewnia standardowy sposób zarządzania i pobierania obserwacji i metadanych z heterogenicznych systemów czujników IoT, a funkcje części Sensing są podobne do usługi obserwacyjnej czujnika OGC . Część Tasking zapewnia standardowy sposób parametryzacji — zwany także przydzielaniem zadań — urządzeń IoT, które mogą wykonywać zadania, takich jak czujniki lub siłowniki. Funkcje części Tasking są podobne do usługi planowania czujnika OGC . Część wykrywająca została zaprojektowana w oparciu o ISO/OGC Obserwacje i pomiary (O&M) modelują i umożliwiają urządzeniom i aplikacjom IoT TWORZENIE, ODCZYTYWANIE, AKTUALIZOWANIE i USUWANIE ( tj . HTTP POST, GET, PATCH i DELETE) danych i metadanych IoT w usłudze SensorThings.

Podmioty (zasoby)

SensorThings API Part I — Sensing definiuje następujące zasoby. Ponieważ SensorThings jest usługą sieciową RESTful, każdą jednostkę można TWORZEĆ, CZYTAĆ, AKTUALIZOWAĆ i USUWAĆ za pomocą standardowych czasowników HTTP ( POST , GET , PATCH i DELETE):

  • Rzecz : Przedmiot świata fizycznego (rzeczy fizyczne) lub świata informacyjnego (rzeczy wirtualne), który można zidentyfikować i zintegrować z sieciami komunikacyjnymi.
  • Lokalizacje : Lokalizuje rzecz lub rzeczy, z którymi jest powiązana.
  • HistoricalLocations : Zestaw zawiera aktualną (tzn. ostatnią znaną) i poprzednią lokalizację Rzeczy wraz z ich czasem.
  • Datastream : Zbiór obserwacji i obserwacje w strumieniu danych mierzą tę samą ObservedProperty i są tworzone przez ten sam czujnik .
  • ObservedProperty : Określa zjawisko Obserwacji .
  • Czujnik : Instrument, który obserwuje właściwość lub zjawisko w celu oszacowania wartości właściwości.
  • Obserwacja : Akt pomiaru lub innego określenia wartości nieruchomości.
  • FeatureOfInterest : Wynikiem obserwacji jest przypisanie wartości do zjawiska . Zjawisko jest właściwością cechy, przy czym ta ostatnia jest FeatureOfInterest obserwacji .

Oprócz powyższych zasobów związanych z wykrywaniem, SensorThings API Part II — Tasking Core definiuje następujące zasoby:

  • TaskingCapabilities : Określa możliwe do zadania parametry siłownika.
  • Zadania : kolekcja zadań, która została utworzona.
  • Siłownik : rodzaj przetwornika, który przekształca sygnał w rzeczywiste działanie lub zjawisko.

Przykładowa ładowność

http://example.org/v1.0/Datastream(id)/Observations


   
   
    
       
       
       
       
       
       {  "@iot.count"  :  2  ,  "value"  :  [  {  "@iot.id"  :  1  ,  "@iot.selfLink"  :  "http://example.org/v1.0/Observations(1)"  ,  "phenomenonTime"  :  "2016-01-01T05:00:00.000Z"  ,  "result"  :  "-9"  ,  "resultTime"  :  null  ,  "[email protected]"  :  
       
    
    
       
       
       
       
       "http://example.org/v1.0/Observations(1)/Datastream"  ,  "[email protected]"  :  "http://example.org/v1.0/Observations(1)/FeatureOfInterest"  } ,  {  "@iot.id"  :  2  ,  "@iot.selfLink"  :  "http://example.org/v1.0/Observations(2)"  ,  "phenomenonTime"  :  "2016-01-01T04:00: 00.000Z"  ,  "wynik"  :  "-10"  ,  "czas wyniku"  
       
       
    
  
 :  null  ,  "[email protected]"  :  "http://example.org/v1.0/Observations(2)/Datastream"  ,  "[email protected]"  :  "http://example.org/v1 .0/Observations(2)/CechaZainteresowania"  }  ]  } 

Rozszerzenia macierzy danych

Aby zmniejszyć rozmiar danych przesyłanych przez sieć, rozszerzenie tablicy danych SensorThings API umożliwia użytkownikom żądanie wielu jednostek obserwacji i formatowanie jednostek w formacie dataArray. Gdy usługa SensorThings zwraca odpowiedź dataArray, usługa grupuje jednostki Observation według Datastream lub MultiDatastream, co oznacza, że ​​jednostki Observation, które łączą się z tym samym Datastream lub tym samym MultiDatastream, są agregowane w jednej tablicy dataArray.

Przykładowe żądanie tablicy danych

http://example.org/v1.0/Observations?$resultFormat=dataArray

Przykładowa odpowiedź tablicy danych


   
    
       
       
        
        
        
        
      
       
       
        
          
           {  "value"  :  [  {  "[email protected]"  :  "http://example.org/v1.0/Datastreams(1)"  ,  "components"  :  [  "id"  ,  "phenomenonTime"  ,  "resultTime"  ,  "wynik"  ],  "[email protected]"  :  3  ,  "dataArray"  :  [  [  1  ,  "2005-08-05T12:21:13Z"  , 
          
          
        
        
          
          
          
          
        
        
          
          
          
          0
        
      
    
  
 "2005-08-05T12:21:13Z"  ,  20  ],  [  2  ,  "2005-08-05T12:22:08Z"  ,  "2005-08-05T12:21:13Z"  ,  30  ],  [  3  ,  "2005 -08-05T12:22:54Z"  ,  "2005-08-05T12:21:13Z"  ,  ]  ]  }  ]  } 

Ocena

Interoperacyjność między OpenIoT i SensorThings Wierzymy, że wdrożenie interfejsu API SensorThing będzie znaczącym ulepszeniem oprogramowania pośredniego OpenIoT. Zapewni OpenIoT znormalizowany i naprawdę łatwy w użyciu interfejs do wartości czujników. Uzupełni to bogate usługi wnioskowania semantycznego o prosty interfejs oparty na zasobach. Spójne mapowanie modelu danych zapewnia wspólny kontekst do opisu Internetu rzeczy ”.

Wydajność API SensorThings Kompleksowa ocena API SensorThings została opublikowana w Jazayeri, Mohammad Ali, Steve HL Liang i Chih-Yuan Huang. „Wdrożenie i ocena czterech interoperacyjnych otwartych standardów dla Internetu przedmiotów”. Czujniki 15.9 (2015): 24343-24373 .

cytaty

Interfejs API SensorThings został zademonstrowany w ramach projektu pilotażowego sponsorowanego przez Departament Nauki i Technologii Departamentu Bezpieczeństwa Wewnętrznego . Dr Reginald Brothers, Podsekretarz Nauki i Technologii Bezpieczeństwa Wewnętrznego, był „pod wrażeniem„ stanu praktycznego ”, w którym te różne czujniki przemysłowe można dziś zintegrować przy użyciu otwartych standardów, które usuwają ograniczenia związane z jednorazowymi technologiami.

Standardowa specyfikacja API OGC SensorThings

Darmowe i otwarte implementacje API SensorThings

Wąsy

W marcu 2016 r. SensorUp i GeoSensorWeb Lab na Uniwersytecie Calgary przesłały do ​​Fundacji Eclipse propozycję projektu oprogramowania open source, która została zatwierdzona. Projekt nazywa się Wąsy . Whiskers to framework API OGC SensorThings. Będzie mieć JavaScript i lekki serwer dla bramek IoT (np. Raspberry Pi lub BeagleBone). Whiskers ma na celu wspieranie zdrowego i otwartego ekosystemu IoT, w przeciwieństwie do ekosystemu zdominowanego przez zastrzeżone silosy informacyjne. Whiskers ma na celu ułatwienie rozwoju SensorThings dużemu i rozwijającemu się światu programistów IoT.

GOST

GOST to otwarta implementacja API SensorThings w języku programowania Go, zainicjowana przez firmę Geodan. Zawiera łatwe do wdrożenia oprogramowanie serwerowe i klienta JavaScript. Obecnie (czerwiec 2016) jest w fazie rozwoju, ale pierwszą wersję można już pobrać i wdrożyć. Oprogramowanie można zainstalować na dowolnym urządzeniu obsługującym Docker lub Go (np. Windows, Linux, Mac OS i Raspberry Pi). Domyślnie dane z czujników są przechowywane w PostgreSQL .

MRÓZ

FROST-Server to implementacja serwera Open Source API OGC SensorThings. FROST-Server implementuje całą specyfikację, łącznie ze wszystkimi rozszerzeniami. Jest napisany w Javie i może działać w Tomcat lub Wildfly i jest dostępny jako obraz Dockera. Wśród wielu jego funkcji jest możliwość używania identyfikatorów jednostek opartych na łańcuchach lub UUID.

FROST-Client to biblioteka kliencka Java do komunikacji z serwerem kompatybilnym z API SensorThings.

Zestaw SDK do tworzenia wykresów SensorThings HcDT

SensorThings HcDT to biblioteka wykresów JavaScript dla interfejsu API OGC SensorThings. Opiera się na otwartej bibliotece [ potrzebne wyjaśnienie ] Highcharts i DataTables . Jest to biblioteka wykresów typu front-end, która umożliwia programistom łączenie się ze strumieniami danych z dowolnej usługi API OGC SensorThings i wyświetlanie obserwacji czujników na wykresach, tabelach lub widżetach pulpitu nawigacyjnego dla aplikacji internetowych.

Mozilla STA

Mozilla opracowała implementację węzła API OGC SensorThings.

52° Północ STA

52N SensorThingsAPI to implementacja typu open source interfejsu API OGC SensorThings. Jego podstawowymi cechami są interoperacyjność z 52N SOS , wdrażająca usługę obserwacyjną czujnika OGC , konfigurowalne mapowania bazy danych i kilka wygodnych rozszerzeń. Może zostać wdrożony jako kontener Docker, wewnątrz Apache Tomcat lub jako samodzielna aplikacja.

Przykładowe zastosowania

Departamentu Bezpieczeństwa Wewnętrznego S&T Shaken Fury

W 2019 roku eksperyment operacyjny Shaken Fury dla programu DHS Next Generation First Responder przedstawia scenariusz trzęsienia ziemi powodującego częściowe zawalenie się konstrukcji i wyciek HAZMATu na stadionie. Interfejs API OGC SensorThings jest używany jako standardowy interfejs, który łączy wiele czujników i oferuje świadomość sytuacyjną w czasie rzeczywistym z obsługą IoT.

Inteligentni obywatele dla inteligentnych miast YYC — pomiar jakości powietrza pozyskiwany z tłumu

8 października 2016 r. grupa ochotników (inteligentnych obywateli) z Calgary zebrała się, zmontowała własne czujniki, zainstalowała je w swoich domach i utworzyła sieć czujników jakości powietrza. Wszystkie dane są publicznie dostępne za pośrednictwem interfejsu API OGC SensorThings. Dzięki tym wysiłkom obywatelskim liczba czujników jakości powietrza w Calgary wzrosła z 3 do ponad 50.

Inteligentny projekt emisji w Nijmegen, Holandia

Inteligentna emisja to projekt monitorowania jakości powietrza w mieście Nijmegen w Holandii. W ramach projektu wdrożono wiele czujników jakości powietrza w całym mieście. Dane są publikowane z wykorzystaniem otwartych standardów, w tym API OGC SensorThings. Częścią projektu jest silnik ETL typu open source do ładowania danych z czujników projektu do interfejsu API OGC SensorThings.

Pulpit nawigacyjny SensorThings

Ten pulpit nawigacyjny zapewnia łatwą w obsłudze wizualizację po stronie klienta danych z czujników Internetu rzeczy z serwerów zgodnych z interfejsem API OGC SensorThings. Na pulpicie nawigacyjnym można rozmieścić i skonfigurować różne typy widżetów. Jest to aplikacja internetowa, którą można osadzić na dowolnej stronie internetowej. Demo na żywo jest dostępne na stronie projektu . https://github.com/SensorThings-Dashboard/SensorThings-Dashboard

Panel kontrolny GOST v2

GOST Dashboard v2 to otwarta biblioteka niestandardowych elementów HTML (komponentów sieciowych) obsługująca API SensorThings. Elementy te ułatwiają tworzenie aplikacji HTML integrujących funkcjonalność i dane z usług kompatybilnych z API SensorThings. Komponenty zostały opracowane przy użyciu Predix-UI i Polymer .

Projekt AFarCloud OGC Connector

Złącze umożliwia interoperacyjność między źródłami danych zgodnymi z OGC a semantycznym oprogramowaniem pośrednim opracowanym w ramach projektu ECSEL AFarCloud w ramach programu Horyzont 2020 . Jest to modułowa aplikacja Java z wdrożeniem opartym na Dockerze, zaimplementowana zgodnie ze standardem implementacji 15-078r6 OGC SensorThings API 1.0.

Porównanie API OGC SensorThings i usług obserwacyjnych OGC Sensor

SensorThings API zapewnia funkcje podobne do OGC Sensor Observation Service , specyfikacji OGC zatwierdzonej w 2005 roku. Obie standardowe specyfikacje wchodzą w skład standardowego pakietu OGC Sensor Web Enablement . Poniższa tabela podsumowuje różnice techniczne między dwiema specyfikacjami.

Interfejs API OGC SensorThings Usługa obserwacji czujnika OGC (SOS)
Kodowanie JSON XML
Styl architektury Architektura zorientowana na zasoby architektura zorientowana na usługi
Wiążący ODPOCZYNEK MYDŁO
Wstawianie nowych czujników lub obserwacji HTTP POST (np. CRUD ) przy użyciu interfejsów specyficznych dla SOS, np. RegisterSensor(), InsertObservation()
Usuwanie istniejących czujników USUŃ HTTP przy użyciu interfejsów specyficznych dla SOS, tj. DeleteSensor()
Paginacja $top, $skip, $nextLink Nieobsługiwany
Obsługa publikacji/subskrypcji Rozszerzenie MQTT i SensorThings MQTT Nieobsługiwany
Aktualizowanie właściwości istniejących czujników lub obserwacji POPRAWKA HTTP i POPRAWKA JSON Nieobsługiwany
Usuwanie obserwacji USUŃ HTTP Nieobsługiwany
Połączona obsługa danych JSON-LD Nieobsługiwany
Zwróć tylko właściwości wybrane przez klienta $wybierz Nieobsługiwany
Zwracaj wiele encji O&M (np. FeatureOfInterest i Observation) w jednym żądaniu/odpowiedzi $rozwiń Nieobsługiwany

Spinki do mankietów

  1. Interfejs API SensorThings — GitHub
  2. Prezentacja : Czujniki podłączonych aplikacji za pomocą interfejsu API OGC SensorThings (FOSS4G)
  3. Rozdział: Mapowanie interfejsu API OGC SensorThings na oprogramowanie pośredniczące OpenIoT
  4. Samouczek w YouTube: pierwsze kroki, seria nr 1 , seria samouczków SensorThings nr 2 i seria samouczków SensorThings nr 3
  5. Zastosowanie : SensorThings Playground umożliwia zainteresowanym osobom i organizacjom eksperymentowanie z systemem SensorThings w przyjaznym procesie krok po kroku.
  1. ^ „API API OGC SensorThings” . Otwarte konsorcjum geoprzestrzenne . Źródło 2018-02-20 .
  2. ^ „OGC szuka publicznego komentarza na temat standardu API SensorThings dla Internetu przedmiotów | OGC” . www.opengeospatial.org . Źródło 2016-01-26 .
  3. ^ „Specyfikacja techniczna D3.2 — interfejs API SensorThings — wykrywanie” . www.itu.int . Źródło 2019-07-17 .
  4. ^ „OGC szuka publicznego komentarza na temat kandydującego standardu„ SensorThings API Part 2 - Tasking Core ”do użytku w Internecie rzeczy | OGC” . www.opengeospatial.org . Źródło 2018-02-21 .
  5. ^ „Odniesienie do interfejsu API” . www.sensorup.com . Źródło 2016-01-26 .
  6. ^ a b Liang, Steve; Huang, Chih-Yuan; Khalafbeigi, Tania, wyd. (2016-07-26). Interfejs API OGC® SensorThings, część 1: Wykrywanie .
  7. ^ „Model danych SensorThings” . ogc-iot.github.io . Źródło 2016-01-26 .
  8. Bibliografia _ „Y.2060: Przegląd Internetu rzeczy” . www.itu.int . Źródło 2016-01-26 .
  9. ^ a b „ISO 19156:2011 - Informacje geograficzne - Obserwacje i pomiary” . www.iso.org . Źródło 2016-01-26 .
  10. ^ a b Liang, Steve; Khalafbeigi, Tania, wyd. (2019-01-08). Interfejs API OGC® SensorThings, część 2: Rdzeń zadań .
  11. ^ „Język modelu czujnika (SensorML) | OGC” . www.opengeospatial.org . Źródło 2018-02-21 .
  12. ^   Schaaf, Hylke van der; Herzog, Reinhard (2015-01-01). Žarko, Ivana Podnar; Pripužić, Krešimir; Serrano, Martin (red.). Mapowanie interfejsu API OGC SensorThings na oprogramowanie pośredniczące OpenIoT . Notatki z wykładów z informatyki. Międzynarodowe wydawnictwo Springera. s. 62–70. doi : 10.1007/978-3-319-16546-2_6 . ISBN 9783319165455 .
  13. ^ „OGC ogłasza pomyślne zakończenie programu pilotażowego IoT dotyczącego udostępniania informacji o zarządzaniu incydentami” .
  14. ^ „Pilotażowy program S&T dotyczący Internetu przedmiotów demonstruje„ stan praktyczny ” ” . 2016-01-25 . Źródło 2016-02-14 .
  15. ^ „Whisker, propozycja projektu Eclipse” . 2016-03-11 . Źródło 2016-03-24 .
  16. Bibliografia _ _ GitHub . Źródło 2016-06-30 .
  17. ^ "Serwer FraunhoferIOSB/FROST" . GitHub . Źródło 2018-07-04 .
  18. ^ "Klient FraunhoferIOSB/FROST" . GitHub . Źródło 2018-07-04 .
  19. ^ "SensorThings Highchart and DataTable (HcDT) | SensorUp" . www.sensorup.com . Źródło 2016-08-31 .
  20. ^ "mozilla-sensorweb/sensorthings" . GitHub . Źródło 2017-03-05 .
  21. Bibliografia Linki zewnętrzne _ _
  22. ^ „Informacja prasowa: S&T, przemysł, partner ratowników w ocenie technologii” . Departament Bezpieczeństwa Wewnętrznego . 2019-06-10 . Źródło 2019-07-17 .
  23. ^ „Podręcznik integracji NGFR” . Departament Bezpieczeństwa Wewnętrznego . 2018-02-06 . Źródło 2019-07-17 .
  24. ^ „Pilot z czujnikiem Calgary pomaga zaplanować bieg z najlepszą jakością powietrza | Metro News” . metronews.ca . Źródło 2016-11-04 .
  25. ^ „Jakość powietrza w Calgary” . calgary-air.sensorup.com . Źródło 2016-11-04 .
  26. ^ współautorzy, Just van den Broecke - oryginał Geonovum: Mark Otto, Jacob Thornton i Bootstrap. „Inteligentna emisja” . data.smartemission.nl . Źródło 2016-11-04 . {{ cite web }} : |last= ma nazwę ogólną ( pomoc )
  27. Bibliografia Linki zewnętrzne GitHub . Źródło 2016-11-04 .
  28. ^   Kepka, Michał; Černý, Lukáš; Brada, Premek (listopad 2020). „Otwarty system monitorowania zjawisk środowiskowych (streszczenie plakatu)” . Materiały z 18. Konferencji ACM na temat wbudowanych sieciowych systemów czujników (SenSys '20) . ACM. doi : 10.1145/3384419.3430443 . S2CID 227154703 .
  29. ^ „Porównanie interfejsu API SensorThings i usługi obserwacji czujników” . Źródło 2016-02-29 .