Logikbaustein Worx Landroid

Estimated reading: 21 minutes 52 views

Funktion und Voraussetzungen

Der Logikbaustein verbindet einen Gira X1/L1 mit der WORX Cloud. Er liest den Zustand eines Landroid-Mähers und sendet Standard- oder Expertenbefehle. Erforderlich sind eine Internetverbindung, ein eingerichtetes WORX-Konto, ein diesem Konto zugeordneter Mäher und eine gültige TerraBytes-Lizenz.

Einrichtung und Lizenzparameter

ParameterBeispielwertVerwendung
Emailmax.mustermann@example.orgE-Mail-Adresse der WORX-App; immer erforderlich.
PasswordMeinSicheresPasswortKennwort der WORX-App; immer erforderlich.
SerialNumber20231234567890123456Seriennummer des WORX-Mähers. Bei mehreren Geräten unbedingt setzen.
DeviceIndex0Ersatzweise Geräteauswahl: 0 = erster, 1 = zweiter Mäher. Wird nur benutzt, wenn SerialNumber leer ist.
PollIntervalSeconds300Automatische Statusabfrage; mindestens 30 Sekunden, 0 deaktiviert das Polling.
ActivationCodeABCD1234-EFGH-5678-IJKLVon TerraBytes gelieferter Aktivierungscode.
LicenseSerialNumberX1-12345678Optionale Seriennummer des Gira X1/L1 für die Lizenzzuordnung.
OfflineTokenvollständiger gelieferter TokenOptionaler signierter Offline-Lizenznachweis; unverändert einfügen.
OfflineProfileprivateProfil des Offline-Tokens: privatebusiness oder partner.
ReleaseChannelstableUpdatekanal; normalerweise stable, optional beta oder rc.

Wichtig: SerialNumber bezeichnet den WORX-Mäher. LicenseSerialNumber bezeichnet den Gira X1/L1. Diese Werte dürfen nicht vertauscht werden.

Der Baustein ist an die MAC-Adresse des X1/L1 gebunden. TerraBytes benötigt zur Bereitstellung Bestellnummer, Lizenznehmer, X1/L1-MAC-Adresse und optional die X1/L1-Seriennummer. WORX-E-Mail und WORX-Kennwort werden dafür nicht benötigt und dürfen nicht an TerraBytes übermittelt werden.

Was muss vor einer Aktion anliegen?

Vor jedem Aktionsimpuls müssen diese Voraussetzungen erfüllt sein:

gültige TerraBytes-Lizenz
  + Email und Password
  + SerialNumber oder DeviceIndex
  + vorbereitende Expertenwerte (nur bei Expertenaktionen)
  + Aktionsimpuls 0 → 1 → 0

Ohne gültige Lizenz setzt der Baustein Success=0 und Diagnostics="Keine gueltige Lizenz.". Ein dauerhaftes Signal auf 1 ersetzt keinen neuen Impuls.

Normale Aktionen

AktionVorher einstellenAuslösenKein Kommandocode nötig
Status ladenKonto- und GeräteparameterRefresh0 → 1 → 0ja
Mähvorgang startenKonto- und GeräteparameterStart0 → 1 → 0ja
PausierenKonto- und GeräteparameterPause0 → 1 → 0ja
Zur Ladestation fahrenKonto- und GeräteparameterHome0 → 1 → 0ja

Beispiel Home:

Email        = max.mustermann@example.org
Password     = <WORX-Kennwort>
SerialNumber = 20231234567890123456
Home         = Impuls 0 → 1 → 0

Ergebnis:
Success      = 1
Diagnostics  = Heimfahrt gesendet

Nach etwa 5 bis 15 Sekunden Refresh auslösen, damit der inzwischen von WORX gemeldete Zustand übernommen wird.

Expertenaktionen

AktionZuerst setzenDanach auslösen
Freier KommandocodeCommandCode, z. B. 9Impuls an SendCommand
Freie MQTT-PayloadRawCommandJson, z. B. {"rd":120}Impuls an SendRawCommand
WORX-REST-AufrufRestTargetRestMethodRestSuffixRestBodyJsonImpuls an ExecuteRest

Die vorbereitenden Werte lösen allein keine Aktion aus. Im GPA sollten sie zuerst stabil gesetzt und der Sendetrigger in einem folgenden Logikzyklus ausgelöst werden. Aktionsimpulse gegenseitig verriegeln, damit pro Zyklus nur eine Aktion startet.

Basis-Eingangsmatrix

EingangBeispielWirkung
Refresh0 → 1 → 0Lädt Gerät und aktuellen Status. Beispiel: Success=1BatteryPercent=78Diagnostics=OK.
Start0 → 1 → 0Sendet Kommando 1; Beispiel: Diagnostics=Start gesendet.
Pause0 → 1 → 0Sendet Kommando 2; Beispiel: Diagnostics=Pause gesendet.
Home0 → 1 → 0Sendet Kommando 3; Beispiel: Diagnostics=Heimfahrt gesendet.
RainDelayMinutes120Bereitet eine Regenverzögerung von 120 Minuten vor; zulässig sind 0 bis 300 Minuten.
SetRainDelay0 → 1 → 0Sendet die zuvor gesetzte Regenverzögerung protokollgerecht an den Mäher.
CommandCode9Bereitet einen Kommandocode vor; sendet noch nichts. Experteneingang.
SendCommand0 → 1 → 0Sendet den zuvor gesetzten CommandCode. Experteneingang.
RawCommandJson{"rd":120}Bereitet eine modellabhängige Roh-Payload vor. Experteneingang.
SendRawCommand0 → 1 → 0Sendet RawCommandJson. Experteneingang.
RestTarget00 = ausgewählter Mäher, 1 = Produktkatalog. Experteneingang.
RestMethod00=GET1=POST2=PUT3=DELETE. Experteneingang.
RestSuffixfirmware-upgradeRelativer Geräte-Unterpfad; für das Gerät selbst leer lassen. Experteneingang.
RestBodyJson{}JSON-Body für POST/PUT/DELETE; bei GET unbenutzt. Experteneingang.
ExecuteRest0 → 1 → 0Führt den vorbereiteten REST-Aufruf aus; Antwort in ApiResponse. Experteneingang.

