Przegląd
TapHome API umożliwia integrację urządzeń TapHome z aplikacjami firm trzecich za pomocą żądań protokołu HTTP i odpowiedzi JSON. System działa pod adresem https://api.taphome.com/api/TapHomeApi/v1/.
Najważniejsze cechy:
- Dostęp do zasobów oparty na HTTP, z odpowiednimi kodami statusu
- Standardowa dokumentacja Swagger dostępna pod
https://api.taphome.com/api/doc - Odpowiedzi JSON kodowane w UTF-8
- Wsparcie dla API w sieci lokalnej (Core 2021.3+) przez HTTP, bez interfejsu Swagger UI
Zaleta sieci lokalnej: Bezpośredni dostęp przez LAN/VPN zmniejsza opóźnienia i eliminuje zależność od Internetu. Jednostki Core wymagają stałego adresu IP lub konfiguracji mDNS.
Uwierzytelnianie
TapHome API wykorzystuje niestandardowe uwierzytelnianie HTTP za pomocą tokenów Bearer (nie używa poświadczeń użytkownik/hasło).
Format nagłówka
|
|
Przykład żądania
|
|
Przykład cURL
|
|
Zarządzanie tokenami
Tokeny znajdziesz w aplikacji TapHome: Ustawienia → Udostępnij urządzenia → TapHome API.
Użyj menu kontekstowego (trzy kropki), aby wygenerować nowe tokeny dostępu. Wygenerowanie nowego tokena unieważnia poprzedni. Alternatywna metoda z parametrem zapytania jest dostępna wyłącznie dla wywołań GET (ostrzeżenie dotyczące bezpieczeństwa: unikaj udostępniania adresów URL zawierających tokeny).
Skompromitowane tokeny należy niezwłocznie zregenerować; w danym momencie aktywny jest tylko jeden token.
Referencje API
Pobierz informacje o lokalizacji
Pobiera metadane lokalizacji jednostki sterującej i weryfikuje status połączenia.
Wariant 1
|
|
Wariant 2
|
|
Parametry: Brak
Odpowiedź:
|
|
Błędy statusu HTTP:
- 401 Nieautoryzowany
- 404 Nie znaleziono (lokalizacja odłączona od chmury)
- 405 Metoda niedozwolona
- 500 Wewnętrzny błąd serwera
Odkrywanie urządzeń
Pobiera wyeksponowane urządzenia i ich obsługiwane typy wartości, w tym właściwości tylko do odczytu, takie jak Status urządzenia.
Wariant 1
|
|
Wariant 2
|
|
Parametry: Brak
Odpowiedź:
|
|
Błędy statusu HTTP:
- 401 Nieautoryzowany
- 404 Nie znaleziono (lokalizacja odłączona od chmury)
- 405 Metoda niedozwolona
- 500 Wewnętrzny błąd serwera
Pobierz wartości urządzenia
Pobiera bieżące wartości dla wskazanego urządzenia, w tym identyfikatory typów i nazwy. Wartości są numeryczne (typ double). Niektóre właściwości są tylko do odczytu.
Wariant 1
|
|
Wariant 2
|
|
Parametry: Identyfikator urządzenia w ścieżce URL lub w treści JSON
Odpowiedź:
|
|
Błędy statusu HTTP:
- 401 Nieautoryzowany
- 403 Zabroniony (urządzenie nie jest wyeksponowane)
- 404 Nie znaleziono (lokalizacja odłączona od chmury)
- 405 Metoda niedozwolona
- 500 Wewnętrzny błąd serwera
Pobierz wartości wielu urządzeń
Pobiera wszystkie bieżące wartości dla wielu urządzeń jednocześnie. Zmniejsza zużycie pasma w porównaniu z indywidualnymi żądaniami. Wymaga Core 2021.3 lub nowszej.
|
|
Parametry:
|
|
Odpowiedź:
|
|
Błędy statusu HTTP:
- 401 Nieautoryzowany
- 403 Zabroniony (urządzenie nie jest wyeksponowane)
- 404 Nie znaleziono (lokalizacja odłączona od chmury)
- 405 Metoda niedozwolona
- 500 Wewnętrzny błąd serwera
Pobierz wszystkie wartości wszystkich urządzeń
Pobiera pełne informacje o stanie wszystkich wyeksponowanych urządzeń w jednym żądaniu. Wymaga Core 2021.3 lub nowszej.
Wariant 1
|
|
Wariant 2
|
|
Odpowiedź:
|
|
Błędy statusu HTTP:
- 401 Nieautoryzowany
- 403 Zabroniony (urządzenie nie jest wyeksponowane)
- 404 Nie znaleziono (lokalizacja odłączona od chmury)
- 405 Metoda niedozwolona
- 500 Wewnętrzny błąd serwera
Pobierz wartość pojedynczego urządzenia
Pobiera pojedynczą wartość urządzenia bez konieczności przetwarzania JSON. Idealne dla prostych implementacji. Odpowiedź jest liczbą (double) sformatowaną jako łańcuch znaków z notacją dziesiętną.
|
|
Parametry: Identyfikator urządzenia w ścieżce, identyfikator typu wartości i token w ciągu zapytania
Odpowiedź:
|
|
Nieznane wartości zwracają NaN. Częste żądania (częściej niż co 500 ms) mogą zwracać dane z pamięci podręcznej.
Błędy statusu HTTP:
- 401 Nieautoryzowany
- 403 Zabroniony (urządzenie nie jest wyeksponowane)
- 404 Nie znaleziono (lokalizacja odłączona od chmury)
- 405 Metoda niedozwolona
- 500 Wewnętrzny błąd serwera
Ustaw wartość urządzenia
Modyfikuje jedną lub więcej wartości urządzenia według identyfikatora typu. Wartości nieokreślone pozostają bez zmian. Typ numeryczny (double).
Częste modyfikacje (częściej niż co 500 ms) generują odpowiedź HTTP 503.
Wariant 1
|
|
Obsługuje do trzech jednoczesnych przypisań wartości.
Wariant 2
|
|
Parametry:
|
|
Odpowiedź:
|
|
Błędy statusu HTTP:
- 401 Nieautoryzowany
- 403 Zabroniony (urządzenie nie jest wyeksponowane)
- 404 Nie znaleziono (lokalizacja odłączona od chmury)
- 405 Metoda niedozwolona
- 500 Wewnętrzny błąd serwera
- 503 Usługa niedostępna (zbyt częste ustawianie wartości; spróbuj ponownie później)
Webhook
Funkcjonalność Webhook dostarcza zmiany stanu wyeksponowanych urządzeń poprzez HTTP POST na skonfigurowany adres URL w środowiskach LAN lub Internet. Zapewnia bardziej efektywną synchronizację w porównaniu z okresowym odpytywaniem.
Ograniczanie częstotliwości: Aktywuje się przy minimalnych odstępach 300 ms. Przy szybkich zmianach wartości wysyłana jest tylko ostatnia zmiana; wcześniejsze wartości pośrednie są odrzucane. Nieudane transmisje nie są ponawiane.
Konfiguracja: Aplikacja TapHome obsługuje trzy niestandardowe nagłówki HTTP w formacie „klucz: wartość”.
Struktura danych: Identyczna jak format odpowiedzi punktu końcowego getMultipleDevicesValues.