Autor Thema: Steuerung ROOMBA - Trägerplatine für DC/DC, ESP8266-01 [HW fertig, Modul nicht]  (Gelesen 10048 mal)

Offline irgendsowas

  • New Member
  • *
  • Beiträge: 19
Hallo!

habe mir vor ein paar Wochen einen Roomba 621 besorgt. Das ist ein günstiges Modell ohne Zeitplan-Funktion.
Ich wollte immer einen haben, gereizt hat mich der Automatismus dahinter.
Leider waren mir bisher ~500€ zu teuer. Der Roomba 621 ist ein "günstiges" Gerät um die ~300€.

Leider hat er keinen Zeitplan-Modus. Also doch nix mit automatisch und ohne manuellen Eingriff, Mist!

Trotzdem habe ich mir dieses Gerät gekauft, in der Hoffnung es irgendwie mit der bestehenden FHEM-Installation zu automatisieren.

ES GEHT.

1.)
mögliches Interface finden:
https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwi8zdyI3pzLAhUGbRQKHTh3CiUQFggqMAA&url=https%3A%2F%2Fwww.adafruit.com%2Fdatasheets%2Fcreate_2_Open_Interface_Spec.pdf&usg=AFQjCNGmU4mTD2x2aRx7dAakO9c4NT7vDQ

2.)
Interface-Hardware erstellen:
Ohne das Gerät zu modifizieren und die Gewährleistung eventuell zu verlieren wollte ich an den SCI-Port unter der Abdeckplatte. [geschafft]
Die Abdeckplatte hätte im Idealfall wieder montierbar sein sollen. [verfehlt]
Die Höhe des Roboters sollte nicht verändert werden [geschafft]
Bilder des Entwurfs angehängt.
Fazit
eine kleine, dünne Adapterplatte mit Platz für einen DC/DC-Converter und ein ESP8266-01, sowie einer Pegelanpassung von 5V-Roomba zu 3,3V ESP8266 mittels einfachem Spannungsteiler.

3.)
Software auf Roomba-Seite:
Ich habe mich für den einfachsten und trotzdem universellem Weg entschieden, dem transparent-modus.
Der transparent-modus stellt auf dem Wlan-Modul einfach nur einen Server auf Port 23 bereit.
Alle Befehle werden 1:1 weitergereicht. von Client zu Roomba, von Roomba zu Client.
Damit lasse ich alle möglichen Nutzungen offen.
Die Firmware des ESP8266 ist ESP-Link  https://github.com/jeelabs/esp-link/
Einfache Einrichtung, einfachste Nutzung, stabile Version.

4.)
Modul für FHEM -- Hilfe benötigt
Leider habe ich keine Kenntnisse in Python, und zur Zeit keine Zeit mich damit zu beschäftigen.
Ich habe zur Zeit eine Dummy namens Roomba, der wird entweder eingeschaltet oder nicht. on=clean, off=dock
mit einem notify achte ich darauf und schicke mit system(netcat) eine bytefolge zum reinigen/stoppen an den server im modul auf dem Roomba.
dummy_roomba:.* { if ( $EVENT eq "on" ) {
`cat /opt/fhem/roombastart | netcat roomba.local 23`
} else {
`cat /opt/fhem/roombastop | nc roomba.local 23 && sleep 1 && cat /opt/fhem/roombastop | nc roomba.local 23`
}}


Jetzt zu meinem Anliegen:
Kann jemand ein FHEM-Modul für Roombas schreiben?
das wäre großartig!


PS: ich habe sogar noch ein paar von diesen Adapterplatinen, die ich nicht mehr brauche,
und bin bereit die für 3€ inkl. Briefversand abzugeben, zum Testen und basteln. (kein ESP, kein Vreg, nicht gelötet)
Wer noch ESPs brauchen sollte, auch kein Problem.
Wer eine komplett fertige Schaltung haben möchte, muss mit knapp 20€ rechnen, der DC/DC-Converter ist ziemlich teuer!


PPS: wenn ich wieder zurück bin, mach ich noch ein paar Bilder

EDIT 16:59:
Bilder angehängt