Sind StartPause und Home gleichzeitig aktiv, gilt intern Start vor Pause vor Home. Für eindeutiges Verhalten immer nur einen Impuls senden.

Erweiterte Eingänge ab Version 0.5.0

BereichDatenportsAuslöser
SperreLockEnabledSetLock
PartymodusPartyModeEnabledSetPartyMode
ACSAcsEnabledSetAcs
Off-LimitsOffLimitsEnabledSetOffLimits
Off-Limits-AbkürzungOffLimitsShortcutEnabledSetOffLimitsShortcut
DrehmomentTorquePercent (-50…50)SetTorque
SchnitthöheCuttingHeightMm (20…70)SetCuttingHeight
nächste Legacy-ZoneZoneSetZone
ZeitplanstatusScheduleEnabledSetScheduleEnabled
vollständiger ZeitplanScheduleJsonApplyScheduleJson
einmaliges MähenOneTimeRuntimeMinutes (10…120), OneTimeBoundaryStartOneTimeSchedule
KantenschnittStartEdgeCut
automatische PlanungAutoScheduleEnabledSetAutoScheduleEnabled
automatische FirmwareupdatesFirmwareAutoUpgradeEnabledSetFirmwareAutoUpgrade
RasendatenLawnSizeLawnPerimeter (0…100000)ApplyLawn
erweiterte ProdukteinstellungenProductItemPatchJsonApplyProductItemPatch
Mäher-FirmwareinfoGetMowerFirmwareInfo
Mäher-FirmwareupdateStartMowerFirmwareUpgrade
Akku-ZählerresetResetBatteryCounter
Messer-ZählerresetResetBladeCounter

Alle Datenports müssen vor dem zugehörigen positiven Auslöseimpuls stabil anliegen. Firmwareupdate und Zählerresets sind wartungsrelevante Aktionen.

Kommandocodes

CodeAktion
0Status anfordern
1Mähvorgang starten
2Pausieren
3Heimfahrt
4Zonentraining
5Mäher sperren
6Mäher entsperren
7Neustart
8Pause auf Begrenzungsdraht
9Sichere Heimfahrt, Messer aus

Nicht jedes Modell unterstützt jeden Code. Success=1 bestätigt zunächst die technische Annahme durch den Cloud-Kanal, nicht die tatsächliche Bewegung des Mähers.

Basis-Ausgangsmatrix

AusgangBeispielwertBedeutung
Success1Letzter Transport-/API-Aufruf war erfolgreich.
NameLandroid GartenGerätename aus der WORX-App.
Serial20231234567890123456Seriennummer des tatsächlich ausgewählten WORX-Mähers.
StatusCode1Numerischer WORX-Zustand aus dat.ls; modellabhängig.
ErrorCode0WORX-Fehlercode aus dat.le0 bedeutet üblicherweise kein gemeldeter Fehler.
BatteryPercent78Akkuladestand in Prozent.
Online11 = Mäher wird von WORX als online gemeldet.
LastUpdate2026-07-14T10:42:18.000ZZeitpunkt der letzten WORX-Statusmeldung, normalerweise UTC.
DiagnosticsOKErgebnis oder Fehlerursache, z. B. Start gesendet oder Der Mäher ist offline.
RawJson{"name":"Landroid Garten",...}Vollständiger Gerätedatensatz; standardmäßig ausgeblendet.
ApiResponse{"version":"3.32",...}Antwort des Experten-REST-Aufrufs; standardmäßig ausgeblendet.
RainDelayConfiguredMinutes120Im Mäher eingestellte Regenverzögerung aus cfg.rd.
RainDelayActive1Regensensor beziehungsweise Regenpause ist aktuell aktiv (dat.rain.s).
RainDelayRemainingMinutes37Noch verbleibende Regenpause in Minuten (dat.rain.cnt).
Latitude51.234567Breitengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
Longitude7.123456Längengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
RainDelayConfiguredMinutes120Im Mäher eingestellte Regenverzögerung aus cfg.rd.
RainDelayActive1Regensensor beziehungsweise Regenpause ist aktuell aktiv (dat.rain.s).
RainDelayRemainingMinutes37Noch verbleibende Regenpause in Minuten (dat.rain.cnt).
Latitude51.234567Breitengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
Longitude7.123456Längengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
RainDelayConfiguredMinutes120Im Mäher eingestellte Regenverzögerung aus cfg.rd.
RainDelayActive1Regensensor beziehungsweise Regenpause ist aktuell aktiv (dat.rain.s).
RainDelayRemainingMinutes37Noch verbleibende Regenpause in Minuten (dat.rain.cnt).
Latitude51.234567Breitengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
Longitude7.123456Längengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
RainDelayConfiguredMinutes120Im Mäher eingestellte Regenverzögerung aus cfg.rd.
RainDelayActive1Regensensor beziehungsweise Regenpause ist aktuell aktiv (dat.rain.s).
RainDelayRemainingMinutes37Noch verbleibende Regenpause in Minuten (dat.rain.cnt).
Latitude51.234567Breitengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
Longitude7.123456Längengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
LicenseStatusLizenz: OK • bis 31.12.2027 23:59Ergebnis der Lizenzprüfung beziehungsweise Aktivierungshinweis.
LicenseOwnerMax MustermannIm TerraBytes LicenseServer hinterlegter Lizenznehmer.
UpdateAvailable1Eine neuere Version ist im gewählten Releasekanal verfügbar.
LatestVersion0.5.11Vom Lizenzdienst gemeldete aktuelle Produktversion.
DownloadUrlhttps://…/Worx-0.5.11.zipVom Lizenzdienst gelieferte Downloadadresse; kann leer sein.
OfflineExpiresAt28.07.2026 12:00Ablaufzeitpunkt des Offline-Nachweises; ohne Offline-Token leer.

