NEWS
Neato Botvac Connected Adapter
-
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
-
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.
-
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.
-
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.
-
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 `
Ja wir liebäugeln gerade auch mit dem VR200. Er scheint mechanisch typisch gut für Vorwerk aufgebaut zu sein. Alle Verschleißteile sind austauschbar. In wie weit ist der den schon mit iobroker ansteuerbar? Oder muss ich den Adapter noch selbst abändern? Bedarf besteht ja wohl? Leider hab ich den VR200 aber noch nicht, kann also den Adapter noch nicht anpassen.Kann es eigentlich sein, dass Vorwerk den einfach zukauft? Der Neato 945 D85 sieht doch sehr stark wie der VR200 aus?
Gruß Eisbaeeer
-
Vorwerk kauft bei Neato ein, aber verändert / verbessert noch einiges, also kein einfaches umlabeln. Der VR200 wird bisher nicht unterstützt und da ich im moment weder Neato noch Vorkwerk besitze wäre es super wenn sich jemand findet, der weiterentwickelt.
-
Vorwerk kauft bei Neato ein, aber verändert / verbessert noch einiges, also kein einfaches umlabeln. Der VR200 wird bisher nicht unterstützt und da ich im moment weder Neato noch Vorkwerk besitze wäre es super wenn sich jemand findet, der weiterentwickelt. `
Derzeit gleicher Status, sonst würde ich das gerne weiterentwickelnWir brauchen erstmal einen neuen Kühlschrank (Liebherr mit WLAN), dann kommt der Saugroboter.
Gruß Eisbaeeer
-
Sooo, meine bessere Hälfte hat eben einen gekauft. Mal sehen wann ich dazukomme.
-
da ich im moment weder Neato noch Vorkwerk besitze wäre es super wenn sich jemand findet, der weiterentwickelt. `
Verstehe ich nicht ganz. Du hast doch den Adapter für den Neatmo geschrieben? Inzwischen wieder verkauft?
Ich werde mir die nächsten Tage mal den Adapter anschauen. Der VR200 scheint identisch aufgebaut zu sein. App, Zertifikat. Ist mal eine neue Herausforderung. Ich bastle ja gerne.
Gibt es noch Mitstreiter?
Grüße Eisbaeeer
-
> Gibt es noch Mitstreiter?
Jo, hab auch einen Neato Botvac Connected
-
Verstehe ich nicht ganz. Du hast doch den Adapter für den Neatmo geschrieben? Inzwischen wieder verkauft? `
Hatte leider einen mechanischen Defekt. Da das auch durch ein ausgetauschtes Teil nicht besser wurde, habe ich ihn zurückgegeben. Ich hatte am Ende den Verdacht, dass die Bürstenaufhängung "geeiert" hat, wodurch sich die Bürsten mit der Zeit festgefressen haben. Ich suche aber weiterhin nach einem Gerät und evtl. wird es auch wieder ein Neato. Dass es nun eine offizielle API gibt freut mich auf jeden Fall und das will ich gerne unterstützen, auch wenn es mir etwas kompliziert scheint, diese zu nutzen, da man dazu einen eigenen HTTPS-Server im Internet benötigt.
Mehr dazu hier:
-
> Gibt es noch Mitstreiter?
Jo, hab auch einen Neato Botvac Connected `
Ich meinte eigentlich für den VR200.Funktioniert der Adapter von pman nicht für den Neato?
-
Verstehe ich nicht ganz. Du hast doch den Adapter für den Neatmo geschrieben? Inzwischen wieder verkauft? `
Hatte leider einen mechanischen Defekt. Da das auch durch ein ausgetauschtes Teil nicht besser wurde, habe ich ihn zurückgegeben. Ich hatte am Ende den Verdacht, dass die Bürstenaufhängung "geeiert" hat, wodurch sich die Bürsten mit der Zeit festgefressen haben. Ich suche aber weiterhin nach einem Gerät und evtl. wird es auch wieder ein Neato. Dass es nun eine offizielle API gibt freut mich auf jeden Fall und das will ich gerne unterstützen, auch wenn es mir etwas kompliziert scheint, diese zu nutzen, da man dazu einen eigenen HTTPS-Server im Internet benötigt.
Mehr dazu hier:
https://github.com/tomrosenback/botvac/issues/5 `
Ok, der Server wäre jetzt mal nicht so das Problem. Bluefox musste ja für Alexa auch einen bauen [emoji6] .Aber so richtig schlau werde ich aus den Bemerkungen von dem Entwickler nicht. Und er spricht immer nur von Neato Geräten. Gilt die API auch für den VR200?
Gruß
-
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ß `
Ja das hatte ich doch total überlesen. Ich habe es jetzt noch nicht getestet, aber wenn deine Änderungen funktionieren, würde ich den Adapter auf Vorwerk anpassen. Ich hatte auch offiziell bei Neato angefragt, ob die neue OAuth API auch für den Vorwerk offen ist, bekomme aber keine Antwort.
Gruß Eisbaeeer
-
So Leute. Gute Nachrichten!
Bei mir läuft das angepasste Neato modul von pman. Danke auch an Phteven! Ich werde das hier noch eine Weile testen, ob alles gut läuft und dann mit Erlaubnis von pman seinen Adapter als Basis nehmen und einen Vorwerk Adapter bauen. Ich hab euch mal einen screenshot von meiner VIS-Oberfläche gemacht:
Grüße Eisbaeeer
-
Ich würde die Unterstützung für Vorwerk lieber direkt in den selben Adapter integrieren, als einen Fork zu starten. Sonst müssten zukünftige Änderungen jeweils in beiden Adaptern implementiert werden.
-
Ich würde die Unterstützung für Vorwerk lieber direkt in den selben Adapter integrieren, als einen Fork zu starten. Sonst müssten zukünftige Änderungen jeweils in beiden Adaptern implementiert werden. `
Ja das ist richtig. Ich würde dir dann einen pull-request schicken. Wobei ich nicht glaube, dass Vorwerk da noch viel macht, ausser die haben einen Vertrag mit Neato gemacht. Ich schau jetzt erstmal, was an Funktionen unterstützt werden. Die Änderung der Spot Größe geht schon mal nicht.Gruß Eisbaeeer
-
Okay, man sollte dann evtl. in der Readme darauf hinweise, welche Funktionen mit welchem Bot gehen. Mit den D3 und D5 von Neato habe ich noch keine Erfahrung, haben die nicht auch WLAN?
-
Ich habe gesehen, dass du die command statis schön zurücksetzt, wenn ein pull update oder ein command gesetzt wurde. Ich dachte erst, du hast das vergessen, habe aber dann bemerkt, dass ich entweder das falsche widget in VIS nutze, oder (was warscheinlicher ist) das Widget noch ein Bug hat.
Auf jeden Fall hast du da viel Zeit investiert. Da frage ich mich, warum du dir nicht wieder einen Neato gekauft hast?
Was will ich in VIS erreichen?
- Mit nur einem Button (jqui - ctrl - Icon state - Val icon bool) wollte ich prüfen, ob die Funktion möglich ist und anhand derer das Icon, wenn es nicht möglich ist, "weiß", wenn es möglich ist, "grün" darstellen. Leider scheint da noch ein Bug drin zu sein. Der state wird im Icon nicht immer aktualisiert. Soll aber erstmal nicht ein show stopper sein. Aber eventuell hat jemand eine Idee? Ich möchte das ganze ungern verkomplizieren und mit java-script noch extra was bauen müssen. Ich bin ein Fan von easy using.
Mir ist noch aufgefallen, dass sämtliche Rückmeldungen direkt aus der Firmware dargestellt werden. Ich habe vergeblich nach den Rückmeldungen gesucht, aber leider bisher nichts gefunden. Ich habe jetzt mal per reverse engeneering ein paar Meldungen provozieren können. Ist das 1:1 die Meldung ,die hardcodiert im Neato vorhanden sind? Ich hab hier mal eine Liste meiner Meldungen und die Übersetzungen aus dem Display aufgelistet:
ui_alert_invalid (Keine Meldung im Display) ui_alert_dust_bin_full (Staubbehälter / Filter prüfen. Bitte leeren falls nötig. Bitte Sensoren säubern) ui_error_dust_bin_missing (Bitte Staubbehälter einsetzen) ui_error_bumper_stuck (Bumper klemmt, bitte prüfen) ui_error_navigation_nomotioncommands (Bitte den Weg freiräumen. Details bitte am Roboter ablesen) ui_alert_busy_charging (Akku vor der nächsten Reinigung laden) ui_error_picked_up (Gerät auf den Boden setzen)
Dann gibt es noch 2 Datenpunkte: action und state. Kannst du dazu mehr sagen?
Meine Liste bisher:
state: 4 = Meldung vorhanden bzw. Aktion nötig 2 = Ich reinige 1 = Ich bin Bereit action: 6 = 0 = Ruhe 3 = Pause
Bezüglich des Readme würde ich noch einiges mehr mit reinnehmen. Wir alle hier sind ja schon richtige NERD´s und kennen uns mit iobroker aus. Die meisten sind von ccu.io mit gewachsen. Für einen Neueinsteiger ist das alles schon harter Tobak.
Ich bin mir noch nicht sicher, ob man den Adapter umbenennen sollte. Ich würde nie und nimmer unter Neato einen Vorwerk VR200 vermuten. Ich weiß aber noch nicht, wie man den Adapter nennen könnte. Das war bisher der Grund, warum ich einen neuen Adapter bauen würde.
Ich hab auch gesehen, dass in den node-modules ein Oauth modul mit drin ist. Wie läuft das im Moment? Ich hab noch nicht die Zeit gehabt, mir die ganze Tiefe des Adapters anzuschauen. Weißt du da mehr?
Viele Fragen die noch offen sind. Ich glaube aber schon, dass da noch mehr Leute sind, die die beiden Geräte mit dem Adapter nutzen möchten. Wäre cool, wenn wir da unsere Erfahrungen teilen könnten.
Gruß Eisbaeeer
-
Okay, man sollte dann evtl. in der Readme darauf hinweise, welche Funktionen mit welchem Bot gehen. Mit den D3 und D5 von Neato habe ich noch keine Erfahrung, haben die nicht auch WLAN? `
Da kann ich leider auch nichts dazu beitragen. Hat jemand anders noch die Modelle D3 und D5?
Ich hab jetzt noch die einstellbare "Spot Fläche" getestet und die Funktion der 2x Spot Reinigung (Wiederholung). Beides funktioniert auch mit dem VR200. Einzig die "eco" Funktion hab ich noch nicht zum laufen gebracht.
Ich bin noch am überlegen, wie ich die Meldetexte unterbringe bzw. diese in den Adapter-Einstellungen den Benutzer selbst definieren lassen kann. Ich stelle mir da eine Tabelle vor, in der man die Texte dann selbst eintragen kann. Dann wäre das ultra flexibel. Etwa so:
Gruß Eisbaeeer