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. ioBroker Allgemein
  4. IRobot Roomba Adapter

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

IRobot Roomba Adapter

Scheduled Pinned Locked Moved ioBroker Allgemein
851 Posts 101 Posters 324.4k Views 65 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.
  • I igor123

    Hi,

    wie kann ich dem Roomba nun sagen, reinige das Wohnzimmer, oder eben andere Räume die ich in der App definiert habe?

    Danke euch!

    LG

    G Offline
    G Offline
    Gezi70
    wrote on last edited by
    #749

    @igor123 warum verknüpfst du ihn nicht einfach mit dem Roomba - Skill den es gibt? Der iobroker managt auch nur über die Cloud. Über den Umweg per iobroker habe ich derzeit Schwierigkeiten den Roboter zu sagen was er machen soll. Er dient nur als Überwachung.

    I 1 Reply Last reply
    0
    • G Gezi70

      @igor123 warum verknüpfst du ihn nicht einfach mit dem Roomba - Skill den es gibt? Der iobroker managt auch nur über die Cloud. Über den Umweg per iobroker habe ich derzeit Schwierigkeiten den Roboter zu sagen was er machen soll. Er dient nur als Überwachung.

      I Offline
      I Offline
      igor123
      wrote on last edited by
      #750

      @gezi70 welchen Roomba - Skill?
      wo mache ich das?

      G 1 Reply Last reply
      0
      • I igor123

        @gezi70 welchen Roomba - Skill?
        wo mache ich das?

        G Offline
        G Offline
        Gezi70
        wrote on last edited by
        #751

        @igor123 du suchst in der Alexa - App auf dem Handy nach diesem Skill. Alles weitere erklärt er dir selbst. Screenshot_20220228-193127_Amazon Alexa.jpg

        I 1 Reply Last reply
        0
        • G Gezi70

          @igor123 du suchst in der Alexa - App auf dem Handy nach diesem Skill. Alles weitere erklärt er dir selbst. Screenshot_20220228-193127_Amazon Alexa.jpg

          I Offline
          I Offline
          igor123
          wrote on last edited by
          #752

          @gezi70 sagte in IRobot Roomba Adapter:

          @igor123 du suchst in der Alexa - App auf dem Handy nach diesem Skill. Alles weitere erklärt er dir selbst. Screenshot_20220228-193127_Amazon Alexa.jpg

          Naja ich nutze jedoch kein Alexa.
          Gibt es da auch ohne alexa ne Möglichkeit?

          Lg

          wendy2702W 1 Reply Last reply
          0
          • I igor123

            @gezi70 sagte in IRobot Roomba Adapter:

            @igor123 du suchst in der Alexa - App auf dem Handy nach diesem Skill. Alles weitere erklärt er dir selbst. Screenshot_20220228-193127_Amazon Alexa.jpg

            Naja ich nutze jedoch kein Alexa.
            Gibt es da auch ohne alexa ne Möglichkeit?

            Lg

            wendy2702W Offline
            wendy2702W Offline
            wendy2702
            wrote on last edited by
            #753

            @igor123 Wie heisst denn deine Frau ?

            Spass beiseite, ohne Sprachassistenten wirst du es nur schwer umsetzen können.

            Also Alexa, Google Home oder Siri wirst du wohl verwenden müssen.

            Bitte keine Fragen per PN, die gehören ins Forum!

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            1 Reply Last reply
            1
            • K Kusi

              @PatrickH

              Anbei die Bilder. In Blockly starte ich einen Raum, indem ich folgenden Block nutze:
              94820c67-918d-44fd-994a-8952e17a09f7-image.png

              Sollen mehrere Räume gereinigt werden, dann sieht es wie folgt aus:
              --> Wichtig: bei den Kommas KEINE Leerzeichen setzen!
              d1805d65-6b99-4133-8d73-2b786989710b-image.png

              Die Objekte "vor dem Raumnamen" und "nach dem Raumnamen" kannst du auch anders nennen, z.B. "Beginn" und "Ende", so wie ich es dir in der PN geschrieben habe.

              Der sont-Teil habe ich genommen, da ich für den Roomba-Start Ein/Aus Schalter nutze. So kann ich Roomba stoppen, wenn ich diesen zurück auf "Aus" stelle...

              So sieht es bei mir "noch" aus auf der vis:
              a43e330e-0aea-4019-9b9c-13c9dcf4350b-image.png

              G Offline
              G Offline
              Gezi70
              wrote on last edited by
              #754

              @igor123 als du schriebst: "wie kann ich dem Roomba nun sagen, reinige das Wohnzimmer..." war ich eigentlich der Meinung du meinst wirklich eine Sprachaufforderung. :grinning:
              Guck mal hier: https://forum.iobroker.net/post/497945
              Weiter oben steht, wie du die Zonen herausfinden kannst.

              1 Reply Last reply
              1
              • K Kusi

                Die Räume:
                Ich habe die Ordner '0_userdata.0/Roomba/Räume' erstellt, und dort für sämtliche Räume von Roomba ein Objekt mit "Raumname" mit der Art "Zeichenkette" erstellt. Dies wird später genutzt und ist dafür da, wenn sich mal die Raum-ID ändert, kannst du diese dort ganz einfach ändern und musst nicht das Blockly anpassen. Zudem kannst du in Blockly mit den Raumnamen arbeiten und nicht den ID´s.

                Dann erstellst du auf deiner Roomba-App auf dem Smartphone einen Zeitplan (nur einen!!!) und wählst unter "Räume anwählen" nur EINEN Raum aus. Sobald du diesen gespeichert hast, musst du ggfs. den Roomba-Adapter neu starten, damit sich der Wert 'roomba.0/device/_rawData' aktualisiert. Alternativ das Abfrageintervall des Adapters auf 10 Sekunden stellen.
                Dieser Wert kopierst du dir dann und fügst ihn in ein Texteditor (ich nehme Word) ein. Der Text ist über eine Seite lang, dort musst du nun nach dem Wort "cleanSchedule2" suchen. Der ganze Text davor habe ich einfach gerade gelöscht, damit es übersichtlicher wird. Ein paar Wörter (ca. 3-4 Zeilen) später findest du die "Region-ID".
                Kopiere nun den Text '{"region_id":"xx","type":"xxx"}' (xx steht für den Text, der bei dir angezeigt wird) und füge dies in den von dir erstellten Objektwert im Ordner '0_userdata.0/roomba/räume' des entsprechenden Raumes ein.

                Nachtrag: Mit folgendem Blockly kann man die Region_ID per Debug auslesen. Geht viel schneller und ist um einiges bequemer:
                2cf9bd8a-1cbc-4655-84af-7d90082ffdc1-image.png

                Nun änderst du im Zeitplan der Roomba-App den Raum, Neustart von Roomba-Adapter und kopierst wieder den Wert von 'roomba.0/device/_rawData', suchst dir wiedder die Region-ID heraus und kopierst diese in dein von dir erstellten Raum im Javascript-Ordner. Dies machst du mit all den Räumen, welche du dann von ioBroker aus starten willst. Ich habe mir alle 10 Räume so kopiert.

                Weitere Objekte:
                Erstelle zu den Räumen noch 2 weitere Datenpunkte, ich habe diese "Beginn" und "Ende" benannt.

                Folgende Werte muss du darin speichern:
                Bei Beginn: {"command":"start","ordered":1,"params":{"noAutoPasses":false,"twoPass":false},"pmap_id":"xxxxxxxxxxxxxxxxx","regions":[

                Bei Ende: ],"user_pmapv_id":"xxxxxxxxxxx"}

                Die pmap_id und user_pmapv_id musst du mit den Werten ergänzen, welche bei dir in der _rawData stehen (wo du die RaumID herauskopiert hast).

                Start der Reinigung:
                Um nun einen Raum zu Starten, musst du die Werte/Teile wie folgt zusammensetzen:
                "Beginn" "Raumname" "Ende", alles an einem Stück! Dies kannst du dann direkt in 'roomba.0/commands/_runCommand' schreiben und Roomba beginnt zu saugen.
                Wenn du mehrere Räume saugen willst, dann kannst du mehrere Räume hintereinander nehmen, z.B. so:
                "Beginn" "Raumname" , "Raumname" , "Raumname" "Ende"
                (Räume getrennt mit einem Komma, OHNE Leerzeichen!

                Der Roomba-Start mache ich mit Blockly.
                1 Raum reinigen:
                ce9f34ee-9209-49c2-9175-d88c8d134a88-image.png

                mehrere Räume reinigen:
                3347a1e1-5710-437d-8ca2-ac2ec60c4b31-image.png

                Der Sonst-Teil habe ich eingefügt, damit der Roomba seine Reinigung stoppt, wenn ich den Schalter wieder auf "Aus" stelle.
                189951bd-ebc3-4a12-bf03-8bcb59b47bf2-image.png

                Und so sieht meine vis "Roomba" aus:
                3caab5d4-56ef-4c48-826f-8a7e094b8508-image.png

                Erklärung, warum ich "Beginn" und "Ende" als Datenpunkte gespeichert habe:
                Zu Beginn habe ich mir die Werte darin einfach als Text in Blockly vor/nach den Raum gesetzt.
                Leider hat sich dann die Karte mal angepasst in der Roomba-App, dadurch hat sich die pmap_id geändert (und die Räume).
                Darauf musste ich bei ALLEN Einzelräumen und Gruppen diese pmap_id ändern.
                Wenn man jedoch diese Werte eben in einem Datenpunkt hat, dann muss man dies nur einmal im Objekt ändern, und es wird gleich überall übernommen.

                Folgendes habe ich bei mir noch gemacht (optional):
                Pause-Schalter:
                21b3fd96-9da9-4661-9407-1b365161eada-image.png

                Licht einschalten, wenn Zeit zwischen Sonnenuntergang und Sonnenaufgang (kann auch ohne Datenpunkt gelöst werden, ich brauche diesen aber noch für andere Skripts).
                Licht ausschalten, wenn dieses vorher für die Reinigung eingeschaltet wurde.
                Schalter zurücksetzen auf "Aus", sobald der Roomba seine Reinigung beendet hat.
                bc27164c-6c88-4a68-b78e-566315a2ac03-image.png

                K Offline
                K Offline
                Kusi
                wrote on last edited by Kusi
                #755

                @kusi sagte in IRobot Roomba Adapter:

                Die Räume:

                @igor123
                Sieh dir hier mein Post an, da ist alles erklärt.

                1 Reply Last reply
                1
                • SKBS Offline
                  SKBS Offline
                  SKB
                  Developer Most Active
                  wrote on last edited by
                  #756

                  Also,
                  Ich habe hier ein Skript entwickelt, was genau das tut, was du zu suchen scheinst:

                  https://www.kreyenborg.koeln/irobot-steuerung-in-iobroker/

                  Gruß,
                  Stephan

                  ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                  Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                  I 1 Reply Last reply
                  3
                  • SKBS SKB

                    Also,
                    Ich habe hier ein Skript entwickelt, was genau das tut, was du zu suchen scheinst:

                    https://www.kreyenborg.koeln/irobot-steuerung-in-iobroker/

                    Gruß,
                    Stephan

                    I Offline
                    I Offline
                    igor123
                    wrote on last edited by
                    #757

                    @wendy2702 sagte in IRobot Roomba Adapter:

                    @igor123 Wie heisst denn deine Frau ?

                    Spass beiseite, ohne Sprachassistenten wirst du es nur schwer umsetzen können.

                    Also Alexa, Google Home oder Siri wirst du wohl verwenden müssen.

                    Hab auch ihren Namen gerufen, tat sich aber auch nix 😄

                    Suche etwas ohne sprachassistenten

                    @gezi70 sagte in IRobot Roomba Adapter:

                    @igor123 als du schriebst: "wie kann ich dem Roomba nun sagen, reinige das Wohnzimmer..." war ich eigentlich der Meinung du meinst wirklich eine Sprachaufforderung. :grinning:
                    Guck mal hier: https://forum.iobroker.net/post/497945
                    Weiter oben steht, wie du die Zonen herausfinden kannst.

                    Sry, falsch ausgedrückt :-)
                    War nicht per Sprache gedacht sondern direkt via iobroker
                    Schaue ich mir gleich morgen an, thx!
                    @kusi sagte in IRobot Roomba Adapter:

                    @kusi sagte in IRobot Roomba Adapter:

                    Die Räume:

                    @igor123
                    Sieh dir hier mein Post an, da ist alles erklärt.

                    Schaue ich mir auch gleich an, Dankeschön!

                    @skb sagte in IRobot Roomba Adapter:

                    Also,
                    Ich habe hier ein Skript entwickelt, was genau das tut, was du zu suchen scheinst:

                    https://www.kreyenborg.koeln/irobot-steuerung-in-iobroker/

                    Gruß,
                    Stephan

                    Ah, da gibts also eh bereits was fertiges, danke dir!
                    Teste ich die nächsten tage aus

                    Gibt es eigentlich schon eine Lösung für dieses "Loading States"-Problem beim Aufrufen der Roomba-Seite?

                    Thx
                    Lg

                    G 1 Reply Last reply
                    0
                    • I igor123

                      @wendy2702 sagte in IRobot Roomba Adapter:

                      @igor123 Wie heisst denn deine Frau ?

                      Spass beiseite, ohne Sprachassistenten wirst du es nur schwer umsetzen können.

                      Also Alexa, Google Home oder Siri wirst du wohl verwenden müssen.

                      Hab auch ihren Namen gerufen, tat sich aber auch nix 😄

                      Suche etwas ohne sprachassistenten

                      @gezi70 sagte in IRobot Roomba Adapter:

                      @igor123 als du schriebst: "wie kann ich dem Roomba nun sagen, reinige das Wohnzimmer..." war ich eigentlich der Meinung du meinst wirklich eine Sprachaufforderung. :grinning:
                      Guck mal hier: https://forum.iobroker.net/post/497945
                      Weiter oben steht, wie du die Zonen herausfinden kannst.

                      Sry, falsch ausgedrückt :-)
                      War nicht per Sprache gedacht sondern direkt via iobroker
                      Schaue ich mir gleich morgen an, thx!
                      @kusi sagte in IRobot Roomba Adapter:

                      @kusi sagte in IRobot Roomba Adapter:

                      Die Räume:

                      @igor123
                      Sieh dir hier mein Post an, da ist alles erklärt.

                      Schaue ich mir auch gleich an, Dankeschön!

                      @skb sagte in IRobot Roomba Adapter:

                      Also,
                      Ich habe hier ein Skript entwickelt, was genau das tut, was du zu suchen scheinst:

                      https://www.kreyenborg.koeln/irobot-steuerung-in-iobroker/

                      Gruß,
                      Stephan

                      Ah, da gibts also eh bereits was fertiges, danke dir!
                      Teste ich die nächsten tage aus

                      Gibt es eigentlich schon eine Lösung für dieses "Loading States"-Problem beim Aufrufen der Roomba-Seite?

                      Thx
                      Lg

                      G Offline
                      G Offline
                      Gezi70
                      wrote on last edited by
                      #758

                      @igor123 sagte in IRobot Roomba Adapter:

                      Gibt es eigentlich schon eine Lösung für dieses "Loading States"-Problem beim Aufrufen der Roomba-Seite?

                      Ja, ersetze die letzten beiden Ziffern der IP des Roomba (vor dem Doppelpunkt) durch die Ziffern der IP des ioBrokers.

                      I 1 Reply Last reply
                      0
                      • G Gezi70

                        @igor123 sagte in IRobot Roomba Adapter:

                        Gibt es eigentlich schon eine Lösung für dieses "Loading States"-Problem beim Aufrufen der Roomba-Seite?

                        Ja, ersetze die letzten beiden Ziffern der IP des Roomba (vor dem Doppelpunkt) durch die Ziffern der IP des ioBrokers.

                        I Offline
                        I Offline
                        igor123
                        wrote on last edited by
                        #759

                        @gezi70 sagte in IRobot Roomba Adapter:

                        @igor123 sagte in IRobot Roomba Adapter:

                        Gibt es eigentlich schon eine Lösung für dieses "Loading States"-Problem beim Aufrufen der Roomba-Seite?

                        Ja, ersetze die letzten beiden Ziffern der IP des Roomba (vor dem Doppelpunkt) durch die Ziffern der IP des ioBrokers.

                        Ist derzeit bei mir der Fall & es kommt eben die Meldung
                        iobroker-IP:8082/roomba/index.html

                        Wenn ich die io vom irobot +den rest von oben nehmen lädt es ne Ewigkeit und es wird nix angezeigt

                        G 1 Reply Last reply
                        0
                        • I igor123

                          @gezi70 sagte in IRobot Roomba Adapter:

                          @igor123 sagte in IRobot Roomba Adapter:

                          Gibt es eigentlich schon eine Lösung für dieses "Loading States"-Problem beim Aufrufen der Roomba-Seite?

                          Ja, ersetze die letzten beiden Ziffern der IP des Roomba (vor dem Doppelpunkt) durch die Ziffern der IP des ioBrokers.

                          Ist derzeit bei mir der Fall & es kommt eben die Meldung
                          iobroker-IP:8082/roomba/index.html

                          Wenn ich die io vom irobot +den rest von oben nehmen lädt es ne Ewigkeit und es wird nix angezeigt

                          G Offline
                          G Offline
                          Gezi70
                          wrote on last edited by
                          #760

                          @igor123 bei mir sieht's so aus: Screenshot (7).png

                          Die Seite ist halt leer, weil der Adapter nicht mehr aufzeichnet. Aber sie wird noch aufgerufen...

                          I 1 Reply Last reply
                          0
                          • G Gezi70

                            @igor123 bei mir sieht's so aus: Screenshot (7).png

                            Die Seite ist halt leer, weil der Adapter nicht mehr aufzeichnet. Aber sie wird noch aufgerufen...

                            I Offline
                            I Offline
                            igor123
                            wrote on last edited by
                            #761

                            @gezi70 2F013F5D-9E48-4E73-99B5-1035AE481BF5.jpeg

                            So bei mir...

                            1 Reply Last reply
                            0
                            • G Offline
                              G Offline
                              Gezi70
                              wrote on last edited by
                              #762

                              @igor123 gehst du direkt von der Übersichtsseite rein?

                              Während dort beim Aufrufen der Seite die IP des Roomba ewig leiert, gibst du mal die beiden Ziffern (wie oben gesagt) ein. Wenn dann die Seite laden sollte, speichere sie gleich als Lesezeichen ab. Wenn sie nicht lädt, weiß ich auch nicht weiter...

                              N I 2 Replies Last reply
                              0
                              • G Gezi70

                                @igor123 gehst du direkt von der Übersichtsseite rein?

                                Während dort beim Aufrufen der Seite die IP des Roomba ewig leiert, gibst du mal die beiden Ziffern (wie oben gesagt) ein. Wenn dann die Seite laden sollte, speichere sie gleich als Lesezeichen ab. Wenn sie nicht lädt, weiß ich auch nicht weiter...

                                N Offline
                                N Offline
                                navlis
                                wrote on last edited by
                                #763

                                Guten Abend ich benötige bitte eure Hilfe
                                Wie schaffe ich es durch ein blockly Skript mir die Karte von meinem roboter schicken zu lassen.

                                Ich habe eine JavaScript gefunden welches die Karte auch schickt aber leider nicht meinen Anforderungen entsprechend und leider kenne ich mich nur mit blockly aus habt ihr eine Idee für mich ? Würde es gerne in Verbindung mit anderen Abhängigkeiten steuern wann ich das Bild bekomme usw

                                Beste Grüße silvan

                                K 1 Reply Last reply
                                0
                                • N navlis

                                  Guten Abend ich benötige bitte eure Hilfe
                                  Wie schaffe ich es durch ein blockly Skript mir die Karte von meinem roboter schicken zu lassen.

                                  Ich habe eine JavaScript gefunden welches die Karte auch schickt aber leider nicht meinen Anforderungen entsprechend und leider kenne ich mich nur mit blockly aus habt ihr eine Idee für mich ? Würde es gerne in Verbindung mit anderen Abhängigkeiten steuern wann ich das Bild bekomme usw

                                  Beste Grüße silvan

                                  K Offline
                                  K Offline
                                  Kusi
                                  wrote on last edited by
                                  #764

                                  @navlis sagte in IRobot Roomba Adapter:

                                  in Verbindung mit anderen Abhängigkeiten steuern

                                  Sag uns mal was du genau möchtest und stell das Javascript hier hinein. Dann schauen wir was machbar ist.

                                  N 1 Reply Last reply
                                  0
                                  • K Kusi

                                    @navlis sagte in IRobot Roomba Adapter:

                                    in Verbindung mit anderen Abhängigkeiten steuern

                                    Sag uns mal was du genau möchtest und stell das Javascript hier hinein. Dann schauen wir was machbar ist.

                                    N Offline
                                    N Offline
                                    navlis
                                    wrote on last edited by
                                    #765

                                    @kusi danke schon mal ;)

                                    Hier einmal das Skript

                                    var _fs = require('fs');

                                    /*

                                    • MISSION END: Send map

                                    */
                                    var message = "%device.name% finished at %missions.current.endedDateTime% cleaning %missions.current.sqm% sqm in %missions.current.runtime% seconds (%missions.current.error% errors).";
                                    var ns = 'roomba.0';
                                    var imagePath = '/opt/iobroker/node_modules/iobroker.roomba/img';

                                    on({id: ns + '.missions.current.ended', change: 'any'}, function(obj)
                                    {
                                    if (!obj.state || !obj.state.val) return;

                                    // replace variables with state values
                                    var pos, variable, state, value;
                                    while (message.indexOf('%') > -1)
                                    {
                                        pos = message.indexOf('%');
                                        variable = message.substring(pos, message.indexOf('%', pos+1)+1);
                                        state = getState(ns + '.' + variable.replace(/%/g, ''));
                                        
                                        if (state !== null && state.val !== null)
                                            value = state.val
                                        else
                                        {
                                            log('State ' + variable.replace(/%/g, '') + ' not found!', 'warn');
                                            value =  '';
                                        }
                                    
                                        if (typeof value === "boolean") value = value === true ? 'with' : 'no';
                                        message = message.replace(RegExp(variable, 'gi'), value);
                                    }
                                    
                                    // console
                                    log(message);
                                    
                                    // get image
                                    var img = getState(ns + '.missions.current.mapImage').val;
                                    
                                    if (img !== null && img.indexOf('data:image/png;base64,') > -1)
                                    {
                                        _fs.writeFile(imagePath + 'image.png', img.replace(/^data:image\/png;base64,/, ''), 'base64', function(err)
                                        {
                                            if (err !== null)
                                                log(err.message, 'warn');
                                            else
                                                sendTo('telegram', {text: imagePath + 'image.png', message: message});
                                        });
                                    }
                                    

                                    });

                                    Und ich würde jetzt gerne nicht diese skript nutzen sondern mein eigenes welches ich in blockly gebaut habe wo ich Infos zu dem staubsauger bekomme und so weiter darin würde ich gerne integrieren das ich ein Bild gesendet bekomme. Aber das klappt nicht und leider bekomme ich nicht raus wie ich z.b. das Skript umgebaut bekomme so das wenn ich einen datenpunkt trigger diese Skript sofort einfach das bild sendet... besser wäre halt wenn ich direkt über das blockly das Bild senden könnte.

                                    Besten danke
                                    Silvan

                                    N 1 Reply Last reply
                                    0
                                    • N navlis

                                      @kusi danke schon mal ;)

                                      Hier einmal das Skript

                                      var _fs = require('fs');

                                      /*

                                      • MISSION END: Send map

                                      */
                                      var message = "%device.name% finished at %missions.current.endedDateTime% cleaning %missions.current.sqm% sqm in %missions.current.runtime% seconds (%missions.current.error% errors).";
                                      var ns = 'roomba.0';
                                      var imagePath = '/opt/iobroker/node_modules/iobroker.roomba/img';

                                      on({id: ns + '.missions.current.ended', change: 'any'}, function(obj)
                                      {
                                      if (!obj.state || !obj.state.val) return;

                                      // replace variables with state values
                                      var pos, variable, state, value;
                                      while (message.indexOf('%') > -1)
                                      {
                                          pos = message.indexOf('%');
                                          variable = message.substring(pos, message.indexOf('%', pos+1)+1);
                                          state = getState(ns + '.' + variable.replace(/%/g, ''));
                                          
                                          if (state !== null && state.val !== null)
                                              value = state.val
                                          else
                                          {
                                              log('State ' + variable.replace(/%/g, '') + ' not found!', 'warn');
                                              value =  '';
                                          }
                                      
                                          if (typeof value === "boolean") value = value === true ? 'with' : 'no';
                                          message = message.replace(RegExp(variable, 'gi'), value);
                                      }
                                      
                                      // console
                                      log(message);
                                      
                                      // get image
                                      var img = getState(ns + '.missions.current.mapImage').val;
                                      
                                      if (img !== null && img.indexOf('data:image/png;base64,') > -1)
                                      {
                                          _fs.writeFile(imagePath + 'image.png', img.replace(/^data:image\/png;base64,/, ''), 'base64', function(err)
                                          {
                                              if (err !== null)
                                                  log(err.message, 'warn');
                                              else
                                                  sendTo('telegram', {text: imagePath + 'image.png', message: message});
                                          });
                                      }
                                      

                                      });

                                      Und ich würde jetzt gerne nicht diese skript nutzen sondern mein eigenes welches ich in blockly gebaut habe wo ich Infos zu dem staubsauger bekomme und so weiter darin würde ich gerne integrieren das ich ein Bild gesendet bekomme. Aber das klappt nicht und leider bekomme ich nicht raus wie ich z.b. das Skript umgebaut bekomme so das wenn ich einen datenpunkt trigger diese Skript sofort einfach das bild sendet... besser wäre halt wenn ich direkt über das blockly das Bild senden könnte.

                                      Besten danke
                                      Silvan

                                      N Offline
                                      N Offline
                                      navlis
                                      wrote on last edited by
                                      #766

                                      Achsoo das Skript funktioniert und schickt mir ein Bild wenn der Roboter fertig ist... aber halt erst nach einer gefühlten Ewigkeit und ja halt nicht genau dann wenn ich das will 😅

                                      1 Reply Last reply
                                      0
                                      • G Gezi70

                                        @igor123 gehst du direkt von der Übersichtsseite rein?

                                        Während dort beim Aufrufen der Seite die IP des Roomba ewig leiert, gibst du mal die beiden Ziffern (wie oben gesagt) ein. Wenn dann die Seite laden sollte, speichere sie gleich als Lesezeichen ab. Wenn sie nicht lädt, weiß ich auch nicht weiter...

                                        I Offline
                                        I Offline
                                        igor123
                                        wrote on last edited by
                                        #767

                                        @gezi70 mit dem Update funkt die seite nun auch.
                                        Problem ist jedoch, dass er weiterhin beim öffnen die IP vom Roomba nimmt und nicht automatisch die vom iobroker
                                        dementsprechend muss ich die IP immer händisch anpassen damit die richtige seite sich öffnet - aber auch das ging vorher nicht.

                                        Ich verstehe jedoch nicht ganz wie ich den roomba via iobroker in gewissen Räume schicken kann.
                                        Würde gern im VIS einzelne Button machen wie bspw. "Schlafzimmer", "Bad" u.ä. und dann beim Druck darauf den Raum anwählen (so wie es in der App passiert) und beim anschließenden Druck auf den Button "Start" ihn in den ausgewählten Räumen zu schicken.

                                        jemand ne idee wie das funken soll? habe null ahnung... :D

                                        1 Reply Last reply
                                        0
                                        • K Kusi

                                          Die Räume:
                                          Ich habe die Ordner '0_userdata.0/Roomba/Räume' erstellt, und dort für sämtliche Räume von Roomba ein Objekt mit "Raumname" mit der Art "Zeichenkette" erstellt. Dies wird später genutzt und ist dafür da, wenn sich mal die Raum-ID ändert, kannst du diese dort ganz einfach ändern und musst nicht das Blockly anpassen. Zudem kannst du in Blockly mit den Raumnamen arbeiten und nicht den ID´s.

                                          Dann erstellst du auf deiner Roomba-App auf dem Smartphone einen Zeitplan (nur einen!!!) und wählst unter "Räume anwählen" nur EINEN Raum aus. Sobald du diesen gespeichert hast, musst du ggfs. den Roomba-Adapter neu starten, damit sich der Wert 'roomba.0/device/_rawData' aktualisiert. Alternativ das Abfrageintervall des Adapters auf 10 Sekunden stellen.
                                          Dieser Wert kopierst du dir dann und fügst ihn in ein Texteditor (ich nehme Word) ein. Der Text ist über eine Seite lang, dort musst du nun nach dem Wort "cleanSchedule2" suchen. Der ganze Text davor habe ich einfach gerade gelöscht, damit es übersichtlicher wird. Ein paar Wörter (ca. 3-4 Zeilen) später findest du die "Region-ID".
                                          Kopiere nun den Text '{"region_id":"xx","type":"xxx"}' (xx steht für den Text, der bei dir angezeigt wird) und füge dies in den von dir erstellten Objektwert im Ordner '0_userdata.0/roomba/räume' des entsprechenden Raumes ein.

                                          Nachtrag: Mit folgendem Blockly kann man die Region_ID per Debug auslesen. Geht viel schneller und ist um einiges bequemer:
                                          2cf9bd8a-1cbc-4655-84af-7d90082ffdc1-image.png

                                          Nun änderst du im Zeitplan der Roomba-App den Raum, Neustart von Roomba-Adapter und kopierst wieder den Wert von 'roomba.0/device/_rawData', suchst dir wiedder die Region-ID heraus und kopierst diese in dein von dir erstellten Raum im Javascript-Ordner. Dies machst du mit all den Räumen, welche du dann von ioBroker aus starten willst. Ich habe mir alle 10 Räume so kopiert.

                                          Weitere Objekte:
                                          Erstelle zu den Räumen noch 2 weitere Datenpunkte, ich habe diese "Beginn" und "Ende" benannt.

                                          Folgende Werte muss du darin speichern:
                                          Bei Beginn: {"command":"start","ordered":1,"params":{"noAutoPasses":false,"twoPass":false},"pmap_id":"xxxxxxxxxxxxxxxxx","regions":[

                                          Bei Ende: ],"user_pmapv_id":"xxxxxxxxxxx"}

                                          Die pmap_id und user_pmapv_id musst du mit den Werten ergänzen, welche bei dir in der _rawData stehen (wo du die RaumID herauskopiert hast).

                                          Start der Reinigung:
                                          Um nun einen Raum zu Starten, musst du die Werte/Teile wie folgt zusammensetzen:
                                          "Beginn" "Raumname" "Ende", alles an einem Stück! Dies kannst du dann direkt in 'roomba.0/commands/_runCommand' schreiben und Roomba beginnt zu saugen.
                                          Wenn du mehrere Räume saugen willst, dann kannst du mehrere Räume hintereinander nehmen, z.B. so:
                                          "Beginn" "Raumname" , "Raumname" , "Raumname" "Ende"
                                          (Räume getrennt mit einem Komma, OHNE Leerzeichen!

                                          Der Roomba-Start mache ich mit Blockly.
                                          1 Raum reinigen:
                                          ce9f34ee-9209-49c2-9175-d88c8d134a88-image.png

                                          mehrere Räume reinigen:
                                          3347a1e1-5710-437d-8ca2-ac2ec60c4b31-image.png

                                          Der Sonst-Teil habe ich eingefügt, damit der Roomba seine Reinigung stoppt, wenn ich den Schalter wieder auf "Aus" stelle.
                                          189951bd-ebc3-4a12-bf03-8bcb59b47bf2-image.png

                                          Und so sieht meine vis "Roomba" aus:
                                          3caab5d4-56ef-4c48-826f-8a7e094b8508-image.png

                                          Erklärung, warum ich "Beginn" und "Ende" als Datenpunkte gespeichert habe:
                                          Zu Beginn habe ich mir die Werte darin einfach als Text in Blockly vor/nach den Raum gesetzt.
                                          Leider hat sich dann die Karte mal angepasst in der Roomba-App, dadurch hat sich die pmap_id geändert (und die Räume).
                                          Darauf musste ich bei ALLEN Einzelräumen und Gruppen diese pmap_id ändern.
                                          Wenn man jedoch diese Werte eben in einem Datenpunkt hat, dann muss man dies nur einmal im Objekt ändern, und es wird gleich überall übernommen.

                                          Folgendes habe ich bei mir noch gemacht (optional):
                                          Pause-Schalter:
                                          21b3fd96-9da9-4661-9407-1b365161eada-image.png

                                          Licht einschalten, wenn Zeit zwischen Sonnenuntergang und Sonnenaufgang (kann auch ohne Datenpunkt gelöst werden, ich brauche diesen aber noch für andere Skripts).
                                          Licht ausschalten, wenn dieses vorher für die Reinigung eingeschaltet wurde.
                                          Schalter zurücksetzen auf "Aus", sobald der Roomba seine Reinigung beendet hat.
                                          bc27164c-6c88-4a68-b78e-566315a2ac03-image.png

                                          K Offline
                                          K Offline
                                          Kusi
                                          wrote on last edited by Kusi
                                          #768

                                          @kusi sagte in IRobot Roomba Adapter:

                                          Anleitung für die Reinigung von Räumen

                                          @igor123 Hier mei Betrag mit der Anleitung..

                                          G 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          632

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          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