TapHome

Xiaomi 1T (Valetudo)

Packet Parser → HTTP
Pridal
Posledná aktualizácia: 03. 2026
Xiaomi 1T (Valetudo)

Xiaomi Mijia 1T (STYTJ02ZHM) je robotický vysávač s mopom vyrábaný spoločnosťou Dreame a predávaný pod značkou Xiaomi. Táto šablóna vyžaduje Valetudo — open-source firmvér, ktorý nahrádza závislosť na cloude výrobcu lokálnym HTTP API. Po nainštalovaní Valetudo na robota TapHome komunikuje priamo s Valetudo REST API v2 v lokálnej sieti. Nie je potrebné žiadne cloudové pripojenie ani autentifikácia.

Šablóna poskytuje monitorovanie batérie, viachodnotový indikátor stavu a tlačidlá na spustenie, pozastavenie, zastavenie a dokovanie vysávača. Funkcia lokalizácie spustí zvukový signál na nájdenie robota.

Valetudo musí byť nainštalované na robote pred použitím tejto šablóny. Šablóna komunikuje s Valetudo HTTP API, nie s cloudovými službami Xiaomi. Rootovanie Xiaomi 1T vyžaduje 3,3 V USB-to-UART adaptér a Dreame Breakout PCB — podrobné inštrukcie nájdeš na stránke podporovaných robotov Valetudo.

Konfigurácia

Počas importu šablóny zadaj IP adresu robota v lokálnej sieti (predvolená hodnota je 192.168.0.1). Valetudo REST API počúva na porte 80 bez autentifikácie.

Keďže Valetudo nevystavuje mDNS hostname, priraď robotovi statickú IP adresu alebo DHCP rezerváciu, aby sa adresa nezmenila po reštarte siete.

Otvor http://<robot-ip>/swagger/ v prehliadači na interaktívne preskúmanie všetkých dostupných Valetudo API endpointov. Je to užitočné na overenie konektivity a kontrolu aktuálneho stavu robota.

Schopnosti zariadenia

Stav batérie

Šablóna číta stav nabitia batérie z odpovede /api/v2/robot/state/attributes. Parsuje BatteryStateAttribute.level (reportovaný ako 0–100) a delí 100 na vytvorenie rozsahu 0,0–1,0 pre TapHome. Hodnota sa aktualizuje každých 2,5 sekundy.

Stav vysávača

Viachodnotový prepínač zobrazuje aktuálny prevádzkový stav robota. Šablóna parsuje StatusStateAttribute.value z odpovede atribútov stavu a mapuje ho na celočíselný index:

StavHodnotaPopis
Docked0Robot je na nabíjacej stanici
Cleaning1Aktívny cyklus vysávania
Returning2Návrat k stanici
Paused3Vysávanie pozastavené
Idle4Nevysáva, nie je na stanici
Unknown9Nerozpoznaný stav

Valetudo API môže reportovať aj stavy error, manual_control a moving — tieto nie sú individuálne mapované a zobrazia sa ako „Unknown" (hodnota 9).

Ovládanie vysávača

Štyri tlačidlá ovládajú vysávač cez endpoint BasicControlCapability:

  • Start — spustí kompletný cyklus vysávania
  • Pause — pozastaví aktuálnu operáciu vysávania
  • Stop — zastaví aktuálnu operáciu vysávania
  • Home — pošle robota späť na nabíjaciu stanicu

Každé tlačidlo odošle PUT požiadavku na /api/v2/robot/capabilities/BasicControlCapability s príslušnou akciou.

Lokalizácia

Tlačidlo Locate spustí zvukový signál na robote cez endpoint LocateCapability. Je to užitočné na nájdenie robota, keď je zaseknutý alebo na neočakávanom mieste.

Ďalšie schopnosti

Valetudo API vystavuje niekoľko schopností, ktoré nie sú v šablóne implementované: ovládanie rýchlosti ventilátora (predvoľby sacieho výkonu), ovládanie spotreby vody (intenzita mopovania), zónové vysávanie, navigácia na konkrétne miesto, snímky mapy, monitorovanie spotrebného materiálu (filter, kefy, senzory), hlasitosť reproduktora, plánovanie režimu nerušiť, stav nabíjania a sila Wi-Fi signálu. Tieto môžu byť pridané v budúcej aktualizácii šablóny.

Riešenie problémov

Zariadenie neodpovedá
  1. Over, že robot je zapnutý, pripojený k Wi-Fi a má platnú IP adresu
  2. Otvor http://<robot-ip>/ v prehliadači — ak sa načíta webové rozhranie Valetudo, API je dostupné
  3. Skontroluj, že TapHome a robot sú v rovnakej sieti alebo VLANe
  4. Potvrď, že Valetudo beží — ak bol robot obnovený do továrenských nastavení, Valetudo môže byť potrebné preinštalovať
Stav zobrazuje „Unknown" (???)

Šablóna mapuje päť stavov (docked, cleaning, returning, paused, idle). Ak robot reportuje error, manual_control alebo moving, stav sa zobrazí ako „Unknown" (hodnota 9). Toto je očakávané správanie — nemapované stavy sa vyskytujú pri okrajových situáciách ako manuálne RC ovládanie alebo obnova po chybe.

Stav batérie ukazuje nulu
  1. Potvrď, že Valetudo beží a API odpovedá na /api/v2/robot/state/attributes
  2. Skontroluj, že odpoveď obsahuje záznam BatteryStateAttribute s nenulovou hodnotou level
  3. Ak bol robot nedávno reštartovaný, počkaj na dokončenie prvého pollingu stavu

Dostupné zariadenia

Xiaomi 1T (Valetudo) Modul
Vlastné premenné

Xiaomi 1T (Valetudo)

Čítanie (modul)
VAR response := SENDHTTPREQUEST("/api/v2/robot/state/attributes");
IF response.IsSuccess
 state := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
Stav batérie Analógový vstup Len na čítanie

Stav nabitia batérie — percento zostávajúcej energie (0–100 %)

numeric Jednotka: %

Stav batérie

Čítanie vstupnej úrovne
PARSEJSON(state, "$[?(@.__class == 'BatteryStateAttribute')].level") / 100
Domov Tlačidlo
action

Domov

Zápis stavu tlačidla
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
Nájsť Tlačidlo

Spustí zvukový signál na robote na pomoc s jeho nájdením

action

Nájsť

Zápis stavu tlačidla
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 Tlačidlo
action

Pauza

Zápis stavu tlačidla
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
Štart Tlačidlo
action

Štart

Zápis stavu tlačidla
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
Stav vysávača Viacstavový prepínač Len na čítanie

Aktuálny prevádzkový stav — Docked, Cleaning, Returning, Paused, Idle alebo Unknown

enum mapped
Hodnoty / Stavy: Docked · Cleaning · Returning · Paused · Idle · ???

Stav vysávača

Čítanie stavu prepínača
var status := PARSEJSON(state, "$[?(@.__class == 'StatusStateAttribute')].value");

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

Stop

Zápis stavu tlačidla
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
Pripojenie: Packet Parser → HTTP
Možné vylepšenia (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.

Zdroje