EDIT 15.03:
Bilder hinzugefügt

EDIT 07.06:
Ich habe das Modul seit jetzt etwa drei Monaten im Dauereinsatz.
Keine Verbindungsabrüche, keine Fehler, funktioniert ohne Probleme.

EDIT 26.06.17:
V0.3:Der Transistor zur Ansteuerung des BAUD-PINs war ohne Vorwiderstand, habe einen MOSFET eingeplant (IRLML-2502) - untested!
        Habe einen Schaltplan in PDF hochgeladen

« Letzte Änderung: 26 Juni 2017, 16:01:29 von irgendsowas »

Offline marvin78

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5537
http://forum.fhem.de/index.php/topic,40305.msg325312.html

Habe ich über die Suche nach 2 Sekunden gefunden.

Offline irgendsowas

  • New Member
  • *
  • Beiträge: 19
 ???

Tja, da hab ich doch glatt überlesen, das dieses Modul auch lokal laufen kann und nicht nur die API von Thinkingcleaner unterstützt, die ja Daten einmal um den Planeten verschickt

OK, dann werde ich das gleich mal ausprobieren.

DANKE

EDIT 11:56 :
Habe mir das Modul angeschaut, glaube nicht, dass es funktionieren wird, wie ich oben schon geschrieben habe benutze ich keine Ebene zwischen Roomba un Client, ich habe eine transparente Brücke von roomba zu Wlan. Man müsste also die Low-Level-Befehle nutzen.
In einer TCP Verbindung.
« Letzte Änderung: 29 Februar 2016, 11:59:06 von irgendsowas »

Offline ma

  • Newbie
  • Beiträge: 1
 :)

Hi,
ich habe mir gerade letzte Woche ein ähnliches Modul zusammengebaut und stelle nun fest, dass ich nicht alleine in der FHEM-Roomba-Welt mit dieser Idee bin.  ;)
Den Transistor habe ich mir noch gespart, da mein Roomba 870 damit keine Probleme bereitet. Dafür habe ich mir einen fertigen Stecker bei Reichelt geleistet anstatt eine Platine zu erstellen. (Der Spannungsteiler am Eingang des ESP ist aber wichtig!) Damit hat man eine Steuerungslösung für unter 10 Euro.

Ich werde noch etwas experimentieren, und erst einmal eine Quick&Dirty-Lösung ausprobieren, bevor ich ein Modul schreiben kann. Dazu werde ich nämlich meine etwas angestaubten Perl-Kenntnisse herauskramen müssen...

Gruß,
Matthias

Offline irgendsowas

  • New Member
  • *
  • Beiträge: 19
:)

Hi,
ich habe mir gerade letzte Woche ein ähnliches Modul zusammengebaut und stelle nun fest, dass ich nicht alleine in der FHEM-Roomba-Welt mit dieser Idee bin.  ;)
Den Transistor habe ich mir noch gespart, da mein Roomba 870 damit keine Probleme bereitet. Dafür habe ich mir einen fertigen Stecker bei Reichelt geleistet anstatt eine Platine zu erstellen. (Der Spannungsteiler am Eingang des ESP ist aber wichtig!) Damit hat man eine Steuerungslösung für unter 10 Euro.

Ich werde noch etwas experimentieren, und erst einmal eine Quick&Dirty-Lösung ausprobieren, bevor ich ein Modul schreiben kann. Dazu werde ich nämlich meine etwas angestaubten Perl-Kenntnisse herauskramen müssen...

Gruß,
Matthias

Hallo ma,
den Transistor habe ich auch weggelassen, der ist optional. Den braucht man nur (soweit ich das verstanden habe) zum aufwecken des Roombas aus dem OFF-Modus oder zur BAUD-Raten-Änderung.

Ich hänge dir meine Notizen meiner Quick&Dirty-Lösung an, vielleicht hilft dir das.

start operating interface d128 h80
stop operating interface d173 hAD


clean d135 h87
spot d134 h86
seek dock d143 h8F


command start cleaning \x80\x87\xAD
command go to dock \x80\x8F\xAD <pause 1s> \x80\x8F\xAD