Erweiterte Ausgänge ab Version 0.5.0

Zusätzlich stehen Modell, Mäher-UUID/MAC, Protokoll, Mäher-Firmware, Verbindungsart, Signalstärke, Sperre, Ladezustand, Akkutemperatur/-spannung/-zyklen, Messer- und Gesamtlaufzeit, Strecke, Neigung/Roll/Ausrichtung, aktuelle Zone, Drehmoment, Schnitthöhe, ACS-, Off-Limits-, Zeitplan-, Auto-Schedule- und Firmware-Auto-Status zur Verfügung.

Komplexe Strukturen werden verlustarm über CapabilitiesJsonScheduleStatusJsonAutoScheduleJsonZonesJsonModulesJsonStatisticsJson und MowerFirmwareJson ausgegeben.

Positionen werden modellabhängig aus dat.modules.4G.gps.coo oder dat.rtk.pos gelesen. Viele klassische Landroid-Modelle besitzen kein GPS und liefern deshalb keine Position.

Positionen werden modellabhängig aus dat.modules.4G.gps.coo oder dat.rtk.pos gelesen. Viele klassische Landroid-Modelle besitzen kein GPS und liefern deshalb keine Position.

Positionen werden modellabhängig aus dat.modules.4G.gps.coo oder dat.rtk.pos gelesen. Viele klassische Landroid-Modelle besitzen kein GPS und liefern deshalb keine Position.

Positionen werden modellabhängig aus dat.modules.4G.gps.coo oder dat.rtk.pos gelesen. Viele klassische Landroid-Modelle besitzen kein GPS und liefern deshalb keine Position.

Fahr- und Fehlerzustände ab Version 0.5.1

AusgangBedeutung
StatusTextKlartext wie MähtFährt zur Ladestation oder Pause.
ErrorTextFehlerursache wie Angehoben oder Außerhalb Begrenzungsdraht.
IsMovingBekannter Fahr-, Mäh-, Such-, Zonen-, Kanten- oder Erkundungszustand.
IsMowingMähzustand 7 oder 8.
IsGoingHomeSucht oder fährt zur Ladestation.
IsDockedMäher steht in der Ladestation.
IsPausedMäher meldet Pause.
HasErrorErrorCode ist nicht null.
IsLiftedMäher wurde angehoben.
IsTrappedMäher ist festgefahren oder meldet entsprechenden Timeout.
IsOutsideBoundaryMäher befindet sich außerhalb des Begrenzungsdrahts.
WireMissingBegrenzungsdraht wird nicht erkannt.
BladeBlockedMesser oder Messermotor ist blockiert.
WheelBlockedRadmotor ist blockiert.
IsUpsideDownMäher liegt auf dem Kopf.
BatteryLowAkku ist zu schwach.
IsLockedErrorBetrieb wird durch Sperre verhindert.
ExcessiveSlopeZulässige Steigung überschritten.
ZoneUnreachableZielzone ist nicht erreichbar.
ChargingStationUnreachableLadestation ist nicht erreichbar.
DigitalFenceEscapeDigitaler Zaun wurde verlassen.
CameraErrorVision-Kamerafehler.
MapErrorKartenfehler bei Vision/RTK.

Beispiel: IsMoving=0HasError=1IsLifted=1 und ErrorText=Angehoben bedeutet, dass der Mäher wegen des Hebesensors nicht fährt.

Praxisbeispiele

Typen, Pflichtangaben und vorgeschlagene KNX-Adressen

Die folgende Zuordnung gilt für jeden Port des Bausteins. Pflicht bedeutet, dass der Baustein ohne den Wert nicht sinnvoll arbeiten kann; optional bedeutet, dass der Port leer bzw. unverdrahtet bleiben darf. Die Gruppenadressen sind Vorschläge und können im Projekt angepasst werden.

