Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Neato Botvac Connected Adapter

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Neato Botvac Connected Adapter

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

      Habe seit kurzem einen Neato Botvac Connected:

      https://neatorobotics.com/de/robot-vacu … connected/

      Wieder so ein Gerät mit eigener APP zur Steuerung, jedoch ohne öffentlich zugängliche API. Zum Glück hat kangguru schon super Vorarbeit geleistet: https://github.com/kangguru/botvac

      Darauf basierend habe ich ein Node-Module und einen passenden Adapter erstellt:

      https://github.com/Pmant/ioBroker.botvac

      Falls jemand so ein Gerät besitzt kann gerne getestet werden.

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

        @Pman:

        Habe seit kurzem einen Neato Botvac Connected:

        https://neatorobotics.com/de/robot-vacu … connected/

        Wieder so ein Gerät mit eigener APP zur Steuerung, jedoch ohne öffentlich zugängliche API. Zum Glück hat kangguru schon super Vorarbeit geleistet: https://github.com/kangguru/botvac

        Darauf basierend habe ich ein Node-Module und einen passenden Adapter erstellt:

        https://github.com/Pmant/ioBroker.botvac

        Falls jemand so ein Gerät besitzt kann gerne getestet werden. `
        Pman, wenn Adapter von dir commt, dann kann ich gleich den ins Repo nehmen, oder? 😄

        1 Reply Last reply Reply Quote 0
        • P
          Pman last edited by

          Er funktioniert bei mir schon, ich mache aber noch keine Dokumentation falls ich noch was ändere. Es gibt aber nur wenige Funktionen, die sind eigentlich selbsterklärend :lol:

          1 Reply Last reply Reply Quote 0
          • E
            esche last edited by

            Hallo Pman,

            vielen Dank für diesen Adapter. Installation und Einrichtung haben ohne Probleme bei mir funktioniert.

            Leider ist für mich die Handhabung nicht ganz selbsterklärend. Vielleicht könntest du mir hierbei weiterhelfen?

            Wenn ich den Zustand von "botvac.0.<name>.commands.clean" auf "true" stelle, beginnt der Botvac wie erwartet mit der Reinigung.

            Welche Befehle bzw. Zustände müsste ich jetzt ändern, wenn ich den Reinigungsvorgang abbrechen und dien Roboter wieder zurück zur Ladestation schicken möchte?

            Müssen hierbei mehrere Zustände nacheinander verändert werden?

            Danke und Gruß

            Esche</name>

            1 Reply Last reply Reply Quote 0
            • P
              Pman last edited by

              @esche:

              Wenn ich den Zustand von "botvac.0.<name>.commands.clean" auf "true" stelle, beginnt der Botvac wie erwartet mit der Reinigung.

              Welche Befehle bzw. Zustände müsste ich jetzt ändern, wenn ich den Reinigungsvorgang abbrechen und dien Roboter wieder zurück zur Ladestation schicken möchte?</name> `

              Ob man direkt aus Reinigungsmodus zurück zur Base fahren kann weiß ich grade garnicht so genau (status.canGoToBase). Auf jeden Fall müsste ein commands.pause oder commands.stop, gefolgt von commands.gotoBase funktionieren. Welche Commands aktuell möglich sind kannst du jeweils unter status (canPause, canStop, canGoToBase usw.) sehen, andere Commands nimmer er nicht an. Diese Logik habe ich nicht erfunden, die ist fest im Botvac verankert und kann nicht umgangen werden. Grundvorraussetzung für ein goToBase ist, dass dockHasBeenSeen auf true steht. Der Botvac muss immer erst etwas im Raum rumfahren bevor die Base wieder "sieht", danach merkt er sich die Position der Base für diesen Reinigungsvorgang.

              Bugs in meiner Implementierung sind natürlich auch möglich, falls also etwas nicht funktioniert einfach nochmal die Situation genau schildern und dann versuche ich das bei mir nachzustellen.

              1 Reply Last reply Reply Quote 0
              • J
                jack77 last edited by

                Ich habe eine Frage zum Datenpunkt Error.

                Hier werden Werte wie ui_alert_invalid und ui_error_dust_bin_full ausgespuckt. Den für Bürste reinigen kenne ich gerade nicht.

                Kann man mit einem Widget (welches?) oder in javascript (wie sollte da aussehen?) daraus z.B. Kein Fehler bzw. Filter und Staubbehälter reinigen ausgeben lassen?

                1 Reply Last reply Reply Quote 0
                • P
                  Pman last edited by

                  @jack77:

                  Ich habe eine Frage zum Datenpunkt Error.

                  Hier werden Werte wie ui_alert_invalid und ui_error_dust_bin_full ausgespuckt. Den für Bürste reinigen kenne ich gerade nicht.

                  Kann man mit einem Widget (welches?) oder in javascript (wie sollte da aussehen?) daraus z.B. Kein Fehler bzw. Filter und Staubbehälter reinigen ausgeben lassen? `
                  Das sind die Codes, wie sie von der Botvac API ausgegeben werden. Ich weiß nicht welche Fehlercodes es alle gibt und unter welchen Umständen diese auftreten können, daher ist es im Moment noch nicht sinnvoll einen entsprechenden Datenpunkt zu machen.

                  Du kannst dir ein einfaches Script machen:

                  createState('BotvacError', 'kein Fehler');
                  
                  var codesToMessage = {
                    'ui_alert_invalid': 'kein Fehler',
                    'ui_error_dust_bin_full': 'Staubbehälter voll',
                  };
                  
                  on('botvac.0.Rick.status.error', function (obj) {
                    if (codesToMessage.hasOwnProperty(obj.state.val)) {
                      setState('BotvacError', codesToMessage[obj.state.val], true);
                    }  else {
                      setState('BotvacError', obj.state.val);
                    }
                  });
                  
                  

                  Vorsicht: nicht getestet!

                  1 Reply Last reply Reply Quote 0
                  • J
                    jack77 last edited by

                    Geht nicht. Ich war mir sicher, dass Dein Script funktioniert. Muss ich das Script dem Widget zuweisen, eigentlich nicht, oder? Habe die ID im Script mit mener Ersetzt.

                    1 Reply Last reply Reply Quote 0
                    • P
                      Pman last edited by

                      Du erstellst das Skript unter "Skripte" im Adminadapter? Den Datenpunkte findest du dann unter "javascript.0.BotvacError".

                      1 Reply Last reply Reply Quote 0
                      • J
                        jack77 last edited by

                        Hab ich gemacht.

                        Mein Script:

                        createState('BotvacError', 'Kein Fehler');
                        
                        var codesToMessage = {
                          'ui_alert_invalid': 'Alles in Ordnung',
                          'ui_error_dust_bin_full': 'Staubbehälter voll',
                        };
                        
                        on('botvac.0.Sam.status.error', function (obj) {
                          if (codesToMessage.hasOwnProperty(obj.state.val)) {
                            setState('BotvacError', codesToMessage[obj.state.val], true);
                          }  else {
                            setState('BotvacError', obj.state.val);
                          }
                        });
                        

                        Nur zeigt mir das Script immer "ui_error_brush_stuck" an obwohl der error status "ui_alert_invalid" ist. (siehe Foto)

                        1220_2016-08-30_10_00_33-iobroker.admin.png

                        1 Reply Last reply Reply Quote 0
                        • P
                          Pman last edited by

                          Vielleicht ist das Skript nicht an? Oder es war beim letzten update des Fehlercodes nicht an? Log mal ein wenig mit:

                          createState('BotvacError', 'Kein Fehler');
                          
                          var codesToMessage = {
                            'ui_alert_invalid': 'Alles in Ordnung',
                            'ui_error_dust_bin_full': 'Staubbehälter voll',
                          };
                          
                          on('botvac.0.Sam.status.error', function (obj) {
                            log(obj.state.val);
                            if (codesToMessage.hasOwnProperty(obj.state.val)) {
                              log('->' + codesToMessage[obj.state.val]); 
                              setState('BotvacError', codesToMessage[obj.state.val], true);
                            }  else {
                              setState('BotvacError', obj.state.val);
                            }
                          });
                          
                          1 Reply Last reply Reply Quote 0
                          • J
                            jack77 last edited by

                            Hab das Log eingetragen. Wo sehe ich das Log, im Admin unter Log Tab?

                            Ich hätte erwartet, dass durch das Script in botvac.0.Sam.status.error und javascript.0.BotvacError das selbe steht.

                            createState('BotvacError', 'Kein Fehler');
                            
                            var codesToMessage = {
                              'ui_alert_invalid': 'Alles in Ordnung',
                              'ui_error_dust_bin_full': 'Staubbehälter voll',
                              'ui_error_brush_stuck': 'Bürste verklemmt',
                            };
                            
                            on('botvac.0.Sam.status.error', function (obj) {
                                log(obj.state.val);
                              if (codesToMessage.hasOwnProperty(obj.state.val)) {
                                  log('->' + codesToMessage[obj.state.val]); 
                                setState('BotvacError', codesToMessage[obj.state.val], true);
                              }  else {
                                setState('BotvacError', obj.state.val);
                              }
                            });
                            
                            1 Reply Last reply Reply Quote 0
                            • P
                              Pman last edited by

                              Ja unter Log im Admin Tab oder direkt im Skripttab.

                              Das Skript reagiert aber nur auf Änderung des Error States, du kannst das testen, indem du einfach manuell etwas in botvac.0.Sam.status.error einträgst.

                              1 Reply Last reply Reply Quote 0
                              • J
                                jack77 last edited by

                                @Pman:

                                indem du einfach manuell etwas in botvac.0.Sam.status.error einträgst. `
                                …das war ein guter Tip. Scheint zu funktionieren:

                                Log:

                                javascript-0	2016-08-30 13:19:56.645	info	script.js.Test.Neato: ->Alles in Ordnung
                                javascript-0	2016-08-30 13:19:56.643	info	script.js.Test.Neato: ui_alert_invalid
                                javascript-0	2016-08-30 13:19:31.034	info	script.js.Test.Neato: ->Bürste verklemmt
                                javascript-0	2016-08-30 13:19:31.032	info	script.js.Test.Neato: ui_error_brush_stuck
                                botvac-0	2016-08-30 13:19:31.030	warn	state change in unknown channel: status
                                javascript-0	2016-08-30 13:19:25.627	info	script.js.Test.Neato: ->Alles in Ordnung
                                javascript-0	2016-08-30 13:19:25.625	info	script.js.Test.Neato: ui_alert_invalid
                                javascript-0	2016-08-30 13:19:22.982	info	script.js.Test.Neato: ->Staubbehälter voll
                                javascript-0	2016-08-30 13:19:22.981	info	script.js.Test.Neato: ui_error_dust_bin_full
                                

                                was hat "botvac-0 2016-08-30 13:19:31.030 warn state change in unknown channel: status" zu bedeuten?

                                1 Reply Last reply Reply Quote 0
                                • P
                                  Pman last edited by

                                  Das ist die Standardausgabe für nicht unterstützte Stateänderungen, eigentlich sind die Status-States read-only.

                                  Check mal dein pollInterval in den Adaptersettings, das habe ich von Millisekunden auf Sekunden geändert, vielleicht steht bei dir noch 60000 drin?

                                  1 Reply Last reply Reply Quote 0
                                  • J
                                    jack77 last edited by

                                    1220_2016-08-30_13_48_29-iobroker.admin.png

                                    das sind aber 30000ms, wenn ich nämlich was in error manuell rein schreibe, ändert sich der Wert nach 30 Sekunden zurück.

                                    Ich lass das mal so. Im Roboter Forum hat einer geschrieben, dass er in OpenHAB das Intervall runter gesetzt hat und vom Neato Server gesperrt wurde.

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      Pman last edited by

                                      Dann hast du noch nicht die aktuelle Version, da wird in Sekunden gemessen :lol:

                                      Außerdem wurden die Anfragen an die Api reduziert.

                                      1 Reply Last reply Reply Quote 0
                                      • J
                                        jack77 last edited by

                                        Bin jetzt auf 0.5.0.

                                        da steht immer noch Poll Interval (ms) 30000

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          Schatn last edited by

                                          Hallo! Bei mir werden im ioBroker.admin die Werte alle korrekt angezeigt aber im VIS wird nur "null" oder "false" angezeigt. Habe den Adapter schon deinstalliert und neu installiert, iobroker neu gestartet, aber leider hat sich dadurch nichts geändert. Woran könnte das liegen? Danke

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            Matzes last edited by

                                            Hallo Pman,

                                            wäre klasse wenn du den Adapter um den Vorwerk VR200 erweitern könntest.

                                            Für FHEM wurde dies schon vorgenommen. Als Basis hat ebenfalls die Arbeit vn Kangguru gedient.

                                            https://raw.githubusercontent.com/vuffi … _BOTVAC.pm

                                            Gruß,

                                            Matze

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

                                            Support us

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

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            39
                                            152
                                            31707
                                            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