Externe Integration - Roborock

Hallo an alle und besonders an @Lokkye.
Ich träumte davon, deine Roborock-Integration zu testen… aber mein Gerät ist mit der Roborock-App und nicht mit der Xiaomi-App konfiguriert (weil ich die Roborock-App damals viel besser fand).

Glaubst du, dass es möglich ist, diese Integration weiterzuentwickeln, um Geräte wie meins zu unterstützen?

Bis zu deiner Antwort ein großes Kompliment für deine Arbeit!

Hallo @guim31, ich schaue mal, ob das möglich ist, aber ich werde wahrscheinlich deine Hilfe beim Testen brauchen. Ich kümmere mich nächste Woche darum.

Danke für deine Antwort, das wird mir großes Vergnügen bereiten!

interessiert mich auch die Roborock-Konfiguration :slight_smile:

Ich habe gesehen, dass sich das Repo bewegt :face_savoring_food: haste

Roborock 2.1.1 :rocket:

Ich habe mich dafür entschieden, die beiden Integrationen zu trennen.

Daher ist die Roborock-Integration nur für Nutzer der Roborock-App

https://plus.gladysassistant.com/dashboard/integration/device/external/ext-callemand-gladys-roborock

Ich konnte nur die Verbindung testen und nicht die Gerätehinzufügung und die Steuerung, da ich keine Roborock-Geräte in meinem Roborock-Konto habe

Und ich habe gerade eine neue Xiaomi Home-Integration erstellt, die es ermöglicht, Roborock-Geräte zu steuern, die mit dieser Anwendung verknüpft sind, aber später können wir weitere Geräte hinzufügen.

https://plus.gladysassistant.com/dashboard/integration/device/external-install/callemand/gladys-xiaomi-home?search=Xia&from=%2Fdashboard%2Fintegration

Ich teste das so schnell wie möglich!!

Das ist ganz nett, aber mir fehlen essentielle Funktionen, die HA zum Beispiel bieten kann.

Bei Roborock kann man Routinen (Shortcuts) mit Aktionen wie Reinigungstypen usw. erstellen.

Über HA kann man diese Routinen starten, aber aktuell nicht über Gladys. Übrigens gibt es auch ein System zum Abbilden von Räumen zwischen HA und Roborock usw. Hier ist ein Beispiel, was ich in HA habe.

Glaubst du, dass es zumindest möglich wäre, diese Shortcuts als Tastenschalter in Gladys zu haben?

Man müsste die Roborock-Routinen bei der Erkennung abrufen, für jede eine Gladys-Funktion vom Typ Tastenschalter erstellen und dann die Routine anhand ihrer ID beim Drücken ausführen. Dadurch könnte man sie auch direkt als Aktionen in Gladys-Szenen verwenden.

Ich habe einen Fork deines Repos @Lokkye erstellt, um die Routinen hinzuzufügen, aber ich habe ein technisches Problem.

@pierre-gilles Ich wollte die über die API verfügbaren Routinen dem Roboter im Push-Button-Modus hinzufügen.
Daher habe ich die Erstellung wie folgt vorgenommen:

