Metainformationen zur Seite
Plugin-Daten | |
---|---|
Autor | Michael Schlenstedt |
Logo | |
Status | STABLE |
Version | 0.6.2 |
Min. LB Version | 2.2.0 |
Release Download | https://github.com/mschlenstedt/LoxBerry-Plugin-Landroid-NG/archive/refs/tags/LoxBerry-Plugin-Landroid-NG-0.6.2.zip |
Beschreibung | Steuerung der Worx/Landxcape/Kress Mährobotor über Loxone |
Sprachen | EN |
Diskussion | https://www.loxforum.com/forum/projektforen/loxberry/plugins/306569-plugin-worx-landroid |
Worx Landroid Mährobotor NG
Funktion des Plugins
Das Plugin dient zur Steuerung der Landroid Mähroboter sowie auch kompatibler Mäher von Landxcape und Kress. Das Plugin verwendet dazu die Software MQTT Landroid Bridge Es können Daten vom Mäher empfangen werden und in Loxone weiterverarbeitet werden und der Mäher kann über Loxone auch gesteuert werden.
Da das ursprüngliche Plugin Worx Landroid Mährobotor von Hismastersvoice auf Grund einer API-Änderung nicht mehr funktioniert, wurde dieses Plugin (NG - "Next Generation") entwickelt.
Installation
Das Plugin wird ganz normal über die Pluginschnittstelle installiert. Unter LoxBerry 2.x muss zusätzlich das MQTT Gateway Plugin installiert sein!
Erstkonfiguration
Account Sperrungen
Bei zu häufigen Zugriffen auf die API sperrt Euch Worx für 24h von eurem Account aus. Während die Bridge läuft, beachtet sie das und greift entsprechend selten auf die API zu. Vermeidet aber die Bridge zu häufig neu zu starten! Benutzt nicht das Plugin und die Hersteller App parallel. Seltene Zugriffe auch über die App sollten kein Problem darstellen, wenn ihr aber zu häufig parallel auf euren Cloud-Account zugreift, werdet ihr gesperrt. Weder das Plugin noch die App funktionieren dann für 24h. Das Plugin erkennt eine 24h Sperre automatisch und pausiert sich in diesem Fall automatisch.
Wintermodus
Wenn ihr den Roboter eingewintert habt. stoppt die Bridge bis zum nächsten Frühjahr. Das verhindert unnötige Zugriffe und eventuelle Account-Sperrungen.
Zur Verwendung des Plugins benötigt ihr einen Cloud Account für euren Mäher. Der Mäher muss in der Cloud registriert sein.
- Landxcape: https://id.landxcape-services.com/login
- Kress: https://id.kress.com/login
Bei der Konfiguration muss die Email-Adresse und das Passwort für euren Cloudzugang eingegeben werden. Wählt aus welchen Mäher ihr habt (Worx, Landroid oder Kress). Des weiteren müsst ihr alle Seriennummern der Mäher eintragen (eine Seriennummer pro Zeile), die ihr im Plugin verwenden wollt. Die Seriennummern eurer Mäher findet ihr in eurem Cloud-Account. Im Reiter MQTT könnt ihr noch das MQTT Topic festlegen.
Nach der Konfiguration muss die Bridge neu gestartet werden.
Library Update
Das Plugin verwendet im Hintergrund die Sofiware MQTT Landroid Bridge zur Anbindung der Cloud. Sollte es zu Problemen mit der Kommunikation des Mähers kommen (z. B. weil der Hersteller die API-Schnittstelle geändert hat), kann die entsprechende Bibliothek aktualisiert werden. Das geschieht automatisch, nachdem ihr auf "Update" geklickt habt. Nach dem Upgrade muss die Bridge neu gestartet werden.
Empfangbare Daten (MQTT)
Die Anbindung an Loxone erfolgt über das MQTT Gateway (Daten empfangen) und virtuellen Eingängen. Detaillierte Informationen finden sich hier:
MQTT Gateway - Schritt für Schritt
Das Senden von Daten erfolgt über Virtuelle HTTP Ausgänge. Die Einrichtung ist weiter unten im Kapitel Befehle senden beschrieben.
Status
Topic | Beschreibung |
---|---|
landroid_SERIAL_mowerdata_cfg_cmd | Ausgeführtes Kommando |
landroid_SERIAL_mowerdata_cfg_dt | Datum |
landroid_SERIAL_mowerdata_cfg_id | ID |
landroid_SERIAL_mowerdata_cfg_lg | Sprache |
landroid_SERIAL_mowerdata_cfg_rd | Regenverzögerung in Minuten |
landroid_SERIAL_mowerdata_cfg_sc_distm | PartyMode Zeit in Minuten |
landroid_SERIAL_mowerdata_cfg_sc_m | PartyMode 0/1=aus 2=ein |
landroid_SERIAL_mowerdata_cfg_sc_ots_bc | Einmaliger Zeitplan ohne/mit (0/1) Kantenschnitt |
landroid_SERIAL_mowerdata_cfg_sc_ots_wtm | Einmaliger Zeitplan Arbeitszeit in Minuten |
landroid_SERIAL_mowerdata_cfg_sc_p | ? |
landroid_SERIAL_mowerdata_cfg_sn | Seriennummer |
landroid_SERIAL_mowerdata_cfg_tm | Uhrzeit |
landroid_SERIAL_mowerdata_dat_act | Mäher aktiv (0/1) |
landroid_SERIAL_mowerdata_dat_bt_c | Lädt gerade 0/1 |
landroid_SERIAL_mowerdata_dat_bt_m | ? |
landroid_SERIAL_mowerdata_dat_bt_nr | Ladezyklen |
landroid_SERIAL_mowerdata_dat_bt_p | Ladezustand in % |
landroid_SERIAL_mowerdata_dat_bt_t | Tempertur in Celsius |
landroid_SERIAL_mowerdata_dat_bt_v | Spannung in V |
landroid_SERIAL_mowerdata_dat_conn | Verbindungsart |
landroid_SERIAL_mowerdata_dat_dmp_0 | Steigung in Grad |
landroid_SERIAL_mowerdata_dat_dmp_1 | Neigung in Grad |
landroid_SERIAL_mowerdata_dat_dmp_2 | Richtung in Grad |
landroid_SERIAL_mowerdata_dat_fw | Firmware Nummer |
landroid_SERIAL_mowerdata_dat_fwb | ? |
landroid_SERIAL_mowerdata_dat_le | Fehler (siehe Tabelle "Fehler-Codes) |
landroid_SERIAL_mowerdata_dat_lk | Sperre aus/ein (0/1) |
landroid_SERIAL_mowerdata_dat_lk | ? |
landroid_SERIAL_mowerdata_dat_ls | Status (siehe Tabelle "Status-Codes) |
landroid_SERIAL_mowerdata_dat_lz | Nächste Zone (Zonenschritt). Beispiel: 3 = Zone für Schritt 30% wird angefahren |
landroid_SERIAL_mowerdata_dat_mac | MAC Adresse |
landroid_SERIAL_mowerdata_dat_modules_DF_stat | Modul Off-Limit |
landroid_SERIAL_mowerdata_dat_modules_US_stat | Modul ACS |
landroid_SERIAL_mowerdata_dat_rain_cnt | Verbleibende Minuten |
landroid_SERIAL_mowerdata_dat_rain_s | Regen aktiv 0/1 |
landroid_SERIAL_mowerdata_dat_rsi | Verbindungsstärke dB |
landroid_SERIAL_mowerdata_dat_st_b | Gesamt-Klingenzeit "seit Geburt des Mähers" in Minuten |
landroid_SERIAL_mowerdata_dat_st_bl | Kantenlänge (borderLength) |
landroid_SERIAL_mowerdata_dat_st_bwt | Aktuelle Klingenzeit in Minuten? |
landroid_SERIAL_mowerdata_dat_st_d | Gesamt-Strecke "seit Geburt des Mähers" in Meter |
landroid_SERIAL_mowerdata_dat_st_wt | Gesamt-Arbeitszeit "seit Geburt des Mähers" in Minuten |
landroid_SERIAL_mowerdata_dat_time_l | ? |
landroid_SERIAL_mowerdata_dat_time_r | ? |
landroid_SERIAL_mowerdata_dat_tr | ? |
Status | Beschreibung |
---|---|
0: Idle | Standby |
1: Home | in Ladestation |
2: Start sequence | Sequenz starten |
3: Leaving home | Ladestation verlassen |
4: Follow wire | Draht folgen |
5: Searching home | Ladestation suchen |
6: Searching wire | Begrenzungsdraht suchen |
7: Mowing | Mähen |
8: Lifted | Angehoben |
9: Trapped | Festgefahren |
10: Blade blocked | Klinge blockiert |
11: Debug | Debug Modus |
12: Remote control | Fernsteuerung |
30: Going home | Fährt zur Ladestation |
31: Zone training | Zonentraining |
32: Border Cut | Kante mähen |
33: Searching zone | Zone suchen |
34: Pause | Pause |
Fehler | Beschreibung |
---|---|
0: No error | Kein Fehler |
1: Trapped | festgefahren / blockiert |
2: Lifted | Mäher angehoben |
3: Wire missing | Kabel fehlt/unterbrochen |
4: Outside wire | außerhalb der Begrenzung |
5: Raining | regnet |
6: Close door to mow | Deckel schließen zum mähen |
7: Close door to go home | Deckel schließen um zu Ladestation zu fahren |
8: Blade motor blocked | Klingenmotor blockiert |
9: Wheel motor blocked | Radmotor blockiert |
10: Trapped timeout | festgefahren / blockiert Zeit überschritten |
11: Upside down | Mäher umgedreht |
12: Battery low | Batterie leer (Unterspannung) |
13: Reverse wire | Umgekehrter Draht ?? |
14: Charge error | Ladefehler |
15: Timeout finding home | Ladestation nicht gefunden |
16: Mower locked | Mäher gesperrt |
17: Battery over temperature | Batterie hat Übertempertur |
Zeitplan
Topic | Beschreibung | Topic | Beschreibung |
---|---|---|---|
landroid_SERIAL_mowerdata_cfg_sc_d_0_0 | 1. Sonntag Startzeit | landroid_SERIAL_mowerdata_cfg_sc_dd_0_0 | 2. Sonntag Startzeit |
landroid_SERIAL_mowerdata_cfg_sc_d_0_1 | Dauer in Minuten | landroid_SERIAL_mowerdata_cfg_sc_dd_0_1 | Dauer in Minuten |
landroid_SERIAL_mowerdata_cfg_sc_d_0_2 | Kantenmähen 0/1 | landroid_SERIAL_mowerdata_cfg_sc_dd_0_2 | Kantenmähen 0/1 |
landroid_SERIAL_mowerdata_cfg_sc_d_1_0 | 1. Montag Startzeit | landroid_SERIAL_mowerdata_cfg_sc_dd_1_0 | 2. Montag Startzeit |
landroid_SERIAL_mowerdata_cfg_sc_d_1_1 | Dauer in Minuten | landroid_SERIAL_mowerdata_cfg_sc_dd_1_1 | Dauer in Minuten |
landroid_SERIAL_mowerdata_cfg_sc_d_1_2 | Kantenmähen 0/1 | landroid_SERIAL_mowerdata_cfg_sc_dd_1_2 | Kantenmähen 0/1 |
landroid_SERIAL_mowerdata_cfg_sc_d_2_0 | 1. Dienstag Startzeit | landroid_SERIAL_mowerdata_cfg_sc_dd_2_0 | 2. Dienstag Startzeit |
landroid_SERIAL_mowerdata_cfg_sc_d_2_1 | Dauer in Minuten | landroid_SERIAL_mowerdata_cfg_sc_dd_2_1 | Dauer in Minuten |
landroid_SERIAL_mowerdata_cfg_sc_d_2_2 | Kantenmähen 0/1 | landroid_SERIAL_mowerdata_cfg_sc_dd_2_2 | Kantenmähen 0/1 |
landroid_SERIAL_mowerdata_cfg_sc_d_3_0 | 1. Mittwoch Startzeit | landroid_SERIAL_mowerdata_cfg_sc_dd_3_0 | 2. Mittwoch Startzeit |
landroid_SERIAL_mowerdata_cfg_sc_d_3_1 | Dauer in Minuten | landroid_SERIAL_mowerdata_cfg_sc_dd_3_1 | Dauer in Minuten |
landroid_SERIAL_mowerdata_cfg_sc_d_3_2 | Kantenmähen 0/1 | landroid_SERIAL_mowerdata_cfg_sc_dd_3_2 | Kantenmähen 0/1 |
landroid_SERIAL_mowerdata_cfg_sc_d_4_0 | 1. Donnertag Startzeit | landroid_SERIAL_mowerdata_cfg_sc_dd_4_0 | 2. Donnertag Startzeit |
landroid_SERIAL_mowerdata_cfg_sc_d_4_1 | Dauer in Minuten | landroid_SERIAL_mowerdata_cfg_sc_dd_4_1 | Dauer in Minuten |
landroid_SERIAL_mowerdata_cfg_sc_d_4_2 | Kantenmähen 0/1 | landroid_SERIAL_mowerdata_cfg_sc_dd_4_2 | Kantenmähen 0/1 |
landroid_SERIAL_mowerdata_cfg_sc_d_5_0 | 1. Freitag Startzeit | landroid_SERIAL_mowerdata_cfg_sc_dd_5_0 | 2. Freitag Startzeit |
landroid_SERIAL_mowerdata_cfg_sc_d_5_1 | Dauer in Minuten | landroid_SERIAL_mowerdata_cfg_sc_dd_5_1 | Dauer in Minuten |
landroid_SERIAL_mowerdata_cfg_sc_d_5_2 | Kantenmähen 0/1 | landroid_SERIAL_mowerdata_cfg_sc_dd_5_2 | Kantenmähen 0/1 |
landroid_SERIAL_mowerdata_cfg_sc_d_6_0 | 1. Samstag Startzeit | landroid_SERIAL_mowerdata_cfg_sc_dd_6_0 | 2. Samstag Startzeit |
landroid_SERIAL_mowerdata_cfg_sc_d_6_1 | Dauer in Minuten | landroid_SERIAL_mowerdata_cfg_sc_dd_6_1 | Dauer in Minuten |
landroid_SERIAL_mowerdata_cfg_sc_d_6_2 | Kantenmähen 0/1 | landroid_SERIAL_mowerdata_cfg_sc_dd_6_2 | Kantenmähen 0/1 |
Zonen
Topic | Beschreibung |
---|---|
landroid_SERIAL_mowerdata_cfg_mz_0 | Meter bis Zone 1 |
landroid_SERIAL_mowerdata_cfg_mz_1 | Meter bis Zone 2 |
landroid_SERIAL_mowerdata_cfg_mz_2 | Meter bis Zone 3 |
landroid_SERIAL_mowerdata_cfg_mz_3 | Meter bis Zone 4 |
landroid_SERIAL_mowerdata_cfg_mzv_0 | Zone für 10% 1-4 |
landroid_SERIAL_mowerdata_cfg_mzv_1 | Zone für 20% 1-4 |
landroid_SERIAL_mowerdata_cfg_mzv_2 | Zone für 30% 1-4 |
landroid_SERIAL_mowerdata_cfg_mzv_3 | Zone für 40% 1-4 |
landroid_SERIAL_mowerdata_cfg_mzv_4 | Zone für 50% 1-4 |
landroid_SERIAL_mowerdata_cfg_mzv_5 | Zone für 60% 1-4 |
landroid_SERIAL_mowerdata_cfg_mzv_6 | Zone für 70% 1-4 |
landroid_SERIAL_mowerdata_cfg_mzv_7 | Zone für 80% 1-4 |
landroid_SERIAL_mowerdata_cfg_mzv_8 | Zone für 90% 1-4 |
landroid_SERIAL_mowerdata_cfg_mzv_9 | Zone für 100% 1-4 |
Befehle senden
Um Befehle an den Mäher zu senden, benötigt ihr einen Virtuellen HTTP Ausgang. Testweise funktionieren die Befehle natürlich auch im Browser. Die URL lautet:
http://username:password@loxberry/admin/plugins/landroid-ng/landroid.cgi?do=BEFEHL&value=VALUE&serial=SERIAL
Legt zunächst einen Virtuellen Ausgang mit dem ersten Teil der URL an:
Anschließend für jede Aktion darunter einen Virtuellen Ausgang Befehl mit dem zweiten Teil der URL anlegen:
Den BEFEHL
und ggf. VALUE
entnehmt ihr der unten stehenden Tabelle. Zusätzlich müsst ihr SERIAL
gegen die Seriennummer des Mähers ersetzen, der den Befehl ausführen soll. Einige Befehle benötigen einen Wert, der mit übergeben werden muss (value). Wenn ihr diesen per Programm setzen wollt, dann deaktiviert ihr "Als Digitalausgang verwenden" und nutzt <v>
anstelle des festen Wertes in der URL.
Befehl | Value | Beschreibung |
---|---|---|
start | - | Startet den Mäher |
pause | - | Pausiert den Mäher |
stop | - | Fährt zurück zur Ladestation |
edgecut | - | Führt einen Kantenmähschnitt durch. Nicht für alle Modelle verfügbar und nur mit aktuellster Firmware! |
set_lock | - | Sperrt den Mäher |
set_unlock | - | Entsperrt den Mäher |
set_reboot | - | Neustart / Reset des Mähers |
get_status | - | Zeigt die empfangbaren Daten (siehe oben) als JSON an |
set_partymode | 0, 1, oder 2 | Partymodus dauerhaft an (2) oder aus (0 oder 1) |
set_partymodetime | 0-1440 | Partymodus mit Zeitbegrenzung von 0-1440 Min. |
set_raindelay | 0-300 | Regenverzögerung in Minuten |
set_areacfg | 0-500,0-500,0-500,0-500 | Zonen einteilen, Value: Meter bis Zone 0,Meter bis Zone 1,Meter bis Zone 2,Meter bis Zone 3 z. B. Zone 0 startet bei 0m, Zone 1 bei 15m, Zone 2 bei 30m und Zone 3 bei 50m, ergibt &value=0,15,30,50 |
set_startsequences | 0-3,0-3,0-3,0-3,0-3,0-3,0-3,0-3,0-3,0-3 | Zonen % einteilen, je 10%-Schritt muss eine Zone (0-3) definiert werden. z. B. Gewichtung der Mähzeit: Zone 0 30% / Zone 1 30% / Zone 2 20% Zone 3 20% ergibt &value=0,1,2,3,0,1,2,3,0,1 |
Einbinden in Loxone Config
Status in der Loxone Config anzeigen
Zunächst legt ihr je einen nicht visualisierten Statusbaustein für den Status und den Fehlercode an.
Anschließend verbindet ihr die Ausgänge der beiden nicht visualisierten Statusbausteine mit einem visualisierten Statusbautein:
Dropdown für Mäher Aktionen
Nutzt dazu einen Radiotasten-Baustein. Über einen verzögerten Impuls setzen wir diesen Baustein mit 1-2 Sekunden Verzögerung immer wieder auf den Ausgangszustand zurück. So kann man im Dropdown eine Aktion auswählen, die der Mäher dann direkt ausführt. Der Baustein setzt sich dann wieder für die nächste Aktion zurück.
Visualisierung
In der Visualisierung sieht das dann wie folgt aus (mit noch einigen anderen Bausteinen). Das Icon nutze ich als SVG über das Icon-Watchdog Plugin (das Rasenmäher Icon wird mitgeliefert).