Mäher von Gardena / Husqvarna automatisieren

Begonnen von Accureve, 30 Mai 2020, 17:02:53

Vorheriges Thema - Nächstes Thema

Accureve

Hallo,

viele Gardena / Husqvarna Mäher, die von Haus auf keine Fernsteuerung besitzen, lassen sich mit einem ESP8266 an die Hausautomatisierung anbinden.

Umfang: Wenn der Mäher aktiv ist (Mähen oder Laden) kann man folgende Aktionen durchführen:
- Starten / Stoppen
- Modus wechseln (Auto/Man/Home)
- Akkuinformationen lesen (Ladung, aktueller Verbrauch, Temperatur)
- Mähzeiten lesen und schreiben
Vorschau auf die Oberfläche: https://www.mikrocontroller.net/attachment/453049/Bildschirmfoto_2020-04-14_um_09.53.00.png

Damit ist möglich:
- Mäher von FHEM aus starten
- Mäher bei Regen zurückfahren lassen und Mähen für nächsten Tag vormerken

Benötigt wird:
- 1x ESP 8266, z.B. Wemos D1 Mini Pro (5-10€)
- 1x MMI Stecker 2x4P
- 1x Flachbandkabel 8P
- Programm für den ESP8266 - über Arduino einspielen: https://gitlab.com/nbrgmn/wall-e-esp8266-automower/-/tree/develop
- Erstellen eines HTTPMOD in FHEM - hier beispielhaft hinterlegt: https://www.mikrocontroller.net/topic/304526#6262237
- Anpassung der Mäherzeiten - beispielhaft hier: https://www.mikrocontroller.net/topic/304526#6274964

Randbedingungen:
- Der Mäher ist im Standby nicht ansprechbar/weckbar (außerhalb der Mähzeiten oder wenn er längere Zeit (ca. 20 Minuten) steht)

Weitere Infos und die Historie der Entwicklung können in folgendem Thread nachgelesen werden:
https://www.mikrocontroller.net/topic/304526

Hier sind Bilder hinterlegt, wie der ESP8266 eingebaut wird:
https://www.loxwiki.eu/pages/viewpage.action?pageId=48137811

Hier sind die Kommandos, mit denen der Mäher angesprochen werden kann, falls jemand zusätzliche Funktionen programmieren will:
https://www.mikrocontroller.net/attachment/278555/Robomower_V0.8.pdf

Bei Fragen einfach melden!

Guybrush

das ist was für Leute, die Spaß am basteln haben...

Ich hab meinen Husqvarna auch gerade an FHEM angebunden. Umbau des Mähers und Einbindung in FHEM dauerte keine 30 Minuten.

Passendes Modul bestellen:
https://www.robonect-shop.de/shop/robonect-hx/

in FHEM dann:

defmod Automower Robonect <IP>
attr Automower basicAuth <USER>:<PASSWORD>
attr Automower DbLogInclude wlan-signal-prozent:300:force,umwelt-temperatur:300:force,umwelt-feuchte:300:force,spannung-batterie:300:force
attr Automower devStateIcon parken:scene_robo_lawnmower@#000080 schlafen:scene_robo_lawnmower@blue maehen:scene_robo_lawnmower@green suche-base:scene_robo_lawnmower@magenta suche:scene_robo_lawnmower@magenta laden:scene_robo_lawnmower@yellow fehler:scene_robo_lawnmower@red schleife-fehlt:scene_robo_lawnmower@red offline:scene_robo_lawnmower@#8b0000
attr Automower event-min-interval .*:3600
attr Automower event-on-change-reading wlan-signal-prozent:5,umwelt-temperatur:1,umwelt-feuchte:1,spannung-batterie:50
attr Automower pollInterval 90
attr Automower room Garten
attr Automower timeout 15
attr Automower useHealth 1
attr Automower webCmd auto:manuell:start:feierabend

Accureve

