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. Skripten / Logik
  4. [Vorlage] Roborock Gen1 - Einzelraumreinigung mit Valetudo

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    118

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

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

[Vorlage] Roborock Gen1 - Einzelraumreinigung mit Valetudo

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascripttemplate
26 Beiträge 5 Kommentatoren 4.6k Aufrufe 10 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.
  • 0 0018

    Hallo,

    habe Valetudo RE 0.8.1 auf meinem Gen1. Kann mir jemand sagen wie ich dort die Koordinaten meiner angelegten Zonen auslesen kann, damit ich diese im Skript eintragen kann?

    N Offline
    N Offline
    ntsa86
    schrieb am zuletzt editiert von
    #12

    @0018

    Zonen in Valetudo anlegen und dann im Browser http://<ip>/api/get_config aufrufen. Natürlich die IP deines Robbi verwenden.

    0 1 Antwort Letzte Antwort
    0
    • N ntsa86

      @0018

      Zonen in Valetudo anlegen und dann im Browser http://<ip>/api/get_config aufrufen. Natürlich die IP deines Robbi verwenden.

      0 Offline
      0 Offline
      0018
      schrieb am zuletzt editiert von 0018
      #13

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

      http://<ip>/api/get_config

      Wunderbar, hat direkt geklappt! Danke :+1:

      Mfg
      0018

      1 Antwort Letzte Antwort
      0
      • 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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            TemPeck
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • T Offline
                T Offline
                TemPeck
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • T Offline
                    T Offline
                    TemPeck
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • T Offline
                      T Offline
                      TemPeck
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      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
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • T Offline
                          T Offline
                          TemPeck
                          schrieb am zuletzt editiert von
                          #23

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

                          AlCalzoneA 1 Antwort Letzte Antwort
                          0
                          • T TemPeck

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

                            AlCalzoneA Offline
                            AlCalzoneA Offline
                            AlCalzone
                            Developer
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            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
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • W Offline
                                W Offline
                                womi
                                schrieb am zuletzt editiert von 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 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

                                664

                                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