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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Neato Botvac Connected Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
                                  • eric2905
                                    eric2905 last edited by

                                    Moin,

                                    mein Neato Botvac Connected ist heute gekommen und lädt gerade 😄

                                    Adapter ließ sich ohne Probleme installieren und bekommt auch die Daten vom Staubsauger.

                                    Werde berichten, wie es damit klappt.

                                    Gruß,

                                    Eric

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

                                      Hi ho,

                                      der Neato gefällt mir bis dato sehr gut.

                                      Ich habe mir die Scripte in diesem Thread mal angesehen und ein wenig die angegebenen Links ausgekundschaftet … und noch einige Infos gefunden.

                                      Daraus habe ich zwei modifizierte Scripte gebaut, die einmal die Fehler auslesen, in "sinnige" Angaben übersetzen und in einem neuen Datenpunkt ablegen (quasi hier geklaut und um weitere Fehlermeldungen erweitert).

                                      Dann habe ich noch eine Liste mit Codes gefunden, die den action-Datenpunkt erklären (keine Garantie auf Richtigkeit - wie gesagt, gefunden). Daraus habe ich ein zweites Script gebaut, welches die Actions als "sinnige" Angabe in einem weiteren Datenpunkt ablegt.

                                      Hier die beiden Scripte:

                                      <u>NeatoBotvacErrors</u>

                                      ! createState('Neato.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', 'ui_alert_recovering_location' : 'Ermittle meinen Standort', 'ui_error_picked_up' : 'Wurde angehoben!', 'ui_error_stuck' : 'Ich hänge fest!', 'ui_error_dust_bin_emptied' : 'Staubbehälter wurde geleert!', 'ui_error_dust_bin_missing' : 'Staubbehälter fehlt!', 'ui_error_navigation_falling' : 'Bitte Weg freiräumen!', 'ui_error_navigation_noprogress' : 'Bitte Weg freiräumen!' }; ! on("botvac.0.flusi.status.error"/*error*/, function (obj) { log(obj.state.val); if (codesToMessage.hasOwnProperty(obj.state.val)) { log('->' + codesToMessage[obj.state.val]); setState('Neato.BotvacError', codesToMessage[obj.state.val], true); } else { setState('Neato.BotvacError', obj.state.val); } }); !

                                      <u>NeatoBotvacAction</u>

                                      ! createState('Neato.BotvacAction', 'Nichts'); ! var codesToMessage = { '0' : "Keine Aktion", '1' : "Haus-Reinigung", '2' : "Spot-Reinigung", '3' : "Manuelle Reinigung", '4' : "Docking", '5' : "User Menu aktiv", '6' : "Reinigung ausgesetzt", '7' : "Updating", '8' : "Logs kopieren", '9' : "Position ermitteln", '10' : "IEC Test", }; ! on("botvac.0.flusi.status.action"/*action*/, function (obj) { log(obj.state.val); if (codesToMessage.hasOwnProperty(obj.state.val)) { log('->' + codesToMessage[obj.state.val]); setState('Neato.BotvacAction', codesToMessage[obj.state.val], true); } else { setState('Neato.BotvacAction', obj.state.val); } }); !

                                      Vielleicht kann es ja jemand gebrauchen.

                                      Gruß,

                                      Eric

                                      stephan1827 1 Reply Last reply Reply Quote 0
                                      • P
                                        Phteven last edited by

                                        Hallo,

                                        habe auch einen VR200 und seit er ins wlan integrierbar ist den Wunsch ihn über iobroker zu steuern.

                                        Da der Adapter von Pman den VR200 noch nicht integriert, habe ich die Funktionalität auf den Vendor Vorwerk für meine Zwecke modifiziert.

                                        Hier für die, die es interessiert was man tun kann damit der Adapter für Vorwerk VR200 funktioniert:

                                        In "client.js", line 6 modifizieren zu: this._baseUrl = 'https://vorwerk-beehive-production.herokuapp.com';

                                        In "robot.js", line 5 modifizieren zu: this._baseUrl = 'https://nucleo.ksecosys.com/vendors/vorwerk/robots/';

                                        Ich habe ein cert für den VR200 in anderen Foren gefunden und habe es im Adapter in den Ordner cert mit dem Inhalt des dort existierenden ersetzt. (Das cert ist anbei)

                                        Habe dann eine Fehlermeldung über "Hostname/IP doesn't match certificate's altnames" bekommen.

                                        Diese lies sich für mich beheben indem ich, in "api.js" das rot markeirte hinzugefügt habe.

                                        var options = {

                                        method: method === 'GET' ? 'GET' : 'POST',

                                        url: url,

                                        rejectUnauthorized: false, headers: {

                                        'Accept': 'application/vnd.neato.nucleo.v1'

                                        }

                                        };

                                        Das Ganze sollte natürlich besser und direkt im Adapter gelöst werden, z.B. mit einer zusätzlichen Eingabe "Vendor". Vielleicht hat Pman ja Zeit dafür, dass für uns zu tun 🙂

                                        Trotzdem wollte ich die Info mit euch teilen und hoffe es hilft jemandem.

                                        Gruß
                                        1073_neatocloud.com.crt.7z

                                        1 Reply Last reply Reply Quote 0
                                        • H
                                          hbod last edited by

                                          Hallo allerseits,

                                          ich bin erst seit gestern ioBroker-User und habe den Botvac Adapter installiert, mir ist jedoch aufgefallen, dass man sich mit seinen Credentials einloggen muss.

                                          Es gibt mittlerweile (seit ca. 2-3 Monaten) die ofizielle SDK samt Doku und API.

                                          https://developers.neatorobotics.com/

                                          ` > Zitat vom Entwickler bei der unsachgemäßen Nutzung der Services:

                                          Let me introduce myself, I am Roberto Ostinelli, Neato Robotics' Director of Cloud Services.

                                          I'm impressed with the work that you've put into integrating with our robots! Great job!

                                          Given the interest that we've seen from developers like yourself and around the forums we've listened and have just released the Neato Developer Network. In there, amongst other things you will find official documentation and SDKs for JavaScript, iOS and Android (for now, we plan on expanding to other languages too!).

                                          This issue is for you to consider switching to proper OAuth instead of the internal logins mechanisms that you are using in this gem.

                                          It would be the official way to proceed, and you would avoid some improper implementations. For example, you should not pass token and platform here: they are not needed, raise errors on our systems - since tokens are invalid - and this could eventually result in the blocking of user accounts by our automated systems if abused. We definitely wouldn't want that!

                                          Please note that all of this is in Beta, we're a small team but are doing our best! `

                                          Es wäre also mit der Zeit notwendig, einfach einen API Schlüssel zu registrieren und den ganzen Kram über OAuth abzuwickeln.

                                          Edit: Wie ich sehe, steht im Repo https://github.com/kangguru/botvac bereits der selbe Kommentar, welchen ich bereits auf einem anderen Repo gefunden hatte. Der Entwickler ist also schon im Bilde.

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

                                            @hbod:

                                            Hallo allerseits,

                                            ich bin erst seit gestern ioBroker-User und habe den Botvac Adapter installiert, mir ist jedoch aufgefallen, dass man sich mit seinen Credentials einloggen muss.

                                            Es gibt mittlerweile (seit ca. 2-3 Monaten) die ofizielle SDK samt Doku und API.

                                            https://developers.neatorobotics.com/

                                            ` > Zitat vom Entwickler bei der unsachgemäßen Nutzung der Services:

                                            Let me introduce myself, I am Roberto Ostinelli, Neato Robotics' Director of Cloud Services.

                                            I'm impressed with the work that you've put into integrating with our robots! Great job!

                                            Given the interest that we've seen from developers like yourself and around the forums we've listened and have just released the Neato Developer Network. In there, amongst other things you will find official documentation and SDKs for JavaScript, iOS and Android (for now, we plan on expanding to other languages too!).

                                            This issue is for you to consider switching to proper OAuth instead of the internal logins mechanisms that you are using in this gem.

                                            It would be the official way to proceed, and you would avoid some improper implementations. For example, you should not pass token and platform here: they are not needed, raise errors on our systems - since tokens are invalid - and this could eventually result in the blocking of user accounts by our automated systems if abused. We definitely wouldn't want that!

                                            Please note that all of this is in Beta, we're a small team but are doing our best! `

                                            Es wäre also mit der Zeit notwendig, einfach einen API Schlüssel zu registrieren und den ganzen Kram über OAuth abzuwickeln.

                                            Edit: Wie ich sehe, steht im Repo https://github.com/kangguru/botvac bereits der selbe Kommentar, welchen ich bereits auf einem anderen Repo gefunden hatte. Der Entwickler ist also schon im Bilde. `

                                            Die API von Neato scheint gut zu sein und unterstützt auch schon die neuen Maps. Allerdings benötigt man wohl eine eigene OAuth Application die man irgendwo hosten müsste. So toll ich den Support von Neato für eine offene API finde (!!!), leider habe ich momentan keinen Botvac mehr und kann daher nicht weiterentwickeln. 😢

                                            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

                                            515
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

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