NEWS
[PROJEKT] Xiaomi Roborock S50 Staubsaugersteuerung mit Alexa
-
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. -
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
-
@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 binBezü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
-
@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.Kann mir einer weiterhelfen?
Danke. -
@crabs geh auf Javascript Adapter 4.3.1 da ist der Fehler weg. Die höheren bis 4.3.4 haben den Bug..
-
@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. -
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?!
-
@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. -
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
-
@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.
-
@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?
-
@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. -
@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
-
@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...". -
-
@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. -
@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
-
@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 LadestationIch 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
-
@nurChris
hallo habe alle deine viedeos befolgt aber ich bekomme immer wieder die selben fehler meldungenwarn 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. -
@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.