[Modul] Botvac / Vorwerk

Hi

ich habe mir ein Modul geschrieben, um meine Vorwerk 200 in Symcon einzubinden. Ich habe das Modul zwar schon Botvac genannt, da beide sich wohl ähnlich verhalten sollen. Ich konnte es aber nicht testen. Auch die Instanz BotvacControl ist aktuell mit einer URL nur für Vorwerk verdrahtet. Wenn mir jemand Zugangsdaten für einen Botvac geben würde, würde ich ggf. eine Integration ergänzen.

Das Modul ist hier zu finden:

GitHub - traxanos/SymconBotvac: Symcon modul for Botvac

Hi,

die URL sollte folgende sein Neato Robotics | Intelligent, Kraftvoll, Connected Roboter-Staubsauger

Unter GitHub - tomrosenback/botvac: PHP library for Neato Botvac findest du auch nochmal eine Anleitung für den Botvac.
Ich habe es bislang nicht zum Laufen bekommen. Habe die beiden URLs in deinem Modul ausgetauscht und erhalte immer Instanz ist fehlerhaft bei IPS. Zudem Fehler 201 und 401 im Event Log von IPS.

Gibt es hier schon was Neues? Habe einen Neato D3 und würde ihn gerne einbinden.

Wenn mir jemand seine Zugangsdaten (mit einem temporären Passwort) für Tests zu Verfügung stellen würde, könnte ich bei Gelegenheit versuchen die Integration vorzunehmen nehmen.

Hallo traxanos, ich hätte sehr großes Interesse an ein einer Anbindung der Neato Roboter. Habe einen D3 und einen Connect im Einsatz. Meine beiden VR200 habe ich soeben eingebunden und scheinen zu funktionieren. Bastel jetzt noch eine Bedieneroberfläche und werde die Woche mal testen. Für deine Arbeit schon mal großes Lob und vielen Dank. Hatte gar nicht regestriert das die Sauger bereits erfolgreich eingebunden wurden.
Wenn dein Angebot mit der Neato Umsetzung noch steht? Ich habe noch einen D5 der nach dem der die Treppe übersehen hat nicht mehr richtig geradeaus Fahren kann. Allerdings noch prima Komandos empfängt und verarbeitet. Ich würde einen extra account einrichten und den D5 in den Keller stellen, dann könntest du die Einbindung in aller Ruhe mal versuchen. Solltest du später für ausgibige tests noch einen der Anderern „voll funktionierernden“ benötigen kann ich Diese ja auf den account einrichten.

Hallo,

bei mir funktioniert die BVC_SendToBase Funktion nicht.

Hab mich auch schon im Code versucht, bin aber noch nicht weit gekommen.

Kann das jemand bestätigen oder hat sogar ne Lösung?

Die Funktion BVC_SendToBase ist nur unter ganz bestimmten umständen überhaupt verfügbar. Ich nutze sie daher selber garnicht mehr (für mich unbrauchbar). Ich kann nur sagen die Commands werden nur durchgereicht, was der Server damit macht ist außerhalb meines Scope.

Hallo,

ich fände die Funktion schon praktisch, aktuell geschieht damit nichts. Der Roboter macht unverändert sein Programm weiter. Ich denke mal dass sich evtl. am Funktionsaufruf nur ne Kleinigkeit geändert hat, denn von der Handy-App gehts ja.

Ich hab mich schon eingelesen, dass es da wohl ein „haveBaseSeen“ Flag gibt das erst gesetzt sein muss.
Aber wie gesagt, von der Handy App und vor allem wenn der Roboter von der Base aus startet gehts ja auch immer, die schickt auch nichts anderes an den Server.

Wie kann ich mich denn da in die Entwicklung einklinken bzw. Infos zur API etc bekommen?

APIs habe ich keine. Wenn du den Fehler findest, kannst du gerne einen Pullrequest stellen, dann übernehme ich die Fehlerkorrektur.

Hab den Fehler gefunden. Wie du schon sagst, ist die Funktion überhaupt erst unter gewissen Umständen verfügbar.
Das ist auch in der App so.

Man kann den Roboter erst zum Ausgangspunkt zurückschicken, wenn er auf PAUSE steht!

Setze ich ihn über Symcon auf Pause und schicke ihn dann zurück klappts.

Hab mir kurz Gedanken gemacht, wie ich das schöner löse.

Zur Steuerung des Vorwerks habe ich eine Integer Variable mit 5 Buttons bzw. Zustände, dahinter ein Aktionsskript:


switch ($_IPS['VALUE']) {
	case 0:
		BVC_Pause(VORWERKID /*[Hardware\Vorwerk VR200\Vorwerk]*/);
		IPS_Sleep(1000);
		BVC_SendToBase(VORWERKID /*[Hardware\Vorwerk VR200\Vorwerk]*/);
		break;
	case 1:
		BVC_Stop(VORWERKID /*[Hardware\Vorwerk VR200\Vorwerk]*/);
		break;
	case 2: 
		BVC_Pause(VORWERKID /*[Hardware\Vorwerk VR200\Vorwerk]*/);
		break;
	case 3:
		BVC_Resume(VORWERKID /*[Hardware\Vorwerk VR200\Vorwerk]*/);
		break;
	case 4:
		BVC_Start(VORWERKID /*[Hardware\Vorwerk VR200\Vorwerk]*/, false);
		break;
}

Wenn Button 0 = „zum Laden“ geklickt wurde, wird nun zuerst der Vorwerk in die Pause versetzt, kurz gewartet und anschließend zur Station geschickt.