PortgruppePortsTypPflichtKNX-DPTAdressbereich (Vorschlag)
Parameter KontoEmailPasswordText/StringPflichtkein KNX-DPT (Parameter)keine GA
Parameter AuswahlSerialNumberText/Stringoptional*kein KNX-DPT (Parameter)keine GA
Parameter AuswahlDeviceIndexPollIntervalSecondsGanzzahloptionalkein KNX-DPT (Parameter)keine GA
Parameter LizenzActivationCodeLicenseSerialNumberOfflineTokenOfflineProfileReleaseChannelText/Stringoptional**kein KNX-DPT (Parameter)keine GA
Basis-TriggerRefreshStartPauseHomeSetRainDelayBool/ImpulsRefresh Pflicht, übrige optional1.00110/0/1–10/0/5
RegenverzögerungRainDelayMinutesGanzzahloptional7.00110/1/1
Experten-TriggerSendCommandSendRawCommandExecuteRestBool/Impulsoptional1.00110/0/10–10/0/12
Experten-DatenCommandCodeRestTargetRestMethodGanzzahloptional7.00110/1/10–10/1/12
Experten-DatenRawCommandJsonRestSuffixRestBodyJsonText/Stringoptional16.00110/2/10–10/2/12
Erweiterte Bool-EingängeLockEnabledSetLockPartyModeEnabledSetPartyModeAcsEnabledSetAcsOffLimitsEnabledSetOffLimitsOffLimitsShortcutEnabledSetOffLimitsShortcutScheduleEnabledSetScheduleEnabledOneTimeBoundaryStartOneTimeScheduleStartEdgeCutAutoScheduleEnabledSetAutoScheduleEnabledFirmwareAutoUpgradeEnabledSetFirmwareAutoUpgradeApplyLawnApplyProductItemPatchGetMowerFirmwareInfoStartMowerFirmwareUpgradeResetBatteryCounterResetBladeCounterBooloptional1.00110/0/20–10/0/45
Erweiterte Zahlen-EingängeTorquePercentCuttingHeightMmZoneOneTimeRuntimeMinutesLawnSizeLawnPerimeterGanzzahloptional7.00110/1/20–10/1/25
Erweiterte Text-/JSON-EingängeScheduleJsonProductItemPatchJsonText/Stringoptional16.00110/2/20–10/2/21
AusgangsgruppePortsTypPflichtKNX-DPTAdressbereich (Vorschlag)
Ergebnis/IdentitätSuccessOnlineBoolAusgang immer vorhanden1.00110/3/1–10/3/2
Status/FehlerStatusCodeErrorCodeProtocolSignalStrengthCurrentZoneCurrentTorquePercentCurrentCuttingHeightMmRainDelayConfiguredMinutesRainDelayRemainingMinutesBatteryChargeCyclesBladeRuntimeMinutesTotalRuntimeMinutesGanzzahlAusgang immer vorhanden7.00110/4/1–10/4/12
MesswerteBatteryPercentBatteryTemperatureBatteryVoltageDistanceMetersPitchRollYawLatitudeLongitudeGleitkommaAusgang immer vorhanden9.00110/5/1–10/5/9
Zustands-BoolsIsMovingIsMowingIsGoingHomeIsDockedIsPausedHasErrorIsLiftedIsTrappedIsOutsideBoundaryWireMissingBladeBlockedWheelBlockedIsUpsideDownBatteryLowIsLockedErrorExcessiveSlopeZoneUnreachableChargingStationUnreachableDigitalFenceEscapeCameraErrorMapErrorLockedChargingAcsAvailableAcsActiveOffLimitsAvailableOffLimitsActiveOffLimitsShortcutActiveScheduleActiveAutoScheduleActiveFirmwareAutoUpgradeActiveRainDelayActiveUpdateAvailableBoolAusgang immer vorhanden1.00110/3/10–10/3/41
TextausgängeNameSerialStatusTextErrorTextLastUpdateDiagnosticsLicenseStatusLicenseOwnerLatestVersionDownloadUrlOfflineExpiresAtModelMowerUuidMowerMacAddressMowerFirmwareVersionConnectionTypeText/StringAusgang immer vorhanden16.00110/6/1–10/6/16
JSON-AusgängeRawJsonApiResponseCapabilitiesJsonScheduleStatusJsonAutoScheduleJsonZonesJsonModulesJsonStatisticsJsonMowerFirmwareJsonText/Stringoptional sichtbar16.00110/7/1–10/7/9

SerialNumber ist bei nur einem Mäher optional; bei mehreren Geräten sollte sie gesetzt werden. DeviceIndex wird nur verwendet, wenn SerialNumber leer ist. ** Mindestens eine gültige Online- oder Offline-Lizenzkonfiguration muss vorhanden sein; welche Parameter benötigt werden, hängt vom Lizenzweg ab. Bool-Impulse werden als 0 → 1 → 0 verdrahtet. KNX-DPT 16.001 ist für Diagnose-/JSON-Text nur eine Übergabeempfehlung; sehr lange JSON-Werte sollten nicht direkt als KNX-Text übertragen werden.

Statusabfrage

Parameter: Email, Password und SerialNumber gesetzt
Refresh = Impuls 0 → 1 → 0

Success        = 1
Name           = Landroid Garten
Serial         = 20231234567890123456
StatusCode     = 1
ErrorCode      = 0
BatteryPercent = 78
Online         = 1
LastUpdate     = 2026-07-14T10:42:18.000Z
Diagnostics    = OK

Firmwareinformationen lesen

RestTarget   = 0
RestMethod   = 0
RestSuffix   = firmware-upgrade
RestBodyJson = {}
ExecuteRest  = Impuls 0 → 1 → 0

Ergebnis:
Success      = 1
Diagnostics  = REST-Aufruf erfolgreich
ApiResponse  = <Firmwareantwort von WORX>

Lizenzaktivierung

ActivationCodeLicenseSerialNumber und – falls vereinbart – OfflineToken/OfflineProfile in die gleichnamigen Parameter kopieren. Beim Start prüft der Baustein die Lizenz. Die Online-Lizenz wird alle drei Stunden aktualisiert; für aktive Sitzungen wird alle acht Minuten ein Heartbeat gesendet. Details stehen in WORX_KUNDENANLEITUNG_LIZENZDATEN.md.

Sicherheit

Arbeitsbereich räumen, Personen und Tiere fernhalten und den Mäher bei ersten Tests beaufsichtigen. Zuerst Refresh, danach Pause oder Home testen; erst anschließend Start. Experten-, Firmware- und Zählerfunktionen nur durch den Administrator freischalten.

Fehlerbehebung

Meldung/SituationMaßnahme
Keine gueltige Lizenz.ActivationCode, X1/L1-MAC-Zuordnung und LicenseStatus prüfen.
Anmeldung fehlgeschlagenWORX-E-Mail und Kennwort prüfen; Anmeldung in der WORX-App testen.
Seriennummer nicht gefundenMäher-SerialNumber prüfen oder leer lassen und DeviceIndex=0 testen.
Mäher offlineWLAN- und Cloud-Verbindung des Mähers prüfen.
HTTP 429Abfrageintervall vergrößern und einige Minuten warten.
cURL konnte nicht gestartet werdenX1/L1-Firmware und Paketinstallation durch den Administrator prüfen.
Befehl angenommen, aber keine BewegungWORX-App auf Sperre, Fehler, Regenpause oder Sicherheitszustand prüfen.

Empfohlenes Statusintervall: 60 bis 300 Sekunden.

Funktion und Voraussetzungen

