Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Roborock Gen1 - Einzelraumreinigung mit Valetudo

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Vorlage] Roborock Gen1 - Einzelraumreinigung mit Valetudo

    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      ntsa86 last edited by ntsa86

      @AlCalzone

      Danke für deine Mühe das Thema nachhaltig zu lösen.

      Ich habe heute nun endlich meinen Gen1 mit dem aktuellsten Valetudo Image aufgesetzt.

      Nun bin ich dabei, den ioBroker anzubinden. Hier hab ich jedoch noch Probleme.

      Ich habe via npm axios & pako nachinstalliert.

      Jedoch scheint er schon in Zeile 1 ein Problem zu bekommen:

      javascript.0	2020-03-22 21:40:28.584	error	(1199) at process._tickCallback (internal/process/next_tick.js:68:7)
      javascript.0	2020-03-22 21:40:28.584	error	(1199) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49)
      javascript.0	2020-03-22 21:40:28.584	error	(1199) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
      javascript.0	2020-03-22 21:40:28.584	error	(1199) at client.get (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:491:17)
      javascript.0	2020-03-22 21:40:28.584	error	(1199) at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:745:17)
      javascript.0	2020-03-22 21:40:28.583	error	(1199) at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1123:17)
      javascript.0	2020-03-22 21:40:28.583	error	(1199) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1070:37)
      javascript.0	2020-03-22 21:40:28.583	error	(1199) at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:878:28)
      javascript.0	2020-03-22 21:40:28.583	error	(1199) at Object.createScript (vm.js:277:10)
      javascript.0	2020-03-22 21:40:28.583	error	(1199) at new Script (vm.js:83:7)
      javascript.0	2020-03-22 21:40:28.582	error	(1199) SyntaxError: Unexpected identifier
      javascript.0	2020-03-22 21:40:28.582	error	(1199) ^^^^^
      javascript.0	2020-03-22 21:40:28.582	error	(1199) import axios from "axios";
      javascript.0	2020-03-22 21:40:28.582	error	at script.js.Eigene_Scripte_-_Tests.Robbie_Map_Rotation:1
      javascript.0	2020-03-22 21:40:28.582	error	(1199) script.js.Eigene_Scripte_-_Tests.Robbie_Map_Rotation compile failed:
      

      Darüber hinaus hätte ich eine Frage zum Winkel. Mein Vacuum steht "unter" der Ladestation. Südlich sozusagen.

      Muss ich hier noch etwas im Script anpassen?

      Ich habe bisher eine Zone "Haus" angelegt. Diese hat die Koordinaten, wie ich sie auch mit der Original-FW genutzt hatte.

      Danke für deine Hilfe!

      VG!

      AlCalzone 1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer @ntsa86 last edited by

        @ntsa86 Du hast das Skript als JavaScript, nicht wie oben steht als TypeScript angelegt.

        N 1 Reply Last reply Reply Quote 0
        • N
          ntsa86 @AlCalzone last edited by

          @AlCalzone

          Ja, wer lesen kann ... danke.

          Musste mein ioBroker erstmal auf den aktuellen Stand bringen. Dann klappt’s auch mit den Modulen.

          Hätte noch eine Frage zu den Koordinaten. Ich bekomme nun den Status -1 unknown

          Wo muss ich was eintragen, damit das Script erkennt, in welcher Ausrichtung der Robbi zur Station steht?

          VG!

          AlCalzone 1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer @ntsa86 last edited by

            @ntsa86 Dazu musst du eigentlich nur eine Einzelraumreinigung starten. Beim Start checkt das Skript die Ausrichtung, sofern du mindestens 1x kurz den Sauger an hattest, um einen Teil der Karte aufzubauen.

            N 1 Reply Last reply Reply Quote 0
            • N
              ntsa86 @AlCalzone last edited by

              @AlCalzone

              Ok habe ich eben nochmal gestartet (Script erkannte: 90°). Dabei dreht er meine Zonen nun um 90° - muss somit wohl die Koordinaten anpassen. Habe diese direkt aus Valetudo rausgenommen (über http://<ip>/api/get_config).

              Somit wird dann aus

              "Haus": [[21721,21190,28482,32195] -> Valetudo
              "Haus": [[29479,30010,2271819005] -> 51200 - "Valetudo-Korrdinaten"

              Hab ich gemacht. Ging schief. 🙂

              Die originalen Valetudo Zonen sehen wie folgt aus:

              haus_valetudo_zone.PNG

              Das Script macht dann daraus:

              haus_script_zone.PNG

              Was mach ich falsch?

              VG & Danke für deine Geduld. 🙂

              AlCalzone 2 Replies Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer @ntsa86 last edited by AlCalzone

                @ntsa86 Das Skript geht davon aus, dass der Roboter normalerweise links steht. Könnte ich ggf noch anpassbar machen.

                Ändere bitte folgende Zeilen bei dir (angenommen du verwendest Version 3):

                Zeilen 95-98:

                        "0": "Robo unten vom Dock",
                        "90": "Robo rechts vom Dock",
                        "180": "Robo oben vom Dock",
                        "270": "Robo links vom Dock",
                

                Zeilen 142-153:

                    if (angle <= 45 && angle >= -45) {
                        // Sauger steht rechts
                        return 90;
                    } else if (angle > 45 && angle < 135) {
                        // Sauger steht oben
                        return 180;
                    } else if (angle < -45 && angle > -135) {
                        // Sauger steht unten
                        return 0;
                    } else {
                        // Sauger steht links
                        return 270;
                    }
                
                1 Reply Last reply Reply Quote 0
                • AlCalzone
                  AlCalzone Developer @ntsa86 last edited by

                  @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 2 Replies Last reply Reply Quote 0
                  • N
                    ntsa86 @AlCalzone last edited by

                    @AlCalzone Danke, jetzt hat es geklappt!

                    1 Reply Last reply Reply Quote 0
                    • 0
                      0018 last edited by

                      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?

                      AlCalzone N 2 Replies Last reply Reply Quote 0
                      • AlCalzone
                        AlCalzone Developer @0018 last edited by AlCalzone

                        @0018 Ich weiß nicht ob es einen einfachereren Weg gibt, aber wenn du eine Zone anlegst, anschließend die Developer-Tools (F12) öffnest und dort die Netzwerkanalyse startest, dann die Seite neu lädst, gibt es eine Anfrage an "get_config". Dort sind die Zonen enthalten:
                        d16a2cc2-9f81-4612-8156-04f75de3c8b5-grafik.png

                        1 Reply Last reply Reply Quote 0
                        • N
                          ntsa86 @0018 last edited by

                          @0018

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

                          0 1 Reply Last reply Reply Quote 0
                          • 0
                            0018 @ntsa86 last edited by 0018

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

                            http://<ip>/api/get_config

                            Wunderbar, hat direkt geklappt! Danke 👍

                            1 Reply Last reply Reply Quote 0
                            • N
                              ntsa86 @AlCalzone last edited by

                              @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

                              AlCalzone 1 Reply Last reply Reply Quote 0
                              • AlCalzone
                                AlCalzone Developer @ntsa86 last edited by

                                @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

                                1 Reply Last reply Reply Quote 0
                                • T
                                  TemPeck last edited by 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!

                                  AlCalzone 1 Reply Last reply Reply Quote 0
                                  • AlCalzone
                                    AlCalzone Developer @TemPeck last edited by

                                    @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?

                                    1 Reply Last reply Reply Quote 0
                                    • T
                                      TemPeck last edited by

                                      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?

                                      AlCalzone 1 Reply Last reply Reply Quote 0
                                      • AlCalzone
                                        AlCalzone Developer @TemPeck last edited by

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

                                        1 Reply Last reply Reply Quote 0
                                        • T
                                          TemPeck last edited by

                                          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 Reply Quote 0
                                          • T
                                            TemPeck last edited by

                                            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!

                                            AlCalzone 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            817
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript template
                                            5
                                            26
                                            3651
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo