TapHome

Xiaomi 1T (Valetudo)

Packet Parser → HTTP
Eingereicht von
Zuletzt aktualisiert: 03. 2026
Xiaomi 1T (Valetudo)

Der Xiaomi Mijia 1T (STYTJ02ZHM) ist ein Saugroboter mit Wischfunktion, hergestellt von Dreame und unter der Marke Xiaomi vertrieben. Diese Vorlage erfordert Valetudo — eine Open-Source-Firmware, die die Cloud-Abhängigkeit des Herstellers durch eine lokale HTTP-API ersetzt. Sobald Valetudo auf dem Roboter installiert ist, kommuniziert TapHome direkt mit der Valetudo REST API v2 im lokalen Netzwerk. Es ist keine Cloud-Verbindung oder Authentifizierung erforderlich.

Die Vorlage bietet Batterieüberwachung, eine Mehrwert-Statusanzeige und Schaltflächen zum Starten, Pausieren, Stoppen und Andocken des Saugroboters. Eine Ortungsfunktion löst einen akustischen Signalton aus, um den Roboter zu finden.

Valetudo muss auf dem Roboter installiert sein, bevor diese Vorlage verwendet werden kann. Die Vorlage kommuniziert mit der Valetudo HTTP-API, nicht mit den Cloud-Diensten von Xiaomi. Das Rooten des Xiaomi 1T erfordert einen 3,3-V-USB-zu-UART-Adapter und ein Dreame Breakout PCB — detaillierte Anweisungen findest du auf der Valetudo-Seite für unterstützte Roboter.

Konfiguration

Gib beim Import der Vorlage die IP-Adresse des Roboters im lokalen Netzwerk ein (der Standardplatzhalter ist 192.168.0.1). Die Valetudo REST API lauscht auf Port 80 ohne Authentifizierung.

Da Valetudo keinen mDNS-Hostnamen bereitstellt, weise dem Roboter eine statische IP-Adresse oder eine DHCP-Reservierung zu, damit sich die Adresse nach einem Netzwerkneustart nicht ändert.

Öffne http://<robot-ip>/swagger/ im Browser, um alle verfügbaren Valetudo API-Endpunkte interaktiv zu erkunden. Dies ist nützlich zur Überprüfung der Konnektivität und zur Inspektion des aktuellen Roboterzustands.

Gerätefähigkeiten

Batteriestand

Die Vorlage liest den Ladezustand der Batterie aus der Antwort von /api/v2/robot/state/attributes. Sie parst BatteryStateAttribute.level (gemeldet als 0–100) und teilt durch 100, um einen Bereich von 0,0–1,0 für TapHome zu erzeugen. Der Wert wird alle 2,5 Sekunden aktualisiert.

Saugroboter-Status

Ein Mehrwertschalter zeigt den aktuellen Betriebszustand des Roboters an. Die Vorlage parst StatusStateAttribute.value aus der Zustandsattribut-Antwort und ordnet ihn einem ganzzahligen Index zu:

StatusWertBeschreibung
Docked0Roboter ist auf der Ladestation
Cleaning1Aktiver Reinigungszyklus
Returning2Rückkehr zur Ladestation
Paused3Reinigung pausiert
Idle4Keine Reinigung, nicht angedockt
Unknown9Nicht erkannter Status

Die Valetudo API kann auch die Status error, manual_control und moving melden — diese werden nicht einzeln zugeordnet und erscheinen als „Unknown" (Wert 9).

Saugroboter-Steuerung

Vier Schaltflächen steuern den Saugroboter über den Endpunkt BasicControlCapability:

  • Start — startet einen vollständigen Reinigungszyklus
  • Pause — pausiert die aktuelle Reinigung
  • Stop — stoppt die aktuelle Reinigung
  • Home — schickt den Roboter zurück zur Ladestation

Jede Schaltfläche sendet eine PUT-Anfrage an /api/v2/robot/capabilities/BasicControlCapability mit der entsprechenden Aktion.