#2
Robonect hatte ich auch überlegt, mich allerdings aus zwei Gründen dagegen entschieden
- 10€ vs 185€ für die Hardware
- ESP8266 kann nach eigenen Wünschen erweitert und konfigurieren werden (z.B. Erweiterung mit GPS-Position o.ä.)

Vorteil des Robonect-Moduls ist, dass der Mäher auch aus dem Standby geweckt werden kann...

Umbau und Einbinden des ESP8266 ist mit obiger Anleitung in 40 Minuten machbar (wenn man schon mal was mit einem Arduino gemacht hat und sich die Schrauben des Gardenas sauber lösen lassen).
Hier die Konfiguration für FHEM:
defmod Mower HTTPMOD http://x.x.x.x/json 60
attr Mower reading01Name Status
attr Mower reading01Regex "mower":"([a-zA-Z0-9-:() ,']*)"
attr Mower reading02Name Cover
attr Mower reading02Regex "cover":"([a-zA-Z0-9-:() ,']*)"
attr Mower reading03Name BatteryVoltage
attr Mower reading03Regex "batteryvoltage":"([0-9.]+) V"
attr Mower reading04Name BatteryCapacity
attr Mower reading04Regex "batterycapacity":"\s?(.+) mAh"
attr Mower reading05Name FlowingCurrent
attr Mower reading05Regex "flowingcurrent":"\s?(-?[0-9.]+) mA"
attr Mower reading06Name Temperature
attr Mower reading06Regex "temperature":"([0-9.]+)"
attr Mower reading07Name LastLogEntry
attr Mower reading07Regex "lastlogentry":"([a-zA-Z0-9-:.() ,']*)"
attr Mower reading08Name NextStart
attr Mower reading08Regex "nextstart":"([a-zA-Z0-9-:.() ,']*)"
attr Mower set01Name Start
attr Mower set01NoArg 1
attr Mower set01URL http://x.x.x.x/send?name=START
attr Mower set02Name Stop
attr Mower set02NoArg 1
attr Mower set02URL http://x.x.x.x/send?name=STOP
attr Mower set03Name Home
attr Mower set03NoArg 1
attr Mower set03URL http://x.x.x.x/send?name=HOME
attr Mower set04Name Manual
attr Mower set04NoArg 1
attr Mower set04URL http://x.x.x.x/send?name=MAN
attr Mower set05Name Automatic
attr Mower set05NoArg 1
attr Mower set05URL http://x.x.x.x/send?name=AUTO
attr Mower set06Name MowToday
attr Mower set06NoArg 1
attr Mower set06URL http://x.x.x.x/send?automation=MOWTODAY
attr Mower set07Name MowNextDay
attr Mower set07NoArg 1
attr Mower set07URL http://x.x.x.x/send?automation=MOWNEXTDAY
attr Mower set08Name AbortDays
attr Mower set08NoArg 1
attr Mower set08URL http://x.x.x.x/send?automation=ABORTDAYS
attr Mower stateFormat Status

Mäher starten:
defmod di_Mower_Start DOIF ([10:05|Mo Fr]) (set Mower MowToday) DOELSE
attr di_Mower_Start do always

Bei Regen am nächsten Tag mähen:
defmod di_Mower_Rain DOIF ([WeatherStation:isRaining] eq "yes" and ([Mower:Status] eq "mowing (auto)" or [Mower:Status] eq "searching")) (set Mower MowNextDay) DOELSE

Guybrush

Zitat von: Accureve am 30 Mai 2020, 17:26:25
Robonect hatte ich auch überlegt, mich allerdings aus zwei Gründen dagegen entschieden
- 10€ vs 185€ für die Hardware
- ESP8266 kann nach eigenen Wünschen erweitert und konfigurieren werden (z.B. Erweiterung mit GPS-Position o.ä.)

Vorteil des Robonect-Moduls ist, dass der Mäher auch aus dem Standby geweckt werden kann...

Das stimmt schon, dass die Hardware im Vergleich sehr viel mehr kostet. Für mich war der Preis vollkommen ok. Ich hab für den Automower weit mehr bezahlt ;-)