complete bash command clean: echo -e -n "\x80\x87\xAD" | nc 192.168.1.27 23
complete bash command go to dock: echo -e -n "\x80\x8F\xAD" | nc 192.168.1.27 23 && sleep 1 && echo -e -n "\x80\x8F\xAD" | nc 192.168.1.27 23

bash echo doesn't seems to be sh echo,

prepare start file: echo -e -n "\x80\x87\xAD" > /roombastart
prepare stop file: echo -e -n "\x80\x8F\xAD" > /roombastop

--------------------------------------------------------------------------------------------   can be called from system()   ---------------------------------------------------------
complete bash command clean: cat /roombastart | nc 192.168.1.27 23
complete bash command go to dock: cat roombastop | nc 192.168.1.27 23 && sleep 1 && cat /roombastop | nc 192.168.1.27 23

Ich hoffe, das hilft dir weiter
« Letzte Änderung: 16 März 2016, 09:55:55 von irgendsowas »

Offline cotecmania

  • Sr. Member
  • ****
  • Beiträge: 516
Hi,

habe mir soeben einen Roomba 615 bestellt und hätte Interesse an einer fertigen Platine.
Softwaretechnisch bekommen wir das bestimmt auf die Reihe, wenn ich das Ding mal am Laufen habe.

Schreibst mir 'ne PM wegen der fertigen Platine ?

Gruss
Joe
FHEM auf RaspberryPI B (jessie)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, ACER Iconia One mit AMAD/FTUI

Offline cotecmania

  • Sr. Member
  • ****
  • Beiträge: 516
Hallo,

weiss jemand, wie man den Roomba aus dem StandyBy aufwecken kann ohne die Taste zu drücken  ?
Am Stecker gibts nur den Baudrate-Pin und mit dem seriellen Befehl 128 wacht er nicht auf ...

Gruss
FHEM auf RaspberryPI B (jessie)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, ACER Iconia One mit AMAD/FTUI

Offline RaspiLED

  • Hero Member
  • *****
  • Beiträge: 2288
  • Es begann alles so klein ;-)
Hi,
Tolle Idee! Kann mal jemand die Softwarelösung hier posten? Die Cat Inhalte sind ja nun auch noch spannend. Zusätzliche Frage: Wo gibt es die Command Reference des Roomba?

Danke und Gruß
Arnd


FHEM auf Raspberry Pi 2, CUL, Signalduino, Intertechno, WifiLight mit H801 - ESP8266, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Offline irgendsowas

  • New Member
  • *
  • Beiträge: 19
Hallo,

weiss jemand, wie man den Roomba aus dem StandyBy aufwecken kann ohne die Taste zu drücken  ?
Am Stecker gibts nur den Baudrate-Pin und mit dem seriellen Befehl 128 wacht er nicht auf ...

Gruss

Hallo cotecmania,
Generell gibt es beim roomba zwei "Standby Modi" für uns, die das "Open Interface" nutzen.
1: Roomba an/aus
2: Open Interface an/aus (vereinfacht)

das Open Inferface, also die Steuerschnittstelle selbst, schaltet man mit 128dez ein, mit 173dez aus.
Wie du aber richtig angemerkt hast, kann man den roomba damit nicht aus dem Standby aufwecken.
Das geht mit einem Druck auf die Clean-Taste.
Ich kann mich erinnern, dass die "alten" roombas auch aus dem Standby aufgewacht sind, wenn man den Baud-Pin low gezogen hat.
Also habe ich auf meine Platine einen Platz für soetwas vorgesehen.
Ich habe es auch probiert, bei meinem geht es.
Puls Baud low = aus Standby aufwecken.

Ich hoffe das hat dir geholfen.

Grüße, Marc





Hi,
Tolle Idee! Kann mal jemand die Softwarelösung hier posten? Die Cat Inhalte sind ja nun auch noch spannend. Zusätzliche Frage: Wo gibt es die Command Reference des Roomba?

Danke und Gruß
Arnd


FHEM auf Raspberry Pi 2, CUL, Signalduino, Intertechno, WifiLight mit H801 - ESP8266, ...