Der Logikbaustein verbindet einen Gira X1/L1 mit der WORX Cloud. Er liest den Zustand eines Landroid-Mähers und sendet Standard- oder Expertenbefehle. Erforderlich sind eine Internetverbindung, ein eingerichtetes WORX-Konto, ein diesem Konto zugeordneter Mäher und eine gültige TerraBytes-Lizenz.

Einrichtung und Lizenzparameter

ParameterBeispielwertVerwendung
Emailmax.mustermann@example.orgE-Mail-Adresse der WORX-App; immer erforderlich.
PasswordMeinSicheresPasswortKennwort der WORX-App; immer erforderlich.
SerialNumber20231234567890123456Seriennummer des WORX-Mähers. Bei mehreren Geräten unbedingt setzen.
DeviceIndex0Ersatzweise Geräteauswahl: 0 = erster, 1 = zweiter Mäher. Wird nur benutzt, wenn SerialNumber leer ist.
PollIntervalSeconds300Automatische Statusabfrage; mindestens 30 Sekunden, 0 deaktiviert das Polling.
ActivationCodeABCD1234-EFGH-5678-IJKLVon TerraBytes gelieferter Aktivierungscode.
LicenseSerialNumberX1-12345678Optionale Seriennummer des Gira X1/L1 für die Lizenzzuordnung.
OfflineTokenvollständiger gelieferter TokenOptionaler signierter Offline-Lizenznachweis; unverändert einfügen.
OfflineProfileprivateProfil des Offline-Tokens: privatebusiness oder partner.
ReleaseChannelstableUpdatekanal; normalerweise stable, optional beta oder rc.

Wichtig: SerialNumber bezeichnet den WORX-Mäher. LicenseSerialNumber bezeichnet den Gira X1/L1. Diese Werte dürfen nicht vertauscht werden.

Der Baustein ist an die MAC-Adresse des X1/L1 gebunden. TerraBytes benötigt zur Bereitstellung Bestellnummer, Lizenznehmer, X1/L1-MAC-Adresse und optional die X1/L1-Seriennummer. WORX-E-Mail und WORX-Kennwort werden dafür nicht benötigt und dürfen nicht an TerraBytes übermittelt werden.

Was muss vor einer Aktion anliegen?

Vor jedem Aktionsimpuls müssen diese Voraussetzungen erfüllt sein:

gültige TerraBytes-Lizenz
  + Email und Password
  + SerialNumber oder DeviceIndex
  + vorbereitende Expertenwerte (nur bei Expertenaktionen)
  + Aktionsimpuls 0 → 1 → 0

Ohne gültige Lizenz setzt der Baustein Success=0 und Diagnostics="Keine gueltige Lizenz.". Ein dauerhaftes Signal auf 1 ersetzt keinen neuen Impuls.

Normale Aktionen

AktionVorher einstellenAuslösenKein Kommandocode nötig
Status ladenKonto- und GeräteparameterRefresh0 → 1 → 0ja
Mähvorgang startenKonto- und GeräteparameterStart0 → 1 → 0ja
PausierenKonto- und GeräteparameterPause0 → 1 → 0ja
Zur Ladestation fahrenKonto- und GeräteparameterHome0 → 1 → 0ja

Beispiel Home:

Email        = max.mustermann@example.org
Password     = <WORX-Kennwort>
SerialNumber = 20231234567890123456
Home         = Impuls 0 → 1 → 0

Ergebnis:
Success      = 1
Diagnostics  = Heimfahrt gesendet

Nach etwa 5 bis 15 Sekunden Refresh auslösen, damit der inzwischen von WORX gemeldete Zustand übernommen wird.

Expertenaktionen

AktionZuerst setzenDanach auslösen
Freier KommandocodeCommandCode, z. B. 9Impuls an SendCommand
Freie MQTT-PayloadRawCommandJson, z. B. {"rd":120}Impuls an SendRawCommand
WORX-REST-AufrufRestTargetRestMethodRestSuffixRestBodyJsonImpuls an ExecuteRest

Die vorbereitenden Werte lösen allein keine Aktion aus. Im GPA sollten sie zuerst stabil gesetzt und der Sendetrigger in einem folgenden Logikzyklus ausgelöst werden. Aktionsimpulse gegenseitig verriegeln, damit pro Zyklus nur eine Aktion startet.

Basis-Eingangsmatrix

EingangBeispielWirkung
Refresh0 → 1 → 0Lädt Gerät und aktuellen Status. Beispiel: Success=1BatteryPercent=78Diagnostics=OK.
Start0 → 1 → 0Sendet Kommando 1; Beispiel: Diagnostics=Start gesendet.
Pause0 → 1 → 0Sendet Kommando 2; Beispiel: Diagnostics=Pause gesendet.
Home0 → 1 → 0Sendet Kommando 3; Beispiel: Diagnostics=Heimfahrt gesendet.
RainDelayMinutes120Bereitet eine Regenverzögerung von 120 Minuten vor; zulässig sind 0 bis 300 Minuten.
SetRainDelay0 → 1 → 0Sendet die zuvor gesetzte Regenverzögerung protokollgerecht an den Mäher.
CommandCode9Bereitet einen Kommandocode vor; sendet noch nichts. Experteneingang.
SendCommand0 → 1 → 0Sendet den zuvor gesetzten CommandCode. Experteneingang.
RawCommandJson{"rd":120}Bereitet eine modellabhängige Roh-Payload vor. Experteneingang.
SendRawCommand0 → 1 → 0Sendet RawCommandJson. Experteneingang.
RestTarget00 = ausgewählter Mäher, 1 = Produktkatalog. Experteneingang.
RestMethod00=GET1=POST2=PUT3=DELETE. Experteneingang.
RestSuffixfirmware-upgradeRelativer Geräte-Unterpfad; für das Gerät selbst leer lassen. Experteneingang.
RestBodyJson{}JSON-Body für POST/PUT/DELETE; bei GET unbenutzt. Experteneingang.
ExecuteRest0 → 1 → 0Führt den vorbereiteten REST-Aufruf aus; Antwort in ApiResponse. Experteneingang.