@GPS - Wieviel Hektar hat dein Garten? ;-)

Wzut

Zitat von: Guybrush am 30 Mai 2020, 17:38:01
Für mich war der Preis vollkommen ok. Ich hab für den Automower weit mehr bezahlt ;-)
me2 , und was Fabian da an Hirnschmalz & Herzblut investiert will natürlich nachher keiner der Geiz ist geil Anhänger bezahlen ....
meine Uralt Version gabs damals noch knapp für einen Hunderter.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Accureve

Zitat von: Wzut am 30 Mai 2020, 17:44:23
me2 , und was Fabian da an Hirnschmalz & Herzblut investiert will natürlich nachher keiner der Geiz ist geil Anhänger bezahlen ....
meine Uralt Version gabs damals noch knapp für einen Hunderter.

Auch in dieses Projekt ist schon viel Hirnschmalz & Herzblut geflossen und kostenfrei als OpenSource Projekt zur Verfügung gestellt worden, damit es gemeinsam weiterentwickelt werden kann. Warum OpenSource Lösungen nur für "Geiz ist geil"-Anhänger interessant sind, erschließt sich mir nicht.
Es soll sogar Hausautomatisierungssysteme geben, die OpenSource sind und gemeinsam weiterentwickelt werden  ;)

Zurück zum Beitrag: wenn er nur einer Person hilft, hat sich für mich die Mühe schon gelohnt (auch ohne monetären Gewinn für mich).

eppi

Zitat von: Accureve am 30 Mai 2020, 17:02:53
Bei Fragen einfach melden!
Hallo Accureve
Vielen Dank für das Projekt! Ich bin gerade dabei den WEMOS vorzubereiten und habe den Sketch bereits getestet und funktioniert soweit.
Ist es möglich, dass du im Sketch noch eine Option "static IP" einbaust, das würde mir helfen, damit Router nicht dem Wemos eine neue Adresse gibt, wenn er ein paar Tage offline ist. Mir ist bekannt, dass ich dies auch im Router machen kann, aber das möchte ich nicht, da ich diesen ab und zu ersetze und dann wieder vergesse die IP's zu reservieren....

Danke und LG eppi

Accureve

Zitat von: eppi am 08 Juni 2020, 19:06:43
Ist es möglich, dass du im Sketch noch eine Option "static IP" einbaust, das würde mir helfen, damit Router nicht dem Wemos eine neue Adresse gibt, wenn er ein paar Tage offline ist. Mir ist bekannt, dass ich dies auch im Router machen kann, aber das möchte ich nicht, da ich diesen ab und zu ersetze und dann wieder vergesse die IP's zu reservieren....

Hallo, im Projekt ist die Multiaccess-Option hinterlegt, sodass automatisch zwischen verschiedenen AccessPoints gewechselt wird (ich habe auch mehrere AccessPoints um den Garten komplett abzudecken). Die Option ist meines Wissens nicht mit einer fixen IP-Adresse kombinierbar.
Falls du damit leben kannst sollten folgende Änderungen zum gewünschten Ergebnis führen (ungetestet!):







Original:Änderung:
ESP8266WiFiMulti wifiMulti;entfernen
wifiMulti.addAP(ssid1, password);
wifiMulti.addAP(ssid2, password);
wifiMulti.addAP(ssid3, password);
entfernen
while (wifiMulti.run() != WL_CONNECTED)IPAddress ip(192, 168, 178, 220);
IPAddress gateway(192, 168, 178, 1);
IPAddress subnet(255, 255, 255, 0);
WiFi.config(ip, gateway, subnet);
WiFi.begin(ssid1,password);
while (WiFi.status() != WL_CONNECTED)
wifiMulti.run();entfernen

Gruß

eppi

Zitat von: Accureve am 10 Juni 2020, 23:06:26