Guter Hinweis, ggf. kann man das als Bulk bauen. Aber jetzt im Sommer bin ehrlich, da programmieren ich nicht soviel :smiley:

Funktioniert das Modul mit einem Neato Botvac D7?

Die API ist zwar fast identisch aber , aber das wird nicht ohne Anpassungen gehen.

Das hab ich mir schon gedacht. Wo finde ich Informationen darüber was ich anpassen muss?

Gesendet von iPhone mit Tapatalk

Hallo zusammen,
teste gerade mit dem Neato D3 , dabei kommt beim Reinigen „IEC-Test“.

Bei der Abfrage kommt das zurück: [action]=>11

das gibt es in der Konfiguration nicht.


    if (!IPS_VariableProfileExists('Botvac.Action')) {
            IPS_CreateVariableProfile('Botvac.Action', 1);
            IPS_SetVariableProfileAssociation('Botvac.Action', 0, 'Inaktiv', 'Sleep', -1);
            IPS_SetVariableProfileAssociation('Botvac.Action', 1, 'Reinigung: Haus', 'Motion', -1);
            IPS_SetVariableProfileAssociation('Botvac.Action', 2, 'Reinigung: Spot', 'Motion', -1);
            IPS_SetVariableProfileAssociation('Botvac.Action', 3, 'Reinigung: Manuell', 'Motion', -1);
            IPS_SetVariableProfileAssociation('Botvac.Action', 4, 'Docking', 'Plug', -1);
            IPS_SetVariableProfileAssociation('Botvac.Action', 5, 'Menü in Verwendung', 'Information', -1);
            IPS_SetVariableProfileAssociation('Botvac.Action', 6, 'Reinigung: Pausiert', 'Hourglass', -1);
            IPS_SetVariableProfileAssociation('Botvac.Action', 7, 'Updating', 'Information', -1);
            IPS_SetVariableProfileAssociation('Botvac.Action', 8, 'Kopiere Logs', 'Information', -1);
            IPS_SetVariableProfileAssociation('Botvac.Action', 9, 'Positionserkennung', 'Information', -1);
            IPS_SetVariableProfileAssociation('Botvac.Action', 10, 'IEC Test', 'Information', -1);
        }

sollte man dann 11 hinzufügen?


 IPS_SetVariableProfileAssociation('Botvac.Action', 11, 'Reinigung: Haus', 'Motion', -1);

Gruß
Thomas

Hallo,

konntest du den D3 mittlerweile einbinden?

Grüße

Dominik

Hallo Zusammen,
nach dem ich eine weile versucht habe bei der Steuerung des Moduls durchzusteigen,
habe ich das Problem mit meinem D3 jetzt anderweitig gelöst.

Zum Erklärung und bisherigen Status:
Das Modul funktioniert mit meinen VR200 einwandfrei.
Beim D3 funktioniert das Auslesen des aktuellen Status aber das Senden von Befehlen leider nicht.

Ich bin jetzt den Umweg über IFTTT gegangen.

Eine sehr ausführliche Anleitung ist über den Modul Store zu beziehen. Einfach dieser folgen.
a Vorbereitungen in IFTT

  • Auf IFTTT.com anmelden und den Service Webhooks für IP-Symcon einrichten.
    b. Laden des Moduls aus dem IPS Store
    c. Einrichtung in IP-Symcon
  • Eine IFTTT Instanz erstellen und z.b. Neatostart benennen (Startbefehl an den Neato)
  • In der Instanz wählt Ihr bei Kommunikation die Auswahl „Senden“
  • tragt euren persönlichen Masterkey des Webhook Service ein (aus Anleitung Teil a)
  • als Eventname nehmen wir zb. wieder Neatostart
  • Die anzahl der Variablen lassen wir bei 0, der Rest ist auch uninteressant
    d. Konfiguration des Webhook Applets in IFTTT
  • Achtung der Butten „New Applet“ sucht Ihr vergebens (veraltet), ihr müsst oben rechts auf account klicken und dann „Create“ nehmen.
  • als Event Name nehmen wir wieder Neatostart (so wie wir das in der IPS Instanz eingetragen haben)
  • als Action nehmen wir natürlich jetzt nicht gmail sondern „Neato“
    Ab hier können wir die Anleitung auch schließen, der Rest braucht Ihr nur wenn Ihr auch einen Rückmeldung einrichten wollt.
  • Meldet euch mit euren Neato Zugangsdaten an und registriert IFTTT als app.
  • jetzt müsst Ihr nur den einsprechenden Befehl in unserem Fall natürlich Start.

Fertig.
Der Befehl zum Ausführen ist:
IFTTT_TriggerEvent(#####);

Anschließend Teil c+d für jeden Befehl (Start,Pause,Resume,Dock) wiederholen.

Jetzt kann ich über IFTTT Befehle senden und den Status über das BOTVAC Modul auslesen.

Sicher lässt sich der Status auch über die IFTTT Schnittstelle auslesen, allerdings, warum zusätzliche Arbeit.

Bin mit der Lösung jetzt zufrieden, da ich den D3 genauso wie meine 3 Vorwerk Staubsauger bei Abwesenheit automatisch laufen können.

Vielleicht bringt dem einen oder anderen diese Anleitung weiter.

Schöne Grüße
André

super Sache. Funktioniert über IFTTT :slight_smile: Danke für deine Mühe

Morgen,

haben uns einen VR300 gegönnt, es funktioniert alles wie beim VR200.

Was jetzt noch schön wäre, dass ich die Zonen auslese und gezielt in eine solche schicken kann.

LG