for (const routine of routines) {
features.push({
name: `Routine - ${routine.name}`,
external_id: ids.feature(`${FEATURE_CODES.ROUTINE_PREFIX}${routine.id}`),
read_only: false,
has_feedback: false,
keep_history: false,
min: 0,
max: 1,
category: DEVICE_FEATURE_CATEGORIES.BUTTON,
type: DEVICE_FEATURE_TYPES.BUTTON.PUSH,
});

Ich habe tatsächlich einen Push-Button erstellt (ich habe ihn getestet und meine Routine startet einwandfrei).
Aber beim Hinzufügen im Dashboard habe ich dies:

Warum wird im Selektor nicht der feature.name, sondern der Funktions-Typ angezeigt?
In meinem Fall habe ich nur eine Routine, aber potenziell könnte ich mehrere haben.
Wie soll ich in diesem Fall vorgehen?
Ein Gerät pro Routine?
Wäre es nicht besser, den feature.name mit dem Typ für solche Fälle anzuzeigen?

Danke für eure Zeit :slight_smile:

Je nach Ergebnis werde ich versuchen, weitere Features hinzuzufügen:

usw.

Und vielleicht ein Raum-Mapping wie bei HA (um z.B. in Szenen zu sagen: „Reinige Raum x“)?

Ich wollte die über die API verfügbaren Routinen im Modus mit Druckknopf zum Roboter hinzufügen

@pierre-gilles

Letztlich wäre das doch das gleiche Feature wie bei einer automatischen Auswahl für LGwebos-Anwendungen?

Hallo @spenceur, hallo @Lokkye,

Zuerst einmal herzlichen Glückwunsch an euch beide: @Lokkye für die schnelle Veröffentlichung der beiden Integrationen, ohne das Material überhaupt in der Hand zu haben, und @spenceur für das Forken mit funktionierendem Code. Genau so kommt der Ökosystem voran :clap:

Zu deinem Problem mit dem Selektor @spenceur: Das ist kein Bug, und vor allem ist das kein Problem, das du in deinem Code umgehen musst.

Zwei Dinge:

  1. Wenn du eine Funktion in einem Dashboard-Widget hinzufügst, kannst du ihm den Namen geben, den du willst, direkt im Widget-Bearbeitungsbildschirm. Dieser Name überschreibt alles andere. Das ist die historische Antwort zu diesem Thema, und sie deckt deinen Fall ab: Du kannst deine Zeile „Küchenreinigung“ nennen, selbst wenn die Funktion anders heißt.
  2. An den Stellen, wo dieses Umbenennen nicht angewendet wird (z. B. Szenen-Selektoren), wechselt Gladys automatisch zum Funktionsnamen, sobald es mehrere desselben Typs auf demselben Gerät gibt. Wenn du nur „Druckknopf“ gesehen hast, dann weil du nur eine Routine hattest. Mit zwei oder mehr Routinen werden deine Namen automatisch angezeigt. Und mit einer einzigen gibt es ohnehin keine mögliche Mehrdeutigkeit.

Also, um deine Frage zu beantworten: auf keinen Fall ein Gerät pro Routine. Behalte alles auf einem Gerät, dein aktueller Code ist gut.

Ein kleines Detail am Rande: Für einen Druckknopf im Aktuator-Modus verwende lieber min: 1, max: 1 (das ist die Konvention, die anderswo in Gladys verwendet wird). Mit min: 0 zeigt die Szenenaktion einen Slider von 0 bis 1 an, was für einen Knopf nicht viel Sinn ergibt.

Ein wichtigerer Punkt für euch beide: Gladys hat seit kurzem eine native Kategorie VACUUM_CLEANER im Core (hinzugefügt für die Matter-Integration), mit den Funktionen state, run-mode, clean-mode und dock, ihren Werten, ihren Übersetzungen und einer dedizierten Anzeige im Dashboard. Sie ist in server/utils/constants.js zu finden, falls du sie dir ansehen möchtest.

Stützt sich die Roborock-Integration darauf für die Grundfunktionen? Wenn ja, perfekt. Wenn nicht, lohnt es sich wirklich, darauf umzusteigen, bevor ihr weitergeht: Ohne das wird ein Staubsauger, der über Matter hochgeladen wird, und ein Staubsauger, der über Roborock hochgeladen wird, nicht auf die gleiche Weise im gleichen Dashboard gesteuert, obwohl es derselbe Roboter ist. Die Routinen hingegen bleiben ganz legitim Druckknöpfe.

Zum Raum-Mapping: Das ist die interessanteste Anforderung des Themas. Heute sind alle Auswahllisten von Gladys (Lüftungsmodi, Piloten, Klimaanlagen…) im Code mit einer Übersetzung pro Wert fest verdrahtet. Sie können keine vom Benutzer in der Roborock-App definierten Räume aufnehmen.

Kurzfristig die Lösung, die bereits funktioniert: eine Druckknopf-Funktion pro Raum („Reinigen - Küche“, „Reinigen - Wohnzimmer“…). Das ist direkt in Szenen verwendbar und löst nebenbei das Problem der Namensanzeige, da es mehrere gibt.

Ansonsten denke ich, dass es einen speziellen Funktions-Typ für das in Staubsaugern braucht. Das ist ein Projekt auf der Core-Seite, und es geht weit über diese Integration hinaus!

Könntet ihr eine spezifische Feature-Anfrage erstellen, damit wir eine Entwicklung zu diesem Thema starten können? :slight_smile:

Macht weiter, das ist wirklich gute Arbeit :slightly_smiling_face:

Ich nehme das für diesen Teil zur Kenntnis, danke :slight_smile:

@Lokkye Pull-Request ausstehend :slight_smile:
https://github.com/callemand/gladys-roborock/pull/2

Guten Abend,

Ich bin dabei, die Roborock-Integration zu entdecken, und dafür danke ich Ihnen.

Allerdings erlaube ich mir ein paar Fragen: Ich besitze einen Q7 Max mit Kartierungsfunktion und der Möglichkeit, Zonen/Räume zu definieren, die nicht in den Geräteeigenschaften erscheinen. Daher wird, wenn ich eine Reinigung auswähle, das gesamte Haus gereinigt :slight_smile:

Es wäre auch praktisch, den Status des Roboters (Sensoren, Bürsten usw.) zu haben.

Ich stehe Ihnen zur Verfügung, falls ich weitere Testfälle durchführen oder andere Dinge tun kann, die dazu beitragen könnten, diese Integration weiterzuentwickeln :slight_smile:

Schönen Abend noch,

Jean

Hallo, ich habe begonnen, die Rückmeldungen der verschiedenen Sensoren hinzuzufügen.
Ich habe auch den Dock hinzugefügt, da dieser selbst Informationen in Abhängigkeit vom Staubsauger hat.

Für bestimmte Funktionen bin ich über die Kategorie „unknown“ und den Typ „unknown“ gegangen
Bis diese Änderung umgesetzt ist:


Was das Mapping der Räume angeht, @pierre-gilles, was erwartest du genau?

Kann diese Anfrage ausreichen?

Ich schaue mir das gerade nur aus der Ferne an, weil ich im Urlaub bin, aber ich freue mich riesig, dass es vorwärtsgeht!

Ich finde, diese Integration würde sich eher für einen Start/Pause-Button eignen, statt für ein Dropdown-Menü. Was denkst du, @spenceur? (Übrigens gibt es meiner Meinung nach noch keine Pause-Option.)

@guim31 ich helfe nur @Lokkye, aber ich bevorzuge, dass er dir antwortet :slight_smile:

Kleiner Teaser : :eyes:

Ich habe die Integration auf 0.12 aktualisiert

Sie unterstützt jetzt die Verbrauchsmaterialien des Docks und des Roboters sowie die Auswahl des Raums für die Reinigung

@Lokkye der PR ist hier, er wartet auf dich :slight_smile: :

Das macht Lust, sich so ein Gerät zuzulegen…

Das Problem war immer: „Es gibt nur Cloud-Geräte, man muss eines wählen, das man mit Valudeto flashen kann, und was passiert, wenn etwas schiefgeht?“

Jetzt sind es nur noch die Hundehaare, die mir Angst machen und Lust darauf, es auszuprobieren… Ihr wisst, was ich meine?

@spenceur Tolle Arbeit, ich habe gerade den PR gemerged und die Version ist in Arbeit. Jetzt muss ich die gleiche Arbeit in der Xiaomi-Home-Integration machen :slight_smile:

@guim31 Nicht falsch! Ich muss schauen, wie man das macht

@GBoulvin Leg los, das ist für mich ein Game-Changer. Es läuft mehrere Male pro Woche und ich habe keine Probleme mit Haaren oder so mehr :slight_smile:

@GBoulvin Ich füge hinzu, dass ich seit mehreren Jahren ausgestattet bin (zuerst ein Roborock S6, dann ein S8 Ultra) und er läuft jeden Tag, ich habe Kinder und Katzen… und es ist WIRKLICH sehr nützlich und effektiv.