Original:Änderung:
ESP8266WiFiMulti wifiMulti;entfernen
wifiMulti.addAP(ssid1, password);
wifiMulti.addAP(ssid2, password);
wifiMulti.addAP(ssid3, password);
entfernen
while (wifiMulti.run() != WL_CONNECTED)IPAddress ip(192, 168, 178, 220);
IPAddress gateway(192, 168, 178, 1);
IPAddress subnet(255, 255, 255, 0);
WiFi.config(ip, gateway, subnet);
WiFi.begin(ssid1,password);
while (WiFi.status() != WL_CONNECTED)
wifiMulti.run();entfernen

Gruß
Danke hat geklappt!

matthias soll

Hallo zusammen,
Vielen Dank für das Projekt, ich habe auch schon bei dem Originalbeitrag geschrieben, dass es super funktioniert und mir alles per mqtt liefert was ich brauche.
https://www.mikrocontroller.net/topic/304526?page=2
Ich habe den kleinsten billigsten esp01 genommen die 1.19 kurz angepasst und aufgespielt, ohne weitere Elektronik direkt an den aux1 port gesteckt weil alles auf 3,3v läuft.

Leider gibt es kein passendes Template deswegen steht vermutlich bei STATE nur ???
Kann mir vielleicht jemand einen Tip geben wie ich das Reading vom status bei STATE eingetragen bekomme?
Gruß
Matthias

TomLee


matthias soll

DANKE!!
sehr einfach
manchmal bin ich auch *******
attr MQTT2_wall_e stateFormat status

eddtima

Hi Accureve,

tolles Projekt! Ich bin zudem begeisterter Husqvarna- und FHEM Fan und nenne seit vielen Jahren einen Automower 230AC mein eigen ;-)

Das zwingt mich geradezu, Dein Projekt hier umzusetzen, ich habe aber leider nur sehr mäßige Arduino Erfahrung. Genaugenommen ist es erst mein zweites kleines Projektchen mit dem Wemos d1 mini und ich scheitere schon beim kompilieren Deines Sketches. Nach der ersten Fehlermeldung
PubSubClient.h: No such file or directory
habe ich die Bibliothek PubSubClient in der Version 2.8.0 nachinstalliert.

Neue Fehlermeldung ist nun: 'class ArduinoOTAClass' has no member named 'getCommand'

In den Voreinstellungen des Arduino 1.8.13 habe ich http://arduino.esp8266.com/stable/package_esp8266com_index.json eingetragen. Weißt Du, welche Bibliothek mir noch fehlt?

Vielen Dank und lieben Gruß
Till
FHEM auf Odroid N2, FTUI, etwa 110 Homematic Devices verschiedenster Coleur, BMWi3, Gardena, Hue, Sonos, Alexa, Harmony Hub, Samsung TV

Accureve

Hallo,
hier die ersten Schritte zum Einbinden des ESP8266 in Arduino:

  • Einstellungen unter "File"->"Preferences" öffnen
  • Bei "Additional Boards Manager URLs" die folgende Adresse eintragen: http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • Den Boardmanager öffnen unter "Tools"->"Board: ..."->"Boards Manager..."
  • In die Suche "ESP8266" eingeben und Suche starten
  • Das gefundene Paket installieren
  • Unter "Tools"->"Board:..."->"ESP8266 Boards (...)" dein Board (z.B. WeMos D1 R1) auswählen
Nur wenn das Board ausgewählt ist, werden auch die entsprechenden ESP8266 Bibliotheken verwendet/eingebunden.
Gruß

eddtima

#14
Hi Accureve,

Ich habe es hinbekommen, es fehlte tatsächlich noch die Bibliothek ESPMQTTClient. Zumindest läuft die Compilierung nun erfolgreich durch, nachdem die Version 1.11.1 installiert ist.

Vielen Dank für Deine Hilfe und Gruss
/Till

FHEM auf Odroid N2, FTUI, etwa 110 Homematic Devices verschiedenster Coleur, BMWi3, Gardena, Hue, Sonos, Alexa, Harmony Hub, Samsung TV