Forum: Mikrocontroller und Digitale Elektronik Automower G3 mit USB Diagnoseport fernsteuern?


von Conny G. (conny_g)


Lesenswert?

Hi,

hat jemand einen Husqvarna Automower G3 und sich evtl schon mit dem USB 
Port beschäftigt?

Die G2 kann man wohl über den Seriell-Diagnoseport ansteuern:
http://homematic-forum.de/forum/viewtopic.php?t=7295
(Nicht selbst versucht, weil habe/hatte keinen)

Die G3 (den hab ich gerade gekauft) haben statt der seriellen 
Schnittstelle einen USB-Port. Ich würde mal vermuten, dass das letztlich 
auch eine serielle Schnittstelle ist und die Ansteuerung dann womöglich 
auch genauso funktioniert.

Hat das schon jemand probiert oder evtl auch Interesse daran den 
Automower fernzusteuern?

Vg,
Conny

von Conny G. (conny_g)


Lesenswert?

Hi,

hat jetzt hier keiner einen Automower G3? :-)
Ich werde immer mal wieder fragen.

Ich habe in zwischen gefunden, dass ein STM32 Prozessor drin ist - wenn 
man ihn an den Rechner ansteckt per USB dann findet man einen STM32 
Virtual Com Port.
Aber anscheinend antwortet er auf die Befehle des G2 nicht, habe 
gelesen, dass das schon jemand versucht hat und auch bei meinen 10min, 
die ich dem gegeben habe kam noch nichts bei raus.
Also braucht das noch etwas mehr Forschung. Idealerweise zusammen mit 
einem Händler, indem man einen USB Sniffer installiert bevor die 
Autocheck Experience Diagnosesoftware läuft - die ja leider nicht mehr 
erhältlich ist und auch ohne Händlerlogin nicht funktioniert.
Ohne Sniffer ist es langwierig.

von Martin (Gast)


Lesenswert?

Conny G. schrieb:
> Hi,
>
> hat jetzt hier keiner einen Automower G3? :-)
> Ich werde immer mal wieder fragen.

Low,

willst du mir die letzte sportliche Betätigung rauben?

von Chris P. (ein-stein)


Lesenswert?

Hi Conny,

hast du schon einen Erfolg gehabt? Ich hab jetzt auch einen 305 und 
würde mich dafür interessieren.

Gruß
Chris

von Conny G. (conny_g)


Lesenswert?

Hi Chris,

Nein, leider nicht.

von Conny G. (conny_g)


Lesenswert?

Habe übrigens gerade von einer schweitzer Firma, die für den G2 eine 
Funkschnittstelle herstellt erfahren:
- von Husquvarna wird es das SMS-Modul ab Herbst geben
- damit auch ein Firmware Update, das eine interne serielle 
Schnittstelle aktiviert, die dafür benötigt wird
- der USB Port sei dafür nicht nutzbar, da dort ständig die Baudrate 
gewechselt wird

D.h. Husquvarna hat sich beim G3 mehr abgesichert, dass der Diagnoseport 
nicht so einfach gehackt wird: Diagnose-Software nur mit Händler-Login 
und Online-Lizenz-Check, Baudratenwechsel bei der 
USB-Seriell-Schnittstelle.
Vermute mal der Baudratenwechsel folgt auch einer Regel, aber es braucht 
mehr Forschung als beim G2.

von Conny G. (conny_g)


Lesenswert?

Hat hier jemand schon mehr Info über Lösungen oder Hacks?

Abgesehen davon:
http://www.razyboard.com/system/morethread-am305-komplette-funkfernsteuerung-corsatimo-2242778-6276550-0.html

Das ist eine Fernsteuerung der Tastatur, aber doch ein ziemlicher 
Aufwand und Daten lesen kann man auch nicht...

: Bearbeitet durch User
von Jörg E. (jackfritt)


Lesenswert?

Is zwar Offtopic aber wie mähen die bei Kinderspielzeug und anderen 
Sachen in der Wiese? Muss man vorher aufräumen oder merkt er sich die 
stellen wo beim letzten mal was lag? Ich habe nämlich ne 
Kinderspielwiese und keinen englischen Rasen wie aus der Werbung ;)

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Jörg Esser schrieb:
> Is zwar Offtopic aber wie mähen die bei Kinderspielzeug und anderen
> Sachen in der Wiese? Muss man vorher aufräumen oder merkt er sich die
> stellen wo beim letzten mal was lag?

Anbei ein Foto von einem Rasensprenger den wir auf der Wiese vergessen 
haben und der in einen Zweikampf mit dem Rasenmäher gehen musste.
Die 3 Klingen des Automower waren dann auch alle abgebrochen und mussten 
getauscht werden.
Beim Zweikampf fuhr der Robo auf den Rasensprenger auf und steckte auf 
ihm fest, durch weitere Versuche anzufahren fräste er bei jedem Rad 3 cm 
tiefe und 10cm lange Furchen in den Rasen :-)
Der Schlauch hatte auch eine Menge kleiner Schnitte und war nicht mehr 
dicht. Betraf zum Glück nur den letzten Meter, damit reichte 
abschneiden, Kupplung neu drauf und fertig.

Also: Man muss aufräumen.

Man kann nur stehen lassen, was einen Stoss mit dem Mäher aushält, also 
was hoch genug ist (er also nicht darauf fährt), standfest genug ist 
(nicht umfällt) und nicht wegrutscht.

> Ich habe nämlich ne
> Kinderspielwiese und keinen englischen Rasen wie aus der Werbung ;)

Bei uns spielen die Kinder (dank Rasenmähroboter) auf einem englischen 
Rasen und danach wird aufgeräumt :-))

: Bearbeitet durch User
von Jörg E. (jackfritt)


Lesenswert?

Conny G. schrieb:
> Jörg Esser schrieb:
>> Is zwar Offtopic aber wie mähen die bei Kinderspielzeug und anderen
>> Sachen in der Wiese? Muss man vorher aufräumen oder merkt er sich die
>> stellen wo beim letzten mal was lag?
>
> Anbei ein Foto von einem Rasensprenger den wir auf der Wiese vergessen
> haben und der in einen Zweikampf mit dem Rasenmäher gehen musste.
> Die 3 Klingen des Automower waren dann auch alle abgebrochen und mussten
> getauscht werden.
> Beim Zweikampf fuhr der Robo auf den Rasensprenger auf und steckte auf
> ihm fest, durch weitere Versuche anzufahren fräste er bei jedem Rad 3 cm
> tiefe und 10cm lange Furchen in den Rasen :-)
> Der Schlauch hatte auch eine Menge kleiner Schnitte und war nicht mehr
> dicht. Betraf zum Glück nur den letzten Meter, damit reichte
> abschneiden, Kupplung neu drauf und fertig.
>
> Also: Man muss aufräumen.
>
> Man kann nur stehen lassen, was einen Stoss mit dem Mäher aushält, also
> was hoch genug ist (er also nicht darauf fährt), standfest genug ist
> (nicht umfällt) und nicht wegrutscht.
>

Dann wird er wohl nur meinen kleinsten vernaschen ;)

Vielen Dank für deine ehrliche aussage.

Gruss,

Jörg

von Conny G. (conny_g)


Lesenswert?

Jörg Esser schrieb:

> Dann wird er wohl nur meinen kleinsten vernaschen ;)

Keine Sorge. Einerseits hat ein guter Rasenmäherrobo diverse 
Sicherheitsfeatures. Andererseits ist er so leise, dass er auch nachts 
fahren kann. Bei uns immer 0 Uhr bis 7 Uhr.

> Vielen Dank für deine ehrliche aussage.

Np. Sehe ich aber nicht als großen Nachteil. Eher noch als Vorteil, dass 
es einen zwingt aufzuräumen und nicht immer allen möglichen Zeugs auf 
der Wiese zu lassen.

Und den Zustand des Rasens könnte ich mit regulärem Mähen niemals 
erreichen. Ich müsste (musste) mindestens 1x die Woche mähen, was nicht 
immer geht wg. Wetter, Lärmzeiten, Arbeitszeiten und wenn es mal länger 
war ist es ein mords geviecher bis der Rasen wieder kurz ist und sieht 
dann auch erstmal für ein paar Tage erstmal schrecklich aus.
Jetzt ist er jeden Tag schön wie im Teletubby-Land, wie ein Teppich. Und 
wenn ich morgens aus dem Fenster blinsle ist alles schon erledigt.

Dafür kann man das "Investment" von ein bisschen Aufräumen / Mitdenken 
schon aushalten.

von Vries (Gast)


Lesenswert?

Hallo,

Ist es möglich die Fehler vom Automower G2 am Pc auszulesen ohne das 
Autocheck Programm von Husqvarna?

mfG
Vries

von Conny G. (conny_g)


Lesenswert?

Vries schrieb:
> Hallo,
>
> Ist es möglich die Fehler vom Automower G2 am Pc auszulesen ohne das
> Autocheck Programm von Husqvarna?
>
> mfG
> Vries

Beim G2 müsste das gehen. Der hat ja eine simple serielle Schnittstelle, 
die komplett unverschlüsselt / ungeschützt ist. Und Infos zum Protokoll 
habe ich schon gefunden in Web.
Beim G3 hat sich Husqvarna Mühe gegeben es schwer zu machen. Da ist es 
eine USB serielle Schnittstelle, wo sie aber wohl ständig die Baudrate 
wechseln. Das wäre eigentlich nur mit der Händlersoftware und einem USB 
Sniffer vernünftig analysierbar.

Ich habe jetzt übrigens seit 2 Monaten das Connect-Modul im 320 
eingebaut und es ist herrlich. Kann den AM jederzeit von überall per App 
programmieren, starten, stoppen, checken. Und bekomme Popup-Nachricht 
bei einem Fehler.
Vor ein paar Wochen fuhr er sich an einer Beetbegrenzung fest und ich 
wusste sofort Bescheid, im Ausland, und konnte ihn retten lassen.
Genau so hatte ich mir das vorgestellt. Husqvarna hat lange gebraucht, 
aber die Lösung ist perfekt.

von Chris P. (ein-stein)


Lesenswert?

Hi,

der G3 hat auch eine simple RS232 Schnittstelle. Ich hab in schon den 
ganzen Sommer mit einer WLAN Schnittstelle betrieben und das Protokoll 
ein wenig analysiert. Ich werde das Ganze bei Gelegenheit mal online 
stellen.

Gruß
Christian

von Conny G. (conny_g)


Lesenswert?

Chris P. schrieb:
> Hi,
>
> der G3 hat auch eine simple RS232 Schnittstelle. Ich hab in schon den
> ganzen Sommer mit einer WLAN Schnittstelle betrieben und das Protokoll
> ein wenig analysiert. Ich werde das Ganze bei Gelegenheit mal online
> stellen.
>
> Gruß
> Christian

Genial! Bin superneugierig!

von Andreas B. (andi291)


Lesenswert?

Hallo Christian,

ich besitze seit dem Frühjahr einen 310 / P15. Der dürfte dem G3 ja 
ähnlich sein?!