Ortung

Die Locate-Schaltfläche löst über den Endpunkt LocateCapability einen akustischen Signalton auf dem Roboter aus. Dies ist nützlich, um den Roboter zu finden, wenn er feststeckt oder sich an einem unerwarteten Ort befindet.

Weitere Fähigkeiten

Die Valetudo API stellt mehrere Fähigkeiten bereit, die derzeit nicht in der Vorlage implementiert sind: Lüftergeschwindigkeitssteuerung (Saugkraft-Voreinstellungen), Wasserverbrauchssteuerung (Wischintensität), Zonenreinigung, Navigation zu einem bestimmten Punkt, Kartenschnappschüsse, Verbrauchsmaterialüberwachung (Filter, Bürsten, Sensoren), Lautsprecherlautstärke, Nicht-stören-Planung, Ladestatus und WLAN-Signalstärke. Diese können in einem zukünftigen Vorlagen-Update hinzugefügt werden.

Fehlerbehebung

Gerät antwortet nicht
  1. Überprüfe, ob der Roboter eingeschaltet, mit dem WLAN verbunden ist und eine gültige IP-Adresse hat
  2. Öffne http://<robot-ip>/ im Browser — wenn die Valetudo-Weboberfläche lädt, ist die API erreichbar
  3. Prüfe, ob TapHome und der Roboter im selben Netzwerk oder VLAN sind
  4. Bestätige, dass Valetudo läuft — wenn der Roboter auf Werkseinstellungen zurückgesetzt wurde, muss Valetudo möglicherweise neu installiert werden
Status zeigt „Unknown" (???)

Die Vorlage ordnet fünf Status zu (docked, cleaning, returning, paused, idle). Wenn der Roboter error, manual_control oder moving meldet, wird der Status als „Unknown" (Wert 9) angezeigt. Dies ist erwartetes Verhalten — die nicht zugeordneten Status treten bei Randfällen wie manueller Fernsteuerung oder Fehlerbehebung auf.

Batteriestand zeigt Null
  1. Bestätige, dass Valetudo läuft und die API unter /api/v2/robot/state/attributes antwortet
  2. Prüfe, ob die Antwort einen BatteryStateAttribute-Eintrag mit einem Wert ungleich Null für level enthält
  3. Wenn der Roboter kürzlich neu gestartet wurde, warte auf den Abschluss der ersten Zustandsabfrage

Verfügbare Geräte

Xiaomi 1T (Valetudo) Modul
Benutzerdefinierte Variablen

Xiaomi 1T (Valetudo)

Lesen (Modul)
VAR response := SENDHTTPREQUEST("/api/v2/robot/state/attributes");
IF response.IsSuccess
 state := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
Batteriestand Analogeingang Nur lesen

Ladezustand der Batterie — Prozentsatz der verbleibenden Energie (0–100 %)

numeric Einheit: %

Batteriestand

Eingangslevel lesen
PARSEJSON(state, "$[?(@.__class == 'BatteryStateAttribute')].level") / 100
Home Taster
action

Home

Tastenstatus schreiben
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
Ortung Taster

Löst einen akustischen Signalton am Roboter aus, um ihn zu finden

action

Ortung

Tastenstatus schreiben
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
Pause Taster
action

Pause

Tastenstatus schreiben
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 Taster
action

Start

Tastenstatus schreiben
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
Saugroboter-Status Mehrwertschalter Nur lesen

Aktueller Betriebszustand — Docked, Cleaning, Returning, Paused, Idle oder Unknown

enum mapped
Werte / Zustände: Docked · Cleaning · Returning · Paused · Idle · ???

Saugroboter-Status

Schaltzustand lesen
var status := PARSEJSON(state, "$[?(@.__class == 'StatusStateAttribute')].value");

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

Stop

Tastenstatus schreiben
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
Verbindung: Packet Parser → HTTP
Mögliche Verbesserungen (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.

Quellen