TapHome

Xiaomi 1T (Valetudo)

Packet Parser → HTTP
Dodane przez
Ostatnia aktualizacja: 03. 2026
Xiaomi 1T (Valetudo)

Xiaomi Mijia 1T (STYTJ02ZHM) to robot odkurzająco-mopujący produkowany przez Dreame i sprzedawany pod marką Xiaomi. Ten szablon wymaga Valetudo — oprogramowania open-source, które zastępuje zależność od chmury producenta lokalnym API HTTP. Po zainstalowaniu Valetudo na robocie TapHome komunikuje się bezpośrednio z Valetudo REST API v2 w sieci lokalnej. Nie jest wymagane połączenie z chmurą ani uwierzytelnienie.

Szablon zapewnia monitorowanie baterii, wielowartościowy wskaźnik stanu oraz przyciski do uruchamiania, wstrzymywania, zatrzymywania i dokowania odkurzacza. Funkcja lokalizacji wyzwala sygnał dźwiękowy pomagający znaleźć robota.

Valetudo musi być zainstalowane na robocie przed użyciem tego szablonu. Szablon komunikuje się z API HTTP Valetudo, a nie z usługami chmurowymi Xiaomi. Rootowanie Xiaomi 1T wymaga adaptera USB-UART 3,3 V i płytki Dreame Breakout PCB — szczegółowe instrukcje znajdziesz na stronie obsługiwanych robotów Valetudo.

Konfiguracja

Podczas importu szablonu podaj adres IP robota w sieci lokalnej (domyślna wartość to 192.168.0.1). Valetudo REST API nasłuchuje na porcie 80 bez uwierzytelnienia.

Ponieważ Valetudo nie udostępnia nazwy hosta mDNS, przypisz robotowi statyczny adres IP lub rezerwację DHCP, aby adres nie zmienił się po restarcie sieci.

Otwórz http://<robot-ip>/swagger/ w przeglądarce, aby interaktywnie przeglądać wszystkie dostępne endpointy API Valetudo. Jest to przydatne do weryfikacji łączności i sprawdzania aktualnego stanu robota.

Możliwości urządzenia

Poziom baterii

Szablon odczytuje stan naładowania baterii z odpowiedzi /api/v2/robot/state/attributes. Analizuje BatteryStateAttribute.level (raportowany jako 0–100) i dzieli przez 100, aby uzyskać zakres 0,0–1,0 dla TapHome. Wartość aktualizuje się co 2,5 sekundy.

Stan odkurzacza

Wielowartościowy przełącznik wyświetla aktualny stan operacyjny robota. Szablon analizuje StatusStateAttribute.value z odpowiedzi atrybutów stanu i mapuje go na indeks całkowitoliczbowy:

StanWartośćOpis
Docked0Robot jest na stacji ładującej
Cleaning1Aktywny cykl odkurzania
Returning2Powrót do stacji
Paused3Odkurzanie wstrzymane
Idle4Nie odkurza, nie zadokowany
Unknown9Nierozpoznany stan

API Valetudo może również raportować stany error, manual_control i moving — nie są one indywidualnie mapowane i wyświetlą się jako „Unknown" (wartość 9).

Sterowanie odkurzaczem

Cztery przyciski sterują odkurzaczem przez endpoint BasicControlCapability:

  • Start — rozpoczyna pełny cykl odkurzania
  • Pause — wstrzymuje bieżącą operację odkurzania
  • Stop — zatrzymuje bieżącą operację odkurzania
  • Home — odsyła robota z powrotem do stacji ładującej

Każdy przycisk wysyła żądanie PUT do /api/v2/robot/capabilities/BasicControlCapability z odpowiednią akcją.

Lokalizacja

Przycisk Locate wyzwala sygnał dźwiękowy na robocie przez endpoint LocateCapability. Jest to przydatne do znalezienia robota, gdy utknął lub znajduje się w nieoczekiwanym miejscu.

Dodatkowe możliwości

API Valetudo udostępnia kilka możliwości, które nie są obecnie zaimplementowane w szablonie: sterowanie prędkością wentylatora (presety mocy ssania), sterowanie zużyciem wody (intensywność mopowania), odkurzanie strefowe, nawigacja do określonego punktu, migawki mapy, monitorowanie materiałów eksploatacyjnych (filtr, szczotki, czujniki), głośność głośnika, planowanie trybu nie przeszkadzać, stan ładowania i siła sygnału WiFi. Mogą one zostać dodane w przyszłej aktualizacji szablonu.

Rozwiązywanie problemów

Urządzenie nie odpowiada
  1. Sprawdź, czy robot jest włączony, połączony z Wi-Fi i ma prawidłowy adres IP
  2. Otwórz http://<robot-ip>/ w przeglądarce — jeśli interfejs webowy Valetudo się ładuje, API jest osiągalne
  3. Sprawdź, czy TapHome i robot są w tej samej sieci lub VLAN
  4. Potwierdź, że Valetudo działa — jeśli robot został przywrócony do ustawień fabrycznych, Valetudo może wymagać ponownej instalacji