Sind StartPause und Home gleichzeitig aktiv, gilt intern Start vor Pause vor Home. Für eindeutiges Verhalten immer nur einen Impuls senden.

Erweiterte Eingänge ab Version 0.5.0

BereichDatenportsAuslöser
SperreLockEnabledSetLock
PartymodusPartyModeEnabledSetPartyMode
ACSAcsEnabledSetAcs
Off-LimitsOffLimitsEnabledSetOffLimits
Off-Limits-AbkürzungOffLimitsShortcutEnabledSetOffLimitsShortcut
DrehmomentTorquePercent (-50…50)SetTorque
SchnitthöheCuttingHeightMm (20…70)SetCuttingHeight
nächste Legacy-ZoneZoneSetZone
ZeitplanstatusScheduleEnabledSetScheduleEnabled
vollständiger ZeitplanScheduleJsonApplyScheduleJson
einmaliges MähenOneTimeRuntimeMinutes (10…120), OneTimeBoundaryStartOneTimeSchedule
KantenschnittStartEdgeCut
automatische PlanungAutoScheduleEnabledSetAutoScheduleEnabled
automatische FirmwareupdatesFirmwareAutoUpgradeEnabledSetFirmwareAutoUpgrade
RasendatenLawnSizeLawnPerimeter (0…100000)ApplyLawn
erweiterte ProdukteinstellungenProductItemPatchJsonApplyProductItemPatch
Mäher-FirmwareinfoGetMowerFirmwareInfo
Mäher-FirmwareupdateStartMowerFirmwareUpgrade
Akku-ZählerresetResetBatteryCounter
Messer-ZählerresetResetBladeCounter

Alle Datenports müssen vor dem zugehörigen positiven Auslöseimpuls stabil anliegen. Firmwareupdate und Zählerresets sind wartungsrelevante Aktionen.

Kommandocodes

CodeAktion
0Status anfordern
1Mähvorgang starten
2Pausieren
3Heimfahrt
4Zonentraining
5Mäher sperren
6Mäher entsperren
7Neustart
8Pause auf Begrenzungsdraht
9Sichere Heimfahrt, Messer aus

Nicht jedes Modell unterstützt jeden Code. Success=1 bestätigt zunächst die technische Annahme durch den Cloud-Kanal, nicht die tatsächliche Bewegung des Mähers.

Basis-Ausgangsmatrix

AusgangBeispielwertBedeutung
Success1Letzter Transport-/API-Aufruf war erfolgreich.
NameLandroid GartenGerätename aus der WORX-App.
Serial20231234567890123456Seriennummer des tatsächlich ausgewählten WORX-Mähers.
StatusCode1Numerischer WORX-Zustand aus dat.ls; modellabhängig.
ErrorCode0WORX-Fehlercode aus dat.le0 bedeutet üblicherweise kein gemeldeter Fehler.
BatteryPercent78Akkuladestand in Prozent.
Online11 = Mäher wird von WORX als online gemeldet.
LastUpdate2026-07-14T10:42:18.000ZZeitpunkt der letzten WORX-Statusmeldung, normalerweise UTC.
DiagnosticsOKErgebnis oder Fehlerursache, z. B. Start gesendet oder Der Mäher ist offline.
RawJson{"name":"Landroid Garten",...}Vollständiger Gerätedatensatz; standardmäßig ausgeblendet.
ApiResponse{"version":"3.32",...}Antwort des Experten-REST-Aufrufs; standardmäßig ausgeblendet.
RainDelayConfiguredMinutes120Im Mäher eingestellte Regenverzögerung aus cfg.rd.
RainDelayActive1Regensensor beziehungsweise Regenpause ist aktuell aktiv (dat.rain.s).
RainDelayRemainingMinutes37Noch verbleibende Regenpause in Minuten (dat.rain.cnt).
Latitude51.234567Breitengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
Longitude7.123456Längengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
RainDelayConfiguredMinutes120Im Mäher eingestellte Regenverzögerung aus cfg.rd.
RainDelayActive1Regensensor beziehungsweise Regenpause ist aktuell aktiv (dat.rain.s).
RainDelayRemainingMinutes37Noch verbleibende Regenpause in Minuten (dat.rain.cnt).
Latitude51.234567Breitengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
Longitude7.123456Längengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
RainDelayConfiguredMinutes120Im Mäher eingestellte Regenverzögerung aus cfg.rd.
RainDelayActive1Regensensor beziehungsweise Regenpause ist aktuell aktiv (dat.rain.s).
RainDelayRemainingMinutes37Noch verbleibende Regenpause in Minuten (dat.rain.cnt).
Latitude51.234567Breitengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
Longitude7.123456Längengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
RainDelayConfiguredMinutes120Im Mäher eingestellte Regenverzögerung aus cfg.rd.
RainDelayActive1Regensensor beziehungsweise Regenpause ist aktuell aktiv (dat.rain.s).
RainDelayRemainingMinutes37Noch verbleibende Regenpause in Minuten (dat.rain.cnt).
Latitude51.234567Breitengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
Longitude7.123456Längengrad, wenn das Modell GPS/RTK-Positionen meldet; sonst 0.
LicenseStatusLizenz: OK • bis 31.12.2027 23:59Ergebnis der Lizenzprüfung beziehungsweise Aktivierungshinweis.
LicenseOwnerMax MustermannIm TerraBytes LicenseServer hinterlegter Lizenznehmer.
UpdateAvailable1Eine neuere Version ist im gewählten Releasekanal verfügbar.
LatestVersion0.5.11Vom Lizenzdienst gemeldete aktuelle Produktversion.
DownloadUrlhttps://…/Worx-0.5.11.zipVom Lizenzdienst gelieferte Downloadadresse; kann leer sein.
OfflineExpiresAt28.07.2026 12:00Ablaufzeitpunkt des Offline-Nachweises; ohne Offline-Token leer.