Hast Du mehr Informationen über die Nutzung der seriellen Schnittstell`? 
Wo hast Du diese abgegriffen?

Danke Dir!

von Chris P. (ein-stein)


Lesenswert?

Auf dem MCB gibt es einen 8 poligen AUX Port. Da liegen RX, TX, GND, 
3.3V, 5V, 18V und ein unbekanntes Signal. Die Datenrate ist 115200, 8N1.
Kommandos bestehen immer aus 0x02, Kommandobyte, Längenbyte, Daten, 
Checksumme nach dallas-1-wire Standard, 0x03
Bit 0 im Kommandobyte ist Frage/Antwort. Die Antwort hat als 1. 
Datenbyte einen Statuscode:
00 -> ok
03 -> no such variable?
04 -> ?
05 -> unauthorized (erst pin senden)

z.B. abfrage der Zeit:
Kommando:02 02 01 00 8b 03
Antwort: 02 03 04 00 15 0c 2a 29 03  ok, zeit: 21:12:42


Die Kommandos scheinen so ähnlich wie die Menüs gruppiert zu sein.
02 - Zeit, Datum, security level, ländereinstellung, eco
04 - Garten: Korridorbreite, Fernstart, Schleife überfahren
06 - Timer
08 - ?
0a - ?
0c - PIN senden
0e - HOME/MAN/AUTO, Test in/out, Kippsensor kalibrieren
10 - Motorentests
12 - nächste start Zeit
14 - sensoren: bat, radmot., messerm., kipp/stoss
16 - irgendwas mir versionsständen
18 - statistic bat, suchzeiten, mähzeiten, bat. cap., mitteilungen)

von Andreas B. (andi291)


Lesenswert?

Merci! Werd ich mir ansehen.

Grüße, Andi

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hallo Zusammen,

ich habe jetzt meinen Mäher auch soweit und ihn mit einem WLAN Modul 
ausgestattet.
Das Lesen verschiedener Werte ist mir jetzt klar.

Ich habe versucht die Uhrzeit umzustellen mit z.b.:
02 02 03 15 0c 2a 64 03
damit müsste ich die Uhr ,laut Anleitung, auf 21:12:42 stellen.
Es klappt aber nicht. Was mache ich falsch ?

Das Pin senden habe ich auch ausprobiert.
Hier mal ein Beispiel wenn der Code 1234 ist:
02 0c 04 01 02 03 04 96 03
Funktionier auch nicht:-(

Also für einen Tip wäre ich sehr dankbar.

Gruß

Follow2000

von Stefan (Gast)


Lesenswert?

Hi! Klappt das nun auch mit dem 305er?
Hab irgendwie den Faden verloren ;-)

VG Stefan

von Andi291 (Gast)


Lesenswert?

Servus!

Wird ich Dir nach Weihnachten evtl. sagen können :-)

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hallo Andi,

Hast du noch ein paar Info's zum Protokoll die du hier zum besten geben 
kannst :-) ?

Gruß

David

von Chris P. (ein-stein)


Lesenswert?

Hi Follow2000,

> Das Pin senden habe ich auch ausprobiert.
> Hier mal ein Beispiel wenn der Code 1234 ist:
> 02 0c 04 01 02 03 04 96 03
> Funktionier auch nicht:-(
>
> Also für einen Tip wäre ich sehr dankbar.

das mit der Pin war als integer zu senden wobei erst 00 01 und dann die 
Pin 1234 = 0x04d2:
02 0c 04 00 01 d2 04 CS 03

Gruß
Christian

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hallo Christian,


Erstmal Vielen Dank für die Info. Bei meinem r40li klappt der befehl mit 
der Code eingabe.
Ich habe versucht in selber Logik die Uhrezeit zu ändern.

Ich wollte die uhr auf 04:04:04 stellen

02 02 05 00 01 04 04 04 DA 03

Habe damit leider keinen Erfolg gehabt. Für ein paar weitere Tipps wäre 
ich sehr dankbar. Ich habe jetzt Weihnachtsferien und wollte, wenn ich 
die nötigen Info´s habe ,mal ein kleines Demo MS-DOS Terminal Programm 
schreiben womit man den Roboter die nötigen Kommandos schicken kann.

Ich habe auch schon einen neuen Thread aufgemacht auf dem ich 
beschrieben habe wie man den Gardena R40li mit einem WLAN UART Modul 
bestückt :-) Sollte sinngemäß auch für den 305 gelten.
Beitrag "Gardena r40li oder Husqvarna G3 fernsteuern"

Schon mal vorab euch allen Erholsame Weihnachtstage

David

von Andi291 (Gast)


Lesenswert?

Servus!

An einem debug-programm bin ich schon dran. Wird noch 1-2 wochen 
dauern..

Grüße, andi

von Harald A. (embedded)


Lesenswert?

In diesem alten Thread gibt es Diskussionen zum ACX2xx, der hatte noch 
einen Diagnoseport auf UART Basis. Ist ein recht umfangreicher Thread, 
vielleicht gibt es Parallelen zum neuen AM

http://www.roboternetz.de/community/threads/1330-AutoMower-von-Elektrolux-und-Husqvarna/page8?highlight=Automower

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hallo Andi,

Wenn du eine Debug Anwendung schreibst dann werde ich es lassen mich da 
einzuarbeiten.

Kann ich dich bei diesem Projekt etwas unterstützen ? Ich würde eine 
Doku des Protokoll verfassen wenn du mir die nötigen info's zukommen 
lässt, und diese dann als pdf hier hochladen. Ich habe einen gardena 
r40li mit serieller Anbindung hier. Wenn ich die Logik verstanden habe 
ergeben sich die meisten Sachen ich hoffe von selbst. Und ich kann es 
über Terminal zusätzlich testen. Meine endgültige Lösung wäre das ich 
den r40li über den Gira homeserver steueren kann. Aber mit einer 
ordentlichen Protokoll Doku kann man das auf jeder Plattform 
ausarbeiten.

Ich freue mich schon von dir zu hören.

Gruß

David

von Andi291 (Gast)


Lesenswert?

Abend!

ja, sehr gerne.
Ich hab schon seit längerem ein Java-Progrämmchen, welches ich für 
solche Reverse-Engineering Aufgaben hernehme. Muss ich nur noch 
anpassen.

Ich persönlich werden den Mower entweder in KNX oder aber in FHEM 
einbinden.
Bin mir noch unschlüssig, wie ich die Funkstrecke gestalte. "Normales" 
WLAN möchte ich nicht im Garten, da ich über eine umfangreiche 
Automatisierung verfüge, und nicht jedem Tür und Tor öffnen möchte.

Mal sehen, vll. ein privates WiFi mit Router zwischendrin...

Grüße, Andi

von Chris P. (ein-stein)


Lesenswert?

Hi Andi,

du könntest ja ein XBEE Modul nehmen. Wenn du noch kein XBEE hast, dann 
natürlich 2. Da ist die Sicherheit zwar nicht unbedingt höher, aber das 
ist nicht so verbreitet.

Gruß
Christian

von Chris P. (ein-stein)


Lesenswert?

Hi David,

Zeit/Datum stellen:
02[04] 80 0c 28 00  -> 03[04] 00 0c 28 00   zeit auf 12:40
02[09] 81 df 07 08 08 04 00 00 00 -> 03[06] 00 df 07 08 08 04  datum aud 
8.8.15  formatbyte: bit0 1-12h/0-24h, bit1+2 0-JMT/1-MTJ/2-TMJ,
          2015. 8. 8. fo
02[09] 82 07 04 0f 00 14 01 04 00 -> 03[09] 00 07 04 0f 00 14 01 04 00 
sprache DE

Gruß
Christian

von Chris P. (ein-stein)


Angehängte Dateien:

Lesenswert?

Die Schreibkommandows scheinen durch Bit7 im Kommando gekennzeichnet 
sein. Hier Beispiele:
02[02] 88 00  -> 03[02] 00 00  ohne schleife
02[02] 88 01  -> 03[02] 00 01  mit schleife
02[02] 8f 01  -> 03[02] 00 01  ECO on
02[02] 8f 00  -> 03[02] 00 00  ECO off

02[09] 82 09 08 0f 00 14 01 04 00  GER
02[09] 82 07 04 0f 00 2c 01 08 00  Greek
02[07] 84 b3 24 01 1e 03 00  sec low
02[07] 84 b3 24 01 1e 07 00  sec med
02[07] 84 b3 24 01 1e 3f 00  sec high

04[06] 82 02 00 00 00 00  -> 05[06] 00 02 00 00 00 00      korridor 
schmal
04[06] 82 02 00 05 00 00  -> 05[06] 00 02 00 05 00 00      korridor 
mittel
04[06] 82 02 00 0f 00 00  -> 05[06] 00 02 00 0f 00 00      korridor 
breit
04[07] 83 01 02 0d 00 00 00 -> 05[07] 00 01 02 0d 00 00 00  fernstart1 
nie ,15m
04[07] 83 01 02 0d 00 14 01 -> 05[07] 00 01 02 0d 00 14 01  fernstart1 
selten (20%), 15m
04[07] 83 01 02 0d 00 32 01 -> 05[07] 00 01 02 0d 00 32 01  fernstart1 
mittel (50%), 15m
04[07] 83 01 02 0d 00 50 01 -> 05[07] 00 01 02 0d 00 50 01  fernstart1 
oft (80%), 15m
04[07] 83 01 02 0e 00 50 01 -> 05[07] 00 01 02 0e 00 50 01  fernstart1 
14m
          nr .. dist. %. on

04[04] 90 04 01 00 -> 05[03] 00 04 01   schleife überfahren 26 cm
04[04] 90 fa 00 00 -> 05[03] 00 fa 00   schleife überfahren 25 cm


Zum Analysieren hab ich einen 'Interceptor' eingebaut. Basis AtXMega, 4 
UARTs: MCB, MMI, AUX, ESP-03
Auf dem ESP ein kleines LUA script zum steuern. Der XMega nimmt die 
Pakete vom MCB/MMI entgegen, schickt sie weiter an MMI/MCB und sendet 
sie auch über den ESP-03 zum Monitor. Es können auch beliebige 
Bytefolgen über eine der Schnittstellen gesendet werden oder die 
Kommunikation unterbrochen werden.

Bei Interesse sagt Bescheid.

Gruß
Christian

von Andi291 (Gast)


Lesenswert?

Abend!

OK - mit den Erkenntnissen brauche ich jetzt kein grobes Analysetool 
mehr bauen. Das würde uns nicht wirklich weiter bringen.

Die Idee mit dem ESP zum banalen Anbinden finde ich mittlerweile auch 
OK. Offen wäre meiner Meinung nach noch die Übertragung ins Hausnetz.
Von sowieso vorhandenem WiFi über POE-WiFi, Nutzung eines Open-WRT oder 
Zwischenschalten eines Raspberry ist alles drin.

Aus meiner Sicht ein Traum wäre natürlich die Schaffung einer 
WLAN-Bridge und Weiterverteilung über Powerline. Wenn man bei den ESP 
noch die Signalübertragung einschränken kann, ist man 
Sicherheitstechnisch auch sauber...

Ich bin elektronisch nicht sooooooo fit, hab aber einigermaßen Ahnung 
von Linux, FHEM und KNX.
Eine Anbindung per Linux an ein KNX-System oder direkt an FHEM kann ich 
mir gut vorstellen zu realisieren.

Mein Appell: wie können wir uns hier ein wenig organisieren? Ziel sollte 
ja eine Lösung nach dem Winter sein :-)

Grüße, Andi

von Chris P. (ein-stein)


Lesenswert?

ich habe auf dem ESP-03 einen LUA telnetd laufen. Das ist zum 
Experimentieren erst mal schön einfach. Den könnte man sicher auch 
erweitern um ein wenig mehr Usability zu erreichen. Da könnte ja neben 
eines binären API auch ein Text API eingebaut sein um z.B.
# telnet mower 1234
mode manual
ok
quit
Sollte machbar sein, da die binären Kommandos ja immer mit einem Byte < 
65 starten und somit eine Unterscheidbarkeit gegeben ist.

Gruß
Christian

von Chris P. (ein-stein)


Lesenswert?

nebenbei muss ich mich korrigieren: auf dem Board ist natürlich ein 
ESP-01

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hallo Zusammen,

ich habe Zugriff auf eine Professionelle Leiterkarten Fräse (Protomat). 
Ich kann grössere Menge Leiterkarten herstellen. Ich bin 
Elektrotechniker und entwickle Leiterkarten. Diese Leistungen kann ich 
einbringen.

Ich würde mich erstmal an die Doku machen. Wobei sich erstmal die Frage 
stellt was ist alles möglich ?
Batterie Zustand erkennen ?
Welcher Fehler gibt es alles ?
Wie starten ich den Mäher ?
Wie wechsle ich den Zustand AUTO/MAN/HOME ?
usw

Dafür benötige ich erstmal jede Menge Info´s. Die Frage ist ,muss das 
noch herausgefunden werden? Oder können wir hier unser Wissen 
zusammentragen.

Im Anschluss daran würde ich ein simple Layout machen mit einem Esp 05. 
Der hat die Möglichkeit eine externe Antenne Anzuschließen. Also ein 
direkter WLAN-UART Umsetzer ohne Mikrocontroller zusätzlich. So wurde 
das auch schon bei einem ähnlichen Projekt der Generation 2 Mäher 
umgesetzt, nur die verbauten Teile waren da viel teurer. Das ganze dann 
als einfache HuckePack Karte. Das könnte ich als fertig bestückte Karte 
für die Community anbieten. Das wäre dann vom Einbau her Plug and Play.

Ich beschäftige mich erstmal heute Abend mit den Info´s die ich von 
Chris bekommen haben.

Zum Thema Sicherheit: Man sollte natürlich wenn man externe Geräte im 
WLAN hat dieses mit geeignetem Maßnahmen absichern. Man könnte mit viel 
krimineller Energie an das WLAN Passwort kommen wenn man den Mäher in 
seine Hände bekommt. Ich habe von so einem schönen Fall gehört wo sich 
jemand zu Absicherung seines Hauses teure Fenster/Türen mit Folie 
Pilzkopfverriegelung, Gitter vor den Kellerfenstern usw. hat einbauen 
lassen. Da sind die Diebe verkleidet als Schornsteinfeger einfach 
durch´s Dach gegangen. Am helllichten Tag. Dachpfanne wegschieben und 
ein Loch in die Folie/Rigips schneiden. Soll heißen mit genug 
krimineller Energie kommt man überall rein/dran:-)

Also wenn es um Sicherheit geht bitte einen separaten Thread zum 
diskutieren öffnen um diesen Thread nicht zu unübersichtlich werden zu 
lassen.

Gruß

David

von Andi291 (Gast)


Lesenswert?

Mahlzeit!

Passt, konzentrieren wir uns auf eine Anbindung per WLAN. Wie das dann 
ins Haus kommt, muss jeder selbst lösen :-)

Ich habe kein größeres Problem damit, wenn wir die Telegramme "nur" als 
serielle Kommandos ohne weiteres Protokoll auf ein (W-)LAN legen.

Zwei Optionen, die ich anbieten kann, zu realisieren:
1. Anbindung direkt an ein KNX-Netzwerk
2. Integration in FHEM (Wers nicht kennt - bitte googlen. Kann einiges 
und ist offen: http://fhem.de/Heimautomatisierung-mit-fhem.pdf)

Mir persönlich würden fürs erste die folgenden Möglichkeiten genügen:
- Fahre nach Hause
- Auto-Modus an/aus
- Aktueller Status (mäht  lädt  manuell aus / Fehler)
- Aktueller Fehlercode (idealerweise natürlich mit Beschreibung - auch 
wenn das hart wird...)

Unterstelle ich einen virtuellen seriellen Port unter Linux ohne weitere 
Protokolle könnte ich bereits auf Basis FHEM ein erstes Modul bauen...
Dieses sollte dann die obigen Kommandos im Klartext unterstützen und die 
restlichen Telegramme mitloggen...

Das FHEM läuft dann auf einem Raspberry  Fritzbox  OpenWRT und stellt 
die Informationen zum Einen als Logfile und zum Anderen per HTML-Seite 
zur Verfügung...

Bei der von David beschriebenen HW-Lösung wär ich jedenfalls dabei - 
Lösung gefällt mir (schön minimalistisch :-)).

Wollen wir so starten?

Grüße, Andi

P.S.: Hab zusätzlich noch ne zweilagige Holzverschalung unterm Dach. Da 
brauchts schon ne laute Säge :-P.
Und nun genug davon...

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hi Chris,

jetzt habe ich die Logik verstanden:-) Ich gehe davon aus das du einen 
anderen Mäher als den r40li hast. Das Kommando für die Sprachumstellung 
ist bei mir anders. Die Abfrage aber die richtige, so konnte ich mir das 
richtige Kommando herleiten. Zusätzlich musst nach der Sprachumstellung 
das Gerät neu gestartet werden damit er dieses auch wirklich umsetzt. 
Vielleicht gibt es dafür auch einen RESET Befehl ?

Unfreiwillig hast du wohl deinen Pin verraten. Weil in dem Kommando sec 
low dieses enthalten sein muss:-) Dieses habe ich festgestellt weil bei 
der Abfrage am Gerät zusätzlich die PIN eingeben werden muss und bei der 
Abfrage des Datensatz 00 01 an der Stelle ist. Das war für mich gerade 
ein richtig schönes AHA Erlebnis;-)

Ich mache mich an die Doku.

Gruß

David

von Chris P. (ein-stein)


Lesenswert?

oops, dann gibts wohl ab heute eine neue, danke für den Hinweis.
Ich hab einen 305

noch ein paar logs und Datenpositionen. Wenn denn schon mal einer Doku 
schreiben will...

06  timer
06[08] 01 01 00 00 00 00 00 00  abfrage start T1
06[08] 01 81 00 00 00 00 00 00  abfrage stop T1
06[08] 01 02 00 00 00 00 00 00  abfrage start T2
06[08] 01 82 00 00 00 00 00 00  abfrage stop T2

06[01] 04   scheint timer zu löschen

06[01] 05 -> 07[0a] 00 00 00 00 00 00 70 bc c8 55    next start
                                      10.8. 15:00

0e[01] 01 -> 0f[03] 00 00 00   Einstellungen rücksetzen?
0e[01] 02 -> 0f[03] 00 00 00   Home
0e[01] 03 -> 0f[03] 00 00 00   Man
0e[01] 04 -> 0f[03] 00 00 00   Auto

10 xx motor test (01 mäh, 02 rad)
10[03] 01 54 0b -> 11[01] 00
          rpm..
10[05] 02 0a 00 0a 00  -> 11[01] 00
       ra left. right


12[01] xx - status (01, 81)

12[01] 01  -> 13[17] 00 03 0b 06 02 00 00 f0 c7 c4 55 02 69 7c c2 55 03 
01 23 00 00 3a 00
                                          next start.    time.......

14[01] xx - sensoren (01 bat, 02 radmot., 03 messerm., 04 kipp/stoss, 
06, 15 schl., 16 schl.)
14[01] 01   -> 15[15] 00 05 4f 86 04 ac ff f9 00 b0 04 00 00 00 00 00 00 
0c fe 00 00
                               cap.. curr. temp.

14[01] 02   -> 15[0f] 00 00 00 00 00 08 00 00 00 00 00 0c 00 00 00
               15[0f] 00 14 00 d0 ff 1d 00 14 00 d2 ff 22 00 00 00
                         pwr%r spedr       pwr%l spedl
pwr%r = power in % rechts
spedl = speed llinks

14[01] 03   -> 15[07] 00 00 00 0c 00 ce 02
               15[07] 00 ea 06 f3 00 ce 02
                         rpm.. curre .....

14[01] 04   -> 15[0c] 00 00 00 fd ff 2a 00 f4 03 00 2d 01
                         st an nei-X nei-Y z?...

14[01] 05   -> 15[04] 00 00 01 00 ?
14[01] 06   -> 15[03] 00 00 00   ausfahrstrecke

16  irgendwas mir versionsständen

18 : statistic (00 00 00 bat, 02 xx 00 suchzeiten x, 03 xx 00 mähzeiten, 
04 xx 00 bat. cap., 05 xx 00 mitteil. x)
18[03] 00 00 00 -> 19[11] 00 03 01 f6 00 0d 00 60 01 15 01 45 e9 f1 52 
21 00
                             runti mä-ti su-ti la-ti #ladg prod_date.. 
errors

Gruß
Christian

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hi Chris,

jetzt habe ich erstmal ein kleines Problem. Ich hatte bei meinem Mäher 
den Deckel abgeschraubt um ein USB-RS232 Kabel anzuschließen. Dadurch 
das der Deckel nicht montiert ist kann ich manche Funktionen nicht 
ausführen, wie z.b. Mähmotortest. Wenn ich mein WLAN Modul anschliesse 
habe ich das Problem das die 3,3V nicht durchgehend anliegen (wie du 
bereist geschrieben hast). Das heißt ich muss mit den Zeug was ich hier 
rumliegen habe einen 3,3V Regler zusammenlöte, das schliesse ich dann an 
Pin 7 an.

Zweites Problem ist das der Akku langsam leer wird. Ich habe die 
Ladestation von meinem Mäher immer fest draussen stehen. Ich habe sie so 
umgebaut das sie komplett auf Solar Läuft. Dadurch brauchte ich kein 
Erdkabel legen. Dafür wollte ich nochmal eine Anleitung schreiben in 
einem separaten Thread, wenn jemand Interesse hat. Für weitere Versuche 
muss ich die erstmal rein holen.

Gruß

David

von David G. (Firma: 10.08.1985) (follow2000)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

ich bin schon fleissig dabei und möchte hier mal einen kleinen 
Vorgeschmack bieten.

Gruß

David

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hi Chris,

da habe ich schon ein paar Fragen:

1. Was bedeuten die Befehle mit und ohne Schleife? Ich habe auf meinen 
r40li dafür keine Einstellung, das muss nichts bedeuten. Kann sein das 
man es trotzdem einstellen kann. Die Korridorbreite kann man 
normalerweise beim r40li nicht einstellen. Aber über die serielle 
Schnittstelle schon :-)

2. Kannst du mir ein Beispiel geben wie ich einen Timer neu setzten kann 
? Ein einfacher String ohne Erklärung genügt mir.

3. Bist du sicher das du den Befehl für den Motortest richtig 
aufgeschrieben hast ? Bei mir piept er 3mal aber der Motor startet 
nicht. Über das Service Menü am Mäher klappt es.

Das wars erstmal mit meinen Fragen. Weitere werden bestimmt folgen.

Gruß

David

von Andi291 (Gast)


Lesenswert?

Saugeil!

Mal sehen, wann ich zum Testen an meinen 310er Husky komme...

Ich hab nichts mehr diesbezüglich gehört:
Anbindung per virtueller, serieller Schnittstelle an FHEM in Ordnung?

Grüße!

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hallo Andi,

die WLAN zu UART Schnittstelle kann man per UDP Paket ansprechen. Wenn 
du ein Modul für FHEM schreiben möchtest muss du den Port für UDP 
einstellbar machen. Ich benutze zum testen das Programm Packet Sender.

Wenn du fit im Programmieren bist kannst du vielleicht ein kleines 
Testprogramm schreiben :-) ?

Momentan habe ich meinen r40 per USB-RS232 FTDI Kanel angebunden. Ich 
arbeite mit dem Programm hterm. Ich muss jedesmal den String im editor 
zusammenschreiben und gehe dann auf diese Seite :
http://tomeko.net/online_tools/crc8.php?lang=en
die mir den CRC berechnet.

Schön wäre es ein Programm zu haben wo man direkt das Kommando und die 
Datenbytes eingibt und der automatisch die passende Zeichenkette daraus 
bildet und abschickt.

z.B.

Kommando = 06
Datenbytes = FF FF FF

und gesendet wird dann:
02 06 03 FF FF FF 72 03

Das wäre 02 (muss immer zuerst gesendet werden). 06 für das Kommandobyte 
und 03 weil 3 Datenbytes folgen. 72 ist die Checksumme aus 06 03 FF FF 
FF .Und ganz zum Schluss noch 03.

Darunter ein Fenster was die Antwort in Hex Form darstellt und nach ca 
20ms eine neue Zeile beginnt wenn eine Antwort Zeichenkette gekommen 
ist. Das kann man bei hterm auch so einstellen. Das macht das ganze sehr 
übersichtlich.

Ich bin derweil weiter fleißig und mache die Doku fertig. Ich lade sie 
hoch wenn ich fertig bin um den Thread übersichtlich zu halten.

Im neuen Jahr habe ich wieder Zugriff auf die Fräse und mache eine 
fertige Platine für den WLAN-UART Umsetzer, da muss zusätzlich ein 
Spannungswandler mit drauf. Ich nutze dafür einen Sparsamen LT1934. Wenn 
einer keine bessere Idee hat?

Gruß

David

von Andi291 (Gast)


Angehängte Dateien:

Lesenswert?

Morgen!

Anbei eine draft-Version zum Debuggen. Muss ich die Tage noch hübsch 
machen und Logging hinzufügen.
Im Prinzip tut das Teil...

Feedback bitte am liebsten per PN...

Grüße, Andi

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hallo Andi,

ist das für Linux ? Wie startet man das Programm ? Ich kann keine exe 
finden ????

Gruß

David

von Andi291 (Gast)


Lesenswert?

Servus!

Sorry, ein wenig kurz gefasst...

Bitte eine Java-JRE 1.6 installieren. Die Jar kann dann wie eine exe 
gestartet werden...

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html#jre-6u45-oth-JPR

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hallo Andi,

erstmal Hut ab für deine Leistung. Programm funktioniert 1A:-)
DAUMEN HOCH.

Ich habe die JAVA Runtime Engine installiert und dann Rechtsklick auf 
die .jar Datei. -> Öffnen mit -> JAVA.

Bei mir ist die Endung .jar mit WinRAR verknüpft.

Gruß

David

von Andi291 (Gast)


Lesenswert?

Danke für die Blumen! In schön und mit Logging kommts nach Weihnachten 
:-P

von Chris P. (ein-stein)


Lesenswert?

Hi David,

> 1. Was bedeuten die Befehle mit und ohne Schleife? Ich habe auf meinen
> r40li dafür keine Einstellung, das muss nichts bedeuten. Kann sein das
> man es trotzdem einstellen kann. Die Korridorbreite kann man
> normalerweise beim r40li nicht einstellen. Aber über die serielle
> Schnittstelle schon :-)
Der 305 kann wohl auch ohne Schleife betrieben werden. Ich denek die 
Funktionalität des Hauptrechners wird in den Mähern gleich sein, nur das 
MMI hat nicht alles freigeschaltet.

> 2. Kannst du mir ein Beispiel geben wie ich einen Timer neu setzten kann
> ? Ein einfacher String ohne Erklärung genügt mir.
ich bin mir jetzt nicht ganz sicher, glaube aber das hier war es:
06[08] 02 01 10 00 00 35 a0 05 -> 07[09] 00 01 10 00 00 35 86 01 01
             16:00    DM
06[08] 02 81 11 00 1e 35 a0 05 -> 07[09] 00 81 11 00 1e 35 86 01 01
             17:30    DM
DM ist Day Mask? ich glaub ich hatte Mo,Mi,Fr,Sa an.

> 3. Bist du sicher das du den Befehl für den Motortest richtig
> aufgeschrieben hast ? Bei mir piept er 3mal aber der Motor startet
> nicht. Über das Service Menü am Mäher klappt es.
Der Motortest Befehl muss immer wiederholt werden. Ich weis jetzt nicht 
die Frequenz, versuch 2x pro Sekunde. Damit kann man den dann auch per 
Fernbedienung fahren lassen.

Gruß
Christian

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hallo Chris,

Die Motorentest funktionieren.

Die Frage ist wie ich das mit den Rädern interpretieren soll. Man Kann 
das jeweilige Rad bremsen, vor und zurück fahren. Ich dachte erst eine 
negative Zahl wird durch das Zweierkompliment dargestellt. Klappt aber 
nicht. Kannst du mir dafür noch ein oder 2 Beispiele geben. Oder eine 
kurze Erläuterung.

Das mit den Timern ist klar und in der Doku übernommen.

Da habe ich noch eine Frage hierzu:
06[01] 05 -> 07[0a] 00 00 00 00 00 00 70 bc c8 55    next start
                                      10.8. 15:00

Ich weiss nicht wie ich die Antwort interpretieren soll ? Ich kann das 
auch nicht mit meinem Mäher nachstellen.

Schöne Feiertage euch allen und einen guten Rutsch.

Gruß

David

: Bearbeitet durch User
von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hallo Chris,

und noch eine Frage hierzu:
12[01] xx - status (01, 81)

12[01] 01  -> 13[17] 00 03 0b 06 02 00 00 f0 c7 c4 55 02 69 7c c2 55 03
01 23 00 00 3a 00
                                          next start.    time.......

Sag mir kurz wie das zu interpretieren ist.

Und noch eine Info:
14[01] 05   -> 15[04] 00 00 01 00 Bedienerklappe ZU
14[01] 05   -> 15[04] 00 00 01 01 Bedienerklappe AUF

Gruß
David

: Bearbeitet durch User
von Andi291 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Männer,

also beim 310er Husky scheint alles ähnlich zu funktionieren.
Mit einer Ausnahme - es muss der Aux-Port 2 hergenommen werden...

Hat schon jemand ein Statusbit für "in Betrieb" und "Mäht nicht wg. 
Fehler" gefunden?
Zweites Thema: kann es sein, dass das gute Stück ohne Ladestation nicht 
läuft? Bei mir steht dauernd "Kollision aktiv"

Im Anhang eine etwas aufgehübschte Toolversion...

Es wird nun ein Log und ein Trace angelegt. Im Trace werden alle Bytes 
mitgefangen (raw).
Bei Problemen bitte das logfile zu meinen Händen...

Es handelt sich um eine Jar-Datei. Also bitte einfach mit einer JRE 1.6 
öffnen und gut :-)

Grüße, Andi

von Chris P. (ein-stein)


Lesenswert?

Hi David,

wissen tu ich das auch nicht.
Das 12 01 scheint die Info "Next start" und die Aktuelle Zeit 
abzufragen. Das MMI schickt die Abfrage alle Sekunde. Immer mal fragt es 
auch 12[01] 81, was aber die gleiche Antwort ergibt.

13[17] 00 03 0b 06 02 00 00 f0 c7 c4 55 02 69 7c c2 55 03 01 23 00 00 3a 
00
pos1: fast immer 01, aber immer mal 03
pos2: wenn p1=01 dann 00 sonst 00, 01, 09, 0b
pos3: wenn p1=03 dann 06 sonst 05
pos7-10: nächste Startzeit (epoch)
pos12-15: aktuelle Zeit (epoch)
pos16: war immer 03 oder 04
pos18: zählt runter
pos21: zählt langsam hoch

Gruß
Christian

von Andi291 (Gast)


Lesenswert?

Guten morgen!

Aaaalso, mit meinem 310er Husky hab ich nun einen Testparkours im Keller 
aufgebaut.
Grundsätzlich läuft er, Kommunikation steht (kabelgebunden) auch.

Folgende Statusinformationen hab ich rausgefummelt:

zyklische Abfrage von 12 01 ergibt

00 01 Parken
00 04 Laden
00 02 02 06 Mähen Auto Mähwerk aus (Suchen?)
00 02 01 06 Mähen Auto Mähwerk ein
00 02 01 07 Mähen Manuell Mähwerk ein
00 05 Ausfahren/Suchen ?
00 07 00 06 01 Fehler außerhalb Mähbereich (nach Quittierung status 
"Parken")

Um weitermachen zu können (erste Test-Applikation) brauche ich noch die 
Information über Start / Stopsignal. Betriebsart umschalten zwischen 
home  man  Auto geht, aber Starten kann ich (noch) nicht...

Kann mir jemand die Info zur Verfügung stellen?

Danke und Grüße, Andi

von Andi291 (Gast)


Lesenswert?

Einen hab ich noch:

00 07 00 05 13 Fehler Mäher gestoppt (nach Quittierung status "Parken")

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hallo Andi,

kann man das mit den Starten nicht so erledigen das man den Timer 
einfach von 0:01 bis 23:59 stellt und dann über die Funktionen Home und 
Auto ihn fahren lässt ?

Starten sollte er doch nur wenn der Akku voll ist und das macht er doch 
dann auch so.

Zu der Abfrage 12 01 bei mir kommt da folgendes raus:

CMD: 13  LEN: 17
DATA: 00 01 00 05 12 24 00 F0 B3 01 00 02 9A 5F 01 00 5B 03 3A 00 00 B6 
06

sehe ich das richtig das du dich z.B beim parken nur auf die ersten 2 
Bytes
beziehst ? und nicht die Antwort nur 2 Bytes hat ?

Ich habe noch ein kleines Problem mit deinem Programm wenn ich für den 
Motortest z.b. schnell hintereinander auf senden klicke kommt irgendwann 
in dem received fenster nichts mehr an. Gesendet wird aber weil der 
Mähmotor sonst stehen bleibt.

Quittieren machst du am Mäher selber oder gibt es dafür auch ein 
Telegramm ?

Kannst du noch die Telegramme für Mähmesser blockiert und angehoben 
herausfinden ?

Gruß

David

von Chris P. (ein-stein)


Lesenswert?

ist das doch unterschiedlich oder war das mit dem Datum bei mir Zufall?
also nächste Startzeit scheint es nicht zu sein. Kann das das nächste 
Aufwachen sein? Ist es bei dir 1970 oder hat der Gardena kein Jahr oder 
ein anderes Startjahr?

00 01 00 05 12 24 00 F0 B3 01 00 02 9A 5F 01 00 5B 03 3A 00 00 B6
00 - ok
01 - parkt
05 12 24 00 - ?
F0 B3 01 00 - 14 Jul 1970 21:27:15
02 - ?
9A 5F 01 00 - 14 Jul 1970 15:18:55
5B 03 3A 00 00 B6 - ?

Gruß
Christian

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hi Andi,

haben wegen der Doku meinen Mäher zurückgesetzt. Die Daten sind 
richtig:-)

Gruß

David

von Andi291 (Gast)


Lesenswert?

Hallo zusammen!

@David:
Da hast Du theoretisch recht, kann man so machen. Ich würde aber lieber 
im Timer-Modus fahren. Wenn meine Frau in den Garten geht, schaltet Sie 
das Teil einfach am zentralen Bedienpanel aus. Habe ich momentan auch 
schon so gelöst. Allerdings unterbreche ich nur die Spannung, und damit 
läuft der Mäher nicht mehr selbsttätig los.
Und beim experimentieren hab ich gemerkt, dass das gute Stück zwar wohl 
die Betriebarten umschaltet, aber eben nicht aktiv in diese wechselt, 
sondern auf ein Start-Kommando wartet.
Der Trigger im "Normalbetrieb" ist Start und Klappe zu.

Beispiel:
Mäher mäht oder steht sinnlos rum (parkt). Ich schicke über RS232 
"home". Der Mäher nimmt das an (Antwort 0E 00 00 00). Passiert aber 
nichts. Mache ich den Deckel auf, steht auf dem Display "Home - Start 
drücken". Nach dem Start-drücken schreibt er dann (logischerweise) noch 
"Klappe zu".

Mit der Bytezählerei liegst Du richtig - die Antwort hat immer 17 (oder 
19?) Bytes. Ich hab nur auf die geschaut, die sich ändern.

Wg. Progrämmchen...das ist recht flach programmiert. Kann sein, dass 
sich die Empfangsroutine verläuft, wenn die Nachrichten zu schnell 
ankommen. Ich bau noch einen Timer ein...

Zum Quittieren hab ich noch kein Telegramm gefunden - mache ich am Mäher 
selbst.

Die von Dir angesprochenen Fehler versuche ich morgen nachzustellen.

@Christian:
Die vier Byte nach dem "Mäherstatus" variieren. Kann ich mir noch nicht 
so recht erklären. Wird hier recht deutlich:
00 02 01 06 Mähen Auto Mähwerk ein
00 02 01 07 Mähen Manuell Mähwerk ein
00 02 02 06 Mähen Auto Mähwerk aus (heißt glaub ich suchen)
Oder hier:
00 07 00 05 13 Fehler außerhalb Mähbereich
00 07 00 06 01 Fehler Mäher gestoppt

Grüße, Andi

von David G. (Firma: 10.08.1985) (follow2000)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

ich bin jetzt soweit durch. Es wird bestimmt noch die ein oder andere 
Ergänzung geben. Ich habe noch ein paar zusätzliche Sachen 
herausgefunden. Ein Blick lohnt sich. Sollte jemand Fehler finden 
einfach hier melden und sie werden eleminiert.

@Andi
Vielleicht kann Chris da weiterhelfen. Dein Problem versteh ich.
Ich freu mich schon auf das erste richtige Testprogramm:-)
Fehlercode müsste ich noch ein paar haben um das Dokument zu erweitern.

Schönen Abend noch:-)

David

von Andi291 (Gast)


Lesenswert?

Morgen David!

So, nochmal ein paar Anmerkungen...

In der Übersicht für das Kommandobyte:
00 = IO
03 = Fehler bei unbekannter Nachricht
05 = Autorisierung NIO

Fehler:
00 07 00 06 01 00 Fehler Mäher gestoppt
00 07 00 06 01 27 Fehler Mäher gekippt
00 07 00 05 22 27 Fehler Mäher angehoben
00 07 00 05 13 00 Fehler außerhalb Mähbereich nach Klappe öffnen und PIN
00 07 00 07 12 00 Fehler Schneidsystem blockiert vor Klappe öffnen und 
PIN

00 07 00 05 12 00 Fehler Schneidsystem blockiert nach Klappe öffnen und 
PIN
00 07 00 05 12 00 Fehler Mäher angehoben nach Klappe öffnen und PIN

--> 07 00 05 12 00 - unquittierter Fehler steht an, Warnung ist nach 
Autorisierung aus
--> nach Quittierung ist jeweils der "normale" Status wieder aktiv

Das Rätsel um das Zustandsmodell ist auch gelöst. MMI und Aux sind 
hinsichtlich Stop verodert, und hinsichtlich Start verundet. Bedeutet, 
wenn die MMI im normalbetrieb ist (Modus egal), gilt:
0e 00 Stop auslösen
0e 01 Start
0e 02 Home
0e 03 Manuell
0e 04 Automatik
0e 05 Suchen (Sinn fragwürdig)

Wunsch neue Betriebsart wird sofort umgesetzt, wenn der Mäher nicht in 
Stop ist. Also Zustand Mähen - 0e 02 -> Zustand parken. Wenn der Mäher 
gestoppt ist, brauchts hernach noch ein 0e 01.
Wichtig: Wird über MMI gestoppt, kann der Startbefehl nicht nur über Aux 
gegeben werden, sondern muss auch an der MMI erfolgen!

Grüße, Andi

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hallo Andi,

die Info´s füge ich der Doku bei. Wenn du noch mehr hast immer raus 
damit.

Ich bestelle heute schonmal die ersten Bauteile für die WLAN Huckepack 
Karte für den Mäher. Viel muss ja nicht drauf ein ESP ,ein 
Spannungswandler ,eine Debug Schnittstelle und der passende MicroMatch 
Stecker.

Ich habe mich für den ESP07 entschieden. Man kann ihn updaten und er 
unterstützt die Möglichkeit ihn in einen Modus zu schalten das er direkt 
die seriellen Kommandos als UDP raus schickt und auch andersrum. Das 
Problem ist das wenn man Einstellungen am Modul vornehmen muss dieses 
erst ausbauen muss und über die Debug Schnittstelle dieses wieder ändern 
muss. Ich werde meinen Mäher einen separaten AP verpassen.

Ich würde dir Andi und Chris kostenlos eine zur Verfügung stellen wenn 
ihr Interesse habt ?

Gruß

David

von Andi291 (Gast)


Angehängte Dateien:

Lesenswert?

Hallöchen!

Sehr gerne - kostenfrei muss aber nicht sein. Können wir gerne per Mail 
abwickeln...

Anbei eine neue Toolversion. Zyklisches senden funktioniert. Motorentest 
mit interval = 40 (= 400ms) funktioniert perfekt!

Da FHEM in Perl geschrieben ist, muss ich jetzt erstmal eine 
Windows-Fernbedienung auf perl-Basis bauen (will nicht am Raspberry 
debuggen). SOnst mach ich die Arbeit 2 mal.

Wird ne Weile dauern!

Grüße, Andi

von Chris P. (ein-stein)


Lesenswert?

Hi Andy,

als Java Mensch könntest du ja auf openHAB wechseln :)

Gruß
Christian

von Andi291 (Gast)


Lesenswert?

ABend!

Nene - in FHEM bin ich eingearbeitet :-) Das werf ich nicht alles weg 
:-P

von Chris P. (ein-stein)


Lesenswert?

ich hab gerade noch mal den 'Interceptor' eingebaut und Start gedrückt:
0e[01] 10 -> 0f[03] 00 00 00   start -> ok
0e[01] 10 -> 0f[03] 00 80 00   start -> ausserhalb
0e[01] 10 -> 0f[03] 00 70 00   start -> stoß

der Stop bei Klappe auf scheint über ein extra Pin von MMI 
weitergereicht zu werden.

Gruß
Christian

von Andi291 (Gast)


Lesenswert?

Servus!

So, ich war nicht ganz untätig - Protokoll in FHEM ist implementiert. Im 
Laufe der nächsten Woche müsste ich ein erstes Applikationsbeispiel 
fertig haben...

Fangt schon mal an, euch mit FHEM vertraut zu machen :-)

Das entsprechende Modul zum reinkopieren verteile ich dann hier...

http://fhem.de/fhem.html
http://fhem.de/fhem.html#Installation
http://fhem.de/commandref_DE.html
http://www.fhemwiki.de/wiki/Konfiguration

Grüße, Andi

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hallo Chris,

ich habe jetzt alle Bauteile hier und kann nächste Woche die 
Leiterkarten fertigen. Ich habe nur ein Problem. Wenn ich den Pin 7 
anzapfe für die 18V dann ist die Spannung immer vorhanden. Das Problem 
ist im Winter würde der die vollgeladene Batterie belasten. Das finde 
ich keine schöne Lösung auch wenn die Schaltung fast keinen Strom 
verbraucht.

Da ist ja noch ein Pin an dem im eingeschalteten Zustand +5V anliegen. 
Weisst du ob die durchgehend anliegen oder so wie die 3,3V nach 
einigerzeit nicht mehr vorhanden sind?

Gruß

David

von Andi291 (Gast)


Lesenswert?

Morgen!

Sicher? Ich glaube, die 18V werden über den Hauptschalter weggenommen...

Evtl. die sichere Lösung: Jumper...Dann könnte man auch noch eine 
Leitung zum Hauptschalter legen, wenn's wäre...

Grüße, Andi

von David G. (Firma: 10.08.1985) (follow2000)


Lesenswert?

Hallo Andi,

das ist sicher. Ich habe die Sachen auf ner Lochrasterplatine 
zusammengelötet und ausprobiert. Ich habe dafür die 5V vom Stecker 
genommen, diese lassen sich über den Hauptschalter abschalten. Ich habe 
das Telegramm gesendet damit der Mäher auch ohne Schleifensignal 
arbeitet (siehe Doku) und dann fahren lassen. Während er gefahren ist 
habe ich den Mäher fortlaufend angepingt. 5 Minuten ohne Probleme. Ab 
und zu verliert er mal ein Telegramm. Aber sonst lief er durch. Ich 
weiss aber nicht ob sich das unterscheidet vom Betrieb mit Schleife. Ich 
konnte auch nicht festellen das die 3,3V nach einiger Zeit nicht mehr 
vorhanden sind obwohl Chris mir geschrieben hat das ca 1. Minute nach 
dem Laden diese nicht mehr vorhanden sind.

Das einzig kleine Problem ist das, dass ESP Modul wohl nach einiger Zeit 
in den Schlaf geht wenn man nicht mehr über ihn kommuniziert. Er scheint 
immer mal wieder aufzuwachen zu schauen ob was da ist. Wenn man ihn 
fortlaufend anspricht passiert das nicht. Dieses sollte man 
Softwaretechnisch abfangen in dem wenn man ihn eine Anweisung schickt 
auch das Antworttelegramm auswertet. Kommt keins sollte man die 
Anweisung nochmals schicken und erst damit aufhören bis eine Antwort 
kommt. Wenn 3 sec keine Antwort kommt ist der Mäher nicht vorhanden.

Aber wenn das Modul fertig ist (Ich denke im laufe nächster Woche) 
bekommst du eins und kannst es ausprobieren. Wichtig ist das du ein FTDI 
Kabel benötigt um das Modul zum ersten Start einzustellen. WLAN SSID 
,Passwort ,UDP Ports, IP usw. Aber dafür schick ich dir dann noch eine 
Anleitung.

Gruß

David

von Chris P. (ein-stein)


Lesenswert?

Hi,

das ESP-03 geht mit der NodeMCU Firmware bei mir bisher nie in 
irgendeinen Sleep, das macht er nur nach einem Sleep Kommando. Das würde 
auch das Problem mit dem Standby Strom lösen. Der Spannungswandler den 
ich bisher benutze hat 2mA Ruhestrom. Das hält dann schon ein paar Tage. 
Ich hab mir eine Schaltung mit einem ESP-03 gebaut die sich selber 
ausschalten kann, beim Einschalten keine Daten zum Mäher schickt und 
auch Standby kann. Ich hab auch noch einen Sockel für ein I2C Gyro dran 
gebaut.
Die 3,3V schalten sich scheinbar nach dem vollständigen Laden ab und 
eine Minute vor dem Losfahren wieder an.
Das mit den 5V muss ich noch mal ausmessen.

Gruß
Christian

von David G. (Firma: 10.08.1985) (follow2000)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

ich habe die Leiterkarte fertig. Ich habe ein paar Bilder hochgeladen.
Ich nutze die 5V Spannungsversorgung.

Chris und Andi wollte ihr beide ein Modul haben ? Natürlich kostenlos 
zur Funktionskontrolle.
Wenn ja PM an mich.

Der ESP muss vor der ersten Inbetriebnahme eingestellt werden. Doku 
folgt. Es wird dazu ein RS232<->USB Kabel benötigt. Ich habe eins von 
FTDI genommen. Die haben ein Kabel was direkt noch 3,3V liefert. 
Belegung laut Bild.

Wenn sich das Modul im WLAN zu UART Modus befindet muss man um den Modus 
zu verlassen das Modul neu flashen. Falls das erfordelich ist wenn man 
z.b. das WLAN Passwort ändern möchte. Darum sind am ende 2 pads die kann 
man brücken und wenn man dann das Kabel aufsteckt befindet er sich im 
Prog Modus und lässt sich neu flashen. Er befindet sich dann wieder im 
Auslieferungzustand.

Gruß

David

von Andreas B. (andi291)


Angehängte Dateien:

Lesenswert?

Hallo Freunde der gepflegten Unterhaltung!

So, anbei wie versprochen eine erste Testversion.

Das geht:
- Kommunikation über serielle Schnittstelle (getestet mit Linux VM)
- zyklisches Anfragen von 12 01
- Steuern von OE (Auto, home, ...)

Das geht (noch) nicht:
- Ansteuern von Einzelfunktionen
- Anzeige Batteriestatus
- PIN senden
- Auswertung Zeitstempel von 12 00

So geht's:

1. FHEM installieren
  http://fhem.de/fhem.html
  http://fhem.de/fhem.html#Installation
  http://fhem.de/commandref_DE.html
  http://www.fhemwiki.de/wiki/Konfiguration
2. Das Modul (86_AutoMower.pm) ins Verzeichnis /opt/fhem/FHEM kopieren
3. in der Kommandozeile von FHEM ein shutdown restart eingeben
4. Folgende Definition in der fhem.cfg anlegen (oder aber im 
Webfrontend):
  define myMmower AutoMower /dev/ttyS0

Damit wird dann zyklisch alle 30s der Status abgefragt. Interval ist per 
Attribut änderbar.

Im Klartext angezeigt wird der Mäherstatus, der Messerstatus und, soweit 
bekannt, anliegende Fehlermeldungen.

Grüße, Andi

von Frederik (Gast)


Lesenswert?


von Frederik (Gast)



Lesenswert?

Hier mal das Robonect H30x Modul.

von Andreas B. (andi291)


Lesenswert?

Mahlzeit!

In der Tat ein hochinteressanter Thread! Nicht die schlechteste Idee, 
noch ein paar Layer mehr im Mower zu kapseln.

Ich les mich da mal ein - nichtsdestotrotz bin ich auch hier weiter mit 
dabei.

Wahrscheinlich bau ich das Modul dann nochmal komplett anders 
(zweistufig). Dann bleibt der EInsatz flexibel...

@Frederik:
ganz einfach - das Projekt ausm Robi-Forum hat Google noch nicht 
ausgespuckt, als hier schon Betrieb war :-)

Grüße, Andi

von Sascha K. (kuschelganxta)


Lesenswert?

Frederik schrieb:
> Hier mal das Robonect H30x Modul.

Hi,

wie kann man das kaufen und was ist ca. der Preis ?
Der Thread im Roboterforum ist schon echt lang ;-)

Danke & Grüße
Sascha

von Andreas B. (andi291)


Lesenswert?

Hallo Sascha,

die Fragen gehören aber genau dorthin - die wird Dir hier keiner 
beantworten können...

Grüße, Andi

von Chris P. (ein-stein)


Lesenswert?

wow, nicht schlecht, warum hat Google uns das vorenthalten?

Gruß
Christian

von Sigi_B (Gast)


Lesenswert?

Der Thread ist zwar schon ein Zeit nicht mehr aktiv, aber vielleicht 
hört noch jemand mit:

Das Problem:
Ich kann mit meiner Hardware die in der Doku beschriebenen Telegramme 
nicht reproduzieren und möchte mal fragen mit welchen SW-Versionen die 
beschriebene Lösung von Euch betrieben/getestet wurde.

Hintergrund:
Also ich habe seit 2013 einen R70Li und hatte vor einigen Wochen einen 
Defekt an einem Servotreiber wodurch ein Rad nicht mehr angetrieben 
wurde,
ansonsten hat der Mäher funktioniert.

Nachdem die Platine 250 EUR kostet dachte ich mir, wenn schon dann schau 
ich ob ich mit der alten Platine wenigsten eine Testumgebung für eine 
Fernsteuerung (ist das einzige was ich bei dem Gerät vermisse)aufbauen 
kann. Dabei bin ich auf diesen Thread gestossen und die Doku die hier 
bereits existiert (Credits an alle Beteiligten).

Ich habe mir dann beim Händler eine neue HaupPlatine und MMI-Platine 
geholt jeweils mit aktuellsten SW-Stand (5.01 MSW,5.05 MMI).
Die alten beiden Platinen habe ich im Zuge dessen ebenfalls auf diesen 
Stand bringen lassen.

Meine alten Platine (BJ 2013) gibt mir zwar eine Antwort auf ein 
Kommando zurück, aber sowohl Inhalt als auch Länge entsprechen nicht dem 
was in der Doku beschrieben ist.
Meine neue Platine (diese Woche geliefert bekommen) gibt mir auf keine 
Kommando eine Antwort zurück (Mäher läuft aber problemlos).

Ich kann die Antoworten die ich bekommen gerne näher ausführen, falls es 
hilft. Im Moment würde mich nur interessieren mit welchen 
Versionsständen diese Lösung beich euch funktioniert, bzw, wie alt diese 
Hardware ist.
Wäre dankbar für jede Rückmeldung.

Sigi

von Andreas B. (andi291)


Lesenswert?

Abend!

Der meine ist ein Husky 310 aus Baujahr 2014. SW-Version schon ein wenig 
was älter...
Ob der Gardena R70 hier baugleich ist - weiß nicht. Der R40Li scheint 
das gleiche Protokoll zu haben.
Inwiefern sind die Längen denn unterschiedlich? Hast Du mein Java-Tool 
mal probiert?

von Sigi_B (Gast)


Angehängte Dateien:

Lesenswert?

Hi Andreas !

Also ich habe anstatt hterm mal dein Tool probiert:
Für das Kommando "Uhrzeit abfragen" gebe ich im Feld Commandbyte  den 
Wert 0x02 ein und im Feld Datenbytes 0x00.
Wenn ich das sende bekomme ich ein rotes Popup "Command-byte is 
invalid".

Habe ich die Anwendung des Tools richtig verstanden ?
Das gesamte Telegramm wäre ja 02 02 01 00 8B 03.
Ich gehe davon aus dass du den Rest automatisch ergänzt oder ?

Sigi

von Andreas B. (andi291)


Lesenswert?

Lass mal 0x weg

von Sigi B. (sigi_b)


Angehängte Dateien:

Lesenswert?

Hallo Adnreas !

Das aber genau fordert das Tool, denn ich bekomme dann diese 
Fehlermeldung wenn ich 0x weglasse : "Command does not start with 0x002"

von Andreas B. (andi291)


Lesenswert?

Zefix...

Mein Rechner ist neulich abgeraucht. Muss erstmal nachdenken...

von Sigi B. (sigi_b)


Lesenswert?

Merde, heisst der Sourcecode zu deinem Tool ist verloren ?

von Andreas B. (andi291)


Lesenswert?

Naja, nicht ganz. Ist in der Jar enthalten, aber leider ohne 
Kommentare...

von Andreas B. (andi291)


Lesenswert?

OK - 0x2 ist eigentlich richtig. Welche Java-Version nutzt Du? Probier 
bitte 1.6, maximal 1.7

von Sigi B. (sigi_b)


Lesenswert?

Hallo Andreas !

Erstmal danke das du dir hier Mühe machst mir weiter zu helfen.
Ich habe derzeit JRE 1.7 installiert, wenn das ok ist ?
Allgemein zu dem Tool wie sind die beiden Eingabefelder zu sehen.
Das ganze Telegramm besteht ja aus den beiden Frame-Bytes 0x02 am Beginn 
und 0x03 am Ende. Fügst du diese automatisch ein ?
Dann würde es ja keine Sinn machen wenn ich sie im Kommandobyte mit 
dazuschreibe ?
Im Kommandobyte steht immer nur genau ein Byte ?
Prüfst du ob das Telegramm für ein bestimmtes Kommando vollständig 
syntaktisch richtig ist (Länge und Datenbytes) ?

Sigi

von Andreas B. (andi291)


Lesenswert?

Ich habe derzeit JRE 1.7 installiert, wenn das ok ist ?
Ja

Das ganze Telegramm besteht ja aus den beiden Frame-Bytes 0x02 am Beginn
und 0x03 am Ende. Fügst du diese automatisch ein ?
Ja

Dann würde es ja keine Sinn machen wenn ich sie im Kommandobyte mit
dazuschreibe ?
Ja

Im Kommandobyte steht immer nur genau ein Byte ?
Ja

Prüfst du ob das Telegramm für ein bestimmtes Kommando vollständig
syntaktisch richtig ist (Länge und Datenbytes) ?
Nein, kann ich leider nicht

P.S.: wenn elektrisch alles richtig ist - dann klappt der Empfang 
jedenfalls. Läuft da was rein?

von Sigi B. (sigi_b)


Angehängte Dateien:

Lesenswert?

Hallo Andreas !

Also die Meldung "Command does not start with 0x02" scheint erst zu 
kommen nachdem vom Mäher eine Antwort eintrifft, es schaut also so aus 
alsob dein Tool mit der Meldung das Antworttelegramm meint nicht das 
Request-Telegramm.
Zumindest wenn ich den Mäher abhänge dann kommt die Meldung nicht weil 
er in ein Timeout läuft. Sehe ich das richtig ?

Würde meine Beobachtung bestätigen die ich mit hterm gemacht habe, dass 
die Antworttelegramme eine andere Struktur haben:

Ich schicke:
02 02 03 01 00 8b 03  (Uhrzeit abfragen)
ich empfange:
FB FB FB FD FF EB FB

Ich werde das Gefühl nicht los das hier die neue SW Version von Gardena
was geändert hat, aber kann mich natürlich auch täuschen (leider habe 
ich mit der alten 3.01 nicht getestet, drumm fehlt mir der Gegenbeweis).


Sigi

von Andreas B. (andi291)


Lesenswert?

Ja, ist leider ganz anders. Damit kann mein Tool nicht.

Sorry!!!

von Sigi B. (sigi_b)


Lesenswert?

Schade, wäre genau das gewesen was ich gesucht habe, trotzdem danke 
vorerst für Deine Mühe;

Meine Thesen will ich allerdings für alle späteren Leser noch loswerden:

1.
Die hier beschriebenen Telegramme funktionieren spätestens mit MSW 5.01 
nicht mehr !

2.
Mit einer neuen Platine funktioniert der AUX1-Anschluss überhaupt nicht 
mehr !

Wer einen Gegenbeweis für meine Thesen hat, bitte gerne ;)


Ich werde mal schauen was hier noch herauszufinden ist, und werde es 
ggf. hier kundtun.


Sigi

von Chris P. (ein-stein)


Lesenswert?

Hi Sigi,

ich würde hier eher von einem elektrisch/logischem Problem ausgehen. Da 
sind einfach zu viele Einsen in der Antwort. Wenn du hast, dann könntest 
du mal einen Logic Analyzer oder Oszi mitlaufen lassen.

Gruß
Christian

von Sigi B. (sigi_b)


Lesenswert?

Bingo !

Man glaubt es kaum:
Da habe ich doch bei einem renommierten Distributor, neben diversen 
Kleinteilen, ein sündteures USB-TTL Kabel (mit original FTDI Chip) 
gekauft und dieses (auf Christian seinen Tip) gegen ein anderes 
getauscht (musste zuerst eineWandler von RS232/TTL ranlöten) und siehe 
da
es funktioniert !

Somit kann ich schon mal These 1 widerrufen, These 2 muss ich nochmals 
nachprüfen.

Danke Christian für den Tip.

von Sigi B. (sigi_b)


Lesenswert?

Also, nehme alles zurück , auch die neue Platine antwortet nun mit den 
Telegrammen, wie sie in der Doku beschrieben wurde. Sorry das ich hier
alles angezweifelt habe, aber auf die Idee das das USB-Konverter Kabel 
defekt ist wäre ich zuletzt gekommen.

Ich hoffe dass ich trotzdem noch meinen Beitrage leisten kann.
Mein Vorhaben ist es den Mäher nur mit einem 433Mhz/Serial- Modul 
auszustatten und dann im Haus z.B. einen RasberryPi mit demselben Modul 
und WebServer als Gateway für den Zugriff aus dem LAN auf den Mäher 
auszustatten.

Mal schauen wie es sich bewährt, ich werde meine Ergebnisse auf alle 
Fälle hier veröffentlichen.

Sigi

von Andreas B. (andi291)


Lesenswert?

Hallo Sigi,

nachdem nun nachgewiesen ist, dass es funktioniert...

Wenn Du Dich dem Selbstbau hingeben möchtest, habe ich vollstes 
Verständnis.
Ich selbst habe das NICHT fertig gestellt, sondern das Modul robonect 
(robonect.de) erworben. Funktioniert hervorragend und war nicht 
überteuert...

Grüße, Andi

von Sigi B. (sigi_b)


Lesenswert?

Hallo Andi !

Das Projekt habe/hatte ich auch im Auge und wäre mein Plan B.
Was WLAN betrifft habe ich so meine Bedenken was die Robustheit betrifft 
da das ganze ja ohne mein Dazutun 24x7 laufen muss, Stromverbrauch wird 
auch höher sein. Aber das sind alles unbelegbare Annahmen aus meiner 
Erfahrung, gut möglich das diese Lösung eine absoluter "No Brainer" ist.
Am Ende wird es eine Frage der zur Verfügung stehenden Zeit sein, und 
falls mich das ganze allzu sehr beschäftigt werde ich auch den bequemen 
Weg gehen, die robonect Module sind ja preislich ganz ok was ich gesehen 
habe.

Sigi

von Sigi B. (sigi_b)



Lesenswert?

Hallo wiedermal !

Also ich wollte ja hier den Stand meiner Arbeit von zeit zu Zeit 
preisgeben:

1. Ich habe mich für einen 433MHz Transceiver mit UART entschieden und 
diesen mit einer kleinen Adapterplatine (mit 1.27 und 2.54er LochRaster) 
direkt am AUX1 auf die MCB des Gardena R70Li aufgesteckt.

2. Ich verwende dafür einen HM Trp 433s. mehr dazu hier: 
http://www.hoperf.com/data_link/HM-TRP.html

3. Nachteile: Das Modul kommt mit 2mm Pinabstand daher und passt somit 
nicht sauber auf die Lochrasterplatine.
Weiters hat es einen Versorgungsspannungsbereich von 2.5-3.6V darum 
brauch ich einen Spannungsregler da ich das Modul immer betriebbereit 
haben möchte. Weiters  habe ich gleich mal aus Versehen ein Modul mit 5V 
betrieben und verheizt.

4. Vorteil: Das Modul ist denkbar einfach zu konfigurieren und hat mit 
100mW eine passable Ausgangsleistung (ok mit meinem Antennendesign mache 
ich das wieder zunichte).

5. Auf der Gegenseite habe ich einen Raspberry PI3 mit demselben Modul 
via
USB Serial Wandler.

Die gesamte Applikationslogik soll als Web-Applikation auf dem Raspberry 
PI laufen, dort bin ich derzeit drann. Wenn es was zu sehen gibt, folgt 
wieder ein Update.

Sigi

von Karsten (Gast)


Lesenswert?

Hallo Sigi,
ist es Dir auch schon gelungen, den Mäher aufzuwecken, nachdem er in den 
StandBy-Schlaf gefallen ist? Wie funktioniert das? Hat der Aux-Anschluss 
dafür einen Pin?

von Sigi (Gast)


Lesenswert?

Hallo Karsten !

So ein Zufall, ich hänge derzeit genau an diesem Problem ;)
Vielleicht können uns die Kollegen die hier schon einiges an Vorarbeit 
geleistet haben den entscheidenden Tipp geben:

Die Kommunikation über Aux1 funktioniert soweit wie hier beschrieben 
(ein paar zusätzliche Sachen konnte ich noch herausfinden) aber:

Sobald der Mäher außerhalb der programmierten Betriebszeiten ist, und 
weder im Zustand Mähen oder Laden, reagiert er mir nur noch auf ein 
einziges Telegramm und zwar das Telegramm für die Statusabfrage 
(0x12/0x01).

Bei allen anderen Telegrammen, die sonst problemlos beantwortet werden, 
kommt in diesem Zustand keine Antwort. Beispielsweise auch das Telegramm 
für die Zeitabfrage gibt keine Antwort :(

Ansonsten funktioniert das ganz passabel, ich habe ein Web-UI dafür 
gemacht und kann bereits die Timer anzeigen und einstellen. Aktueller 
Status anzeigen und Betriebsart wechseln sowie Start/Stop. Wenn 
allerdings diese Funktionen nur innerhalb der Betriebszeit gehe wäre das 
eich echter Showstopper ;(

@All
Also falls jemand von euch diese Schnittstelle selber in Betrieb hat 
oder das Problem kennt wäre ich (in dem Fall auch Karsten) dankbar für 
einen Hinweis.

Sigi

von Sigi B. (sigi_b)


Lesenswert?

Also, ich muss mir derweil selbst antworten:
Nach meinem derzeitigen Erkenntnisstand gibt es keine Möglichkeit den 
Mäher rein über den Aux1-Port mittels Telegramm aus dem Standby zu 
holen.

Solange er noch am Laden ist (auch außerhalb der Betriebszeit) antwortet 
er noch auf alle Telegramme, aber danach ist Feierabend (außer 
Statusabfrage).

Die Stop-Taste scheint hier der einzige Weg zu sein ihn in diesem 
Zustand aufzuwecken. Damit ist dann aber der Start via Aux1, wie oben 
beschrieben, nicht mehr möglich, dann müßte ein Start-Telegramm über den 
MMI-Port kommen.

Ich habe noch versucht ob evt. die restlich PIN's an Aux1 eine derartige 
Funktion haben. Unbekannt dabei ist wofür PIN 4 und 6 dienen (PIN 8 ist 
Gnd). Bei beiden habe ich mal platt versucht Gnd und 3.3V anzulegen - 
hat aber nichts bewirkt.

Ladestation kurz ein/auschalten verändert ebenfalls nichts.

Das einzige was ich mir noch denken könnte ist, dass es evt.eine 
magisches Telegramm gibt das man finden müßte.
Vielleicht könnte man auch mal bei Husquarna anfragen ob sie eine Doku 
für die Schnittstelle rausrücken ;))

Sigi

: Bearbeitet durch User
von Fabian (Gast)


Lesenswert?

Hallo  :)
Leider habe ich keinen 2016er Mäher mehr hier. Hat vielleicht jemand 
seinen gerade offen und kann mir sagen, ob auf dem 10 poligen Stecker 
(MMI / MAIN) die Batteriespannung (ca.19V) auf Pin 8,9 oder 10 liegt?
GND ist auf Pin 3.

Gemessen werden müsste also die Spannung zwischen 3 und 8, 3 und 9, 
sowie 3 und 10.

Wenn jemand mist, bitte vorsichtig sein und nicht mit der Messspitze 
abrutschen!

Vielen Dank!

von Markus K. (der_markus)


Angehängte Dateien:

Lesenswert?

Hallo Sigi,

was meintest Du mit "ein paar zusätzliche Sachen konnte ich noch 
herausfinden". Ich arbeite nach dem Dokument "Robomower_V0.8.pdf". Die 
seriellen Kommandos werden über einen ESP8266 per WLAN auf mein Synology 
NAS übertragen, allerdings nur solange die Spannung anliegt. Hast Du 
neue Abfrage-Befehle gefunden?

Falls sich jemand für die Auswertung interessiert, siehe Anhang.

Gruß,
Markus

: Bearbeitet durch User
von Sigi (Gast)


Lesenswert?

Hallo Markus !

In dem Fall gibt es doch noch jemanden der sich an der 
Aux1-Schnittstelle versucht ;)
Was ich zusätzlich noch herausgefunden habe sind zusätzliche Telegramme 
bzw. ein paar kleinere Fehler in der Doku.

Am Ende habe ich mich dann schweren Herzens für das Robonect Modul 
entschieden, das macht zwar viel mehr als ich eigentlich wollte und ist 
leider WLAN basierend aber die Fernstuerung funktioniert grundsätzlich.
Das Robonect Modul hat IMHO den umfassendesten Funktionsumfang des 
Protokolls
implementiert. Leider ist es nicht so stabil im Betrieb, deshalb hätte 
ich lieber den Weg über den Aux1 genommen.

Aber falls du das Kernproblem lösen kannst, nämlich wie man den Mäher 
aus dem Standby-Zustand aufweckt rein nur durch ein Telegramm über Aux1 
bist du mein Held ;)


Sigi

von Markus K. (der_markus)


Lesenswert?

Kannst Du mir bitte Deine Erkenntnisse (zusätzliche Telegramme, Fehler 
in der Doku) zugänglich machen?

von Markus K. (der_markus)


Lesenswert?

Kannst Du mir bitte Deine Erkenntnisse (zusätzliche Telegramme, Fehler
in der Doku) zugänglich machen?

von Sigi (Gast)


Lesenswert?

Hi !

Sorry, habe das Projekt im Sommer zur Seite gelegt da ich eben an 
selbigem Punkt nicht weitergekommen bin. Jetzt wird's kompliziert da ich 
zuerst eine virtuelle Maschine mit Windows 10 wiederbeleben muss, und 
dann muss ich den Code (war in C# geschrieben)mit der Doku abgleichen um 
die Telegramme zu finden die ich eben in Eigenregie noch herausgefunden 
habe.
Alles viel Arbeit für ein Projekt das man selber eingestampft hat, aber 
ich schau ob ich über Weihnachten Zeit finde.

Sorry nochmals, aber das eigentliche Problem ist leider auch mit meinen 
Zusatzinfos nicht gelöst, wie man eben den Mäher alleine mittels 
Telegramm wieder aus den Standby kriegt.

Sigi

von Kim (Gast)


Lesenswert?

Hi
I know this is an old thread.
I have a 315 and try to communicate with it through the AUX port.
Using the Mowerdecoder program i can open the connection and send:
Command:02
Data:02 01 00 8b 03

I exted to get the date back, but every time i get this:

RAW: 0203090009082F00000000008403    DIR: response  CMD: 03  LEN: 09 
DATA: 00 09 08 2F 00 00 00 00 00

Any clue? did someone tried to communicate with a 315?

von Marcel Klug (Gast)


Lesenswert?

Hallo
Mich würde mal interessieren wie ich die CRC berechne kann mir das mal 
einer erklären ??

Mit Freundlichen Grüßen

von Sigi_B (Gast)


Lesenswert?

Z.b. in C# so, die Bytes aus den der CRC berechnet wird sind nur die 
Payload. Also ohne die beiden Frame-Bytes 0x03 und 0x02.

var crc = Crc8.getInstance().compute(payload);

public class Crc8
    {

        private static Crc8 instance;
        private byte initial = 0x00;
        private byte finalXor = 0x00;
        private bool inputReflected = true;
        private bool resultReflected = true;

        private byte[] crcTable = new byte[] { 0, 49, 98, 83, 196, 245, 
166, 151, 185, 136, 219, 234, 125, 76, 31, 46, 67, 114, 33, 16, 135, 
182, 229, 212, 250, 203, 152, 169, 62, 15, 92, 109, 134, 183, 228, 213, 
66, 115, 32, 17, 63, 14, 93, 108, 251, 202, 153, 168, 197, 244, 167, 
150, 1, 48, 99, 82, 124, 77, 30, 47, 184, 137, 218, 235, 61, 12, 95, 
110, 249, 200, 155, 170, 132, 181, 230, 215, 64, 113, 34, 19, 126, 79, 
28, 45, 186, 139, 216, 233, 199, 246, 165, 148, 3, 50, 97, 80, 187, 138, 
217, 232, 127, 78, 29, 44, 2, 51, 96, 81, 198, 247, 164, 149, 248, 201, 
154, 171, 60, 13, 94, 111, 65, 112, 35, 18, 133, 180, 231, 214, 122, 75, 
24, 41, 190, 143, 220, 237, 195, 242, 161, 144, 7, 54, 101, 84, 57, 8, 
91, 106, 253, 204, 159, 174, 128, 177, 226, 211, 68, 117, 38, 23, 252, 
205, 158, 175, 56, 9, 90, 107, 69, 116, 39, 22, 129, 176, 227, 210, 191, 
142, 221, 236, 123, 74, 25, 40, 6, 55, 100, 85, 194, 243, 160, 145, 71, 
118, 37, 20, 131, 178, 225, 208, 254, 207, 156, 173, 58, 11, 88, 105, 4, 
53, 102, 87, 192, 241, 162, 147, 189, 140, 223, 238, 121, 72, 27, 42, 
193, 240, 163, 146, 5, 52, 103, 86, 120, 73, 26, 43, 188, 141, 222, 239, 
130, 179, 224, 209, 70, 119, 36, 21, 59, 10, 89, 104, 255, 206, 157, 172 
};

        private Crc8() { }

        public static Crc8 getInstance()
        {
            return instance == null ? instance = new Crc8() : instance;
        }

        public byte compute(byte[] bytes)
        {

            byte crc = initial;
            foreach (var b in bytes)
            {
                byte curByte = (inputReflected ? reflect8(b) : b);
                byte data = (byte)(curByte ^ crc);
                crc = crcTable[data];
            }
            crc = (resultReflected ? reflect8(crc) : crc);
            return (byte)(crc ^ finalXor);
        }

        private byte reflect8(byte val)
        {
            byte resByte = 0;
            for (byte i = 0; i < 8; i++)
            {
                if ((val & (1 << i)) != 0)
                {
                    resByte |= (byte) (1 << (7 - i));
                }
            }
            return resByte;
        }
    }

von Marcel Klug (Gast)


Lesenswert?

Hey dankeschön !!!
Ist selten das mal jemand einfach code Postet.

Also ist der Payload nur das längenbyte und die Datenbytes ?
Und wie bekomme ich das in arduino zum laufen ?
Sorry ich verstehe C# noch nicht so gut , bin aber lernfähig.

Mit Freundlichen Grüßen

von Sigi (Gast)


Lesenswert?

Ja genau der CrC wird über  Nutzdaten und Länge gebildet.
Wenn du diesen Thread aufmerksam vom Anfang weg durchliest bekommst alle 
Infos dazu, ich
habs auch so gemacht.
Mit Arduino Code kenn ich mich leider  nicht aus. Du musst die Syntax 
halt übertragen und F. Funktion der .Net Lib einen Ersatz finden.
Oder du googelst nach CRC8 Arduino , denke mal das das Problem schon oft 
gelöst wurde.

Sigi

von Marcel Klug (Gast)


Lesenswert?

Hmm,
Habe die FastCRC lib gefunden und getestet ...
https://github.com/FrankBoesing/FastCRC

kommt aber nichts gescheites raus...

mit freundlichen grüßen

von Conny G. (conny_g)


Lesenswert?

Marcel Klug schrieb:
> Hmm,
> Habe die FastCRC lib gefunden und getestet ...
> https://github.com/FrankBoesing/FastCRC
>
> kommt aber nichts gescheites raus...
>
> mit freundlichen grüßen

Was meinst Du mit kommt nichts gescheites bei raus?
Dass der CRC nicht mit dem übereinstimmt, was Du brauchst?

Wichtig zu wissen: es gibt verschiedene Parametrisierung und 
verschiedenenes Vorgehen für CRCs. So sind zB die Tables der zwei 8 Bit 
Varianten in der von Dir genannten Lib anders als die von Sigi 
gepostete.

von Marcel Klug (Gast)


Lesenswert?

Das habe ich gesehen und habe die Table auch angeglichen.
Trozdem stimmt der CRC nicht ...

Ich bin da zu blöd für

mfg

von Marcel Klug (Gast)


Lesenswert?

Also ich denke ich habe ein stück von dem code schon verstanden.

foreach (var b in bytes):

1. erstes byte von payload wird reflektiert.
2. dann wird dises byte mit XOR vom initalen crc verknüpft.
3. der crc ist dann die position in der tabelle also von diesem byte.
4. im prinzip wieder von vorne außer das dann die XOR verküpfung die 
ebend           errechnete crc ist.

am ende wird das ergebnis wieder reflektiert und mit dem finalXOR 
verknüpft.

Habe ich das jetzt soweit alles richtig verstanden ?

Was ich aber nicht verstehe, was macht

        private Crc8() { }

        public static Crc8 getInstance()
        {
            return instance == null ? instance = new Crc8() : instance;
        }

von Sigi (Gast)


Lesenswert?

das ist nut ein singleton , es erzeugt eine Instanz der Klasse Crc8. 
kann man auch einfach ohne instanz lösen indem du eine statische Methode 
machst und auch die ganzen Members statisch deklariert.

von Marcel Klug (Gast)


Angehängte Dateien:

Lesenswert?

Also ich habe das jetzt mal versucht um zu setzten.
Habe mein Programm mal angehängt.

Leider kommt nicht der richtige CRC ...

Zum beispiel bei Uhrzeit stellen.

0x02 , 0x02 , 0x04 , 0x80 , 0x0C , 0x28 , 0x00

sollte ja der CRC 0xA4 sein

bei meinem Programm kommt da 0xE6 raus ...

Wo liegt mein fehler ich werd noch bekloppt das kann doch so schwierig 
nicht sein ...

Mit Freundlichen Grüßen

von Marcel Klug (Gast)


Lesenswert?

halleluja!!!

Checksumme nach dallas-1-wire Standard

war der Hinweis ...

// The 1-Wire CRC scheme is described in Maxim Application Note 27:
// "Understanding and Using Cyclic Redundancy Checks with Maxim iButton 
Products"

uint8_t crc8_( uint8_t *addr, uint8_t len)
{
     uint8_t crc=0;

     for (uint8_t i=0; i<len;i++)
     {
           uint8_t inbyte = addr[i];
           for (uint8_t j=0;j<8;j++)
           {
                 uint8_t mix = (crc ^ inbyte) & 0x01;
                 crc >>= 1;
                 if (mix)
                       crc ^= 0x8C;

                 inbyte >>= 1;
           }
     }
     return crc;
}

so läuft das jetzt.

von Sonorobby (Gast)


Lesenswert?

Hallo in die Runde,
Ich habe mir einen r40li angeschafft und benötige nur die Befehle START 
STOP und setzen der ZEIT via UDP.
Ich bin leider nicht fündig geworden wie ich den Adapter hierzu bauen 
kann der dann mit dem AUX Port kommuniziert.
Hat das wer bereits Dokumentiert und ich bin zu blöd um es zu finden?
Auf eine Antwort würde ich mich freuen.
Als Gegenleistung würde ich ein kleines How To erstellen.
P.S.
Ich weiss es gibt diese WLAN  module um die 200,-€ zu kaufen die sind 
für mein Vorhaben overloaded und ehrlich gesagt zu teuer.

von Follow2000 (Gast)


Lesenswert?

Hi,

Ich habe seinerzeit eine PDF verfasst Robomow 0.8. ich bin auch daran 
interessiert so was zu entwickeln. Ich habe das Modul damals auch 
gekauft. Bin aber nicht zufrieden damit, es macht diverse Probleme. Bist 
du in der Lage sowas zu programmieren? Ich könnte die Hardware 
herstellen. Das Problem ist das man den Umweg über die Klappe gehen muss 
damit der Mäher die START STOP Anweisungen auch ausführt. Ich könnte ein 
Modul auf Basis des ESP32 bauen was die Kommunikation wlan - Uart 
übernimmt. Und einen schaltausgang für die Klappe besitzt. Natürlich 
alles Plug and Play.

Muss nur jemanden finden der sowas programmieren kann.

Gruß
Follow2000

von Sigi_B (Gast)


Lesenswert?

Hi !

Wie du im Thread siehst habe ich mich auch schon an dem Thema versucht 
und bin ziemlich weit gekommen dann aber aufgegeben:

1. Wie du richtig erkannt hast, reicht der UART alleine nicht um den 
Mäher aus dem Standby zu bringen, dazu braucht man z.b. den Schalter der 
Klappe.

2. Ich bin bewusst den Weg ohne Mikrocontroller auf dem Mäher selber 
gegangen und stattdessen einen Transceiver HM433 eingesetzt der der den 
UART via 433Mhz Funk auf einen stationären Rechner bringt.
Hat den Vorteil das du locker rund ums Haus kommst, das ist mit WLAN ein 
Problem, ja und viel wichtiger - du musst nie auf dem Mäher Updates 
machen.
Wenn man aber den Schalter der Klappe mit abfragen will funktioniert die 
Transceiverlösung alleine leider nicht mehr (drumm habe ich aufgegeben 
da das für mich die einzige wahre Lösung war).

3. Das WLAN Modul dass du meinst wird wohl das hier sein:
https://www.robonect-shop.de/shop/robonect-hx/
Hat damals nur 80EUR gekostet, musste ich aber nach 1 Jahr wieder 
ausbauen da es ausgefallen ist. Allgemein hatte es das Problem dass der 
WLAN Empfang durchwegs schlecht war und immer wieder mit 
Stabilitätsproblemen zu kämpfen hatte da es sich zwischen das Bedienteil 
und die Hauptplatine hängt. Zusätzlich hat es auch die ganze Logik aufm 
Mäher selber.

von sonorobby (Gast)


Lesenswert?

Follow2000 schrieb:
> Bist
> du in der Lage sowas zu programmieren? Ich könnte die Hardware
> herstellen. Das Problem ist das man den Umweg über die Klappe gehen muss
> damit der Mäher die START STOP Anweisungen auch ausführt. Ich könnte ein
> Modul auf Basis des ESP32 bauen was die Kommunikation wlan - Uart
> übernimmt. Und einen schaltausgang für die Klappe besitzt. Natürlich
> alles Plug and Play.

Ich bin kein programmierer. Eher der Tüftler...solange Testen bis es 
geht....

Es gab einen "Christoph" der in dem anderen Thread von dir "Gardena 
r40li oder Husqvarna G3 fernsteuern" sich dazu angeboten hatte :)

Hat denn dein ESP2866 esp07 Modul aus dem anderen Beitrag funktioniert? 
Das wäre ja schon quasi eine Fertige Lösung. Nur die Use Cases müssten 
dann definiert werden.
Welches Flachbandkabel hast du für den AUX Port verwendet?


Sigi_B schrieb:
> 2. Ich bin bewusst den Weg ohne Mikrocontroller auf dem Mäher selber
> gegangen und stattdessen einen Transceiver HM433 eingesetzt der der den
> UART via 433Mhz Funk auf einen stationären Rechner bringt.
> Hat den Vorteil das du locker rund ums Haus kommst, das ist mit WLAN ein
> Problem, ja und viel wichtiger - du musst nie auf dem Mäher Updates
> machen.

Meine Fläche ist recht klein daher würde WLAN funktionieren, ggf. ein 
Repeater rein.

Ich habe eine kleine Garage gebaut und dort ist ein Rolladen davor. d.h. 
ich will erst den Rollo hochfahren wenn es nicht regnet und dann den 
Mäher starten. Wenn ich feste Zeiten habe ist das ja kein Problem nur 
das "HOME"-Coming ist nicht abgedekt wenn es anfängt zu regnen.

Ich hab den Mäher noch nciht aufgeschraubt aber den Stoptaster über ein 
Relais zu schalten sollte machbar sein.

Start taster gibt es so glaube nicht nur wenn man auf manuell umstellt.

von Sigi_B (Gast)


Lesenswert?

Ok, wenn du nur eine Lösung für dich brauchst kannst natürlich WLAN 
machen.
Denke aber du findest mehr Unterstützung wenn du der gesamten Menschheit 
einen Dienst erweisen willst ;)

von Rob R. (rob_r)


Lesenswert?

Sigi_B schrieb:
> Ok, wenn du nur eine Lösung für dich brauchst kannst natürlich WLAN
> machen.
> Denke aber du findest mehr Unterstützung wenn du der gesamten Menschheit
> einen Dienst erweisen willst ;)

Ich würde das gemachte natürlich zur Verfügung stellen und ein 
ausführliches Tut schreiben mit Bildern etc.

Ich denke wie so viele ist es in diesem Thread sehr schwer geworden die 
Lösungswege herauszulesen.

Ich würde es dann in eine Anleitung packen:

1.) Hardware
2.) Software

etc...

von Rob R. (rob_r)


Lesenswert?

@Follow2000:

Gibt es eine noch aktuellere Version deines PDFs? (Version 0.8 ist ja 
hier drin)

Zu meinem tuen:
Ich habe einen Wemos D1 und das DC Shield hierzu verwendet.

Hast ein fertiges Programm für die WLAN Konfig des ESPs Oder eine 
Standard genommen?

Mit dem DC Shield kann man dann direkt an die 18V aus deiner 
Beschreibung.
Da der Wemos einen USB Anschluss hat kann man ein 50cm USB Kabel oder 
Buchse nehmen und sich somit einen aussen Anschluss erstellen damit man 
den nicht immer aufschrauben muss.

Das Regen Problem kann man ja mit evtl Timer setzen oder Home setzen 
dann starten lösen, solange die Klappe unten ist. Ich müsste es dann mal 
probieren.

Oder gibt es einen "PARKEN" Befehl?

von Rob R. (rob_r)


Lesenswert?

Marcel Klug schrieb:
>
> // The 1-Wire CRC scheme is described in Maxim Application Note 27:
> // "Understanding and Using Cyclic Redundancy Checks with Maxim iButton
> Products"
>
> uint8_t crc8_( uint8_t *addr, uint8_t len)
>................ {
> so läuft das jetzt.

@Marcel: Gibt es ein Final CRC.ino?

von Rob R. (rob_r)


Lesenswert?

Ich habe die Realisierung in meinem Fall abgeschlossen und wollte es 
hier zur Verfügung stellen.
Die Anbindung erfolgt über die Loxone Software:

Link: https://www.loxwiki.eu/pages/viewpage.action?pageId=48137811

Have fun....

von Markus K. (der_markus)


Lesenswert?

Ich habe diesen Thread lange nicht mehr beobachtet. Mein letzter (und 
einziger) Eintrag ist vom 25.10.2016. Aber ich finde es toll, dass es 
hier weitergeht.

Ich schreibe seit 4 oder 5 Jahren alle Staus-Informationen per WLAN 
(ESP-07) in eine Datenbank auf meine Synology Disk Station. Und lasse 
mir dann z. B. 'ne Mail schicken, wenn der Robi mal wieder nicht in die 
Station einfährt.

Ich bin immer an neuen Status-Abfragen und deren Antworten interessiert. 
Aktuell frage ich alle 2min folgendes ab:
1
Status..............02-13-15-00-04-0c-06-01-00-00-00-00-00-00-00-89-a2-ef-5c-90-03-30-00-00-0d-03
2
Batterie-Status.....02-15-15-00-f6-4a-44-02-4f-03-8c-00-b0-04-00-00-00-00-00-00-0c-fe-00-00-67-03
3
Radmotor-Status.....02-15-0f-00-00-00-ff-ff-08-00-00-00-01-00-0c-00-00-00-4c-03
4
Maehmotor-Status....02-15-07-00-00-00-19-00-80-01-b6-03
5
Sensor-Status.......02-15-0c-00-00-00-e2-ff-0a-00-d9-03-00-aa-00-b4-03

Weiß z. B. jemand, wie man die im Robi eingestellte Uhrzeit abfragen 
kann?

: Bearbeitet durch User
von Markus K. (der_markus)


Lesenswert?

Sorry, ziehe die Frage zurück. Die Uhrzeit kann man so abfragen:
1
Command => 02-02-01-00-8B-03
2
Status => 02-03-04-00-0A-15-0A-41-03
3
4
Zeichen 00 = 0x02 = immer 0x02 => passt
5
Zeichen 01 = 0x03 = Kommandobyte
6
Zeichen 02 = 0x04 = Längenbyte = 4 Datenbytes => passt
7
Zeichen 03 = 0x00 = Datenbyte 01
8
Zeichen 04 = 0x0A = Datenbyte 02
9
Zeichen 05 = 0x15 = Datenbyte 03
10
Zeichen 06 = 0x0A = Datenbyte 04
11
Zeichen 07 = 0x41 = Checksumme = 0x41 => passt (41)
12
Zeichen 08 = 0x03 = immer 0x03 => passt
13
14
Byte 04 = 0X0A = 10 => 10
15
Byte 05 = 0X15 = 21 => 21
16
Byte 06 = 0X0A = 10 => 10
17
=> Uhrzeit: 10:21:10Uhr

von Martin M. (martin13579)


Lesenswert?

@ Markus: Wie verwendest du deinen ESP? Nur als Gateway oder schreibt 
dieser die Daten selbst in die Datenbank?

Ich möchte ähnliches machen.

von Markus K. (der_markus)


Angehängte Dateien:

Lesenswert?

Auf dem ESP läuft ein einfaches Arduino-Programm "ESP8266_Robi_v2.ino" 
(siehe Anhang). So kann ich den ESP per Browser erreichen und die 
Kommando-Abfragen testen (Hex-String senden, Hex-String empfangen).

Auf der Disk-Station läuft ein Python-Programm, das per Cronjob zyklisch 
aufgerufen wird (aktuell alle 2 Minuten). Dieses Python-Programm 
schreibt die Daten in die MySQL-Datenbank auf meiner Disk-Station.

Zur grafischen Anzeige der Daten aus der MySQL-Datenbank nutze ich die 
Software amCharts (www.amcharts.com). Damit lassen sich im Browser (also 
z. B. auch auf einem Tablet) entsprechende Grafiken erstellen.

: Bearbeitet durch User
von Martin M. (martin13579)


Lesenswert?

@ Markus: Danke für das file. Noch eine Frage wie erfolgt das Absetzen 
eines Kommandos (Hex-String) im Browser?

OK habs gefunden: [IP]/send?cmd=02-02-01-00-8B-03

: Bearbeitet durch User
von Markus K. (der_markus)


Lesenswert?

Soll ich Dir noch das Python-Programm schicken? Dann siehst Du, wie die 
Abfrage, die Antwort-Auswertung und das Schreiben in die Datenbank 
funktioniert.

von Martin M. (martin13579)


Lesenswert?

@ Markus: Das wäre klasse

von Markus K. (der_markus)


Angehängte Dateien:

Lesenswert?

Hier das Python-Programm. Melde Dich, wenn Du Fragen hast.

von Rob R. (rob_r)


Lesenswert?

Schöne Sache. Du steuerst also den Mähroboter nicht an sondern 
verarbeitest nur die Statu informationen, wenn ich es richtig sehe.
Coole Sache, wenn ich Zeit habe werde ich das mal auch testen.

von Markus K. (der_markus)


Lesenswert?

Vor Jahren hat mein Robi bei starkem Regel eine Ecke des Rasens 
aufgewühlt. Daher kam die Idee, ihn bei Regen nicht fahren zu lassen. 
Das habe ich aber nie umgesetzt. Der aktuelle Projektstand ist für mich 
völlig ausreichend. Anhand der Aufzeichnungen konnte ich z. B. erkennen, 
dass der Akku schlapp macht (Laufzeit ging zurück, Akku-Spannung ging 
schnell in die Knie). Außerdem bekomme ich 'ne Mail, wenn ein Fehler 
vorliegt. So etwa einmal pro Monat gibt es z. B. Probleme beim Einfahren 
in die Ladestation. Ohne Mail-Benachrichtigung merke ich dass immer erst 
nach ein paar Tagen. Ich mach' es wie Google: Daten sammeln und dann 
gucken, was ich damit machen kann!

von Markus K. (der_markus)


Angehängte Dateien:

Lesenswert?

Zum manuellen Ansteuern habe ich mir noch eine HTML-/PHP-Webseite 
erstellt (siehe Anhang). Damit kann ich dann z. B die Uhrzeit 
einstellen.

: Bearbeitet durch User
von Steffen S. (bender78)


Lesenswert?

Hallo zusammen,

ich bin auf der Suche, meinen Mähroboter (Gardena R70li), fernzusteuern 
auf dieses Forum gestoßen. Finde ich super was Ihr bereits alles 
geleistet habt.
Da mir aber die fertige Platine die es bereits zu kaufen gibt, preislich 
leider nicht zusagt, bin ich auf die Seite von RobR. gestoßen, der mit 
Hilfe von Loxone seinen Robi eingebunden hat.
Da ich Programiertechnisch nicht so Fit bin gefällt mir die Lösung von 
Markus K. am besten.
Jetzt meine Frage, kann ich mit der Lösung von Markus K. ebenfalls an 
die Serielle Schnittstelle des Robi? Ich würde gerne den Robi in FHEM 
integrieren und denke, dass ich es so leichter schaffe, dort irgendwas 
zusammen zu kratzen was programmtechnisch läuft und alle paar Minuten 
den Status des Mähers aus FHEM heraus abfrägt.

Über eine kurze Info würde ich mich sehr freuen. Oder vielleicht hat 
jemand dies bereits schon in FHEM am laufen und kann mir hierfür weitere 
Hilfe geben.
Besten Dank im vorraus

von Markus K. (der_markus)


Lesenswert?

Ich greife mit dem ESP8266 auf die serielle Schnittstelle zu. Und 
ermögliche so den Zugriff auf den Robi.

von Nils B. (nlz)


Lesenswert?

Hallo zusammen,
ich versuche derzeit, nach den tollen Vorarbeiten hier im Beitrag, 
meinen Mähroboter (R40li Bj. 2017) per WLAN zu steuern. Ich habe es 
jetzt soweit, dass ich ein ESP8266 (Wemos D1 Mini Pro) mit der Software 
von Markus K. (ESP8266_Robi_v2.ino, vielen Dank an dieser Stelle an 
Markus) geflasht habe und das Modul auch über WLAN ansprechen kann. Ich 
habe testhalber mal RX und TX gebrückt und bekomme über z.B. 
http://192.168.x.y/send?cmd=02-12-01-01-9F-03 im Browser auch wie 
erwartet 02-12-01-01-9F-03 wieder ausgegeben. Danach würde ich sagen, 
dass das Modul soweit funktionieren müsste.

Habe dann den Mäher aufgeschraubt und das Modul eingebaut. Bevor ich 
alles wieder zusammenbaue, wollte ich das Modul wohl testen und habe den 
Mäher einfach mal eingeschaltet. Das Modul taucht auch im WLAN wieder 
auf, aber bei der Eingabe eines Befehl komme ich keine Rückmeldung im 
Browser. Auf dem Display passiert auch nix, steht zunächst auf PIN 
Abfrage. Habe die beiden folgenden Befehle probiert

PIN senden
http://192.168.x.y/send?cmd=02-0C-0C-04-00-01-E1-10-E5-03 (Pin ist 4321)

Statusabfrage
http://192.168.x.y/send?cmd=02-12-01-01-9F-03

Der AUX sitzt bei mir etwas anders (mehr links aussen auf der Platine) 
als auf den Bildern hier im Beitrag zu sehen. Hat sich vielleicht mit 
dem Baujahr etwas geändert, meiner ist von 2017? Kann man das überhaupt 
so testen, oder muss der Mäher samt Ladestation und Schleife installiert 
sein? Frage, weil ich die Station noch nicht wieder angeklemmt habe.

Hat vielleicht noch jemand eine Idee, was ich falsch mache?

von Markus K. (der_markus)


Lesenswert?

Ich kann Dir hier leider nicht helfen. PIN senden habe ich nie getestet. 
Aber die Status-Abfrage müsste funktionieren. Ich teste das aber immer 
nur dann, wenn der Robi einsatzbereit im Garten steht.

von Nils B. (nlz)


Lesenswert?

Vielen Dank für deine Rückmeldung. Ich habe den Mäher dann doch mal 
zusammengebaut und einsatzbereit gemacht und siehe da, ich bekomme die 
erwarteten Rückmeldungen. Ich habe es dann auch hier in einem Beitrag 
von Sigi (07.06.2016) gelesen, dass der Mäher nur beim Mähen oder Laden 
auf die Befehle antwortet.

Ich erweitere gerade deine Version (ESP8266_Robi_v2.ino) um ein onboard 
Webinterface. Werde die Tage mal meine Ergebnisse hier posten.

von Nils B. (nlz)


Lesenswert?

Wie schon kurz geschrieben, bin ich an einem Webinterface, wo ich einige 
Informationen vom Mäher anzeigen möchte. Dazu schicke ich in einem 
gewissen Interval die verschiedenen Commands (Status, Battery, Time, 
Date, Timer1, Timer2, Next start, ...) an den Mäher und bereite die 
Daten auf. Mit definierten Testanworten (hard-coded) im Debugmodus 
klappt das auch soweit. Wenn ich das Modul allerdings in den Mäher 
einbaue, kommen die Antworten auf die Commands leider relativ selten 
über (der Mäher ist dabei am mähen). Dadurch, dass die Auswertung auf 
dem ESP8266 passiert, kann das ja nicht am WLAN liegen. Batteriestatus 
scheint immer zu antworten. Die anderen eher sporadisch. Hat jemand 
Erfahrung, ob eine gewisse Zeit zwischen Commands liegen muss, dass der 
Mäher vielleicht für bestimmte Commands nur in einem bestimmten 
Zeitinterval erneut antwortet. Unten habe ich mal die Methoden zum lesen 
und schreiben auf der seriellen Schnittstelle angefügt. Aktuell ist es 
so, dass der Command versendet wird und anschließend etwa 1 Sekunde 
(1000 mal mit Delay 1) Daten gelesen werden. Kam keine gültige Antwort 
wird es bis zu 3mal erneut versucht. Der Parameter 'name' ist nur für 
den Debugmodus, damit wird eine Testantwort ermittelt.
1
String ExecuteSerialCommand(String cmd, String name)
2
{
3
  const int trials = 3;
4
  String response = "";
5
  for(int i = 0; i < trials; i++)
6
  {
7
    WriteSerialCommand(cmd);
8
    response = ReadSerialResponse(name);
9
    if(IsValid(response))
10
      break;
11
    else
12
      Log("Invalid response (" + cmd +" -> " +response+ ")");
13
  }
14
  return response;
15
}
16
17
18
void WriteSerialCommand(String cmd)
19
{
20
  do
21
  {
22
    cmd.substring(0, 2).toCharArray(ChrDummy, 3);       // erste zwei Zeichen in Char-Array wandeln...
23
    IntDummy = hex2int(ChrDummy, 2);                    // Char-Array in Integer wandeln...
24
    cmd = cmd.substring(3, cmd.length());               // String ab drittem Zeichen kopieren
25
    Serial.write(IntDummy);
26
  } while (cmd.length() > 1);
27
}
28
29
String ReadSerialResponse(String name)
30
{
31
    if(DebugOn)
32
      return GetTestResponse(name);
33
    
34
    String response = "";
35
    String separator = "";
36
    for (int i = 0; i < 1000; i++)
37
    {
38
      int c = Serial.read();
39
      if (c >= 0 && c <= 255)
40
      {
41
        response = response + separator + int2hex(c, 2);
42
        separator = "-";
43
      }
44
      delay(1);
45
    }
46
    return response;
47
}

Ich hoffe man versteht überhaupt mein Problem. Weiß zufällig jemand rat?

von Timo S. (timosch)


Angehängte Dateien:

Lesenswert?

Hallo zusammen...

Wer ist denn aktuell noch an dem Thema dran?
Hab mit eurer und anderer Hilfe von verschiedenen Seiten mal angefangen 
mein eigenes Modul zu bauen.
Deshalb an dieser Stelle ein Herzliches DANKE an alle mitwirkenden!

Bisher ein eher simpler Stand mit Web-Oberfläche.
MQTT folgt für meine OpenHAB Einbindung.

LG TimoS

von Timo S. (timosch)


Lesenswert?

Hallo Nils, ganz übersehen...

Ich schicke zb die Bytes für die Status-abfrage, lese danach direkt 
genau wie du, mache 300ms Pause und schicke dann die Batt-abfrage mit 
direktem lesen danach.
Evtl auch mal längere Pause dazwischen probieren.
Timer etc frage ich "noch" nicht ab.

LG

von Markus K. (der_markus)


Lesenswert?

Ich bin noch dran an dem Thema. Aber passiv. Mein System läuft und ich 
kann das machen, was ich mir vorgenommen hatte. Eigentlich hatte ich 
noch vor, den Mäher bei Regen anzuhalten, da er mir vor zwei Jahren eine 
Ecke meins Gartens „aufgewühlt“ hatte. Aber dieses Vorhaben habe ich 
noch nicht umgesetzt.

von Nils B. (nlz)


Angehängte Dateien:

Lesenswert?

Hallo Timo,

vielen Dank für deine Rückmeldung. Ist das eine eigene Platine? Ich habe 
ein Wemos D1 mini pro am Aux verwendet. Kannst du den Mäher auch Starten 
und Stoppen? Dein Oberfläche sieht jedenfalls ja schon gut aus. Habe 
meinen aktuellen Stand der Oberfläche auch mal angehängt. Nicht wundern, 
mein Mäher heißt Wall-E.

Wollte das Ganze am Ende auch über eine Json-Ausgabe in mein FHEM System 
einbinden.

Wollte die Timer und Intervalle jetzt noch über Web einstellbar machen, 
hoffe es liegt irgendwie am timing. Bissl ärgerlich, dass man den Mäher 
zum Life-Testen immer wieder komplett zusammenbauen muss.

von Timo S. (timosch)


Lesenswert?

Ja, ist eine eigene Platine, der zweite entwurf.
Wenn er mäht, kann man ihn starten und stoppen.
Start: 02-0E-01-01-6E-03
Stop: 02-0E-01-00-30-03

Warum lässt du dein Modul nicht einfach eingebaut?
Schau dir mal das Beispiel "WebUpdater" an.
Einfach neue Firmware über Weboberfläche hochladen ;)

LG

von Rob R. (rob_r)


Lesenswert?

Hallo in die Runde,

ich habe die Anleitung für die Integration in Loxone geschrieben, die 
oben verlinkt ist. Habe auch das Szenario "Regen, fahr heim" 
eingebunden, aber festgestellt dass ich es nur einmal verwendet habe im 
letzten Jahr.
Ich hätte Interesse an der erarbeiteten Weboberfläche von Timo S oder 
nlz. Falls Ihr das Sharen könnt würde ich mich freuen das mal zu testen.

Grüße
Rob

von Follow2000 (Gast)


Lesenswert?

Hallo Timo,

erstmal Hut ab für dein Projekt.
Ich beobachte den Thread schon länger.
Ich habe damals die PDF mit der Protokoll erstellt.
Sowas ähnliches hatte ich auch vor. Ein relativ simples Modul was nur 
auf dem AUX anschluss gesteckt wird. Das Problem ist das, dass Robonect 
Modul zwischen MMI und Hauptplatine gesteckt wird. Ich hatte trotz 
aktueller SW auf dem Robonect immer wieder mal das Problem das im 
Display SERVICE MODE eingeblendet wurde. Dann hieß es nur aufschrauben 
RESET drücken und wieder zu schrauben. Ich musste das so oft machen das 
die Schrauben jetzt nicht mehr halten. Ich habe mein Modul deshalb 
ausgebaut. Und wenn ich den Preis sehe für das neuste Robonect würde ich 
mich in den Hintern beissen wenn ich das dafür bezahlt hätte.

Ich finde das die sinnvollste Funktion davon war das ich :

- den aktuellen Fehler abfragen konnte
- Einen Mähauftrag erteilen konnte. Heist-> Mähe jetzt für 5 Stunden

Ich bin zeitlich nicht in der Lage bei der Software zu unterstützen. Ich 
könnte aber anbieten Hardware auf Basis deiner herzustellen falls es von 
jemanden gewünscht ist. Einfach um dein Projekt etwas anzutreiben.

Gruß
Follow2000

von Nils B. (nlz)


Lesenswert?

Nabend zusammen,

zunächst besten Dank für den Tipp mit dem WebUpdater, habe ich eingebaut 
und funzt. Mega, jetzt kann ich das Modul eingebaut lassen.

Und Danke für die Commands Start Stop, hatte primär das PDF 
Robomower_V0.8. An dieser Stelle auch besten Dank an Follow2000 für die 
Erstellung.

Ich würde mein Modul erst nochmal testen wollen, dann kann ich gerne den 
Code hier mal anhängen.

Gruß Nils

von Nils B. (nlz)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe mein Modul wieder in den Mäher eingebaut, aber aus den 
Antworten auf verschiedene Commands werde ich nicht schlau. Entweder 
kommt gar keine Antwort, oder nicht das was man erwarten würde. Ich habe 
zuletzt die Ursprungsversion von Markus (s. Anhang ESP8266_Robi_v2.ino) 
dann wieder aufgespielt um meine Ganzen Änderungen auszuschließen, aber 
leider auch ohne Erfolg. Hier ein paar Beispiele von Commands und 
Antworten vom Mäher. Hoffe ihr habt noch irgendeine Idee, woran das 
liegen könnte.
1
STATUS cmd: 02-12-01-01-9F-03 response: 81-22-23-04-0c-05-11-27-00-00-00-00-00-00-47-15-7d-5e-c7-05-2f-0a-00-07-02-00-00-00-6b-03
2
STATUS cmd: 02-12-01-01-9F-03 response: 81-22-23-04-0c-05-11-27-00-00-00-00-00-00-af-16-7d-5e-c7-05-39-0a-00-07-02-00-00-00-e4-03
3
STATUS cmd: 02-12-01-01-9f-03 response: a0-05-01-2a-03
4
 
5
BATT cmd: 02-14-01-01-4e-03 response: a0-05-01-2a-03
6
BATT cmd: 02-14-01-01-4E-03 response: 81-45-40-41-d8
7
BATT cmd: 02-14-01-01-4E-03 response: 02-15-01-05-84-03
8
 
9
NEXT cmd: 02-06-01-05-2A-03 response: 81-50-05-81-03
10
 
11
DATE cmd: 02-02-01-01-D5-03 response: a0-20-10-e4-07-03-1a-04-86-03
12
 
13
CLOCK cmd: 02-02-01-00-8B-03 response: a0-20-10-15-09-37-b6-03
14
CLOCK cmd: 02-02-01-00-8B-03 response: 81-20-10-15-10-06-08-03

von H.Joachim S. (crazyhorse)


Lesenswert?

nette Spielerei das Ganze, hätte mir früher auch Spass gemacht.
Ich habe alle Automatiken rausgenommen. Wenn schönes Wetter und Bedarf 
starte ich den händisch. Und manchmal setze ich mich mit ner Tasse 
Kaffee auf die Terasse und schau dem Kerlchen zu, sehr entspannend :-)

edit: nicht alles, was machbar ist macht auch Sinn :-)

: Bearbeitet durch User
von Timo S. (timosch)


Lesenswert?

Hallo Nils,

versuch mal kürzere Kabel, ESP nicht in der Nähe vom Motor positionieren 
oder ein anderes Modul.
Sonst probiere USB-Kabel dran, HTerm auf, über Browser Kommando 
absetzen.
Sollte dann sofort und richtig in HTerm auftauchen und dann SOFORT 
selbst unten ein HEX String (Antwort) zurück schicken.
Wenn das klappt, immer, dann ist es wohl eine Störung im Robi.

LG

von Nils B. (nlz)


Angehängte Dateien:

Lesenswert?

Guten Morgen Timo,

vielen Dank für deine Rückmeldung. Das Modul habe ich ähnlich im R40li 
platziert wie in der Loxone-Anleitung von rob_r (siehe Foto). Ist die 
Position eher ungünstig? Aber ich kann das Kabel trotzdem vielleicht mal 
tauschen und dabei noch kürzen.

Meinst du USB-Kabel an das Modul oder direkt an die Platine vom Mäher? 
Sorry, aber an der Stelle, auch mit HTerm habe ich wenig Erfahrung.

VG Nils

von Timo S. (timosch)


Lesenswert?

Würde das Modul eher von deinem Bild aus gesehen oben links plazieren. 
Wichtig wäre die Leitung nicht parallel zu Moterleitung und evtl etwas 
kurzer.

LG

von Nils B. (nlz)


Angehängte Dateien:

Lesenswert?

Habe das Kabel gekürzt und wie vorgeschlagen weiter oben links 
angebracht (s. Foto). Das scheint es wirklich gewesen zu sein, nochmal 
aller besten Dank für den Ratschlag.

von Timo S. (timosch)


Lesenswert?

Ich meinte eig. ganz oben links in der Ecke, ganz oben links...
Aber wenn es so funktioniert...

LG

von Nils B. (nlz)


Angehängte Dateien:

Lesenswert?

Ahoi,

ich habe heute das Modul nochmal getestet und es scheint prinzipiell 
schon mal zu funktionieren. Ich bekomme hin und wieder noch fehlerhafte 
Antworten vom Mäher, vermutlich ist die Position immer noch nicht 
optimal (sorry Timo, habe ich missverstanden). Anbei habe ich aber mal 
meinen aktuellen Stand der Firmware hochgeladen. Vielleicht hat ja der 
ein oder andere noch Tipps zur Verbesserung, auch gerne Code-technisch, 
ist mein erstes Arduino-Programm. Die Krux ist hier ja vielleicht auch 
der Speicherverbrauch.

Es ist so umgesetzt, dass das Modul alle 10s den Status und Battery und 
alle 120s die Timer abfragt und zwischengespeichert. Beim Log werden die 
letzten 15 Einträge gespeichert. Beim Aufruf der Webseite wir dann 
einfach der aktuelle Stand der Zwischenspeicherung ausgegeben.

Soweit erstmal.
Gruß Nils

von Burxel (Gast)


Lesenswert?

Hallo Nils,
ich beobachte diese Beiträge schon einige Jahre. Damals war mir das 
alles zu kompliziert und wenig Erfolgsversprechend. Ich selbst habe mir 
dann vor 3 Jahren das Connect Modul einbauen lassen. Mittlerweile 
funktioniert das auch ganz gut. Aber die WLAN Version interessiert mich 
weiterhin sehr.
Könnte man mit Deiner Variante auch bei bestimmten Ereignissen eine 
Webseite aufrufen? Ich habe bei mir im Netz einen Webserver laufen, mit 
dem ich per Webseite diverse Steuerungen anspreche um etwas zu schalten, 
E-Mails + SMS versende, Audio Ausgabe über Lautsprecher (unser 
Grundstück ist 110m lang mit 3 Gebäuden) usw.

Viele Grüße aus dem Taunus
Burxel

von Rob R. (rob_r)


Lesenswert?

@ Nils: Danke für die INO. Ich probiere es mal aus sobald ich langeweile 
hab :) Sieht gut aus. I LIKE.

von Timo S. (timosch)


Lesenswert?

Hallo Nils,

danke für deinen Code. Sieht so weit gut aus, schön strukturiert.
Jeder Programmierer hat da ja auch seinen eigenen "Style".
Ich bin zeitlich gerade etwas ausgelastet, werde aber sobald es was 
neues gibt mich hier zu Wort melden.

Noch eine Frage nebenbei: Geht dein Mäher "schlafen", wenn du häufig den 
Status abfragst? Ich bin noch nicht zum testen gekommen, aber meiner 
legt sich nach dem laden (nach Timer Ablauf) ja schlafen und ist erst 
kurz vor dem mähen (beim nächsten Timerstart) wieder erreichbar.
Kann man das schlafen gehen durch Statusabfragen unterbinden?

LG

von Markus K. (der_markus)


Lesenswert?

Das funktioniert leider nicht. Ich frage den Status alle 2min ab. Aber 
wenn der Mäher den Ladevorgang beendet hat geht er „schlafen“. Ich kenne 
leider kein Kommando, mit dem sich das verhindern lässt.

: Bearbeitet durch User
von Timo S. (timosch)


Lesenswert?

Und bei kürzeren Intervallen?
oder den Aktuellen Mode (AUTO,MAN,HOME) alle 20-30sek senden?
Auf iwas muss er doch reagieren...

von Follow2000 (Gast)


Lesenswert?

Wird der letzter Fehler auch angezeigt Timo?

Gruß
Follow2000

von Nils B. (nlz)


Lesenswert?

Was man in vielen Beiträgen ließt, lässt sich der Mäher im StandBy über 
den Aux nicht ansprechen bzw. aufwecken. Habe es selber noch nicht 
ausprobiert, wie er sich verhält. Werde es bei Gelegenheit mal 
beobachten, aktuell wird der Status alle 10s vom Modul abgefragt.

@Burxel: Sowas ähnliches habe ich auch vor, z.B. bei einem Error eine 
Mitteilung aufs Smartphone zu schicken. Wobei ich das vermutlich über 
mein FHEM-Server regeln werde. Aber man kann bei bestimmten Ereignissen 
auch vom Modul aus eine URL aufrufen. Direkt im Code sogar relativ 
simpel. Aufwändiger wird es, wenn man das auch über ein Webinterface 
konfigurieren möchte.

von Sigi (Gast)


Lesenswert?

Right, genau das ist das Kernproblem an der Lösung via Aux Port. Habe 
mein Projekt deshalb damals aufgegeben und bis heute keine Lösung dafür 
gesehen. Leider, sonst wäre es eine coole Sache.

von Nosti E. (nosti)


Lesenswert?

Hallo zusammen,

lese seit kurzem hier mit und habe mir gleich die nötige HW bestellt.
Derzeit haben die meisten ja etwas mehr Zeit für solche Sachen.
Als ich gestern die HW fertig hatte und mit dem SW anfangen wollte, habe 
ich den Beitrag von Nils mit seinem Code entdeckt.
@Nils:  Danke!!!
Das erspart mir sehr viel Arbeit.

Ich hab die SW noch etwas auf meine Bedürfnisse angepasst.
1. OTA-Update hinzugefügt  - Damit kann ich direkt aus der IDE ein 
Update per  Wlan einspielen
2. MQTT-Client integriert – so bekomme ich die Daten einfach in meinen 
IO-Broker
3. WifiMulti eingebunden – ich hab auf meinem Grundstück 3 AP. Somit 
kann er sich den jeweils  besten suchen und falls die Verbindung 
abreißt, nimmt er den nächsten. So zumindest die Idee.

Jetzt wollte ich die HW in meinem Husqvarna Automower 310 einbauen. 
Musste jedoch feststellen, dass die 18V Versorgung von Pin7 auch bei 
ausgeschaltetem Hauptschalter Spannung  führt. Steht zwar hier irgendwo, 
aber ich hab es nicht gelesen. ;-(
Ebenfalls hier im Forum steht, dass es auch einen Pin mit 5V geben soll. 
Diese werden wohl nur mit dem Hauptschalter ausgeschaltet. Kann mir 
bitte jemand sagen welcher PIN das ist?
Mein 2. Problem: Mein Mower hat 2 Ports. AUX1 und AUX2.
Hat schon jemand so ein Modul an dem 310 angeschlossen? Welchen Port 
soll ich nehmen?
Danke für eure Hilfe!
LG
nosti

von Karsten (Gast)


Lesenswert?

Moin,
ich habe Robonect nun auch schon ein paar Jahre verbaut. Die 
anfänglichen Probleme, die o.g. wurden, sind inzwischen zum Glück alle 
behoben und das Modul läuft wirklich extrem stabil. Der Preis ist schon 
krass gestiegen, aber ab und zu gibt es Gutscheincodes. Z.b. 
funktioniert "Forum80" immer noch und bietet derzeit 30€ Rabatt. Auch 
was die Funktionalitäten angeht, haben die ordentlich zugelegt. Gibt 
inzwischen schon etliche Apps für iOS, Android und sogar Skills für 
Alexa und Google Home.
Ich hatte damals auch überlegt, was eigenes zu entwickeln, bin nun aber 
froh, dass ich mir die Zeit gespart habe. ;-) [Ok, und meine Frau hat es 
mir verboten, da der Mäher sonst die meiste Zeit in meinem Bastelkeller 
stehen würde, als seiner Arbeit im Garten nachzukommen.... ;-) ]

von Rob R. (rob_r)


Lesenswert?

@Nosti E. schrieb:
>
> Ich hab die SW noch etwas auf meine Bedürfnisse angepasst.
> 1. OTA-Update hinzugefügt  - Damit kann ich direkt aus der IDE ein
> Update per  Wlan einspielen
....

Kannst Du den Teil noch posten?

von Nils B. (nlz)


Lesenswert?

Das würde mich auch wohl interessieren, prinzipiell sogar alle 3 
Anpassungen. Würdest du das zur Verfügung stellen?

von Nils B. (nlz)


Angehängte Dateien:

Lesenswert?

Nosti E. schrieb:
> Jetzt wollte ich die HW in meinem Husqvarna Automower 310 einbauen.
> Musste jedoch feststellen, dass die 18V Versorgung von Pin7 auch bei
> ausgeschaltetem Hauptschalter Spannung  führt. Steht zwar hier irgendwo,
> aber ich hab es nicht gelesen. ;-(
> Ebenfalls hier im Forum steht, dass es auch einen Pin mit 5V geben soll.
> Diese werden wohl nur mit dem Hauptschalter ausgeschaltet. Kann mir
> bitte jemand sagen welcher PIN das ist?

Hilft dir da vielleicht die Anleitung von rob_r weiter? Zu finden unter 
folgendem Link:

https://www.loxwiki.eu/pages/viewpage.action?pageId=48137811

Danach müsste es Pin6 sein, siehe auch beigefügte Abbildung daraus.

von Nosti E. (nosti)


Angehängte Dateien:

Lesenswert?

Hallo,

hab heute Vormittag meinen Wemos am Mower angeschlossen. Dabei habe ich 
diesen gleich zerstört.
Warum weiß ich leider auch nicht. Ich verwende einen kleinen step down 
Konverter um die 18V auf 3,3V runter zu regeln. Die 3,3V habe ich 
natürlich vorab genau eingestellt.
Darf ich eigentlich den Wemos direkt mit 3,3V versorgen oder muss ich 
ihn über den 5V Pin versorgen?

Bis jetzt habe ich meine Änderungen also nur am Schreibtisch getestet!

LG
Nosti

von Timo S. (timosch)


Lesenswert?

Sicherer ist 18V -> StepDown -> 5V -> Länksregler -> 3V3
Oder Vernünftigen DC/DC ala Floeth, Traco, Aimtec etc zu benutzen. 
StepDown ala China können auch mal kurze Spannungsspitzen beim starten 
durchlassen, was den ESP sofort in die "Cloud" befördert...
Also besser 5V an den 5V Eingang des Wemos.

Lg

von Nosti E. (nosti)


Lesenswert?

Timo S. schrieb:
> Sicherer ist 18V -> StepDown -> 5V -> Länksregler -> 3V3

Danke Timo! Werde ich beim nächsten machen.
LG

von Markus S. (schmeckm)


Lesenswert?

Hi Nosti,
danke für dein Sketch. Sehr gut. Ich habe die Version 1.14 verwendet. 
Diese Version kann ich auf Mini Pro laden, aber er verbindet sich nicht 
mit dem Netz.

Hast du an der Version weiterentwickelt bzw. hast du eine neue Version 
in der Zwischenzeit verfügbar. Lief die Version auf deinem Mini Pro?

Was ich an dieser Version sehr schätze ist dass es MQTT und OTA hat. Das 
ist hilfreich für einen Software update.

Wenn man einen Software Update durchführen will, dass File was man 
brauch für den Update ist das nur ein ubgedated *.ino Sketch oder was 
lädt man dann?

Gruss, Markus

Wall-E_ESP8266_v1.15.ino

von Follow2000 (Gast)


Lesenswert?

Hallo Zusammen,

ich habe eine Idee wie man vielleicht ein Telegramm finden kann um den 
Mäher wenn er in der Ladestation steht aufzuwecken.

Der Mäher wird über die STOP Taste auf jeden Fall geweckt. Die STOP 
Taste ist auf der MMI aufgesteckt. Die MMI ist mit der Hauptplatine 
verbunden.
Die MMI Verbindung ist auch eine serielle Schnittstelle im 3,3V Pegel. 
Die Telegramme haben den selben Aufbau wie die Telegramme auf dem AUX 
Anschluss.
Man muss mal loggen was die MMI der Hauptplatine sendet wenn man den 
STOP Taster betätigt, wenn der Mäher "eingeschlafen" ist. Und dann 
ausprobieren ob dieses Telegramm den Mäher über den AUX Anschluss 
aufweckt.

Dafür müsste man einen Versuchsaufbau machen:
Der Wemos D1 mini hat, so weit ich das im internet entnehmen konnte, 2 
UARTs.
Damit kommt man den auf dem MMI und den AUX Anschluss gleichzeitig.
Die Software von dem Wemos müsste erkennen wann der Mäher eingeschlafen 
ist und die Telegramme vom 2 UART (MMI) auf einer Website ausgeben. Ich 
gehe mal davon aus, das wenn der Mäher eingeschlafen ist die serielle 
Verbindung von der MMI zur Hauptplatine ruhig ist. Drückt man dann den 
STOP Taster sollte das erste Telegramm was kommt den Mäher wecken.

Ich versuche es selber mal das rauszubekommen. Ich weiss aber auch nicht 
genau was passieren muss damit der Mäher einschläft. Geht das vielleicht 
nur wenn er in der Ladestation steht ?


.... kann natürlich auch sein das der STOP Taster über
MMI -> MMI Kabel-> Hauptplatine einen Eingang an der Hauptplatine 
beschaltet und damit einen Interrupt auslöst. Das gucke ich mir heute 
abend bei meinem Mäher auf jeden Fall mal an.

Ich weiß das der Kollege der das Robonect Modul entwickelt wegen der 
Einschlafproblematik deshalb die MMI Verbindung genutzt hat.

von Markus S. (schmeckm)


Lesenswert?

Hi Nosti,

sorry habe den Sachverhalt falsch dargestellt. Ich kann die Version 1.14 
verwendet. Diese Version kann ich auf Mini Pro laden, aber wenn ich die 
Version 1.15 nehme dann kann ich diese zwar laden, aber er verbindet 
sich nicht
mit dem Netz, obwohl die WLAN Setting ok sind.

Die Version 1.15 wäre gut für mich, da ich auch mit dem Iobroker arbeite 
und MQTT ist hier hilfreich hier.

Hast du an der Software nochmal rumgebastelt?


Gruss, Markus

Wall-E_ESP8266_v1.15.ino

: Bearbeitet durch User
von Timo S. (timosch)


Lesenswert?

Hallo zusammen.

Der Stop-Taster geht nach meiner Meinung direkt auf die Hauptplatine. 
(noch nicht genau geguckt)
Man müsste wie bei dem Robonect die Pins von dem Stoptaster benutzen und 
dann über die Rx/Tx der MMI den Status abfragen (Fehler zu bestätigen? 
Pin erforderlich?) und dementsprechend Nachricht absetzen.
Dabei müssen natürlich auch Nachrichten zwischen MMI & Hauptplatine 
durchgelassen werden.
Hab einen zweiten 305er bekommen, der aber noch nicht funktioniert. Wenn 
der Lauffähig ist, werde ich weiter basteln und programmieren.
Meine Hoffnung war ja, das der mäher nicht schlafen geht, wenn man zb 
alle 15 Sekunden den Status anfragt... (noch nicht getestet)

LG Timo

Edit:
@ Markus: Nach dem überprüfen des Arduino-Sketch liegt *.bin und *.hex 
im Temp Ordner. Bsp: C:\Users\Nutzername\AppData\Local\Temp
Die *.bin sollte es sein.

@ Follow2000:
Der ESP8266 hat 1 1/2 UART. Bei dem anderen fehlt leider der RxD.
Wenn es wirklich so weit gehen sollte, evtl der ESP32 oder wie Robonect, 
einen MC mit mehreren UART angebunden am ESP8266.

: Bearbeitet durch User
von Nosti E. (nosti)


Lesenswert?

Hallo Zusammen,

sorry für die späte Antwort. Bei mir läuft der V1.15 seit gestern im 
Mower. Ich musste auf einen neuen Wemos warten. Den alten habe ich 
leider beim 1. Einbau zerstört.

MQTT läuft soweit. Ich musste nur noch die Größe des Puffers in dem die 
Mower-Werte übergeben werden erhöhen. z.B. 
String(mower).toCharArray(buf, 25);

Leider funktioniert OTA bei mir auch nicht mehr, sobald der Wemos im 
Mower verbaut ist. Wieso das so ist, kann ich leider auch nicht sagen. 
Am Schreibtisch hat es noch einwandfrei funktioniert.
Das Webupdate funktioniert jedoch einwandfrei.

@ Follow2000:
Für den 2. Uart könntest du versuchen EspSoftwareSerial zu verwenden.

von Markus S. (schmeckm)


Lesenswert?

Hallo Zusammen
ich könnte mein Wemos im Gardena RI-LI40 verbauen nach der Anleitung.
Ich habe habe WLAN, OTA geht auch , sofern der Roboter gutes WLAN hat, 
aber er zeigt leider keine Reaktion über das WLAN Webfrontend. Ich 
verwende hier die Version 1.5.
Ich werde ihn morgen nochmal aufschrauben, um zusehen ob was falsch lief 
mit dem TX and RX Kabel.

Ich selber betreibe das Wemos über den 5 Volt Pin. Ihr redet oben im 
Chat, dass es besser wäre den Roboter über den 18 Volt zu betreiben. Was 
sind dort die Vorteile?

Wenn es Vorteile hat, dann hänge ich morgen gleich ein DC-DC mit an und 
betreibe ihn auch mit 18 Volt.

Im Program gibt es noch die Settings "boolean DebugOn = true;" , kann 
dem Roboter im Betriebe auch debugen oder muss es immer false sein?

Gruss, Markus

von Nils B. (nlz)


Lesenswert?

Also ich verwende PIN 1 (RX) ,2 (TX),3 (GND) und 5 (3,3V) an meiner 
Wemos D1 mini Pro.

Die bool-Variable 'DebugOn' muss im normalen Betrieb auf false stehen, 
ansonsten bekommt man Pseudo-Antworten auf Commands. War mehr zum Testen 
der Software.

Kommt denn garkeine Webausgabe oder nur keine Werte ('no response')? 
Ansonsten reagiert der Mäher auf die Commands nur wenn der Mäher am 
Mähen oder Laden ist. Die Weboberfläche sollte aber trotzdem kommen, 
solange das Modul im WLAN ist.

Gruß Nils

von Markus S. (schmeckm)


Angehängte Dateien:

Lesenswert?

Hi Nils,

Das WLAN geht bei mir mit den 5 Volt Pin bzw. muss man es mit den 3 Volt 
betrieben?

D.h. ich bekomme Empfang und kann auch auf das Web Frontend zugreifen. 
Zumindest wird es angezeigt.

Es wird leider auf dem Web Frontend bei allen Werten "no response 
angezeigt". Muss den Mäher morgen nochmal aufmachen und die TX und RX 
checken. Irgendwie kommt dort nix an.


Br,  Markus

von Markus S. (schmeckm)


Lesenswert?

Hi Nils,
nur nochmal zur Bestätigung. Die Referenz am Flachbandkabel für den 
Stecker auf das AUX Port ist der Rote Pin, richtig?

Rot wäre dann RX, dann
TxD -> 2
GPIO15,GND -> 3
RST,EN,VCC -> 5


Gruss, Markus

von Nils B. (nlz)


Lesenswert?

Ja genau, so zumindest hab ich das. Pin 6 und 7 benutze ich nicht.

von Nosti E. (nosti)


Angehängte Dateien:

Lesenswert?

Hallo Markus,

ich hatte zuerst meinen Wemos auch falsch angeschlossen. Die Tabelle 
oben ist aus Sicht vom µC und nicht vom Mower. Somit war RX und TX bei 
mir vertauscht.

Anbei noch ein Bild vom Wemos mit den Aux Anschlüssen.

Bei der Suche nach einem Bild habe ich jetzt auch herausgefunden warum 
mein WeMos D1 mini Pro einen schlechteren empfang als ein WeMos D1 mini 
hat. Um den externen Antennen-Anschluss nützen zu können, muss ich noch 
einen 0 Ohm Widerstand um löten. Ich muss immer wieder feststelle, lesen 
macht doch Sinn.

Gruß Nosti

von Markus S. (schmeckm)


Angehängte Dateien:

Lesenswert?

Hi Nosti,

danke für deinen Tip. Jetzt hat es funktioniert.

Ich kann jetzt die Werte über das Web Frontend einsehen. Super Tip mit 
dem verdrehen von TX und RX das war die Lösung.

Noch eine Frage zu hast geschrieben, dass man die Buffer erhöhen muss 
für MQTT.

  String(mower).toCharArray(buf, 25);
  String mytopic = (main_topic + "/stat/status");
  mytopic.toCharArray(topic, 50);
  client.publish(topic, buf);

bezieht die die Erhöhung für für die erste Zeile oder muss man alle 
Zeilen auf 25 erhöhen?


Gruss, Markus

von Markus S. (schmeckm)


Angehängte Dateien:

Lesenswert?

Hi Nosti

Ich konnte heute die MQTT Werte im Iobroker integrieren. Wie gesagt die 
Werte sind irgendwie abgeschnitten.

Gruss, Markus

von Nosti E. (nosti)


Lesenswert?

Hallo Markus,

darum musst du noch den Buffer erhöhen!

Zeile 63:
1
static char buf[25];
Ab Zeile 1373: die Länge von 10 auf 25 erhöhen
1
toCharArray(buf, 10);
 -->
1
toCharArray(buf, 25);

Gruß Nosti

von Markus S. (schmeckm)


Lesenswert?

Hi Hosti

Ja danke. Die Werte kommen jetzt einwandfrei über MQTT an. Was nur 
auffallend ist, dass der Mini mit WLAN irgendwie viel Strom frisst. Der 
Mäher geht viel schneller in die Ladestation.

Der Mini Pro ist mit 70mAh abgeben.
Muss mal die Größe vom Akku checken.

Wenn er in der Ladestation ist, sind die Werte halt unbestimmt. Könnt 
man ggf schon im Code abfackeln, damit saubere Werte an dem MQTT 
ankommen.

Gruß Markus

von Markus S. (schmeckm)


Lesenswert?

Hi Nosti

ich stehe gerade auf dem Schlauch. Wenn ich den Mäher per MQTT nach 
Hause senden möchte, dann gehe ich auf MQTT topic:

Automower/cmnd/home

Was für einen Wert muss ich dann auf dem Topic setzen?

Normalerweise muss ich bei einer Lampe immer on oder Off setzen.

Gruss, Markus

_______________________________

#ifdef WITH_MQTT
void callback(char* gottopic, byte* payload, unsigned int length) {
  String str = String();
  String("0").toCharArray(buf, 10);
  for (int i = 0; i < length; i++) {
    str += (char)payload[i];
  }
  String mytopic = (main_topic + "/cmnd/home");
  mytopic.toCharArray(topic, 50);
  if(strcmp(gottopic, topic) == 0 & str == "1") {
    ExecuteSerialCommand("HOME");
    client.publish(topic, buf);
  }
  mytopic = (main_topic + "/cmnd/manual");
  mytopic.toCharArray(topic, 50);
  if(strcmp(gottopic, topic) == 0 & str == "1") {
    ExecuteSerialCommand("MAN");
    client.publish(topic, buf);
  }

von Hans (Gast)


Lesenswert?

Hallo zusammen,
ein paar Anmerkungen zum 320er:

1. Aux1 funktioniert wie beschrieben. Pin1 ist links an der Kerbe, dann 
wird im zickzack durchgezählt.
2. Das Bild mit der Steckerbelegung oben stimmt. RX vom WemosD1 kommt an 
Pin2 vom AUX Stecker.
3. der 320er hat ein sehr schwaches serielles Signal. Auf dem WemosD1 
muss man daher den 470 Ohm widerstand vom RX pin zum Treiberbaustein 
entfernen. Vorher aber noch programmieren und OTA testen ;-)
4. Messen auf der Platine vom Mäher ist schwierig. Das Teil ist 
lackiert.

5. Das wall-e Programm nutzt multiwifi. Damit geht aber OTA aus der 
Arduino IDE heraus nicht mehr.

6. Ich hab den Empfangsteil umgeschrieben. Der war ein wenig hakelig.

bool WaitforSerial(unsigned int bytes, unsigned int timeout)
{

    unsigned long now= millis();

    while ( (millis() - now) < timeout){
      if (Serial.available() >= bytes) return true;
      server.handleClient();
    }
    return false;
}

String ReadSerialResponse(String name)
{
    String response = "";
    String separator ="-";

    if(DebugOn)
      return GetTestResponse(name);


    if (! WaitforSerial(3,1000) ) return ("timeout1");           // wait 
for first 3 bytes to come

    response =  int2hex(Serial.read(), 2); // start byte
    response += separator + int2hex(Serial.read(), 2); // command byte
    char payload  = Serial.read();
    response += separator + int2hex(payload, 2); // length

    if (! WaitforSerial(payload+2,1000) ) return ("timeout2" + 
response);
    for (int i = 0; i< payload; i++){
      response += separator + int2hex(Serial.read(), 2); // payload
    }

    response += separator + int2hex(Serial.read(), 2); // crc
    response += separator + int2hex(Serial.read(), 2); // end byte

    return response;
}

von Nosti E. (nosti)


Lesenswert?

Hallo Markus,

ich habe "1" verwendet.
1
str == "1"
Du kannst dort natürlich auch "ON" oder etwas anderes eintragen.

Um zu erkenne ob der Befehl auch angekommen ist, wird dieser gleich 
wieder auf "0" zurückgesetzt.
1
String("0").toCharArray(buf, 10);
2
client.publish(topic, buf);

Gruß
Nosti

von Nils B. (nlz)


Lesenswert?

Nabend,

ich habe mal ein Repository bei GitLab für die Firmware angelegt.

Link: https://gitlab.com/nbrgmn/wall-e-esp8266-automower

Dachte darüber lassen sich jegliche Modifikationen und Verbesserung 
einfacher verwalten und versionieren. Der Masterbranch ist derzeit noch 
auf meiner initialen Version 1.14. Die Erweiterungen von Nosti mit v1.15 
habe im Developbranch zumindest schon mal hinzugefügt. Habe die Version 
selber noch nicht getestet und die Anpassung bzgl. der Buffergröße für 
MQTT ist auch noch nicht drin. Die Modifikation der Methode 
ReadSerialResponse von Hans können wir auch gerne integrieren, wenn das 
besser läuft.

Dann schreibt Hans, dass OTA mit MultiWifi nicht funktioniert...kann das 
jemand bestätigen oder auch dementieren?

Hoffe der ein oder andere hat Lust an der Firmware zu schrauben. Bei 
Interesse gerne melden, dann nehme ich euch im Repo mit auf.

von Markus S. (schmeckm)


Lesenswert?

Danke Nosti, Perfekt. MQTT hilft wirklich bei FHEM oder dem IoBroker

von Christoph (Gast)


Lesenswert?

Hallo,
auch ich habe so einen R70Li mit Zeit- und Datums-Amnesie.
Bin sehr an dieser Firmware interessiert, tolles Projekt!
Hat jemand schon versucht, die Zeit und das Datum aus dem Netz in den
Automower zu übertragen?
Wenn das noch drin wäre, automatisch am besten, das wäre super!
Ansonsten werde ich demnächst mal einen ESP8266 in den Mower 
verpflanzen, nur mal um nachzusehen, ob der Garten WLAN-mäßig gut 
erschlossen ist.
(Auch mir waren die €180 für den robonect zu viel, nur zum Stellen von 
Datum und Uhrzeit.)
Danke für die tolle Software und Gruß aus Stuttgart!
Christoph

von Daniel D. (duesentrieb2168)


Lesenswert?

Hallo und schon mal 1000 Dank für die klasse Arbeit!
Habe mir die Woche auch einen D1 Mini in meinen R70li installiert und 
funktioniert soweit wunderbar.
Bei der Installation hatte ich nur leichte Probleme, da bei mir die 
Schrauben der Gummidämpfer eingerostet sind, sodass ich sie auch mit 
Kriechöl, etc. nicht aufbekommen habe.
Meine Lösung war die Dämpfer am Mäher zu lassen und nur von der 
Oberseite her abzuschrauben - siehe auch folgendes Video: 
https://www.youtube.com/watch?v=0uoHgsoCFz0&feature=youtu.be&t=76

Ich würde mich die Tage an der Weiterentwicklung des Codes im Repository 
beteiligen - folgendes habe ich bei mir lokal umgesetzt:
- Name und Typ des Mähers zentral setzen
- MQTT default off (hatte mich anfangs gewundert, warum ich keine 
Webseite erreichen konnte - er hat auf den Server gewartet)
- Weitere Fehler- und Statuscodes eingepflegt, da bei der R70li 
scheinbar ein paar andere HEX-Werte zurückmeldet
- Ich hatte gestern einen Überlauf bei der Batteriekapazität (65432 mAh) 
- da wollte ich auch nochmal drauf schauen

Ich nutze bei mir MultiWifi und hatte mich schon gewundert, warum ich 
keine Updates über OTA durchführen kann - die Aussage kann ich aus der 
Praxis bestätigen (Webupdate funktioniert tadellos).

Verbunden ist der Mäher bei mir an FHEM über ein HTTPMOD (Daten vom 
JSON-Interface und Befehle über URL).

Habe auch noch zwei offene Punkte:
Gibt es einen Vorteil sich an die 18V-Versorgung zu hängen? Wenn der 
Mäher sich schlafen legt, ist er auch darüber nicht erreichbar, korrekt?

Nutzt ihr Automatismen über die Hausautomatisierung? So wie ich es 
bisher raus lese gibt es dadurch, dass der Mäher nach dem Laden in den 
Ruhezustand geht keine Möglichkeit ihn zu automatisieren (z.B. bei Regen 
Heim zu fahren und dann wieder loszuschicken), oder?

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.