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

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

[Vorlage] Roborock Gen1 - Einzelraumreinigung mit Valetudo

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

              571

              Online

              32.6k

              Benutzer

              82.2k

              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