Erweiterte Ausgänge ab Version 0.5.0

Zusätzlich stehen Modell, Mäher-UUID/MAC, Protokoll, Mäher-Firmware, Verbindungsart, Signalstärke, Sperre, Ladezustand, Akkutemperatur/-spannung/-zyklen, Messer- und Gesamtlaufzeit, Strecke, Neigung/Roll/Ausrichtung, aktuelle Zone, Drehmoment, Schnitthöhe, ACS-, Off-Limits-, Zeitplan-, Auto-Schedule- und Firmware-Auto-Status zur Verfügung.

Komplexe Strukturen werden verlustarm über CapabilitiesJsonScheduleStatusJsonAutoScheduleJsonZonesJsonModulesJsonStatisticsJson und MowerFirmwareJson ausgegeben.

Positionen werden modellabhängig aus dat.modules.4G.gps.coo oder dat.rtk.pos gelesen. Viele klassische Landroid-Modelle besitzen kein GPS und liefern deshalb keine Position.

Positionen werden modellabhängig aus dat.modules.4G.gps.coo oder dat.rtk.pos gelesen. Viele klassische Landroid-Modelle besitzen kein GPS und liefern deshalb keine Position.

Positionen werden modellabhängig aus dat.modules.4G.gps.coo oder dat.rtk.pos gelesen. Viele klassische Landroid-Modelle besitzen kein GPS und liefern deshalb keine Position.

Positionen werden modellabhängig aus dat.modules.4G.gps.coo oder dat.rtk.pos gelesen. Viele klassische Landroid-Modelle besitzen kein GPS und liefern deshalb keine Position.

Fahr- und Fehlerzustände ab Version 0.5.1

AusgangBedeutung
StatusTextKlartext wie MähtFährt zur Ladestation oder Pause.
ErrorTextFehlerursache wie Angehoben oder Außerhalb Begrenzungsdraht.
IsMovingBekannter Fahr-, Mäh-, Such-, Zonen-, Kanten- oder Erkundungszustand.
IsMowingMähzustand 7 oder 8.
IsGoingHomeSucht oder fährt zur Ladestation.
IsDockedMäher steht in der Ladestation.
IsPausedMäher meldet Pause.
HasErrorErrorCode ist nicht null.
IsLiftedMäher wurde angehoben.
IsTrappedMäher ist festgefahren oder meldet entsprechenden Timeout.
IsOutsideBoundaryMäher befindet sich außerhalb des Begrenzungsdrahts.
WireMissingBegrenzungsdraht wird nicht erkannt.
BladeBlockedMesser oder Messermotor ist blockiert.
WheelBlockedRadmotor ist blockiert.
IsUpsideDownMäher liegt auf dem Kopf.
BatteryLowAkku ist zu schwach.
IsLockedErrorBetrieb wird durch Sperre verhindert.
ExcessiveSlopeZulässige Steigung überschritten.
ZoneUnreachableZielzone ist nicht erreichbar.
ChargingStationUnreachableLadestation ist nicht erreichbar.
DigitalFenceEscapeDigitaler Zaun wurde verlassen.
CameraErrorVision-Kamerafehler.
MapErrorKartenfehler bei Vision/RTK.

Beispiel: IsMoving=0HasError=1IsLifted=1 und ErrorText=Angehoben bedeutet, dass der Mäher wegen des Hebesensors nicht fährt.

Praxisbeispiele

Typen, Pflichtangaben und vorgeschlagene KNX-Adressen

Die folgende Zuordnung gilt für jeden Port des Bausteins. Pflicht bedeutet, dass der Baustein ohne den Wert nicht sinnvoll arbeiten kann; optional bedeutet, dass der Port leer bzw. unverdrahtet bleiben darf. Die Gruppenadressen sind Vorschläge und können im Projekt angepasst werden.

