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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

[PROJEKT] Xiaomi Roborock S50 Staubsaugersteuerung mit Alexa

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
39 Beiträge 15 Kommentatoren 12.5k 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.
  • 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
    • F furchtlos76

      @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 Offline
      DiginixD Offline
      Diginix
      schrieb am zuletzt editiert von
      #24

      @furchtlos76 Ich nutze das Skript von hier nicht selbst. Kann also zur finalen Einrichtung und was man persönlich alles anpassen muss nichts sagen. Hatte nur im Screenshot gesehen dass mind. der Datenpunkt für die Echo Sprachausgabe nicht deiner sein dürfte.
      Das Log findest du als extra Menüpunkt links wo du auch "Adapter", "Instanzen" , "Objekte" und "Skripte" wählst.
      Dort steht aber ggf. nicht mehr als in dem kleinen Log Fenster unter dem Skript.
      In deinem Screenshot sind dort aber gerade diese Zeilen nicht lesbar.

      ..:: 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

      1 Antwort Letzte Antwort
      0
      • DiginixD Diginix

        @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

        K Offline
        K Offline
        kaiserm
        schrieb am zuletzt editiert von
        #25

        @Diginix Na das hört sich doch schon mal gut an.

        Wie implementiert man jetzt das ganze in das Original Blockly Script?

        Sorry, bin nicht so der Programmierer.

        LG Martin

        DiginixD 1 Antwort Letzte Antwort
        0
        • K kaiserm

          @Diginix Na das hört sich doch schon mal gut an.

          Wie implementiert man jetzt das ganze in das Original Blockly Script?

          Sorry, bin nicht so der Programmierer.

          LG Martin

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

          @kaiserm
          Ähm, so wie im Bild zu sehen. Man legt sich eine Funktion an in der alle Echo Geräte mit ihrem Speak oder SSML Objekt enthalten sind und im Skript in dem die Ausgabe sonst direkt an den Speak oder SSML Datenpunkt gesendet wird ruft man die Funktion auf und übergibt ihr den Text usw.
          Links im Bild ist die Funktion und rechts sind 3 Beispielaufrufe. Diese kleinen Blöcke kämen dann in das Sauger-Skript statt "Steuere speak...".

          ..:: 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

            @kaiserm
            Ähm, so wie im Bild zu sehen. Man legt sich eine Funktion an in der alle Echo Geräte mit ihrem Speak oder SSML Objekt enthalten sind und im Skript in dem die Ausgabe sonst direkt an den Speak oder SSML Datenpunkt gesendet wird ruft man die Funktion auf und übergibt ihr den Text usw.
            Links im Bild ist die Funktion und rechts sind 3 Beispielaufrufe. Diese kleinen Blöcke kämen dann in das Sauger-Skript statt "Steuere speak...".

            K Offline
            K Offline
            kaiserm
            schrieb am zuletzt editiert von
            #27

            @Diginix Klasse, vielen Dank!

            Könntest Du das Script hier noch zum Import bereitstellen?

            LG Martin

            DiginixD 1 Antwort Letzte Antwort
            0
            • K kaiserm

              @Diginix Klasse, vielen Dank!

              Könntest Du das Script hier noch zum Import bereitstellen?

              LG Martin

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

              @kaiserm
              Das nützt sehr wenig weil eigentlich alle Objekte nutzerspezifische Datenpunkte sind. Ich müsste für den Export erst alle Objekte anonymisieren. Also das Skript quasi noch mal bauen.
              Generisch sind ja nur die paar Falls/Sonst Blöcke. Das kann man sich eigentlich auch schnell selbst zusammen klicken und lernt dabei noch wo die Blöcke zu finden sind.
              Aber wer sich wirklich nicht in der Lage sieht, für den kann ich bei Gelegenheit mal einen Export bauen.

              ..:: 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

                @kaiserm
                Das nützt sehr wenig weil eigentlich alle Objekte nutzerspezifische Datenpunkte sind. Ich müsste für den Export erst alle Objekte anonymisieren. Also das Skript quasi noch mal bauen.
                Generisch sind ja nur die paar Falls/Sonst Blöcke. Das kann man sich eigentlich auch schnell selbst zusammen klicken und lernt dabei noch wo die Blöcke zu finden sind.
                Aber wer sich wirklich nicht in der Lage sieht, für den kann ich bei Gelegenheit mal einen Export bauen.

                K Offline
                K Offline
                kaiserm
                schrieb am zuletzt editiert von
                #29

                @Diginix Das wäre Klasse.

                Ich such mir jedes Mal den Hund in Blockly.

                Warum müsstest Du alles anonymisieren?

                Mit den Datenpunkten fängt doch keiner was an, oder?

                LG Martin

                K 1 Antwort Letzte Antwort
                0
                • K kaiserm

                  @Diginix Das wäre Klasse.

                  Ich such mir jedes Mal den Hund in Blockly.

                  Warum müsstest Du alles anonymisieren?

                  Mit den Datenpunkten fängt doch keiner was an, oder?

                  LG Martin

                  K Offline
                  K Offline
                  kaiserm
                  schrieb am zuletzt editiert von
                  #30

                  @kaiserm Nur nochmal zu meinem Verständnis:

                  Ich möchte folgendes erreichen:

                  Alexa, saug die Wohnung - Der S50 soll alles saugen
                  Alexa, saug das ***zimmer - Der S50 soll das angegebene Zimmer saugen
                  Alexa, schick Hugo zum Mülleimer - Der S50 (Hugo) fährt zum Mülleimer
                  Alexa, schick Hugo zum laden - Der S50 (Hugo) fährt zurück zur Ladestation
                  Alxea, Hugo Pause - Der S50 bleibt stehen
                  Alexa, Hugo Weiter - Der S50 saugt weiter
                  Alexa, Hugo Stop - Der S50 stoppt und fährt zurück in die Ladestation

                  Ich benötige ausser dem Bestätigungston von Alexa eigentlich kein weiteres Gelaber.
                  Der S50 labert ja selbst auch wenn ihm was nicht passen sollte.

                  Ich muss also Summary im ersten Fall auf saug UND die UND Wohnung abfragen.

                  Wenn das wahr ist soll der Sauger die Koordinate ansteuern und lossaugen.

                  Wie steuert man dann die Koordinaten aus dem Script an?
                  Habe gelesen das man die Koordinaten über eine Szene übergeben muss?!
                  In diesem Fall (Wohnung) müsste man nacheinander die Koordinaten aller Zimmer hintereinander in die Szene schreiben.

                  Kann man per Script dann STEUERE SZENE Sauge_Wohnung mit WAHR ansprechen?

                  Was muss man für Pausieren, Weiter und Stop ansteuern damit der S50 dies auch macht ?

                  Danke im Voraus

                  LG Martin

                  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

                    Patchwork 3001P Offline
                    Patchwork 3001P Offline
                    Patchwork 3001
                    schrieb am zuletzt editiert von
                    #31

                    @nurChris
                    hallo habe alle deine viedeos befolgt aber ich bekomme immer wieder die selben fehler meldungen

                    warn javascript.0 (1075) at Object.<anonymous> (script.js.Saugroboter.Saugereinstellungen:17:5)
                    warn javascript.0 (1075) at Object.<anonymous> (script.js.Saugroboter.Saugereinstellungen:16:5)

                    ich weis nicht mehr weiter den rest habe ich angepasst aber was findet er den nicht
                    Ghost ordner habe ich gemacht unter Eigene datenpunkte wie im video.
                    weis nur micht wie ich diesen zuweisen kann.

                    DiginixD 1 Antwort Letzte Antwort
                    0
                    • Patchwork 3001P Patchwork 3001

                      @nurChris
                      hallo habe alle deine viedeos befolgt aber ich bekomme immer wieder die selben fehler meldungen

                      warn javascript.0 (1075) at Object.<anonymous> (script.js.Saugroboter.Saugereinstellungen:17:5)
                      warn javascript.0 (1075) at Object.<anonymous> (script.js.Saugroboter.Saugereinstellungen:16:5)

                      ich weis nicht mehr weiter den rest habe ich angepasst aber was findet er den nicht
                      Ghost ordner habe ich gemacht unter Eigene datenpunkte wie im video.
                      weis nur micht wie ich diesen zuweisen kann.

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

                      @Patchwork-3001 Die Zahlen am Ende stehen für die Zeilen und Spaltennummer im Skript.
                      Bei Blockly einfach temporär auf Javascript umschalten und schauen was was in der Zeile und Spalte steht.
                      Sieht für mich so aus als wäre noch ein Objekt referenziert was es bei dir nicht gibt, also auf die korrekte ID deiner Objekte umgestellt werden müsste.

                      ..:: 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

                      Patchwork 3001P 1 Antwort Letzte Antwort
                      0
                      • DiginixD Diginix

                        @Patchwork-3001 Die Zahlen am Ende stehen für die Zeilen und Spaltennummer im Skript.
                        Bei Blockly einfach temporär auf Javascript umschalten und schauen was was in der Zeile und Spalte steht.
                        Sieht für mich so aus als wäre noch ein Objekt referenziert was es bei dir nicht gibt, also auf die korrekte ID deiner Objekte umgestellt werden müsste.

                        Patchwork 3001P Offline
                        Patchwork 3001P Offline
                        Patchwork 3001
                        schrieb am zuletzt editiert von
                        #33

                        @Diginix Danke hat geholfen

                        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

                          Patchwork 3001P Offline
                          Patchwork 3001P Offline
                          Patchwork 3001
                          schrieb am zuletzt editiert von
                          #34

                          @nurChris hallo ich hebe ja die pro Version für 1 jahr

                          habe 4 Skills in Alexa aktiv und zwar Custom , Pro , Home , Iot

                          welche sollen jetzt deaktiviert werden benutze das Skript von Dir für den Xiaomi s5.

                          bin grade ein wenig durch einander was jetzt weg soll und was nicht.
                          ich bitte um Hilfe in dieser Sache

                          Läuft super aber ich habe angst das ich den falschen Iotbroker abwähle in den Skills

                          DiginixD 1 Antwort Letzte Antwort
                          0
                          • Patchwork 3001P Patchwork 3001

                            @nurChris hallo ich hebe ja die pro Version für 1 jahr

                            habe 4 Skills in Alexa aktiv und zwar Custom , Pro , Home , Iot

                            welche sollen jetzt deaktiviert werden benutze das Skript von Dir für den Xiaomi s5.

                            bin grade ein wenig durch einander was jetzt weg soll und was nicht.
                            ich bitte um Hilfe in dieser Sache

                            Läuft super aber ich habe angst das ich den falschen Iotbroker abwähle in den Skills

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

                            @Patchwork-3001 Zum Schalten/Steuern wird ab sofort der iot Adapter genutzt.
                            In diesem sollten also die Objekte/Schalter/smarten Geräten für den Saugroboter eingerichtet werden.

                            ..:: 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

                            1 Antwort Letzte Antwort
                            0
                            • Z Offline
                              Z Offline
                              zokkai
                              schrieb am zuletzt editiert von
                              #36

                              Super, funktioniert bestens.
                              Ich habe bereits Zonen definiert, die ich per Sprache anstsuern kann (..., Wohnzimmer saugen starten)
                              Ich muss mal sehen, wie ich dies in deine Scripte einbauen kann.
                              Danke dafür erstmal!

                              1 Antwort Letzte Antwort
                              0
                              • E Offline
                                E Offline
                                extbingh
                                schrieb am zuletzt editiert von Jey Cee
                                #37

                                Hat hier jemand ein Script für eine Einzelraumreinigung?

                                Valetudo RE vorhanden, Räume sind auch benannt etc. "roomClean" auswählen geht jedoch nicht über den IoT Adapter

                                DiginixD 1 Antwort Letzte Antwort
                                0
                                • E extbingh

                                  Hat hier jemand ein Script für eine Einzelraumreinigung?

                                  Valetudo RE vorhanden, Räume sind auch benannt etc. "roomClean" auswählen geht jedoch nicht über den IoT Adapter

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

                                  @BlackRed Schau dir doch mal den Adapter in Version 2 an:
                                  https://forum.iobroker.net/topic/30137/test-adapter-mihome-vacuum-v2-0-x/

                                  Der unterstützt Einzel-/Mehrraum für alle gängigen Modelle ohne Skripte usw.

                                  ..:: 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

                                  1 Antwort Letzte Antwort
                                  0
                                  • KrisiunK Offline
                                    KrisiunK Offline
                                    Krisiun
                                    schrieb am zuletzt editiert von
                                    #39

                                    Hallo Chris
                                    Wo kann ich den Namen von Roborock definieren? Die aufrufe "Alexa wo ist oder Finde gehen ins leere.
                                    Kannst Du mir helfen?
                                    Du hast deinen Saugi genannt, meiner heißt anderes und das funtz nicht.

                                    Gruß
                                    Murk Murk

                                    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

                                    762

                                    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