Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Vorlage] Roborock Gen1 - Einzelraumreinigung mit Valetudo

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    823

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    6.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.6k

[Vorlage] Roborock Gen1 - Einzelraumreinigung mit Valetudo

Scheduled Pinned Locked Moved Skripten / Logik
javascripttemplate
26 Posts 5 Posters 5.0k Views 10 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • AlCalzoneA AlCalzone

    @ntsa86 sagte in [Vorlage] Roborock Gen1 - Einzelraumreinigung mit Valetudo:

    [[29479,30010,2271819005] -> 51200 - "Valetudo-Korrdinaten"

    Und das gilt nur für die y-Werte, also den 2. und 4.
    Die x-Koordinaten darfst du nicht anfassen!

    N Offline
    N Offline
    ntsa86
    wrote on last edited by
    #14

    @AlCalzone

    Zu Früh gefreut. Er kommt mit den GoTo nicht zurecht. Die Zonen werden aber richtig ausgerichtet. Gibts die Möglichkeit den GoTo Befehl auszukommentieren (zum Test).

    Aktuell fährt er nur rum und sucht seinen Punkt:

    7B1A99EB-0791-4A9A-AA85-50B9FD3660F1.jpeg

    AlCalzoneA 1 Reply Last reply
    0
    • N ntsa86

      @AlCalzone

      Zu Früh gefreut. Er kommt mit den GoTo nicht zurecht. Die Zonen werden aber richtig ausgerichtet. Gibts die Möglichkeit den GoTo Befehl auszukommentieren (zum Test).

      Aktuell fährt er nur rum und sucht seinen Punkt:

      7B1A99EB-0791-4A9A-AA85-50B9FD3660F1.jpeg

      AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      wrote on last edited by
      #15

      @ntsa86 Der GoTo-Punkt liegt immer in der Mitte der Zone (bzw. des ersten Abschnitts). Vermutlich ist das bei dir hinter einer Wand. Kommentiere folgende Zeilen aus:
      bf1b5490-c121-47fc-8187-8e95272eee6c-grafik.png

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

      1 Reply Last reply
      0
      • T Offline
        T Offline
        TemPeck
        wrote on last edited by TemPeck
        #16

        Moin!

        Ich habe es heute endlich geschafft, Valetudo auf meinen Vacuum v1 zu bekommen.
        So weit so gut....

        Leider habe ich Probleme mit dem Script - es wird folgender Fehler ausgegeben:

        javascript.0 (30625) script.js.Test.Rockrobo2: TypeScript compilation failed: import axios from "axios"; ^ ERROR: Cannot find module 'axios'.
        

        Nun meine vllt. etwas doofe Frage:
        Wo muss ich dieses Modul installieren?
        Habe mich über ssh beim iobroker eingeloggt und mit

        npm install axios -S
        

        eigentlich (so dachte ich) axios installiert.

        Habe ich da etwas falsch verstanden?

        Edit: Im Javascript-Adapter habe ich unter "Zusätzliche NPM-Module" auch axios eingetragen. Hilft trotzdem nix....

        Grüße!

        AlCalzoneA 1 Reply Last reply
        0
        • T TemPeck

          Moin!

          Ich habe es heute endlich geschafft, Valetudo auf meinen Vacuum v1 zu bekommen.
          So weit so gut....

          Leider habe ich Probleme mit dem Script - es wird folgender Fehler ausgegeben:

          javascript.0 (30625) script.js.Test.Rockrobo2: TypeScript compilation failed: import axios from "axios"; ^ ERROR: Cannot find module 'axios'.
          

          Nun meine vllt. etwas doofe Frage:
          Wo muss ich dieses Modul installieren?
          Habe mich über ssh beim iobroker eingeloggt und mit

          npm install axios -S
          

          eigentlich (so dachte ich) axios installiert.

          Habe ich da etwas falsch verstanden?

          Edit: Im Javascript-Adapter habe ich unter "Zusätzliche NPM-Module" auch axios eingetragen. Hilft trotzdem nix....

          Grüße!

          AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          wrote on last edited by
          #17

          @TemPeck sagte in [Vorlage] Roborock Gen1 - Einzelraumreinigung mit Valetudo:

          eigentlich (so dachte ich) axios installiert.

          So nicht, so:

          Im Javascript-Adapter habe ich unter "Zusätzliche NPM-Module" auch axios eingetragen

          Eigentlich müsste es so funktionieren. Hast du bei der richtigen Instanz installiert? Gewartet, bis die Installation im Log als abgeschlossen steht?

          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

          1 Reply Last reply
          0
          • T Offline
            T Offline
            TemPeck
            wrote on last edited by
            #18

            Ich habe nur eine Javascript-Instanz. Und laut log müsste es auch installiert sein:

            2020-03-28 22:20:37.561 - info: host.iobroker instance system.adapter.javascript.0 started with pid 30625
            2020-03-28 22:20:40.422 - info: javascript.0 (30625) starting. Version 4.4.3 in /opt/iobroker/node_modules/iobroker.javascript, node: v10.17.0
            2020-03-28 22:20:40.454 - info: javascript.0 (30625) npm install axios --production --prefix "/opt/iobroker/node_modules/iobroker.javascript" (System call)
            2020-03-28 22:20:42.755 - info: javascript.0 (30625) + axios@0.19.2
            added 4 packages from 7 contributors and audited 29 packages in 1.399s
            2020-03-28 22:20:42.756 - info: javascript.0 (30625) found 0 vulnerabilities
            2020-03-28 22:20:42.811 - info: javascript.0 (30625) requesting all states
            2020-03-28 22:20:42.813 - info: javascript.0 (30625) requesting all objects
            

            Meinst du, dass die Installation über "npm install axios -S" irgendwelche Probleme verursacht haben könnte?

            AlCalzoneA 1 Reply Last reply
            0
            • T TemPeck

              Ich habe nur eine Javascript-Instanz. Und laut log müsste es auch installiert sein:

              2020-03-28 22:20:37.561 - info: host.iobroker instance system.adapter.javascript.0 started with pid 30625
              2020-03-28 22:20:40.422 - info: javascript.0 (30625) starting. Version 4.4.3 in /opt/iobroker/node_modules/iobroker.javascript, node: v10.17.0
              2020-03-28 22:20:40.454 - info: javascript.0 (30625) npm install axios --production --prefix "/opt/iobroker/node_modules/iobroker.javascript" (System call)
              2020-03-28 22:20:42.755 - info: javascript.0 (30625) + axios@0.19.2
              added 4 packages from 7 contributors and audited 29 packages in 1.399s
              2020-03-28 22:20:42.756 - info: javascript.0 (30625) found 0 vulnerabilities
              2020-03-28 22:20:42.811 - info: javascript.0 (30625) requesting all states
              2020-03-28 22:20:42.813 - info: javascript.0 (30625) requesting all objects
              

              Meinst du, dass die Installation über "npm install axios -S" irgendwelche Probleme verursacht haben könnte?

              AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              wrote on last edited by
              #19

              @TemPeck Ich vermute eher, dass TypeScript sich an etwas verschluckt hat - obwohl die Fixes schon länger im Adapter enthalten sein müssten. Setz mal //@ts-ignore über die Import-Zeile.

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              1 Reply Last reply
              0
              • T Offline
                T Offline
                TemPeck
                wrote on last edited by
                #20

                Erledigt - nun taucht kein Fehler auf.

                16:06:26.443	info	javascript.0 (1227) script.js.Test.Rockrobo2: compiling TypeScript source...
                16:06:26.599	info	javascript.0 (1227) script.js.Test.Rockrobo2: TypeScript compilation successful
                16:06:26.611	info	javascript.0 (1227) script.js.Test.Rockrobo2: registered 7 subscriptions and 0 schedules
                

                Ob alles klappt, kann ich erst später testen.

                Vielen Dank für den Support!

                1 Reply Last reply
                0
                • T Offline
                  T Offline
                  TemPeck
                  wrote on last edited by
                  #21

                  Okay ich habe jetzt mal nur den Raum "Küche" angelegt und mit den umgerechneten Koordinaten im Script eingefügt.

                  Sobald ich den Datenpunkt Küche unter javascript.0.Staubsauger mit "wahr" belege, sollte er anfangen, oder hab ich da was falsch verstanden?

                  Im log passiert daraufhin lediglich folgendes:

                  javascript.0	2020-03-29 17:12:13.285	info	(1227) script.js.Test.Rockrobo2: Teste Kartenorientierung...
                  

                  danach passiert nichts mehr.

                  Wenn ich das im Script richtig sehe, sollte danach etwas mit axios "passieren".
                  Scheint mir, als wäre der Fehler daher nicht behoben, oder?

                  Grüße!

                  AlCalzoneA 1 Reply Last reply
                  0
                  • T TemPeck

                    Okay ich habe jetzt mal nur den Raum "Küche" angelegt und mit den umgerechneten Koordinaten im Script eingefügt.

                    Sobald ich den Datenpunkt Küche unter javascript.0.Staubsauger mit "wahr" belege, sollte er anfangen, oder hab ich da was falsch verstanden?

                    Im log passiert daraufhin lediglich folgendes:

                    javascript.0	2020-03-29 17:12:13.285	info	(1227) script.js.Test.Rockrobo2: Teste Kartenorientierung...
                    

                    danach passiert nichts mehr.

                    Wenn ich das im Script richtig sehe, sollte danach etwas mit axios "passieren".
                    Scheint mir, als wäre der Fehler daher nicht behoben, oder?

                    Grüße!

                    AlCalzoneA Offline
                    AlCalzoneA Offline
                    AlCalzone
                    Developer
                    wrote on last edited by
                    #22

                    @TemPeck sagte in [Vorlage] Roborock Gen1 - Einzelraumreinigung mit Valetudo:

                    Wenn ich das im Script richtig sehe, sollte danach etwas mit axios "passieren".

                    Ja, sollte es. Bekommst du eine Antwort, wenn du manuell im Browser http://<dein-robo-hostname>/api/map/latest öffnest?

                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                    1 Reply Last reply
                    0
                    • T Offline
                      T Offline
                      TemPeck
                      wrote on last edited by
                      #23

                      Ja, er lädt eine 1KB große Datei mit dem Namen "latest"

                      AlCalzoneA 1 Reply Last reply
                      0
                      • T TemPeck

                        Ja, er lädt eine 1KB große Datei mit dem Namen "latest"

                        AlCalzoneA Offline
                        AlCalzoneA Offline
                        AlCalzone
                        Developer
                        wrote on last edited by
                        #24

                        Ich hab da noch ne Idee: Du hast keine Authentifizierung aktiviert, aber im Skript die Zeilen 5-8 drin gelassen?

                        const valetudoAuth = {
                        	username: "valetudo-username",
                        	password: "valetudo-password"
                        };
                        

                        Lösch die mal raus oder kommentiere sie aus ( // davor)

                        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                        T 1 Reply Last reply
                        0
                        • AlCalzoneA AlCalzone

                          Ich hab da noch ne Idee: Du hast keine Authentifizierung aktiviert, aber im Skript die Zeilen 5-8 drin gelassen?

                          const valetudoAuth = {
                          	username: "valetudo-username",
                          	password: "valetudo-password"
                          };
                          

                          Lösch die mal raus oder kommentiere sie aus ( // davor)

                          T Offline
                          T Offline
                          TemPeck
                          wrote on last edited by
                          #25

                          @AlCalzone Das Auskommentieren (später - bei mir Zeile 107 - muss dann in der Folge auch noch einmal ausgeklammert werden) sowie der Versuch, die HTTP-Authentifizierung zu aktivieren und die Zugangsdaten einzutragen, haben jeweils wieder das selbe Ergebnis erbracht... :/

                          1 Reply Last reply
                          0
                          • W Offline
                            W Offline
                            womi
                            wrote on last edited by womi
                            #26

                            @AlCalzone
                            Vielen Dank für das Script bzw. die Idee, wie die Sache mit der gelegentlichen Kartenrotation gelöst werden könnte.
                            Sieht spannend aus.
                            Allerdings habe ich mit dem Script (Version 1) diverse Probleme, die ich noch gelöst bekommen muss:

                            (0) Ich habe auch ein //@ts-ignore vor dem import axios from "axios"; gebraucht, damit das Script überhaupt läuft. OK.

                            (1) Wenn ich den Sauger in einem Raum ohne die Dockingstation laufen lasse und danach auf die Station zurückstelle, enthält die letzte Karte keine Position "charger" und das Script hängt. Das Hängen kann ich programmatisch lösen, indem ich für charger und robot irgendwelche Werte vordefiniere, die dann überschrieben werden, wenn etwas zurückkommt. Ich weiß nur noch nicht, wie ich darauf sinnvoll reagieren könnte. Vielleicht kurz zum Saugen schicken und wieder heim, damit er die Karte neu aufbaut. Vielleicht reicht auch ein "Home"-Befehl. Muss ich noch ausprobieren.

                            (2) Problematischer ist, dass die Funktion setStateAsync nicht zuverlässig funktioniert.

                            function setStateAsync(id: string, state: any): Promise<void> {
                                return new Promise(res => {
                                    setState(id, state, () => res());
                                });
                            }
                            

                            Nicht zuverlässig funktioniert heißt in dem Fall, es wartet nicht und dann erhalte ich als Kartenrotation für die Raumreinigung manchmal (meistens) -1 anstatt dem berechneten Wert. Das lässt sich auch lösen, indem ich den Wert nicht mit der Kombination aus

                            function rememberMapRotation(rotation: number): Promise<void> {
                                return setStateAsync(idMapRotated, rotation);   //Funktioniert nicht zuverlässig
                            }
                            

                            und

                            function getMapRotation(): number {
                                return getState(idMapRotated).val;
                            }
                            

                            schreibe und wieder hole, sondern die Raumreinigung so starte:

                            cleanRoom(room,await testMapRotation());
                            

                            aber das kommt mir doch recht seltsam vor. Da kann man sich den zusätzlichen state ja gleich sparen.
                            Und Du hättest es ja wohl nicht so gemacht, wenn es nicht eigentlich funktionieren würde.
                            Was habe ich übersehen?

                            Beste Grüße

                            1 Reply Last reply
                            0

                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                            With your input, this post could be even better 💗

                            Register Login
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            433

                            Online

                            32.8k

                            Users

                            82.7k

                            Topics

                            1.3m

                            Posts
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                            ioBroker Community 2014-2025
                            logo
                            • Login

                            • Don't have an account? Register

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Home
                            • Recent
                            • Tags
                            • Unread 0
                            • Categories
                            • Unreplied
                            • Popular
                            • GitHub
                            • Docu
                            • Hilfe