PortgruppePortsTypPflichtKNX-DPTAdressbereich (Vorschlag)
Parameter KontoEmailPasswordText/StringPflichtkein KNX-DPT (Parameter)keine GA
Parameter AuswahlSerialNumberText/Stringoptional*kein KNX-DPT (Parameter)keine GA
Parameter AuswahlDeviceIndexPollIntervalSecondsGanzzahloptionalkein KNX-DPT (Parameter)keine GA
Parameter LizenzActivationCodeLicenseSerialNumberOfflineTokenOfflineProfileReleaseChannelText/Stringoptional**kein KNX-DPT (Parameter)keine GA
Basis-TriggerRefreshStartPauseHomeSetRainDelayBool/ImpulsRefresh Pflicht, übrige optional1.00110/0/1–10/0/5
RegenverzögerungRainDelayMinutesGanzzahloptional7.00110/1/1
Experten-TriggerSendCommandSendRawCommandExecuteRestBool/Impulsoptional1.00110/0/10–10/0/12
Experten-DatenCommandCodeRestTargetRestMethodGanzzahloptional7.00110/1/10–10/1/12
Experten-DatenRawCommandJsonRestSuffixRestBodyJsonText/Stringoptional16.00110/2/10–10/2/12
Erweiterte Bool-EingängeLockEnabledSetLockPartyModeEnabledSetPartyModeAcsEnabledSetAcsOffLimitsEnabledSetOffLimitsOffLimitsShortcutEnabledSetOffLimitsShortcutScheduleEnabledSetScheduleEnabledOneTimeBoundaryStartOneTimeScheduleStartEdgeCutAutoScheduleEnabledSetAutoScheduleEnabledFirmwareAutoUpgradeEnabledSetFirmwareAutoUpgradeApplyLawnApplyProductItemPatchGetMowerFirmwareInfoStartMowerFirmwareUpgradeResetBatteryCounterResetBladeCounterBooloptional1.00110/0/20–10/0/45
Erweiterte Zahlen-EingängeTorquePercentCuttingHeightMmZoneOneTimeRuntimeMinutesLawnSizeLawnPerimeterGanzzahloptional7.00110/1/20–10/1/25
Erweiterte Text-/JSON-EingängeScheduleJsonProductItemPatchJsonText/Stringoptional16.00110/2/20–10/2/21
AusgangsgruppePortsTypPflichtKNX-DPTAdressbereich (Vorschlag)
Ergebnis/IdentitätSuccessOnlineBoolAusgang immer vorhanden1.00110/3/1–10/3/2
Status/FehlerStatusCodeErrorCodeProtocolSignalStrengthCurrentZoneCurrentTorquePercentCurrentCuttingHeightMmRainDelayConfiguredMinutesRainDelayRemainingMinutesBatteryChargeCyclesBladeRuntimeMinutesTotalRuntimeMinutesGanzzahlAusgang immer vorhanden7.00110/4/1–10/4/12
MesswerteBatteryPercentBatteryTemperatureBatteryVoltageDistanceMetersPitchRollYawLatitudeLongitudeGleitkommaAusgang immer vorhanden9.00110/5/1–10/5/9
Zustands-BoolsIsMovingIsMowingIsGoingHomeIsDockedIsPausedHasErrorIsLiftedIsTrappedIsOutsideBoundaryWireMissingBladeBlockedWheelBlockedIsUpsideDownBatteryLowIsLockedErrorExcessiveSlopeZoneUnreachableChargingStationUnreachableDigitalFenceEscapeCameraErrorMapErrorLockedChargingAcsAvailableAcsActiveOffLimitsAvailableOffLimitsActiveOffLimitsShortcutActiveScheduleActiveAutoScheduleActiveFirmwareAutoUpgradeActiveRainDelayActiveUpdateAvailableBoolAusgang immer vorhanden1.00110/3/10–10/3/41
TextausgängeNameSerialStatusTextErrorTextLastUpdateDiagnosticsLicenseStatusLicenseOwnerLatestVersionDownloadUrlOfflineExpiresAtModelMowerUuidMowerMacAddressMowerFirmwareVersionConnectionTypeText/StringAusgang immer vorhanden16.00110/6/1–10/6/16
JSON-AusgängeRawJsonApiResponseCapabilitiesJsonScheduleStatusJsonAutoScheduleJsonZonesJsonModulesJsonStatisticsJsonMowerFirmwareJsonText/Stringoptional sichtbar16.00110/7/1–10/7/9

SerialNumber ist bei nur einem Mäher optional; bei mehreren Geräten sollte sie gesetzt werden. DeviceIndex wird nur verwendet, wenn SerialNumber leer ist. ** Mindestens eine gültige Online- oder Offline-Lizenzkonfiguration muss vorhanden sein; welche Parameter benötigt werden, hängt vom Lizenzweg ab. Bool-Impulse werden als 0 → 1 → 0 verdrahtet. KNX-DPT 16.001 ist für Diagnose-/JSON-Text nur eine Übergabeempfehlung; sehr lange JSON-Werte sollten nicht direkt als KNX-Text übertragen werden.

Statusabfrage

Parameter: Email, Password und SerialNumber gesetzt
Refresh = Impuls 0 → 1 → 0

Success        = 1
Name           = Landroid Garten
Serial         = 20231234567890123456
StatusCode     = 1
ErrorCode      = 0
BatteryPercent = 78
Online         = 1
LastUpdate     = 2026-07-14T10:42:18.000Z
Diagnostics    = OK

Firmwareinformationen lesen

RestTarget   = 0
RestMethod   = 0
RestSuffix   = firmware-upgrade
RestBodyJson = {}
ExecuteRest  = Impuls 0 → 1 → 0

Ergebnis:
Success      = 1
Diagnostics  = REST-Aufruf erfolgreich
ApiResponse  = <Firmwareantwort von WORX>

Lizenzaktivierung

ActivationCodeLicenseSerialNumber und – falls vereinbart – OfflineToken/OfflineProfile in die gleichnamigen Parameter kopieren. Beim Start prüft der Baustein die Lizenz. Die Online-Lizenz wird alle drei Stunden aktualisiert; für aktive Sitzungen wird alle acht Minuten ein Heartbeat gesendet. Details stehen in WORX_KUNDENANLEITUNG_LIZENZDATEN.md.

Sicherheit

Arbeitsbereich räumen, Personen und Tiere fernhalten und den Mäher bei ersten Tests beaufsichtigen. Zuerst Refresh, danach Pause oder Home testen; erst anschließend Start. Experten-, Firmware- und Zählerfunktionen nur durch den Administrator freischalten.

Fehlerbehebung

Meldung/SituationMaßnahme
Keine gueltige Lizenz.ActivationCode, X1/L1-MAC-Zuordnung und LicenseStatus prüfen.
Anmeldung fehlgeschlagenWORX-E-Mail und Kennwort prüfen; Anmeldung in der WORX-App testen.
Seriennummer nicht gefundenMäher-SerialNumber prüfen oder leer lassen und DeviceIndex=0 testen.
Mäher offlineWLAN- und Cloud-Verbindung des Mähers prüfen.
HTTP 429Abfrageintervall vergrößern und einige Minuten warten.
cURL konnte nicht gestartet werdenX1/L1-Firmware und Paketinstallation durch den Administrator prüfen.
Befehl angenommen, aber keine BewegungWORX-App auf Sperre, Fehler, Regenpause oder Sicherheitszustand prüfen.

Empfohlenes Statusintervall: 60 bis 300 Sekunden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Share this Doc

Logikbaustein Worx Landroid

Or copy link

CONTENTS