Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. [PROJEKT] Xiaomi Roborock S50 Staubsaugersteuerung mit Alexa

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    324

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

[PROJEKT] Xiaomi Roborock S50 Staubsaugersteuerung mit Alexa

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
39 Beiträge 15 Kommentatoren 12.6k Aufrufe 32 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • C Chris71

    @nurChris said in [PROJEKT] Xiaomi Roborock S50 Staubsaugersteuerung mit Alexa:

    Alles klar Fehler gefunden. Musste Pushover Adapter installieren.

    Das mit dem Ghost habe ich noch nicht ganz verstanden. Wie lege ich den jetzt genau an?
    Script läuft nun möchte ich dieses auch über Alexa steuern.

    nurChrisN Offline
    nurChrisN Offline
    nurChris
    schrieb am zuletzt editiert von
    #4

    @Chris71 Hallo, wie du einen datenpunkt anlegen kannst habe ich in einem Video an dieser Stelle erklärt:
    https://www.youtube.com/watch?v=oN71WVgeK4c#t=4m16

    Das mit dem pushover übernehme ich noch in die Anleitung.

    Viele Grüße
    Chris

    G 2 Antworten Letzte Antwort
    0
    • nurChrisN nurChris

      @Chris71 Hallo, wie du einen datenpunkt anlegen kannst habe ich in einem Video an dieser Stelle erklärt:
      https://www.youtube.com/watch?v=oN71WVgeK4c#t=4m16

      Das mit dem pushover übernehme ich noch in die Anleitung.

      Viele Grüße
      Chris

      G Online
      G Online
      guergen
      schrieb am zuletzt editiert von
      #5

      @nurChris Hallo, erst einmal Respekt für so ein langes, ausführliches Script. Leider finde ich nichts genaueres zum Anlegen der SucPowerLevelName... Ich kann den Punkt zwar anlegen, aber nirgens etwas, wo ich die Stufen Leise:Leise usw eintragen kann. Ebenso beim LevelPercent kommt nur yes oder no....
      Wo finde ich eine entsprechende Anleitung?

      G 1 Antwort Letzte Antwort
      0
      • G guergen

        @nurChris Hallo, erst einmal Respekt für so ein langes, ausführliches Script. Leider finde ich nichts genaueres zum Anlegen der SucPowerLevelName... Ich kann den Punkt zwar anlegen, aber nirgens etwas, wo ich die Stufen Leise:Leise usw eintragen kann. Ebenso beim LevelPercent kommt nur yes oder no....
        Wo finde ich eine entsprechende Anleitung?

        G Online
        G Online
        guergen
        schrieb am zuletzt editiert von
        #6

        @guergen said in [PROJEKT] Xiaomi Roborock S50 Staubsaugersteuerung mit Alexa:

        @nurChris Hallo, erst einmal Respekt für so ein langes, ausführliches Script. Leider finde ich nichts genaueres zum Anlegen der SucPowerLevelName... Ich kann den Punkt zwar anlegen, aber nirgens etwas, wo ich die Stufen Leise:Leise usw eintragen kann. Ebenso beim LevelPercent kommt nur yes oder no....
        Wo finde ich eine entsprechende Anleitung?

        Wenn man mal eine Nacht drüber geschlafen hat geht es seltsamerweise....
        Dankenochmal für das Script!
        Super Arbeit!

        1 Antwort Letzte Antwort
        0
        • nurChrisN nurChris

          @Chris71 Hallo, wie du einen datenpunkt anlegen kannst habe ich in einem Video an dieser Stelle erklärt:
          https://www.youtube.com/watch?v=oN71WVgeK4c#t=4m16

          Das mit dem pushover übernehme ich noch in die Anleitung.

          Viele Grüße
          Chris

          G Online
          G Online
          guergen
          schrieb am zuletzt editiert von guergen
          #7

          @nurChris Jetzt hab ich doch etwas seltsames gefunden:
          Wenn der Sauger in Pause ist muss ich ihn erst wieder in die Station zurückholen, sonst läuft er nicht mehr.
          Deweiteren habe ich scheinbar einen Fehler im Saugereinstelllungsscript, ich be´komme lauter Fehler:
          javascript.0 at Object.<anonymous> (script.js.common.Saugroboter.Einstellungen:16:5)
          Und mein Log läuft mit warnungen voll; wahrscheinlich weil das Script alles blockiert.
          Dieser Fehler läuft mir auch nach:

          You are assigning a number to the state <td class="log-column-4" title="You are assigning a number to the state 'javascript.0.Eigene_Datenpunkte.ROBOROCK.SucPowerLevelNr' which expects a boolean. Please fix your code to use a boolean or change the state type to number. This warning might become an error in future versions.">You are assigning a number to the state "javascript.0.Eigene_Datenpunkte.ROBOROCK.SucPowerLevelNr" which expects a boolean. Please fix your code to use a boolean or change the state type to number.

          Was kann das sein?

          nurChrisN 1 Antwort Letzte Antwort
          0
          • G guergen

            @nurChris Jetzt hab ich doch etwas seltsames gefunden:
            Wenn der Sauger in Pause ist muss ich ihn erst wieder in die Station zurückholen, sonst läuft er nicht mehr.
            Deweiteren habe ich scheinbar einen Fehler im Saugereinstelllungsscript, ich be´komme lauter Fehler:
            javascript.0 at Object.<anonymous> (script.js.common.Saugroboter.Einstellungen:16:5)
            Und mein Log läuft mit warnungen voll; wahrscheinlich weil das Script alles blockiert.
            Dieser Fehler läuft mir auch nach:

            You are assigning a number to the state <td class="log-column-4" title="You are assigning a number to the state 'javascript.0.Eigene_Datenpunkte.ROBOROCK.SucPowerLevelNr' which expects a boolean. Please fix your code to use a boolean or change the state type to number. This warning might become an error in future versions.">You are assigning a number to the state "javascript.0.Eigene_Datenpunkte.ROBOROCK.SucPowerLevelNr" which expects a boolean. Please fix your code to use a boolean or change the state type to number.

            Was kann das sein?

            nurChrisN Offline
            nurChrisN Offline
            nurChris
            schrieb am zuletzt editiert von
            #8

            @guergen Hey,
            ich schau nicht so oft hier ins Forum darum sorry für die späte Antwort. Ich versuchs mal... Zu deinem ersten Problem. Ich kann es nicht rekonstruieren, wenn ich meinen Sauger pausiere kann ich ihm mit dem Befehl "Alexa, weiter saugen" wieder starten.
            Vielleicht beobachtest du da mal die Datenpunkte ob die nach Spracheingabe richtig schalten.

            "javascript.0 at Object.<anonymous> (script.js.common.Saugroboter.Einstellungen:16:5)", ehrlich gesagt: Keine Ahnung. Auch diesen Fehler erhalte ich nicht. Deine npm Version ist aber nicht outdatet oder?

            Zu dem letzter Fehler (bzw der warning) sieht das danach aus als ob dein Datenpunkt "SucPowerLevelNr" als state nicht auf "level" festgelegt ist?

            Ehrlich gesagt bin ich auch ziemlich ratlos, vielleicht hilfts ja trotzdem.
            Viele Grüße
            Chris

            1 Antwort Letzte Antwort
            0
            • C Offline
              C Offline
              csamaggi
              schrieb am zuletzt editiert von
              #9

              Ob dein Sceipt auch mit dem S6 laufen würde. Leider habe ich noch keinen bin aber am überlegen mir diesen zuzulegen.
              Wäre schön wenn dieses möglich wäre.

              MFG Maggi

              nurChrisN 1 Antwort Letzte Antwort
              0
              • C csamaggi

                Ob dein Sceipt auch mit dem S6 laufen würde. Leider habe ich noch keinen bin aber am überlegen mir diesen zuzulegen.
                Wäre schön wenn dieses möglich wäre.

                MFG Maggi

                nurChrisN Offline
                nurChrisN Offline
                nurChris
                schrieb am zuletzt editiert von
                #10

                @csamaggi

                @csamaggi sagte in [PROJEKT] Xiaomi Roborock S50 Staubsaugersteuerung mit Alexa:

                Ob dein Sceipt auch mit dem S6 laufen würde. Leider habe ich noch keinen bin aber am überlegen mir diesen zuzulegen.
                Wäre schön wenn dieses möglich wäre.

                MFG Maggi

                Hallo,
                dazu müsste man wissen ob der s6 über den roborock Adapter angesteuert werden kann. Wenn das wie beim s50 gleichermaßen möglich ist sollte das Skript auch für den s6 funktionieren.
                Viele Grüße
                Chris

                1 Antwort Letzte Antwort
                0
                • nurChrisN nurChris

                  Hallo allerseits!

                  Nachdem ich mir hier im Forum bereits viel Hilfe erhalten, mir so einiges abgeguckt, Erfolge gehabt und natürlich auch mal gescheitert bin möchte ich mich doch auch mal für das Forum etwas nützlich machen und mein (noch WIP) Blockly Script zur Steuerung vom Roborock S50 per Alexa zur Verfügung stellen.
                  Da der offizielle Alexa Skill bisher nur "An/Aus" kann war dies mein erstes "größeres" IOBroker Projekt.
                  Ich nenne den Roborock ab hier manchmal "Saugi". (Ganz trivial und nach Inspiration meiner Tante hab ich meinen so getauft.)

                  Also was kann das Skript bisher?

                  • Saugvorgang starten / pausieren / wieder aufnehmen mit Alexa
                  • Saugkraft steuern (in 4 Stufen. dazu später mehr)
                  • Saugi aufspüren
                  • Alexa informiert vor dem Saugstart über eingestellte Saugkraft und Saugi's Akkustand als auch erfolgt eine
                    Prüfung der Wartungszustände (Sensoren, Haupt-/Nebenbürste, HEPA-Filter)
                    damit einhergehende Warnung bei niedrigem Zustand bzw. Arbeitsverweigerung bei kritischem Zustand.
                  • Störung/Fehler vom Saugi quittieren (z. B. "Alexa, ich habe Saugi's Störung behoben)
                  • Automatisches (einmaliges!) quittieren einer bestimmten Störung (dazu später mehr)

                  Und was wird dafür gebraucht?

                  • Selbstredend eine Alexa sowie den Roborock
                  • Laufende IOBroker Installation sowie den installierten und konfigurierten "mihome-vacuum" Adapter
                  • Installierter Cloud / Alexa Adapter
                  • Laufende javascript Instanz
                  • Ein wenig Geduld beim Erstellen der Datenpunkte und umbauen des Skripts für den korrekten Zugriff der Blockly's.
                  • Spaß an der Freude :-)

                  Bevor es nun an die Sache geht will ich noch sagen, ich habe noch ein Video gemacht was das alles hier verdeutlicht. Ein Bild sagt ja bekanntlich mehr als tausend Worte.

                  Also dann, legen wir los und erstellen erstmal die benötigten Datenpunkte!

                  Schritt 1:
                  Legt folgende Datenpunkte an:

                  alt text

                  Erklärung zu den Datenpunkten:

                  • Pausiert - switch - informiert das Skript dass der Roborock Pausiert wurde
                  • Störung - switch - informiert das Skript dass der Robo eine Störung hat(te)
                  • StörungQuittieren - switch - Wichtig für die automatische (und nur einmalige!) Quittierung einer Störung!
                    Wenn die Störung einmalig automatisch quittiert wurde ist der Switch auf true. Sonst false bis zur automatischen quittierung.
                  • SucPowerLevelName - zeichenkette - Stufe der Saugkraft als Name!
                    (vordefinierte Werte: "Leise:Leise;Standard:Standard;Stark:Stark;Turbo:Turbo")
                  • SucPowerLevelNr - switch - dient als Info auf welcher Stufe sich die Saugkraft befindet
                    (vordefinierte Werte: "1:Stufe 1;2:Stufe 2;3:Stufe 3;4:Stufe 4")
                  • SucPowerLevelPercent -switch- dient als Info auf wieviel Prozent Kraft die Saugkraft steht

                  Schritt 2:
                  Legt zwei Blockly Skripte an. Der Übersicht halber habe ich sie aufgeteilt in eines für die vollautomatische Steuerung und DP Änderungen und eines für die Steuerung mit Alexa.

                  alt text

                  Skript 1 Saugersteuerung mit Alexa:

                  Als Blockly:

                  um das ganze Blockly zu sehen hier klicken!
                  Das ganze Blockly

                  Für den Import:

                  https://pastebin.com/FZfdYtdv
                  

                  Skript 2 Saugereinstellungen:

                  Als Blockly:

                  um das ganze Blockly zu sehen hier klicken!
                  Das ganze Blockly

                  Für den Import:

                  https://pastebin.com/pC7ifhgk
                  

                  Wie funktioniert die Alexa Ansprache?:

                  Das Skript überwacht Alexa's "summary" welches immer das zuletzt gesprochene anzeigt. Es reagiert dann nicht auf feste vordefinierte Sätze sondern auf Schlüsselwörter.

                  Beispiel:
                  Zum Starten des Skripts reicht die Aussage "Alexa, staubsaugen" da Alexa hier das Schlüsselwort "staubsaugen" in der summary entdeckt hat.
                  Alternativ sucht Alexa nach den Wörtern "mach" und "sauber". Man könnte jetzt also sagen "Alexa, bitte die Wohnung sauber machen." oder "Alexa, mach bitte sauber".

                  Daraus ergibt sich allerdings ein kleines Problem und somit kommen wir zu

                  Schritt 3:

                  Das Skript wird reagieren aber die eigentliche Alexa weiß nicht was sie tun soll!
                  Das heißt sie spuckt immer wieder als Antwort so etwas wie "Das weiß ich leider nicht". Oder "Ich kann kein Gerät mit dem Namen ... finden" aus.

                  Dazu gab es mehrere Lösungsansätze wie wir in diesem Thread diskutiert haben klicke hier

                  Die derzeit wohl anscheinend einzige funktionierende Lösung ist in diesem Fall also dass wir zur Cloud Instanz navigieren und unter den "Smart Geräten" einen "Dummy" hinzufügen. Ich habe ihn bei mir Ghost genannt.

                  Konfigurationssymbol Cloud Instanz

                  Smart Geräte und Ghost Gerät

                  Diesen Dummy müssen wir aber jetzt noch steuern. Dazu nehme ich meine Android-Alexa App und füge Routinen hinzu.

                  NavigationZuRoutinen

                  VorhandeneRoutinen

                  GhostSchalten

                  Nun kann für jeden gesagten Satz definiert werden, dass Alexa das Dummy Gerät "Ghost" einschaltet. Puff .... und das wars mit der Flexibilität in der Ansprache. Zumindest so lange bis es eine bessere Lösung gibt. Alexa wird jetzt nurnoch einen Signalton senden oder "Okay" sagen.

                  Nun kann man sich überlegen welche Sätze man am häufigsten sagt und sich mit solchen Routinen dann vor "Fehlalarmen" schützen. Ich ergänze einfach im Laufe der Zeit immer wieder Sätze, wenn mir auffällt, dass Alexa wieder anfängt Blödsinn zu antworten.

                  Außerdem ist es bei mir sowieso nicht so störend, da die Sprachausgabe aus Skripten über einen bestimmten Echo Dot im Raum läuft, der selbst nicht angesprochen wird. (Der Angesprochene und damit selbstständig reagierende/antwortende Dot ist meistens sehr leise eingestellt)

                  Was hat es mit dem automatischen Störung quittieren auf sich? :helmet_with_white_cross:

                  Mein Saugi hat immer wieder mal Probleme mit meinem Teppich. Hier meldet er, dass die Hauptbürste verstopft ist und geht dann auf Störung. Manuell behebe ich das in dem ich nachschaue und ihn einfach wieder starte. Damit ich das umgehe hab ich eingebaut, dass der Roborock sich selbst ein mal quittiert (nur bei Störung der Hauptbürste / Error 5).

                  Um zu verhindern, dass er sich immer wieder selbst quittiert, auch wenn die Bürste wirklich verstopft ist bleibt er beim wiederholten melden des Fehlers (selber Saugvorgang, reset in Ladestation) stehen und lässt sich jetzt nur noch via manueller quittierung ("Alexa, Störung behoben!") starten.

                  Das lässt sich natürlich entsprechend umbauen wenn man die automatische quittierung bei jeder Art von Error wünscht.

                  Welche Befehle / Schlüsselwörter gibt es bisher? :lips: :ear:

                  Starten / saugen fortführen - "staubsaugen", "sauber" + "mach"
                  Pausieren - "saug" + "pause", "halt", "warte"
                  Stoppen und zur Station - "saug" + "stop", "ende", "lade", "brech"
                  Störung bereinigt - "fehler" / "störung" + "behoben", "weg"
                  Sauger finden - "saug" + "wo ist", "finde", "lokal", "suche"
                  Saugkraft verringern - "weniger" + "saug"
                  Saugkraft erhöhen - "mehr" + "saug"
                  Saugkraft auf Stufe einstellen - "saugkraft" + "stufe", "level" + "eins", "zwei", "drei", "vier"

                  Was noch geplant ist / TODO Liste: :writing_hand:

                  • Wischmodus über Alexa einstellen
                  • Zonen anlegen zu können und zu reinigen - "Alexa, mach das Wohnzimmer sauber"
                  • Staubbehälter Füllstand prüfen (Berechnung wann dieser das letzte mal entfernt wurde und nach x weiteren Reinigungen warnen)
                  • Alexa optional immer mit dem Dot antworten zu lassen der angesprochen wurde.

                  BUGS :hammer_and_wrench:

                  Zurzeit keine bekannt! :hankey:

                  Ich würde mich über Anregungen, Kritik, Tipps und alles weitere sehr freuen!

                  Ich weiß nicht ob das so angebracht ist hier danach zu fragen aber wenn mir der ein oder andere auf Youtube ein Abo dalassen würde, würd mir das den Start dort sehr vereinfachen. Zum Thema IoBroker und co. werde ich demnächst weitere Videos veröffentlichen.

                  Wer es noch nicht gesehen hat, hier gehts entlang zum Video: youtu.be/_x7Dn5cYb4k

                  Vielen Dank und beste Grüße

                  Chris

                  smokerS Offline
                  smokerS Offline
                  smoker
                  schrieb am zuletzt editiert von smoker
                  #11

                  Vorab vielen Dank für die tolle Arbeit und auch dass du uns alle daran teilhaben lässt.
                  Hat alles super geklappt. Anleitung ist wirklich sehr gut und super gemacht.

                  Bezüglich deiner ToDu-Liste und "Zonen" gibt es ein gute Anleitung hier im Forum.
                  Vielleicht kannst du es ja irgendwie integrieren, ist halt etwas komplexer die Zonen zu ermitteln...
                  Setze mal den Link (ist ab #291):
                  https://www.roboter-forum.com/index.php?thread/26292-zonen-reinigung-per-iobroker-alexa-steuern-schritt-für-schritt-anleitung/&pageNo=15

                  Hat bei mir auch wunderbar geklappt und das Szenen anlegen kannte ich gar nicht ... und dass es so einfach rübergeht zu Alexa!

                  Super wäre noch Punkt 4 auf deiner Liste, also die Zuordnung eines beliebigen, gerade angesprochenen Echos!
                  Damit es dir nicht langweilig wird :grinning: :grin: :blush:

                  Gruß
                  Wolfgang

                  1 Antwort Letzte Antwort
                  0
                  • G Online
                    G Online
                    guergen
                    schrieb am zuletzt editiert von guergen
                    #12

                    Hi, mittlerweile habe ich den Sauge schon gut im Griff, ich frage mich allerdings, was die Werte Vacuum State =5 und ungleich 5 zu sagen haben (siehe Bild)
                    28f64975-a78c-4264-bdca-57f517a87d96-grafik.png

                    nurChrisN 1 Antwort Letzte Antwort
                    0
                    • smokerS Offline
                      smokerS Offline
                      smoker
                      schrieb am zuletzt editiert von
                      #13

                      Jupp - habe ich auch gesehen, aber keine Ahnung. Gibt ja nur 4 Saugstufen. Vielleicht für „nur wischen“?!

                      Mich hat immer gestört, dass der Sauger nach dem reinigen eines Bereichs immer zum Dock gefahren ist, obwohl ich noch einen anderen Bereich saugen wollte. Er hat einfach nicht gehört.
                      Habe jetzt rausgefunden, wenn man ihn auf dem Rückweg pausieren lässt und dann den neuen Bereich über Alexa aufruft, klappt es wunderbar. Aber nicht stoppen, dann fährt er autom. immer zum Dock.

                      1 Antwort Letzte Antwort
                      0
                      • ? Offline
                        ? Offline
                        Ein ehemaliger Benutzer
                        schrieb am zuletzt editiert von Ein ehemaliger Benutzer
                        #14

                        Hallo nurChris,

                        Das Anlegen der Datenpunkte kann man auch mit einem Script erledigen.
                        Fügst du bitte noch ein Script ein, um die Datenpunkte anzulegen.
                        Dann wird es noch einfacher das nach zu bauen. Das müsste dann nur einmal Laufen.

                        Bitte beschreibe auch das anlegen des Ghosts noch etwas besser.

                        Danke

                        1 Antwort Letzte Antwort
                        0
                        • G guergen

                          Hi, mittlerweile habe ich den Sauge schon gut im Griff, ich frage mich allerdings, was die Werte Vacuum State =5 und ungleich 5 zu sagen haben (siehe Bild)
                          28f64975-a78c-4264-bdca-57f517a87d96-grafik.png

                          nurChrisN Offline
                          nurChrisN Offline
                          nurChris
                          schrieb am zuletzt editiert von
                          #15

                          @guergen @smoker Ich schaue leider zu selten hier rein, habe zuviel anderes um die Ohren in der letzten Zeit! Freut mich sehr dass euch das Skript gefällt und euer Feedback gefällt mir auch.
                          Der Status "ungleich 5" bzw "gleich 5" ist wie vermutet nur dafür da die richtige Aussage zu treffen da es ja maximal 4 Saugstufen gibt. Um ganz ehrlich zu sein ist es schon zu lange her als ich das geschrieben habe, so dass ich mir da selbst nicht mehr 100%ig sicher bin :grimacing:

                          Bezüglich der Zonen... Ja das ist eine Sache die ich schon lange auf dem Schirm habe und gerne bald umsetzen möchte, ich hoffe ich finde dazu bald Zeit.

                          @Tibo
                          Danke für deine gut gemeinten Ratschläge und Tipps. Ich selbst beherrsche kein Javascript so dass ich mich da sehr schwer tun würde, vielleicht kann das ja jemand hier der auch noch Lust dazu hat und uns das zur Verfügung zu stellen.

                          Zum Ghost muss ich sagen, dass ich den gut beschrieben finde da es wirklich sehr sehr einfache Steps sind die durchzuführen sind, hast du vielleicht den Spoiler für die Alexa-Seitige Einrichtung übersehen?

                          Viele Grüße an alle und danke für euer Feedback

                          1 Antwort Letzte Antwort
                          0
                          • nurChrisN nurChris

                            Hallo allerseits!

                            Nachdem ich mir hier im Forum bereits viel Hilfe erhalten, mir so einiges abgeguckt, Erfolge gehabt und natürlich auch mal gescheitert bin möchte ich mich doch auch mal für das Forum etwas nützlich machen und mein (noch WIP) Blockly Script zur Steuerung vom Roborock S50 per Alexa zur Verfügung stellen.
                            Da der offizielle Alexa Skill bisher nur "An/Aus" kann war dies mein erstes "größeres" IOBroker Projekt.
                            Ich nenne den Roborock ab hier manchmal "Saugi". (Ganz trivial und nach Inspiration meiner Tante hab ich meinen so getauft.)

                            Also was kann das Skript bisher?

                            • Saugvorgang starten / pausieren / wieder aufnehmen mit Alexa
                            • Saugkraft steuern (in 4 Stufen. dazu später mehr)
                            • Saugi aufspüren
                            • Alexa informiert vor dem Saugstart über eingestellte Saugkraft und Saugi's Akkustand als auch erfolgt eine
                              Prüfung der Wartungszustände (Sensoren, Haupt-/Nebenbürste, HEPA-Filter)
                              damit einhergehende Warnung bei niedrigem Zustand bzw. Arbeitsverweigerung bei kritischem Zustand.
                            • Störung/Fehler vom Saugi quittieren (z. B. "Alexa, ich habe Saugi's Störung behoben)
                            • Automatisches (einmaliges!) quittieren einer bestimmten Störung (dazu später mehr)

                            Und was wird dafür gebraucht?

                            • Selbstredend eine Alexa sowie den Roborock
                            • Laufende IOBroker Installation sowie den installierten und konfigurierten "mihome-vacuum" Adapter
                            • Installierter Cloud / Alexa Adapter
                            • Laufende javascript Instanz
                            • Ein wenig Geduld beim Erstellen der Datenpunkte und umbauen des Skripts für den korrekten Zugriff der Blockly's.
                            • Spaß an der Freude :-)

                            Bevor es nun an die Sache geht will ich noch sagen, ich habe noch ein Video gemacht was das alles hier verdeutlicht. Ein Bild sagt ja bekanntlich mehr als tausend Worte.

                            Also dann, legen wir los und erstellen erstmal die benötigten Datenpunkte!

                            Schritt 1:
                            Legt folgende Datenpunkte an:

                            alt text

                            Erklärung zu den Datenpunkten:

                            • Pausiert - switch - informiert das Skript dass der Roborock Pausiert wurde
                            • Störung - switch - informiert das Skript dass der Robo eine Störung hat(te)
                            • StörungQuittieren - switch - Wichtig für die automatische (und nur einmalige!) Quittierung einer Störung!
                              Wenn die Störung einmalig automatisch quittiert wurde ist der Switch auf true. Sonst false bis zur automatischen quittierung.
                            • SucPowerLevelName - zeichenkette - Stufe der Saugkraft als Name!
                              (vordefinierte Werte: "Leise:Leise;Standard:Standard;Stark:Stark;Turbo:Turbo")
                            • SucPowerLevelNr - switch - dient als Info auf welcher Stufe sich die Saugkraft befindet
                              (vordefinierte Werte: "1:Stufe 1;2:Stufe 2;3:Stufe 3;4:Stufe 4")
                            • SucPowerLevelPercent -switch- dient als Info auf wieviel Prozent Kraft die Saugkraft steht

                            Schritt 2:
                            Legt zwei Blockly Skripte an. Der Übersicht halber habe ich sie aufgeteilt in eines für die vollautomatische Steuerung und DP Änderungen und eines für die Steuerung mit Alexa.

                            alt text

                            Skript 1 Saugersteuerung mit Alexa:

                            Als Blockly:

                            um das ganze Blockly zu sehen hier klicken!
                            Das ganze Blockly

                            Für den Import:

                            https://pastebin.com/FZfdYtdv
                            

                            Skript 2 Saugereinstellungen:

                            Als Blockly:

                            um das ganze Blockly zu sehen hier klicken!
                            Das ganze Blockly

                            Für den Import:

                            https://pastebin.com/pC7ifhgk
                            

                            Wie funktioniert die Alexa Ansprache?:

                            Das Skript überwacht Alexa's "summary" welches immer das zuletzt gesprochene anzeigt. Es reagiert dann nicht auf feste vordefinierte Sätze sondern auf Schlüsselwörter.

                            Beispiel:
                            Zum Starten des Skripts reicht die Aussage "Alexa, staubsaugen" da Alexa hier das Schlüsselwort "staubsaugen" in der summary entdeckt hat.
                            Alternativ sucht Alexa nach den Wörtern "mach" und "sauber". Man könnte jetzt also sagen "Alexa, bitte die Wohnung sauber machen." oder "Alexa, mach bitte sauber".

                            Daraus ergibt sich allerdings ein kleines Problem und somit kommen wir zu

                            Schritt 3:

                            Das Skript wird reagieren aber die eigentliche Alexa weiß nicht was sie tun soll!
                            Das heißt sie spuckt immer wieder als Antwort so etwas wie "Das weiß ich leider nicht". Oder "Ich kann kein Gerät mit dem Namen ... finden" aus.

                            Dazu gab es mehrere Lösungsansätze wie wir in diesem Thread diskutiert haben klicke hier

                            Die derzeit wohl anscheinend einzige funktionierende Lösung ist in diesem Fall also dass wir zur Cloud Instanz navigieren und unter den "Smart Geräten" einen "Dummy" hinzufügen. Ich habe ihn bei mir Ghost genannt.

                            Konfigurationssymbol Cloud Instanz

                            Smart Geräte und Ghost Gerät

                            Diesen Dummy müssen wir aber jetzt noch steuern. Dazu nehme ich meine Android-Alexa App und füge Routinen hinzu.

                            NavigationZuRoutinen

                            VorhandeneRoutinen

                            GhostSchalten

                            Nun kann für jeden gesagten Satz definiert werden, dass Alexa das Dummy Gerät "Ghost" einschaltet. Puff .... und das wars mit der Flexibilität in der Ansprache. Zumindest so lange bis es eine bessere Lösung gibt. Alexa wird jetzt nurnoch einen Signalton senden oder "Okay" sagen.

                            Nun kann man sich überlegen welche Sätze man am häufigsten sagt und sich mit solchen Routinen dann vor "Fehlalarmen" schützen. Ich ergänze einfach im Laufe der Zeit immer wieder Sätze, wenn mir auffällt, dass Alexa wieder anfängt Blödsinn zu antworten.

                            Außerdem ist es bei mir sowieso nicht so störend, da die Sprachausgabe aus Skripten über einen bestimmten Echo Dot im Raum läuft, der selbst nicht angesprochen wird. (Der Angesprochene und damit selbstständig reagierende/antwortende Dot ist meistens sehr leise eingestellt)

                            Was hat es mit dem automatischen Störung quittieren auf sich? :helmet_with_white_cross:

                            Mein Saugi hat immer wieder mal Probleme mit meinem Teppich. Hier meldet er, dass die Hauptbürste verstopft ist und geht dann auf Störung. Manuell behebe ich das in dem ich nachschaue und ihn einfach wieder starte. Damit ich das umgehe hab ich eingebaut, dass der Roborock sich selbst ein mal quittiert (nur bei Störung der Hauptbürste / Error 5).

                            Um zu verhindern, dass er sich immer wieder selbst quittiert, auch wenn die Bürste wirklich verstopft ist bleibt er beim wiederholten melden des Fehlers (selber Saugvorgang, reset in Ladestation) stehen und lässt sich jetzt nur noch via manueller quittierung ("Alexa, Störung behoben!") starten.

                            Das lässt sich natürlich entsprechend umbauen wenn man die automatische quittierung bei jeder Art von Error wünscht.

                            Welche Befehle / Schlüsselwörter gibt es bisher? :lips: :ear:

                            Starten / saugen fortführen - "staubsaugen", "sauber" + "mach"
                            Pausieren - "saug" + "pause", "halt", "warte"
                            Stoppen und zur Station - "saug" + "stop", "ende", "lade", "brech"
                            Störung bereinigt - "fehler" / "störung" + "behoben", "weg"
                            Sauger finden - "saug" + "wo ist", "finde", "lokal", "suche"
                            Saugkraft verringern - "weniger" + "saug"
                            Saugkraft erhöhen - "mehr" + "saug"
                            Saugkraft auf Stufe einstellen - "saugkraft" + "stufe", "level" + "eins", "zwei", "drei", "vier"

                            Was noch geplant ist / TODO Liste: :writing_hand:

                            • Wischmodus über Alexa einstellen
                            • Zonen anlegen zu können und zu reinigen - "Alexa, mach das Wohnzimmer sauber"
                            • Staubbehälter Füllstand prüfen (Berechnung wann dieser das letzte mal entfernt wurde und nach x weiteren Reinigungen warnen)
                            • Alexa optional immer mit dem Dot antworten zu lassen der angesprochen wurde.

                            BUGS :hammer_and_wrench:

                            Zurzeit keine bekannt! :hankey:

                            Ich würde mich über Anregungen, Kritik, Tipps und alles weitere sehr freuen!

                            Ich weiß nicht ob das so angebracht ist hier danach zu fragen aber wenn mir der ein oder andere auf Youtube ein Abo dalassen würde, würd mir das den Start dort sehr vereinfachen. Zum Thema IoBroker und co. werde ich demnächst weitere Videos veröffentlichen.

                            Wer es noch nicht gesehen hat, hier gehts entlang zum Video: youtu.be/_x7Dn5cYb4k

                            Vielen Dank und beste Grüße

                            Chris

                            C Offline
                            C Offline
                            crabs
                            schrieb am zuletzt editiert von
                            #16

                            @nurChris Habe Probleme mit dem Improtieren des Blocklyscriptes.

                            Habe die Datei aus dem Link heruntergeladen und dann geöffnet und den Quelltext kopiert.
                            Folgender Fehler.

                            31d10c24-d98f-401c-880b-c3a33740cffb-grafik.png

                            Kann mir einer weiterhelfen?
                            Danke.

                            ? 1 Antwort Letzte Antwort
                            0
                            • C crabs

                              @nurChris Habe Probleme mit dem Improtieren des Blocklyscriptes.

                              Habe die Datei aus dem Link heruntergeladen und dann geöffnet und den Quelltext kopiert.
                              Folgender Fehler.

                              31d10c24-d98f-401c-880b-c3a33740cffb-grafik.png

                              Kann mir einer weiterhelfen?
                              Danke.

                              ? Offline
                              ? Offline
                              Ein ehemaliger Benutzer
                              schrieb am zuletzt editiert von
                              #17

                              @crabs geh auf Javascript Adapter 4.3.1 da ist der Fehler weg. Die höheren bis 4.3.4 haben den Bug..

                              C 1 Antwort Letzte Antwort
                              0
                              • ? Ein ehemaliger Benutzer

                                @crabs geh auf Javascript Adapter 4.3.1 da ist der Fehler weg. Die höheren bis 4.3.4 haben den Bug..

                                C Offline
                                C Offline
                                crabs
                                schrieb am zuletzt editiert von
                                #18

                                @ilovegym said in [PROJEKT] Xiaomi Roborock S50 Staubsaugersteuerung mit Alexa:

                                t der Fehler weg. Die höheren

                                Habe 4.1.12 woher bekomme ich den höheren?
                                Bei den Adaptern wird mir kein höherer angezeigt.

                                1 Antwort Letzte Antwort
                                0
                                • F Offline
                                  F Offline
                                  furchtlos76
                                  schrieb am zuletzt editiert von
                                  #19

                                  Erstmal vielen Dank dass du dein Script mit uns teilst! Habe heute IO Broker installiert und dies zu meinem ersten Projekt erklärt :-) leider habe ich wohl noch irgendwo was übersehen. Wenn ich sage Alexa mach sauer reagiert das script schon mal, aber es zeigt diese Warnungen an und startet auch keinen Robi. Was mache ich falsch? Oder geht es erst wenn man den Schritt mit Ghost Dummi usw. auch erledigt hat? Hatte es so verstanden, das alexa einfach noch nicht antwortet das Script aber startet. Oder muss ich noch wo die IP Adresse vom Rockrobo festlegen? Oder liegt es an den Datenpunkten? Muss ich die Werte unter Wert dort selbst festlegen? Bei mir steht überall no(false) drin?!

                                  shot.jpg

                                  DiginixD 1 Antwort Letzte Antwort
                                  0
                                  • F furchtlos76

                                    Erstmal vielen Dank dass du dein Script mit uns teilst! Habe heute IO Broker installiert und dies zu meinem ersten Projekt erklärt :-) leider habe ich wohl noch irgendwo was übersehen. Wenn ich sage Alexa mach sauer reagiert das script schon mal, aber es zeigt diese Warnungen an und startet auch keinen Robi. Was mache ich falsch? Oder geht es erst wenn man den Schritt mit Ghost Dummi usw. auch erledigt hat? Hatte es so verstanden, das alexa einfach noch nicht antwortet das Script aber startet. Oder muss ich noch wo die IP Adresse vom Rockrobo festlegen? Oder liegt es an den Datenpunkten? Muss ich die Werte unter Wert dort selbst festlegen? Bei mir steht überall no(false) drin?!

                                    shot.jpg

                                    DiginixD Offline
                                    DiginixD Offline
                                    Diginix
                                    schrieb am zuletzt editiert von
                                    #20

                                    @furchtlos76
                                    Hast du den mihome vacuum Adapter korrekt mit Token für deinen S50 eingerichtet?
                                    In deinem Screenshot ist noch der selbe Alexa Datenpunkt wie bei anderen zuvor. Ihr könnt schlecht alle das selbe Echo Gerät mit der selben ID besitzen. Am wahrscheinlichsten ist dass du die Objekte im Skript noch nicht auf deine eigenen umgestellt hast.

                                    ..:: So long! Tom ::..

                                    NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

                                    F 1 Antwort Letzte Antwort
                                    0
                                    • K Offline
                                      K Offline
                                      kaiserm
                                      schrieb am zuletzt editiert von
                                      #21

                                      Herzlichen Dank für das Skript.

                                      Das Speak Command gibt ja die Antworten auf einem im Skript vorherbestimmten Echo aus.

                                      Mir wäre es natürlich lieber wenn die Ausgabe auf dem zuletzt gewählten Echo wäre.

                                      Blos wie?

                                      Es gibt ja sogar den Datenpunkt name im Alexa2 Adapter der das angesprochene Gerät beinhaltet.

                                      Wie müsste man das Skript umbauen das er es statt des fest vergebenen speak auf dem angesprochenen Echo ausgibt?

                                      LG Martin

                                      DiginixD 1 Antwort Letzte Antwort
                                      0
                                      • K kaiserm

                                        Herzlichen Dank für das Skript.

                                        Das Speak Command gibt ja die Antworten auf einem im Skript vorherbestimmten Echo aus.

                                        Mir wäre es natürlich lieber wenn die Ausgabe auf dem zuletzt gewählten Echo wäre.

                                        Blos wie?

                                        Es gibt ja sogar den Datenpunkt name im Alexa2 Adapter der das angesprochene Gerät beinhaltet.

                                        Wie müsste man das Skript umbauen das er es statt des fest vergebenen speak auf dem angesprochenen Echo ausgibt?

                                        LG Martin

                                        DiginixD Offline
                                        DiginixD Offline
                                        Diginix
                                        schrieb am zuletzt editiert von Diginix
                                        #22

                                        @kaiserm Das geht. Ich habe eine globale Blockly Funktion an die ich meine Ausgaben im Skript übergebe.
                                        Diese überprüft ob ich ein spezifischen Echo gewählt habe. Falls nicht wird geschaut welcher Echo das Kommando empfangen hat und auf diesem wird die Ausgabe gemacht. Im history Knoten gibt es dazu einen Datenpunkt mit dem Namen des Echo Gerätes oder der ID. Ich überprüfe den Namen.

                                        Hier mal ein reduziertes Beispiel. Eigentlich sind es noch 2 Echos mehr. Deswegen ist "alle" und "überall" das gleiche.

                                        778894f5-7f44-4eb1-a188-20945fdfebb6-image.png

                                        ..:: So long! Tom ::..

                                        NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

                                        K 1 Antwort Letzte Antwort
                                        0
                                        • DiginixD Diginix

                                          @furchtlos76
                                          Hast du den mihome vacuum Adapter korrekt mit Token für deinen S50 eingerichtet?
                                          In deinem Screenshot ist noch der selbe Alexa Datenpunkt wie bei anderen zuvor. Ihr könnt schlecht alle das selbe Echo Gerät mit der selben ID besitzen. Am wahrscheinlichsten ist dass du die Objekte im Skript noch nicht auf deine eigenen umgestellt hast.

                                          F Offline
                                          F Offline
                                          furchtlos76
                                          schrieb am zuletzt editiert von
                                          #23

                                          @Diginix ja der Robi funzt - hab ich getestet über "Schalter auslösen" (sorry ganz neu in iOBroker) oder wie das heißt im iOBroker menü, dann läuft er auch los usw. Bei den objekten habe ich das oberste aus dem video angeklickt und es war mit alexa verbunden. Muss ich das denn für EINEN speziellen echo verbinden? Habe 6 oder so im Haus. Rest habe ich alles mit dem Video hinbekommen. Komme mit den Warning: meldungen aber nicht klar was die bedeuten oder gibt es da nochmal wo n Log wo ich evtl. eher sehe was falsch ist?

                                          DiginixD 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          606

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe