MQTT2 für Worx Landroid Mähroboter

Begonnen von Otto123, 09 Juni 2020, 13:55:43

Vorheriges Thema - Nächstes Thema

andi11

Zitat von: frober am 10 April 2023, 08:38:57Ist dein Mäher eingeschaltet?
Wenn er noch schläft, gibt er auch keine Antwort.
Und der Client steht auf Open, wenn der Connect funktioniert.
das wars. Hatte ihn zwar schon mähen lassen dieses Jahr, aber er hat gerade geschlafen. Hab ihn per App gestartet, und kurz darauf sind die anderen Readings im Device aufgetaucht.

efyzz

Moin!
Zitat von: frober am 09 April 2023, 22:36:57Du hast einen Worx Landroid?
XX kannst du auch lassen, spielt keine Rolle.

Wurde ein Device angelegt?

Ja sicher habe ich einen Landroid und vorher auch schon die MQTT Verbindung nach Ottos Anleitung verwendet (und davor auch schon die Lösung von Axel).

Tatsächlich wurde ein neues Device angelegt, das hatte ich gestern gar nicht bemerkt.  ::)
Darin finden sich auch jede Menge Readings, die jedoch nur dann aktualisiert werden, wenn ich ein connect ausführe. Scheinbar wird dann einmalig ein Datensatz gelesen und dann springt der m2c wieder auf disconnected  :-\ Zyklische Abfrage der Werte funktioniert also nicht ohne weiteres.

Die Liste der Readings ist interessant, da sind viele neue Werte dabei, die früher nicht angezeigt wurden (z. B. city_latitude, _longitude, _name usw). Dafür fehlen andere, wie beispielsweise der Zeitplan.

Wie stehen denn die Chancen, dass die Readings wieder genauso aussehen wie vorher (mit Ottos template)?
RaspberryPi3B, Bookworm Lite
Homematic Funkmodul HM-MOD-RPI-PCB
------------------------------------------------------------------------
Ich bin kein Programmierer ... aber ich weiß, auf welcher Seite der Lötkolben heiß ist.

andi11

Zitat von: efyzz am 10 April 2023, 09:36:41Wie stehen denn die Chancen, dass die Readings wieder genauso aussehen wie vorher (mit Ottos template)?
wieder das Template aktivieren, wie beim "alten Stand". Und den Mäher mal ne Runde fahren lassen, dann gibts auch wieder die altbekannten Readings

rudolfkoenig

Zitatmodify (DEF oeffnen und speichern)
Das ist doch das Gleiche wie eine Neu-/Redefinition, oder?
Grob ja, im Detail nicht.
Nicht alle Internals werden zurueckgesetzt, insb. nrFailedConnects (noch?) nicht.


ZitatBrauchen wir nrFailedConnects überhaupt noch, OK eine Begrenzung sollte da sein.
Aber z.B. 5 reconnects in einem Abstand von x Minuten, wäre vielleicht eine Lösung.
Na irgendwer hat mir eingeblaeut, dass man nicht sinnlos connects machen darf, weil dann alles gesperrt wird. Daran habe ich mich gehalten.
Vermutlich muss man mit maxFailedConnects und nextOpenDelay herumexperimentieren, bis es passt. Koennt ihr das uebernehmen?
Achtung, nextOpenDelay wird noch in MQTT2_CLIENT.pm ueberschrieben.


Zitat@Rudi, ich denke das ist ein Problem mit den nicht mehr verwendetet noch gültigen Token.
Nach meinen diversen Versuchen glaube ich das zwar nicht, lasse mich aber gerne ueberzeugen.
Ich tippe eher darauf, dass reconnect nicht innerhalb von 10 Sekunden durchgefuehrt werden konnte, und maxFailedConnects zugeschlagen hat.

frober

#529
Hallo Rudi,

ich habe dir einen Patch erstellt. Ich bin mir nicht sicher ob alles nötig ist, da mir nicht klar ist, ob bei einem Neustart alle Daten noch vorhanden sind.

Für ein Reconnect nach einem Failconnect hilft das nicht, das muss vermutlich in den Client!?
Zumindest werden die Server etwas entlastet.  ;)

Aktuell funktioniert es bei mir, auch nach einem manuellen dis-/reconnect.

Nachtrag:
jetzt hast du noch vor mir geschrieben...
Zu häufiges reconnect innerhalb kurzer Zeit sollte es nicht geben. Daher begrenzt x mal mit x min Pause. Ich teste das mal...
An ein Timeout habe ich bei mir auch gedacht. Die Zwangsunterbrechung war um 00:08 und der disconnect um 00:14. Passt fürs timeout nicht, würde ich sagen.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

frober

Als Workarount bei einem disconnect (zum Testen):

defmod w_m2c watchdog m2c:disconnected 00:30 m2c:CONNECTED set m2c connect
attr w_m2c autoRestart 1
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

rudolfkoenig

Zitatich habe dir einen Patch erstellt. [...]
Die Abfrage der User- bzw. Device-Infos beim reconnect zu vermeiden habe ich auch ueberlegt, bin aber nicht sicher, ob es wert ist, die Antwort kommt innerhalb von Millisekunden, und Daten werden aktualisiert. Wenn man die Updates nicht will, kann man es mit autocreate 0 im Aufruf abschalten.
Bei ReadingsAge < 3400 Auth zu skippen ist nett gemeint, aber dann muss man auch den Refresh Timer noch irgendwie setzen. Ich wuesste auch gerne, welches Problem man damit loest.

Under dem Strich: bitte keine Patches, sondern die Probleme beschreiben, bzw. was hilft, um sie zu loesen.
Alternativ kann ich den Maintainer von LandroidUtils.pm weitergeben, das muss ich irgendwann sowieso, da ich kein Geraet habe.

Ralli

#532
Zitat von: frober am 10 April 2023, 11:25:59Als Workarount bei einem disconnect (zum Testen):

Oder für die DOIF-Jünger 8) :

defmod DOIF_M2C_ReConnect DOIF ([m2c:"disconnected"]) (set m2c connect) DOELSEIF ([m2c:"CONNECTED"]) ()
attr DOIF_M2C_ReConnect wait 30:0
attr DOIF_M2C_ReConnect cmdpause 10:0
attr DOIF_M2C_ReConnect repeatsame 3:0
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

frober

#533
Zitat von: rudolfkoenig am 10 April 2023, 11:41:34
Zitatich habe dir einen Patch erstellt. [...]
Die Abfrage der User- bzw. Device-Infos beim reconnect zu vermeiden habe ich auch ueberlegt, bin aber nicht sicher, ob es wert ist, die Antwort kommt innerhalb von Millisekunden, und Daten werden aktualisiert. Wenn man die Updates nicht will, kann man es mit autocreate 0 im Aufruf abschalten.
Bei ReadingsAge < 3400 Auth zu skippen ist nett gemeint, aber dann muss man auch den Refresh Timer noch irgendwie setzen. Ich wuesste auch gerne, welches Problem man damit loest.

Under dem Strich: bitte keine Patches, sondern die Probleme beschreiben, bzw. was hilft, um sie zu loesen.
Alternativ kann ich den Maintainer von LandroidUtils.pm weitergeben, das muss ich irgendwann sowieso, da ich kein Geraet habe.

"aber dann muss man auch den Refresh Timer noch irgendwie setzen"
Was meinst du damit?
<3400 access_token, < 3600 refresh
durch die Reihenfolge der if Bedingung ergibt sich das doch, oder geht das nur bei C/C++?
Damit sollte man eine abgebrochen Verbindung wieder aufnehmen können, mit refresh wird eine neue Verbindung hergestellt.

Mir geht es nicht um die benötigte Zeit der Abfragen, sondern um die Empfehlung von AWS und PositecBeta. Zumal wenn jeder, der einen Mäher hat, alles abfrägt summiert sie der Traffic am Server.

Aktuell bin ich kein Maintainer, hmm sollte nicht das Problem sein.
Wäre bereit das 'Modul' zu übernehmen.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Allgaeuer

Hallo,

zuerst allen hier ein großes Dankeschön an alle für die Arbeit zum neuen Anmeldeverfahren. Ich gestehe, dass ich momentan noch die Backup-Variante mit IOBroker verwende, lese aber mit und möchte auch wieder auf FHEM-only umschwenken.
Nun zu meiner Frage: Bei mir funktioniert der "Pause"-Befehl nicht. Start, Stop geht einwandfrei. Lt. Logfile wird der Pause-Befehl abgesetzt, am Mower tut sich aber nichts.
2023.04.10 18:45:16 4: MQTT2_DEVICE_Parse: Maehrobbi_1 worx/0/myWorxNumber/mower/pause => { $TOPIC =~ s/$DEVICETOPIC\///; $TOPIC =~ s/^mower\/|^product\/|^areas\///; $TOPIC =~ s/\//_/g; return if $TOPIC =~ m{firmware_available_all|activityLog|accessories}; { "$TOPIC"=>$EVENT }}
2023.04.10 18:46:07 4: MQTT2_DEVICE_Parse: Maehrobbi_1 worx/0/myWorxNumber/mower/gradient => { $TOPIC =~ s/$DEVICETOPIC\///; $TOPIC =~ s/^mower\/|^product\/|^areas\///; $TOPIC =~ s/\//_/g; return if $TOPIC =~ m{firmware_available_all|activityLog|accessories}; { "$TOPIC"=>$EVENT }}

Auch habe ich in die 74_LANDROID.pm reingeschaut, finde aber nichts, was mich weiterbringt.

Funktioniert bei Euch der Pause-Befehl?

Danke für Eure Rückmeldung.

Gruß Allgäuer

efyzz

#535
Zitat von: andi11 am 10 April 2023, 09:39:53wieder das Template aktivieren, wie beim "alten Stand". Und den Mäher mal ne Runde fahren lassen, dann gibts auch wieder die altbekannten Readings

Danke, aber irgendwas mache ich scheinbar falsch. Habe das Template angewendet, doch keines der Readings passt zum Template. Und obwohl ich den Mäher gerade fahren lasse, sind keine weiteren Readings dazu gekommen.  :-\

Und was tut ihr denn dagegen, dass man für jedes Update der Readings ein set connect ausführen muss? Ist das so gewollt?
RaspberryPi3B, Bookworm Lite
Homematic Funkmodul HM-MOD-RPI-PCB
------------------------------------------------------------------------
Ich bin kein Programmierer ... aber ich weiß, auf welcher Seite der Lötkolben heiß ist.

frober

#536
Bei mir läuft das alte Templates einwandfrei.
Die Daten kommen automatisch, so wie vorher.

Ist dein Mäher online?
Das Device wird bei autocreate mit den User-/Mowerdaten angelegt. Das hat erstmal nichts mit den MQTT-Daten zu tuen. Diese kommen nur wenn  der Client auf opened steht und der Mäher nicht schläft.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

frober

Hallo Rudi,
sorry der Patch hat noch Fehler. Wirst du wahrscheinlich schon gesehen haben.  ::)
Präfix und Endpoint fehlt um direkt MQTT zu connecten.

Bin von myUtils verwöhnt, beim Speichern funktioniert die Korrektur gleich.
Wie aktualisierst du die Änderung, jedesmal durch Neustart?

Egal ob du das umsetzt, ich Versuche zu verstehen, zu lernen...
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

efyzz

Ja, mein Mäher ist online. Hatte ihn vorhin per Android-App gestartet und wieder nach Hause geschickt. Dabei sind wie gesagt keine zusätzlichen Readings aufgetaucht.

Hier mal die Raw Definitions und Readings. Sieht das bei euch auch so aus?

define MQTT_Worx MQTT2_CLIENT iot.eu-west-1.worxlandroid.com
attr MQTT_Worx connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
attr MQTT_Worx execAfterConnect { my $h=$defs{$NAME};;MQTT2_CLIENT_doPublish($h,'PRM100/98D863460BFC/commandIn','{}')}
attr MQTT_Worx keepaliveTimeout 600
attr MQTT_Worx maxFailedConnects 1
attr MQTT_Worx room Garten
attr MQTT_Worx subscriptions PRM100/98D863460BFC/commandOut
attr MQTT_Worx username ***
#  BUF       
#  Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
#  ClientsKeepOrder 1
#  DEF        iot.eu-west-1.worxlandroid.com
#  DeviceName iot.eu-west-1.worxlandroid.com:443
#  FUUID      64331ac9-f33f-6f7b-f91e-42ac9*********
#  NAME      MQTT_Worx
#  NEXT_OPEN  1681152091.11622
#  NR        667
#  PARTIAL   
#  SSL        1
#  STATE      disconnected
#  TYPE      MQTT2_CLIENT
#  autocreate 1
#  clientId  WX/USER/225193/FHEM/64331aef-f33f-6f7b-a9e6-e4f00f6************
#  connecting 1
#  eventCount 44
#  landroidType worx
#  mqttEndpoint iot.eu-west-1.worxlandroid.com
#  nextOpenDelay 10
#  nrConnects 12
#  nrFailedConnects 1
#  userId    225***
#  MatchList:
#    1:MQTT2_DEVICE ^.
#    2:MQTT_GENERIC_BRIDGE ^.
#  READINGS:
#    2023-04-10 20:41:21  state          disconnected
#    2023-04-09 22:07:11  wxid            64331aef-f33f-6f7b-a9e6-e4f00f********
#  sslargs:
#    SSL_alpn_protocols mqtt
#
setstate MQTT_Worx disconnected
setstate MQTT_Worx 2023-04-10 20:41:20 .refresh_token def502004f4af43db0a45babb5bf001ae98b059554b4441e447cbc5c7e204b451f3707410a1258a712d02e9def42d15740d81b6a436bfbb326678ad41349557a7cbcbbc0199b1ee957db7eb47a7432054e3a1ac310570d7129f2665a908da3bddc9ebcbae3c631efef45e403c91a82b9cde946df1d9b1bb18d1e363b254d99f0f51401f5828cabbfe140cd6a2bf14261086e5ea7e9a1100e80a5feca9d14842f64162f2d049e5d8f03ec4e9fc342dbac542cbc052a0d8fa960bb1db1a5af039b0e40ea8e154cec7089291703fbd2c866ed31cce1b5747c1c0286d9b451a8773417e78add692ac44ce8a10fb28437878c8490a0384ef7cb9865bf9d5f72bfb1b42b3cf7f31fce07f66cbdbf991743748718239a44576cd61d041665e11bd9b46ce0fe14e5faf66becbc8579b955b9a1126ed3ae298ab9334f5e53197ff1058dfdc918b8388624ad37b21a961533fe3c4c001327e9434c765e567e70dd1349738211ddfecb52b6e72aa26ff5646485bc78b3f1846c740fa4c9a6fc7eb57ded659ab44eaa348cae7f6b8bfb79d4336963937e3a9a61cc88b99610dc54c48ab16ced0a4b0faaddc7daf3e6cf59744a65136fc7a7a29861dc5953969302a34bd685cff0a3989eeba6e03a13c9101f5cdd08bea9bac714fd04b5b6385a72d1038e3c951092dbdc886edd76ff6b0331d1f218ca28103bf7d04160bf5cb7b6886bb2e386657b2ea3b95a268f0596ab526f5b225ba24206e654e1427cf185d200e7597960a08d733ef58c3ff98493f1d9af827c3c91a773054902bc87f4569f92ab0b92ca4f988c1b549a62f7cca5fbc4a6aed246a0e399e50a2d597479f144ec6163735***************
setstate MQTT_Worx 2023-04-10 20:41:21 state disconnected
setstate MQTT_Worx 2023-04-09 22:07:11 wxid 64331aef-f33f-6f7b-a9e6-****************


define MQTT_Worx_M MQTT2_DEVICE
attr MQTT_Worx_M IODev MQTT_Worx
attr MQTT_Worx_M alias Mower
attr MQTT_Worx_M devicetopic PRM100/98D863460BFC
attr MQTT_Worx_M event-on-change-reading .*
attr MQTT_Worx_M icon scene_robo_lawnmower
attr MQTT_Worx_M jsonMap dat_rsi:wifiQuality dat_fw:firmware cfg_sn:SerialNumber\
dat_le:mowerErrorIndex dat_ls:mowerStatusIndex\
cfg_rd:mowerRainDelay cfg_sc_m:mowerActiveIndex cfg_sc_p:mowerTimeCorrection cfg_tq:torqueSetting\
dat_bt_t:batteryTemperature dat_bt_v:batteryVoltage dat_bt_p:batteryPercent dat_bt_nr:batteryChargeCycle dat_bt_c:batteryCharging\
dat_st_b:totalBladeTime dat_st_d:totalDistance dat_st_wt:totalTime dat_st_bl:borderLength\
dat_dmp_1:directionPitch dat_dmp_2:directionRoll dat_dmp_3:directionYaw
attr MQTT_Worx_M model worx_landroid_mower
attr MQTT_Worx_M readingList $DEVICETOPIC/commandOut:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MQTT_Worx_M room Garten,MQTT2_DEVICE
attr MQTT_Worx_M setList mowerRainDelay:slider,0,30,1440 $DEVICETOPIC/commandIn {"rd":$EVTPART1}\
  mowerTimeCorrection:slider,-100,1,100 $DEVICETOPIC/commandIn {"sc":{"p":$EVTPART1}}\
  startBorderCut:noArg $DEVICETOPIC/commandIn {"sc":{"ots":{"bc":1,"wtm":0}}}\
  startOneTime:slider,10,10,720 $DEVICETOPIC/commandIn {"sc":{"ots":{"bc":0,"wtm":$EVTPART1}}}\
  startMower:noArg $DEVICETOPIC/commandIn {"cmd":1}\
  pauseMower:noArg $DEVICETOPIC/commandIn {"cmd":2}\
  stopMower:noArg $DEVICETOPIC/commandIn {"cmd":3}\
  torqueSetting:slider,-50,1,50 $DEVICETOPIC/commandIn {"tq":$EVTPART1}\
  PartyTime:slider,0,10,2880 $DEVICETOPIC/commandIn {"sc":{"distm":$EVTPART1}}\
  PartyMode:on,off { my %hash = ( 'on' => 2, 'off' => 1);;qq($DEVICETOPIC/commandIn {"sc":{"m":$hash{$EVTPART1}}})}\
  x_raw_payload:textField { my $payload = $EVENT;;$payload =~ s/$EVTPART0 //g;; qq($DEVICETOPIC/commandIn $payload)}
attr MQTT_Worx_M stateFormat Active: mowerActive, Status: mowerStatusTxt, Error: mowerErrorTxt
attr MQTT_Worx_M userReadings mowerActive:mowerActiveIndex:.* {my %activeState = (\
 0 => "No",\
 1 => "Yes",\
 2 => "Party"\
);; $activeState{ReadingsVal($name,"mowerActiveIndex","0")}},\
mowerStatusTxt:mowerStatusIndex.* {my %stateCodes = (\
 0 => "Idle",\
 1 => "Home",\
 2 => "Start sequence",\
 3 => "Leaving home",\
 4 => "Follow wire",\
 5 => "Searching home",\
 6 => "Searching wire",\
 7 => "Mowing",\
 8 => "Lifted",\
 9 => "Trapped",\
 10 => "Blade blocked",\
 11 => "Debug",\
 12 => "Remote control",\
 30 => "Going home",\
 31 => "Zone Training",\
 32 => "Edge cutting",\
 33 => "Searching zone",\
 34 => "Pause"\
);; $stateCodes{ReadingsVal($name,"mowerStatusIndex","0")}},\
mowerErrorTxt:mowerErrorIndex.* { my %errorCodes = (\
 0 => "No error",\
 1 => "Trapped",\
 2 => "Lifted",\
 3 => "Wire missing",\
 4 => "Outside wire",\
 5 => "Raining",\
 6 => "Close door to mow",\
 7 => "Close door to go home",\
 8 => "Blade motor blocked",\
 9 => "Wheel motor blocked",\
 10 => "Trapped timeout",\
 11 => "Upside down",\
 12 => "Battery low",\
 13 => "Reverse wire",\
 14 => "Charge error",\
 15 => "Timeout finding home",\
 16 => "Mower locked",\
 17 => "Battery temp out of range"\
);; $errorCodes{ReadingsVal($name,"mowerErrorIndex","0")}}
#  CFGFN     
#  CID        20193019840*********
#  DEF       
#  FUUID      6434486c-f33f-6f7b-6232-fae4df**********
#  IODev      MQTT_Worx
#  NAME      MQTT_Worx_M
#  NR        23518
#  STATE      Active: mowerActive, Status: mowerStatusTxt, Error: mowerErrorTxt
#  TYPE      MQTT2_DEVICE
#  eventCount 1
#  JSONMAP:
#    cfg_rd    mowerRainDelay
#    cfg_sc_m  mowerActiveIndex
#    cfg_sc_p  mowerTimeCorrection
#    cfg_sn    SerialNumber
#    cfg_tq    torqueSetting
#    dat_bt_c  batteryCharging
#    dat_bt_nr  batteryChargeCycle
#    dat_bt_p  batteryPercent
#    dat_bt_t  batteryTemperature
#    dat_bt_v  batteryVoltage
#    dat_dmp_1  directionPitch
#    dat_dmp_2  directionRoll
#    dat_dmp_3  directionYaw
#    dat_fw    firmware
#    dat_le    mowerErrorIndex
#    dat_ls    mowerStatusIndex
#    dat_rsi    wifiQuality
#    dat_st_b  totalBladeTime
#    dat_st_bl  borderLength
#    dat_st_d  totalDistance
#    dat_st_wt  totalTime
#  OLDREADINGS:
#  READINGS:
#    2023-04-10 19:33:53  IODev          MQTT_Worx
#    2023-04-10 20:41:20  accessories_ultrasonic true
#    2023-04-10 19:33:53  attrTemplateVersion 20221101
#    2023-04-10 20:41:20  battery_charge_cycles 648
#    2023-04-10 20:41:20  blade_work_time 78131
#    2023-04-10 20:41:20  blade_work_time_reset 78314
#    2023-04-10 20:41:20  blade_work_time_reset_at 2023-04-10 17:45:33
#    2023-04-10 20:41:20  capabilities_1  auto_lock
#    2023-04-10 20:41:20  capabilities_10 rain_delay
#    2023-04-10 20:41:20  capabilities_11 rain_delay_start
#    2023-04-10 20:41:20  capabilities_12 safe_go_home
#    2023-04-10 20:41:20  capabilities_13 scheduler_two_slots
#    2023-04-10 20:41:20  capabilities_14 unrestricted_mowing_time
#    2023-04-10 20:41:20  capabilities_2  digital_fence_settings
#    2023-04-10 20:41:20  capabilities_3  lock
#    2023-04-10 20:41:20  capabilities_4  mqtt
#    2023-04-10 20:41:20  capabilities_5  multi_zone
#    2023-04-10 20:41:20  capabilities_6  multi_zone_percentage
#    2023-04-10 20:41:20  capabilities_7  one_time_scheduler
#    2023-04-10 20:41:20  capabilities_8  pairing_smartlink
#    2023-04-10 20:41:20  capabilities_9  pause_over_wire
#    2023-04-10 20:41:20  city_country_id ***
#    2023-04-10 20:41:20  city_created_at 2018-02-15 22:22:41
#    2023-04-10 20:41:20  city_id        6552***
#    2023-04-10 20:41:20  city_latitude  52.***
#    2023-04-10 20:41:20  city_longitude  10.***
#    2023-04-10 20:41:20  city_name      ***
#    2023-04-10 20:41:20  city_updated_at 2018-02-15 22:22:41
#    2023-04-10 20:41:20  created_at      2019-04-02 07:20:05
#    2023-04-10 20:41:20  diagnostic      false
#    2023-04-10 20:41:20  distance_covered 1280866
#    2023-04-10 20:41:20  features_auto_lock 3.25
#    2023-04-10 20:41:20  features_chassis m_2019
#    2023-04-10 20:41:20  features_digital_fence_settings 3.25
#    2023-04-10 20:41:20  features_display_type tube
#    2023-04-10 20:41:20  features_input_type keyboard_tube
#    2023-04-10 20:41:20  features_lock  true
#    2023-04-10 20:41:20  features_mqtt  true
#    2023-04-10 20:41:20  features_multi_zone true
#    2023-04-10 20:41:20  features_multi_zone_percentage true
#    2023-04-10 20:41:20  features_multi_zone_zones 4
#    2023-04-10 20:41:20  features_one_time_scheduler 3.15
#    2023-04-10 20:41:20  features_pause_over_wire 3.26
#    2023-04-10 20:41:20  features_rain_delay true
#    2023-04-10 20:41:20  features_rain_delay_start 3.08
#    2023-04-10 20:41:20  features_safe_go_home 3.25
#    2023-04-10 20:41:20  features_scheduler_two_slots 3.15
#    2023-04-10 20:41:20  features_unrestricted_mowing_time true
#    2023-04-10 20:41:20  features_wifi_pairing smartlink
#    2023-04-10 20:41:20  firmware_auto_upgrade false
#    2023-04-10 20:41:20  firmware_version 3.2800000000000002
#    2023-04-10 20:41:20  id              379***
#    2023-04-10 20:41:20  improvement    false
#    2023-04-10 20:41:20  iot_registered  true
#    2023-04-10 20:41:20  lawn_perimeter  153
#    2023-04-10 20:41:20  lawn_size      800
#    2023-04-10 20:41:20  locked          true
#    2023-04-10 20:41:20  mac_address    98D86346****
#    2023-04-10 20:41:20  mower_work_time 83628
#    2023-04-10 20:41:20  mqtt_endpoint  iot.eu-west-1.worxlandroid.com
#    2023-04-10 20:41:20  mqtt_registered true
#    2023-04-10 20:41:20  mqtt_topics_command_in PRM100/98D863460BFC/commandIn
#    2023-04-10 20:41:20  mqtt_topics_command_out PRM100/98D863460BFC/commandOut
#    2023-04-10 20:41:20  name            M
#    2023-04-10 20:41:20  online          true
#    2023-04-10 20:41:20  product_id      49
#    2023-04-10 20:41:20  protocol        0
#    2023-04-10 20:41:20  purchased_at    2019-07-06 00:00:00
#    2023-04-10 20:41:20  push_notifications true
#    2023-04-10 20:41:20  push_notifications_level warning
#    2023-04-10 20:41:20  registered_at  2019-07-07 00:00:00
#    2023-04-10 20:41:20  serial_number  20193019************
#    2023-04-10 20:41:20  setup_location_latitude 52.***
#    2023-04-10 20:41:20  setup_location_longitude 10.***
#    2023-04-10 20:41:20  test            false
#    2023-04-10 20:41:20  time_zone      Europe/Berlin
#    2023-04-10 20:41:20  updated_at      2023-04-08 01:11:30
#    2023-04-10 20:41:20  user_id        225193
#    2023-04-10 20:41:20  uuid            96c52e42-951a-4002-9814-2224832e5110
#    2023-04-10 20:41:20  warranty_expires_at 2022-07-06 00:00:00
#    2023-04-10 20:41:20  warranty_registered true
#
setstate MQTT_Worx_M Active: mowerActive, Status: mowerStatusTxt, Error: mowerErrorTxt
setstate MQTT_Worx_M 2023-04-10 19:33:53 IODev MQTT_Worx
setstate MQTT_Worx_M 2023-04-10 20:41:20 accessories_ultrasonic true
setstate MQTT_Worx_M 2023-04-10 19:33:53 attrTemplateVersion 20221101
setstate MQTT_Worx_M 2023-04-10 20:41:20 battery_charge_cycles 648
setstate MQTT_Worx_M 2023-04-10 20:41:20 blade_work_time 78131
setstate MQTT_Worx_M 2023-04-10 20:41:20 blade_work_time_reset 78314
setstate MQTT_Worx_M 2023-04-10 20:41:20 blade_work_time_reset_at 2023-04-10 17:45:33
setstate MQTT_Worx_M 2023-04-10 20:41:20 capabilities_1 auto_lock
setstate MQTT_Worx_M 2023-04-10 20:41:20 capabilities_10 rain_delay
setstate MQTT_Worx_M 2023-04-10 20:41:20 capabilities_11 rain_delay_start
setstate MQTT_Worx_M 2023-04-10 20:41:20 capabilities_12 safe_go_home
setstate MQTT_Worx_M 2023-04-10 20:41:20 capabilities_13 scheduler_two_slots
setstate MQTT_Worx_M 2023-04-10 20:41:20 capabilities_14 unrestricted_mowing_time
setstate MQTT_Worx_M 2023-04-10 20:41:20 capabilities_2 digital_fence_settings
setstate MQTT_Worx_M 2023-04-10 20:41:20 capabilities_3 lock
setstate MQTT_Worx_M 2023-04-10 20:41:20 capabilities_4 mqtt
setstate MQTT_Worx_M 2023-04-10 20:41:20 capabilities_5 multi_zone
setstate MQTT_Worx_M 2023-04-10 20:41:20 capabilities_6 multi_zone_percentage
setstate MQTT_Worx_M 2023-04-10 20:41:20 capabilities_7 one_time_scheduler
setstate MQTT_Worx_M 2023-04-10 20:41:20 capabilities_8 pairing_smartlink
setstate MQTT_Worx_M 2023-04-10 20:41:20 capabilities_9 pause_over_wire
setstate MQTT_Worx_M 2023-04-10 20:41:20 city_country_id 276
setstate MQTT_Worx_M 2023-04-10 20:41:20 city_created_at 2018-02-15 22:22:41
setstate MQTT_Worx_M 2023-04-10 20:41:20 city_id 6552***
setstate MQTT_Worx_M 2023-04-10 20:41:20 city_latitude 52.***
setstate MQTT_Worx_M 2023-04-10 20:41:20 city_longitude 10.***
setstate MQTT_Worx_M 2023-04-10 20:41:20 city_name ***
setstate MQTT_Worx_M 2023-04-10 20:41:20 city_updated_at 2018-02-15 22:22:41
setstate MQTT_Worx_M 2023-04-10 20:41:20 created_at 2019-04-02 07:20:05
setstate MQTT_Worx_M 2023-04-10 20:41:20 diagnostic false
setstate MQTT_Worx_M 2023-04-10 20:41:20 distance_covered 1280866
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_auto_lock 3.25
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_chassis m_2019
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_digital_fence_settings 3.25
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_display_type tube
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_input_type keyboard_tube
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_lock true
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_mqtt true
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_multi_zone true
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_multi_zone_percentage true
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_multi_zone_zones 4
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_one_time_scheduler 3.15
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_pause_over_wire 3.26
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_rain_delay true
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_rain_delay_start 3.08
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_safe_go_home 3.25
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_scheduler_two_slots 3.15
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_unrestricted_mowing_time true
setstate MQTT_Worx_M 2023-04-10 20:41:20 features_wifi_pairing smartlink
setstate MQTT_Worx_M 2023-04-10 20:41:20 firmware_auto_upgrade false
setstate MQTT_Worx_M 2023-04-10 20:41:20 firmware_version 3.2800000000000002
setstate MQTT_Worx_M 2023-04-10 20:41:20 id 379***
setstate MQTT_Worx_M 2023-04-10 20:41:20 improvement false
setstate MQTT_Worx_M 2023-04-10 20:41:20 iot_registered true
setstate MQTT_Worx_M 2023-04-10 20:41:20 lawn_perimeter 153
setstate MQTT_Worx_M 2023-04-10 20:41:20 lawn_size 800
setstate MQTT_Worx_M 2023-04-10 20:41:20 locked true
setstate MQTT_Worx_M 2023-04-10 20:41:20 mac_address 98D86346****
setstate MQTT_Worx_M 2023-04-10 20:41:20 mower_work_time 83628
setstate MQTT_Worx_M 2023-04-10 20:41:20 mqtt_endpoint iot.eu-west-1.worxlandroid.com
setstate MQTT_Worx_M 2023-04-10 20:41:20 mqtt_registered true
setstate MQTT_Worx_M 2023-04-10 20:41:20 mqtt_topics_command_in PRM100/98D863460BFC/commandIn
setstate MQTT_Worx_M 2023-04-10 20:41:20 mqtt_topics_command_out PRM100/98D863460BFC/commandOut
setstate MQTT_Worx_M 2023-04-10 20:41:20 name M
setstate MQTT_Worx_M 2023-04-10 20:41:20 online true
setstate MQTT_Worx_M 2023-04-10 20:41:20 product_id 49
setstate MQTT_Worx_M 2023-04-10 20:41:20 protocol 0
setstate MQTT_Worx_M 2023-04-10 20:41:20 purchased_at 2019-07-06 00:00:00
setstate MQTT_Worx_M 2023-04-10 20:41:20 push_notifications true
setstate MQTT_Worx_M 2023-04-10 20:41:20 push_notifications_level warning
setstate MQTT_Worx_M 2023-04-10 20:41:20 registered_at 2019-07-07 00:00:00
setstate MQTT_Worx_M 2023-04-10 20:41:20 serial_number 20193019************
setstate MQTT_Worx_M 2023-04-10 20:41:20 setup_location_latitude 52.***
setstate MQTT_Worx_M 2023-04-10 20:41:20 setup_location_longitude 10.***
setstate MQTT_Worx_M 2023-04-10 20:41:20 test false
setstate MQTT_Worx_M 2023-04-10 20:41:20 time_zone Europe/Berlin
setstate MQTT_Worx_M 2023-04-10 20:41:20 updated_at 2023-04-08 01:11:30
setstate MQTT_Worx_M 2023-04-10 20:41:20 user_id 225***
setstate MQTT_Worx_M 2023-04-10 20:41:20 uuid 96c52e42-951a-4002-9814-2224832e5110
setstate MQTT_Worx_M 2023-04-10 20:41:20 warranty_expires_at 2022-07-06 00:00:00
setstate MQTT_Worx_M 2023-04-10 20:41:20 warranty_registered true

RaspberryPi3B, Bookworm Lite
Homematic Funkmodul HM-MOD-RPI-PCB
------------------------------------------------------------------------
Ich bin kein Programmierer ... aber ich weiß, auf welcher Seite der Lötkolben heiß ist.

frober

Der Client ist disconnect.

Wenn du schon ein set .. connect gemacht hast, probiere mal einen Neustart von Fhem.

Ralli hatte auch Probleme. Schwierig zu sagen, wo es hängt.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...