Stan pokazuje „Unknown" (???)

Szablon mapuje pięć stanów (docked, cleaning, returning, paused, idle). Jeśli robot raportuje error, manual_control lub moving, stan wyświetli się jako „Unknown" (wartość 9). To oczekiwane zachowanie — niemapowane stany występują w przypadkach brzegowych, takich jak manualne sterowanie RC lub odzyskiwanie po błędzie.

Poziom baterii pokazuje zero
  1. Potwierdź, że Valetudo działa i API odpowiada na /api/v2/robot/state/attributes
  2. Sprawdź, czy odpowiedź zawiera wpis BatteryStateAttribute z niezerową wartością level
  3. Jeśli robot został niedawno uruchomiony ponownie, poczekaj na zakończenie pierwszego odpytywania stanu

Dostępne urządzenia

Xiaomi 1T (Valetudo) Moduł
Zmienne niestandardowe

Xiaomi 1T (Valetudo)

Odczyt (moduł)
VAR response := SENDHTTPREQUEST("/api/v2/robot/state/attributes");
IF response.IsSuccess
 state := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
Poziom baterii Wejście analogowe Tylko do odczytu

Stan naładowania baterii — procent pozostałej energii (0–100%)

numeric Jednostka: %

Poziom baterii

Odczyt poziomu wejściowego
PARSEJSON(state, "$[?(@.__class == 'BatteryStateAttribute')].level") / 100
Baza Przycisk
action

Baza

Zapis stanu przycisku
VAR response := SENDHTTPREQUEST("/api/v2/robot/capabilities/BasicControlCapability", "PUT", "{\"action\": \"home\"}", "accept: */*", "Content-Type: application/json");
IF response.IsSuccess
 var res := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
Zlokalizuj Przycisk

Wyzwala sygnał dźwiękowy na robocie, aby pomóc go znaleźć

action

Zlokalizuj

Zapis stanu przycisku
VAR response := SENDHTTPREQUEST("/api/v2/robot/capabilities/LocateCapability", "PUT", "{\"action\": \"locate\"}", "accept: */*", "Content-Type: application/json");
IF response.IsSuccess
 var res := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
Pauza Przycisk
action

Pauza

Zapis stanu przycisku
VAR response := SENDHTTPREQUEST("/api/v2/robot/capabilities/BasicControlCapability", "PUT", "{\"action\": \"pause\"}", "accept: */*", "Content-Type: application/json");
IF response.IsSuccess
 var res := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
Start Przycisk
action

Start

Zapis stanu przycisku
VAR response := SENDHTTPREQUEST("/api/v2/robot/capabilities/BasicControlCapability", "PUT", "{\"action\": \"start\"}", "accept: */*", "Content-Type: application/json");
IF response.IsSuccess
 var res := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
Stan odkurzacza Przełącznik wielowartościowy Tylko do odczytu

Aktualny stan operacyjny — Docked, Cleaning, Returning, Paused, Idle lub Unknown

enum mapped
Wartości / Stany: Docked · Cleaning · Returning · Paused · Idle · ???

Stan odkurzacza

Odczyt stanu przełącznika
var status := PARSEJSON(state, "$[?(@.__class == 'StatusStateAttribute')].value");

switch(status,
"docked", 0,
"cleaning", 1,
"returning", 2,
"paused", 3,
"idle", 4,
9);
Stop Przycisk
action

Stop

Zapis stanu przycisku
VAR response := SENDHTTPREQUEST("/api/v2/robot/capabilities/BasicControlCapability", "PUT", "{\"action\": \"stop\"}", "accept: */*", "Content-Type: application/json");
IF response.IsSuccess
 var res := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
Połączenie: Packet Parser → HTTP
Możliwe ulepszenia (10)
  • Fan speed control — Set suction power level (low, medium, high, max). Available via PUT with preset value.
  • Water usage control — Set mopping water flow level (low, medium, high). Available on models with mopping support.
  • Map snapshot — Retrieve current map as PNG image. Available via GET.
  • Zone cleaning — Start cleaning of specific zones defined by coordinates.
  • Go to location — Send robot to specific coordinates on the map.
  • Consumable monitoring — Read remaining life of filter, main brush, side brush, and sensor. Percentage or hours remaining.
  • Charging status — Battery charging state (charging, discharging, charged). Available in state attributes alongside battery level.
  • Speaker volume — Set robot speaker volume level (0-100).
  • Do not disturb — Enable/disable DND mode with start/end time.
  • WiFi signal strength — WiFi RSSI and signal quality. Available in state attributes response.

Źródła