Die Command-Reference findest du in meinem ersten Post, ist der Google-Link.

Den Inhalt der Datei, die per netcat an den roomba geschickt wird habe ich in Antwort #4 vermerkt.

Grüße, Marc
« Letzte Änderung: 13 Juni 2016, 00:10:41 von irgendsowas »

Offline cotecmania

  • Sr. Member
  • ****
  • Beiträge: 516
Hallo,

tatsächlich genügt ein kurzes Low am Baudratenpin um den Roomba aus dem Standby aufzuwecken. Habe ich so in der Doku nicht gefunden ...

Aktuell läuft mein Roomba mit einem Wemos D1 mini bzw. NodeMCU 1.0 mit eigenem Sketch (Arduino C++) und China-Pegelwandler ...

Gruss
Joe

« Letzte Änderung: 13 Juni 2016, 20:14:59 von cotecmania »
FHEM auf RaspberryPI B (jessie)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, ACER Iconia One mit AMAD/FTUI

Offline irgendsowas

  • New Member
  • *
  • Beiträge: 19
Habe nochmal nachgeschaut,
in der alten SCI-Doku ist es beschrieben:

http://www.robotappstore.com/files/KB/Roomba/Roomba_SCI_Spec_Manual.pdf

Offline gloob

  • Hero Member
  • *****
  • Beiträge: 2977
Antw:Steuerung ROOMBA - Trägerplatine für DC/DC, ESP8266-01
« Antwort #11 am: 22 November 2016, 07:45:15 »
Hallo,

tatsächlich genügt ein kurzes Low am Baudratenpin um den Roomba aus dem Standby aufzuwecken. Habe ich so in der Doku nicht gefunden ...

Aktuell läuft mein Roomba mit einem Wemos D1 mini bzw. NodeMCU 1.0 mit eigenem Sketch (Arduino C++) und China-Pegelwandler ...

Gruss
Joe

Hallo,

Könntest du einen kleinen Schaltplan bereitstellen, wie du den Wemos mit dem Roomba verbunden hast und wie du das ganze in FHEM integriert hast? Ich würde mir gerne auch so etwas nachbauen.

Gruß
Stefan
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Offline irgendsowas

  • New Member
  • *
  • Beiträge: 19
Antw:Steuerung ROOMBA - Trägerplatine für DC/DC, ESP8266-01
« Antwort #12 am: 22 November 2016, 15:03:29 »
Hallo,

Könntest du einen kleinen Schaltplan bereitstellen, wie du den Wemos mit dem Roomba verbunden hast und wie du das ganze in FHEM integriert hast? Ich würde mir gerne auch so etwas nachbauen.

Gruß
Stefan

Hallo Stefan,
Post #1 hat Schaltplan, Layout und Erklärung,
Integration in FHEM findest du in Antwort #4. (Zur Zeit nicht mit einem FHEM-Modul gelöst, sondern nur send&forget)

Grüße

Offline gloob

  • Hero Member
  • *****
  • Beiträge: 2977
Antw:Steuerung ROOMBA - Trägerplatine für DC/DC, ESP8266-01
« Antwort #13 am: 22 November 2016, 15:14:54 »
Vielen Dank noch einmal für das Feedback. Jetzt sehe ich auch, wie der "Wakeup" Pin verdrahtet ist.
Mal schauen ob ich mir auch noch so etwas baue. Vielleicht sogar mit MQTT auf dem ESP.

Hättest du noch eine Platine übrig?
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Offline irgendsowas

  • New Member
  • *
  • Beiträge: 19
Antw:Steuerung ROOMBA - Trägerplatine für DC/DC, ESP8266-01
« Antwort #14 am: 22 November 2016, 15:33:14 »
Vielen Dank noch einmal für das Feedback. Jetzt sehe ich auch, wie der "Wakeup" Pin verdrahtet ist.
Mal schauen ob ich mir auch noch so etwas baue. Vielleicht sogar mit MQTT auf dem ESP.

Hättest du noch eine Platine übrig?

Hallo Stefan,
ich schicke dir eine PN

 

decade-submarginal