FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: Otto123 am 09 Juni 2020, 13:55:43

Titel: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 09 Juni 2020, 13:55:43
Hallo Rasenmäher User,

es gibt für den LANDROID von Axel Mohnen ein Modul was irgendwann in diesem Thread  (https://forum.fhem.de/index.php/topic,55053.0.html)entstanden ist.
Angeregt und mit Hilfe von diesem Beitrag  (https://forum.fhem.de/index.php/topic,99343.0.html)habe ich eine Alternative gebaut.

Die alte Beschreibung hier ist mittlerweile obsolete.
Es gibt zur Einrichtung jetzt einen Wiki Artikel (https://wiki.fhem.de/wiki/M%C3%A4hroboter:_Worx_Landroid,_Kress,_Landxcape).

__________________________________________________

Zur Vorbereitung braucht man ein Tool welches als Windows oder Linux Version zur Verfügung (https://www.roboter-forum.com/index.php?thread/22795-entwicklungsprojekt-worx-landroid-kress-mission-desktop-app/) steht. Windows Version V0.0.24 - Net.zip hat bei mir funktioniert. Man startet das Tool, trägt seinen Cloudzugang ein und erhält folgende Informationen:
Das Zertifikat von Windows auf den FHEM Server bringen (Pfad anpassen):
scp "D:\mqtt\WorxLandroidDeskApp\AWS.p12" pi@raspib3:
Ab jetzt sind alle Befehle zeilenweise für die FHEM Kommandozeile oder Blockweise für die Raw Definition!
Auch hier wieder den Pfad anpassen, wenn man nicht den Pfad /home/pi für das Zertifikate verwendet hat.

"openssl pkcs12 -in /home/pi/AWS.p12 -nokeys -passin pass: -out aws.cer -clcerts"
"openssl pkcs12 -in /home/pi/AWS.p12 -nodes -passin pass: -out aws.key -nocerts"
"chmod 0600 aws.*"
Das Template ist seit heute im SVN, wer ein halbwegs aktuelles FHEM hat kann das Template aktualisieren:
{ Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }Bitte auf Erfolg und Fehlermeldungen prüfen.

Jetzt in FHEM den Connector zum Broker herstellen und testen. Die entsprechenden Daten eintragen!
define MQTT_Worx MQTT2_CLIENT <broker-server-adresse>:8883
attr MQTT_Worx SSL 1
attr MQTT_Worx autocreate simple
{my $uuid=substr(genUUID(),0,36);;fhem("attr MQTT_Worx clientId android-$uuid")}
attr MQTT_Worx keepaliveTimeout 600
attr MQTT_Worx mqttVersion 3.1.1
attr MQTT_Worx msgAfterConnect <BoardID>/<MAC>/commandIn {}
attr MQTT_Worx sslargs SSL_version:TLSv12 SSL_cert_file:aws.cer SSL_key_file:aws.key SSL_use_cert:1
attr MQTT_Worx subscriptions <BoardID>/<MAC>/commandOut
Hat man alles richtig gemacht, geht der state des Devices MQTT_Worx sofort auf opened.
Die erste Übertragung sollte automatisch ein neues MQTT_DEVICE erstellen.

Hinweis: Die clientID darf nicht mehrfach gleichzeitig zur Anmeldung verwendet werden, das führt binnen sekunden zur Sperre des Accounts für 24h. Ein echter Umzug der Definition in eine andere Instanz ist kein Problem. Die Anzahl der gleichzeitigen Verbindungen mit unterschiedlicher clientID ist scheinbar nicht limitiert.
Die clientID muss diese Form haben: android-ab345678-cd12-ef56-ab90-cd3456789012
Was dem Vorsatz android- plus einer 32 stelligen GUID (durch 4 Bindestriche eine Gesamtlänge von 36 Zeichen) entspricht.

Auf dieses Device wird jetzt das Template angewendet und damit konfiguriert.
set MQTT2_.*:FILTER=IODev=MQTT_Worx attrTemplate worx_landroidDie erfolgreiche Anwendung des Templates erzeugt ein Reading AttrTemplateVersion und ein Attribute model worx_landroid_mover.
Das Template übersetzt eine Reihe Readings in sprechende Namen und erzeugt vor allem mit der setList alle notwendigen Steuerbefehle für den mower.
Sollte die Befehlszeile nicht funktionieren, kann man das Template auch im set Befehl auswählen: worx_landroid

Bleibt der Connector MQTT_Worx auf disconnected -> die Zertifikate prüfen:
{qx(ls -lha /opt/fhem/aws.*)}Das Ergebnis sollte so aussehen:
-rw------- 1 fhem dialout 1.4K Jun  9 13:27 /opt/fhem/aws.cer
-rw------- 1 fhem dialout 1.8K Jun  9 13:27 /opt/fhem/aws.key

Man kann auch in die Dateien reinschauen und genauer prüfen:
{qx(openssl rsa -in aws.key -check|grep 'RSA key ok')}
{qx(openssl x509 -in aws.cer -noout -text|grep Issuer -A7)}
Beim ersten Befehl sollte einfach die Zeile RSA key ok kommen, beim Zweiten ein paar Infos über das zertifikat:
ZitatIssuer: OU = Amazon Web Services O=Amazon.com Inc. L=Seattle ST=Washington C=US
        Validity
            Not Before: Apr 30 15:33:19 2019 GMT
            Not After : Dec 31 23:59:59 2049 GMT
        Subject: CN = AWS IoT Certificate
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)

Viele Spass beim Testen

Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Beta-User am 09 Juni 2020, 14:22:54
Hi Otto,

das liest sich sehr gut!

Vielleicht noch ein paar Optimierungsoptionen - im Sinne eines Angebots:
- in der desc sollten wir auf diesen Thread verweisen und kurz erläutern, dass man etwas Vorbereitung braucht.

- soweit ich das verstanden habe, braucht jeder Mower auch seinen eigenen Broker-Zugang (=MQTT2_CLIENT), für alles zusammen brauchen wir eigentlich drei Parameter (Server (Broker)-IP, BoardID und die MAC)?
Dann könnte man über ein "deviceloses" attrTemplate - anzuwenden von einem beliebigen MQTT2_DEVICE aus - alles auf einen Rutsch machen, indem man die (ggf. fehlenden) Sachen anfragt und auch das IO-Device direkt mit anlegt (indem man prüft, ob die IP-Adresse als DEF schon irgendwo vorhanden ist); hinterher ein "show (NEW_DEV|NEW_IO)".

Das ist dann aber wirklich "Kür"...

Sonst: Hut ab!
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 09 Juni 2020, 14:32:57
Das mit dem desc mache ich!
Das mit dem eigenen Broker ist eine interessante Frage ;) Ich weiß nicht wie viele den Zweitmäher eingebunden haben?
Ich bin da unsicher mit dem eigenen Broker Zugang, eigentlich ist der Broker Zugang erstmal nur ein Account. Unter dem kann man mehrere Mäher (Geräte?) registrieren.
Eventuell braucht man also die Topics gar nicht im Detail? Schau ich mir mal noch an.

attrTemplate direkt als "Setup" zu verwenden - da hab ich auch schon so ein bisschen drüber nachgedacht :)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Beta-User am 09 Juni 2020, 15:02:15
Das mit dem account dürfte richtig sein, kann also sein, dass das nicht 100% zielführend ist. Man könnte es aber abfragen, die 8883 scheint ja gesetzt zu sein. Ungetestet:
par:RADIO_CREATE_IO;Also create a MQTT2_CLIENT device: Enter IP address;{ undef }
par:RADIO_USE_EXISTING_IO;Use existing IO for Port 8883;{my @devices=devspec2array("TYPE=MQTT2_CLIENT:FILTER=DEF~:8883");;return 1 if $devices[0];;return undef}

Das mit den Parametern und option-Zweigen (und wann man ggf. escapen muß) ist vermutlich am einfachsten über die Sprachsteuerungstemplates bzw. deren Ansteuerung bei mehrkanaligen zu verstehen (siehe auch als Einstieg den changelog von heute morgen, da habe ich das für den 2.5-er Shelly dazugebastelt).

Es gibt (wenige) templates, die weitere Devices bauen oder bestehende andere verändern, aber "show" wäre vermutlich auch bei den mehrkanaligen noch so ein Thema, das ich mal angehen könnte, und das FHEMWEB-Umbiegen findet sich z.B. so: { fhem "trigger $FW_wname JS:location.href='$FW_ME?detail=IODEVNAME'" if($cl && $cl->{TYPE} eq "FHEMWEB") }
Sollte leicht auf show anzupassen sein...

(Das ganze ist jetzt aber der Kurs für Fortgeschrittene und angehende Maintainer ;) !)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: deeb am 11 Juni 2020, 00:32:16
Hallo Otto123,

klingt ja gut, werde ich auch installieren.
Eine praktische Frage hätte ich aber vorab noch.
In dem Modul von Axel Mohnen wird meiner Meinung nach nicht die wöchentliche Mähzeit angezeigt, die man von den normalen Werten ausgehend prozentual verringern oder erhöhen kann.
Wenn man in der Android-App den Wert auf -100% stellt, bleibt der Landroid in der Ladestation.  Das ist für mich wichtig, weil ich für die Ladestation eine Überdachung/Garage gebaut habe. Dadurch registriert der Landroid mit seinen Regensensor aber nicht, wenn es "draussen" regnet. Das bedeutet, er fährt zur geplanten Mähzeit - auch bei strömenden Regen - los, merkt das es regnet und dreht entlang des Begrenzungsdrahtes noch eine Ehrenrunde, bevor er regennass dann wieder in seine Garage fährt.
Dies alles könnte man mit Fhem vermeiden, sofern man für seinen Rasen die aktuellen Wetterdaten hat.
In dem von dir genannten Windows-Tool wird dieser Wert (Erhöhung/Verringerung der wöchentlichen Mähzeit) angezeigt/ausgewertet. Auch bei deiner MQTT-Verbindung?

deeb
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 11 Juni 2020, 09:01:16
Hallo deeb,

sagen wir mal so: Diese Anbindung macht weiter nichts, als die Anmeldung und mqtt subscription bei dem worx Cloud Service. Wie dieses benannten Tool DeskApp auch.
Wir müssen nur rausfinden welches Wert im json das ist ;D
{
  "cfg":{"id":0,
    "lg":"it",
    "tm":"08:56:42",
    "dt":"11/06/2020",
    "sc":{"m":1,"p":0,"d":[
      ["00:00",0,0],
      ["00:00",0,1],
      ["00:00",0,0],
      ["09:00",60,1],
      ["00:00",0,1],
      ["00:00",0,0],
      ["00:00",0,0]]},
    "cmd":0,
    "mz":[0,0,0,0],
    "mzv":[0,0,0,0,0,0,0,0,0,0],
    "rd":0,
    "sn":"20193019840123456789"},
  "dat":{
    "mac":"980123456789",
    "fw":3.08,
    "bt":{"t":15.2,"v":20.09,"p":98,"nr":151,"c":1,"m":1},
    "dmp":[-11.2,-1.1,11.6],
    "st":{"b":10412,"d":172552,"wt":11014,"bl":69},
    "ls":1,
    "le":0,
    "lz":0,
    "rsi":-91,
    "lk":1,"act":1,"tr":0,"conn":"wifi"}
}

Ich vermute einer von denen? Was steht da bei Dir?
Zitat"mz":[0,0,0,0],
    "mzv":[0,0,0,0,0,0,0,0,0,0],
[/s]

Ach nein, jetzt verstehe ich: Es ist die mowerTimeCorrection ("sc":{.."p":0})! Die ist implementiert, sogar mit Slider, und lässt sich auch von FHEM setzen!

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 11 Juni 2020, 11:09:58
Zitat von: deeb am 11 Juni 2020, 00:32:16
In dem Modul von Axel Mohnen wird meiner Meinung nach nicht die wöchentliche Mähzeit angezeigt, die man von den normalen Werten ausgehend prozentual verringern oder erhöhen kann.
Ich bin jetzt nicht sicher wie das mit der wöchentlichen Mähzeit ist. Aber im Modul von Axel wird auch
mowTimeExtend nn
angezeigt.

Die wöchentliche Zeit ergibt sich doch aus der Summe der einzelnen Tageszeiten? Wobei das ja nur potentielle Zeiten sind wo er fahren könnte. Was er dann wirklich fährt (gefahren ist), gibt die App doch nur über den Zähler aus. Und mit -100 verhindert Du doch nicht das er nicht fährt? Das machst Du primär doch mit den täglichen Zeiten. Wenn Du die einfachst löscht fährt er nicht mehr.

Also nach meiner Meinung gibt es keinen funktionalen Unterschied zwischen dem Modul von Axel und der direkten Anbindung - beide können das Gleiche.

Der wesentliche Unterschied ist die einfacherer Anbindung ohne zwei zusätzliche Nodejs Module!

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: deeb am 11 Juni 2020, 11:51:59
Hallo Otto,

wenn ich den Slider in der App auf "-100%"  setze, dann startet der Mäher erst gar nicht bis ich dort wieder einen anderen Wert einstelle.
Das ist praktischer und schneller als die Mähzeiten an allen Tagen zu löschen und später neu einzugeben.
Auch benutze ich es, wenn ich z.B. längere Zeit nicht vor Ort bin und mitbekomme zu Hause ist gerade eine Regenzeit bzw. Dauerregen angesagt.
In bzw. mit FHEM will ich das dann automatisieren mit einen Regensensor. Das ist dann noch verlässlicher.
Wenn ich mit deiner MQTT Erweiterung den Slider setzen (publishen) kann, wäre das genau das was ich dafür brauch.
Ich benutze keinen externen MQTT Server sondern den FHEM MQTT2_SERVER.
Dafür bräuchte man dann nach meinen Verständnis nur ein MQTT2_DEVICE. Hast du das auch mal mit den MQTT2_SERVER probiert?

MfG
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: kjmEjfu am 11 Juni 2020, 12:46:15
Wenn du das ganze doch eh über FHEM automatisieren willst, dann kannst du doch auch automatisiert die Mähzeiten löschen (und wieder einstellen). Ist aus meiner Sicht sogar der saubere Weg. Und ob du nun a oder b von deinem notify/DOIF ausführen lässt, ist hinterher doch gleich.
Du könntest dir auch noch einen Dummy basteln, der beim "Einschalten" die Mähzeiten setzt und beim "Ausschalten" die Mähzeiten wieder löscht.
Dafür musst du nicht an die Korrektur der Fahrtzeit ran  ;)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: eisenhauer1987 am 11 Juni 2020, 13:25:45
Hier mal eine Inspiration wie ich das Thema Regenzeitverzögerung mit dem normalen Landroid Modul angehe. Funktioniert solide seit Anfang März. Kann man sicher auch noch erweitern und die Fahrzeiten speichern und wieder zurückschreiben bei bedarf.

defmod DOIF.Haus.Maehen.Wetter DOIF {if ( [08:50|AT SA] ) \
{\
fhem("set Garten.Wetter update;;");;\
}\
}\
\
{if ( [08:55|AT SA] ) \
{\
my $DAY = ((localtime)[6]);;\
if ( [Garten.Wetter:condition] eq "Leichter Regen" or [Garten.Wetter:condition] eq "Nieselregen" or [Garten.Wetter:condition] eq "Nieselregen möglich" or [Garten.Wetter:condition] eq "Regenschauer" or [Garten.Wetter:condition] eq "Regen" or [Garten.Wetter:condition] eq "Starker Regen" or [Garten.Wetter:condition] eq "Regen möglich" or [Garten.Wetter:condition] eq "Leichter Regen möglich" or [Garten.Wetter:condition] eq "Nebel" or [Garten.Wetter:condition] eq "Spruehregen" )\
{\
fhem("set robbi changeCfgCalendar $DAY,10:00,0,0;; setreading $SELF regen yes;;");;\
}\
else\
{\
if ( $DAY =~ m/(1|3|5)/ )\
{ \
fhem("set robbi changeCfgCalendar $DAY,10:00,180,1;; setreading $SELF regen no;;");;\
}\
else\
{ \
fhem("set robbi changeCfgCalendar $DAY,10:00,180,0;; setreading $SELF regen no;;");;\
}\
}\
}\
}\
\
{if ( [+1800] and [$SELF:regen] eq "yes" and [10:00-19:00|AT SA] and [Haus.Sunrise] eq "on") \
{\
if ( [Garten.Wetter:condition] ne "Leichter Regen" and [Garten.Wetter:condition] ne "Nieselregen" and [Garten.Wetter:condition] ne "Nieselregen möglich" and [Garten.Wetter:condition] ne "Regenschauer" and [Garten.Wetter:condition] ne "Regen" and [Garten.Wetter:condition] ne "Starker Regen" and [Garten.Wetter:condition] ne "Regen möglich" and [Garten.Wetter:condition] ne "Leichter Regen möglich" and [Garten.Wetter:condition] ne "Nebel" and [Garten.Wetter:condition] ne "Spruehregen" )\
{\
my $Hour = ((localtime)[2]) + 1;;\
my $Min = ((localtime)[1]);;\
my $DAY = ((localtime)[6]);;\
fhem("set robbi changeCfgCalendar $DAY,$Hour:$Min,120,0;; setreading $SELF regen no;;");;\
}\
}\
}
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: deeb am 11 Juni 2020, 14:05:09
Hallo kjmEjfu,

ich fahre gern zweigleisig.
Meine in FHME integrierten Geräte (u.a. FritzDect200, Gardena IrrigationControl, Landroid, Medion-Alarmanalagen Melder) möchte ich auch weiterhin auch mal ohne FHEM (d.h. mit einem eigenen WEB-interface) bedienen können. Habe da schon mal schlechte Erfahrung im Urlaub gemacht. Nach einem Programmierfehler (Codeblock wurde nur bei Abwesenheit angesprungen) wurde ich in Minutentakt mit SMS bombadiert  Hatte nur noch die Möglichkeit den Raspi und damit auch FHEM aus der Ferne ganz abzuschalten.
Nun bin ich mir nicht ganz sicher ob der von dir vorgeschlagene Weg nicht auch die auf den ACS Server hinterlegten Mähzeiten löscht.

MfG

deeb
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: deeb am 11 Juni 2020, 14:15:05
Hallo Eisenhauer 1987,

Danke !!!!!! Hört sich gut an. Muss ich mir aber mal intensiver anschauen.
Ich habe so etwas ähnliches schon für die Steuerung meiner Poolpumpe realisiert (aber etwas aufwendiger und nicht so elegant).
Bei hohen Aussentemperaturen arbeitet die Umwälzfilterpumpe länger.

Woher bekommst du die Wetterdaten? Aus dem Internet. Sind die den verlässlich?
Gut, man könnte vorsichtshalber den Landroid bei angekündigten Regen den ganzen Tag in der Garage lassen.
Aber wenn der Regen nun früher, später oder gar nicht kommt, wird nicht gemäht oder der Mäher bearbeitet der Rasen bei Regen.

MfG
deeb
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: eisenhauer1987 am 11 Juni 2020, 14:52:50
Ja, das Wetter ist aus dem Internet und für dieses Vorhaben bei mir ausreichend verlässlich. Bei Regen oder möglichen Regen wird das Mähen deaktiviert, dann alle 30 Min das Wetter geprüft. Wenn das Wetter wieder gut ist, wird der Mäher mit einer Stunde Verzögerung zur aktuellen Uhrzeit aktiviert.

Das ist natürlich variabel auf den örtlichen Gegebenheiten anpassbar.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 11 Juni 2020, 16:21:56
Zitat von: deeb am 11 Juni 2020, 11:51:59
Ich benutze keinen externen MQTT Server sondern den FHEM MQTT2_SERVER.
Dafür bräuchte man dann nach meinen Verständnis nur ein MQTT2_DEVICE. Hast du das auch mal mit den MQTT2_SERVER probiert?
Du liegst völlig daneben!
Der MQTT Server in diesem Fall ist der Cloud Server bei Amazon - der von Landroid Worx sowieso für Deinen Rasenmäher genutzt wird.
Ich nehme den MQTT2_Client um diesen Server einzubinden. Mit nur einem MQTT2_Device kannst Du keinen fremden "MQTT IO" in FHEM anbinden.

Wenn Du allerdings eine Lösung hast wie wir den Rasenmäher "Cloudfree" an den MQTT2_Server anknüppern - wären wir die Größten :)

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: deeb am 11 Juni 2020, 22:11:12
Hallo Otto,

Danke für den Hinweis. Mache gerade meine ersten Schritte mit MQTT.
Brauch noch mal Unterstützung.
Wohin auf den RASPI müsste ich den Standardmäßig das Zertifikat (die Datei AWS.p12) kopieren?

Wünsche noch einen schönen abend nach Leipzig

deeb
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 11 Juni 2020, 22:15:18
Ist meine Beschreibung so ungenau?
scp "d:\Downloads\V0.0.24 - Net\AWS.p12" pi@raspib3:
Kopiert ins Homeverzeichnis vom User Pi  ;)
"openssl pkcs12 -in /home/pi/AWS.p12 ...
Liest aus dem Homeverzeichnis User Pi  ::)
Das mit den von mir angegeben Befehlen splittet das Zertifikat in das Homeverzeichnis von User fhem -> /opt/fhem/

Warum nimmst Du nicht einfach meine Anleitung? Was ist daran unverständlich?

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: eisenhauer1987 am 12 Juni 2020, 08:04:33
Morgen!

Ich habe das ganze auch mal über MQTT eingerichtet, funktioniert! Es paar Fragen hätte ich aber noch. Wenn man jetzt die Startzeit anpassen will, wie ist das machbar? Außerdem wäre es klasse wenn die Readings lesbar übersetzt werden. Man kann sich zwar was zusammenreimen, aber übersichtlich ist es noch nicht.

Grüße
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: marvin78 am 12 Juni 2020, 08:43:00
Zitat von: eisenhauer1987 am 12 Juni 2020, 08:04:33
Morgen!

Ich habe das ganze auch mal über MQTT eingerichtet, funktioniert! Es paar Fragen hätte ich aber noch. Wenn man jetzt die Startzeit anpassen will, wie ist das machbar? Außerdem wäre es klasse wenn die Readings lesbar übersetzt werden. Man kann sich zwar was zusammenreimen, aber übersichtlich ist es noch nicht.

Grüße

Es steht dir doch frei, das zu tun. Das ist der Vorteil von generischen Devices: Du kannst es nennen, wie du möchtest.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 12 Juni 2020, 09:13:07
Welche Readings fehlen Dir lesbar? Ich gebe zu, das mit den Readings war von mir ein "erster" Schuß. Klar kann man die alle übersetzen, das Muster vom jetzigen Template zeigt ja auch genau wie. Da können wir das Template auch jederzeit perfektionieren.
In der setList sieht man auch wie man das mit den Zeiten machen müsste. Um da weiter zu entwickeln ist erst mal ein set x-raw-payload sinnvoll, da lässt sich gut probieren. Also setList ergänzen mit (BASE_TOPIC/DEV_ID austauschen mit den echten Werten BoardID und MAC)
x_raw_payload:textField { my $payload = $EVENT;$payload =~ s/$EVTPART0 //g; qq(BASE_TOPIC/DEV_ID/commandIn $payload)}
Der komplette mqtt/json String steht ja weiter oben, davon muss sicherlich dieser Teil übertragen werden:
Edit: gerade getestet funktioniert genau so: Startzeit,Dauer,Kantenschnitt
    {"sc":{"d":[
      ["00:00",0,0],
      ["09:00",120,1],
      ["00:00",0,0],
      ["09:00",60,1],
      ["09:00",60,1],
      ["00:00",0,0],
      ["00:00",0,0]]}}

Dann braucht man noch eine schöne Eingabemöglichkeit :)

Ich kann da jetzt erstmal 14 Tage nicht dran arbeiten, aber Hilfe ist willkommen :)

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: eisenhauer1987 am 12 Juni 2020, 12:10:24
Das mit dem fehlenden Reading ist quatsch, wenn man mal genau guckt sind ja alle im Klartext da^^.

Nun wollte ich noch das verändern des Mähkalenders ermöglichen. Dazu folgende setlist:
setmowtimes:textField { my $payload = $EVENT;$payload =~ s/$EVTPART0 //g; qq(PRM100/98D86318D372/commandIn {"sc":{"d":[$payload]}})}

Ein manuelles:

set Garten.LandroidM setmowtimes ["00:00",0,0],["10:00",180,0],["10:00",180,1],["10:00",180,0],["10:00",180,1],["10:00",180,0],["10:00",120,1]

funktioniert damit. Allerdings funktioniert es nicht in einem DOIF (Perl). Ich denke es hat mit den [] zu tun. Ideen?


{if ( [09:30|AT SA] or ["test:on"])
  {
     fhem("set Garten.LandroidM setmowtimes ["00:00",0,0],["10:00",180,0],["10:00",180,1],["10:00",180,0],["10:00",180,1],["10:00",180,0],["10:00",120,1]");
  }
}


Fehler werden keine geworfen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 12 Juni 2020, 17:00:58
Das wird wohl so sein :(
Ideen:
1. Im DOIF Thread mal die Frage aufwerfen: Was machen wenn [ einfach Text sein soll?
2. Escapen? \[ \]
3. Analog zu $payload eine Variable füllen und diese im set Befehl übergeben? Dann läuft es ev. nicht durch den Interpreter?

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 28 Juni 2020, 21:15:25
Hinweis:
Wie im anderen Thread  (https://forum.fhem.de/index.php/topic,55053.msg1068520.html#msg1068520)vermerkt gibt es eine neue Funktion (One Time Scheduler) und damit eine Änderung im json String ab Firmware 3.13 die momentan für die 2019 Modelle verteilt wird.
Ich werde mir das die nächsten Tage anschauen.
Edit:
Ich habe mal ein Update gemacht und kann das hier  (https://forum.fhem.de/index.php/topic,55053.msg1068451.html#msg1068451)beschriebene Verhalten mit der MQTT2 Variante nicht feststellen. Die Zeitverzögerung lässt sich ganz normal einstellen. Aber vielleicht übersehe ich was  ???
Edit 3: Ich habe das Problem gefunden.
Mit der iobroker.worx Lösung wird der json jedesmal komplett gesendet. Beispiel:
DEBUG: Worxcloud MQTT sendMessage to 2019xxxxxxxxxxxxxxxx Message: {"sc":{"m":1,"distm":0,"ots":{"bc":0,"wtm":100},"p":-100,"d":[["00:00",0,0],["00:00",0,1],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,1],["00:00",0,0]]}}Steht also zufällig im ots bc und/oder wtm schon ein Wert, führt jede Konfigänderung für Zeitplan oder mowerTimeCorrection (-100% - 100%) zum sofortigen Start durch ots.

Edit2: Was in der App noch  nicht geht, geht per mqtt sofort (bei Firmware 3.13): AdHoc mähen für eine bestimmte Zeit mit optionalen Kantenschnitt:
Für die Testphase - mähen 10 min ohne Kantenschnitt (siehe (https://github.com/iobroker-community-adapters/ioBroker.worx/issues/58)):
set <mower> x_raw_payload {"sc":{"ots":{"bc":0,"wtm":10}}}
Offenbar nimmt er nur bestimmte Zeitbereiche 10 min - xxxx? 
Alles wtm < 10 setzt er offenbar auf 0 und tut bei bc:0 nichts. Bei bc:1 macht er Kantenschnitt aus der Ladestation heraus! ;)
Also nur Kantenschnitt:
set <mower> x_raw_payload {"sc":{"ots":{"bc":1,"wtm":0}}}

Edit4:
Hier  (https://www.roboter-forum.com/index.php?thread/44785-fw-3-11-beta-%C3%A4nderungen-in-der-struktur-der-mqtt-nachrichten/&postID=605282#post605282)habe ich noch den Hinweis für distm gefunden. Es handelt sich offenbar um ein temporäres Aussetzen des Mähplanes (disturb?) in Minuten.
set <mower> x_raw_payload {"sc":{"distm":1440}}sollte also den Mähplan für einen Tag außer Kraft setzen (Partymodus). Hab ich bisher nicht getestet.

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 01 Juli 2020, 21:38:15
Hallo,

ab morgen gibt es ein neues Template per Update.
Dort sind die zusätzlichen Funktionen für die neue Firmware 3.13 eingebaut.
- ad Hoc Kantenschnitt
- ad Hoc Rasenmähen für xx minuten
- Party modus für xx minuten

Nach dem Update die Templates neu initialisieren:
{ AttrTemplate_Initialize() }
Oder für sofort / ohne komplettes update:
{ Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: eldrik am 02 Juli 2020, 13:07:14
Hi,
gerade einmal mit der zweiten Befehlskette ausprobiert, kein neues Template vorhanden.

Greetz
Eldrik
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 02 Juli 2020, 14:21:48
Hallo Eldrik,

was zeigt Dir
{qx( ls -lha ./FHEM/lib/AttrTemplate/)}

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: eldrik am 02 Juli 2020, 18:13:43
Hi,

Den Zeitstempel der Datei zum Zeitpunkt des Download

fhem dialout 249K Jul  2 13:04 mqtt2.template

Greetz
Eldrik
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: TomLee am 02 Juli 2020, 18:52:34
Zitatgerade einmal mit der zweiten Befehlskette ausprobiert, kein neues Template vorhanden.

Wie genau meinst du das, erwartest du jetzt ein zweites Template oder wird erst gar keins im setter <device> attrTemplate angezeigt?

Hab keinen Mähroboter aber ein Template wird mir nach update in einem MQTT2_DEVICE angezeigt oder auch nach der "Befehlskette".

Wenn eines angezeigt wird, welche attrTemplateVersion bekommst du angezeigt wenn du dieses nur auswählst ?

ganz unten bei setreading DEVICE attrTemplateVersion ...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: eldrik am 02 Juli 2020, 19:43:30
Zitat von: TomLee am 02 Juli 2020, 18:52:34
Wie genau meinst du das, erwartest du jetzt ein zweites Template oder wird erst gar keins im setter <device> attrTemplate angezeigt?

Hab keinen Mähroboter aber ein Template wird mir nach update in einem MQTT2_DEVICE angezeigt oder auch nach der "Befehlskette".

Wenn eines angezeigt wird, welche attrTemplateVersion bekommst du angezeigt wenn du dieses nur auswählst ?

ganz unten bei setreading DEVICE attrTemplateVersion ...

nein ich erwarte selbstverständlich kein zweites Template  :D die Version ist einfach weiterhin die alte attrTemplateVersion
20200607


Das Logfile hatte auch nichts unauffälliges gemeldet, daher der Post.

2020.07.02 19:45:02.848 1: SVN download of FHEM/lib/AttrTemplate/mqtt2.template to FHEM/lib/AttrTemplate/mqtt2.template finished
2020.07.02 19:45:03.572 2: AttrTemplates: got 180 entries


Greetz
Eldrik
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: TomLee am 02 Juli 2020, 20:19:58
Bei mir steht 20200701 drin, wie im svn (https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template)

Schon heute mal ganz normal mit update und anschliessendem shutdown restart versucht ?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 02 Juli 2020, 21:26:04
Hast Du vorher mal das Template aus meinem Github geladen? Datum und Größe sehen gut aus, Version stimmt nicht.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: eldrik am 02 Juli 2020, 21:40:13
Zitat von: Otto123 am 02 Juli 2020, 21:26:04
Hast Du vorher mal das Template aus meinem Github geladen? Datum und Größe sehen gut aus, Version stimmt nicht.

sollte nicht durch deinen zweiten Befehl aus dem Fhem svn passieren, oder habe ich das falsch interpretiert?

Ich nutze das mqtt2 Device + template nicht für die Bedienung des Worx es läuft quasi derzeit nur als sidecar ohne Priorität mit, daher führe ich hierfür auch kein vollständiges Update mit Restart durch.

Da es bei anderen ja auch grundsätzlich zu funktionieren scheint, braucht für die Thematik auch keine weitere Energie aufgewendet werden.

Greetz
Eldrik
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 02 Juli 2020, 21:57:32
Zitat von: eldrik am 02 Juli 2020, 21:40:13
sollte nicht durch deinen zweiten Befehl aus dem Fhem svn passieren, oder habe ich das falsch interpretiert?
Ich bin nicht sicher was passiert, wenn zwei template Dateien mit gleichem/ähnlichem Inhalt im Verzeichnis
./FHEM/lib/AttrTemplate/
liegen und dann anschließend durch { AttrTemplate_Initialize() } verarbeitet und angeboten werden. Im Zweifelsfall hat das keiner vorgesehen und geht schief. ::)

Deswegen solltest Du aktuell Template Files, die von meinem Github geladen wurden, löschen. ;)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: eldrik am 02 Juli 2020, 22:27:16
das war es! Es lag noch ein Ottos Template im Ordner  8)

Greetz
Eldrik
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: DJFS am 07 November 2020, 16:56:47
Hallo,

bei mir geht es 5 Minuten und dann wechselt der Broker dauerhaft und sehr schnell zwischen open und disconnected.
kennt jemand dieses Phänomen?

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 07 November 2020, 17:25:52
ZitatWechselt der Status hektisch zwischen opened und disconnected stimmt etwas mit dem Zertifikat nicht.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: clumsy am 22 November 2020, 12:09:28
Hallo

Erstmal vielen Dank an @Otto123 die MQTT2 verbindung/Lösung klappt super mit meinem Landroid M500 (2020 Modell).

Nun hätte ich eine Frage/Vorschlag: anscheinend merkt die Schnittstelle nicht, wenn der Robi aus ist (Winterschlaf). D.h. der Client empfängt einfach keien Stati mehr. Die App meldet immerhin ein "Offline". Wäre es allenfalls möglich eine art "Timeout" einzubauen, nachdem er auf Offline geht wenn nichts mehr erhalten wird, resp. wenn der Status abgefragt wird? Evtl. ist das auch in einem der noch nicht entschlüsselten Readings?

Hintergrund ist, dass ich diesen Status gerne entsprechend im FHEM anzeigen lassen würde und natürlich dann auch verhindern möchte dass Befehler abgesetzt werden können.

Wie habt ihr das sonst gelöst?

Gruss aus der CH

STefan
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: kjmEjfu am 22 November 2020, 12:52:28
Du könntest dir da was mit DOIF basteln. Ausgangspunkt wäre dann sowas https://fhem.de/commandref_DE.html#DOIF_Zeitspanne_eines_Readings_seit_der_letzten_Aenderung
Oder halt ein watchdog https://fhem.de/commandref_DE.html#watchdog
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Beta-User am 22 November 2020, 13:03:24
Könnte man auch über einen periodicCmd am MQTT2_DEVICE selbst lösen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 22 November 2020, 13:06:13
Die Frage wäre wie die App das macht?
Ob man den Status MQTT2_CLIENT da noch mit rein interpretiert?
Ob es da noch was von mqtt gibt?  Edit: Beta-User hat eine Idee?

Mal nachdenken :)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: clumsy am 22 November 2020, 15:07:32
Hmm.. Keine Ahnung wie die App das genau macht. Ich denke sie versucht den Status zu aktualisieren und erhält keine Antowrt.

Die Idee ein Kommando "regelmässig" abzusetzen (z.b. eine Statusanfrage) und bei Timeout dann ein "Offline" Reading oder so zu setzen, würde für mich am meisten Sinn machen, resp. wäre wohl am einfachsten umzusetzen....

MQTT_Client bleibt ja connected, wenn ich das richtig verstehe, also müssts ein mqtt-komando geben mit welchem eben der aktuelle Status aktalisiert wird.

Danke schonmal für Deine Bemühungen, wenn ich was helfen/testen kann, lass mich wissen...

Gruess

STefan
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: kjmEjfu am 22 November 2020, 17:41:48
Zitat von: Beta-User am 22 November 2020, 13:03:24
Könnte man auch über einen periodicCmd am MQTT2_DEVICE selbst lösen.

Was ist denn das nettes? Irgendwie finde ich da in der commandref nix dazu  :-\
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 22 November 2020, 18:13:25
https://fhem.de/commandref_modular.html#MQTT2_DEVICE-attr-periodicCmd
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Beta-User am 22 November 2020, 18:14:46
Hier (https://fhem.de/commandref_modular.html#MQTT2_DEVICE) steht folgendes: (zu langsam...)
ZitatperiodicCmd <cmd1>:<period1> <cmd2>:<period2>...
periodically execute the get or set command. The command will not take any arguments, create a new command without argument, if necessary. period is measured in minutes, and it must be an integer.
Z.B. wird im OpenMQTTGateway_BT_scanner darüber regelmäßig ein Löschen unnötiger Readings veranlasst. Im Prinzip kann man beliebigen Perl-Code darüber auslösen, wenn man entsprechende Einträge in getList oder SetList hat...

(Falls ein ebus-User hier mitliest: m.E. sollte man die getList-Option bei manchen der Geräte ergänzen und die dann über diesen Mechanismus aufrufen. Das würde das "zentrale at" ersetzen...)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: clumsy am 22 November 2020, 19:27:08
Zitat von: Beta-User am 22 November 2020, 13:03:24
Könnte man auch über einen periodicCmd am MQTT2_DEVICE selbst lösen.
Mir ist noch nicht ganz klar, wie ich damit herausfinde ob der Robi online oder offline ist? Das Kommando owird ja einfach abgesetzt dann was auch immer die AWS damit macht...

Hast du mir ein Tipp, wie das funktionieren könnte'

lg

STefan
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Beta-User am 22 November 2020, 19:35:11
Wie wäre es mit einem setreading-Befehi? Abhängig vom Ergebnis einer ReadingsAge-Abfrage auf irgendwas, das bei "online" regelmäßig aktualisiert wird?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: clumsy am 22 November 2020, 19:52:03
Stimmt, über ReadingsAge könnte man generell herausfinden wie lange seit dem letzten update vorüber ist... Danke dafür..

Schön wäre sowas wie beim HTTPMod, dass wenn ein Reading ne gewisse Zeit nicht updated wurde, dass es invalidiert wird, oder eben ein generelles Timeout, welches ein Offline Reading setzt..
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Beta-User am 22 November 2020, 20:05:41
Na ja, wenn das Ding eine ordentliche LWT-Message versenden würde, wäre "der Fisch geputzt".

Und an sich finde ich den MQTT2-Baukasten ziemlich "rund" und vermisse derzeit keine Funktionalität. HTTPMOD ist "anders", weil da der Datenlieferant nichts von der Nutzungsweise der Daten ahnen kann, aber bei MQTT ist es mAn. Aufgabe des Client-Programmierers für "gute" Daten zu sorgen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: steffen83 am 05 Februar 2021, 13:26:02
Hallo Otto,

danke das läuft auf Anhieb und ist wesentlich leichter als die node geschichte :-)

Viele Grüße
Steffen
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Allgaeuer am 14 Februar 2021, 12:01:48
Hallo Otto,

ich habe jetzt auch Dein Modul bei mir eingebunden und läuft. Bin ebenfalls froh, dass ich "node" nicht mehr brauche.

Ein Problem hatte ich:
Hier wurde zuerst nicht automatisch ein neues Device erstellt. Das lag daran, dass ich mein allgemeines FHEM-Device "autocreate" auf "disable" gesetzt hatte.
ZitatHat man alles richtig gemacht, geht der state des Devices MQTT_Worx sofort auf opened.
Die erste Übertragung sollte automatisch ein neues MQTT_DEVICE erstellen.

Ist jetzt als Tip für die anderen gedacht. :-)

Mein Robbi geht jetzt wieder in den Winterschlaf. Im Frühjahr modifizieren ich dann mein eigenes FHEM-Modul mit Robi-Start gemäß "Rasenwachstums-Simulator", damit's mit Deinem Modul funktioniert.

Herzlichen Dank für Deine Lösung.

Gruß Allgäuer
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Skusi am 11 April 2021, 12:12:18
Ich hab meinen Landroid m500 nun auch aus dem Winterschlaf geholt und bin auf diesen sehr interessanten Thread gestoßen.

Ich hab alles nach Ottos Anleitung (danke dafür) aus dem ersten Post gemacht.
Lieder zeigt sich bei mir auch folgendes:

Zitat von: Otto123 am 07 November 2020, 17:25:52
Wechselt der Status hektisch zwischen opened und disconnected stimmt etwas mit dem Zertifikat nicht.

Ich hab die Zertifikate schon neu gemacht und der test mit {qx(ls -lha /opt/fhem/aws.*)} zeigt:

-rw-r--r-- 1 fhem dialout 1.4K Apr 11 11:18 /opt/fhem/aws.cer
-rw-r--r-- 1 fhem dialout 1.8K Apr 11 11:18 /opt/fhem/aws.key


Was kann ich noch machen damit ich einen Connect bekomme?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 11 April 2021, 16:19:01
Hi Skusi,

sieht mir danach aus:
"chmod 0600 aws.*"

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Skusi am 12 April 2021, 18:15:57
Hallo Otto,

ich hab die Rechte nochmal geprüft, und auch zur Sicherheit auch mit chmod 0600 aws.* neu gesetzt.
Leider keine Besserung. Immer noch kein Connect.

Die Dateirechte sehen so aus:


-rw-------  1 fhem dialout   1430 Apr 11 11:18  aws.cer
-rw-------  1 fhem dialout   1828 Apr 11 11:18  aws.key


Die Dateien liegen in /opt/fhem

Ich würde ja die Logeinträge beisteuern, aber ich bin mir5 nicht sicher welche daten ich besser nicht hier Posten sollte. ???
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 12 April 2021, 18:38:24
Du bist sicher, das es die richtigen Zertifikate sind? Aussehen tun sie von der Größe her ok.
Sind Teile der anderen io.broker Einbindung noch aktiv? Mehrere Anmeldungen mag der Cloudservice nicht.
Dein Konto ist aktiv?

Ich habe keine richtige Idee, bisher war immer das Problem beim Zertifikat.

Lies hier mal noch ein bisschen, falls Du den alten Service noch entfernen musst: https://heinz-otto.blogspot.com/search?q=worx

Gruß Otto 
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Skusi am 12 April 2021, 19:32:29
 Ich hab nochmal per Console nachgeschaut.
Unter htop konnte ich keinen Landdroid Prozess entdecken.
Scheinbar hat das mit dem Autostart nicht funktioniert und ich hab es über den Winter auch nicht vermisst.

Ich hatte am ende der letzten Saison auch Probleme mit dem Connect, habe mich dann aber nicht mehr weiter drum gekümmert. Irgendwo hab ich damals gelesen das es an dem Landdroid Server liegen soll und mal solle doch ein neues Konto anlegen. Dazu hatte ich dann keine Lust mehr.

Nun ist aber dieses Jahr alles in Ordnung mit dem Zugang. Jedenfalls funktioniert die App und auch die DeskApp aud dem Win Rechner.

Nun habe ich auf der Console mal den Dienst von Hand gestartet und folgende Ausgabe bekommen:

root@DietPi:/opt/fhem# node /opt/landroid/fhem-landroid-s/LandroidSrv.js mower1
DEBUG: Connect to worx....
DEBUG: Connect to worx ok : {"token_type":"Bearer","expires_in":31536000,"access_token":XXXXXXXXXXXXXXXXXXXXXXXXXX}

Mon, 12 Apr 2021 17:13:35 GMT --> sucessfully connected!
Mon, 12 Apr 2021 17:13:35 GMT --> Landroid WebServer: server initialized
Mon, 12 Apr 2021 17:13:36 GMT --> Landroid WebServer: Request recieved
Mon, 12 Apr 2021 17:13:36 GMT --> Landroid WebServer: Response send
ERROR: StatusCodeError: 426 - "This service requires use of the HTTPS protocol."


Mon, 12 Apr 2021 17:15:41 GMT --> Landroid WebServer: Request recieved
Mon, 12 Apr 2021 17:15:41 GMT --> Landroid WebServer: Response send
Mon, 12 Apr 2021 17:15:41 GMT --> Landroid WebServer: Request recieved
Mon, 12 Apr 2021 17:15:41 GMT --> Landroid WebServer: Invalid path received: /favicon.ico
Mon, 12 Apr 2021 17:15:58 GMT --> Landroid WebServer: Request recieved
Mon, 12 Apr 2021 17:15:58 GMT --> Landroid WebServer: Response send
Mon, 12 Apr 2021 17:15:59 GMT --> Landroid WebServer: Request recieved
Mon, 12 Apr 2021 17:15:59 GMT --> Landroid WebServer: Invalid path received: /favicon.ico
Mon, 12 Apr 2021 17:16:36 GMT --> Landroid WebServer: Request recieved
Mon, 12 Apr 2021 17:16:36 GMT --> Landroid WebServer: Response send


Funktioniert also auch nicht wirklich.

Irgendwie scheint es daran zu liegen das ich keine gesicherte Verbindung versuche aufzubauen, oder was meint:

"This service requires use of the HTTPS protocol."

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 12 April 2021, 19:43:08
ich sehe gerade: DietPi - das war doch ziemlich beschränkt? Nicht das da irgendwas fehlt? Die Verbindung zum Cloudservice erfordert SSL. Du kannst ja beim MQTT2-Client mal das Logging auf verbose 5 stellen und eine Weile loggen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Skusi am 12 April 2021, 20:08:12
Der MQTT2-Client ist ja noch gar nicht angelegt. Da kein Connect, kein autocreate.

Ich habe mit dem DietPi bisher nur gute Erfahrungen gemacht. Ich kann mir nicht vorstellen das das System kein SSL unterstützt. Und warum funktionierte das dann den ganzen letzten Sommer einwandfrei ?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 12 April 2021, 20:34:25
define MQTT_Worx MQTT2_CLIENT <broker-server-adresse>:8883
kein MQTT2_CLIENT dann gar nix...

Du redest vom MQTT2_DEVICE ich nicht! ;)

Ich habe nicht gesagt, dass DietPi kein SSL unterstützt. Meine Ausgangsbasis ist immer ein RaspiOS Lite, deshalb kann ich nicht sagen, ob irgendwelche Installationsvoraussetzungen fehlen. Ich habe es nicht getestet.
Meine Erfahrungen mit DietPi waren nur mal, dass das System im Auslieferungszustand quasi einem Stand eines "busy Box Systems" entspricht und man jedes Bit dazu installieren muss.

Wie gesagt verbose 5 im MQTT2_CLIENT...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Skusi am 12 April 2021, 20:55:06
Oh mann  ::), Missverständnis !!! Hab verstanden....

Hier der immer wiederkehrende Logeintrag bei verbose 5 und set connect:

HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/
2021.04.12 20:49:05 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.215.230.49
2021.04.12 20:49:07 5: MQTT_Worx: sending CONNECT (16)9(0)(4)MQTT(4)(2)(2)X(0)-android-2d7f1480-6879-4e46-bf0e-d52cf16f60b8(10)
2021.04.12 20:49:07 5: SW: 103900044d51547639853258002d616e64726f69642d32643766313438302d363837392d3466543998626630652d6435326366313666363062380a
2021.04.12 20:49:07 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.04.12 20:49:07 5: MQTT_Worx: received CONNACK (0)(0)
2021.04.12 20:49:07 5: MQTT_Worx: sending SUBSCRIBE (130)(31)(0)U(0)(26)<BoardID>/<MAC>/commandOut(0)
2021.04.12 20:49:07 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 12 April 2021, 21:26:54
Nur zur Sicherheit: Das hast Du jetzt für den Post gemacht? <BoardID>/<MAC>/ in Wahrheit stehen in Echt die richtigen Werte drin?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Skusi am 12 April 2021, 21:36:27
Ich werd irre !!!  :-[

Wo hab ich denn nun überlesen das man die Platzhalter in den Attributen durch die BoardId und dei Mac ersetzen muß ???

Hab gerade die Werte eingetragen, und was soll ich sagen.....

CONECT !

Entschuldige das ich Deine Zeit in anspruch genommen habe, und vielen Dank für die Hilfe.
Nun ist erstmal schluß für heute, morgen werde ich mich mal näher damit beschäftigen.
Jedenfalls hab ich nun eine Device mit vielen readings da stehen.

Gute Nacht ... (erzähls nicht weiter  ::) )
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 17 April 2021, 23:04:08
Hallo Otto,

erst nochmal vielen Dank für diese und Deine anderen tollen Anleitungen!

Bisher habe ich auch das Modul von Axel benutzt. Da es jedoch nicht alle Funktionen der neuen FW 3.x unterstützt und ich jetzt doch mal von 2.9 geupdatet habe, wollte ich mal Deine Variante testen. Insbesondere das direkte Starten von EdgeCut ohne Workaround (Start-Pause-Stop) wäre toll :) Das sollte ja mit der neuen Firmware gehen?!

Gestern habe ich alles nach Anleitung ausgeführt und sofort ein "opened" bekommen. Es wurde auch automatisch ein neues MQTT-Device erstellt und ein paar Readings empfangen. Doch nach einer Minute wechselte der Status dann zwischen opened und disconnected. Seitdem empfange ich auch mit node-Variante nichts mehr :( Die Android App funktioniert aber noch.

Also habe ich gerade nochmal die FHEM-Devices gelöscht und hab nochmal von vorne angefangen, doch jetzt bleibt es dauerhaft bei disconnected. Diesmal wurde auch kein MQTT-Device erstellt.

pi@raspberrypi:~ $ ls -lha /opt/fhem/aws.*
-rw------- 1 fhem dialout 1.4K Apr 16 23:49 /opt/fhem/aws.cer
-rw------- 1 fhem dialout 1.8K Apr 16 23:49 /opt/fhem/aws.key


Woran kann das liegen? Hat der Server mich vielleicht gesperrt?

Wäre nicht das erste Mal, dass der Landroid plötzlich nicht mehr über node kommunizieren möchte. Meist ging es irgendwann von selbst wieder. Diesmal auch ...?

Danke im Voraus!
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 17 April 2021, 23:41:42
Hi,

wenn Du den node Server weiter laufen hattest und es so so ablief wie Du beschreibst - hat er Dich sicher gesperrt. Wie das genau abläuft ist mir nicht klar, aber ich hatte das bei den ersten Versuchen mit der node Variante auch. In der Regel geht das am nächsten Tag wieder. Die App zeigt auch manchmal nur Show kannst Du damit steuern? Gleiches Netz oder Mobil?

Warum hast Du das angelegte Device gelöscht? Das wesentlich ist nicht dieses Device sondern der manuell angelegte MQTT2_CLIENT, den kann man auf disconnect setzen.

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: tschimi am 18 April 2021, 08:49:53
Hi,
ich hab mal ne Frage bzgl. des HttpUtils Links. Bei mir im Log sagt er, er würde immer nur mit HTTP://... versuchen eine Verbindung aufzubauen und das geht dann natürlich schief. Wo kann ich den einstellen, das er statt HTTP nun HTTPS verbindet.... Außerdem steht im LOG immer "Unhandled packet Connect" :-(
Hier mal mein LOG

2021.04.18 08:43:41 1: M2: Unhandled packet CONNECT, disconneting MQTT_Worx
2021.04.18 08:43:41 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2021.04.18 08:43:41 1: 000000000-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.04.18 08:43:41 5: HttpUtils url=http://000000-ats.iot.eu-west-1.amazonaws.com:8883/
2021.04.18 08:43:41 4: IP: 00000-ats.iot.eu-west-1.amazonaws.com -> 34.251.250.174
2021.04.18 08:43:41 5: MQTT_Worx: sending CONNECT (16)9(0)(4)MQTT(4)(2)(2)X(0)-android-f4981413-e5bc-43e1-00-7876dca32f36(10)
2021.04.18 08:43:41 5: SW: 103900044d51545404020258002d616e64726f69642d66343938313431332d653562632d343365312d383336622d3738373664636133326633360a
2021.04.18 08:43:41 1: 00000000-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)


Danke schon mal im Voraus :-)

Lg, tschimi
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 18 April 2021, 09:19:53
Moin,

das hast Du gesetzt?
attr MQTT_Worx SSL 1
attr MQTT_Worx sslargs SSL_version:TLSv12 SSL_cert_file:aws.cer SSL_key_file:aws.key SSL_use_cert:1

So sieht es dann aus:
2021.04.18 09:27:49 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/
2021.04.18 09:27:49 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.17.138.68
2021.04.18 09:27:50 5: MQTT_Worx: sending CONNECT (16)9(0)(4)MQTT(4)(2)(2)X(0)-android-xxxxxxxxxxxxxxxxxxxxxx(10)
2021.04.18 09:27:50 5: SW: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx366330393032623833620a
2021.04.18 09:27:50 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.04.18 09:27:50 5: MQTT_Worx: received CONNACK (0)(0)
2021.04.18 09:27:50 5: MQTT_Worx: sending SUBSCRIBE (130)#(0)(146)(0)(30)PRM100/xxxxxxxxxxxxx/commandOut(0)
2021.04.18 09:27:50 5: MQTT_Worx: received SUBACK (0)(146)(0)

Aber dazu, das es funktioniert muss das System es auch können. Ich habe nichts besonderes dafür konfigurieren müssen - aber wenn im System was verbogen ist?

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 18 April 2021, 11:37:45
Moin Otto,

danke für die schnelle Antwort. Jetzt läuft plötzlich alles  ;D

Ich hatte den ersten Versuch vorgestern um 23:58 gestartet, ab 00:00 kamen dann keine Meldungen mehr. Seit heute Nacht 00:00 geht wieder alles, also war ich scheinbar für 24h gesperrt ... Komisch, dass die Android App aber noch Zugriff hatte.

Zitat von: Otto123 am 17 April 2021, 23:41:42
Die App zeigt auch manchmal nur Show kannst Du damit steuern? Gleiches Netz oder Mobil?
Gleiches WLAN. Steuern habe ich nicht getestet, aber den Mäher mal manuell gestartet und das wurde in der App entsprechend angezeigt.

Zitat von: Otto123 am 17 April 2021, 23:41:42
Warum hast Du das angelegte Device gelöscht? Das wesentlich ist nicht dieses Device sondern der manuell angelegte MQTT2_CLIENT, den kann man auf disconnect setzen.
Ich meinte natürlich den Client, sorry.

So, ich gehe jetzt mal EdgeCut testen  8)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: tschimi am 18 April 2021, 12:48:31
DANKE!!!

Das mit dem SSL 1 hatte ich nirgendwo gesehen. Dann standen bei mir noch die Zugriffsrechte auf ROOT und nicht auf FHEM. Ein chown -R fhem:root /opt/fhem hat dann schlussendlich den Erfolg gebracht :-)

Supi... Schönes WoEnde, Tschimi
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 18 April 2021, 13:07:50
Aber hier im ersten Beitrag steht das doch alles?
https://forum.fhem.de/index.php/topic,111959.0.html

Nachdem das ja immer mehr Freunde findet, muss ich das mal noch ins Wiki packen, da ist das besser aufgehoben als hier im Thread?

Schön das Du Erfolg hattest ;)

@efyzz Mir ist wirklich unklar nach was die Sperrung geht? Vielleicht die App Id die man sich vergibt? Aber die dürfte beim node Server ja auch anders sein?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 18 April 2021, 22:00:38
Tja, ich dachte eher an zu viele parallele Anfragen, aber warum geht es dann einen Tag später?  ??? Irgendwo im Worx Forum hat auch mal jemand behauptet, dass man selbst die App nur auf einem Handy (nicht auf mehreren) benutzen kann. Hab ich noch nicht probiert, aber App + FHEM geht jedenfalls gleichzeitig ;)

Ich bin jetzt komplett auf Deine Lösung umgestiegen, die node-Variante läuft aber vorerst noch mit. BoarderCut funktioniert übrigens auch hervorragend  ;D

Wenn ich einen Wunsch äußern dürfte: Nach Möglichkeit alle Readings genau so benennen, wie sie in Axels Modul heißen. Das würde den Umstieg doch stark vereinfachen. Wäre auch toll, wenn alle Readings (dat, cfg ...) Klarnamen bekommen würden.

Ich könnte womöglich das Template umbauen, wenn Dir die Zeit dafür fehlt. Habe zwar noch nie ein Template erstellt, aber man wächst ja mit seinen Aufgaben ;)

Ansonsten kann ich Deine Variante nur jedem empfehlen. Viel leichter einzurichten und wenn Worx wieder mal mit neuer Firmware und Funktionen kommt, hat man sofort Zugriff darauf, ohne irgendwelche Module updaten zu müssen.  :)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: huhu am 18 April 2021, 23:49:27
Hallo Otto,
seit 2019 habe ich den Landroid in fhem wie in deinem Artikel damals beschrieben eingebunden. (http://heinz-otto.blogspot.com/2019/05/)
Jetzt habe ich fhem mal planmäßig wegen Arbeiten am Stromverteiler heruntergefahren und seither bekomme ich nur noch ein initialized hin.

Im Log zuletzt noch:
2021-04-17_15:11:25 LandroidSB500 batteryLevel: 100
2021-04-17_15:11:25 LandroidSB500 wifiQuality: -49
2021-04-17_15:23:26 LandroidSB500 batteryVoltage: 19.53
2021-04-17_15:23:26 LandroidSB500 batteryTemperature: 16.4
2021-04-17_15:30:05 LandroidSB500 lastStatusRequestState: statusRequest_error
2021-04-17_15:30:05 LandroidSB500 lastStatusRequestError: 127.0.0.1: Connection refused (111)
2021-04-17_17:43:43 LandroidSB500 lastStatusRequestError: empty response


Seit dem hochfahren funktioniert es leider nicht mehr. Handelt es sich bei der Lösung im Thread um eine völlig andere? Blicke noch nicht ganz durch.
pm2 list und log sieht eigentlich okay aus....

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 19 April 2021, 07:33:16
Zitat von: efyzz am 18 April 2021, 22:00:38
Wenn ich einen Wunsch äußern dürfte: Nach Möglichkeit alle Readings genau so benennen, wie sie in Axels Modul heißen. Das würde den Umstieg doch stark vereinfachen. Wäre auch toll, wenn alle Readings (dat, cfg ...) Klarnamen bekommen würden.
Nach Anwendung von dem Template auf das Device sollten zusätzliche Readings auftauchen, die genau diese Anforderungen erfüllen.

@Otto: auch von mir vielen Dank, ich habe ebenfalls am Wochenende den Umstieg vollzogen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 19 April 2021, 09:02:27
Zitat von: huhu am 18 April 2021, 23:49:27
Hallo Otto,
seit 2019 habe ich den Landroid in fhem wie in deinem Artikel damals beschrieben eingebunden. (http://heinz-otto.blogspot.com/2019/05/)
...
Handelt es sich bei der Lösung im Thread um eine völlig andere?
Moin,
ja, das sind zwei völlig unterschiedliche Lösungsansätze. Du arbeitest mit dem Modul von Axel Mohnen, hier handelt es sich um eine direkte "generische" Anbindung mit dem MQTT2_CLIENT ohne ein spezielles FHEM Modul. Die Beschreibung findest Du im ersten Beitrag.
Support zu dem Modul findest Du hier
https://forum.fhem.de/index.php/topic,55053.840.html

@Ralli Danke das Du mein Gefühl bestätigst, ich war auch der Meinung die meisten Readings, die man braucht, sind im Template. Aber scheinbar wird die erste Seite hier im Thread gerne nur Bruchstückhaft umgesetzt :)

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 19 April 2021, 09:55:20
Moin,

also wenn ich das Template nicht angewendet hätte, hätte ich ja nicht nach Anpassung gefragt ;) Kann natürlich sein, dass irgendwas schief gelaufen ist ...

Folgende Unterschiede sind mir aufgefallen:

Axels Modul - Ottos Variante
batteryLevel - batteryPercent
mowerStatus - mowerStatusIndex
mowerError - mowerErrorIndex
mowerState - mowerActive (Edit: mowerActive ist scheinbar etwas anderes. Wo steht jetzt der mowerState aus Axels Modul?)
batteryCharging lieferte false/true - jetzt 0/1

Weiterhin haben die ganzen Readings für Zeitplan etc. nur kryptische Namen (cfg_xxx).

Wenn ich mir das Template anschaue, steht das aber auch genau so da drin. Oder habe ich womöglich irgendwie ein altes Template erwischt? FHEM update hatte ich vorher ausgeführt.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Skusi am 20 April 2021, 19:00:57
Ich finde die Lösung über MQTT auch bedeutend angenehmer und schlanker als die vorige Variante.
Das hat zwar auch alles das letzte Jahr gut funktioniert. Aber diese ganze node Geschichte ist für mich ein Buch mit sieben Siegel.

Nach Ottos Anleitung war das zwar alles machbar, aber verstanden das ich da mit meinem Raspberry System mache, habe ich damals nicht.
Copy, Paste in die Console kann halt jeder.

Ich habe nun wie gesagt die MQTT Lösung zum laufen gebracht. Und weil das mit dem Auto Start der node Steuerung nicht funktioniert, läuft der Prozess auch nicht parallel.
Jedenfalls kann ich unter htop nichts verdächtiges finden.

Ich möchte nun aber über kurz oder lang aber die teile der Node Installation sauber aus  dem System löschen. Ich hab aber keine Ahnung wie ich das gefahrlos anstellen soll ohne was wichtiges zu löschen.

In Fhem das Landroid Modul löschen ist ja nur ein kleiner Teil.
Kann mir jemand die Befehle für die Console bereitstellen mit denen  ich "aufräumen" kann.

@Otto

ich vermisse noch die Möglicheit den Mähplan zu verändern, wie das mit changeCFgCalendar möglich war.
Und areasStartSequence kann ich auch nicht mehr ändern.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 20 April 2021, 20:15:56
Zitat von: Skusi am 20 April 2021, 19:00:57
Ich möchte nun aber über kurz oder lang aber die teile der Node Installation sauber aus  dem System löschen. Ich hab aber keine Ahnung wie ich das gefahrlos anstellen soll ohne was wichtiges zu löschen.
Da hatte ich doch schon was vorbereitet - Am Ende ;)
https://heinz-otto.blogspot.com/2019/05/worx-landroid-m500.html

Mähplan ändern hatte ich mich nicht wirklich gekümmert. Zumal das im vorigen Jahr ein Problem war, da dort die Datenstruktur geändert wurde - wenn ich mich richtig erinnere.
areasStartSequence sagt mir jetzt nichts.

Aber insgesamt hab ich ja nicht gezaubert. Die MQTT Steuerung ist ja quasi nativ. Es sollte alles machbar sein - "man" muss es "bloß" im MQTT2_DEVICE konfigurieren ;)

Ich schau mir das aber mal (mit dem Fortschritt von einem Jahr :) ) in Ruhe an.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 21 April 2021, 11:06:01
Da ich auch Problem mit dem Modul und Node hatte. Komischerweise bis vor ca. 2 Wochen eigentlich nie, aber seit dem...

Egal. Bin nun auch am Wechseln auf MQTT2. Erstmal vielen Dank für die Möglichkeit dazu und die Erklärungen von Otto!

Beim Device habe ich bisher 2 Sachen geändert:
Readingnamen:
SerialNumber   zu   serialNumber
batteryPercent   zu   batteryLevel
Das eher aus Kosmetischen Gründen, da es beim Modul auch so hieß.

Ausserdem habe ich aus dat_st_b nun totalBladeTime gemacht. Das wäre auch der Wert, der im Modul dahinter liegt.

Es fehlt allerdings der Wert für "bladeTimeCounter". Diesen hatte ich über die App vor ein paar Wochen zurückgesetzt. Im Modul wurde auch entsprechend der Wert auf 0 gesetzt und stand zuletzt genau wie in der App auf 2 Stunden. Der Wert müsste eigentlich in den MQTT2 Readings auftauchen mit einem Minutenwert (in meinem aktuellen Fall so rund um die 120 +/-). Allerdings ist er scheinbar nicht dabei.
Wäre halt etwas komisch, warum ein Wert über das Node-Modul kommt und hier über MQTT2 nicht.

Ist der Wert bei euch zu sehen? Schaut mal in der App am Handy, was bei Klingen-Arbeitszeit steht, und ob dieser Wert (*60, also in Minuten) bei euch als Reading auftaucht.


Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: huhu am 21 April 2021, 11:41:28
Hallo Otto,

ich habe den pm2 Kram nun auch auf MQTT2_Client wie hier von Dir beschrieben umgesetzt.
Der Mäher steht auf opened, aber irgendwie kommen keine Readings? Habe ich noch etwas vergessen?

Das Template habe ich ebenfalls zugewiesen.

Viele Grüße
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 21 April 2021, 11:45:59
Wirfst du hier gerade etwas durcheinander?

Den "pm2 Kram" braucht man nur, wenn man den Landroid mit der Methode von Alex Mohnen (nodejs) einbindet. Wenn du ihn mit der Methode von Otto (MQTT) einbindest, darfst du den "pm2 Kram" nicht installieren.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: huhu am 21 April 2021, 11:47:24
Sorry, ich war noch nicht ganz fertig  ;D
pm2 habe ich komplett deinstalliert und den Mäher wie hier beschrieben als MQTT2 Client eingebunden. Soweit so gut, connect steht, aber keine Readings?

Ich meine ich habe das autocreate für devices global abgestellt, im MQTT2 Client ist es eingeschaltet mit Simple, könnte das ggfs die Ursache sein?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 21 April 2021, 11:48:55
Die kommen erst dann, wenn dein Mäher auch das erste mal nach dem Einrichten des FHEM-Devices Daten an die Cloud verschickt.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: huhu am 21 April 2021, 11:50:57
Sollte er nach 30min spätestens getan haben. Im Desktop Tool sehe ich auch neue Einträge im Log
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 21 April 2021, 11:55:13
Dann können wir nur in die Glaskugel schauen oder Rätsel raten. Es sei denn, du machst mal ein List von deinem MQTT-Device und dem Client-Device und postest das hier. Wenn du das tust, kannst du die Client-ID und MAC anonymisieren.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: huhu am 21 April 2021, 12:16:30
Ausgabe des Devices:

Internals:
   BUF       
   CFGFN     
   DEF        a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
   DeviceName a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
   FD         52
   FUUID      607ff0f3-f33f-4c31-a873-xxxxxxxxxxxxxxx
   NAME       LandroidSB500
   NR         1275
   PARTIAL   
   SSL        1
   STATE      opened
   TYPE       MQTT2_CLIENT
   WBCallback
   clientId   android-xxxxxxxxx-xxxx-xxxx-xxxx-1xxxxxxxxx

   lastMsgTime 1618998774.59132
   nextOpenDelay 5
   READINGS:
     2021-04-21 11:31:37   state           opened
   sslargs:
     SSL_cert_file aws.cer
     SSL_key_file aws.key
     SSL_use_cert 1
     SSL_version TLSv12
Attributes:
   SSL        1
   autocreate simple
   clientId   android-xxxxxxxxx-xxxx-xxxx-xxxx-1xxxxxxxxx

   keepaliveTimeout 600
   mqttVersion 3.1.1
   msgAfterConnect DB510/F0Fxxxxxxxxx/commandIn {}
   room       16_Worx
   sslargs    SSL_version:TLSv12 SSL_cert_file:aws.cer SSL_key_file:aws.key SSL_use_cert:1
   subscriptions DB510/F0Fxxxxxxxxxx/commandOut



Im Eventmonitor habe ich diesen Hinweis gefunden:
2021-04-21 12:12:54 Global global UNDEFINED MQTT2_android_xxxxxxxxx-xxxx-xxxx-xxxx-1xxxxxxxxx_ MQTT2_DEVICE android_xxxxxxxxx-xxxx-xxxx-xxxx-1xxxxxxxxx_ LandroidSB500
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 21 April 2021, 12:22:38
Das ist aber nur der Client.

Es fehlt noch das Device. Schau mal. Es sollte ein neuer "Raum" erstellt worden sein mit MQTT2_DEVICE.
Darin ist das neue Gerät.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 21 April 2021, 12:29:09
Und wenn da nichts ist und mit dem Hinweis auf den Eintrag im Log ist wohl das eigentliche MQTT2_DEVICE nicht erstellt worden - vielleicht weil autocreate nicht active ist?

Normalerweise sollte nämlich ein Eintrag nach folgendem Schema im Log zu finden sein:


2021.04.18 08:51:30.906 2: autocreate: define MQTT2_android_xxxxxxxxx-xxxx-xxxx-xxxx-1xxxxxxxxx_ MQTT2_DEVICE android_xxxxxxxxx-xxxx-xxxx-xxxx-1xxxxxxxxx_ MQTT_Landroid
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 21 April 2021, 12:32:09
Ich hätte da auch nochmal eine Frage.

Thema Mähzeiten setzen.

Also einen Befehl, um alle 7 Mähzeiten auf einmal zu setzen habe ich anhand von Seite 2 hier im Thread anlegen können. setmowtimes funktioniert damit.

Aber wie kann man bspw. einzeln nur für den Montag (also cfg_sc_d_2_1 / cfg_sc_d_2_2 / cfg_sc_d_2_3) die Werte setzen?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 21 April 2021, 12:38:26
Ist die Subscription richtig? Ich hatte damals aufgeschrieben MAC 12 stellig, ich zähle 13 Stellen, kann aber durchs anonymisieren passiert sein. Oben bei messageAfterConnect sind es 12 ;)
autocreate simple im MQTT2_CLIENT ist richtig! Nicht auf complex stellen!

Also das IO Device sieht gut aus. Mir scheint auch autocreate im System fehlt

@fred_feuerstein Du kannst sicher den kompletten Zeitstring bauen, ich habe es noch nicht gemacht. Wie schon gesagt, das Format wurde voriges Jahr geändert. Das Windows tool hat mir bei der Analyse etwas geholfen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 21 April 2021, 12:50:39
Beim Windows-Tool werden auch beim Ändern eines Tages dann alle Tage neu übergeben. Gut, das kann man natürlich auch machen. Ist dann im Doif ggfs. etwas aufwändiger, da die Werte aus den jeweils anderen Tagen ausgelesen und mit übergeben werden müssen.
Aber geht erstmal so.
Werde das so umsetzen. Ich trage die Mähzeiten ja nicht manuell ein, sondern die werden über den Google-Kalender befüttert.
Somit muss ich das ja nur einmal im Doif hinterlegen.

//edit: wobei ich schon auf Seite 2 gelesen habe, dass es ja Probleme mit Doif und den eckigen Klammern gibt... ok. mal sehen.
Also mit den Klammern ist scheinbar ein Problem beim DOIF, das Maskieren hat nicht wirklich funktioniert. Mal weiter probieren.



Aber hast Du eine Idee wegen dem BladeTimeCounter und TotalBladeTime? Im Moment sehe ich im MQTT2 nur die ToTalBladeTime (im standard templates ist das allerdings als BladeTimeCounter hinterlegt, was eigentlich falsch ist).
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: EinEinfach am 21 April 2021, 14:11:23
Warum bekomme ich im Log folgende Fehlemeldung:
2021.04.21 13:47:22 1: Error: >MQTT2_android_1c50dc08_7c30_4984_83da_94adcd1e6717_< has no TYPE, but following keys: ><
2021.04.21 13:48:40 3: MQTT2_DEVICE set DR.Rasenmaehroboter startMower
2021.04.21 13:48:52 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (LandroidAccount)
2021.04.21 13:48:52 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (LandroidAccount)


Losgefahren ist er, aber danach wird der Logfile mit disconnected und reappeared zugemüllt.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 21 April 2021, 14:27:07
Zitat von: fred_feuerstein am 21 April 2021, 12:50:39
Aber hast Du eine Idee wegen dem BladeTimeCounter und TotalBladeTime? Im Moment sehe ich im MQTT2 nur die ToTalBladeTime (im standard templates ist das allerdings als BladeTimeCounter hinterlegt, was eigentlich falsch ist).
Ich meine, ich habe mich da mit den Werten und den Namen am Node Tool orientiert. Und Klingen Arbeitszeit ist in Minuten und steht in {"st" => {"b" => 16952}} Wo er bei mir 282 angezeigt hat, was hinkommt. Ein reset auf 0 ist aber im MQTT bei mir bisher nicht angekommen.  ::)
Die Zeit muss man mMn als komplettes Array übertragen - könnte aber sein, dass d und dd getrennt geht. Muss ich mal probieren.
    "sc":{"m":1,"distm":0,"ots":{"bc":0,"wtm":0},"p":0,"d":[
      ["00:00",0,0],
      ["00:00",0,0],
      ["00:00",0,0],
      ["00:00",0,0],
      ["00:00",0,0],
      ["00:00",0,0],
      ["00:00",0,0]],"dd":[
      ["00:00",0,0],
      ["00:00",0,0],
      ["00:00",0,0],
      ["00:00",0,0],
      ["00:00",0,0],
      ["00:00",0,0],
      ["00:00",0,0]]},


@EinEinfach Ich denke da stimmt noch etwas mit dem MQTT2_CLIENT Device nicht.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 21 April 2021, 14:38:34
also im Node kam bei mir der zurückgesetzt Klingenwert über bladeTimeCounter rein. Die komplette Mähzeit stand unter totalbladetime.
Das hatte so funktioniert, also auch mit dem Reset.
in MQTT2 finde ich als Zahlenwert nur den totalbladetime.
Ist jetzt nicht megadramatisch. Notfalls könnte man sich ja auch über einen Counter eine bspw. mtl. Mähzeit anlegen. Ist nur komisch, dass der Wert im Node vorhanden ist und hier scheinbar nicht.

Zu den Mähzeiten. Ich habe es nun so gemacht, dass ich Userreading erstellt habe, welches den erforderlichen String bildet und der kann dann über ein DOIF übergeben werden.

Das ist das Userreading:
userZeiten {sprintf('{"sc":{"d":[["%s",%s,%s],["%s",%s,%s],["%s",%s,%s],["%s",%s,%s],["%s",%s,%s],["%s",%s,%s],["%s",%s,%s]]}}',
ReadingsVal("$name","cfg_sc_d_1_1","Unknown"), ReadingsVal("$name","cfg_sc_d_1_2","Unknown"), ReadingsVal("$name","cfg_sc_d_1_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_2_1","Unknown"), ReadingsVal("$name","cfg_sc_d_2_2","Unknown"), ReadingsVal("$name","cfg_sc_d_2_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_3_1","Unknown"), ReadingsVal("$name","cfg_sc_d_3_2","Unknown"), ReadingsVal("$name","cfg_sc_d_3_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_4_1","Unknown"), ReadingsVal("$name","cfg_sc_d_4_2","Unknown"), ReadingsVal("$name","cfg_sc_d_4_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_5_1","Unknown"), ReadingsVal("$name","cfg_sc_d_5_2","Unknown"), ReadingsVal("$name","cfg_sc_d_5_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_6_1","Unknown"), ReadingsVal("$name","cfg_sc_d_6_2","Unknown"), ReadingsVal("$name","cfg_sc_d_6_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_7_1","Unknown"), ReadingsVal("$name","cfg_sc_d_7_2","Unknown"), ReadingsVal("$name","cfg_sc_d_7_3","Unknown"),
)},


und im Doif kann man dann eine gewünschte Zeit etc. für einen bestimmten Tag so setzen (hier als Beispiel der Montag):
((setreading ShaunDasSchaf cfg_sc_d_2_1 13:00), (setreading ShaunDasSchaf cfg_sc_d_2_2 180), (setreading ShaunDasSchaf cfg_sc_d_2_3 1), (set ShaunDasSchaf x_raw_payload [ShaunDasSchaf:userZeiten]))

Das funktioniert so erstmal für mich.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 21 April 2021, 15:04:57
Das funktioniert bei mir so nicht? da muss noch m:1 und p:0 dazu? So macht es zumindest das Windows Tool. dort kann man sich gut anschauen was reinkommt und wie der String zum Publish ausschauen muss.
Ich habe das mal Beispielhaft in Perl mit Arrays und Hashes gebaut - als Test für die Kommandozeile:
{
my @tmo = ("00:00",0,0);;
my @tdi = ("09:00",10,0);;
my @tmi = ("00:00",0,0);;
my @tdo = ("00:00",0,0);;
my @tfr = ("00:00",0,0);;
my @tsa = ("00:00",0,0);;
my @tso = ("00:00",0,0);;
my %hash = ('m' => 1, 'p' => 0,'sc' => {'d' => [\@tmo,\@tdi,\@tmi,\@tdo,\@tfr,\@tsa,\@tso],'dd' => [\@tmo,\@tdi,\@tmi,\@tdo,\@tfr,\@tsa,\@tso]});;
return toJSON \%hash
}

Das kann man auch als sub in die myUtils legen und in x_raw_payload mit {(AufrufSub)} übergeben
Den ersten Plan 'd' kann man getrennt setzen (dd weglassen), den zweiten 'dd' offenbar nur mit dem Ersten? Zumindest war das jetzt bei mir so.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 21 April 2021, 15:19:22
Zitat von: fred_feuerstein am 21 April 2021, 12:32:09
Ich hätte da auch nochmal eine Frage.

Thema Mähzeiten setzen.

Also einen Befehl, um alle 7 Mähzeiten auf einmal zu setzen habe ich anhand von Seite 2 hier im Thread anlegen können. setmowtimes funktioniert damit.

Aber wie kann man bspw. einzeln nur für den Montag (also cfg_sc_d_2_1 / cfg_sc_d_2_2 / cfg_sc_d_2_3) die Werte setzen?
Das nochmal beantworten:
Der Plan für die erste bzw. die erste und die zweite Mähzeit muss jeweils komplett geschrieben werden.
Eine Mähzeit für einen Tag setzen/ändern -> bedeutet existierende auslesen, eine ändern, alle zurückschreiben.

Mit den Daten für die Zeiten müssen wir nochmal testen, es muss eigentlich alles reinkommen, es sei denn Axel hat da noch was errechnet? Es gibt ja nur den Weg über MQTT, auch das Tool von Axel Mohnen hat ja am Ende über MQTT mit der Cloud gesprochen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 21 April 2021, 15:30:16
Das ist ja genau das was ich auch nicht verstehe. Es gab bei Axel ja sogar den Reset Blade Time als Set Befehl. Dieser wirkte sich dann auf den BladeTimeCounter aus, der TotalBladeTime Wert war immer der Gesamtwert und der änderte sich nicht.

Und zu den Mähzeiten. Bei mir funktioniert es so wie von mir gepostet. Also mit der als userZeiten generierten Variable kann ich das entsprechend absetzen und die Werte werden aktualisiert.
Aber ich werde mein User-Reading mal noch um m:1 und p:0 erweitern. Dann müsste es auch bei Dir funktionieren.

wäre dann also so:
userZeiten {sprintf('{"sc":{"d":[["%s",%s,%s],["%s",%s,%s],["%s",%s,%s],["%s",%s,%s],["%s",%s,%s],["%s",%s,%s],["%s",%s,%s]],"m":1,"p":0}}',
ReadingsVal("$name","cfg_sc_d_1_1","Unknown"), ReadingsVal("$name","cfg_sc_d_1_2","Unknown"), ReadingsVal("$name","cfg_sc_d_1_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_2_1","Unknown"), ReadingsVal("$name","cfg_sc_d_2_2","Unknown"), ReadingsVal("$name","cfg_sc_d_2_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_3_1","Unknown"), ReadingsVal("$name","cfg_sc_d_3_2","Unknown"), ReadingsVal("$name","cfg_sc_d_3_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_4_1","Unknown"), ReadingsVal("$name","cfg_sc_d_4_2","Unknown"), ReadingsVal("$name","cfg_sc_d_4_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_5_1","Unknown"), ReadingsVal("$name","cfg_sc_d_5_2","Unknown"), ReadingsVal("$name","cfg_sc_d_5_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_6_1","Unknown"), ReadingsVal("$name","cfg_sc_d_6_2","Unknown"), ReadingsVal("$name","cfg_sc_d_6_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_7_1","Unknown"), ReadingsVal("$name","cfg_sc_d_7_2","Unknown"), ReadingsVal("$name","cfg_sc_d_7_3","Unknown"),
)},

(nur zur Sicherheit. Es lag bei Dir aber nicht an dem letzten Komma beim Userreading... das ist nur, weil bei mir danach noch weitere kommen. Aber das ist klar, denke ich)

Bei SetList habe ich noch einen hinzugefügt:
resetmowtimer:noArg DB510/F0FE6B832878/commandIn {"sc":{"d":[["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0]],"m":1,"p":0}}
Damit kann man auf einmal alle Timer-Einträge löschen.   

Habe jetzt alle meine DOIFs und sonstigen Steuerung vom Node-Modul auf MQTT2 umstellt. Auch die Anzeige und Steuerung über das TabletUI funktioniert nun damit :)

Einzig noch das mit dem BladeTimeCounter und der TotalBladeTime fehlt halt noch. Bzw. fehlen tut nur der BladeTimeCounter. Also der Resetbare Wert.


Edit: ich habe mir nun über das HourCounter Modul noch einen BladeTimeCounter gebaut. Da zählt jetzt ein Counter, sobald der Worx einen der entsprechenden Mähstati hat hoch. Den Wert kann ich nun als BladeTimeCounter nutzen und über das HourCounterModul auch zurücksetzen.


Titel: Antw:MQTT2 für Worx Landroid Mähroboter Verbindungsstatus wechselt
Beitrag von: deeb am 21 April 2021, 21:56:25
Hallo, ich hatte Probleme mit den Verbindungsstatus in Fhem, nachdem ich meinen Landroid aus den Winterschlaf geholt habe.
Der angezeigte Status wechselte ständig (connected / disconneced).
Nachdem ich dann eine leeres Passwort für den MQTT2_CLIENT MQTT_Worx  gesetzt habe, hatte ich den endlich den gewünschten Status opened.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 21 April 2021, 22:56:07
Zitat von: fred_feuerstein am 21 April 2021, 15:30:16
Das ist ja genau das was ich auch nicht verstehe. Es gab bei Axel ja sogar den Reset Blade Time als Set Befehl. Dieser wirkte sich dann auf den BladeTimeCounter aus, der TotalBladeTime Wert war immer der Gesamtwert und der änderte sich nicht.
Ich habe jetzt eine Weile auf die Tools und Werte gestarrt. Ich denke der Reset ist was lokales und nicht in der Cloud / im Mäher. Also in der App, in der Desktop App, und so war es auch in FHEM ...  ;)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: huhu am 21 April 2021, 23:04:59
Zitat von: Otto123 am 21 April 2021, 12:38:26
Ist die Subscription richtig? Ich hatte damals aufgeschrieben MAC 12 stellig, ich zähle 13 Stellen, kann aber durchs anonymisieren passiert sein. Oben bei messageAfterConnect sind es 12 ;)
autocreate simple im MQTT2_CLIENT ist richtig! Nicht auf complex stellen!

Also das IO Device sieht gut aus. Mir scheint auch autocreate im System fehlt

@fred_feuerstein Du kannst sicher den kompletten Zeitstring bauen, ich habe es noch nicht gemacht. Wie schon gesagt, das Format wurde voriges Jahr geändert. Das Windows tool hat mir bei der Analyse etwas geholfen.

Danke für eure Antworten. Es lag wie vermutet am Autocreate, das habe ich irgendwann mal ausgestellt.
Nach dem manuellen Anlegen wie Ralli geschrieben hat, kam auch der Rest  :)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 22 April 2021, 00:19:27
Für die battery Readings - da hatte ich mich glaube daran gehalten https://wiki.fhem.de/wiki/DevelopmentGuidelinesReadings
Das mit dem bladeCounter werde ich ändern, der Wert ist eigentlich die totale Mähzeit - totalBladeTime

Es gibt da:
Gesamte Arbeitszeit - wt - workingtime ?
Gesamte Mähzeit - b - blade...?
Gesamte Distanz - d - distance ?
Umfang der Rasenfläche - bl - borderlength ?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 22 April 2021, 08:57:55
Ok. Bei battery Readings, stimmt. offiziell sollte es tatsächlich batteryPercent heissen. Das habe ich bei mir auch wieder zurück geändert. Hatte batteryLevel erstmal nur geändert, da es im Node-Modul so hiess.

Aber wegen der generellen Bennennung, wäre es gut, dass Du den ersten Buchstaben immer klein setzt. Das ist bei allen der Fall, nur nicht bei "serialNumber". Da hast Du "SerialNumber" genutzt. Das könntest Du also noch ändern. Dann wäre es überall gleich mit kleinen Buchstaben zu Beginn des Readingnamens.

Die Änderung von BladeTimeCounter auf totalBladeTime habe ich bei mir schon drin.
Den BladeTimeCounter habe ich mir über das HourCounter Modul nachgebaut und als Reading im MQTT-Device.

ZitatUmfang der Rasenfläche - bl - borderlength ?
hm. das Reading habe ich gar nicht. Finde nirgends eins mit "bl".

Ansonsten habe ich folgende User-Readings noch zusätzlich angelegt:


cfg_sc_d_1_3Txt:cfg_sc_d_1_3.* {ReadingsVal($name,"cfg_sc_d_1_3","0") ? "ja" : "nein"},
cfg_sc_d_2_3Txt:cfg_sc_d_2_3.* {ReadingsVal($name,"cfg_sc_d_2_3","0") ? "ja" : "nein"},
cfg_sc_d_3_3Txt:cfg_sc_d_3_3.* {ReadingsVal($name,"cfg_sc_d_3_3","0") ? "ja" : "nein"},
cfg_sc_d_4_3Txt:cfg_sc_d_4_3.* {ReadingsVal($name,"cfg_sc_d_4_3","0") ? "ja" : "nein"},
cfg_sc_d_5_3Txt:cfg_sc_d_5_3.* {ReadingsVal($name,"cfg_sc_d_5_3","0") ? "ja" : "nein"},
cfg_sc_d_6_3Txt:cfg_sc_d_6_3.* {ReadingsVal($name,"cfg_sc_d_6_3","0") ? "ja" : "nein"},
cfg_sc_d_7_3Txt:cfg_sc_d_7_3.* {ReadingsVal($name,"cfg_sc_d_7_3","0") ? "ja" : "nein"},
batteryChargingTxt:batteryCharging.* {ReadingsVal($name,"batteryCharging","0") ? "ja" : "nein"},
userstate {sprintf("%s - %d%%", ReadingsVal("$name","mowerStatusTxt","Unknown"), ReadingsVal("$name","batteryLevel",0))},
userGesamtstrecke {sprintf('%.02F', ReadingsVal("$name","totalDistance","0")/1000)},
userGesamtmaehzeit {sprintf('%.02F', ReadingsVal("$name","totalBladeTime","0")/60)},
userMaehzeitAktMonat {sprintf('%.02F', ReadingsVal("ShaunDasSchaf_Count","userLaufzeitMonat","0"))},
userGesamtzeit {sprintf('%.02F', ReadingsVal("$name","totalTime","0")/60)},
userZeiten {sprintf('{"sc":{"d":[["%s",%s,%s],["%s",%s,%s],["%s",%s,%s],["%s",%s,%s],["%s",%s,%s],["%s",%s,%s],["%s",%s,%s]],"m":1,"p":0}}',
ReadingsVal("$name","cfg_sc_d_1_1","Unknown"), ReadingsVal("$name","cfg_sc_d_1_2","Unknown"), ReadingsVal("$name","cfg_sc_d_1_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_2_1","Unknown"), ReadingsVal("$name","cfg_sc_d_2_2","Unknown"), ReadingsVal("$name","cfg_sc_d_2_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_3_1","Unknown"), ReadingsVal("$name","cfg_sc_d_3_2","Unknown"), ReadingsVal("$name","cfg_sc_d_3_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_4_1","Unknown"), ReadingsVal("$name","cfg_sc_d_4_2","Unknown"), ReadingsVal("$name","cfg_sc_d_4_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_5_1","Unknown"), ReadingsVal("$name","cfg_sc_d_5_2","Unknown"), ReadingsVal("$name","cfg_sc_d_5_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_6_1","Unknown"), ReadingsVal("$name","cfg_sc_d_6_2","Unknown"), ReadingsVal("$name","cfg_sc_d_6_3","Unknown"),
ReadingsVal("$name","cfg_sc_d_7_1","Unknown"), ReadingsVal("$name","cfg_sc_d_7_2","Unknown"), ReadingsVal("$name","cfg_sc_d_7_3","Unknown"),
)},


Bei den total-Readings habe ich also eine Umformatierung auf Stunden, bzw. Kilometer. Ist in der Tablet-UI besser lesbar.
Ausserdem noch ein paar weitere Textwerte statt 0 und 1. Auch zur besseren Anzeige-Möglichkeit. Hatte hier erst mit ReadingsChange gearbeitet. Aber das war suboptimal.




Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 22 April 2021, 09:32:24
Moin,
Zitat von: fred_feuerstein am 22 April 2021, 08:57:55
das Reading habe ich gar nicht. Finde nirgends eins mit "bl".
echt? Sollte als dat_st_bl benannt sein. In der App findet man das bei der Rasenfläche als Perimeter, sonst wäre ich nicht drauf gekommen :)

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 22 April 2021, 10:22:18
nein. das Reading habe ich nicht. Könnte evtl. daran liegen, dass ich einen älteren Worx aus 2018 habe. In der App ist das Feld Perimeter auch nicht gefüllt.
Hatte damals auch die Rasenfläche manuell eingetragen. Da gab es den Rasenflächenrechner noch nicht. Keine Ahnung wie der funktioniert ;) Gerade das erste Mal auf den Rechner geklickt. Er möchte da die Kamera einschalten. Muss mal schauen, was die App dann machen möchte...
Also entweder liegt es daran oder tatsächlich am älteren Worx Robo.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: EinEinfach am 22 April 2021, 14:53:36
Zitat@EinEinfach Ich denke da stimmt noch etwas mit dem MQTT2_CLIENT Device nicht.

Ich habe heute alle Schritte von Anang an abgearbeitet und siehe da, es läuft.

Danke und Gruß
Alexander
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: kjmEjfu am 23 April 2021, 12:48:46
Vielleicht nochmal als Hinweis, weil ich gestern selber reingerannt bin.

Wenn die connect-disconnect-Schleife los geht, dann in der Handy-App probieren, ob die noch aktualisiert bzw. sich der Worx darüber noch steuern lässt. Das wird vermutlich nicht der Fall sein. Dann wurde das von Worx als Hacking-Versuch (o.ä.) eingestuft und der MQTT-Zugang gesperrt. Es reicht dann 24h zu warten, auch wenn es nervt.
Alternativ kann man den Worx vom aktuellen Account unpairen und an neue Mailadresse pairen, aber nicht jeder hat darauf Lust.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 23 April 2021, 16:32:06
bei meinem 2018er Worx funktioniert ja seit Firmware 3.52 der Befehl zum BorderCut nicht mehr. Er reagiert da einfach nicht drauf.
Hatte aber auch bevor es diese Funktion gab schon eine manuell Funktion dazu in Betrieb.
Ich setze einen Dummy (Shaun_HomeBorderCut) auf "on". Darauf triggert dann ein Doif:


([Shaun_HomeBorderCut:state] eq "on" and ([ShaunDasSchaf:mowerStatusTxt] eq "Home" or [ShaunDasSchaf:mowerStatusTxt] eq "Idle")
(set ShaunDasSchaf startMower)
(set ShaunDasSchaf pauseMower)
(set ShaunDasSchaf stopMower)
(set Shaun_HomeBorderCut off)


Wichtig sind dann die Attribute:
wait      0,4,2,30
do        always


damit klappt der Bordercut perfekt. Ergentlich macht die Funktion bei Worx ja auch nix anderes.
Hatte auch früher damit funktioniert.

Naja. Muss man sich halt nur zu helfen wissen :)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: clumsy am 25 April 2021, 20:41:50
Hallo

Erstmal vielen Dank, das Modul läuft problemlos mit meinem WR141E!!

Zitat von: Otto123 am 01 Juli 2020, 21:38:15
- Party modus für xx minuten

Nach dem Update die Templates neu initialisieren:

Evtl. könnte man das Template noch erweitern, dass "mowerActive" den entsprechenden Status auch anzeigt, dazu muss das userReading angepasst werden:
userReadings mowerActive:mowerActiveIndex.* {my %activeState = (
0 => "No",
1 => "Yes",
2 => "Party"
); $activeState{ReadingsVal($name,"mowerActiveIndex","0")}},
....


LG STefan
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 26 April 2021, 09:19:08
Ich habe ein paar Anpassungen im Template gemacht
Änderungen Ergänzung:
serialNumber
dat_st_b:totalBladeTime ... dat_st_bl:borderLength

{my %activeState = (
0 => "No",
1 => "Yes",
2 => "Party"
); $activeState{ReadingsVal($name,"mowerActiveIndex","0")}},

Danke für die Hinweise.

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: clumsy am 26 April 2021, 11:02:47
Hallo

Besten Dank für das schnelle Anpassen!!

Den Partyodus kann man in der App eigentlich nur Ein- und Ausschalten (ohne Zeit), dafür gibts da ein "Einmaliger Zeitplan" (wenn Party-Modus nicht aktiviert ist). Kann es sein, dass hier die Begriffe in der Paa geändert wurde? Der Party-Modus "sperrt" sozusagen alle Zeitpläne, der "Einmalige Zieplan" macht genau das was er sagt.

Wie ist das bei dem  Modul? Was genau macht der Partymodus auf Zeit?

Beste Grüsse
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 26 April 2021, 13:58:37
Scheinbar kann damit FHEM mehr als die App. er macht Partymodus auf Zeit in Minuten.
Probier es aus, in cfg_sc_distm steht dann Rückwärtszählen die Zeit - die Zeit wird ja auch in Minuten durch den Befehl gesetzt. Bei null steht in der App auch wieder der Partymodus ist aus.

Ob das jetzt dieses Jahr in der App geändert wurde?

Damit stimmt allerdings Dein Statusvorschlag nicht, der ist dabei 1. Müsste man die Abfrage modifizieren.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: clumsy am 26 April 2021, 14:11:48
Hmm.. also wenn ich in der App den Partymodus aktiviere, dann geht der Status auf 2, wenn ich ihn deaktiviere auf 1. Aber dafür kann ich in der App kein Timer einstellen.

Ist der Party-Modus im FHEM auch eine Sperre des Zeitplans?

Ich dachte evtl. ist der "Party-Modus" im FHEM/MQTT sozusagen das umgekehrte, also das was in der App als "einmaliger Zeitplan" steht, da es dieses ja so nicht gibt im FHEM...

Werd mal noch ein paar versuche machen, wenn ich wieder in der Nähe des Robis bin...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 26 April 2021, 14:24:07
Ich sehe es als Partymodus auf Zeit. Also Du setzt Party auf 4 h und danach wird automatisch der Zeitplan wieder aktiv.
Umgekehrt betrachtet zu Deiner Beschreibung ist es so: wenn Du set ... startParty 60 machst wird der Partymodus in der App  sichtbar aktiviert und nach 60 Minuten wieder deaktiviert.
Dabei kommt in mqtt dies hier an "sc":{"m":2,"distm":0, ... - vielleicht muss ich auch noch den Wert "m": verändern. Ich sende ja eine 1 und Zeit.


Einmaliger Zeitplan heisst in FHEM: set ... startOnTime
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: clumsy am 26 April 2021, 14:29:00
Ok, danke.

Dann fragt sich nur noch wieso der "Party Modus auf Zeit" einen anderen Active-Status generiert als der unbeschränkte Party-Modus der App. Das müsste man dann effektiv im FHEM abfangen denke ich...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: pillepalle12 am 27 April 2021, 08:28:13
Ich hätte eine kleine Frage, wie bekomme ich denn Aktualisierungen von Otto in das Konstrukt? geht das über FHEM Update?
Danke
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 27 April 2021, 08:48:51
Einfach


set <LANDROIDDEVICE> attrTemplate worx_landroid


neu anwenden.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 27 April 2021, 11:49:44
und vorher, falls nicht durch update geschehen, das Templatefile holen
{ Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }

Ansonsten ist das mit dem Template eine einmalige Sache. Jedem steht ja auch frei am Gerät eigene Modifikationen und Erweiterungen vorzunehmen. Das Template ist immer mehr als der grundlegende Anfang zu verstehen. 
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Peteruser am 28 April 2021, 09:54:48
Hallo,
habe bei mir nun auch die Umstellung auf den neuen Weg begonnen, die Werte sind nun alle sichtbar. :-) Hat auf Anhieb geklappt!
Was mir nun fehlt, ist das Übergeben der Start/Stop/Randmähen Befehle wie in der Vergangenheit.

Das konnte ich mit /usr/bin/perl /opt/fhem/fhem.pl 7072 "set Lando1 startMower" machen.

Gibt es diesen Weg auch und ich habe das überlesen? Oder ist das nur über die Anwendung machbar?

Grüße Peter
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 28 April 2021, 11:08:41
Hallo Peter,

es ist exakt der gleiche Befehl - Du hast das Template angewendet?

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Peteruser am 28 April 2021, 11:43:16
Hallo,
ja, allerdings ist mir nun eine Meldung aufgefallen:
2021.04.28 08:03:26 1: SVN download of FHEM/lib/AttrTemplate/mqtt2.template to FHEM/lib/AttrTemplate/mqtt2.template finished
2021.04.28 08:03:26 1: Undefined subroutine &main::AttrTemplate_Initialize called at (eval 83) line 1.

Dann hald nochmal
{ Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }

Nun:
2021.04.28 11:34:27 1: SVN download of FHEM/lib/AttrTemplate/mqtt2.template to FHEM/lib/AttrTemplate/mqtt2.template finished
2021.04.28 11:34:27 2: AttrTemplates: got 228 entries

Auf das hier :
/usr/bin/perl /opt/fhem/fhem.pl fhemlando:7072 "set Lando1 startMower"
Kommt aber nur das : Unknown argument startMower, choose one of attrTemplate:?,General_Info,MQTT ....... (Der Text ist länger)

Das Raw Device schaut so aus (ich habe einen Rename gemacht)
defmod Lando1 MQTT2_DEVICE android_28ac4xxx_c10d_xxxx_8e3d_2d06db6xxxxx_
attr Lando1 IODev MQTT_Worx
attr Lando1 readingList android_28ac4xxx_c10d_xxxx_8e3d_2d06db6xxxxx_:DB510/xxxxxxxxxxxx/commandOut:.* { json2nameValue($EVENT) }
attr Lando1 room MQTT2_DEVICE
......

Das State steht aber auf drei Fragezeichen

Hat sich die Syntax verändert?

Grüße Peter
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 28 April 2021, 13:34:38
Und Du hast das Template auch angewendet?
set MQTT2_.*:FILTER=IODev=MQTT_Worx attrTemplate worx_landroid
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Peteruser am 28 April 2021, 14:08:35
Hallo,
ja, das hatte ich. Ich sehe ja alle Info von meinem Mäher, habe auch schon Userreadings angelegt um die Übersetzung auf die alten Werte zu machen.

Im Log sehe ich:
2021-04-28_14:02:49 Lando1 cfg_sc_d_5_1: 00:00
2021-04-28_14:02:49 Lando1 cfg_mzv_1: 0
2021-04-28_14:02:49 Lando1 cfg_mzv_9: 0
2021-04-28_14:02:49 Lando1 dat_bt_t: 19.3
2021-04-28_14:02:49 Lando1 cfg_sc_d_1_3: 0
2021-04-28_14:02:49 Lando1 dat_lk: 0
2021-04-28_14:02:49 Lando1 batteryLevel: 100
2021-04-28_14:02:49 Lando1 batteryVoltage: 19.3

Mir fehlt nur, der Befehl den Mäher mit Start/Stop/Rand zu informieren.

Ich habe die Zeile nochmal ausgeführt und einen Restart gemacht.

Weiterhin:
user@fhemlando:/home/skript$ /usr/bin/perl /opt/fhem/fhem.pl fhemlando:7072 "set Lando1 startMower"
Unknown argument startMower, choose one of attrTemplate:?,General_Info,MQTT2_CLIENT_general_......

Es geht nicht im die Werte, die werden sauber angezeigt, ich will dem Mäher per Commandline Starten.

Was mich stört, der Mäher hat als Status / State nur drei Fragezeichen. Auch nach einem Rundkurs über den Rasen hat sich das nicht geändert.

Grüße Peter
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 28 April 2021, 14:15:56
Wenn Du das Template "angewendet" hast,
es aber laut Deiner Fehlermeldung gar nicht vorhanden war,
Du es nochmal heruntergeladen hast,
musst Du es dann anwenden.  ::)
Es geht beim Template nicht nur um die Readings und Werte, es geht auch um die Befehle. Dein rudimentäres list sagt mir: Das ist nur das Standard Device mit autocreate. Es fehlt praktisch alles. Wenn das Template angewendet wurde, hast Du ein entsprechendes Reading (AttrTemplateVersion) und Attribute (model worx_landroid_mover).
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Peteruser am 28 April 2021, 14:35:35
Hallo,
DANKE, da war der letzte Hinweis verborgen!

Bei set des Mähers gibt es attrTemplate ,hier worx_landroid auswählen  8)
Dann ändert sich auch das Bild bei der Übersicht.

Damit funktionert alles.

Grüße und Danke vom Peter
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 28 April 2021, 14:56:53
Zitat von: Peteruser am 28 April 2021, 14:08:35
Ich habe die Zeile nochmal ausgeführt und einen Restart gemacht.
Ich war der Meinung meine Zeile sollte greifen, aber Du hast das Gerät umbenannt. Damit geht MQTT2_.*:FILTER=IODev=MQTT_Worx ins Leere.
Da hatte ich zu kurz gedacht. Ich hätte es allgemeiner fassen sollen. Oder ich schreibe in die Anleitung den Satz mit der Auswahl. Man kann eben nicht alle Eventualitäten vordenken. :D
Schön das es funktioniert.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 01 Mai 2021, 16:46:30
Gibt es eigentlich auch eine Möglichkeit, das Intervall der Anrufe einzustellen oder explizit per Befehl eine Art statusrequest zu starten?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 01 Mai 2021, 17:32:47
MQTT ist wie Radio: Wenn der Nachrichtensprecher das Mikro in die Hand nimmt kann man zuhören oder abschalten.
Das MQTT2 Device hört die ganze Zeit nur zu. Nachrichten mit retain Flag kann der Client jederzeit "abhören".
Sicher kann man dem Rasenmäher irgendwas schicken und er wird es quittieren.
Einen Befehl als Statusrequest kenn ich nicht. Das man den Mäher in seiner Sendefrequenz einstellen könnte, habe ich nirgends gesehen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 03 Mai 2021, 08:24:55
Danke für die Info.

So nach der bisherigen Zeit seit der Einrichtung über MQTT2 muss ich sagen, läuft es ziemlich gut damit. Musste bei meinen DOIFs für das Setzen der Kalendereinträge noch etwas mit den "Wait"-Zeiten spielen. Aber nun läuft es denke ich.

Dann kam noch hinzu, dass ich bei meinem Mäher aus 2018 dieses Jahr einen neuen Akku (den etwas stärkeren 2,9Ah Akku, statt 2,0Ah) eingebaut habe. Da der Mäher bei nichtgebrauch ohne Strom ist, musste ich wegen der längeren Ladezeit für den 2,9Ah Akku auch hier die Zeit vom Einschalten des Stroms vor einem Mähtermin bis zum Start des Mähvorgangs noch etwas verlängern.
Aber auch das passt nun.

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Skusi am 07 Mai 2021, 11:19:49
Ich hab das auch nun testweise auf MQTT laufen. Aber ich komme mit der Befehls Syntax noch nicht klar.
Wie setzte ich denn zB. die Kalender Einträge ???
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 07 Mai 2021, 12:03:48
Zitat von: Skusi am 07 Mai 2021, 11:19:49
Wie setzte ich denn zB. die Kalender Einträge ???
1. Im Kalender :) - aber Du meinst für den Mäher?
2. in der App
3. so wie hier beschrieben https://forum.fhem.de/index.php/topic,111959.msg1151156.html#msg1151156
4. diesen String bauen und über x_raw_payload schicken
{"m":1,"p":0,"sc":{"d":[["00:00",0,0],["09:00",10,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0]],"dd":[["00:00",0,0],["09:00",10,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0]]}}

Das war natürlich nur ein rudimentärer Ansatz.

Alternativ nutzt man einfach ein Calendar Device und startet Event gesteuert den Mäher von FHEM. Das  macht aus meiner Sicht mehr Sinn, als etwas nachzubauen was über die App ganz easy realisiert ist?

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: kjmEjfu am 07 Mai 2021, 16:17:48
Zitat von: fred_feuerstein am 23 April 2021, 16:32:06
bei meinem 2018er Worx funktioniert ja seit Firmware 3.52 der Befehl zum BorderCut nicht mehr. Er reagiert da einfach nicht drauf.
Hatte aber auch bevor es diese Funktion gab schon eine manuell Funktion dazu in Betrieb.
Ich setze einen Dummy (Shaun_HomeBorderCut) auf "on". Darauf triggert dann ein Doif:


([Shaun_HomeBorderCut:state] eq "on" and ([ShaunDasSchaf:mowerStatusTxt] eq "Home" or [ShaunDasSchaf:mowerStatusTxt] eq "Idle")
(set ShaunDasSchaf startMower)
(set ShaunDasSchaf pauseMower)
(set ShaunDasSchaf stopMower)
(set Shaun_HomeBorderCut off)


Wichtig sind dann die Attribute:
wait      0,4,2,30
do        always


damit klappt der Bordercut perfekt. Ergentlich macht die Funktion bei Worx ja auch nix anderes.
Hatte auch früher damit funktioniert.

Naja. Muss man sich halt nur zu helfen wissen :)

wenn man das so umsetzt, dann wird für den Landroid aber die ganze Zeit "Searching wire" als mowerStatusTxt angezeigt. Ist nicht kritisch, aber noch ein kleiner Schönheitsfehler.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 07 Mai 2021, 21:33:06
Nur leider funktioniert bei mir die Default bordercut Funktion nicht mehr..
Das hat aber auch nix mit mqtt2 zu tun. Auch beim modul von Axel ging es nicht mehr mit der neuen Firmware.

Mit meinem weg als workaround schon. Von daher, alles gut.
Ich könnte ja einen erweiterten StatusTxt als userreading bauen, der dann entsprechend mit bordercut gefüllt wird, aber es stört mich aktuell nicht.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 07 Mai 2021, 21:38:53
@fred_feuerstein Kannst Du mal den kompletten json String posten den die DeskApp liefert?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Allgaeuer am 09 Mai 2021, 19:42:28
Hallo, seit dieser Saison bekomme ich Nachts für ca. 1 h keine MQTT-Nachrichten übermittelt. Der Beginn der "Totzeit" schwankt von 1/2 h vor Mitternacht bis ca. 1 Uhr. Habt Ihr das auch?

Vielleicht könnt Ihr mal Eure Log's (z.B. batteryVoltage) diesbezüglich prüfen. - Das würde mir bei der Ursachensuche helfen.
Danke schon mal in Voraus. 

PS: Mein Mäher muss nachts nicht raus, ich verwende diese Daten von Batteriestand aber als "Lebenszeichen" des Robby und ermittle damit den optimalen Startzeitpunkt.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 09 Mai 2021, 20:05:55
@Allaeuer Bei mir kommt etwa alle 10 min eine Nachricht. Kann die Totzeit nicht bestätigen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 10 Mai 2021, 11:58:08
Zitat von: Otto123 am 07 Mai 2021, 21:38:53
@fred_feuerstein Kannst Du mal den kompletten json String posten den die DeskApp liefert?

Du meinst die Ausgabe der MQTT Seite der DeskApp?

{
  "cfg":{"id":1,
    "lg":"it",
    "tm":"11:56:28",
    "dt":"10/05/2021",
    "sc":{"m":1,"p":0,"d":[
      ["00:00",0,0],
      ["00:00",0,0],
      ["00:00",0,0],
      ["00:00",0,0],
      ["00:00",0,0],
      ["00:00",0,0],
      ["00:00",0,0]]},
    "cmd":0,
    "mz":[0,0,0,0],
    "mzv":[0,0,0,0,0,0,0,0,0,0],
    "rd":0,
    "sn":"20183019090200XXXXXX"},
  "dat":{
    "mac":"F0FE6B8XXXXX",
    "fw":3.52,
    "bt":{"t":21.7,"v":18.88,"p":70,"nr":1697,"c":1,"m":0},
    "dmp":[-8.7,-1.1,227.5],
    "st":{"b":23748,"d":391353,"wt":24697},
    "ls":1,
    "le":0,
    "lz":1,
    "rsi":-69,
    "lk":1}
}


Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 10 Mai 2021, 12:16:39
Ja genau,

da fehlen in Deiner Firmware aber wirklich die notwendigen Elemente für BorderCut  :o
"distm":0,"ots":{"bc":1,"wtm":0},
Lustig ist ja das die Sprache offenbar immer italienisch ist "lg":"it",

Kann man nix machen...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: golem am 12 Mai 2021, 18:14:36
Hallo,

mal eine bescheidene Frage. Was mus ich einstellen, das der moverStatusText als State angezeigt wird? Und wenn möglich das Icon seine Farbe anpasst grün wenn er föhrt, rot bei Fehlter, gelb bei Border cut und ansonsten grau.

gruß Gol
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 12 Mai 2021, 19:31:53
Ich vermute mal, Du willst das hier:
attr a:model=worx_landroid_mover stateFormat mowerStatusTxt
Das würde den STATE setzen.
Wenn Du wirklich State willst, müsstest Du ein zusätzliches userReadings mit diesem Inhalt setzen :)
State:mowerStatusTxt {ReadingsVal($name,'mowerStatusTxt','')}
Das icon vorn in der Farbe zu schalten ist jedes mal einen Config Änderung, Du müsstest also was bauen was in Abhängigkeit von mowerStatusIndex und mowerErrorIndex die Farbe ändert.
attr a:model=worx_landroid_mover icon scene_robo_lawnmower@red

Was Du aber sicher willst ist ein devStateIcon, das könntest Du Dir zusammenbauen, am Besten mit einer Sub in der 99_myUtils. Eine Anregung dazu könntest Du z.B. hier  (https://svn.fhem.de/trac/browser/trunk/fhem/contrib/AttrTemplate/99_sonos2mqttUtils.pm)finden.

Man kann auch was im stateFormat machen, das wird aber schnell unübersichtlich. Ein Teil Deiner Forderung als Beispiel:
{ReadingsNum($name,'mowerErrorIndex',99) > 0?'scene_robo_lawnmower@red':ReadingsNum($name,'mowerStatusIndex',99) > 1?'scene_robo_lawnmower@green':'scene_robo_lawnmower@grey'}

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 13 Mai 2021, 09:22:37
Alternativ:

attr <Device> stateFormat Active: mowerActive, Status: mowerStatusTxt, Error: mowerErrorTxt


Ist zwar nicht bunt, aber man sieht den kompletten Status im Überblick.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 13 Mai 2021, 09:34:42
Hallo Otto,

könntest du bitte noch
deletereading -q DEVICE (?!associatedWith).*

ins Templates mit aufnehmen?

Wird bei den Shellys auch so gehandhabt.

Damit werden alle Readings, bis auf DevIO, beim übernehmen des Templates gelöscht.

Ich habe lange gesucht, warum jsonMap bei mir nicht greift, bis mir eingefallen ist, dass beim Autograde die Readings schon vorhandene sind. Erst als ich diese gelöscht habe, hat's dann funktioniert.
Logisch, wenn man gleich daran denkt 8) :D ;)

Grüße Bernd
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Skusi am 13 Mai 2021, 10:18:51
Ich vermisse noch die Möglichkeit den Startpunkt festzulegen. Also die Zonen Funktion.
In Axels Modul gab es dazu folgende readings:

areasArea1         5
areasArea2        47
areasArea3        64
areasArea4        82
areasAreaAct       0
areasAreaActInd  0
areasStartSequence  0,0,0,0,0,0,0,0,0,0


Die areasArea1-4 sind da die Meter am Begrenzungsdraht gewesen und über die Sequence konnte man die Prozentuale Verteilung der Zonen angeben.

Ich startete den Mäher über das setzten des areasStartSequence Befehls auf z.B 3,3,3,3,3,3,3,3,3,3,in der Zone 3, also bei Meter 64 am Draht.

Wie kann ich das nun per MQTT realisieren ?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 13 Mai 2021, 10:53:47
Hi Skusi,

schau doch mal mit der desktop App in den mqtt String ob Du da Deine Areas wiederfindest - müsste mz sein.
Von der Anzahl der Felder her kann das mit der Start Sequenz nur cfg mvz sein.
Mal mit x-raw-payload versuchen in dem Format?

{"mzv":[3,3,3,3,3,3,3,3,3,3],}
oder
{"mz":[0,0,0,0],"mzv":[0,0,0,0,0,0,0,0,0,0],}

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Stefan_Hvr am 14 Mai 2021, 14:06:27
Zitat von: Otto123 am 13 Mai 2021, 10:53:47
Hallo Otto,

mzv ist richtig --> {"mzv":[1,1,1,1,1,1,1,1,1,1]} OHNE das letzte Komma klappt's auch

Gruß Stefan
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: golem am 20 Mai 2021, 13:32:03
Zitat von: frober am 13 Mai 2021, 09:22:37
Alternativ:

attr <Device> stateFormat Active: mowerActive, Status: mowerStatusTxt, Error: mowerErrorTxt


Ist zwar nicht bunt, aber man sieht den kompletten Status im Überblick.

Danke, das ist schon super, nur jetzt fehlt noch der Party modus...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 20 Mai 2021, 14:20:40
startParty ist doch implementiert? Oder wie ist Deiner Frage zu verstehen?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Stefan_Hvr am 24 Mai 2021, 03:24:50
Zitat von: Otto123 am 20 Mai 2021, 14:20:40
startParty ist doch implementiert? Oder wie ist Deiner Frage zu verstehen?

Hallo Otto, Hallo zusammen,
startParty mit der Angabe einer Minutenanzahl funktioniert.
Wie kann ich den Partymodus dauerhaft (Urlaub) einstellen?

Ausschalten mache ich immer indem ich startParty auf eine Minute setze. Gibt es da einen besseren/direkten Weg?

ggf. mit direktem publish?

VG Stefan
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 24 Mai 2021, 08:10:15
Hallo Stefan,

ok das sind bestimmt zwei "Sonderfälle" die sich in einem speziellen Eintrag im json wiederfinden.
Müsste man mal über die App setzen und schauen was im dann in MQTT zurückbekommt.
Party aus ist sicher einfach distm=0
Ich vermute mal ein -1 oder ein Wert größer als xx wird den Party Modus dauerhaft aktivieren.

Abseits davon, dass es jetzt den Slider gibt, darfst Du jederzeit einen set Befehl absetzen: set mower startParty 0

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 25 Mai 2021, 23:10:00
Moin,

ich habe ein Problem mit "mowerActive": es steht immer auf true. Eigentlich sollte es doch nur true sein, während der Mäher unterwegs ist?! Aber bei mir steht es scheinbar seit Beginn der Saison auf true. Ebenso über die nodejs-Verbindung hängt es auf true fest.

Hat das noch jemand beobachtet? Liegt es womöglich an der FW 3.x?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 25 Mai 2021, 23:23:27
Nein das könnte am geänderten Verhalten des triggers der userReadings liegen.
Versuch mal
mowerErrorTxt:mowerErrorIndex.* -> mowerErrorTxt:mowerErrorIndex:.*
mowerActive:mowerActiveIndex.* -> mowerActive:mowerActiveIndex:.*


Da hatte sich ev. was geändert. Das userReading hast Du so?
mowerActive:mowerActiveIndex:.* {my %activeState = (
0 => "No",
1 => "Yes",
2 => "Party"
); $activeState{ReadingsVal($name,"mowerActiveIndex","0")}},


Aber das zeigt nur an ob er "da" ist.
"Unterwegs" zeigt das Reading mowerStatusTxt:mowerStatusIndex an.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 25 Mai 2021, 23:47:00
Hallo Otto,

noch sieht es so aus:
mowerActive:mowerActiveIndex.* {ReadingsVal($name,"mowerActiveIndex","0") ? "true" : "false"}

Aber auch mowerActiveIndex steht dauerhaft auf 1. Daher hat es wohl nichts mit dem UserReading zu tun.

jsonMap dazu:
cfg_sc_m:mowerActiveIndex
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 26 Mai 2021, 10:23:16
Ja aber was erwartest Du? Ich meine  mowerActive:mowerActiveIndex zeigt an: er ist da oder er hat "Party" oder er ist "weg".

Das was Du suchst steht im Status?

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 26 Mai 2021, 11:22:08
Zitat von: Stefan_Hvr am 24 Mai 2021, 03:24:50
startParty mit der Angabe einer Minutenanzahl funktioniert.
Wie kann ich den Partymodus dauerhaft (Urlaub) einstellen?

Ausschalten mache ich immer indem ich startParty auf eine Minute setze. Gibt es da einen besseren/direkten Weg?
Hallo Stefan,

ich habe nochmal geschaut:
{"sc":{"distm":120}} setzt Party für 120 min. löscht sich nach der zeit automatisch, kann man aber auch mit {"sc":{"distm":0}} jederzeit abschalten
{"sc":{"m":2}} setzt Party dauerhaft, {"sc":{"m":1}} schaltet Party dauerhaft aus.

Jetzt muss ich mal schauen, wie ich das in die Bedienung einbaue.

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 26 Mai 2021, 12:13:59
Hallo Otto,

was meinst Du denn genau mit "da" und "weg"?

Ich habe ein Notify, dass das WLAN im Garten deaktiviert, wenn mowerActive auf false geht. Das hat letztes Jahr hervorragend funktioniert: Wenn der Mäher mit mähen fertig war und in der Station ankam, ging das WLAN aus (eingeschaltet wird es 15min vor Beginn des Mähplans).

Da scheint sich mit der FW 3.x etwas geändert zu haben, denn es steht bei mir wie gesagt seit Beginn der Saison (und dabei Update auf 3.x) dauerhaft auf true, bzw. mowerActiveIndex dauerhaft auf 1. Gerade mal den Partymodus aktiviert, dann geht mowerActiveIndex auf 2. Partymodus deaktiviert > wieder zurück auf 1.

Aber wann ist es denn 0?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 26 Mai 2021, 12:38:54
Zitat von: efyzz am 26 Mai 2021, 12:13:59
Aber wann ist es denn 0?
Wüsst ich auch gern. ;) Entweder meldet er sich ordentlich ab, wenn er aus geht? Oder stellt es der Server fest wenn der Mäher eine Weile offline war?

Es kann durchaus sein, es hat sich offenbar einiges in der Firmware geändert...
ZitatIch habe ein Notify, dass das WLAN im Garten deaktiviert,
Dann musst Du das auf moverStatus/Index (1 => "Home",) umstellen. Wobei es das schon voriges Jahr gab. das Verhalten von moverActive hab ich nicht genau beobachtet.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Stefan_Hvr am 26 Mai 2021, 15:15:04
Zitat von: Otto123 am 26 Mai 2021, 11:22:08
Hallo Stefan,

ich habe nochmal geschaut:
{"sc":{"distm":120}} setzt Party für 120 min. löscht sich nach der zeit automatisch, kann man aber auch mit {"sc":{"distm":0}} jederzeit abschalten
{"sc":{"m":2}} setzt Party dauerhaft, {"sc":{"m":1}} schaltet Party dauerhaft aus.

Jetzt muss ich mal schauen, wie ich das in die Bedienung einbaue.

Gruß Otto
Hallo Otto,

Einbauen: ich würde mich freuen. Wenn nicht mach ich es per x-raw-payload.

Danke & Viele Grüße aus Hannover.
Stefan
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Stefan_Hvr am 26 Mai 2021, 15:21:39
Zitat von: Otto123 am 24 Mai 2021, 08:10:15
Hallo Stefan,
Müsste man mal über die App setzen und schauen was im dann in MQTT zurückbekommt.
--> über das net.zip-Tool?
Zitat von: Otto123 am 24 Mai 2021, 08:10:15
Abseits davon, dass es jetzt den Slider gibt, darfst Du jederzeit einen set Befehl absetzen: set mower startParty 0
ja, das ist klar. den Slider nutze ich nicht. Man weiss ja nie wie lange so ne Party dauert  ;)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 26 Mai 2021, 15:55:51
Zitat von: Stefan_Hvr am 26 Mai 2021, 15:21:39
--> über das net.zip-Tool?
Dieses Windows Tool wo dann eine DeskApp.exe gestartet wird. Aber ist ja überholt habe ich heute gemacht.

Ich baue das irgendwie ein, über Ideen würde ich mich aber freuen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Stefan_Hvr am 26 Mai 2021, 17:18:22
Zitat von: Otto123 am 26 Mai 2021, 15:55:51
Dieses Windows Tool wo dann eine DeskApp.exe gestartet wird. Aber ist ja überholt habe ich heute gemacht.
--> fürs nächste Mal ;)
Zitat von: Otto123 am 26 Mai 2021, 15:55:51
Ich baue das irgendwie ein, über Ideen würde ich mich aber freuen.
Diskussionsvorschlag:
set xxx startParty 0 (party aus)
set xxx startParty 99999 (party an ohne zeitliche Begrenzung)
Alternativ
set xxx startParty 0 (party aus)
set xxx startParty on (party an ohne zeitliche Begrenzung)

Grüße Stefan
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: kermitthefrog am 26 Mai 2021, 20:51:24
Mein MQTT_Worx springt sein 2-3 Tagen ständig von opened auf disconnected und zurück, im Sekundentakt.
Über die DeskApp kann ich mich auch nciht verbinden (nicht anmelden, sondern verbinden). Es wird der Fehler "Eine Ausnahme vom Typ "uPLibrary.Networking.M2Mqtt.Exceptions.MqttCommunicationsException" wurde ausgelöst" ausgeworfen.
Jemand ne Idee? Wo muss ich suchen? Mit der Landroid App selbst komme ich auf den Mäher...

Danke und Gruß...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: kjmEjfu am 27 Mai 2021, 07:42:39
Setz mal für 24h auf disabled und versuche dich in dieser Zeit nicht neu zu verbinden. Das hilft meistens.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 27 Mai 2021, 11:04:48
Ich versuche mal die aktuellen Dinge im Template zu verewigen:

deletereading ... https://forum.fhem.de/index.php/topic,111959.msg1156133.html#msg1156133
Umstellung auf $DEVICETOPIC
Änderung Zuordnung Readings (war schon realisiert)
mowerActive:mowerActiveIndex mit 3 Zuständen (war schon realisiert) https://forum.fhem.de/index.php/topic,111959.msg1152376.html#msg1152376
setList wegen Party
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}}})}

ein einfachen "Vorschlag" fürs stateFormat https://forum.fhem.de/index.php/topic,111959.msg1156129.html#msg1156129

Habe ich was Wesentliches vergessen?
Edit: 2.6.2021 erledigt
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 29 Mai 2021, 18:35:37
Moinsen,

will mir auch gerade einen Robomäher kaufen. Da ich irgendwann hier im Forum mal gesehen habe, dass Worx Landroid an FHEM angebunden werden kann, soll es auch so einer werden.

Zwei Fragen, bevor ich auf Shoppingtour gehe:

1. Brauche ich noch irgendwelche Zusatzhardware oder reicht die Registrierung an der Cloud inkl. der Schritte in Post 1 dieses Threads tatsächlich aus?
2. Momentan schwebt mir eins der Modelle ,,Worx Landroid M500 Plus WR165E" oder ,,Worx Landroid M500 WR141E" vor. Sind diese Modelle kompatibel mit der hier beschriebenen Methode?

Danke euch und viele Grüße
Hoppel
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: choenig am 29 Mai 2021, 18:42:41
Hi,

ich hab' meinen WR141E gestern in Betrieb genommen und es hat alles auf anhieb funktioniert.

Zitat von: hoppel118 am 29 Mai 2021, 18:35:37
1. Brauche ich noch irgendwelche Zusatzhardware oder reicht die Registrierung an der Cloud inkl. der Schritte in Post 1 dieses Threads tatsächlich aus?

Nein, du benötigst keine Zusatzhardware.

Zitat von: hoppel118 am 29 Mai 2021, 18:35:37
2. Momentan schwebt mir eins der Modelle ,,Worx Landroid M500 Plus WR165E" oder ,,Worx Landroid M500 WR141E" vor. Sind diese Modelle kompatibel mit der hier beschriebenen Methode?

Beim WR165E geh' ich davon aus, da die Mäher seit 2019 alle funktionieren sollten.

LG
Christian
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 29 Mai 2021, 18:50:32
Die Anbindung der Worx Landroid Mäher scheint insgesamt ziemlich gleich:
Mäher - Wlan - Internet - Cloud MQTT Server - Internet - MQTT Client / App

Was sich in den Modellen unterscheidet ist offenbar der Inhalt des JSON String der über MQTT ausgetauscht wird. Da kann es beim neuen Modell auch mal was Neues geben. Was aber bisher kein großes Rätsel war.
Die Anbindung per MQTT ist simpel und das FHEM Device selbst praktisch beliebig konfigurierbar.

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 29 Mai 2021, 18:51:27
Ok, super! Danke euch für die Infos. :D

Dann wird's der WR165E. ;)

Gruß Hoppel
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: mkraus81 am 30 Mai 2021, 19:23:57
Moin Jungs/Mädels,

ich bin glaube zu doof...
Mein wr147e.1 ist eingerichtet
das Device habe ich erstellt... stand auf Open
dann habe ich das Template hinterlegt...

aber scheinbar funktioniert nichts... also ich kann weder den Robi starten... noch zeigt er einen Status an... oder der Gleichen...
habe ich was übersehen...? wann sendet der Robi denn MQTT Payloads?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 30 Mai 2021, 19:52:46
Also ohne ein List und ein paar mehr Infos wird es nur ein Glaskugel-Befragen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: mkraus81 am 30 Mai 2021, 20:59:14
das ist mein define aus der config

define MQTT_Worx MQTT2_DEVICE XXXXXXXX.eu-west-1.amazonaws.com:8883
attr MQTT_Worx autocreate simple
attr MQTT_Worx icon scene_robo_lawnmower
attr MQTT_Worx 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\
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 model worx_landroid_mover
attr MQTT_Worx readingList PRM100/XXXXXXXXX/commandOut:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MQTT_Worx room Hof,MQTT2_DEVICE
attr MQTT_Worx setList mowerRainDelay:slider,0,30,1440 PRM100/XXXXXXX/commandIn {"rd":$EVTPART1}\
  mowerTimeCorrection:slider,-100,1,100 PRM100/XXXXXXX/commandIn {"sc":{"p":$EVTPART1}}\
  startBorderCut:noArg PRM100/XXXXXXX/commandIn {"sc":{"ots":{"bc":1,"wtm":0}}}\
  startOneTime:slider,10,10,720 PRM100/XXXXXXX/commandIn {"sc":{"ots":{"bc":0,"wtm":$EVTPART1}}}\
  startParty:slider,60,60,2880 PRM100/XXXXXXX/commandIn {"sc":{"distm":$EVTPART1}}\
  startMower:noArg PRM100/XXXXXXX/commandIn {"cmd":1}\
  pauseMower:noArg PRM100/XXXXXXX/commandIn {"cmd":2}\
  stopMower:noArg PRM100/XXXXXXX/commandIn {"cmd":3}\
  x_raw_payload:textField { my $payload = $EVENT;;$payload =~ s/$EVTPART0 //g;; qq(PRM100/XXXXXXX/commandIn $payload)}
attr MQTT_Worx 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")}}


Readings habe ich dann nur
- IODev
- attrTemplateVersion
- state
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 30 Mai 2021, 21:34:23
Zitat von: mkraus81 am 30 Mai 2021, 20:59:14
das ist mein define aus der config

define MQTT_Worx MQTT2_DEVICE XXXXXXXX.eu-west-1.amazonaws.com:8883
attr MQTT_Worx autocreate simple
attr MQTT_Worx icon scene_robo_lawnmower
attr MQTT_Worx 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\
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 model worx_landroid_mover
attr MQTT_Worx readingList PRM100/XXXXXXXXX/commandOut:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MQTT_Worx room Hof,MQTT2_DEVICE
attr MQTT_Worx setList mowerRainDelay:slider,0,30,1440 PRM100/XXXXXXX/commandIn {"rd":$EVTPART1}\
  mowerTimeCorrection:slider,-100,1,100 PRM100/XXXXXXX/commandIn {"sc":{"p":$EVTPART1}}\
  startBorderCut:noArg PRM100/XXXXXXX/commandIn {"sc":{"ots":{"bc":1,"wtm":0}}}\
  startOneTime:slider,10,10,720 PRM100/XXXXXXX/commandIn {"sc":{"ots":{"bc":0,"wtm":$EVTPART1}}}\
  startParty:slider,60,60,2880 PRM100/XXXXXXX/commandIn {"sc":{"distm":$EVTPART1}}\
  startMower:noArg PRM100/XXXXXXX/commandIn {"cmd":1}\
  pauseMower:noArg PRM100/XXXXXXX/commandIn {"cmd":2}\
  stopMower:noArg PRM100/XXXXXXX/commandIn {"cmd":3}\
  x_raw_payload:textField { my $payload = $EVENT;;$payload =~ s/$EVTPART0 //g;; qq(PRM100/XXXXXXX/commandIn $payload)}
attr MQTT_Worx 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")}}


Readings habe ich dann nur
- IODev
- attrTemplateVersion
- state

Du musst ein MQTT2_CLIENT anlegen.
Das MQTT2_DEVICE wird dann auto. angelegt, darauf wendest du dann das Templates an.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: mkraus81 am 30 Mai 2021, 23:05:18
DANKE! ich war so blind... wer lesen kann ist klar im Vorteil
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: choenig am 31 Mai 2021, 11:58:04
Hi Otto,

ist es eigentlich Absicht, dass die clientId android ist? Oder fehlt da ein [l]android?


{my $uuid=qx(cat /proc/sys/kernel/random/uuid);;fhem("attr MQTT_Worx clientId android-$uuid")}


Hab' ich mich einfach mal so gefragt :)

LG
Christian
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 31 Mai 2021, 19:26:40
Hallo Christian,

Von mir aus ist es Absicht!  ;D
Ich habe mich nie gefragt, aber wahrscheinlich könnte da auch willi oder fhem stehen. Ich habe die Erzeugung der uuid aus der im ersten Beitrag verlinkten Original Quelle genommen. Ich nahm an, dass es etwas mit der uuid zu tun hat, die die App auf dem Smartphone erzeugt und mitgibt. Und da gäbe es die App für Android und Appel?
Aber wenn ich mir die Windows App anschaue - die verwendet nur die uuid ;)

Edit: es muss offenbar wirklich android- davor!

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: mkraus81 am 02 Juni 2021, 10:42:40
Hi,

gehört vermutlich nicht hier hin... aber hier scheinen die Experten zu lesen :-)
Ich würde gern die Ereignissanzeige als ReadingGroup nachbauen...  aber bin zu blöd dazu...
habt ihr einen Tipp/Beispiel für mich?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Pusemukel am 02 Juni 2021, 23:01:09
Nabend,

ist es machbar das diese Variante auch mit Lanxscape funktionieren könnte,
über die Deskapp muss ich ja die
Deskapp.exe.config anpassen dann funktioniert es, Fett markiert

Auszug Deskapp.exe.config:
<!--
    <add key="WebApi" value="https://api.worxlandroid.com/api/v2/"/>
    <add key="CliSec" value="nCH3A0WvMYn66vGorjSrnGZ2YtjQWDiCvjg7jNxK"/>
   
    <add key="WebApi" value="https://api.kress-robotik.com/api/v2/"/>
    <add key="CliSec" value="t2ANJxvWuVoAZSTw4gdrD2cy37dEwqtQSUxxY02q"/>
    -->
    <add key="WebApi" value="https://api.landxcape-services.com/api/v2/"/>
    <add key="CliSec" value="UKDRabKqBLABLABLAdsfwefrfdsgfdgfdkNHE8XSP"/>
   
    <add key="AutoReconnect" value="0"/>
    <add key="CommandInOut" value="false"/>


Spielt das Irgenteine Rolle ?

Nach deiner Anleitung für Worx funktioniert es leider nicht, ja ich habe die Richtige Broker Adresse eingetragen. :-)
Fhem hat bei mir auch diesen Conect/Disconnected Switching Fehler.

RAW:
defmod MQTT_Worx MQTT2_CLIENT a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
attr MQTT_Worx SSL 1
attr MQTT_Worx autocreate simple simple
attr MQTT_Worx keepaliveTimeout 600
attr MQTT_Worx mqttVersion 3.1.1
attr MQTT_Worx msgAfterConnect <BOARDIDAUSDERAPP>/<MACADRESSEAUSDERAB>/commandIn {}
attr MQTT_Worx room Garten
attr MQTT_Worx sslargs SSL_version:TLSv12 SSL_cert_file:aws.cer SSL_key_file:aws.key SSL_use_cert:1
attr MQTT_Worx subscriptions <BOARDIDAUSDERAPP>/<MACADRESSEAUSDERAB>/commandOut

setstate MQTT_Worx disconnected
setstate MQTT_Worx 2021-06-02 17:13:50 state disconnected


Auszug Log:
2021.06.02 16:40:57 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.02 16:40:57 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.02 16:40:57 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/
2021.06.02 16:40:57 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 108.128.46.176
2021.06.02 16:40:57 5: MQTT_Worx: sending CONNECT (16)(21)(0)(4)MQTT(4)(2)(2)X(0)(9)MQTT_Worx
2021.06.02 16:40:57 5: SW: 101500044d5154540402025800094d5154545f576f7278
2021.06.02 16:40:57 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.02 16:40:57 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.02 16:40:57 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/
2021.06.02 16:40:57 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 108.128.46.176
2021.06.02 16:40:57 5: MQTT_Worx: sending CONNECT (16)(21)(0)(4)MQTT(4)(2)(2)X(0)(9)MQTT_Worx
2021.06.02 16:40:57 5: SW: 101500044d5154540402025800094d5154545f576f7278
2021.06.02 16:40:57 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)

oder Übersehe ich irgentetwas ?

Grüsse
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 03 Juni 2021, 08:06:03
Hallo Otto,

im dem aktualisierten Template sind zwei Tippfehler drin:


attr DEVICE alias Mover


muss Mower

und


attr DEVICE model worx_landroid_mover


müsste m.E. model worx_landroid_mower heißen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 03 Juni 2021, 08:36:05
Zitat von: mkraus81 am 02 Juni 2021, 10:42:40
Hi,

gehört vermutlich nicht hier hin... aber hier scheinen die Experten zu lesen :-)
Ich würde gern die Ereignissanzeige als ReadingGroup nachbauen...  aber bin zu blöd dazu...
habt ihr einen Tipp/Beispiel für mich?

https://wiki.fhem.de/wiki/ReadingsGroup
(https://wiki.fhem.de/wiki/ReadingsGroup)

Es wäre besser im richtigen Unterforum einen neuen Thread zu eröffnen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 03 Juni 2021, 08:39:56
Zitat von: Pusemukel am 02 Juni 2021, 23:01:09
Nach deiner Anleitung für Worx funktioniert es leider nicht, ja ich habe die Richtige Broker Adresse eingetragen. :-)
Fhem hat bei mir auch diesen Conect/Disconnected Switching Fehler.


Auszug Log:
2021.06.02 16:40:57 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.02 16:40:57 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.02 16:40:57 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/
2021.06.02 16:40:57 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 108.128.46.176
2021.06.02 16:40:57 5: MQTT_Worx: sending CONNECT (16)(21)(0)(4)MQTT(4)(2)(2)X(0)(9)MQTT_Worx
2021.06.02 16:40:57 5: SW: 101500044d5154540402025800094d5154545f576f7278
2021.06.02 16:40:57 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.02 16:40:57 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.02 16:40:57 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/
2021.06.02 16:40:57 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 108.128.46.176
2021.06.02 16:40:57 5: MQTT_Worx: sending CONNECT (16)(21)(0)(4)MQTT(4)(2)(2)X(0)(9)MQTT_Worx
2021.06.02 16:40:57 5: SW: 101500044d5154540402025800094d5154545f576f7278
2021.06.02 16:40:57 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)

oder Übersehe ich irgentetwas ?

Grüsse

Das deutet, wie schon öfter hier geschrieben, auf ein fehlerhaftes Zertifikat hin.

Hast du dich an die Anleitung gehalten stimmen die Rechte beim Zertifikat?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 03 Juni 2021, 09:35:11
Zitat von: Pusemukel am 02 Juni 2021, 23:01:09
Nach deiner Anleitung für Worx funktioniert es leider nicht, ja ich habe die Richtige Broker Adresse eingetragen. :-)
Hast Du auch <BOARDIDAUSDERAPP>/<MACADRESSEAUSDERAB> gegen Deine echten Werte ersetzt? Ohne die spitzen < Klammern >?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: kjmEjfu am 03 Juni 2021, 12:43:10
Zitat von: Pusemukel am 02 Juni 2021, 23:01:09
Nach deiner Anleitung für Worx funktioniert es leider nicht, ja ich habe die Richtige Broker Adresse eingetragen. :-)
Fhem hat bei mir auch diesen Conect/Disconnected Switching Fehler.

das Connect-Disconnect-Verhalten tritt sehr häufig auf, wenn man beim ersten Versuch etwas falsch gemacht hat und dadurch in kurzem Zeitraum etliche fehlerhafte Anmeldungen versucht wurden.
Dann macht der MQTT-Server aus Sicherheitsgründen zu und du musst ungefähr 24h warten. In der Zeit solltest du dich möglichst NICHT mehr versuchsweise anmelden, auch nicht per App.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 03 Juni 2021, 12:52:52
Zitat von: Ralli am 03 Juni 2021, 08:06:03

attr DEVICE alias Mover

muss Mower

attr DEVICE model worx_landroid_mover

müsste m.E. model worx_landroid_mower heißen.
Das ist so eine Art Freudscher Verschreiber bei mir ;) Danke - habe es korrigiert
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Pusemukel am 03 Juni 2021, 14:11:23
Zitat von: frober am 03 Juni 2021, 08:39:56
Das deutet, wie schon öfter hier geschrieben, auf ein fehlerhaftes Zertifikat hin.

Hast du dich an die Anleitung gehalten stimmen die Rechte beim Zertifikat?

Ich denke nicht, ein => {qx(ls -lha /opt/fhem/aws.*)} liefert mir :
-rw------- 1 fhem dialout 1,4K Jun  2 17:10 /opt/fhem/aws.cer
-rw------- 1 fhem dialout 1,8K Jun  2 17:10 /opt/fhem/aws.key



Zitat von: Otto123 am 03 Juni 2021, 09:35:11
Hast Du auch <BOARDIDAUSDERAPP>/<MACADRESSEAUSDERAB> gegen Deine echten Werte ersetzt? Ohne die spitzen < Klammern >?

Ne , ohne spitze Klammern ,


Zitat von: kjmEjfu am 03 Juni 2021, 12:43:10
das Connect-Disconnect-Verhalten tritt sehr häufig auf, wenn man beim ersten Versuch etwas falsch gemacht hat und dadurch in kurzem Zeitraum etliche fehlerhafte Anmeldungen versucht wurden.
Dann macht der MQTT-Server aus Sicherheitsgründen zu und du musst ungefähr 24h warten. In der Zeit solltest du dich möglichst NICHT mehr versuchsweise anmelden, auch nicht per App.

Hmm vielleicht ist es das, ich mache mal einen Tag pause und lösche das Fhem Device zur Sicherheit noch mal komplett,  ich melde mich wenn es was neues gibt.

Noch zwei Anmerkungen:
Benötige ich die Uuid aus der App auch irgendwo, mich hat es gewundert das die "ungenutzt" zu sein scheint ?!

Bei meiner Variante der DeskApp.exe.config
ist ja eine anderen Zweig Aktiv , der Wert Hier unterscheidet sich zusätzlich:
Landroid:  <add key="CliSec"value="UKDRabKqJFNZYBAHW3GJDfgrDcZEQNYwkNHE8XSP"/>
Workx:  <add key="CliSec" value="nCH3A0WvMYn66vGorjSrnGZ2YtjQWDiCvjg7jNxK"/>


Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 03 Juni 2021, 14:37:22
Zitat von: Pusemukel am 03 Juni 2021, 14:11:23
Noch zwei Anmerkungen:
Benötige ich die Uuid aus der App auch irgendwo, mich hat es gewundert das die "ungenutzt" zu sein scheint ?!
Ist für mich nur eine Anmerkung :) wo ist die Zweite?

Da ich diese CliSec auch nicht brauche, die DeskApp aber schon - vermute ich: Mit Hilfe des CliSec und dem Cloudzugang wird das p12 Zertifikat erzeugt/heruntergeladen/signiert ?!
In der Anbindung über MQTT2_CLIENT ist ja außer dem Zertifikat keinerlei Autorisierung vorhanden.

Also Du solltest unbedingt nochmal prüfen, ob das Zertifikat, was Du jetzt verwendest hast, auch mit der richtigen Anmeldung der DeskApp entstanden ist!?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 08 Juni 2021, 12:23:24
Zitat von: kermitthefrog am 26 Mai 2021, 20:51:24
Mein MQTT_Worx springt sein 2-3 Tagen ständig von opened auf disconnected und zurück, im Sekundentakt.
Über die DeskApp kann ich mich auch nciht verbinden (nicht anmelden, sondern verbinden). Es wird der Fehler "Eine Ausnahme vom Typ "uPLibrary.Networking.M2Mqtt.Exceptions.MqttCommunicationsException" wurde ausgelöst" ausgeworfen.
Jemand ne Idee? Wo muss ich suchen? Mit der Landroid App selbst komme ich auf den Mäher...

Danke und Gruß...

Zitat von: kjmEjfu am 27 Mai 2021, 07:42:39
Setz mal für 24h auf disabled und versuche dich in dieser Zeit nicht neu zu verbinden. Das hilft meistens.

Moin Leute,

mein WR165E läuft mittlerweile, also er mäht fleißig den Rasen. :)

Gestern Abend habe ich mich dann mal an die Einbindung in FHEM gemacht:


Wenn ich mich nun in der DeskApp anmelde, werden mir nach Betätigung der "Anmelden" Schaltfläche dieselben Daten wie gestern ausgegeben. Jetzt ist mir gerade aufgefallen, dass es dort auch noch eine "Verbinden" Schaltfläche gibt. Die hatte ich gestern nicht betätigt.

Kann das der Auslöser des Problems sein? (Ich denke nicht.)

Wie dem auch sei..., wenn ich jetzt auf "Verbinden" drücke, erhalte ich von der DeskApp die folgende Meldung:

ZitatEine Ausnahme vom Typ "uPLibrary.Networking.M2Mqtt.Exceptions.MqttCommunicationException" wurde ausgelöst.

Ich gehe nun davon aus, dass mein Account auf dem Broker gesperrt wurde und ich jetzt 24h warten muss, bis ich weiter machen kann.

Im FHEM Log steht folgendes:

2021.06.07 23:42:20 3: Opening MQTT_Worx device a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
2021.06.07 23:42:20 3: MQTT_Worx device opened
2021.06.07 23:42:35 1: xxx-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.07 23:46:55 1: xxx-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.07 23:46:55 1: xxx-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.07 23:46:56 1: xxx-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.07 23:46:56 1: xxx-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.07 23:46:56 1: xxx-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)


Die reappeared/disconnected Meldungen tauchen innerhalb kürzester Zeit in großer Menge auf, bis ich den MQTT2_Client manuell auf disconnect setze.

Habt ihr noch irgendwelche Ratschläge für mich, bevor ich morgen oder übermorgen nochmal von vorn anfange?

Danke euch und Gruß Hoppel
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 08 Juni 2021, 12:43:35
Moin,

Eigentlich komisch, aber ich hatte das letztens auch. Ich habe etwas experimentiert und eine zweite Instanz eingerichtet.
Bei mir war es sogar so, dass sich die Readings gefüllt hatten.

Normal sollte das nicht so sein, aber wer weiß. Warte erstmal bis morgen, wenn Du ansonsten der Meinung bist, Du hast keine Fehler in der Definition.

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 08 Juni 2021, 14:42:19
Danke dir Otto. Ich melde mich wieder, wenn ich weiter getestet habe.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 09 Juni 2021, 16:01:05
ZitatDie reappeared/disconnected Meldungen tauchen innerhalb kürzester Zeit in großer Menge auf, bis ich den MQTT2_Client manuell auf disconnect setze.
Das mit ""kürzester Zeit in großer Menge" finde ich nicht ok, und ich wuerde es gerne fixen.
Koennt ihr mir helfen das zu reproduzieren?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 09 Juni 2021, 19:25:53
Hallo Rudi,

ich hatte sogar schonmal den Fall da hat disconnect keine Wirkung gezeigt, aber das ist aktuell nicht so, kann sein das war eine ältere MQTT2_CLIENT Version.

Ich versuche das mal ohne Mäher in eine Test zu packen, man kann sich eigentlich einfach so ein Konto anlegen. Ich mache Dir eine Anleitung :)
Mein Raspberry 3 schafft 6 Versuche pro Sekunde:
2021.06.03 20:41:47 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.03 20:41:48 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.03 20:41:48 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.03 20:41:48 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.03 20:41:48 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.03 20:41:48 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.03 20:41:48 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.03 20:41:49 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)

Grüße Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 10 Juni 2021, 09:24:35
Hallo Leute,

habe es gerade erneut probiert.

Erstmal mit der DeskApp angemeldet und verbunden. Das sieht schonmal gut aus. Mir wird alles angezeigt.

Anschließend habe ich dann entsprechend des Eingangspost alles nochmal von vorn gemacht. Das FHEM Device fängt sofort wieder an die Status zu wechseln, was ich dann sofort beendet habe, indem ich den MQTT2 Client auf "disconnect" gesetzt habe. Anschließend habe ich mich direkt nochmal mit der DeskApp verbunden. Das Funktioniert noch.

Gerätemodell: Worx Landroid WR165E
Hier ein list des MQTT2_Client:

Internals:
   CFGFN     
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
   DeviceName a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
   FUUID      60c1bb70-f33f-5dcf-f877-1d42337487f1bec8
   NAME       MQTT_Worx
   NR         1778
   SSL        1
   STATE      disconnected
   TYPE       MQTT2_CLIENT
   clientId   fhem-60c1bbab-f33f-5dcf-d603-0534524fe385
   connecting 2
   nextOpenDelay 5
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2021-06-10 09:13:58   state           disconnected
   sslargs:
     SSL_cert_file aws.cer
     SSL_key_file aws.key
     SSL_use_cert 1
     SSL_version TLSv12
Attributes:
   SSL        1
   autocreate simple
   clientId   fhem-60c1bbab-f33f-5dcf-d603-0534524fe385
   keepaliveTimeout 600
   mqttVersion 3.1.1
   msgAfterConnect PRM100/E868E7219054/commandIn {}
   sslargs    SSL_version:TLSv12 SSL_cert_file:aws.cer SSL_key_file:aws.key SSL_use_cert:1
   subscriptions PRM100/E868E7219054/commandOut


Das Ergebnis von "{qx(ls -lha /opt/fhem/aws.*)}" sieht wie folgt aus:

-rw------- 1 fhem dialout 1,4K Jun 10 09:10 /opt/fhem/aws.cer
-rw------- 1 fhem dialout 1,8K Jun 10 09:10 /opt/fhem/aws.key


Das sieht meiner Ansicht nach gut aus. Was kann ich nun tun?

EDIT: Achja, wenn ich nur die erste Zeile des defines ohne attr in FHEM konfiguriere, steht das Device auf "open". Wenn ich dann den Rest per RAW definition hinzufüge, geht es los mit den Statuswechseln. Könnte in den Attributen noch irgendwo ein Fehler liegen? Oder liegts an dem neuen Modell?

Danke euch und Gruß Hoppel
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 10 Juni 2021, 09:35:57
Nur ein Schuss ins Blaue:

Sollte im Attribut sslargs vielleicht eine Pfadangabe bei den Zertifikaten sein?

Also nicht

sslargs    SSL_version:TLSv12 SSL_cert_file:aws.cer SSL_key_file:aws.key SSL_use_cert:1


sondern

sslargs    SSL_version:TLSv12 SSL_cert_file:./aws.cer SSL_key_file:./aws.key SSL_use_cert:1


oder

sslargs    SSL_version:TLSv12 SSL_cert_file:/opt/fhem/aws.cer SSL_key_file:/opt/fhem/aws.key SSL_use_cert:1


So habe ich es jedenfalls drin stehen und bei mir klappt's.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 10 Juni 2021, 09:47:23
Zwischen den ersten beiden Varianten duerfte kein Unterschied geben, wenn meine Kernelprogrammierkenntnisse noch halbwegs valide sind. Auch die dritte Variante sollte keinen Unterschied machen, da "current working directory" fuer FHEM /opt/fhem ist. Es sei denn, die /opt Rechte wurden nach dem FHEM Start entzogen, aber das wird esoterisch.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 10 Juni 2021, 10:09:34
@Ralli mMn sind alle 3 Schreibweisen funktional identisch, es sei denn es stimmt etwas am allgemeinen Setup nicht.

@Rudi
ich habe gerade mal meinen CLIENT auf eine zweite Instanz umgezogen. Also den ersten MQTT_Worx disconnected Zertifikate kopiert und die Raw Def kopiert. Funktioniert auf Anhieb, allerdings fällt mir auf:
2021.06.10 09:58:24 3: Opening MQTT_Worx device a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
2021.06.10 09:58:24 3: MQTT_Worx device opened
2021.06.10 09:58:24 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.10 09:58:24 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.10 09:58:26 2: autocreate: define MQTT2_android_da8a27fb_15bf_4450_a4d6_036c0902b83b MQTT2_DEVICE android_da8a27fb_15bf_4450_a4d6_036c0902b83b MQTT_Worx
2021.06.10 09:58:26 2: autocreate: define FileLog_MQTT2_android_da8a27fb_15bf_4450_a4d6_036c0902b83b FileLog ./log/MQTT2_android_da8a27fb_15bf_4450_a4d6_036c0902b83b-%Y.log MQTT2_android_da8a27fb_15bf_4450_a4d6_036c0902b83b

Einmal kurzes "husten" passiert hierbei - mag nicht schlimm sein aber warum eigentlich? Ein zweites manuelles disconnect / open verläuft "glatt" mit eine Meldung
2021.06.10 10:06:54 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 10 Juni 2021, 10:17:39
Zitat von: hoppel118 am 10 Juni 2021, 09:24:35


EDIT: Achja, wenn ich nur die erste Zeile des defines ohne attr in FHEM konfiguriere, steht das Device auf "open". Wenn ich dann den Rest per RAW definition hinzufüge, geht es los mit den Statuswechseln. Könnte in den Attributen noch irgendwo ein Fehler liegen? Oder liegts an dem neuen Modell?

Danke euch und Gruß Hoppel

Bei mir funktioniert es ohne Pfadangabe.

Lösche Mal alle Attribute und lege diese manuell an, ohne Copy&paste.
Evtl. kopierte du, nicht sichtbar, Leerzeichen o.ä. mit rein.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 10 Juni 2021, 10:43:43
ZitatEinmal kurzes "husten" passiert hierbei - mag nicht schlimm sein aber warum eigentlich?
Kann es Dir leider ohne nachstellen / debuggen / etc nicht sagen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 10 Juni 2021, 10:47:43
Zitat von: hoppel118 am 10 Juni 2021, 09:24:35
EDIT: Achja, wenn ich nur die erste Zeile des defines ohne attr in FHEM konfiguriere, steht das Device auf "open". Wenn ich dann den Rest per RAW definition hinzufüge, geht es los mit den Statuswechseln. Könnte in den Attributen noch irgendwo ein Fehler liegen? Oder liegts an dem neuen Modell?
Naja mit der ersten Zeil passiert wahrscheinlich "noch gar nichts". "PRM100" ist auch mein Modell - also scheinbar ist da nicht soviel neu.

Ich habe jetzt festgestellt, ein Wechsel der (selbstgewählten/erzeugten) ID bewirkt sofort den hektischen Wechsel disconnected/reappeared.
Ein Wechsel auf die ID die die DeskApp verwendet funktioniert auch nicht.

@Hoppel ich denke deine heutige Neuanlage von "allem" war vielleicht sogar kontraproduktiv. Ich habe irgendwie den Eindruck, als ob der Cloudserver, erst mal skeptisch reagiert und am zweiten Tag akzeptiert?
Meine Versuche führen definitiv zur "Verwirrung"
Nach allen Versuchen in der zweiten FHEm Instanz hat er mir jetzt in meiner Hauptinstanz ein erneutes open (alle anderen geschlossen) mit einem 8 sekündigen hektischen Wechsel (2 Wechsel pro sekunde, also 4 Einträge) ein dauerhaftes open geliefert.  ???
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 10 Juni 2021, 11:02:37
Zitat von: rudolfkoenig am 10 Juni 2021, 10:43:43
Kann es Dir leider ohne nachstellen / debuggen / etc nicht sagen.
was kann ich tun? Ich habe gerade mal mit einem zweiten Account probiert, damit kann man per mqtt nichts machen, man braucht einen registrierten Mäher.
Also mir fällt kein Scenario ein, wie ich Dir eine Umgebung liefern kann. Die Anmeldung mit einer zweiten Instanz DeskApp hat mich jetzt erstmal wieder komplett rausgeworfen. Ich habe jetzt einen Tag pause  :-[

Edit: gesperrt wird offenbar der Account, die App geht auch nicht mehr, andere IP spielt auch keine Rolle.
Edit2: Interessanterweise empfängt die App aktuelle Daten wenn man ihn am Gerät startet. Aber jegliche Konfiguration oder Steuerung wird unterbunden.

Also die Ablehnung und deren zu schnelle Frequenz kann ich jetzt beliebig sniffen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 10 Juni 2021, 11:47:57
Einen Maeher kaufe ich jetzt dafuer nicht.

Wenn Du das Problem erzeugen kannst: bitte es mit "attr MQTT2_CLIENT verbose 5" protokollieren, die Daten hier anhaengen, oder mir schicken. Es reichen 2-3 disconnect Versuche, aber aus dem Abschnitt, wo es schnell hintereinander kommt.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 10 Juni 2021, 11:59:22
Naja viel passiert da nicht  ::) aber derzeit bin ich ja auch dauerhaft blockiert. Kann morgen einen zweiten Test machen.
2021.06.10 11:55:04 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/
2021.06.10 11:55:04 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 34.251.59.199
2021.06.10 11:55:05 5: MQTT_Worx: sending SUBSCRIBE (130)#(0)(145)(0)(30)PRM100/98D86331CB24/commandOut(0)
2021.06.10 11:55:05 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.10 11:55:05 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.10 11:55:05 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/
2021.06.10 11:55:05 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 34.251.59.199
2021.06.10 11:55:05 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-da8a27fb-15bf-4450-a4d6-036c0902b83b
2021.06.10 11:55:05 5: SW: 103800044d51545404020258002c616e64726f69642d64613861323766622d313562662d343435302d613464362d303336633039303262383362
2021.06.10 11:55:05 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.10 11:55:05 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.10 11:55:06 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/
2021.06.10 11:55:06 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 34.251.59.199
2021.06.10 11:55:06 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-da8a27fb-15bf-4450-a4d6-036c0902b83b
2021.06.10 11:55:06 5: SW: 103800044d51545404020258002c616e64726f69642d64613861323766622d313562662d343435302d613464362d303336633039303262383362
2021.06.10 11:55:06 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.10 11:55:06 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 10 Juni 2021, 12:04:21
Da ist die Reihenfolge falschrum, als ob FHEM versuchen wuerde zwei Verbindungen aufzubauen. Damit waere es nachvollziehbar, dass der Server die jeweils andere Verbindung schliesst.

Kannst Du bitte das Log nochmal erstellen, und dabei nur den "Anfang" anhaengen? D.h. entweder nach FHEM Start, oder wo die MQTT Instanz "gestartet" wird (was auch immer das bedeutet).
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 10 Juni 2021, 12:32:35
Zitat(was auch immer das bedeutet).
Naja das war der Anfang nach einem set MQTT_Worx connect aus dem Zustand eines manuellen set disconnect
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 10 Juni 2021, 12:43:00
Super, dass ihr das Problem grundsätzlich in den Griff kriegen wollt.

Ich habe das define erstmal noch nicht angefasst. Habe das Device nochmal auf "connect" gesetzt und vorher verbose 5 aktiviert.

2021.06.10 12:32:21 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.10 12:32:21 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.49.36.53
2021.06.10 12:32:21 5: MQTT_Worx: sending SUBSCRIBE (130)#(0)Y(0)(30)PRM100/E868E7219054/commandOut(0)
2021.06.10 12:32:21 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.10 12:32:21 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.10 12:32:21 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.10 12:32:21 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 63.32.190.96
2021.06.10 12:32:21 5: MQTT_Worx: sending CONNECT (16)5(0)(4)MQTT(4)(2)(2)X(0))fhem-60c1bbab-f33f-5dcf-d603-0534524fe385
2021.06.10 12:32:21 5: SW: 103500044d5154540402025800296668656d2d36306331626261622d663333662d356463662d643630332d303533343532346665333835
2021.06.10 12:32:21 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.10 12:32:21 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)


@Rudi

Ist das das was du brauchst? (Ich hatte FHEM jetzt nicht neugestartet.)

Ich bin jetzt auf jeden Fall auch wieder gesperrt. @frober's Tipp, die Attribute einmal komplett zu löschen und nicht per RAW definition, sondern über das WebUI manuell zu setzen, könnte ich dann als nächstes probieren, in 24h. ;)

Gruß Hoppel
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 10 Juni 2021, 12:43:58
Zitat von: Otto123 am 10 Juni 2021, 12:32:35
Naja das war der Anfang nach einem set MQTT_Worx connect aus dem Zustand eines manuellen set disconnect

Jo, so habe ich auch gerade das Log in meinem vorangegangenen Post erzeugt.

Gruß Hoppel
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 10 Juni 2021, 13:10:29
Mit einem neuer MQTT2_CLIENT (gegenüber meinem ersten Log)
Ich habe das Gerät mit attr  disable 1 in der Raw Def neu angelegt -> das bewirkt nichts! Es läuft sofort los:
2021.06.10 13:00:38 3: Opening MQTT_Worx device a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
2021.06.10 13:00:38 3: MQTT_Worx device opened
2021.06.10 13:00:39 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.10 13:00:39 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-da8a27fb-15bf-4450-a4d6-036c0902b83b
2021.06.10 13:00:39 5: SW: 103800044d51545404020258002c616e64726f69642d64613861323766622d313562662d343435302d613464362d303336633039303262383362
2021.06.10 13:00:39 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.10 13:00:39 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.10 13:00:39 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.10 13:00:39 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.31.56.205
2021.06.10 13:00:39 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-da8a27fb-15bf-4450-a4d6-036c0902b83b
2021.06.10 13:00:39 5: SW: 103800044d51545404020258002c616e64726f69642d64613861323766622d313562662d343435302d613464362d303336633039303262383362
2021.06.10 13:00:39 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.10 13:00:39 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.10 13:00:39 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.10 13:00:39 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 34.247.193.208
2021.06.10 13:00:39 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-da8a27fb-15bf-4450-a4d6-036c0902b83b
2021.06.10 13:00:39 5: SW: 103800044d51545404020258002c616e64726f69642d64613861323766622d313562662d343435302d613464362d303336633039303262383362
2021.06.10 13:00:39 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.10 13:00:39 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.10 13:00:39 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.10 13:00:39 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 54.154.245.64
2021.06.10 13:00:40 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-da8a27fb-15bf-4450-a4d6-036c0902b83b

Auch bei einem Neustart von FHEM bewirkt das gesetzte und gesicherte (save) Attribute disable 1 nichts!
Die ersten beiden Zeilen nach der Neuanlage Opening und opened fehlen aber nach dem Neustart im Log, die gibt es nur beim define?!
2021.06.10 13:01:16 0: Featurelevel: 6
2021.06.10 13:01:16 0: Server started with 57 defined entities (fhem.pl:24589/2021-06-05 perl:5.028001 os:linux user:fhem pid:16492)
2021.06.10 13:01:16 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.10 13:01:16 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.215.104.241
2021.06.10 13:01:16 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-da8a27fb-15bf-4450-a4d6-036c0902b83b
2021.06.10 13:01:16 5: SW: 103800044d51545404020258002c616e64726f69642d64613861323766622d313562662d343435302d613464362d303336633039303262383362
2021.06.10 13:01:16 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.10 13:01:17 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.10 13:01:17 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.10 13:01:18 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.50.112.165
2021.06.10 13:01:18 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-da8a27fb-15bf-4450-a4d6-036c0902b83b
2021.06.10 13:01:18 5: SW: 103800044d51545404020258002c616e64726f69642d64613861323766622d313562662d343435302d613464362d303336633039303262383362
2021.06.10 13:01:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.10 13:01:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.10 13:01:18 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking

erst zweimal "hämmern" auf set disconnect beendet den Spuk, das erste sehe ich allerdings nicht im Log:
2021.06.10 13:02:10 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.210.125.175
2021.06.10 13:02:10 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-da8a27fb-15bf-4450-a4d6-036c0902b83b
2021.06.10 13:02:10 5: SW: 103800044d51545404020258002c616e64726f69642d64613861323766622d313562662d343435302d613464362d303336633039303262383362
2021.06.10 13:02:10 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.10 13:02:10 5: MQTT_Worx: discarding DISCONNECT (224)(0)

Die Maschine ist ein Pi3+ (der andere war ein Pi3) - meine Internet Anbindung ist ziemlich lahm ...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 10 Juni 2021, 14:23:14
Zitat von: Otto123 am 10 Juni 2021, 13:10:29
erst zweimal "hämmern" auf set disconnect beendet den Spuk, das erste sehe ich allerdings nicht im Log:

Jo, das kann ich so bestätigen. Ich dachte auch: "Häh..., warum hört der jetzt nicht auf.". Das zweite "set disconnect" hat dann geklappt.

Gruß Hoppel
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: mthome am 10 Juni 2021, 18:57:49
Hallo zusammen,

ich habe seit gestern auch einen neuen Worx m700plus. Leider hat das Einrichten bei mir auch nicht funktioniert. Hatte es gestern versucht und dann heute erneut...leider ohne Erfolg  :'(.

Das Log sieht aus wie bei Hoppel.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 10 Juni 2021, 19:53:18
Ich starrte jetzt ne Weile den Code an, habe diverse Experimente mit temporaeren Debug-Ausgaben gemacht, konnte aber euer Problem nicht nachstellen.
Meine Theorie mit den zwei parallel laufenden Connections ist vmtl. falsch, die Meldungsreihenfolge (reappeared ... waiting to reappear) ist zwar verwirrend, aber normal. Was nicht normal ist, dass zwischen disconnect und naechsten connect keine 5 Sekunden an Pause eingelegt werden, in meinen Experimenten war das stets der Fall.

Ich lass das jetzt erstmal liegen, bis mir jemand was zum Nachstellen gibt, oder erklaert, wieso das Problem auftritt.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: mthome am 11 Juni 2021, 07:57:10
Was mir noch aufgefallen ist: Im MQTT2 Client hat die user-id 41 Zeichen. In der DeskApp nur 36.

Wofür wird denn die userid verwendet?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 11 Juni 2021, 09:21:01
Das ist eine gute Frage... Da sie im MQTT_CLIENT als Client ID eingetragen wird, wird sie also offenbar zur Identifikation des MQTT Clients verwendet.
Die Deskapp verwendet eine Standard UUID mit 32 Zeichen und 4 Bindestrichen. (dazu gab es letztens angegregt durch meine Gedanken in diesem Projekt eine hitzige Diskussion  ::) )
Der Aufbau einer ClientID bei MQTT folgt mWn keinem strengen Standard, sie sollte am MQTT Server eindeutig sein. Viele Server sperren ein mehrfaches Login mit gleicher ID.
Insofern ist der Ansatz der DeskApp richtig: einfach eine UUID erzeugen.
Mein Ansatz war der Gleiche und im ursprünglichen Artikel zu diesem Projekt wurde der Vorsatz android verwendet, scheinbar macht die App von landroid das so. Da letztens die Frage kam ob ich einfach das l vergessen habe, dachte ich ich setze fhem davor und nehme die FUUID des MQTT2_DEVICES.

Es ist keine UserID, es ist eine ClientID!

Ergänzung:
ich bin immer noch gesperrt. Der Cloudserver sperrt dabei offenbar nicht den Account an sich, auch der Zugang zu den (MQTT ?) Daten wird nicht gesperrt - die App auf dem Smartphone gestattet An- und Abmeldung und aktualisiert die Daten während der Mäher unterwegs ist. Die Veränderung der Konfiguration und die Steuerung ist gesperrt.
Die Deskapp und FHEM können sich aber nicht anmelden. Scheinbar habe ich diesmla mehr verbockt und der Wechsel über Mitternacht hat nicht geholfen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: mthome am 11 Juni 2021, 10:02:00
Danke für die Erläuterungen!

Bei mir war es das erste Mal ziemlich genau nach 24 Stunden. Also morgens ging Nix aber dann am Nachmittag war Login wieder möglich.

ZitatEs ist keine UserID, es ist eine ClientID!
Sorry ich meinte natürlich ClientID  ;D.

Ich bin leider auch noch gesperrt  ::)...wohl noch bis heute Abend da ich gestern nochmals probiert hatte
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 11 Juni 2021, 10:19:10
@Otto Deine Ergänzung kann ich bestätigen. Ich bekomme Statismeldungen zum Mähvorgang, einstellen kann ich aber nichts mehr.

Ich handhabe es so, dass ich die App 24h nicht anfasse. Das hat beim letzten Mal geklappt.

Mir stellt sich gerade die Frage, ob in der Speerphase bereits der Versuch etwas per App zu konfigurieren, schon zu einem erneuten Start der Speerphase um 24h führt. Keine Ahnung... Deshalb lasse ich dann einfach die Finger von der App, der DeskApp und FHEM.

Gruß Hoppel
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 11 Juni 2021, 13:51:54
Hallo Otto,

ich habe mal eine Frage an dich. Wenn ich es richtig verstanden habe, hast du deinen Robomäher in einer zweiten FHEM Instanz angelegt und kannst dort den Fehler nachstellen, in deiner Hauptinstanz hast du diesen Fehler aber nicht.

Habe ich das richtig verstanden? Wenn ja, frage ich mich, wo denn da nun der genaue Unterschied ist? Wenn nein, was habe ich falsch verstanden? ;)

Gruß Hoppel
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 11 Juni 2021, 14:22:01
Wüsst ich auch gern. :)
Ich meine: Wenn ich die Raw DEF komplett umziehe und nicht zweimal zur gleichen Zeit verwende - gibt es kein Problem.
Ich hatte schon mein Android App, die DeskApp, die "Axel Mohnen Landroid NodeJs Geschichte" und FHEM MQTT parallel in Betrieb - kein Problem. Aber ist schon ein Weilchen her.
Ich meine, ich hatte auch schon zwei FHEM Instanzen mit unterschiedlichen ClientIDs in Betrieb. Aber auch schon ein Weilchen her.
In jüngster Vergangenheit hatte ich regelmäßig die FHEM Instanz, meine Android App und die DeskApp parallel in Betrieb - kein Problem.

Also meine ich: Ich kann doch einfach eine neue FHEM Instanz (mit neuer CID) testen, das ist mir aber aktuell nicht gelungen. Also ob derzeit der Zugang am Cloud Server limitiert ist.
Oder ob man immer einen Tag warten muss, wenn man mal was neu gemacht hat?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 11 Juni 2021, 15:55:32
Alles sehr mysteriös. ;)

Zitat von: Otto123 am 11 Juni 2021, 14:22:01
Oder ob man immer einen Tag warten muss, wenn man mal was neu gemacht hat?

Ich hatte mein MQTT2_Device gestern nach den gescheiterten Tests manuell auf "disabled" gesetzt.

Wie gehe ich beim nächsten Versuch am besten vor?


Danke und Gruß Hoppel
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 11 Juni 2021, 16:15:39
Zitat von: hoppel118 am 11 Juni 2021, 15:55:32
  • Alle attr des MQTT2_Device löschen und manuell über das FHEM WebUI eingeben, um sicherzugehen, dass nicht fälschlicherweise irgendwelche Leer-/Sonderzeichen per RAW definition mit kopiert wurden. Wobei..., hätte mir die RAW definition dann nicht beim "execute commands" eine Fehler- bzw. Infomeldung ausgeben müssen?

Danke und Gruß Hoppel

Fhem überprüft Syntaxfehler, worunter Leerzeichen eher nicht fallen. Bein /n /t  etc. (Steuerungszeichen) bin ich mir nicht sicher.

Wenn du die Definition nicht in einen Windows-Texteditor zwischengespeichert hast, sollte es hier kein Problem geben.

Falls du überhaupt Windows benutzt, ich benutze z.B. Notepad++. Das zeigt alle Zeichen an...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 11 Juni 2021, 16:36:36
Nö, Windows schon länger nicht mehr. Früher auch notepad++.

1. Terminalfenster an meinem Mac geöffnet
2. neue Datei mit nano auf meinem Server geöffnet
3. Inhalte aus dem Eingangspost kopiert/eingefügt (Jetzt sollte eigentlich alles weg sein, was da nicht hingehört)
4. Broker, ID und MAC-Adresse angepasst
5. define des MQTT2 Devices aus meiner Datei kopiert und über das FHEM WebUI eingefügt
6. alle attr aus meiner Datei kopiert und per RAW definition eingefügt

Fertig!

Ok, dann versuche ich das MQTT2_Device nachher einfach nochmal zu connecten. Evtl. bin ich dann wieder 24h gesperrt. Schauen wir mal. Ich melde mich wieder. ;)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 11 Juni 2021, 17:02:41
ZitatIch hatte mein MQTT2_Device gestern nach den gescheiterten Tests manuell auf "disabled" gesetzt.
Wenn das ein MQTT2_CLIENT ist: disabled verhindert, dass Nachrichten gesendet, oder in FHEM verteilt werden, nicht aber ein Verbindungsaufbau. Fuer den Server schaut das nach einem stummen, aber normalen Client aus.
Wenn das ein MQTT2_DEVICE ist, dann hat disabled ungefaehr die gleiche Wirkung, nur auf diese Instanz begrenzt.

Ich gehe davon aus, dass Ihr eine andere Erwartung habt.
Ein Attribut, was verhindert, dass MQTT2_CLIENT eine Verbindung aufbaut, gibt es nicht, nur den set Befehl disconnect.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 11 Juni 2021, 17:33:38
Sorry, wenn ich hier jetzt etwas durcheinander geworfen habe. Ich rede von folgendem Device:

Internals:
   CFGFN     
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
   DeviceName a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
   FUUID      60c1bb70-f33f-5dcf-f877-1d42337487f1bec8
   NAME       MQTT_Worx
   NR         1778
   SSL        1
   STATE      disconnected
   TYPE       MQTT2_CLIENT
   WBCallback
   clientId   fhem-60c1bbab-f33f-5dcf-d603-0534524fe385
   connecting 2
   nextOpenDelay 5
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2021-06-10 12:32:53   state           disconnected
   sslargs:
     SSL_cert_file aws.cer
     SSL_key_file aws.key
     SSL_use_cert 1
     SSL_version TLSv12
Attributes:
   SSL        1
   autocreate simple
   clientId   fhem-60c1bbab-f33f-5dcf-d603-0534524fe385
   keepaliveTimeout 600
   mqttVersion 3.1.1
   msgAfterConnect PRM100/E868E7219054/commandIn {}
   sslargs    SSL_version:TLSv12 SSL_cert_file:aws.cer SSL_key_file:aws.key SSL_use_cert:1
   subscriptions PRM100/E868E7219054/commandOut
   verbose    5


TYPE       MQTT2_CLIENT

Wie dem auch sei, gerade mal über die App probiert einen Rasenkantenschnitt auszulösen. Funktioniert wieder... Gestern um 12:32:53 Uhr habe ich diesen MQTT2_CLIENT auf disabled gesetzt.

Nun mit "set MQTT_Worx connect" versucht die Verbindung aufzubauen. Möp. Nach einer knappen Minute habe ich das Unterfangen abgebrochen. Klappt nicht.

Das hier hat das verbose 5 ausgegeben, beim Login und eine Sekunde danach:

2021.06.11 17:20:17 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.11 17:20:17 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.215.85.94
2021.06.11 17:20:17 5: MQTT_Worx: sending SUBSCRIBE (130)#(0)X(0)(30)PRM100/E868E7219054/commandOut(0)
2021.06.11 17:20:17 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.11 17:20:17 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.11 17:20:17 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.11 17:20:17 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 54.194.42.62
2021.06.11 17:20:17 5: MQTT_Worx: sending CONNECT (16)5(0)(4)MQTT(4)(2)(2)X(0))fhem-60c1bbab-f33f-5dcf-d603-0534524fe385
2021.06.11 17:20:17 5: SW: 103500044d5154540402025800296668656d2d36306331626261622d663333662d356463662d643630332d303533343532346665333835
2021.06.11 17:20:17 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.11 17:20:17 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.11 17:20:17 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.11 17:20:17 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.215.85.94
2021.06.11 17:20:17 5: MQTT_Worx: sending CONNECT (16)5(0)(4)MQTT(4)(2)(2)X(0))fhem-60c1bbab-f33f-5dcf-d603-0534524fe385
2021.06.11 17:20:17 5: SW: 103500044d5154540402025800296668656d2d36306331626261622d663333662d356463662d643630332d303533343532346665333835
2021.06.11 17:20:17 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.11 17:20:17 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.11 17:20:17 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.11 17:20:17 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.209.165.176
2021.06.11 17:20:17 5: MQTT_Worx: sending CONNECT (16)5(0)(4)MQTT(4)(2)(2)X(0))fhem-60c1bbab-f33f-5dcf-d603-0534524fe385
2021.06.11 17:20:17 5: SW: 103500044d5154540402025800296668656d2d36306331626261622d663333662d356463662d643630332d303533343532346665333835
2021.06.11 17:20:17 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.11 17:20:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.11 17:20:18 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.11 17:20:18 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.48.201.133
2021.06.11 17:20:18 5: MQTT_Worx: sending CONNECT (16)5(0)(4)MQTT(4)(2)(2)X(0))fhem-60c1bbab-f33f-5dcf-d603-0534524fe385
2021.06.11 17:20:18 5: SW: 103500044d5154540402025800296668656d2d36306331626261622d663333662d356463662d643630332d303533343532346665333835
2021.06.11 17:20:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.11 17:20:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.11 17:20:18 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.11 17:20:18 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.48.197.31
2021.06.11 17:20:18 5: MQTT_Worx: sending CONNECT (16)5(0)(4)MQTT(4)(2)(2)X(0))fhem-60c1bbab-f33f-5dcf-d603-0534524fe385
2021.06.11 17:20:18 5: SW: 103500044d5154540402025800296668656d2d36306331626261622d663333662d356463662d643630332d303533343532346665333835
2021.06.11 17:20:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.11 17:20:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.11 17:20:18 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.11 17:20:18 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.211.26.4
2021.06.11 17:20:18 5: MQTT_Worx: sending CONNECT (16)5(0)(4)MQTT(4)(2)(2)X(0))fhem-60c1bbab-f33f-5dcf-d603-0534524fe385
2021.06.11 17:20:18 5: SW: 103500044d5154540402025800296668656d2d36306331626261622d663333662d356463662d643630332d303533343532346665333835
2021.06.11 17:20:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.11 17:20:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.11 17:20:18 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.11 17:20:18 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.210.57.84
2021.06.11 17:20:18 5: MQTT_Worx: sending CONNECT (16)5(0)(4)MQTT(4)(2)(2)X(0))fhem-60c1bbab-f33f-5dcf-d603-0534524fe385
2021.06.11 17:20:18 5: SW: 103500044d5154540402025800296668656d2d36306331626261622d663333662d356463662d643630332d303533343532346665333835
2021.06.11 17:20:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.11 17:20:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.11 17:20:18 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.11 17:20:18 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.210.79.101
2021.06.11 17:20:18 5: MQTT_Worx: sending CONNECT (16)5(0)(4)MQTT(4)(2)(2)X(0))fhem-60c1bbab-f33f-5dcf-d603-0534524fe385
2021.06.11 17:20:18 5: SW: 103500044d5154540402025800296668656d2d36306331626261622d663333662d356463662d643630332d303533343532346665333835
2021.06.11 17:20:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.11 17:20:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.11 17:20:18 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.11 17:20:18 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 54.194.42.62
2021.06.11 17:20:18 5: MQTT_Worx: sending CONNECT (16)5(0)(4)MQTT(4)(2)(2)X(0))fhem-60c1bbab-f33f-5dcf-d603-0534524fe385
2021.06.11 17:20:18 5: SW: 103500044d5154540402025800296668656d2d36306331626261622d663333662d356463662d643630332d303533343532346665333835
2021.06.11 17:20:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.11 17:20:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)


Ich schätze da steht nichts neues brauchbares drin, oder?

Hm..., das ist ja bescheiden. Was könnte man noch tun?

Ich habe die AWS.p12 Datei mit der DeskApp Version V0.0.26 erstellt. Die App verbindet sich auch ordnungsgemäß mit dem Robomäher. Macht es evtl. Sinn das Ganze nochmal mit V0.0.24 zu probieren? Otto du schreibst im Eingangspost, dass es bei dir mit V0.0.24 erfolgreich geklappt hat. Gefühlt macht es aber keinen Sinn, da du ja auch die Probleme in der zweiten Instanz hast. Welche DeskApp Version verwendest du denn eigentlich momentan?

Im nächsten Schritt werde ich dann Befehl für Befehl (define und attr) manuell über das FHEM WebUI eingeben. Dazu werde ich vrsl. aber erst Sonntag kommen, da wir das Wochenende über unterwegs sind.

Gruß Hoppel
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 11 Juni 2021, 20:56:30
Zitat von: rudolfkoenig am 11 Juni 2021, 17:02:41
Ich gehe davon aus, dass Ihr eine andere Erwartung habt.
Ein Attribut, was verhindert, dass MQTT2_CLIENT eine Verbindung aufbaut, gibt es nicht, nur den set Befehl disconnect.
Das war meine Beobachtung und mein Eindruck von meinem wenig fundiertem Blick in Deinen Code  8) - ok, dann habe ich ich es richtig verstanden.
Also ich fänd es besser, wenn disable dann wirklich nix - aber das ist ein nur mein Wunsch.

Mein Eindruck vom Code war aber auch an der Stelle mit der Zeitverzögerung so: die greift nicht immer. Aber da bin ich zu schlecht. Hilft Dir der Gedanke/die Beobachtung, dass der Cloud Server eine "Anmeldung" zulässt aber ein Zugriff auf MQTT geblockt wird? Kann das zu der schnellen Abfolge an Versuchen führen?
So sieht jetzt ein erfolgreicher Login / connect aus:
2021.06.11 20:55:27 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/
2021.06.11 20:55:27 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.210.191.157
2021.06.11 20:55:28 5: MQTT_Worx: sending SUBSCRIBE (130)#(0)(146)(0)(30)PRM100/98D86331CB24/commandOut(0)
2021.06.11 20:55:28 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.11 20:55:28 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.11 20:55:28 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/
2021.06.11 20:55:28 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.210.191.157
2021.06.11 20:55:28 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-da8a27fb-15bf-4450-a4d6-036c0902b83b
2021.06.11 20:55:28 5: SW: 103800044d51545404020258002c616e64726f69642d64613861323766622d313562662d343435302d613464362d303336633039303262383362
2021.06.11 20:55:28 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.11 20:55:28 5: MQTT_Worx: received CONNACK (0)(0)
2021.06.11 20:55:28 5: MQTT_Worx: sending SUBSCRIBE (130)#(0)(146)(0)(30)PRM100/98D86331CB24/commandOut(0)
2021.06.11 20:55:28 5: MQTT_Worx: received SUBACK (0)(146)(0)
2021.06.11 20:55:28 5: MQTT_Worx: sending PUBLISH 0!(0)(29)PRM100/98D86331CB24/commandIn{}
2021.06.11 20:55:28 5: SW: 3021001d50524d3130302f3938443836333331434232342f636f6d6d616e64496e7b7d


@Hoppel Ich vergleiche mal die Zertifikate ich habe Alte und Neue :)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: mthome am 12 Juni 2021, 11:09:42
Hallo zusammen,

ich habe mal die cert und key mit dem Tool v24 bzw. v26 verglichen. Kein Unterschied.

Aber ich eine andere interessante Entdeckung gemacht: Wenn ich das .cert und .key File aus fhem erzeugen lasse ist die Größe beim .key kleiner als wenn ich es in der Shell erzeuge  :o:
ls -l /opt/fhem/aws.*
-rw------- 1 fhem dialout 1430 Jun 12 11:03 /opt/fhem/aws.cer
-rw------- 1 fhem dialout 1828 Jun 12 11:04 /opt/fhem/aws.key

mthome@hermine:~$ ls -l aws.*
-rw------- 1 mthome mthome 1430 Jun 12 11:01 aws.cer
-rw------- 1 mthome mthome 3258 Jun 12 11:01 aws.key


Leider ist mein Account noch gesperrt....aber wenn er wieder unlocked ist probiere ich es mal mit dem in der Shell erzeugten key
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 12 Juni 2021, 11:30:10
So sehen die Größen bei mir mit einem funktionierenden Setup aus:


-rw------- 1 fhem dialout 1430 Apr 18 08:36 aws.cer
-rw------- 1 fhem dialout 1832 Apr 18 08:36 aws.key


Mit der V0.0.26 erzeugt.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 12 Juni 2021, 12:25:45
ZitatAlso ich fänd es besser, wenn disable dann wirklich nix - aber das ist ein nur mein Wunsch.
Habs eingebaut, das gilt aber nur fuer disable. Das Verhalten bei disabledForIntervals bleibt weiterhin das Alte.

Ansonsten habe ich weitere Experimente gemacht:
- SSL-mosquitto und MQTT2_CLIENT ohne SSL => retry in 5s
- SSL-mosquitto und MQTT2_CLIENT mit SSL => funktioniert
- SSL+require_certificate-mosquitto und MQTT2_CLIENT mit SSL,ohne client cert => connection refused, not authorized => kein retry
- SSL+require_certificate-mosquitto und MQTT2_CLIENT mit SSL,falsches client cert => connection refused, not authorized => kein retry
- SSL+require_certificate-mosquitto und MQTT2_CLIENT mit SSL,richtiges client cert => funktioniert

=> Keine Idee, wo die Endlosschleife herkommen soll.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: mthome am 12 Juni 2021, 17:21:36
Zitat von: mthome am 12 Juni 2021, 11:09:42
Leider ist mein Account noch gesperrt....aber wenn er wieder unlocked ist probiere ich es mal mit dem in der Shell erzeugten key

So Account war wieder frei.....leider war ich auch mit dem anderen key file nicht erfolgreich  :'(. Und wieder habe ich meinen Zugang erfolgreich gesperrt  >:(. Ich glaube ich gebe auf.

Logauszug immer noch gleich:
2021.06.12 16:59:55 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.214.252.38
2021.06.12 16:59:55 5: MQTT_Worx: sending CONNECT (16)5(0)(4)MQTT(4)(2)(2)X(0))fhem-60c22a26-f33f-6d2a-1397-e751eb3cd23a
2021.06.12 16:59:55 5: SW: 103500044d5154540402025800296668656d2d36306332326132362d663333662d366432612d313339372d653735316562336364323361
2021.06.12 16:59:55 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.12 16:59:55 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.12 16:59:55 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
2021.06.12 16:59:55 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.214.252.38
2021.06.12 16:59:55 5: MQTT_Worx: sending CONNECT (16)5(0)(4)MQTT(4)(2)(2)X(0))fhem-60c22a26-f33f-6d2a-1397-e751eb3cd23a
2021.06.12 16:59:55 5: SW: 103500044d5154540402025800296668656d2d36306332326132362d663333662d366432612d313339372d653735316562336364323361
2021.06.12 16:59:55 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.12 16:59:55 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.12 16:59:55 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 13 Juni 2021, 10:47:21
Moin,

irgendwie ist das komisch, ich habe das Gefühl, dass es vor einem Jahr dieses Verhalten nicht gab.
Ich habe gestern eine neue Verbindung mit der DeskApp erzeugt, also config und Zertifikat gelöscht, neue CID und neues Zertifikat erzeugt.
Das Zertifkat ist identisch mit dem vor einem Jahr erzeugtem, da ist also nichts "neues" passiert.
Die DeskApp meldet sich also mit neuer CID und dem Zertifikat an. Ich melde die DeskApp wieder ab und übertrage das Zertifikat und die CID auf den MQTT2_CLIENT. Der verursacht Sekunden später wieder eine Sperre des Accounts.
Ich versuche nachher mal den MQTT2_CLIENT vom letzten Jahr...

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 13 Juni 2021, 14:04:27
Hallo. Ich bin nun auch Besitzer eines M500 plus. Habe bisher die Variante von Axel implementiert. Funktioniert soweit super. Erscheint mir aber etwas ,,oversized". Deshalb würde ich gerne Ottos Variante einbinden. Was sich für mich aus diesem Thread aber nicht erschlossen hat: kann ich über Ottos Variante auch ein zB

,,set Landroid edgeCut"

absetzen?

Oder gezielt Readings mit ,,ReadingsVal" auslesen?

Wie sieht es mit den Status- und Fehler-Codes aus?
Existieren dafür Readings?

Mein Ziel:
1) würde ich gerne FHEM-Boardmittel ohne viel Zusatz-Software verwenden.
2) fehlt mir bei Axels Variante der Party-Modus.

Gruß.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 13 Juni 2021, 14:08:05
Zitat von: remo am 13 Juni 2021, 14:04:27
,,set Landroid edgeCut"

Ja.

Zitat
Oder gezielt Readings mit ,,ReadingsVal" auslesen?

Ja.

Zitat
Wie sieht es mit den Status- und Fehler-Codes aus?
Existieren dafür Readings?

Ja.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 13 Juni 2021, 14:18:30
Gut. Danke für die schnelle Antwort.

Noch etwas:

1) Wie sieht es mit dem Zurücksetzen der Klingen-Zeit aus?
2) werden Fehler und Status als Code oder als Text ausgegeben?
3) gibt es ein Reading für die FW Version?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 13 Juni 2021, 14:25:40
Richte es doch einfach mal (parallel) ein!
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: mthome am 13 Juni 2021, 17:16:55
HalloOtte,
Zitat von: Otto123 am 13 Juni 2021, 10:47:21
Ich versuche nachher mal den MQTT2_CLIENT vom letzten Jahr...

Bin schon sehr interessiert, was dabei rauskommt. Wie kann man denn eine ältere Modulversion installieren?

Hast Du sonst noch eine Idee, was wir versuchen können? Dann könnten Hoppel & ich ja parallel noch andere Möglichkeit testen (dann sparen wir uns einen Tag).

Danke für Deine Unterstütung!
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 13 Juni 2021, 18:33:34
Zitat von: remo am 13 Juni 2021, 14:18:30
Gut. Danke für die schnelle Antwort.

Noch etwas:

1) Wie sieht es mit dem Zurücksetzen der Klingen-Zeit aus?
2) werden Fehler und Status als Code oder als Text ausgegeben?
3) gibt es ein Reading für die FW Version?
1: Das war irgendwie ein Verständigungsproblem, das hatten wir Anfang der Saison, da muss ich schauen. Ich meine: der Mäher lässt das nicht zu, das andere Modul behandelt das quasi einfach intern. siehe Beitrag hier im Thread vom 21 April 2021, 14:27:07
2. sowohl als auch
3. ja

Allerdings gibt es aktuell offenbar ein Einrichtungsproblem, wo man sich für einen Tag aussperrt. Das untersuche ich gerade. Also mit Tests eventuell noch warten.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 14 Juni 2021, 09:47:38
Moin,

neuer Tag neues (Un) Glück - nach drei Versuchen wieder draußen. Auch mit der Version vor einem Jahr funktioniert es nicht. (00_MQTT2_CLIENT.pm 21339 2020-03-02 19:10:38Z rudolfkoenig)
Ich habe gleich mit verbose 5 angelegt und man sieht aber, das zwischen dem ersten(zweiten) Versuch und dem nächsten wirklich die 5 sec Pause sind. Alle weiteren Versuchen laufen wieder mit maximaler Geschwindigkeit.
2021.06.14 08:59:51 3: Opening MQTT_Worx device a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
2021.06.14 08:59:51 5: MQTT_Worx: sending CONNECT (16)(23)(0)(6)MQIsdp(3)(2)(0)(30)(0)(9)MQTT_Worx
2021.06.14 08:59:51 5: SW: 101700064d51497364700302001e00094d5154545f576f7278
2021.06.14 08:59:51 3: MQTT_Worx device opened
2021.06.14 08:59:51 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2021.06.14 08:59:51 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.14 08:59:51 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/
2021.06.14 08:59:51 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 54.72.159.87
2021.06.14 08:59:52 4: HttpUtils: https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/: Can't connect(2) to https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883:  SSL connect attempt failed because of handshake problems
2021.06.14 08:59:52 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2021.06.14 08:59:52 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2021.06.14 08:59:57 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/
2021.06.14 08:59:57 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.19.121.161
2021.06.14 08:59:57 5: MQTT_Worx: sending CONNECT (16)5(0)(4)MQTT(4)(2)(2)X(0))fhem-60c6fe68-f33f-27f7-7b12-68fcbe396420
2021.06.14 08:59:57 5: SW: 103500044d5154540402025800296668656d2d36306336666536382d663333662d323766372d376231322d363866636265333936343230
2021.06.14 08:59:57 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2021.06.14 08:59:57 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.06.14 08:59:57 5: MQTT_Worx: discarding DISCONNECT (224)(0)

Beim ersten Versuch ist scheinbar die Einrichtung vom Gerät noch nicht fertig und er weiß gar nicht was er mit ssl machen soll?
@Rudi Sollte man nicht nach dem define auch erstmal 5 sec warten? Damit alles "durch" ist?

Mal im Web suchen, ob ich Hinweise finde, dass in dieser Saison was geändert wurde. Aber vor ein paar Wochen haben doch hier user ihre Mäher doch noch erfolgreich in Betrieb genommen?

Schönen Tag
Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 14 Juni 2021, 11:16:22
Zitat@Rudi Sollte man nicht nach dem define auch erstmal 5 sec warten? Damit alles "durch" ist?
Beim ersten mal muesste man warten, allerding reichen 5 sec nicht aus, weil man SSL/Benutzer/Passwort/Protokoll/etc konfigurieren muss, man muesste eher auf einem zu bauenden Trigger "jetzt bin ich fertig, mach mal" warten.
Ich fahre bisher die Strategie, Attribut sofort anwenden, und wenn es nicht funktioniert, nicht in Panik geraten. Offensichtlich ist die Strategie noch nicht perfekt, aber bevor ich was aendere, will ich verstehen, was genau schieflaeuft.

Beim FHEM-Start wird gewartet bis die komplette Konfiguration drin ist, d.h. spaetestens nach dem Neustart sollte das Problem geloest sein.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: mthome am 14 Juni 2021, 11:48:35
Zitat von: rudolfkoenig am 14 Juni 2021, 11:16:22
Beim FHEM-Start wird gewartet bis die komplette Konfiguration drin ist, d.h. spaetestens nach dem Neustart sollte das Problem geloest sein.

@Rudi, heißt das, wenn ich jetzt einen restart durchführe, (Account ist aktuell nicht gelocked aber der MQTT_Client ist auf disconnect gesetzt), der Login funktionieren sollte?
Falls ja, würde ich fhem einfach mal rebooten.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 14 Juni 2021, 12:14:16
Zitat@Rudi, heißt das, wenn ich jetzt einen restart durchführe, (Account ist aktuell nicht gelocked aber der MQTT_Client ist auf disconnect gesetzt), der Login funktionieren sollte?
Das habe ich nicht gesagt, eher im Gegenteil: mit unvollstaendigen Parameter habe ich nicht geschafft eine Endlosschleife zu produzieren (siehe meinen vorletzten Beitrag), deswegen tippe ich z.Zt. auf ein Problem an anderer Stelle. Noch ein Argument: wenn ein Neustart das Problem fixen wuerde, dann haetten wir hier davon bestimmt schon gehoert.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 15 Juni 2021, 12:41:33
Zumindest das generelle Problem habe ich eventuell gefunden:
Die ClientID ist wirklich nicht beliebig! Es muss offenbar doch android-<36 stellig uuid> sein!
Die DeskApp trägt zwar in der Maske nur eine UUID ein, aber meldet sich dann beim Server mit dem präfix. Irgendwo habe ich im Netz noch gefunden, das auch ein zweiter Anmeldungsversuch mit der gleichen ClientID die Sperrung verursacht!

@Hoppel & mthome Sorry das ich den ersten Beitrag dahingehend vorige Woche falsch abgeändert habe. Es ist korrigiert und ich habe noch zwei Befehle zur groben Prüfung des Zertifikates und des private Keys eingetragen. Versucht es also bitte noch einmal neu.

Jetzt bleibt immer noch das Problem der HighSpeed Endlosschleife. ::) Da such ich weiter ...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: mthome am 15 Juni 2021, 13:12:27
Hallo @Otto,

kaum hat man die richtige Client ID...schon ist opened  ;D.

MQTT Device wurde auch gleich erzeugt. Läuft  :D

Vielen Dank für Deine Hilfe.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 15 Juni 2021, 13:29:50
Super Otto!

Ich kann es erst morgen prüfen. Habe vorgestern meine FHEM Instanz neu gestartet. Als ich dann gestern Abend mit dem Worx Device noch ein paar Sachen probieren wollte, habe ich festgestellt, dass mein Account gesperrt ist, weil der MQTT2_CLIENT in der Dauerschleife hing, demnach also über 24h...

Ich hoffe, dass ich jetzt nicht länger als 24h gesperrt bin. Na wie dem auch sei, anscheinend sorgt ein FHEM Neustart dafür, dass der Client versucht sich zu connecten, auch wenn er vorher auf disconnect gesetzt wurde.

Gruß Hoppel
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 15 Juni 2021, 13:46:59
Die Sperre scheint jedes mal stur für 24h zu sein. Ich habe das jetzt sooft die letzten Tage durch :)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: mthome am 15 Juni 2021, 13:50:31
Hallo zusammen,

ich schon wieder - nur noch eine Frage: Im MQTT2 Device kann ich die PartyTime einstellen. In der App kann ich Party nur ein oder ausschalten.

Ist  der Wert Partytime dann die Zeit in Minuten? Und heißt das, dass fhem den Partymodus dann nach dieser Zeit automatisch beendet?

Ich würde damit gerne den Robo vom Mähen abhalten, wenn die Wettervorhersage Regen ansagt.

Vielen Dank!
Michael
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 15 Juni 2021, 13:54:21
Zitatanscheinend sorgt ein FHEM Neustart dafür, dass der Client versucht sich zu connecten, auch wenn er vorher auf disconnect gesetzt wurde.
Das ist korrekt. Mit der aktuellen Version wird zusaetzlich das disabled Attribut auch beim Connect  beachtet (und nicht nur bei publish und Daten verteilen).
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 15 Juni 2021, 14:42:20
Hallo Michael,

ja die MQTT Anbindung kann in der Tat ein paar Dinge mehr/besser als die App :)
1. PartyTime - in der Tat in Minuten, ich weiß allerdings nicht was die Obergrenze ist. FHEM beendet nicht die Pause, das macht der Mäher/die Cloud selbst.
2. ich dachte noch borderCut sofort, aber das kann die App jetzt. Ich bilde mir ein, voriges Jahr nur mit Zeitplan.

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 15 Juni 2021, 23:45:58
Jo, läuft bei mir auch. Super! Danke Otto, dass du das wieder zum Laufen bekommen hast und danke Rudi für die disconnect-Anpassung! :)

Viele Grüße Hoppel
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 16 Juni 2021, 00:07:38
Bevor ich jetzt loslege: Hat hier jemand ein homebridgeMapping (Alexa/Homekit) für den Robomäher gebaut?

Gruß Hoppel
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: EinEinfach am 16 Juni 2021, 08:22:10
ZitatBevor ich jetzt loslege: Hat hier jemand ein homebridgeMapping (Alexa/Homekit) für den Robomäher gebaut?

clear
On=mowerStatusTxt,values=Home:0;/.*/:1,cmds=0:stopMower;1:startMower;false:stopMower;true:startMower
BatteryLevel=batteryPercent
ChargingState=batteryCharging
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: TomLee am 16 Juni 2021, 08:44:56
BatteryLevel=batteryPercent
ChargingState=batteryCharging


Hab jetzt nicht nach einem List in dem Thread gesucht und keinen Mähroboter, ich würde die beiden Readings gleich im MQTT2_Device mit jsonMap so benennen und mir das mapping in homebridgeMapping sparen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Beta-User am 16 Juni 2021, 09:25:42
Zitat von: TomLee am 16 Juni 2021, 08:44:56
BatteryLevel=batteryPercent
ChargingState=batteryCharging


Hab jetzt nicht nach einem List in dem Thread gesucht und keinen Mähroboter, ich würde die beiden Readings gleich im MQTT2_Device mit jsonMap so benennen und mir das mapping in homebridgeMapping sparen.
Na ja, zumindest "batteryPercent" ist die "offiziell empfohlene Benennung"; imo sollte man die nicht ändern, zumal das "Problem" eventuell erst durch das "clear" entsteht...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: TomLee am 16 Juni 2021, 10:07:55
Ja, sry, Denkfehler.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hoppel118 am 16 Juni 2021, 23:59:00
Danke euch! Damit kann ich erstmal arbeiten. ;)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 17 Juni 2021, 12:27:39
Jetzt muss ich auch Mal Fragen stellen ;D

Muss die Kapazitätsanzeige erst kalibriert werden ( Akku voll-leer-voll....)?
Mein M700 (2019/20, aktuelle FW) springt nach 75 Min. Mähzeit gerade Mal auf 96%, wenn ich das umrechne kann er ~20h am Stück mähen. :o

Sieht man irgendwie, in welcher Zone er gerade mäht/mähen sollte? Außer über die 10%-Stufen.

MowerActive: was beutet hier yes und no?
Meiner mäht bei No, ich meine bei Inbetriebnahme stand er auf yes.

Danke und Gruß
Bernd
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 17 Juni 2021, 14:36:06
Zitat von: Otto123 am 13 Juni 2021, 18:33:34
1: Das war irgendwie ein Verständigungsproblem, das hatten wir Anfang der Saison, da muss ich schauen. Ich meine: der Mäher lässt das nicht zu, das andere Modul behandelt das quasi einfach intern. siehe Beitrag hier im Thread vom 21 April 2021, 14:27:07

Gut. Soweit verständlich.
Mir persönlich wäre das ziemlich wichtig.
Mit deinem Template kann ich (fast) komplett auf die Landroid App verzichten.
Mir fehlt bloß eine Möglichkeit den bladeTimeCounter zu erfassen und zurückzusetzen.

Gruß
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 18 Juni 2021, 00:23:13
@Frober Die Werte kommen direkt über mqtt von der Cloud/vom Mäher da muss man nichts kalibrieren. Das sollten alles auch die Werte sein, die in der App stehen. Wenn es da Differenzen gibt kannst Du das mal posten, damit alle drüber nachdenken :)
Alle Werte aus dem MQTT Json String werden dargestellt, manche umbenannt und die "unbekannten" so gelassen. Also wenn Dir da was auffällt was nach Zone aussieht!?
MoverActive kennt drei Zustände 
0 => "No",
1 => "Yes",
2 => "Party"
Wenn yes ist er miener Meinung nach "da" und nicht aus.

@remo Meine Theorie zum bladeTimeCounter war ja, das verwaltet nicht der Mäher sondern nur die App. Ergo müsste man ein userReadings mit monotonic macht, was man bei Klingenwechsel zurücksetzt. ungetestet, versuch es mal so:
bladeTimeCounter:totalBladeTime.* monotonic {ReadingsVal($name,'totalBladeTime','')}
und ne setList:
resetBladeTime:noArgs {fhem("setreading $NAME bladeTimeCounter 0");return ''}
Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 18 Juni 2021, 06:42:07
Danke für die Antwort Otto.

Wird getestet.
Jetzt ist erstmal Kinder bespaßen angesagt - werde es am WE testen.

Vielleicht hast du dazu auch noch eine Idee:
https://forum.fhem.de/index.php/topic,121679.0.html
?

Schönen Freitag euch allen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 18 Juni 2021, 07:30:54
Zitat von: Otto123 am 18 Juni 2021, 00:23:13
@Frober Die Werte kommen direkt über mqtt von der Cloud/vom Mäher da muss man nichts kalibrieren. Das sollten alles auch die Werte sein, die in der App stehen. Wenn es da Differenzen gibt kannst Du das mal posten, damit alle drüber nachdenken :)
Alle Werte aus dem MQTT Json String werden dargestellt, manche umbenannt und die "unbekannten" so gelassen. Also wenn Dir da was auffällt was nach Zone aussieht!?
MoverActive kennt drei Zustände 
0 => "No",
1 => "Yes",
2 => "Party"
Wenn yes ist er miener Meinung nach "da" und nicht aus.

Hallo Otto,

bzgl. Kapazität war das nicht auf MQTT bezogen, die App zeigt das gleiche.
Ich dachte eher, dass der Mäher erst lernen muss, wie viel Kapazität der Akku wirklich hat. Es gibt ja 2 und 4Ah, wobei der M700 den größeren hat. Bei meiner Raspi-USV ist das z.B. so.

Bzgl. yes/no hmm, meiner mäht und zeigt no...WLan hat er...das muss ich Mal beobachten...

"Unbekannte" Werte aus MQTT sind ~90% bekannt. Es stellt sich die Frage, ob es sinnvoll ist alle zu "übersetzen"!?

Grüße Bernd

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 18 Juni 2021, 08:02:11
Zitat von: Otto123 am 18 Juni 2021, 00:23:13
@remo Meine Theorie zum bladeTimeCounter war ja, das verwaltet nicht der Mäher sondern nur die App.

So muss es sein.

Ein set Landroid resetBladeTimeCounter über Axels Variante scheint einen internen Counter zu resetten (siehe Bilder).
In der Landroid-App (iOS) bleibt die "Klingen-Arbeitszeit" hingegen wie sie ist.

Das wäre dann der Beweis und Anreiz (für mich) eine solche Funktion für Ottos Variante zu realisieren...

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 18 Juni 2021, 23:12:45
Hallo Bernd,

ich habe das mit dem Akku ehrlich gesagt bei meinem Mäher nicht beobachtet.

Das bei Dir MoverActive immer auf no steht ist komisch. Ändert sich das denn bei Party?

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 20 Juni 2021, 20:42:52
Zitat von: Otto123 am 18 Juni 2021, 23:12:45
Hallo Bernd,

ich habe das mit dem Akku ehrlich gesagt bei meinem Mäher nicht beobachtet.

Das bei Dir MoverActive immer auf no steht ist komisch. Ändert sich das denn bei Party?

Gruß Otto

Hallo Otto,

das mit dem Akku ist mir nur zufällig aufgefallen. Mein Rasen ist frisch angelegt, sobald dieser voll belastbar ist, werde ich den Akku mal leerfahren, Mal schauen wie es dann weiter geht....

MoverActive: Mein Templates war noch etwas älter, ich habe es nun aktualisiert. Party funktioniert, nach dem Beenden springt er auf yes  :)....ich beobachte es.

Grüße Bernd
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 22 Juni 2021, 21:20:04
Bzgl. BladeTimeCounter

Ich habe mir das über das HourCounter Modul eingebaut.
Da wird die Laufzeit des Mähers gezählt.
daraus das reading gebildet. Fertig.

Bei mir ist das die mtl. Mähzeit. Diese wird per doif dann immer am 1. eines Monats zurück gesetzt.
Ansonsten auch per Befehl möglich.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 27 Juni 2021, 19:17:18
Zitat von: frober am 20 Juni 2021, 20:42:52

MoverActive: Mein Templates war noch etwas älter, ich habe es nun aktualisiert. Party funktioniert, nach dem Beenden springt er auf yes  :)....ich beobachte es.

Grüße Bernd

MoverActive steht immer noch auf yes :)

Nur verstehe ich nicht, warum das mit TemplateVersion 20210426 nicht funktioniert hat. Dies bezügl. hat sich doch nichts geändert oder übersehe ich etwas?

Grüße Bernd
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 28 Juni 2021, 20:40:16
@Otto:

ich habe heute den NodeJS-Server nach deiner Anleitung (Blog) deinstalliert.
Das lief alles fehlerfrei durch.

Bis dahin hatte ich beides parallel laufen.

Ich möchte nämlich gerne ausschließlich deine Variante verwenden (nach ein paar PMs mit Axel hat er mir bestätigt, dass die Entwicklung seiner Lösung eingestellt sei).

Für ein paar Minuten lief für meinen Landroid alles super über FHEM.
Dann, plötzlich wurden keine Readings mehr aktualisiert, obwohl mein Landroid aktiv war.

Und plötzlich funktionierte die iOS-App auch nicht mehr: "FEHLER - Connection Timeout".
Akkustand und Status ("Ausgangsposition", "Mähvorgang") wurden aktualisiert, aber das Setzen des Party-Modus (über die App) verursachte eben diese Fehlermeldung.
Von der Steuerung über FHEM ganz zu schweigen - die funktioniert nämlich auch nicht mehr.

Meine Fragen:
du erwähntest, dass du ab und zu (während der Testphase deines Templates) für 24h "ausgesperrt" wurdest?!
Wie hat sich das bei dir bemerkbar gemacht bzw. was waren die Ursachen dafür?
Könnte mich dasselbe Schicksal ereilt haben? Falls ja, wie konnte das passieren?
Zu viele Anfragen an den Server? Und warum trat das erst nach der Deinstallation des NodeJS-Servers auf?

Während meiner Tests hatte ich auch ab und zu eine IP-Sperre.
Nach Neustart meines Routers (oder Zugriff über mobile Daten) lief die App dann wieder.

Vielleicht hast du einen Tipp?

Liebe Grüße


Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 28 Juni 2021, 21:46:48
Hi remo,

Deine Beschreibung klingt exakt nach dem was bei einer Sperre passiert.

Warum das bei der Deinstallation der nodejs Lösung passiert kann ich mir nicht erklären.
Bei mir trat das am Anfang bei der Installation der Lösung von Axel auf, weil ich den Start des nodejs mehrfach hatte.

Die letzte Sperre hatte ich auf Grund meiner fehlerhaften ID bei der Anmeldung (ein paar Beiträge zurück)

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 28 Juni 2021, 21:54:56
Danke für deine Antwort.
Also 24h abwarten und hoffen, dass es dann erledigt ist?
Oder kann man noch irgendwie weitere Informationen erhalten?
Logs usw ...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 28 Juni 2021, 22:07:56
so ist es warten ...
Ich würde den MQTT_Worx deaktivieren, der schreibt das Log voll...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 28 Juni 2021, 22:18:10
Hab ich vorausschauender Weise getan.
Danke, ich melde mich.

Schönen Abend.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 29 Juni 2021, 14:22:39
Die Sperre wurde soeben aufgehoben.
Die iOS-App läuft (lief) wieder.
Ich habe in FHEM wieder alles eingestellt wie vorher.
Account ist nun wieder gesperrt und die App funktioniert wieder nicht.
Für 5 Minuten lief die App. FHEM hat nicht einmal Readings aktualisiert.

Was kann das sein?

Ich habe die in FHEM eingestellten attr-Werte mit denen aus der Windows Software verglichen.
Passt aber alles ...



EDIT:

Der MQTT2_Client in FHEM springt immer von opened auf disconnected - immer hin und her. 

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 29 Juni 2021, 15:11:22
Hallo remo,

aber es lief doch schon mal? Ich meine das fehlerhafte Verhalten tritt in zwei Fällen auf:
Die Zertifikate stimmen nicht - ich habe im ersten Beitrag noch etwas ergänzt kannst Du das bitte nochmal prüfen.
Die clientId wird doppelt verwendet oder hat das falsche Format, sie muss so aussehen android-5edf7268-f33f-520c-6e65-44b2afc7008e

Aber gerade stelle ich fest, ich bin auch rausgeflogen - gestern 2021.06.28 11:55:13 - ohne etwas getan zu haben?  >:(
Mist - jetzt bin ich erstmal ratlos
Doch ich habe was getan: ich habe gestern eine Testinstanz neu gestartet, in der gab es eine temporär ruhig gestellte, gleiche definition  :o

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 29 Juni 2021, 15:18:10
Es ist nichts anders, außer, dass der NodeJS-Server (Debian) weg ist.
Zertifikat habe ich inzwischen neu geladen und die Schlüssel exportiert.
Es sind aber die selben.

Das ist interessant.

Mal eine andere Frage:
Spielt die Reihenfolge der attr des MQTT-Clients eine Rolle?
Denn mein FHEM hat diese irgendwie ,,umsortiert" - die Reihenfolge stimmt jetzt nicht mehr mit der aus deinem define (erster Post) überein...

EDIT:
ID sieht so aus wie sie aussehen muss.
Syntax stimmt. Meine ID ist natürlich eine andere.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 29 Juni 2021, 15:26:28
ZitatEs ist nichts anders, außer, dass der NodeJS-Server (Debian) weg ist.
Das macht mich irgendwie stutzig. Damit sollte die Fehlerquelle ja kleiner und nicht größer werden.

Mir scheint es so, als hast Du nicht alles deaktiviert und ein Prozess rennt noch?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 29 Juni 2021, 15:29:34
Das ist ausgeschlossen. Hatte gestern Abend noch Luft und hab meinen Deb neu aufgesetzt. Nix drauf. Nur FHEM.
Was ist mit der Reihenfolge der attr ?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 29 Juni 2021, 15:34:43
Die Reihenfolge brauchst Du nach der Anlage mMn nicht beachten - also ich mach das nie. Man gibt die Zeilen ein und FHEM sortiert die irgendwie zum Gerät in der cfg. Schau ich nie hin :)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 29 Juni 2021, 15:43:58
Gut. Ok. Also wieder abwarten  :-X
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 29 Juni 2021, 19:21:11
Kann mir jemand weiterhelfen, ich wollte mir die aktive Mähzone in ein Reading schreiben.

Irgendwie stehe ich auf dem Schlauch und finde meinen Fehler nicht.

Als Erweiterung des userreadings, getrennt mit einem Komma ans Ende angehängt:
mowerActiveZone:dat_lz.* {my $evt = ReadingsVal($name,"dat_lz","0"); my $evt1 = 'cfg_mzv_'.$evt; ReadingsVal($name,$evt1,"0")}

Danke und Grüße
Bernd
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 29 Juni 2021, 21:11:17
Wie ist das mit der uuid generell zu verstehen?
Ist das eine Session ID oder die eineindeutige ID für mein Gerät?
Denn die DeskApp zeigt nicht immer die selbe ID an...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 29 Juni 2021, 21:46:14
@ Bernd Ich habe es nicht ganz verstanden, aber bei mir steht in dat_lz eine 0 und die cfg_mzv_ laufen von 1-10 - das kann so nicht funktionieren. Eventuell mit $evt + 1 ?

@remo Die clientId ist eine eindeutige ID für die Anmeldung am mqtt Cloud Server - bei mir hat die DeskApp beim ersten Start eine festgelegt und die bleibt. Allerdings denke ich, sie verwendet diese nicht so wie sie zeigt! Die mehrfache Anmeldung mit gleicher ID führt zur Sperre.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 29 Juni 2021, 22:22:12
Zitat von: Otto123 am 29 Juni 2021, 21:46:14
@ Bernd Ich habe es nicht ganz verstanden, aber bei mir steht in dat_lz eine 0 und die cfg_mzv_ laufen von 1-10 - das kann so nicht funktionieren. Eventuell mit $evt + 1 ?

Hallo Otto,

da hast du Recht, habe ich übersehen, allerdings habe ich aktuell eine 9. Sollte also funktionieren, allerdings mit dem falschen Ergebnis.
Edit: muss morgen schauen, ob er auf 10 oder 0 springt.

Getestet habe ich bisher nur mit trigger und setreading.

Zur Erklärung, falls nicht bekannt:
cfg_mzv_1 (-10) ist die gesamte Mähzeit (100%) in 10% Schritten. Das Value 0-3 entspricht der Zone 1-4.
D.h. bei 30% in Zone 2 steht bei 3 dieser Readings eine 1. Die anderen sind 0 für Zone 1.
dat_lz gibt an welche 10% der Gesamtzeit gerade oder beim nächsten Mähvorgang gemäht werden.
D.h. bei mir ist dat_lz aktuell 9, beim nächsten Start wird der Teil 81-90% der Gesamtmähzeit gemäht in der Zone die unter cfg_mzv_9 steht.

Sofern er nicht wieder aus der Zone flüchtet  ;D ...muss noch etwas nachbessern.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 29 Juni 2021, 22:31:02
ach so und ich glaube der trigger muss so aussehen mowerActiveZone:dat_lz:.*
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 29 Juni 2021, 22:41:35
Zitat von: Otto123 am 29 Juni 2021, 22:31:02
ach so und ich glaube der trigger muss so aussehen mowerActiveZone:dat_lz:.*

Laut Eventmanager ohne Doppelpunkt, ich kann es aber trotzdem Mal probieren.
Diesbezgl. hatte ich mit trigger schon meinen Spaß, der generiert die Events IMMER ohne. Auch wenn das Device diese mit generiert...

Ich werde das morgen nochmal angehen, danke.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 29 Juni 2021, 23:04:05
ja sorry ich liege falsch. geht auch ohne :
Ich hatte noch im Kopf da wurde was geändert, aber "heute" ist der trigger einfach ein regExp, also es würde funktionieren:
mowerActiveZone:dat.*
mowerActiveZone:dat_lz.*
mowerActiveZone:dat_lz:.*

Der letzte Ausdruck ist der präziseste, der Event dazu sieht so aus mowerActiveZone dat_lz: 2
Man beachte dabei: Hinter dem Device steht kein Doppelpunkt hinter dem Reading schon! Der zweite Doppelpunkt ist also kein Trenner sondern Bestandteil des regExp.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 30 Juni 2021, 10:02:13
Zitat von: frober am 29 Juni 2021, 22:41:35
Ich werde das morgen nochmal angehen, danke.
Die Frage ist noch, was wird bei deinem Versuch heute anders sein als gestern?
Aus meiner Erfahrung kann man die Sperre verhindern wenn man den MQTT_Worx manuell disconnected/disabled hat, connect macht, beobachtet und falls der state wechselt dann sofort zweimal ein disconnect absetzt!
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 30 Juni 2021, 20:15:34
Zitat von: Otto123 am 30 Juni 2021, 10:02:13
Die Frage ist noch, was wird bei deinem Versuch heute anders sein als gestern?
Aus meiner Erfahrung kann man die Sperre verhindern wenn man den MQTT_Worx manuell disconnected/disabled hat, connect macht, beobachtet und falls der state wechselt dann sofort zweimal ein disconnect absetzt!

Da liegst du wieder verkehrt  ;)
Ich habe keine Verbindungsprobleme, bei mir geht es nur ums userreading...und da teste ich heute nochmal.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 30 Juni 2021, 20:30:28
Jetzt bin ich platt, hmm. :o

Das userreading funktioniert, so wie ich es gestern hatte. Nach dem Mähen heute wurde es angelegt, bei Änderungen von dat_lz.

Dieses steht jetzt auf 0, d.h. die letzten 10% werden als 0 und nicht als 10 angezeigt.
Das muss ich beobachten, nicht dass alles um eins versetzt ist.

Jetzt stellt sich die Frage warum es beim testen mit trigger und setreading nicht funktioniert hat.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 30 Juni 2021, 20:59:47
Zitat von: frober am 30 Juni 2021, 20:15:34
Da liegst du wieder verkehrt  ;)
Ich habe keine Verbindungsprobleme, bei mir geht es nur ums userreading...und da teste ich heute nochmal.
Ja die Frage ging an remo - sorry :)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 30 Juni 2021, 21:38:31
Zitat von: Otto123 am 30 Juni 2021, 20:59:47
Ja die Frage ging an remo - sorry :)

SUCCESS!

Habe vorhin nochmal den Debian frisch gemacht,
mir nochmal Zeile für Zeile des MQTT_CLIENT angesehen (keine Fehler gefunden).

Das mit dem schnellen DISCONNECT hatte ich mir auch schon als Plan zurecht gelegt, falls es wieder hin und her springt.

Aber diesmal sofort OPENED und dabei blieb es auch (seit ca. 2h).

Keine Ahnung woran es lag. Vielleicht doch etwas mit der ID ...

Jedenfalls passt es jetzt. Vorerst.

Dankeschön erstmal  :)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 30 Juni 2021, 21:46:43
@Otto schon ok  :)

Zitat von: frober am 30 Juni 2021, 20:30:28
Jetzt stellt sich die Frage warum es beim testen mit trigger und setreading nicht funktioniert hat.

Das Verhalten ist seltsam, ich habe nun doch den : eingefügt, da mit setreading ein : vorhanden ist.
Das Testen mit setreading funktioniert nur, wenn ich die Reihenfolge einhalte. D.h. dat_lz muss ich immer von 1-10 (0) durchsetzen, eine Zufallszahl setzen erzeugt kein userreading. ::)

Da ich die Reihenfolge durch habe und die Zonen dabei verglichen habe. dat_lz 0 bedeutet 100%, leider bekomme ich hier das userreading nicht hin, 1-9 funktioniert nur die 0 (10) will nicht.

mowerActiveZone:dat_lz:.* {my $evt = ReadingsVal($name,"dat_lz",0); if ($evt == 0) {$evt = 10} else {$evt = $evt}; my $evt1 = 'cfg_mzv_'.$evt; ReadingsVal($name,$evt1,0)}

Das "else {$evt = $evt}" habe ich eingefügt, weil ich nicht sicher bin, ob ein if false das userreading stört.

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 30 Juni 2021, 22:22:22
versteh ich nicht. Mit (beliebigen Werten)
setreading Mower cfg_mzv_10 99;setreading Mower dat_lz 0
und dem userReadings in der DEF ergänzt
mowerActiveZone:dat_lz:.* {
  my $evt = ReadingsNum($name,"dat_lz",0);
  if ($evt == 0) {$evt = 10};
  my $evt1 = 'cfg_mzv_'.$evt; ReadingsNum($name,$evt1,0)
  },
funktioniert das. Ich habe ReadingsNum genommen, das sollte aber egal sein.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 01 Juli 2021, 05:54:56
Zitat von: Otto123 am 30 Juni 2021, 22:22:22
versteh ich nicht. Mit (beliebigen Werten)
setreading Mower cfg_mzv_10 99;setreading Mower dat_lz 0
und dem userReadings in der DEF ergänzt
mowerActiveZone:dat_lz:.* {
  my $evt = ReadingsNum($name,"dat_lz",0);
  if ($evt == 0) {$evt = 10};
  my $evt1 = 'cfg_mzv_'.$evt; ReadingsNum($name,$evt1,0)
  },
funktioniert das. Ich habe ReadingsNum genommen, das sollte aber egal sein.

Du nimmst das Alias als Name? Wusste nicht, dass das auch geht.
Ich habe den Devicename benutzt. Sollte auch egal sein.

Ich starte mal Fhem neu, vielleicht klemmt irgendwo etwas...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 01 Juli 2021, 09:04:41
ich habe rename gemacht :) aber alias geht mit devspec auch. So arbeite ich bei meinem sonos2mqtt Geräten durchgängig. Allerdings muss der alias nicht eindeutig sein, aber das hat man ja selbst im Griff ;)
setreading alias=Mower dat_lz 0
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hanswerner1 am 02 Juli 2021, 08:47:01
Hallo,

ich habe das Problem, das seit einen MQTT Client update die Readings vom Worx nicht mehr aktualisiert werden. Beim ersten connect werden die Readings aktualisiert und dann nicht mehr.

Mit der alten MQTT Client Version von 2021-04-28 funktioniert das update der Reading.

Hier noch das List vom Worx Client:


Internals:
   BUF       
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        a1***********************.amazonaws.com:8883
   DeviceName a1**********************1.amazonaws.com:8883
   FD         102
   FUUID      *******************************
   NAME       MQTT_Worx
   NR         1047
   PARTIAL   
   SSL        1
   STATE      opened
   TYPE       MQTT2_CLIENT
   WBCallback
   clientId   android-****************************

   lastMsgTime 1625208212.0397
   nextOpenDelay 5
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2021-07-02 08:22:56   state           opened
   sslargs:
     SSL_cert_file aws.cer
     SSL_key_file aws.key
     SSL_use_cert 1
     SSL_version TLSv12
Attributes:
   SSL        1
   autocreate simple
   clientId   android-**********************************
   icon       scene_robo_lawnmower
   keepaliveTimeout 600
   mqttVersion 3.1.1
   msgAfterConnect PRM100/*************/commandIn {}
   room       90_System,MQTT2_DEVICE
   sslargs    SSL_version:TLSv12 SSL_cert_file:aws.cer SSL_key_file:aws.key SSL_use_cert:1
   subscriptions PRM100/**************/commandOut
   username   *********************


VG HW1
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 02 Juli 2021, 09:47:37
ZitatMit der alten MQTT Client Version von 2021-04-28 funktioniert das update der Reading.
Ich habe gerade die Unterschiede angeschaut: diese sollten nur beim gesetzten disabled Attribut, oder beim geaenderten state Reading eine Rolle spielen. Ich sehe kein disabled Attribut, und ich habe jetzt mehrere Experimente mit komischen state Werten durchgefuehrt, und sehe keine Probleme. Ich stehe vor einem Raetsel.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 02 Juli 2021, 10:22:41
Moin,

ich habe das gerade meine prod. Instanz aktualisiert und habe jetzt 3 MQTT Aktualisierungen abgewartet. Beim mir funktioniert das mit der Version
00_MQTT2_CLIENT.pm 24617 2021-06-12 10:04:13Z
scheinbar wie vorher.

@hanswerner1 Was ich in Deiner Definition unnütz finde: username   *********************
Die Authorisierung funktioniert mMn nur mit dem Zertifikat.

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hanswerner1 am 02 Juli 2021, 12:47:46
Nachdem ich jetzt auch mal den rasberry geupdatet und neu gebootet habe werden jetzt auch die readings mit der aktuellen Version geupdatet.
Irgendwas scheint sich da bei mir verhakt zu haben.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hanswerner1 am 02 Juli 2021, 13:10:48
Zitat von: Otto123 am 02 Juli 2021, 10:22:41
@hanswerner1 Was ich in Deiner Definition unnütz finde: username   *********************
Die Authorisierung funktioniert mMn nur mit dem Zertifikat.

ok, habs rausgenommen
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 04 Juli 2021, 18:30:39
Zitat von: Otto123 am 30 Juni 2021, 22:22:22
versteh ich nicht. Mit (beliebigen Werten)
setreading Mower cfg_mzv_10 99;setreading Mower dat_lz 0
und dem userReadings in der DEF ergänzt
mowerActiveZone:dat_lz:.* {
  my $evt = ReadingsNum($name,"dat_lz",0);
  if ($evt == 0) {$evt = 10};
  my $evt1 = 'cfg_mzv_'.$evt; ReadingsNum($name,$evt1,0)
  },
funktioniert das. Ich habe ReadingsNum genommen, das sollte aber egal sein.


Hallo Otto,

danke für deine Unterstützung, ich habe mich mal wieder selbst blamiert... :o
Wie das so ist, ich habe an das "event-on-change-reading" nicht gedacht und zufällig immer das setreading so ausgeführt, dass es keine Änderung gab. >:( :( :D
Auf jedem Fall funktioniert es nun...

Falls es für Andere von Nutzen/Interesse ist, kannst du das gerne ins Template aufnehmen.

Grüße Bernd
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Teamdrachen am 13 Juli 2021, 18:11:34
Ich bekomme leider die Connect/Disconnect Schleife.

2021.07.13 17:26:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2021.07.13 17:26:18 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)

- Hatte ein funktionierendes Device und baue gerade einen neuen Pi auf.
- dabei den Fehler gemacht die selbe UUID zu verwenden.
- habe MQTT_Worx gelöscht, mir über das Desktool eine neue ID verschafft und anschließend MQTT_Worx neu gemacht.
Desktool verbindet sich, Desktool sauber beendet.
Zertifikat neu auf den Raspi, Device nach Anleitung angelegt... bäm

Zertifikate etc. passt alles... nur springt er eben ständig auf disconnect.
Jetzt bin ich erst mal für 24h gesperrt.


defmod MQTT_Worx MQTT2_CLIENT a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
attr MQTT_Worx SSL 1
attr MQTT_Worx alias MQTT_Worx
attr MQTT_Worx autocreate simple {my $uuid=substr(genUUID(),0,36);;fhem("attr MQTT_Worx clientId android-$uuid")}
attr MQTT_Worx clientId android-ididididididididididididididididi
attr MQTT_Worx disable 1
attr MQTT_Worx keepaliveTimeout 600
attr MQTT_Worx mqttVersion 3.1.1
attr MQTT_Worx msgAfterConnect DB510/ffffffffffff/commandIn {}
attr MQTT_Worx sslargs SSL_version:TLSv12 SSL_cert_file:aws.cer SSL_key_file:aws.key SSL_use_cert:1
attr MQTT_Worx subscriptions DB510/Ffffffffffff/commandOut

setstate MQTT_Worx disconnected

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 13 Juli 2021, 21:07:05
ZitatDevice nach Anleitung angelegt
Welche ? ;) den damit setzt Du die uid aber auch in kurzem Abstand hintereinander neu  :-\ bzw. weiß nicht was die erste Zeile soll? Ev. Copy and Paste Fehler, aber entweder setzt Du die ID oder lässt Eine erzeugen.
attr MQTT_Worx autocreate simple {my $uuid=substr(genUUID(),0,36);;fhem("attr MQTT_Worx clientId android-$uuid")}
attr MQTT_Worx clientId android-ididididididididididididididididi

Zitat- dabei den Fehler gemacht die selbe UUID zu verwenden.
eigentlich kein Fehler, nur darf man es nicht parallel machen. ;)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Teamdrachen am 14 Juli 2021, 08:32:11
Zitat von: Otto123 am 13 Juli 2021, 21:07:05
Welche ? ;)

Die Anleitung von Seite 1.
die doppelte Vergabe der ID hat mich auch schon etwas verwundert, ich habe
attr MQTT_Worx clientId mal entfernt.

Testen ist gerade nicht, da der ACC noch im 24h Block ist.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 14 Juli 2021, 09:33:47
Aber auf Seite 1 steht es richtig. Es wird mir der PerlZeile eine neue ID erzeugt und eingetragen.
In Deinem Code sind zwei Fehler! Der Perlcode ist in die Zeile mit autocreate simpel gerutscht und zusätzlich überschreibst Du die ID wieder.

Die clientID muss diese Form haben: android-ab345678-cd12-ef56-ab90-cd3456789012
Die clientID darf nicht mehrfach gleichzeitig zur Anmeldung verwendet werden.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Teamdrachen am 14 Juli 2021, 09:54:48
Stimmt... da hat sich wohl ein Copyfehler eingeschlichen.
Habs erst mal bereinigt und warte bis die 24h rum sind.


EDIT:   Es lüppt wieder :)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Pusemukel am 18 Juli 2021, 15:47:10
Tach hier mal meine Rückmeldung ,

Bei mir läuft es jetzt auch, leider kann ich nicht sagen woran es jetzt liegt.
die letzte Änderung war das Update auf die  Firmware 3.08 meines Landxcapes.
Davor hatte ich auch diese conect/disconect Schleife.

Das heißt dann auch das dieses Modul auch diese art von Mäher ansteuern kann.
(Landxscape,  Kress)
Ich hoffe das hilft!

8) ;)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Pusemukel am 20 Juli 2021, 17:14:44
Hallo,

Ist das möglich die Quitierung oder auch das Rücksetzen der Fehlermeldung auch über mqtt
zumachen hat das schon mal jemand gemacht ?

Grüsse
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 20 Juli 2021, 17:46:07
Hi,

ich bekomme seit ca. 14Tagen keine Meldung mehr über den Kantenschnitt. Sowohl in Fhem, wie auch in der App.  :o
Der Kantenschnitt wird aber durchgeführt.
Ich habe testweise die Konfig geändert und neu gespeichert, alles ohne Erfolg. :(
Kann das jemand bestätigen?

Ich hatte ein Ticket laufen, wg  ein paar kleinen "Problemen". Angeblich wurde aber nichts "verstellt".
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 20 Juli 2021, 17:49:13
Zitat von: Pusemukel am 20 Juli 2021, 17:14:44
Hallo,

Ist das möglich die Quitierung oder auch das Rücksetzen der Fehlermeldung auch über mqtt
zumachen hat das schon mal jemand gemacht ?

Grüsse
Welche Fehlermeldung, welche Quittierung?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Pusemukel am 20 Juli 2021, 22:22:47
Zitat von: Otto123 am 20 Juli 2021, 17:49:13
Welche Fehlermeldung, welche Quittierung?

Nabend,

Ich meine damit, wenn der Robbi sich z.b  mal festgefahren hat
gibt es bei mir auch die Fehlermeldung (Exx) dazu, um den Robbi weiter machen zu lassen,
muss ich die Fehlermeldung über das Bedienfeld auf dem Roboter
wegdrücken/Quitieren und wieder starten.
Hier würde ich gerne per MQTT Quitieren und neu starten.



Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 21 Juli 2021, 06:44:01
Das lässt der Roboter nicht zu.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: kjmEjfu am 21 Juli 2021, 07:30:21
Zitat von: Pusemukel am 20 Juli 2021, 22:22:47
Ich meine damit, wenn der Robbi sich z.b  mal festgefahren hat
gibt es bei mir auch die Fehlermeldung (Exx) dazu, um den Robbi weiter machen zu lassen,
muss ich die Fehlermeldung über das Bedienfeld auf dem Roboter
wegdrücken/Quitieren und wieder starten.
Hier würde ich gerne per MQTT Quitieren und neu starten.

Das geht ja auch nicht über die App.
Ist halt eine Sicherheitseinstellung.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 22 Juli 2021, 18:39:33
Zitat von: frober am 20 Juli 2021, 17:46:07
Hi,

ich bekomme seit ca. 14Tagen keine Meldung mehr über den Kantenschnitt. Sowohl in Fhem, wie auch in der App.  :o
Der Kantenschnitt wird aber durchgeführt.
Ich habe testweise die Konfig geändert und neu gespeichert, alles ohne Erfolg. :(
Kann das jemand bestätigen?

Ich hatte ein Ticket laufen, wg  ein paar kleinen "Problemen". Angeblich wurde aber nichts "verstellt".

Es funktioniert wieder, anscheinen hat von Seiten Worx doch etwas nicht gestimmt.
Kantenschnitt wird in der App und in Fhem wieder angezeigt. :)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: FosCo am 26 Juli 2021, 10:44:20
Hi Otto123,

da ja sonst meist nur gefragt und gemeckert wird, den Daumen hoch gibt's natürlich auch, aber nochmal so: DANKE!

Funzt auf Anhieb und ist genau das, was ich brauche.
Deutlich flexibler als ein ständig nachzupflegendes Modul!

Analog zu den hier (https://github.com/iobroker-community-adapters/ioBroker.worx/blob/65ecc586cc16b187fb3cb71f7fb3238503fc2989/main.js) gelisteten cmds und states, macht es vielleicht Sinn, diese mit aufzunehmen.
cmd=9 (SAFE HOMING=Rückfahrt ohne Messer) werde ich z.B. immer brauchen, wenn ich mit den Kindern rausgehe ;)

Wie kann ich einen pull Request auf das Template machen?

Erros, States & CMD are these:
const 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 over temperature',
    18: 'dummy model',
    19: 'Battery trunk open timeout',
    20: 'wire sync',
    21: 'msg num'
};
const STATUSCODES = {
    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',
    13: 'escape from off limits',
    30: 'Going home',
    31: 'Zone training',
    32: 'Border Cut',
    33: 'Searching zone',
    34: 'Pause'
};
const COMMANDCODES = {
    1: 'Start',
    2: 'Stop',
    3: 'Home',
    4: 'Start Zone Taining',
    5: 'Lock',
    6: 'Unlock',
    7: 'Restart Robot',
    8: 'pause when follow wire',
    9: 'safe homing'
};


Edit:
userReadings ist dann folgendermaßen angepasst:
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",
13 => "escape from off limits",
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",
18 => "dummy model",
19 => "Battery trunk open timeout",
20 => "wire sync",
21 => "msg num"
); $errorCodes{ReadingsVal($name,"mowerErrorIndex","0")}}


Bei den Commands bin ich mit "Pause/Stop" im Gegensatz zu "Stop/Home" etwas durcheinandergekommen, da es auch einen "Pause when follow wire" zu geben scheint. Ich habe mir daher erlaubt, die Bezeichnungen anzugleichen, ich lasse mich da natürlich auch gerne überstimmen ;)

Achtung: cmd=9 geht wohl erst mit FW 3.25!

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}
  stopMower:noArg $DEVICETOPIC/commandIn {"cmd":2}
  sendMowerHome:noArg $DEVICETOPIC/commandIn {"cmd":3}
  startZoneTraining:noArg $DEVICETOPIC/commandIn {"cmd":4}
  lockMower:noArg $DEVICETOPIC/commandIn {"cmd":5}
  unlockMower:noArg $DEVICETOPIC/commandIn {"cmd":6}
  restartMower:noArg $DEVICETOPIC/commandIn {"cmd":7}
  pauseFollowWire:noArg $DEVICETOPIC/commandIn {"cmd":8}
  sendMowerHomeWithoutKnives:noArg $DEVICETOPIC/commandIn {"cmd":9}
  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)}


Danke und Grüße
Jonas
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 26 Juli 2021, 11:34:55
Hallo Jonas,

ZitatWie kann ich einen pull Request auf das Template machen?
Naja eigentlich nur so wie Du es hier gemacht hast :)
ZitatDeutlich flexibler als ein ständig nachzupflegendes Modul!
Finde ich auch! Und da reiche ich den Dank weiter an die Macher der MQTT2* und AttrTemplate Infrastruktur!👏👏👏

Ich installiere mir die neue Firmware, schau es mir an und baue es dann ins Template.

Danke für die Info und Zuarbeit.

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: FosCo am 26 Juli 2021, 11:49:22
Danke, dann hab ich ja alles richtig gemacht.

Testen kann ich es leider noch nicht, der Mäher steht aktuell noch neben dem Schreibtisch :D
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 26 Juli 2021, 12:06:14
getestet: das funktioniert. Er akzeptiert per x_raw_payload {"cmd":9} und ich höre keine Messer laufen.

Auch mal wieder eine Funktion, die es per App gar nicht gibt?

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: FosCo am 26 Juli 2021, 17:12:06
So wurde es bei iobroker im Forum beschrieben 😉

Edit: Aber auch brandneu ab der 3.25, Link finde ich leider grade nicht, selbst das zweite Mal googlen war heute schwer, ein Hoch auf GitHub.

Da der Landi grade das neuste Spielzeug ist (danach folgt die Inbetriebnahme des opensprinkler), halte ich das Ohr aktuell an iobroker und Roboter Forum.

Viele Grüße und einen schönen Abend,
Jonas

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: FosCo am 28 Juli 2021, 19:38:42
Genial, funktioniert perfekt mit temporärem Lautsprecher Kabel durch den halben Garten 😀
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 28 Juli 2021, 21:23:56
Guten Abend,

schön zu sehen, dass es hierzu immerwieder Neuigkeiten gibt.
Bisher läuft bei mir auch alles tadellos.

Reicht es aus für das neue Template von Otto FHEM zu updaten und das Template neu auszuwählen?


Noch etwas zum Thema Regenverzögerung:

Das Reading dat_rain_s wechselt zwischen 1 und 0 bei Regen und !Regen.
Hat man einen externen Regensensor und der Landroid steht in einer Garage, könnte man dann das Reading nicht entsprechend abhängig vom externen Regensensor setzen?

Also soetwas wie:

notify Regensensor.on -> set Landroid dat_rain_s 1

Oder präziser:

Lässt sich dieses Reading gezielt (manuell oder automatisch) manipulieren, sodass der Landroid das mitbekommt und automatisch in die Regenverzögerung geht?

Ich schreibe lieber ein paar Zeilen Code, statt ein Loch in die Garage zu bohren  :)


Schönen Abend.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 28 Juli 2021, 22:01:08
Hi remo,

einfach ins Reading schreiben bringt nichts. Man müsste dann den Wert schon per mqtt zum Mower übertragen. Aber es würde mich wundern wenn er das zulässt. Es ist immerhin ein Wert vom internen Sensor, den würd ich mir nicht von außen manipulieren lassen.
Aber Du kannst ja die interne Regenverzögerung ausschalten und den Mower für die Zeit des Regens in die Party Pause schicken?

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 28 Juli 2021, 22:15:08
Hallo Otto.

Dankeschön für deine Antwort.
Das habe ich mir schon fast gedacht.
Wäre auch zu einfach gewesen.

Du meinst sicherlich den Party-Modus?!
So habe ich es bisher auch getan:
if Regen: stopMower + PartyMode on
if !Regen: PartyMode off (+ startMower)

Bringt aber leider auch einen Nachteil:
Wenn der Party-Modus zuvor von Hand aktiviert wurde, deaktiviert dieser sich wieder wenn irgendwann ein Regen vorbei  ist. Angenommen ich schicke den Landroid für eine Woche in den Party-Modus. Nach zwei Tagen regnet es für einen Tag, dann ist am dritten Tag der Party-Modus wieder deaktiviert..


dat_rain_cnt

Zeigt übrigens die Restzeit für die Regenverzögerung in Minuten an.
Aber dieses Reading ist wahrscheinlich auch read-only?!

Sonst könnte man bei Regen den cfg_rd auslesen und entsprechend in dat_rain_cnt setzten...


EDIT:
Vielleicht ist mowerTimeCorrection ein Ansatz...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 29 Juli 2021, 06:05:47
Zitat von: remo am 28 Juli 2021, 22:15:08
Hallo Otto.

Dankeschön für deine Antwort.
Das habe ich mir schon fast gedacht.
Wäre auch zu einfach gewesen.

Du meinst sicherlich den Party-Modus?!
So habe ich es bisher auch getan:
if Regen: stopMower + PartyMode on
if !Regen: PartyMode off (+ startMower)

Bringt aber leider auch einen Nachteil:
Wenn der Party-Modus zuvor von Hand aktiviert wurde, deaktiviert dieser sich wieder wenn irgendwann ein Regen vorbei  ist. Angenommen ich schicke den Landroid für eine Woche in den Party-Modus. Nach zwei Tagen regnet es für einen Tag, dann ist am dritten Tag der Party-Modus wieder deaktiviert..


dat_rain_cnt

Zeigt übrigens die Restzeit für die Regenverzögerung in Minuten an.
Aber dieses Reading ist wahrscheinlich auch read-only?!

Sonst könnte man bei Regen den cfg_rd auslesen und entsprechend in dat_rain_cnt setzten...


EDIT:
Vielleicht ist mowerTimeCorrection ein Ansatz...

Das kannst du doch "abfangen"...

Als Bsp. in deiner Kurzschreibweise...
Dummy d_PartyMode on/off
notify d_PartyMode.on set Mower PartyMode
if !Regen & !d_PartyMode: PartyMode off (+ startMower)



Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: hanswerner1 am 29 Juli 2021, 06:44:21
Zitat von: remo am 28 Juli 2021, 22:15:08

EDIT:
Vielleicht ist mowerTimeCorrection ein Ansatz...

Ich mache das mit dem externen Regensensor über mowerTimeCorrection und das funtioniert gut.


([ESPEasy_WeMos_02_wetter:Regen_Landroid] eq "on")
(set Worx_Landroid_M500 mowerTimeCorrection -100)

DOELSEIF
([ESPEasy_WeMos_02_wetter:Regen_Landroid] eq "off")
(set Worx_Landroid_M500 mowerTimeCorrection 0)


Im Regensensor habe ich bei "off" eine 2h Zeitverzögerung damit der Rasen auch abtrocknen kann.

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 29 Juli 2021, 13:30:20
Zitat von: remo am 28 Juli 2021, 21:23:56
Reicht es aus für das neue Template von Otto FHEM zu updaten und das Template neu auszuwählen?
Hatt ich vergessen: ich habe noch kein neues Template gemacht.
Das mit dem Template updaten ist so eine Sache:
Das Template macht eine Grundeinrichtung. Jede persönliche Anpassung und uU auch Readings gehen bei einer erneuten Anwendung verloren. So ein Template ist mMn nicht unbedingt update geeignet.

Ich würde immer schauen und normalerweise die Neuigkeit/Anpassung im Device per Hand nachpflegen.

Ansonsten kann man aber die Templates unabhängig vom FHEM update holen.
Ich versuche bei meinen Templates die eine Utils Datei im Hintergrund haben, die Updates und Bugfixes in die Utils Datei zu verlegen. Die Datei müsste man in jedem Fall direkt holen, weil der contrib Ordner durchs FHEM update nicht aktualisiert wird.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 29 Juli 2021, 20:13:31
@hanswerner1:
So dachte ich mir das auch.
Habe auch einen ESPEasy.
Werde da mal etwas basteln und würde gerne noch die interne Verzögerung mit einfließen lassen, bevor die Time Correction wieder zurück gesetzt wird.
Ich mach mich mal ran wenn die Zeit (irgendwann) mal wieder etwas lockerer sitzt  ;)

@Otto:
Stimmt. Hab es von Hand eingepflegt. Hat keine 5 Minuten gedauert. Alles sauber.
Und ohne Messer nach Hause schicken klappt super.
Vielen Dank für dein tolles Template übrigens  :-*

Gruß
remo
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 27 August 2021, 22:44:07
Kann es sein, dass der MQTT2-Server/Device um die 150x am Tag den AWS-Server kontaktiert?

Ich habe wieder Probleme, dass Fhem und die App bzgl. Mähzone nicht synchron sind und das Kantenmähen wird wieder nicht mehr angezeigt.

Laut Support kontaktiert meine "Fremdsoftware" um die 150x den Server und ab 150 gibt es eine 24h Sperre.

Den Broker hatte ich nie installiert....
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 27 August 2021, 23:11:32
Hi,

der MQTT2 Server spielt keine Rolle, die Verbindung macht ja der MQTT2_Client :)

Ich weiß nicht was mit kontaktieren gemeint ist, der Verbindungsaufbau wird ja im LogFile geloggt. Bei mir ist das ca. einer am Tag. Ansonsten dürften ja die meisten MQTT Nachrichten vom Mäher kommen.

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 28 August 2021, 04:29:13
Zitat von: Otto123 am 27 August 2021, 23:11:32
Hi,

der MQTT2 Server spielt keine Rolle, die Verbindung macht ja der MQTT2_Client :)

Ich weiß nicht was mit kontaktieren gemeint ist, der Verbindungsaufbau wird ja im LogFile geloggt. Bei mir ist das ca. einer am Tag. Ansonsten dürften ja die meisten MQTT Nachrichten vom Mäher kommen.

Gruß Otto

Danke Otto, Client klar ::), so hatte ich das auch vermutet.
Wollte nur sicher gehen...
Ich habe auch nur einen Zugriff und konnte bisher keine Sperre erkennen...

Evtl. verursacht das der Mäher, da ich Stellen mit schlechtem WLAN habe!?

Grüße Bernd
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 12 September 2021, 23:24:07
Nabend,

ich habe seit einiger Zeit das Problem, dass der Landroid keine von FHEM gesendeten Befehle mehr ausführt. Es hat bis vor kurzem noch funktioniert, ohne dass ich FHEM-seitig etwas geändert hätte. Empfangen werden die Daten vom Landroid jedoch wie gewohnt. Da ich nur selten einen Befehl absende, kann ich nicht genau sagen, seit wann es nicht mehr funktioniert. Möglicherweise seit dem Update auf FW 3.25?

Wurde mit dem Update irgendwas geändert, was ich auch FHEM-seitig hätte anpassen müssen?

Kann es an der Client ID oder am Zertifikat liegen? Aber dann dürfte FHEM ja auch nichts mehr empfangen oder?

Hier meine vollständige Definition, vielleicht entdeckt ja jemand etwas (Client ID und MAC hier natürlich absichtlich verstümmelt).

Danke!

defmod Landroid MQTT2_DEVICE android_daa37b01_5e39_486b_b096_xxxxxxxxxxx_
attr Landroid IODev MQTT_Worx
attr Landroid event-on-change-reading .*
attr Landroid group 06_Garten
attr Landroid icon scene_robo_lawnmower
attr Landroid jsonMap dat_rsi:wifiQuality dat_fw:firmware cfg_sn:SerialNumber\
dat_le:mowerError dat_ls:mowerStatus\
cfg_rd:mowerRainDelay cfg_sc_m:mowerActiveIndex cfg_sc_p:mowerTimeCorrection\
dat_bt_t:batteryTemperature dat_bt_v:batteryVoltage dat_bt_p:batteryLevel dat_bt_nr:batteryChargeCycle dat_bt_c:batteryCharging\
dat_st_b:bladeTimeCounter dat_st_d:totalDistance dat_st_wt:totalTime dat_st_bl:borderLength\
dat_dmp_1:directionPitch dat_dmp_2:directionRoll dat_dmp_3:directionYaw\
cfg_sc_d_1_1:calendarWeekday0StartTime cfg_sc_d_1_2:calendarWeekday0WorkTime cfg_sc_d_1_3:calendarWeekday0BorderCut\
cfg_sc_d_2_1:calendarWeekday1StartTime cfg_sc_d_2_2:calendarWeekday1WorkTime cfg_sc_d_2_3:calendarWeekday1BorderCut\
cfg_sc_d_3_1:calendarWeekday2StartTime cfg_sc_d_3_2:calendarWeekday2WorkTime cfg_sc_d_3_3:calendarWeekday2BorderCut\
cfg_sc_d_4_1:calendarWeekday3StartTime cfg_sc_d_4_2:calendarWeekday3WorkTime cfg_sc_d_4_3:calendarWeekday3BorderCut\
cfg_sc_d_5_1:calendarWeekday4StartTime cfg_sc_d_5_2:calendarWeekday4WorkTime cfg_sc_d_5_3:calendarWeekday4BorderCut\
cfg_sc_d_6_1:calendarWeekday5StartTime cfg_sc_d_6_2:calendarWeekday5WorkTime cfg_sc_d_6_3:calendarWeekday5BorderCut\
cfg_sc_d_7_1:calendarWeekday6StartTime cfg_sc_d_7_2:calendarWeekday6WorkTime cfg_sc_d_7_3:calendarWeekday6BorderCut\
cfg_sc_dd_1_1:calendar2Weekday0StartTime cfg_sc_dd_1_2:calendar2Weekday0WorkTime cfg_sc_dd_1_3:calendar2Weekday0BorderCut\
cfg_sc_dd_2_1:calendar2Weekday1StartTime cfg_sc_dd_2_2:calendar2Weekday1WorkTime cfg_sc_dd_2_3:calendar2Weekday1BorderCut\
cfg_sc_dd_3_1:calendar2Weekday2StartTime cfg_sc_dd_3_2:calendar2Weekday2WorkTime cfg_sc_dd_3_3:calendar2Weekday2BorderCut\
cfg_sc_dd_4_1:calendar2Weekday3StartTime cfg_sc_dd_4_2:calendar2Weekday3WorkTime cfg_sc_dd_4_3:calendar2Weekday3BorderCut\
cfg_sc_dd_5_1:calendar2Weekday4StartTime cfg_sc_dd_5_2:calendar2Weekday4WorkTime cfg_sc_dd_5_3:calendar2Weekday4BorderCut\
cfg_sc_dd_6_1:calendar2Weekday5StartTime cfg_sc_dd_6_2:calendar2Weekday5WorkTime cfg_sc_dd_6_3:calendar2Weekday5BorderCut\
cfg_sc_dd_7_1:calendar2Weekday6StartTime cfg_sc_dd_7_2:calendar2Weekday6WorkTime cfg_sc_dd_7_3:calendar2Weekday6BorderCut\
cfg_rd:changeRainDelay\
cfg_mz_1:areasArea1 cfg_mz_2:areasArea2 cfg_mz_3:areasArea3 cfg_mz_4:areasArea4\
dat_rain_cnt:rainDelayRemaining
attr Landroid model worx_landroid_mover
attr Landroid readingList PRM100/98D86346xxxx/commandOut:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr Landroid room Garten,MQTT2_DEVICE,QuickFHEM,Übersicht
attr Landroid setList mowerRainDelay:slider,0,30,1440 PRM100/98D86346xxxx/commandIn {"rd":$EVTPART1}\
  mowerTimeCorrection:slider,-100,1,100 PRM100/98D86346xxxx/commandIn {"sc":{"p":$EVTPART1}}\
  startBorderCut:noArg PRM100/98D86346xxxx/commandIn {"sc":{"ots":{"bc":1,"wtm":0}}}\
  startOneTime:slider,10,10,720 PRM100/98D86346xxxx/commandIn {"sc":{"ots":{"bc":0,"wtm":$EVTPART1}}}\
  startParty:slider,60,60,2880 PRM100/98D86346xxxx/commandIn {"sc":{"distm":$EVTPART1}}\
  startMower:noArg PRM100/98D86346xxxx/commandIn {"cmd":1}\
  pauseMower:noArg PRM100/98D86346xxxx/commandIn {"cmd":2}\
  stopMower:noArg PRM100/98D86346xxxx/commandIn {"cmd":3}\
  x_raw_payload:textField { my $payload = $EVENT;;$payload =~ s/$EVTPART0 //g;; qq(PRM100/98D86346xxxx/commandIn $payload)}
attr Landroid sortby 00
attr Landroid stateFormat mowerStatusTxt, mowerErrorTxt<br>RainDelay: rainDelayRemaining min<br>Akku: batteryLevel % (batteryVoltage V)<br>Messer: bladeTimeCounterH h
attr Landroid userReadings mowerActive:mowerActiveIndex:.* {my %activeState = (\
0 => "false",\
1 => "true",\
2 => "Party"\
);; $activeState{ReadingsVal($name,"mowerActiveIndex","0")}},\
mowerStatusTxt:mowerStatus.* {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,"mowerStatus","0")}},\
mowerErrorTxt:mowerError.* { 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,"mowerError","0")}},\
bladeTimeCounterH {ReadingsVal("Landroid","bladeTimeCounter","0") / 60 },\
batteryChargingBool {ReadingsVal("Landroid","batteryCharging","0")}
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 13 September 2021, 12:39:08
Hi,

die Beschreibung verwundert mich. Ich habe auch die Firmware 3.25 und die Steuerung geht. Überprüfe bitte die Funktion Deines MQTT_Worx Devices. Ich vermute Du bist geblockt. Ich hatte auch schon den Fall, die Daten in der App wurden aktualisiert, Steuerung ging aber nicht. Allerdings war in dem Zustand FHEm völlig "draußen" d.h. da kamen auch keine Daten mehr an.
Funktioniert der Zugriff mit der Windows App?

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: FosCo am 14 September 2021, 14:47:30
Wie schicke ich bei "PartyTime" noch den "PartyMode" auf 0 vorweg?
Auf 1 und 2 funktioniert der Timer nicht :)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 14 September 2021, 21:24:26
Hallo FosCo,

wundert mich, ich behaupte das hat mal funktioniert? Ich verwende das nicht, wenn Du meinst, dann setzt mal sowas über x_raw_payload ab:
Die 8 steht für 8 minuten ;)
{"sc":{"m":0,"distm":8}}

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 20 September 2021, 12:42:17
Zitat von: Otto123 am 27 August 2021, 23:11:32
Hi,

der MQTT2 Server spielt keine Rolle, die Verbindung macht ja der MQTT2_Client :)

Ich weiß nicht was mit kontaktieren gemeint ist, der Verbindungsaufbau wird ja im LogFile geloggt. Bei mir ist das ca. einer am Tag. Ansonsten dürften ja die meisten MQTT Nachrichten vom Mäher kommen.

Gruß Otto

Da ich immer noch Probleme habe und Worx behauptet, dass mein Fhem ca. 150 Anfragen am Tag sendet, habe ich einmal den Client abgeschaltet.

Kaum abgeschaltet, kommt die Meldung vom Boardercut wieder über die App rein. :o

Nun habe ich den MQTT_Client auf Verbose 5 gesetzt.
Im Log steht nun alle 10 Min  folgendes:
2021.09.20 12:20:02 5: MQTT2_Worx: sending PINGREQ (192)(0)
2021.09.20 12:20:02 5: MQTT2_Worx: received PINGRESP


Das wären 144 Anfragen + die Zwangstrennung von Provider.

Also sendet der Client doch Anfragen an den Server!? Ist das nötig?

Grüße Bernd
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 20 September 2021, 12:59:54
ZitatAlso sendet der Client doch Anfragen an den Server!? Ist das nötig?
Vermutlich nicht, und es ist vermutlich ein Fehler im Client (oder doch Server?), aber bisher hat keiner es geschafft, mir was Nachstellbares zu liefern.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 20 September 2021, 13:08:31
Zitat von: rudolfkoenig am 20 September 2021, 12:59:54
Vermutlich nicht, und es ist vermutlich ein Fehler im Client (oder doch Server?), aber bisher hat keiner es geschafft, mir was Nachstellbares zu liefern.

Hallo Rudi,
wie kann ich dir da weiterhelfen?
Die Definition ist so wie von Otto angegeben.
Bringt dir stacktrace etwas?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 20 September 2021, 13:27:30
wie kann ich dir da weiterhelfen?
Am besten waere etwas, was ich selbst aufrufen kann. Wenn ich mich nicht irre, braucht der Zugang private Schluessel.
Wenn das keine Option ist, dann ein Log mit "attr MQTT2_CLIENT verbose 5". Bin aber unsicher, ob das reicht.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 20 September 2021, 14:27:42
Zitat von: rudolfkoenig am 20 September 2021, 13:27:30
wie kann ich dir da weiterhelfen?
Am besten waere etwas, was ich selbst aufrufen kann. Wenn ich mich nicht irre, braucht der Zugang private Schluessel.
Wenn das keine Option ist, dann ein Log mit "attr MQTT2_CLIENT verbose 5". Bin aber unsicher, ob das reicht.

Ich glaube, ich habe das "Problem" gefunden...
attr MQTT2_Worx keepaliveTimeout 600

Ich setze den Intervall mal hoch und beobachte.

Den Link zum Log mit Verbose 5 habe ich dir per PM Mail gesendet, da auch hier die Ser.-Nr. etc. enthalten ist.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 20 September 2021, 20:02:08
Zitat von: frober am 20 September 2021, 12:42:17
Da ich immer noch Probleme habe und Worx behauptet, dass mein Fhem ca. 150 Anfragen am Tag sendet, habe ich einmal den Client abgeschaltet.

Kaum abgeschaltet, kommt die Meldung vom Boardercut wieder über die App rein. :
wie kann man diese Anfragen sehen?
Eine Sperre dauert doch 24h - was verstehst du unter "kaum"?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 20 September 2021, 20:27:13
Zitat von: Otto123 am 20 September 2021, 20:02:08
wie kann man diese Anfragen sehen?
Eine Sperre dauert doch 24h - was verstehst du unter "kaum"?
Verbose 5 im Client...

Bzgl. Sperre behauptet Worx, dass man dies nicht mitbekommt, sie aber sehen, dass ich hin und wieder gesperrt werde, da ich die 150 Anfragen/Tag überschreite und das kann nur eine Fremdsoftware. IOBroker hatte ich nie installiert.
Bei mir waren jedoch durchweg die Daten vorhanden, nur die gemähte Zone ist zw. Fhem und App asynchron und das Boardercut wird nicht mehr gemeldet.

Ich habe Sonntags den Client disabled und Montags kam wieder die Bordercut-Meldung in der App. Aktuell ist der Client aktiviert und die Meldung kommt wieder nicht mehr.

Ich verstehe das auch noch nicht, bekomme aber durch die "Fremdsoftware" keinen Support mehr. Erst wenn ich diese abschalte, dann besteht aber das Problem nicht mehr.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 21 September 2021, 11:34:37
ZitatDen Link zum Log mit Verbose 5 habe ich dir per PM Mail gesendet, da auch hier die Ser.-Nr. etc. enthalten ist.
Ich finde im Log kein Problem.

Da sind zwar 1059 empfangene Nachrichten (PUBLISH und PINGRESP) und 553 gesendete (PINGREQ), aber das innerhalb von 4 Tagen (genauer 90 Stunden), d.h. das sind 12 empfangen bzw. 6 gesendete Nachrichten pro Stunde. Das ist nicht die Endlosschleife, woran ich gedacht habe, und der Server sollte sich nicht anstellen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 21 September 2021, 11:56:13
Zitat von: rudolfkoenig am 21 September 2021, 11:34:37
Ich finde im Log kein Problem.

Da sind zwar 1059 empfangene Nachrichten (PUBLISH und PINGRESP) und 553 gesendete (PINGREQ), aber das innerhalb von 4 Tagen (genauer 90 Stunden), d.h. das sind 12 empfangen bzw. 6 gesendete Nachrichten pro Stunde. Das ist nicht die Endlosschleife, woran ich gedacht habe, und der Server sollte sich nicht anstellen.

Danke für die RM, der Server sperrt den Zugang bei mehr als 150 Anfragen/Tag für 24h (laut Worx).

Dieser ist anscheinend auch zickig, bei einem keepaliveTimeout von 1800 quittiert es jeden 2. Ping (alle 60 Min) mit einem disconnect. Der Client verbindet sich danach gleich wieder.
Mit einem keepaliveTimeout von 1200 ist alles noch ok.

Testweise habe ich den keepaliveTimeout aktuell abgeschaltet. Muss nun ein paar Tage abwarten um zu sehen wie sich alles verhält.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 21 September 2021, 12:22:44
Ohne keepaliveTimeout gibt es alle 30 Min einen disconnect. ::)
Also wieder mit 1200 aktiviert..
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 21 September 2021, 12:54:20
Offensichtlich ist der Server nicht fuer Dauerverbindungen ausgelegt.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: kjmEjfu am 21 September 2021, 16:03:44
Hab keepaliveTimeout seit Monaten auf 600 stehen. Läuft ohne Probleme.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 21 September 2021, 19:06:26
Zitat von: kjmEjfu am 21 September 2021, 16:03:44
Hab keepaliveTimeout seit Monaten auf 600 stehen. Läuft ohne Probleme.

Das Kantenmähen bekommst du auch gemeldet?
Wie sieht es mit den Zonen aus, so fern du welche hast?
Bzw  laut Worx merkt man die Sperre nicht...

Bei mir kann es noch sein, da mein Wlan im Garten nicht komplett abdeckt ist, dass ich deswegen die 150 Anfrage /Tag kratze.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: kjmEjfu am 22 September 2021, 08:20:42
Zitat von: frober am 21 September 2021, 19:06:26
Das Kantenmähen bekommst du auch gemeldet?
Wie sieht es mit den Zonen aus, so fern du welche hast?

Ich schaue halt nicht dauernd nach ... aber ja, prinzipiell bekomme ich das Kantenmähen angezeigt.
Zonen habe ich, weiß aber nicht genau, was da gerade meinst.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 22 September 2021, 09:49:32
Zitat von: kjmEjfu am 22 September 2021, 08:20:42
Ich schaue halt nicht dauernd nach ... aber ja, prinzipiell bekomme ich das Kantenmähen angezeigt.
Zonen habe ich, weiß aber nicht genau, was da gerade meinst.

Ich habe in der App die Benachrichtigungsart auf Hinweise stehen, da ich wissen wollte wie oft der Mäher aus der aktiven Zone flüchtet.
Daher sehe ich die Meldungen regelmäßig.

Bzgl  Zone, ich habe das userReading erweitert. Erklärung ist in #269, Code in #279

Die Daten logge ich und zeige sie in einem Plot.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 24 September 2021, 09:05:38
Zitat von: frober am 22 September 2021, 09:49:32
Ich habe in der App die Benachrichtigungsart auf Hinweise stehen, da ich wissen wollte wie oft der Mäher aus der aktiven Zone flüchtet.
Daher sehe ich die Meldungen regelmäßig.

Bzgl  Zone, ich habe das userReading erweitert. Erklärung ist in #269, Code in #279

Die Daten logge ich und zeige sie in einem Plot.

Womit misst du die Bodenfeuchte?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 24 September 2021, 09:20:54
Zitat von: remo am 24 September 2021, 09:05:38
Womit misst du die Bodenfeuchte?

Ich habe 2 Giesomat vergraben.
Da bin ich aber noch am beobachten. Bei hoher Feuchte ist die Messung recht konstant. Sobald die Feuchte fällt, wird sie Temperaturabhängig.
Aktuell teste ich eine Temperaturkompensation.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 24 September 2021, 09:35:34
Ok, danke.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 08 Oktober 2021, 21:35:46
Zitat von: Otto123 am 13 September 2021, 12:39:08
Hi,

die Beschreibung verwundert mich. Ich habe auch die Firmware 3.25 und die Steuerung geht. Überprüfe bitte die Funktion Deines MQTT_Worx Devices. Ich vermute Du bist geblockt. Ich hatte auch schon den Fall, die Daten in der App wurden aktualisiert, Steuerung ging aber nicht. Allerdings war in dem Zustand FHEm völlig "draußen" d.h. da kamen auch keine Daten mehr an.
Funktioniert der Zugriff mit der Windows App?

Gruß Otto

Moin Otto,

sorry für die späte Rückmeldung. Hatte bisher keinen Nerv, mich damit zu beschäftigen. Heute mal die DeskApp getestet - funktioniert. Habe dann ein FHEM Update durchgeführt, daraufhin natürlich FHEM neu gestartet und anschließend das neue MQTT Template runtergeladen und angewendet. Nun funktioniert wieder alles!

Ich glaube aber, das Anwenden des Templates hat gar nicht funktioniert, denn meine selbstgemachten Änderungen an Readings usw. sind noch alle vorhanden. Außerdem steht bei attrTemplateVersion: 20200701. Scheint mir nicht sehr aktuell zu sein ... Letztlich war vielleicht einfach nur der Neustart von FHEM ausschlaggebend  ::)

Das Template wird doch auf das Device MQTT_Worx angewendet, nicht auf das Device des Mähers selbst (bei mir "Landroid"), richtig? Entsprechend dieses Befehls:
set MQTT2_.*:FILTER=IODev=MQTT_Worx attrTemplate worx_landroid

Dann noch eine Frage: wieso kann man bei "set startParty" einen Wert mit Slider von 60 bis 2880 wählen? Sollten da nicht einfach 0 oder 1 (Partymodus an/aus) ausreichen? Oder ist das ein weiteres Indiz für ein veraltetes Template?

Nochmals besten Dank!
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 08 Oktober 2021, 21:56:37
Hi,

das hier ist ein devspec:MQTT2_.*:FILTER=IODev=MQTT_Worx
Das sagt: Devicename beginnt mit MQTT2_ und das IODev des Gerätes muss MQTT_Worx sein. Wenn Du dein Device umbenannt hast, solltest Du nicht nach einer Anleitung vorgehen, die eine Umbennung nicht beschreibt.
Das Template ist für das Mäher Device, nicht für das IODev! Du kannst es jederzeit am Device selbst direkt auswählen und anwenden, der von Dir erwähnte Befehl gilt in der "geradeaus" Anleitung.

Dein angewendetes Template ist alt.
Im aktuellen Template gibt es PartyTime und PartyMode - startParty haben wir irgendwann mal rausgenommen.

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 08 Oktober 2021, 22:02:02
Alles klar, danke!

Habe gerade mal in das Template reingeschaut und werde mir die für mich relevanten Neuigkeiten manuell einbauen. Dann gehen meine bisherigen Änderungen nicht verloren ;)

Tja, aber dann war wohl tatsächlich nur ein Neustart von FHEM nötig, um mein eigentliches Problem zu lösen  :o
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 11 Oktober 2021, 18:47:38
Zitat von: frober am 20 September 2021, 20:27:13
Bzgl. Sperre behauptet Worx, dass man dies nicht mitbekommt, sie aber sehen, dass ich hin und wieder gesperrt werde, da ich die 150 Anfragen/Tag überschreite und das kann nur eine Fremdsoftware. IOBroker hatte ich nie installiert.
Bei mir waren jedoch durchweg die Daten vorhanden, nur die gemähte Zone ist zw. Fhem und App asynchron und das Boardercut wird nicht mehr gemeldet.

So, nun mal einen Zwischenstand:
Es hat sich bestätigt, seit ich den keepaliveTimeout hochgesetzt habe, aktuell 1500, bekomme ich den Kantenschnitt wieder zuverlässig gemeldet. Also scheint es tatsächlich noch eine Sperre von Server zu geben, die man im Normalfall nicht mitbekommt.

Bzgl. Asynchronität der Zonenmeldung habe ich ich mein userReading angepasst, aktuell läuft es wieder synchon. Ich vermute, da gab es intern eine Änderung/Bug bei Worx. Ich habe gerade meine 3. Zone aktiviert, wenn die Synchronität sich bestätigt, poste ich noch den geänderten Code.

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 23 Oktober 2021, 17:48:53
Wie angekündigt, die Meldung der Zonen funktioniert nun einwandfrei mit meiner Anpassung:

Erweiterung für das userReadings:
mowerActiveZone:dat_lz:.* {
   my $evt = ReadingsVal($name,"dat_lz",0) + 1;
   my $evt1 = 'cfg_mzv_'.$evt;
   ReadingsVal($name,$evt1,0)}
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 01 November 2021, 23:24:00
Moin,
es gibt mit der neuen FW3.26 eine Möglichkeit zur Drehmoment-Verstellung.
https://www.roboter-forum.com/index.php?thread/54572-firmware-v3-26/ (https://www.roboter-forum.com/index.php?thread/54572-firmware-v3-26/)

Bisher nur über die DeskApp (mit Plugin) einstellbar:
https://drive.google.com/file/d/17WxcaCgKIAUzEbg0KuuBzoUv1fAfd4-s/view?usp=sharing (https://drive.google.com/file/d/17WxcaCgKIAUzEbg0KuuBzoUv1fAfd4-s/view?usp=sharing)

Daher habe ich das mal hier mit reingebastelt:

jsonMap:
cfg_tq:torqueSetting

setList:
torqueSetting:slider,-50,1,50 PRM100/<MAC>/commandIn {"tq":$EVTPART1}

Vielleicht nimmst Du das ja mit ins Template auf, Otto.  :)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Mumpitz am 11 Januar 2022, 19:56:36
Hallo Freund der automatisierten Rasenpflege

Ich habe am BlackFriday zugeschlagen und mir einen Worx M500 erworben. Nun habe ich ihn zu Testzwecken mal im Keller aufgebaut. Ich wollte damit ausmessen, wie gross seine Garage werden muss damit er darin wenden kann. Dabei habe ich mich gleich aufgemacht und versucht, ihn mit Hilfe des Post1 in mein FHEM einzubinden. Leider gelingt mir das nach einer Woche probieren nicht. Der Zustand flippert im milisekundentakt von Connect auf Disconnect und wieder zurück. Ich bin echt am Anschlag was ich noch versuchen könnte. Daher habe ich mich nun entschlossen, die Gemeinschaft um Hilfe zu bitten:

Mein Define (UID und Mac durch x für jede Ziffer ersetzt):
defmod MQTT_Worx MQTT2_CLIENT a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
attr MQTT_Worx DbLogExclude .*
attr MQTT_Worx SSL 1
attr MQTT_Worx autocreate simple
attr MQTT_Worx clientId android-61ddbcec-xxxx-xxxx-xxxx-xxxxxxxxxxxx
attr MQTT_Worx disable 1
attr MQTT_Worx keepaliveTimeout 600
attr MQTT_Worx mqttVersion 3.1.1
attr MQTT_Worx msgAfterConnect PRM100/xxxxxxxxxxxx/commandIn {}
attr MQTT_Worx room Garten
attr MQTT_Worx sslargs SSL_version:TLSv12 SSL_cert_file:aws.cer SSL_key_file:aws.key SSL_use_cert:1
attr MQTT_Worx subscriptions PRM100/xxxxxxxxxxxxx/commandOut
attr MQTT_Worx verbose 5

setstate MQTT_Worx disconnected
setstate MQTT_Worx 2022-01-11 18:24:04 state disconnected


Das FHEM Log zeigt mit verbose 5 folgendes an im Sekundentakt:
2022.01.11 18:24:04 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2022.01.11 18:24:04 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2022.01.11 18:24:04 5: DevIo_SimpleWrite MQTT_Worx: 103800044d51545404020258002c616e64726f69642d36316464626365632d663333662d333837332d356562322d363930303834313736306433
2022.01.11 18:24:04 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-61ddbcec-xxxx-xxxx-xxxx-xxxxxxxxxxxx
2022.01.11 18:24:04 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 34.242.154.33
2022.01.11 18:24:04 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking via https
2022.01.11 18:24:04 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2022.01.11 18:24:04 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2022.01.11 18:24:04 5: DevIo_SimpleWrite MQTT_Worx: 103800044d51545404020258002c616e64726f69642d36316464626365632d663333662d333837332d356562322d363930303834313736306433
2022.01.11 18:24:04 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-61ddbcec-xxxx-xxxx-xxxx-xxxxxxxxxxxx
2022.01.11 18:24:04 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 34.250.128.70
2022.01.11 18:24:04 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking via https
2022.01.11 18:24:04 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2022.01.11 18:24:04 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)


Das Zertifikat ist aus meiner Sicht iO:

{qx(ls -lha /opt/fhem/aws.*)} ergibt:
-rw------- 1 fhem dialout 1.4K Jan 11 18:08 /opt/fhem/aws.cer
-rw------- 1 fhem dialout 1.8K Jan 11 18:09 /opt/fhem/aws.key


{qx(openssl rsa -in aws.key -check|grep 'RSA key ok')} ergibt:
RSA key ok

{qx(openssl x509 -in aws.cer -noout -text|grep Issuer -A7)} ergibt:
Issuer: OU = Amazon Web Services O=Amazon.com Inc. L=Seattle ST=Washington C=US
        Validity
            Not Before: Jan  4 19:08:53 2022 GMT
            Not After : Dec 31 23:59:59 2049 GMT
        Subject: CN = AWS IoT Certificate
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)


Mit der Landroid App kann ich mit dem Mäher kommunizieren.

Die clientId im define wurde nicht automatisch erstellt. Diese wurde erstellt, indem ich den Eintrag {my $uuid=substr(genUUID(),0,36);;fhem("attr MQTT_Worx clientId android-$uuid")} über die Kommandozeile ausgeführt habe und den entsprechenden Wert von Hand eingetragen habe. Ohne diesen Eintrag konnte ich jedoch das genau gleiche Verhalten mit dem Flippern beobachten...

Ich habe echt keine Ahnung mehr was ich versuchen könnte. Das einzig positive im Moment ist, dass es noch eine Zeit geht bis "Shawn" in den Einsatz kommt...

Hat jemand eine Idee oder einen Ansatz?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 11 Januar 2022, 20:17:13
warte mal 24 h ohne das Dein MQTT Device aktiv ist! Ich denke Du hast Deinen Account gesperrt. Über die App geht dann immer noch was...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Mumpitz am 23 Januar 2022, 08:31:59
Zitat von: Otto123 am 11 Januar 2022, 20:17:13
warte mal 24 h ohne das Dein MQTT Device aktiv ist! Ich denke Du hast Deinen Account gesperrt. Über die App geht dann immer noch was...

Frei nach dem Motto "Geduld ist nicht meine Kernkompetenz":
Nach 24h war der Fehler verschwunden und seither steht das Device auf Open!

Danke vielmals!
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: tschimi am 25 Februar 2022, 14:39:21
Hi,
stehe ein bisschen auf dem Schlauch. Gibt es auch eine Möglichkeit, 2 RasenRobbis gleichzeitig zu verbinden? Das Zertifikat sieht, zumindest für mich, so aus als ginge nur einer?!
Lg, tschimi
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 25 Februar 2022, 17:41:53
Hi,

das Zertifikat, so meine ich, ist für den Account. Wenn man zwei Roboter in einem Account anlegen kann (ich kann mir vorstellen das geht) dann wird es nur die Aufgabe sein, die im MQTT dann wieder auseinander zu dröseln. Man müsste das MQTT2_CLIENT Device modifizieren, denn Beide sollten sich im Devicetopic, im zweiten Teil (MAC) unterscheiden - selbst wenn sie vom gleichen Typ sind.

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: michisa86888 am 22 März 2022, 22:27:18
Guten Abend, ich bekomme leider kein connect zu meinem Robbi.
Springt wie hier schon öfter geschrieben hin und her zwischen opened und disconnected
Zertifikate müssten eigenlich stimmen die Prüfung ergibt folgendes:

-rw------- 1 fhem root 1,4K Mär 21 22:19 /opt/fhem/aws.cer
-rw------- 1 fhem root 1,8K Mär 21 22:19 /opt/fhem/aws.key

Wo fange ich am besten mit der weiteren Fehlersuche an?
Hier noch ein Auszug aus dem Log mit Verbose 5:

2022.03.22 22:18:19.813 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking via https
2022.03.22 22:18:19.853 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.50.177.28
2022.03.22 22:18:19.995 5: MQTT_Worx: sending SUBSCRIBE (130)"(0)&(0)(29)<BordID>/<MAC>/commandOut(0)
2022.03.22 22:18:19.995 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2022.03.22 22:18:20.058 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2022.03.22 22:18:20.064 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking via https
2022.03.22 22:18:20.065 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.50.177.28
2022.03.22 22:18:20.212 5: MQTT_Worx: sending CONNECT (16)(21)(0)(4)MQTT(4)(2)(2)X(0)(9)MQTT_Worx
2022.03.22 22:18:20.212 5: DevIo_SimpleWrite MQTT_Worx: 101500044d5154540402025800094d5154545f576f7278
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 22 März 2022, 22:52:20
Hi,

wenn die Zertifikate nicht stimmen, gibt es mMn gar keinen connect.
Das jetzige Verhalten deutet auf eine Sperre hin. Also den MQTT_Worx  auf close setzen und 24 h warten :)

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: michisa86888 am 28 März 2022, 22:54:02
Zitat von: Otto123 am 22 März 2022, 22:52:20
Hi,

wenn die Zertifikate nicht stimmen, gibt es mMn gar keinen connect.
Das jetzige Verhalten deutet auf eine Sperre hin. Also den MQTT_Worx  auf close setzen und 24 h warten :)

Gruß Otto
So habe heute nochmals einen kompletten Neuversuch gestartet. Hat soweit geklappt. MQTT-Device stand auf opened und das Robbi-Device wurde erstellt. Konnte dann auch einen Testversuch starten. Der Robbi startete. Nach kurzer Zeit dann ohne weitere Befehle oder ähnliches springt das Mqtt-Device wieder hin und her (opened - disconnect) Glaube jetzt ist mein Account wieder gesperrt.
Woran könnte dies liegen?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 28 März 2022, 23:38:02
Du verwendest die Anmeldung (nicht die Zertifikate sondern die clientId android-61ddbcec-xxxx-xxxx-xxxx-xxxxxxxxxxxx) mehrfach?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: michisa86888 am 29 März 2022, 07:34:13
Nicht das ich wüsste, ich habe nur ein Mqtt-Device erstellt. Das andere vorangegangene habe ich zuvor gelöscht. Kann es evtl. die Desktopapp gewesen sein die noch im Hintergrund lief? Die hat aber doch nicht die gleiche Client-ID oder?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 29 März 2022, 11:53:49
Hat sie nicht.  :-[
Ich weiß nicht genau, aber die Sperre tritt offenbar bei bestimmten Mustern ein, die so normal nicht vorkommen. Zu häufige Abfragen, doppelte Anmeldungen usw.
Nimmt ein anderes MQTT Device den MQTT_Worx als IODev und sendet unsinnige Daten dorthin? Da wurde ja im letzten Jahr etwas um gestellt und die MQTT2_DEVICES können sich jetzt das IODev "raussuchen" ?

list TYPE=MQTT2_DEVICE i:IODev
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: FFHEM am 29 März 2022, 17:28:33
Hallo Otto,

zwischendurch einfach mal ein herzliches Dankeschön für Deine Arbeit, im Speziellen hier bei der MQTT2-Anbindung an den Worx-Mäher, die ich auch schon seit dem letzten Jahr genieße!

Gruß,
Friedhelm
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: brezel am 13 April 2022, 20:00:20
Hallole,

ich empfange zwar jede menge Readings, die werden auch fleißig aktualisiert aber steuern lässt sich der Landroid nicht über FHEM, über APP und Desktop gehts.

defmod MQTT_Worx MQTT2_CLIENT a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
attr MQTT_Worx DbLogExclude .*
attr MQTT_Worx SSL 1
attr MQTT_Worx autocreate simple
attr MQTT_Worx clientId android-62378444-f33f-fe1c-601e-9d01fc947796
attr MQTT_Worx disable 0
attr MQTT_Worx keepaliveTimeout 600
attr MQTT_Worx mqttVersion 3.1.1
attr MQTT_Worx msgAfterConnect DB510/MAC/commandIn {}
attr MQTT_Worx sslargs SSL_version:TLSv12 SSL_cert_file:aws.cer SSL_key_file:aws.key SSL_use_cert:1
attr MQTT_Worx subscriptions DB510/MAC/commandOut
attr MQTT_Worx verbose 5

setstate MQTT_Worx opened
setstate MQTT_Worx 2022-04-13 18:32:50 state opened


defmod Landroid MQTT2_DEVICE
attr Landroid alias Schafi
attr Landroid devicetopic DB510/MAC
attr Landroid event-on-change-reading .*
attr Landroid group Garten
attr Landroid icon scene_robo_lawnmower
attr Landroid jsonMap dat_rsi:wifiQuality dat_fw:firmware cfg_sn:SerialNumber\
..
setstate Landroid Active: Yes, Status: Mowing, Error: No error
setstate Landroid 2022-04-13 18:32:48 IODev myBroker
setstate Landroid 2022-04-13 19:49:57 SerialNumber 3245463677234888
setstate Landroid 2022-03-21 20:46:09 attrTemplateVersion 20210602
setstate Landroid 2022-04-13 19:49:57 batteryChargeCycle 1869
setstate Landroid 2022-04-13 19:49:57 batteryCharging 0
setstate Landroid 2022-04-13 19:49:57 batteryPercent 83
setstate Landroid 2022-04-13 19:49:57 batteryTemperature 33.7
setstate Landroid 2022-04-13 19:49:57 batteryVoltage 18.44
setstate Landroid 2022-04-13 19:49:57 cfg_cmd 0
setstate Landroid 2022-04-13 19:49:57 cfg_dt 13/04/2022
setstate Landroid 2022-04-13 19:49:57 cfg_id 0
setstate Landroid 2022-04-13 19:49:57 cfg_lg it
setstate Landroid 2022-04-13 19:49:57 cfg_mz_1 6
setstate Landroid 2022-04-13 19:49:57 cfg_mz_2 22
setstate Landroid 2022-04-13 19:49:57 cfg_mz_3 50
setstate Landroid 2022-04-13 19:49:57 cfg_mz_4 76
setstate Landroid 2022-04-13 19:49:57 cfg_mzv_1 3
setstate Landroid 2022-04-13 19:49:57 cfg_mzv_10 2
setstate Landroid 2022-04-13 19:49:57 cfg_mzv_2 2
setstate Landroid 2022-04-13 19:49:57 cfg_mzv_3 1
setstate Landroid 2022-04-13 19:49:57 cfg_mzv_4 0
setstate Landroid 2022-04-13 19:49:57 cfg_mzv_5 3
setstate Landroid 2022-04-13 19:49:57 cfg_mzv_6 2
setstate Landroid 2022-04-13 19:49:57 cfg_mzv_7 1
setstate Landroid 2022-04-13 19:49:57 cfg_mzv_8 0
setstate Landroid 2022-04-13 19:49:57 cfg_mzv_9 3
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_1_1 00:00
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_1_2 0
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_1_3 0
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_2_1 12:00
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_2_2 420
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_2_3 1
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_3_1 12:00
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_3_2 420
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_3_3 0
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_4_1 12:00
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_4_2 420
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_4_3 1
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_5_1 12:00
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_5_2 420
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_5_3 0
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_6_1 12:00
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_6_2 420
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_6_3 1
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_7_1 12:00
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_7_2 420
setstate Landroid 2022-04-13 19:49:57 cfg_sc_d_7_3 0
setstate Landroid 2022-04-13 19:49:57 cfg_tm 19:49:56
setstate Landroid 2022-04-13 19:49:57 dat_bt_m 0
setstate Landroid 2022-04-13 19:49:57 dat_lk 1
setstate Landroid 2022-04-13 19:49:57 dat_lz 7
setstate Landroid 2022-04-13 19:49:57 dat_mac F0FE6B4148EE
setstate Landroid 2022-04-13 19:49:57 directionPitch 3.2
setstate Landroid 2022-04-13 19:49:57 directionRoll 2.4
setstate Landroid 2022-04-13 19:49:57 directionYaw 336.2
setstate Landroid 2022-04-13 19:49:57 firmware 3.51
setstate Landroid 2022-03-21 21:05:23 mowerActive Yes
setstate Landroid 2022-04-13 19:49:57 mowerActiveIndex 1
setstate Landroid 2022-04-13 19:49:57 mowerErrorIndex 0
setstate Landroid 2022-04-13 17:47:23 mowerErrorTxt No error
setstate Landroid 2022-04-13 19:49:57 mowerRainDelay 60
setstate Landroid 2022-04-13 19:49:57 mowerStatusIndex 7
setstate Landroid 2022-04-13 19:39:57 mowerStatusTxt Mowing
setstate Landroid 2022-04-13 19:49:57 mowerTimeCorrection -100
setstate Landroid 2022-04-13 19:43:15 state stopMower
setstate Landroid 2022-04-13 19:49:57 totalBladeTime 50148
setstate Landroid 2022-04-13 19:49:57 totalDistance 882987
setstate Landroid 2022-04-13 19:49:57 totalTime 59363
setstate Landroid 2022-04-13 19:49:57 wifiQuality -70


hat jemand ne Idee?

Grüße
Martin
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 13 April 2022, 20:14:29
Hallo Martin,

habe meinen noch nicht in Betrieb.
firmware 3.51 haben sich die Kommandos geändert?
Falscher IODev
setstate Landroid 2022-04-13 18:32:48 IODev myBroker
setze mal bitte attr Landroid IODev MQTT_Worx

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: brezel am 14 April 2022, 09:13:00
Hallo Otto,

attr Landroid IODev MQTT_Worx

Danke, das war es!

Grüße
Martin
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Müller am 13 August 2022, 16:46:48
Hallo,

funktioniert bei euch das Kantenschneiden ?
Start Stop etc funktioniert, aber Kantenschneiden ist ohne Reaktion.

VG
Jochen
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Violinux am 14 August 2022, 19:04:21
Hallo Jochen,

Kantenschneiden geht einwandfrei.

VG
Uwe
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Lars721 am 24 August 2022, 20:12:45
Hallo Forumsgemeinde,

kann mir jemand sagen, was genau dieser "Active State" bedeutet?
mowerActive:mowerActiveIndex:.* {my %activeState = (
0 => "No",
1 => "Yes",
2 => "Party"


mein Mäher mäht, zeigt den Zustand oder Fehlercodes an, aber der Active Index steht immer auf 0 bzw. No

Danke für Erklärung

Lars
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Lars721 am 25 August 2022, 06:35:53
Zitat von: Lars721 am 24 August 2022, 20:12:45
....was genau dieser "Active State" bedeutet?
mowerActive:mowerActiveIndex:.* {my %activeState = (
0 => "No",
1 => "Yes",
2 => "Party"


mein Mäher mäht, zeigt den Zustand oder Fehlercodes an, aber der Active Index steht immer auf 0 bzw. No

Inzwischen habe ich es selbst erkannt. Active bedeutet, dass ein Zeitplan/Mähplan aktiv ist...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 03 September 2022, 18:23:44
Hallo zusammen,

seit 1. Sept. habe ich mehr oder weniger lange Aussetzer in der Kommunikation (heut ist es besonders schlimm). D.h. ich bekomme immer wieder keine Daten.
Geändert wurde von mir aus nichts.
Wenn ich ein set absetze funktioniert es und die Daten werden aktualisiert.

Kann das jemand bestätigen, gibt es von Seiten Worx Änderungen/Probleme?

Grüße Bernd
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 04 September 2022, 08:45:10
OK, ich habe doch etwas geändert  :o

Update des Mähers auf FW 3.28

Anscheinend sendet er nur noch bei Ereignissen, muss ich aber abwarten, da es gestern geregnet hat ..

Jedenfalls bekomme ich keine laufenden Daten mehr zum Akku.
Wenn ich das Pollen muss, kommt wieder, bei zu oft, die Sperre vom Server. :(
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: edition am 11 September 2022, 07:42:06
Guten morgen

Ist bei mir auch so. Aber der regelmäßige Datenfluss endet bei mir am 05.09. um 10:38 Uhr. Er meldet sich dann wieder am 06.09. um 4:19 Uhr (nach der Verbindungstrennung der Fritzbox) und noch einmal um 4:27 Uhr. Dann ist Funkstille bis 19:07 Uhr (da habe ich den Mähplan geändert), um 19:14:23 Uhr verlässt er die Ladestation, um 19:14:29 Uhr beginnt der Kantenschnitt und um 19:16:54 Uhr beginnt der eigentliche Mähvorgang. Währenddessen passiert nichts, bis er 19:58:55 Uhr das Kabel sucht. Um 19:59:05 Uhr beginnt die Fahrt zur Ladestation, die um 19:59:57 Uhr erreicht wird. Um 20:26:26 Uhr kommt noch eine Meldung bei vollem Akku. Danach passiert wieder nichts, bis er sich um 4:19 Uhr und um 4:27 Uhr wieder nach der Trennung der Fritzbox meldet.
Warum das so ist, weiß ich allerdings nicht. Vorher hat es mir jedoch besser gefallen.

Gruß
edition
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 11 September 2022, 08:40:42
Vermutlich wurde der Datenverkehr eingeschränkt. Es wird ja immer wieder bemängelt, wenn Geräte zu viel reden.

Mir gefällt es auch nicht...

Jedoch sieht der Mähvorgang nun wesentlich galanter aus, so wie er die Kurven, beim Wenden fährt.




Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 12 September 2022, 15:05:41
Zur Info, die Antwort von Worx:

ZitatGuten Tag,
Danke fuer die Erklärung.
Ich habe mit unserer Techniker gesprochen.
Wir bestätigen, dass sich in 3.28 mqtt-Nachrichten geändert haben (wie Sie bereits bemerkt haben), jetzt werden sie nur noch im Falle eines Ereignisses gesendet und es gibt keine Nachrichtenperioden mehr ohne wesentliche Änderungen.
In Zukunft werden wir API zur Verfügung stellen, um weitere Informationen vom Roboter zu erhalten.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: networker am 28 Oktober 2022, 13:11:34
Hallo Otto,

wurde das mit dem Drehmoment bereits im Template aufgenommen?

Zitat von: efyzz am 01 November 2021, 23:24:00
Moin,
es gibt mit der neuen FW3.26 eine Möglichkeit zur Drehmoment-Verstellung.
https://www.roboter-forum.com/index.php?thread/54572-firmware-v3-26/ (https://www.roboter-forum.com/index.php?thread/54572-firmware-v3-26/)

Bisher nur über die DeskApp (mit Plugin) einstellbar:
https://drive.google.com/file/d/17WxcaCgKIAUzEbg0KuuBzoUv1fAfd4-s/view?usp=sharing (https://drive.google.com/file/d/17WxcaCgKIAUzEbg0KuuBzoUv1fAfd4-s/view?usp=sharing)

Daher habe ich das mal hier mit reingebastelt:

jsonMap:
cfg_tq:torqueSetting

setList:
torqueSetting:slider,-50,1,50 PRM100/<MAC>/commandIn {"tq":$EVTPART1}

Vielleicht nimmst Du das ja mit ins Template auf, Otto.  :)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: andi11 am 30 Oktober 2022, 10:02:27
wie macht Ihr das seit neuestem notwendige Status abfragen? Ich schalte meinem Shaun den Strom abends weg, wenn der Akku voll ist und er nicht irgendwo im Rasen mit Fehler steht.
=> 13Uhr einschalten, 18Uhr Status checken, 18:05Uhr Strom abschalten wenn alles ok ist würde reichen in meinem Fall
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 30 Oktober 2022, 10:46:58
Zitat von: andi11 am 30 Oktober 2022, 10:02:27
wie macht Ihr das seit neuestem notwendige Status abfragen? Ich schalte meinem Shaun den Strom abends weg, wenn der Akku voll ist und er nicht irgendwo im Rasen mit Fehler steht.
=> 13Uhr einschalten, 18Uhr Status checken, 18:05Uhr Strom abschalten wenn alles ok ist würde reichen in meinem Fall

Das funktioniert doch weiterhin. Events werden immer noch gemeldet, nur keine regelmäßigen Werte mehr.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 30 Oktober 2022, 11:03:35
Zitat von: networker am 28 Oktober 2022, 13:11:34
Hallo Otto,

wurde das mit dem Drehmoment bereits im Template aufgenommen?

Ich bin zwar nicht Otto  ;D, antworte aber trotzdem Mal.
Soweit ich das sehe, ist es bisher nicht aufgenommen (mein Fhem ist nicht ganz aktuell).
Das kannst du aber selbst überprüfen. Wenn du das Template auswählst bekommst du es angezeigt ohne dass du es übernehmen musst.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: andi11 am 30 Oktober 2022, 12:30:09
Hm irgendwie mag nach einem Wechsel von Node.js mein DBLog nicht. Umbenannt hab ich die Readings, aber geloggt wird nichts?

defmod Shaun MQTT2_DEVICE
attr Shaun DbLogExclude .*
attr Shaun DbLogInclude mowerActiveIndex,mowerErrorIndex,batteryPercent
attr Shaun devicetopic DB510/F0FE6BB19C2E
attr Shaun event-on-change-reading .*
attr Shaun icon scene_robo_lawnmower
attr Shaun 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\
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 Shaun model worx_landroid_mower
attr Shaun readingList $DEVICETOPIC/commandOut:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr Shaun room Aussen
attr Shaun 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}\
  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 Shaun stateFormat Active: mowerActive, Status: mowerStatusTxt, Error: mowerErrorTxt
attr Shaun 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")}}

setstate Shaun Active: Yes, Status: Mowing, Error: No error
setstate Shaun 2022-10-30 09:45:15 IODev MQTT_Worx
setstate Shaun 2022-10-30 12:27:07 SerialNumber 201830190905002650EF
setstate Shaun 2022-10-30 09:45:15 attrTemplateVersion 20210602
setstate Shaun 2022-10-30 12:27:07 batteryChargeCycle 629
setstate Shaun 2022-10-30 12:27:07 batteryCharging 0
setstate Shaun 2022-10-30 12:27:07 batteryPercent 100
setstate Shaun 2022-10-30 12:27:07 batteryTemperature 22.1
setstate Shaun 2022-10-30 12:27:07 batteryVoltage 19.10
setstate Shaun 2022-10-30 12:27:07 cfg_cmd 0
setstate Shaun 2022-10-30 12:27:07 cfg_dt 30/10/2022
setstate Shaun 2022-10-30 12:27:07 cfg_id 0
setstate Shaun 2022-10-30 12:27:07 cfg_lg it
setstate Shaun 2022-10-30 12:27:07 cfg_mz_1 0
setstate Shaun 2022-10-30 12:27:07 cfg_mz_2 0
setstate Shaun 2022-10-30 12:27:07 cfg_mz_3 0
setstate Shaun 2022-10-30 12:27:07 cfg_mz_4 0
setstate Shaun 2022-10-30 12:27:07 cfg_mzv_1 0
setstate Shaun 2022-10-30 12:27:07 cfg_mzv_10 0
setstate Shaun 2022-10-30 12:27:07 cfg_mzv_2 0
setstate Shaun 2022-10-30 12:27:07 cfg_mzv_3 0
setstate Shaun 2022-10-30 12:27:07 cfg_mzv_4 0
setstate Shaun 2022-10-30 12:27:07 cfg_mzv_5 0
setstate Shaun 2022-10-30 12:27:07 cfg_mzv_6 0
setstate Shaun 2022-10-30 12:27:07 cfg_mzv_7 0
setstate Shaun 2022-10-30 12:27:07 cfg_mzv_8 0
setstate Shaun 2022-10-30 12:27:07 cfg_mzv_9 0
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_1_1 00:00
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_1_2 0
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_1_3 0
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_2_1 00:00
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_2_2 0
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_2_3 0
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_3_1 00:00
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_3_2 0
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_3_3 0
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_4_1 00:00
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_4_2 0
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_4_3 0
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_5_1 00:00
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_5_2 0
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_5_3 0
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_6_1 00:00
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_6_2 0
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_6_3 0
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_7_1 00:00
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_7_2 0
setstate Shaun 2022-10-30 12:27:07 cfg_sc_d_7_3 0
setstate Shaun 2022-10-30 12:27:07 cfg_tm 13:27:06
setstate Shaun 2022-10-30 12:27:07 dat_bt_m 1
setstate Shaun 2022-10-30 12:27:07 dat_lk 0
setstate Shaun 2022-10-30 12:27:07 dat_lz 0
setstate Shaun 2022-10-30 12:27:07 dat_mac F0FE6BB19C2E
setstate Shaun 2022-10-30 12:27:07 directionPitch -1.1
setstate Shaun 2022-10-30 12:27:07 directionRoll -1.4
setstate Shaun 2022-10-30 12:27:07 directionYaw 327.8
setstate Shaun 2022-10-30 12:27:07 firmware 3.52
setstate Shaun 2022-10-30 09:54:31 mowerActive Yes
setstate Shaun 2022-10-30 12:27:07 mowerActiveIndex 1
setstate Shaun 2022-10-30 12:27:07 mowerErrorIndex 0
setstate Shaun 2022-10-30 09:54:31 mowerErrorTxt No error
setstate Shaun 2022-10-30 12:27:07 mowerRainDelay 0
setstate Shaun 2022-10-30 12:27:07 mowerStatusIndex 7
setstate Shaun 2022-10-30 12:27:07 mowerStatusTxt Mowing
setstate Shaun 2022-10-30 12:27:07 mowerTimeCorrection -100
setstate Shaun 2022-10-30 12:26:58 state startMower
setstate Shaun 2022-10-30 12:27:07 totalBladeTime 39538
setstate Shaun 2022-10-30 12:27:07 totalDistance 719800
setstate Shaun 2022-10-30 12:27:07 totalTime 41673
setstate Shaun 2022-10-30 12:27:07 wifiQuality -59

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 30 Oktober 2022, 12:40:16
Zitat von: networker am 28 Oktober 2022, 13:11:34
Hallo Otto,

wurde das mit dem Drehmoment bereits im Template aufgenommen?
Ich baue das mit ein. Danke für die Info.

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 30 Oktober 2022, 13:02:53
Zitat von: andi11 am 30 Oktober 2022, 12:30:09
Hm irgendwie mag nach einem Wechsel von Node.js mein DBLog nicht. Umbenannt hab ich die Readings, aber geloggt wird nichts?

Was hat Node.js mit MQTT zu tun?

Für deine Zwecke wäre doch batteryCharging sinnvoller...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: andi11 am 30 Oktober 2022, 13:06:15
Zitat von: frober am 30 Oktober 2022, 13:02:53
Was hat Node.js mit MQTT zu tun?
Garnichts, außer das mein Reading vorher batteryLevel war und jetzt batteryPercent, und ich es daher auch svg usw anpassen musste.

Zitat von: frober am 30 Oktober 2022, 13:02:53
Für deine Zwecke wäre doch batteryCharging sinnvoller...
Das protokollieren von mowerActiveIndex,mowerErrorIndex,batteryPercent ist für mich losgelöst von jeder weiteren Anforderung
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 30 Oktober 2022, 14:33:09
mowerActiveIndex - wird nur selten wechseln
mowerErrorIndex  - da sollte normal auch wenig passieren
batteryPercent - da sollte immer was geloggt werden

batteryCharging - wechselt nur zwischen 0 und 1 - auch eher uninteressant.

Ich sehe jetzt keinen Grund warum nichts geloggt werden sollte, zumindest für batteryPercent.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 30 Oktober 2022, 15:52:28
batteryPercent sendet mit der neuen FW nur noch während des Ladens.

batteryCharging hatte ich nur wg dem Strom Abschalten für andi11 erwähnt.


Ich hatte auch keinen Fehler entdeckt, aber man kann das Logging mit einen dbReb-Device einfach überprüfen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: andi11 am 30 Oktober 2022, 16:33:25
Zitat von: Otto123 am 30 Oktober 2022, 14:33:09
mowerActiveIndex - wird nur selten wechseln
das hier hat mich auf die richtige Idee gebracht. Durch das event-on-change-reading .* wird nur geloggt, wenn sich was ändert. Wie von dir angemerkt passiert das aber nicht oft. batteryPercent hat sich beim fahren dann geändert und damit gab es hier auch ohne Eintrag im event-min-interval neue Logwerte.

Weiterhin habe noch von moverActiveIndex auf MoverStatusIndex gewechselt für das logging. Jetzt hab ich angepasst auf:

attr Shaun DbLogInclude mowerStatusIndex,mowerErrorIndex,batteryPercent
attr Shaun event-min-interval mowerErrorIndex:600,mowerStatusIndex:600


Vielen Dank an euch
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 01 November 2022, 14:11:24
Zitat von: Otto123 am 30 Oktober 2022, 12:40:16
Ich baue das mit ein. Danke für die Info.

Gruß Otto
Drehmoment habe ich im Template eingebaut und eingecheckt.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Heatseeker am 06 November 2022, 16:31:39
Moin,
ich denke ich habe alles soweit richtig eingerichtet, aber der MQTT Client möchte nicht verbinden. Ich vermute, dass was mit dem zerlegen des p12 Zertifikats etwas nicht klappte.
Ich habe die Zeilen:
"openssl
pkcs12 -in /home/pi/AWS.p12 -nokeys -passin pass: -out aws.cer -clcerts"

...etc. in FHEM ausgeführt mit angepasstem pfad natürlich aber wo werden die erzeugt? ich finde nichts.
Anensten war ja fast alles copy/paste bis auf die BoardID und MAC.

Ich frage mich nur, wo die erzeugte UUID reinmuss, es sieht ja so aus, als würde die eh automatisch erzeugt werden.

Grüße
Heatseeker
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 06 November 2022, 17:05:22
Die Antwort steht in dem ersten Post hier im Thread  ::) da habe ich extra alle Möglichkeiten zum prüfen im Detail beschrieben.

wo werden die erzeugt ? - im aktuellen Pfad von FHEM, normal ist das /opt/fhem/

Wo die uuid rein muss? Steht doch hier?
Zitat{my $uuid=substr(genUUID(),0,36);;fhem("attr MQTT_Worx clientId android-$uuid")}
Wieso wird die automatisch erzeugt?

Die ganzen Codezeilen sind entweder Zeile für Zeile in der FHEM Kommandozeile oder am Block in der Raw Definition einzugeben.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Heatseeker am 06 November 2022, 20:11:52
Moin Otto,

danke für deine Hilfe, aber ich habe das nicht gelesen, dass die nachher in /opt/fhem liegen sollen. Dort lagen sie bei mir auch nicht. Scheinbar ging das über fhem nciht beim mir. Habe die Dateien dann in der shell erzeugt und kopiert. Nachdem ich noch den owner etc auf den fhem user gelegt habe kam auch eine Verbindung zustande.

Vielen Dank! Ich schau dann mal weiter!

Grüße
Heatseeker


Update: passt alles, habe nun meine alte Landroid Sachen nun erfoglreich auf MQTT umgezogen
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: gramels am 11 Januar 2023, 11:40:20
Hallo,
die Desk App liefert einen 404 (wohl ein nicht nachgeführter change bei worx).

Gibt es noch einen anderen Weg an das p12  und die Parameter zu kommen?

Grüsse

gramels
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 11 Januar 2023, 13:46:03
Hi,

mal kurz geschaut und gegoogelt, die haben scheinbar das Login geändert. Da geht derzeit wohl mit der alten Methode nichts mehr. Die iobroker Leute haben da im September schon neu entwickelt.

Na das kann ja lustig werden. Ich habe da derzeit keinen Plan :(

Gruß Otto
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 11 Januar 2023, 17:13:30
Bestätige, Anmeldung in der App und im Account funktioniert nicht mehr.

Ich habe mal eine Mail an den Support geschrieben....
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 11 Januar 2023, 19:42:36
Naja die Anmeldung in der App mit dem alten Account funktioniert - umständlich außerhalb er App über eine Webseite. In der App selbst ist offenbar beim letzten Update komplett "reset" gedrückt worden.

Das MQTT2_CLIENT Device läuft bei mir scheinbar völlig in den "Honigtopf" da passiert nichts mehr, der denkt offenbar es ist alles ok, da kommt nicht mal ein Logeintrag. Habe allerdings den Timeout nicht abgewartet.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 11 Januar 2023, 21:02:11
OK, ich hatte es, bewusst, mit Passwort  versucht.
Über die E-Mail bin ich mit der App nun auch wieder angemeldet und es ist alles noch da.

Unter https://account.worxlandroid.com/login (https://account.worxlandroid.com/login) komme ich nicht mehr rein, allerdings wird die Seite weitergeleitet auf https://id.eu.worx.com/login (https://id.eu.worx.com/login)

Der MQTT2_Cient ist Open, sehe keinen Fehler, aber mein Mäher ist abgeschaltet und im Winterschlaf.

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 12 Januar 2023, 09:48:36
Aktuell kann ich mich am Webaccount wieder anmelden.

Ich habe nochmal angefragt, wie es um die angekündigte API steht.
Evtl. hängen die Änderungen damit zusammen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 12 Januar 2023, 19:04:38
Bzgl. API gibt es keine Neuigkeiten.

Mein Mäher bleibt vorerst um Winterschlaf. Mal abwarten, was er danach spricht...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 13 Januar 2023, 17:51:43
Die Landroid DeskApp V0.0.28 ist gefixt und funktioniert.

https://www.roboter-forum.com/threads/entwicklungsprojekt-worx-landroid-kress-mission-desktop-app.22795/ (https://www.roboter-forum.com/threads/entwicklungsprojekt-worx-landroid-kress-mission-desktop-app.22795/)


Edit:
Zitat aus 2.183 "Positec stellt auf custom authorisation via wss um"

Weiter habe ich noch nicht geschaut...

Edit2:
Hmm, das Anmelden in der App scheint zu funktionieren, beim Verbindung wirds dann wieder abgelehnt..

Edit3:
Neuer Broker: iot.eu-west-1.worxlandroid.com
evtl. habe ich mich durch die vielen Versuche gesperrt, probiere es in 24h noch einmal
Falls es jemand probieren sollte, nicht die Config + Cert aus der vorherigen Version übernehmen, da sich der Broker etc. geändert hat. Dadurch habe ich mich wahrscheinlich gesperrt.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 13 Januar 2023, 18:45:25
 ;D
Im MQTT2_Client die Def geändert in iot.eu-west-1.worxlandroid.com:8883

und tada:


setstate Mower 2023-01-13 18:41:26 batteryChargeCycle 358
setstate Mower 2023-01-13 18:41:26 batteryCharging 0
setstate Mower 2023-01-13 18:41:26 batteryPercent 100
setstate Mower 2023-01-13 18:41:26 batteryTemperature 16.5
setstate Mower 2023-01-13 18:41:26 batteryVoltage 19.36
setstate Mower 2023-01-13 18:41:26 borderLength 118
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: gramels am 13 Januar 2023, 19:08:02
Zitat von: frober am 13 Januar 2023, 17:51:43
Die Landroid DeskApp V0.0.28 ist gefixt und funktioniert.

https://www.roboter-forum.com/threads/entwicklungsprojekt-worx-landroid-kress-mission-desktop-app.22795/ (https://www.roboter-forum.com/threads/entwicklungsprojekt-worx-landroid-kress-mission-desktop-app.22795/)

mhh, bei mir kommt mit der 0.28 immer noch nen 404.
Vll. mal auf Windows probieren und nicht mit wine

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 13 Januar 2023, 19:16:29
Zitat von: gramels am 13 Januar 2023, 19:08:02
mhh, bei mir kommt mit der 0.28 immer noch nen 404.
Vll. mal auf Windows probieren und nicht mit wine

Die App scheint noch nicht zu funktionieren, auch wenn die Anmeldung klappt.
Ich bin auf Windows. Anmeldung funktioniert, Verbindung wird dann mit 404 abgelehnt.
Wieso in Fhem die Verbindung funktioniert, k.A.
Das Cert ist weiterhin das gleiche.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: gramels am 13 Januar 2023, 19:17:33
ja, habs auch grad auf Windows probiert: 404

bearer token und json Daten kommen

habe mal Eisha angeschrieben
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 18 Februar 2023, 07:37:43
Bei mir hat's jetzt leider auch die Verbindung zerlegt.

Mit der DeskApp kann ich keine Verbindung herstellen, gleichwohl zeigt er mir im Trace Oauth-Token und Product-Items an. Das Interessante ist, dass mit ioBroker die Verbindung zur Worx-/Amazon-Cloud einwandfrei hergestellt werden kann und auch stabil bleibt. ioBroker verwendet iot.eu-west-1.worxlandroid.com als Broker-Adresse, diese habe ich wie frober im FHEM ebenfalls eingetragen, allerdings kann keine Verbindung hergestellt werden.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 18 Februar 2023, 08:45:35
Da würde anscheinend nochmal etwas geändert  :o
Bei mir geht es auch nicht mehr und in der App musste ich mich schon wieder neu anmelden.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 18 Februar 2023, 09:44:40
Der Unterschied dürfte darin liegen, dass ioBroker mittlerweile nicht mehr mit Zertifikaten die Authentifizierung durchführt sondern über wss-custom-auth.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 18 Februar 2023, 10:08:12
Ja, das wurde, anscheinend mit Hilfe von Worx, umgestellt und die DeskApp scheint auch kurz vor der Lösung zu stehen.

Mir ist auch aufgefallen, dass die MobilApp immer noch den alten Link auf AWS benutzt.

Stellt sich die Frage, ob das mit MQTT2_CLIENT auf funktioniert...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 18 Februar 2023, 10:14:00
Aufgrund der anderen Authentifizierung durch den Client wird diese Frage fundiert nur Rudolf beantworten können.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 18 Februar 2023, 10:43:57
ZitatAufgrund der anderen Authentifizierung durch den Client wird diese Frage fundiert nur Rudolf beantworten können.
Kann mir bitte jemand die Frage konkret ausformuliert stellen?
Ich habe zwar die letzten 20 Beitraege durchgeflogen, bin aber nicht sicher, die Frage richtig verstanden zu haben.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 18 Februar 2023, 10:59:57
Hallo Rudi,

ich kann dir nur ein Zitat aus dem Roboterform liefern:
ZitatBei einem neuen Account kommt auch oder eben nicht ein neues Zertifikat zum Einsatz.
Bei ioBroker haben wohl die Positec Entwickler mitgeholfen auf AWS custom authentication umzustellen. War da auch einfach, weil Amazon für node.js und Javascript ein iot device sdk bereitstellt.

Die Anmeldung in der MobilApp erfolgt nicht mehr mit Passwort, sondern über einen per Mail gesendeten Link (Token)

Nachtrag:
Vermutlich betrifft es dies
https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-controlling-access-to-apis-lambda-authorizer.html (https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-controlling-access-to-apis-lambda-authorizer.html)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 18 Februar 2023, 11:42:55
Reicht mir leider nicht als Frage, ich versuche zu raten..

wss-custom-auth suggeriert MQTT ueber wss (aka WebSocket + SSL). Das sollte mit MQTT2_CLIENT funktionieren, wenn man die Adresse als wss:hostname:port definiert, ich habe das aber nie getestet.
Zusaetzliche HTTP Header fuer wss zu definieren ist zZt. noch umstaendlich, beim Verbindugsaufbau muss ein header Internal vorhanden sein.
Ein Weg dafuer waere in der FHEM Kommandozeile
{ $defs{IODev}{header} =  { Hdr1=>"Val1", Hdr2=>"Val2"} }

gefolgt vom Verbindungsaufbau (z.Bsp. mit set IODev disconnect; set IODev connect)
Ich kann gerne ein httpHeader Attribut einbauen, falls das oben geschriebene funktioniert.

Die Seite https://docs.aws.amazon.com/iot/latest/developerguide/custom-auth.html meint aber, dass custom authentication auch ohne wss moeglich ist.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 18 Februar 2023, 13:35:33
Danke Rudi, ich denke das ist der richtige Ansatz. Zumindest war wss auch im Gespräch.

Ich werde das später zu testen...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 18 Februar 2023, 18:22:25
Hallo Rudi,

einen ersten Test habe ich durchgeführt. Aber es ist möglich, dass ich durch die vielen auto Fehlversuche seit gestern für 24h gesperrt bin.

Ist es möglich, das Autoreconnet zu verhindern? Aktuell habe ich mal attr MQTT2_Worx disconnectAfter 5 eingetragen. Edit: Hilft nicht



in der Kommandozeile:
{ $defs{MQTT2_Worx}{header} =  { Hdr1=>"Val1", Hdr2=>"Val2"} }; set MQTT2_Worx disconnect; set MQTT2_Worx connect

damit bekomme ich
HASH(0x8048080)
der Client bleibt disconnect


mit verbose 5 im Log (ich habe beide Domains getestet):
2023.02.18 17:53:02 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:8883/ NonBlocking via https
2023.02.18 17:53:02 4: IP: iot.eu-west-1.worxlandroid.com -> 34.241.102.83
2023.02.18 17:53:03 5: HttpUtils request header:
GET / HTTP/1.1
Host: iot.eu-west-1.worxlandroid.com:8883
User-Agent: fhem
Accept-Encoding: gzip,deflate
Hdr1: Val1
Connection: Upgrade
Sec-WebSocket-Key: XhxEjAOEdbCfW5FFNGuMAA==
Sec-WebSocket-Version: 13
Hdr2: Val2
Upgrade: websocket

2023.02.18 17:53:08 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:8883/ NonBlocking via https
2023.02.18 17:53:08 4: IP: iot.eu-west-1.worxlandroid.com -> 34.241.102.83
2023.02.18 17:53:08 5: HttpUtils request header:
GET / HTTP/1.1
Host: iot.eu-west-1.worxlandroid.com:8883
User-Agent: fhem
Accept-Encoding: gzip,deflate
Upgrade: websocket
Hdr2: Val2
Hdr1: Val1
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: knRUEaoFx0cWBDevEq9Ljg==
Connection: Upgrade

2023.02.18 17:53:13 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:8883/ NonBlocking via https
2023.02.18 17:53:13 4: IP: iot.eu-west-1.worxlandroid.com -> 34.241.102.83
2023.02.18 17:53:13 5: HttpUtils request header:
GET / HTTP/1.1
Host: iot.eu-west-1.worxlandroid.com:8883
User-Agent: fhem
Accept-Encoding: gzip,deflate
Hdr1: Val1
Connection: Upgrade
Sec-WebSocket-Key: FFK4U/gzoeFogrKKBqUskg==
Sec-WebSocket-Version: 13
Hdr2: Val2
Upgrade: websocket

2023.02.18 17:53:18 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:8883/ NonBlocking via https
2023.02.18 17:53:18 4: IP: iot.eu-west-1.worxlandroid.com -> 34.241.102.83
2023.02.18 17:53:19 5: HttpUtils request header:
GET / HTTP/1.1
Host: iot.eu-west-1.worxlandroid.com:8883
User-Agent: fhem
Accept-Encoding: gzip,deflate
Hdr1: Val1
Sec-WebSocket-Version: 13
Connection: Upgrade
Sec-WebSocket-Key: Mp0sHT32DDla/+nY1Y9xLQ==
Upgrade: websocket
Hdr2: Val2

2023.02.18 17:53:24 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:8883/ NonBlocking via https
2023.02.18 17:53:24 4: IP: iot.eu-west-1.worxlandroid.com -> 34.241.102.83
2023.02.18 17:53:24 5: HttpUtils request header:
GET / HTTP/1.1
Host: iot.eu-west-1.worxlandroid.com:8883
User-Agent: fhem
Accept-Encoding: gzip,deflate
Sec-WebSocket-Version: 13
Connection: Upgrade
Sec-WebSocket-Key: 0zV1yyxAdF0vGZG7xseLOQ==
Hdr1: Val1
Hdr2: Val2
Upgrade: websocket



2023.02.18 17:56:19 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking via https
2023.02.18 17:56:19 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 54.247.51.198
2023.02.18 17:56:19 5: HttpUtils request header:
GET / HTTP/1.1
Host: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
User-Agent: fhem
Accept-Encoding: gzip,deflate
Sec-WebSocket-Key: KUj0xhxtF1mQ7scdpzKfrA==
Connection: Upgrade
Sec-WebSocket-Version: 13
Hdr1: Val1
Hdr2: Val2
Upgrade: websocket

2023.02.18 17:56:24 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking via https
2023.02.18 17:56:24 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 54.247.51.198
2023.02.18 17:56:25 5: HttpUtils request header:
GET / HTTP/1.1
Host: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
User-Agent: fhem
Accept-Encoding: gzip,deflate
Hdr2: Val2
Upgrade: websocket
Sec-WebSocket-Key: bcyGlNl+/BrxIIFpCMHQog==
Connection: Upgrade
Sec-WebSocket-Version: 13
Hdr1: Val1

2023.02.18 17:56:30 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking via https
2023.02.18 17:56:30 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 54.247.51.198
2023.02.18 17:56:30 5: HttpUtils request header:
GET / HTTP/1.1
Host: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
User-Agent: fhem
Accept-Encoding: gzip,deflate
Hdr2: Val2
Upgrade: websocket
Hdr1: Val1
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: qXzM1G1dfGKs8ZJbAV9qqw==
Connection: Upgrade

2023.02.18 17:56:35 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking via https
2023.02.18 17:56:35 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 54.247.51.198
2023.02.18 17:56:35 5: HttpUtils request header:
GET / HTTP/1.1
Host: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
User-Agent: fhem
Accept-Encoding: gzip,deflate
Hdr2: Val2
Upgrade: websocket
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: WqAD8cZ92iU8KhKBht7V6A==
Connection: Upgrade
Hdr1: Val1

2023.02.18 17:56:41 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking via https
2023.02.18 17:56:41 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 34.241.250.157
2023.02.18 17:56:41 5: HttpUtils request header:
GET / HTTP/1.1
Host: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
User-Agent: fhem
Accept-Encoding: gzip,deflate
Hdr2: Val2
Upgrade: websocket
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: IV/ry7/nWetm6lIwu+Ur1Q==
Connection: Upgrade
Hdr1: Val1

2023.02.18 17:56:46 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking via https
2023.02.18 17:56:46 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 34.241.250.157
2023.02.18 17:56:46 5: HttpUtils request header:
GET / HTTP/1.1
Host: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
User-Agent: fhem
Accept-Encoding: gzip,deflate
Hdr2: Val2
Upgrade: websocket
Hdr1: Val1
Connection: Upgrade
Sec-WebSocket-Key: WujlCNQiQGcmF6Kl4S0gMg==
Sec-WebSocket-Version: 13

2023.02.18 17:56:52 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking via https
2023.02.18 17:56:52 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 34.241.250.157
2023.02.18 17:56:52 5: HttpUtils request header:
GET / HTTP/1.1
Host: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: Upgrade
Sec-WebSocket-Key: Jr3WBGv1ImerghVrpeH3ww==
Sec-WebSocket-Version: 13
Hdr1: Val1
Hdr2: Val2
Upgrade: websocket


Ich habe mir den Code vom ioBroker angesehen, da wird ein  "oauth/token?" mit der Url gesendet.
https://github.com/iobroker-community-adapters/ioBroker.worx/blob/master/main.js (https://github.com/iobroker-community-adapters/ioBroker.worx/blob/master/main.js)

async refreshToken() {
        this.log.debug("Refresh token");
        await this.requestClient({
            url: this.clouds[this.config.server].loginUrl + "oauth/token?",
            method: "post",
            headers: {
                accept: "application/json",
                "content-type": "application/json",
                "user-agent": this.userAgent,
                "accept-language": "de-de",
            },
            data: JSON.stringify({
                client_id: this.clouds[this.config.server].clientId,
                scope: "user:profile mower:firmware mower:view mower:pair user:manage mower:update mower:activity_log user:certificate data:products mower:unpair mower:warranty mobile:notifications mower:lawn",
                refresh_token: this.session.refresh_token,
                grant_type: "refresh_token",
            }),
        })
            .then((response) => {
                this.log.debug(JSON.stringify(response.data));
                this.session = response.data;
                if (this.mqttC) {
                    this.mqttC.updateCustomAuthHeaders(this.createWebsocketHeader());
                } else {
                    this.log.debug("Cannot update token for MQTT connection. MQTT Offline!");
                }
            })
            .catch((error) => {
                this.log.error(error);
                error.response && this.log.error(JSON.stringify(error.response.data));
            });
    }
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 18 Februar 2023, 23:13:30
Zitat{ $defs{MQTT2_Worx}{header} =  { Hdr1=>"Val1", Hdr2=>"Val2"} }; set MQTT2_Worx disconnect; set MQTT2_Worx connect
Ich hoffe Du hast das nicht so gesetzt, Hdr1, usw war nur als Beispiel gedacht :)

MQTT2_CLIENT over WebSocket war noch nicht soweit: mosquitto wollte mit FHEM ueber Websocket nicht reden.

Da ich keine Doku gefunden habe, und auch die mosquitto debug-Ausgabe nichts verraet, protokollierte ich eine Verbindung mit einem JavaScript MQTT-WebSocket Client mit strace, das war etwas muehselig. Ergebnis:  MQTT CONNECT wird erst beantwortet, wenn das HTTP Header Sec-WebSocket-Protocol:mqtt gesetzt ist. Es mussten auch ein paar weitere Kleinigkeiten geaendert werden, jetzt scheint es aber zu tun, auch mit wss:

Es gibt jetzt auch ein httpHeader Attribut, ist aber fuer "plain" ws: bzw. wss: nicht notwendig.
Fuer wss-custom-auth oder andere merkwuerdige Loesungen mag es aber nuetzlich sein.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 19 Februar 2023, 07:18:56
Vielen Dank, Rudi.

Das ist mit Sicherheit ein Puzzle-Teil, aber ich fürchte, @Otto, dass wir das Problem konkret mit Worx/Landroid alleine so nicht gelöst bekommen. Wenn ich mit meinen rudimentären Kenntnissen den Code https://github.com/iobroker-community-adapters/ioBroker.worx/blob/master/main.js ansehe, sind noch mehrere Dinge nötig, um das wieder zum Fliegen zu bringen.

Es fängt damit an, dass m.E. grds. über einen API-Request nach User-Login die erforderlichen Informationen abgeholt werden, mit denen dann schlussendlich die eigentliche MQTT-Verbindung hergestellt wird.

Es beginnt in Zeile 121 bzw 145 mit dem Login, da bekommt der Client dann auch zunächst den Token. Ab Zeile 267 fragt er in der Folge per API-Zugriff die DeviceList ab (mittels zuvor erhaltenem Token) und ab Zeile 483 dann die dazugehörigen Details, um dann ab Zeile 715 bzw. 724 die eigentliche Verbindung zum Broker herzustellen.

Insofern fürchte ich, muss in FHEM vor dem Herstellen der MQTT-Client-Verbindung dieses Verhalten durch vorgelagerte Funktion(en) nachgebaut werden. Selbst wenn sich die Details des Roboters und der Infrastruktur, die zum Herstellen der MQTT-Verbindung bzw. zur Definition des Devices wichtig sind, nicht allzu häufig ändern dürften, muss aber auf jeden Fall der Token alle 3600 Sekunden erneuert werden - und dass geht nur über API-Zugriff nach Login.

@Rudi: wäre es ein Ansatz, über das neu eingebaute Attribut httpHeader key:value auch Perl-Funktionen à la key:{value} zu ermöglichen, um darüber den jeweils gültigen/erneuerten Token mitzugeben?

Das kann ich persönlich leider nicht umsetzen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 19 Februar 2023, 09:51:19
Zitat von: rudolfkoenig am 18 Februar 2023, 23:13:30
Ich hoffe Du hast das nicht so gesetzt, Hdr1, usw war nur als Beispiel gedacht :)

Leider doch  ::)
Für mich ist das Neuland, was müsste anstelle Hdr1/2 angegeben werden?

Die Frage ist wohl untergegangen: ist das auto reconnect abschaltbar?
Der Server hat bisher, bei zu vielen Anfragen den Client für 24h gesperrt. Bei unseren Versuche ist dies schnell erreicht.

Die Auth erfolgt über die API, das ist richtig. Der per Mail gesendete Link mit dem Token geht direkt wieder an die API. Da er nur 10Min gültig ist, kann ich ihn teilen:
https://app.worxlandroid.com/login?code=def50200473b1d0d1935d6d9d6075e4a40efc5de52902f7a2d5d75b26dd18751114ca238495eb3dbe84362f111ace033807c1aae83f261cc724f58dc33397493303696234fa29804a381a80629f794b5fe3f605f240b0a58e6aeefc4222d95ae1874e3bdd4d937d226b2f90424378e7f06217c415f52ef76f24b6dd26639a17329cea5d75508ace6695ec7aa4e44e3d3f2d727f2437388a784686d6d0dd5ee7f73f905ffcec12e630370f5031c6a2b6bea1e6a05dfc2a05370cea6b8f9d5f3c846812fca245ceaaa80ae51f6bf2bd6b30c9f6c86fa0f8edc025e9d5167d3e2c35103319d172dc9575c2e77b87ee84ce041490c62d7acc2c368a017d65912a0362c9afa4ea39eb69d191fa672a165e2c725c24b0207a41215254ba1530b6c24f33b4d9a22565a3c28e15a55c9e81b2ebac2a3453c0429b5cf7d53f1c56ad11151a299969bf1a59a3d0b850d8be34e814416c5775d980e35731a95e424542255fa5cc780fdfb455058913aaf3692ac9d0afa8cafb2db051f8ed61e743b5f549874e26aa2a97e83b97d2f8743922eeb304f3650fbb03fe9fc67fda2033c50f8b7d62bb124c6caa27b5afa860d708bd07d7a85c248c72ed82c729ed09461590c033b66ed5376c9a45a2bcfda3f840708ddfd5b9b7924296bf94d3b675e28156830dd9e9f1c90bac3e70d9256863331ec5aa4b4ca5c246d9339fa9d34e46d82bb20a4af5596a8b0c7acc6f90f02792e1f332b38b2aafc984c0dfc41c362988636c6a18e822f9b16a7fa910e8bd465497011837b16b59144289766fcc5a0f5cda3765d3a0dbda4daaf956ffb6188b0fd06e35641763f8346fc58dd2de8cd9f067c850163233985aeca890832b7fc4fdbc89e3128ffa2cd2c2b53e&state=wFrsjjVORAT8Hpk7b5zPG7bZFe8-XkXhr43 (https://app.worxlandroid.com/login?code=def50200473b1d0d1935d6d9d6075e4a40efc5de52902f7a2d5d75b26dd18751114ca238495eb3dbe84362f111ace033807c1aae83f261cc724f58dc33397493303696234fa29804a381a80629f794b5fe3f605f240b0a58e6aeefc4222d95ae1874e3bdd4d937d226b2f90424378e7f06217c415f52ef76f24b6d29cea5d75508ace6695ec7aa4e44e3d3f2d727f2437388a784686d6d0dd5ee7f73f905ffcec12e630370f5031c6a2b6bea1e6a05dfc2a05370cea6b8f9d5f3c846812fca245ceaaa80ae51f6bf2bd6b30c9f6c86fa0f8edc025e9d5167d3e2c35103319d172dc9575c2e77b87ee84ce041490c62d7acc2c368a017d65912a0362c9afa4ea39eb69d191fa672a165e2c725c24b0207a41215254ba1531f74dbe0b6c24f33b4d9a22565a3c28e15a55c9e81b2ebac2a3453c0429b5cf7d53f1c56ad11151a299969bf1a59a3d0b850d8be34e814416c5e35731a95e424542255fa5cc780fdfb455058913aaf3692ac9d0afa8cafb2db051f8ed61e743b5f549874e26aa2a97e83b97d2f8743922eeb304f3650fbb03fe9fc67fda2033c50f8b7d62bb124c6caa27b5afa860d708bd07d7a85c248c72ed82c729ed09461590c033b66ed5376c9a45a2bcfda3f840708ddfd5b9b7924296bf94d3b675e28156830dd9e9f0d5a135071c90bac3e70d9256863331ec5aa4b4ca5c246d9339fa9d34e46d82bb20a4af5596a8b0c7acc6f90f02792e1f332b38b2aafc984c0dfc41c362988636c6a18e822f9b16a7fa910e8bd4654970289766fcc5a0f5cda3765d3a0dbda4daaf956ffb6188b0fd06e35641763f8346fc58dd2de8cd9f067c850163233aeca890832b7fc4fdbc89e3128ffa2cd2c2b53e&state=wDfEjjVORAT8Hpk7b5zPG7bZFe8-XkXMrdf)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 19 Februar 2023, 10:43:41
Ich habe noch eine Info gefunden:
https://docs.aws.amazon.com/de_de/iot/latest/developerguide/iot-sdks.html (https://docs.aws.amazon.com/de_de/iot/latest/developerguide/iot-sdks.html)

Bzw. Original in Englisch
https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html (https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 19 Februar 2023, 10:49:01
ZitatFür mich ist das Neuland, was müsste anstelle Hdr1/2 angegeben werden?
Ich fuerchte das "Ob und wenn ja was" ist eure Aufgabe rauszufinden, ich fuehle mich nur fuer den Unterbau zustaendig.

Die Frage ist wohl untergegangen: ist das auto reconnect abschaltbar?

Mit dem Attribut disabled.
Oder wenn die Gegenseite per MQTT CONNACK Message ein Authentifizierungsfehler meldet.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 19 Februar 2023, 10:59:56
Zitat von: rudolfkoenig am 19 Februar 2023, 10:49:01

Mit dem Attribut disabled.
Oder wenn die Gegenseite per MQTT CONNACK Message ein Authentifizierungsfehler meldet.

disable ist klar, verwende ich schon.
Ist halt nervig, nach jedem Versuch direkt wieder disable zu setzten und wenn man zu langsam ist, sind schon wieder 2-3 reconnect passiert.
Ist es nicht möglich ein attr autoconnect ja/nein einzuführen? Das wäre für solche 'Experimente' hilfreich.

Entweder wird CONNACK nicht gesendet oder es funktioniert nicht. Mein Log war in einem Tag 56MB groß nur durch fehlerhafte Auth. Alle x sec ein reconnect.

Nachtrag: deaktiviert disable nur das reconnect, d.h. kann ich mit gesetztem disable trotzdem testen?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 19 Februar 2023, 12:45:33
Als Workaround, bis eine Lösung mit FHEM alleine gefunden wurde, habe ich ioBroker mit dem Worx-Adapter sowie dem mqtt-Adapter (MQTT Broker/Client) angezapft.

- Den Worx-Adapter im ioBroker entsprechend konfigurieren
- Den MQTT Broker/Client im ioBroker entweder als Broker konfigurieren (Alt. 1) oder
- Den MQTT Broker/Client im ioBroker als Client für einen bereits im Netz befindlichen anderen Broker konfigurieren (Alt. 2)

Ich selbst nutze Alternative 2.

1)
Auf dem ioBroker ist die MQTT-Instanz in den MQTT-Einstellungen entsprechend zu konfigurieren:

Prefix für alle Topics: bei mir leer

Maske zum Bekanntgeben eigener States:
worx.0.HIER_DIE_SERIENNUMMER_VOM_LANDROID.areas.*,worx.0.HIER_DIE_SERIENNUMMER_VOM_LANDROID.calendar.*,worx.0.HIER_DIE_SERIENNUMMER_VOM_LANDROID.modules.*,worx.0.HIER_DIE_SERIENNUMMER_VOM_LANDROID.mower.*,worx.0.HIER_DIE_SERIENNUMMER_VOM_LANDROID.product.*

Haken bei "Eigene States beim Verbinden publizieren" setzen
Haken bei "Nur bei Änderungen publizieren" setzen
Haken bei "Sende auch Zustände (ack=true)" setzen

2)
In FHEM den entsprechenden MQTT-Client für den genutzten Broker unter Ziff. 1 definieren.

Da ich selbst einen zentralen MQTT-Server bereits nutze und den auch in FHEM bereits eingebunden habe, habe ich in der dazugehörigen Bridge-Konfiguration in dortigem bridgeRegexp-Attribut folgende Erweiterung vorgenommen:


worx/[0-9]+/([0-9]+)/.* "Landroid_$1"


3)
Nach Neustart der MQTT-Instanz auf dem ioBroker sollte dann in FHEM automatisch ein Device nach dem Schema "MQTT2_Landroid_HIER_DIE_SERIENNUMMER_VOM_LANDROID" angelegt werden.

Die automatisch angelegten und gefüllten Attribute wie folgt ersetzen:


attr MQTT2_Landroid_HIER_DIE_SERIENNUMMER_VOM_LANDROID devicetopic worx/0/HIER_DIE_SERIENNUMMER_VOM_LANDROID
attr MQTT2_Landroid_HIER_DIE_SERIENNUMMER_VOM_LANDROID readingList $DEVICETOPIC/rawMqtt/.* {}\
$DEVICETOPIC/.* { $TOPIC =~ s/$DEVICETOPIC\///;; $TOPIC =~ s/^mower\/|^product\/|^areas\///;; $TOPIC =~ s/\//_/g;; return if $TOPIC =~ m{firmware_available_all|activityLog|accessories};; { "$TOPIC"=>$EVENT }}
attr MQTT2_Landroid_HIER_DIE_SERIENNUMMER_VOM_LANDROID room MQTT2_DEVICE
attr MQTT2_Landroid_HIER_DIE_SERIENNUMMER_VOM_LANDROID setList startMower:noArg $DEVICETOPIC/mower/state true\
stopMower:noArg $DEVICETOPIC/mower/state false\
pauseMower:noArg $DEVICETOPIC/mower/pause true\
startBorderCut:noArg $DEVICETOPIC/mower/edgecut true\
torqueSetting:slider,-50,1,50 $DEVICETOPIC/mower/torque $EVTPART1\
PartyMode:on,off { my %hash = ( 'on' => 'true', 'off' => 'false');; qq($DEVICETOPIC/mower/partyModus $hash{$EVTPART1})}\
mowerRainDelay:slider,0,30,1440 $DEVICETOPIC/mower/waitRain $EVTPART1\
setOneTime:slider,10,10,720 $DEVICETOPIC/mower/oneTimeWorkTime $EVTPART1\
startOneTime:noArg $DEVICETOPIC/mower/oneTimeStart true\
mowerTimeCorrection:slider,-100,1,100 $DEVICETOPIC/mower/mowTimeExtend $EVTPART1
attr MQTT2_Landroid_HIER_DIE_SERIENNUMMER_VOM_LANDROID userReadings statusTxt:status.* {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,"status","0")}},\
errorTxt:error.* { 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,"error","0")}}


Mit diesem Workaround sollten zumindest die aktuellen Daten weiterhin in FHEM ankommen und auch eine Steuerung mit fast gleichem Funktionsumfang wie bei der bisherigen MQTT-Variante möglich sein.

Ist mit Sicherheit noch hübscher zu machen und ggf. gibt's auch noch den einen oder anderen Fehler in der Setlist, aber es ist ein Anfang.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 20 Februar 2023, 10:49:10
ZitatIst es nicht möglich ein attr autoconnect ja/nein einzuführen? Das wäre für solche 'Experimente' hilfreich.

Neu:
ZitatmaxNrConnects <number>
maximum number of established connections. Useful when experimenting with public server, where repeatedly failing connection attempts lead to temporary suspension of the account.
The counter is increased after the TCP connection is established, before the MQTT handshake. Reset the counter with the modify or defmod command.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 20 Februar 2023, 12:04:19
Vielen Dank Rudi.

Zitat von: Ralli am 19 Februar 2023, 07:18:56
@Rudi: wäre es ein Ansatz, über das neu eingebaute Attribut httpHeader key:value auch Perl-Funktionen à la key:{value} zu ermöglichen, um darüber den jeweils gültigen/erneuerten Token mitzugeben?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 20 Februar 2023, 12:35:08
Zitat von: rudolfkoenig am 20 Februar 2023, 10:49:10
Neu:

Super, danke Rudi.

@Ralli, im Moment ist es schwierig zu verstehen was nötig ist für die Auth. IoBroker verwendet das SDK von AWS. Vielleicht hilft das Trace von der DeskApp, wenn diese wieder funktioniert. Aber den Ansatz über die myUtils habe ich auch im Sinn...ich denke aber, das ist erstmal unabhängig vom Client. Erst muss der Connect zur API stehen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 20 Februar 2023, 13:24:44
Zitat@Rudi: wäre es ein Ansatz, über das neu eingebaute Attribut httpHeader key:value auch Perl-Funktionen à la key:{value} zu ermöglichen, um darüber den jeweils gültigen/erneuerten Token mitzugeben?

Man soll die Jugend beim Experimentieren nicht aufhalten :)
attr m2c httpHeader TimeNow:{TimeNow()}

erzeugt ab sofort die zusaetzliche HTTP Header Zeile
TimeNow: 2023-02-20 13:20:40
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 20 Februar 2023, 13:32:20
Mensch Rudi, unschlagbar. Danke.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 24 Februar 2023, 18:25:27
Zitat von: rudolfkoenig am 20 Februar 2023, 10:49:10
maxNrConnects <number>
maximum number of established connections. Useful when experimenting with public server, where repeatedly failing connection attempts lead to temporary suspension of the account.
The counter is increased after the TCP connection is established, before the MQTT handshake. Reset the counter with the modify or defmod command.

Hallo Rudi,

leider bin ich heute erst dazu gekommen.
Ich habe maxNrConnects 1 gesetzt, leider ohne Auswirkung. Sobald ich disable deaktiviere läuft das Log voll.

LG
Bernd

P.S. Fhem heute aktualisiert
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 24 Februar 2023, 19:05:27
Kannst Du bitte ein Teil des Logs (bis die Wiederholung erkennbar ist) hier anhaengen?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 24 Februar 2023, 19:13:05
Zitat von: rudolfkoenig am 24 Februar 2023, 19:05:27
Kannst Du bitte ein Teil des Logs (bis die Wiederholung erkennbar ist) hier anhaengen?

Hier habe ich nur disable deaktiviert, ohne set connect.
Die Config wurde seit dem letzten Test nicht verändert, ich habe nur das neue Attr gesetzt.

2023.02.24 18:22:05 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:8883/ NonBlocking via https
2023.02.24 18:22:05 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:8883/ NonBlocking via https
2023.02.24 18:22:05 4: IP: iot.eu-west-1.worxlandroid.com -> 34.243.173.148
2023.02.24 18:22:05 4: IP: iot.eu-west-1.worxlandroid.com -> 34.243.173.148
2023.02.24 18:22:05 4: HttpUtils: iot.eu-west-1.worxlandroid.com: Verbindungsaufbau abgelehnt (111)
2023.02.24 18:22:05 4: HttpUtils: iot.eu-west-1.worxlandroid.com: Verbindungsaufbau abgelehnt (111)
2023.02.24 18:22:11 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:8883/ NonBlocking via https
2023.02.24 18:22:11 4: IP: iot.eu-west-1.worxlandroid.com -> 34.248.97.122
2023.02.24 18:22:11 4: HttpUtils: iot.eu-west-1.worxlandroid.com: Verbindungsaufbau abgelehnt (111)
2023.02.24 18:22:16 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:8883/ NonBlocking via https
2023.02.24 18:22:16 4: IP: iot.eu-west-1.worxlandroid.com -> 34.248.97.122
2023.02.24 18:22:16 4: HttpUtils: iot.eu-west-1.worxlandroid.com: Verbindungsaufbau abgelehnt (111)
2023.02.24 18:22:21 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:8883/ NonBlocking via https
2023.02.24 18:22:21 4: IP: iot.eu-west-1.worxlandroid.com -> 34.248.97.122
2023.02.24 18:22:21 4: HttpUtils: iot.eu-west-1.worxlandroid.com: Verbindungsaufbau abgelehnt (111)
2023.02.24 18:22:26 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:8883/ NonBlocking via https
2023.02.24 18:22:26 4: IP: iot.eu-west-1.worxlandroid.com -> 34.248.97.122
2023.02.24 18:22:26 4: HttpUtils: iot.eu-west-1.worxlandroid.com: Verbindungsaufbau abgelehnt (111)
2023.02.24 18:22:32 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:8883/ NonBlocking via https
2023.02.24 18:22:32 4: IP: iot.eu-west-1.worxlandroid.com -> 34.248.97.122
2023.02.24 18:22:32 4: HttpUtils: iot.eu-west-1.worxlandroid.com: Verbindungsaufbau abgelehnt (111)


Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 24 Februar 2023, 20:23:31
Merkwuerdig.
Ich habe mit folgender Definition gestartet (bis auf die Zertifikate alles uebernommen):

defmod MQTT_Worx MQTT2_CLIENT a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883
attr MQTT_Worx SSL 1
attr MQTT_Worx clientId android-62378444-f33f-fe1c-601e-9d01fc947796
attr MQTT_Worx disable 1
attr MQTT_Worx maxNrConnects 1
attr MQTT_Worx keepaliveTimeout 600
attr MQTT_Worx mqttVersion 3.1.1
attr MQTT_Worx msgAfterConnect DB510/MAC/commandIn {}
attr MQTT_Worx sslargs SSL_version:TLSv12 SSL_cert_file:certs/server-cert.pem SSL_key_file:certs/server-key.pem SSL_use_cert:1
attr MQTT_Worx subscriptions DB510/MAC/commandOut
attr MQTT_Worx verbose 5


und nach dem Start "attr MQTT_Worx disable 0" gesetzt.
Im Log steht:


2023.02.24 20:14:34 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/ NonBlocking via https
2023.02.24 20:14:34 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 18.200.140.213
2023.02.24 20:14:34 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-62378444-f33f-fe1c-601e-9d01fc947796
2023.02.24 20:14:34 5: DevIo_SimpleWrite MQTT_Worx: 103800044d51545404020258002c616e64726f69642d36323337383434342d663333662d666531632d363031652d396430316663393437373936
2023.02.24 20:14:34 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2023.02.24 20:14:35 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2023.02.24 20:14:35 2: maxNrConnects (1) reached, no more reconnect attemtps
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 24 Februar 2023, 20:32:06
Ich habe noch das wss: vor der Url.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 24 Februar 2023, 21:14:41
Danke, damit konnte ich es nachstellen.
Hab den Kode angepasst.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 24 Februar 2023, 21:21:39
Zitat von: rudolfkoenig am 24 Februar 2023, 21:14:41
Danke, damit konnte ich es nachstellen.
Hab den Kode angepasst.

Danke auch.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: pillepalle12 am 04 März 2023, 16:18:42
Hallo zusammen,

ich habe meinen Roboter aus dem Winterschlaf geholt und wollte gerade die FHEM Anbindung testen und der MQTT Server geht immer auf "disconnected"...

habe die letzten paar Seiten des Threads gelesen, bin aber nicht dahinter gekommen, ob es jetzt wieder funktionieren sollte oder wie ich vorgehen kann um meine (in der letzten Saison funktionierende) Config zu reparieren.

Könnt Ihr mir einen Tipp geben wie der aktuelle Stand ist?

Vielen, vielen Dank
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 04 März 2023, 17:14:33
Aktuell funktioniert es nicht, hatte auch noch keine Zeit danach zu schauen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 04 März 2023, 17:17:17
Zurzeit keine Lösung mit FHEM alleine. Mit Workaround geht's: https://forum.fhem.de/index.php/topic,111959.msg1264477.html#msg1264477
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 10 März 2023, 17:09:07
Hallo.
Ich bin ebenfalls ein ,,Betroffener".
Kann ich mich in irgend einer Weise der Lösungsfindung anschließen bzw. Unterstützung anbieten?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 10 März 2023, 20:40:37
Hallo Rudi,

Ich habe mich eingelesen komme aber noch nicht zurecht, da ich eine POST Anfrage senden muss.
Ich hänge hier meinen aktuellen Stand an.

myUtils habe ich benutzt, da die Authentifizierung über MQTT2_Client alleine nicht funktionieren wird.
Soweit ich bisher durchgeblickt habe, Anfrage an Url1, Token an Url2 und dann erst connect zum MQTTServer (Url3).

Ich habe das Bsp aus dem Wiki HttpUtils benutzt und etwas für mich angepasst. Bekomme jedoch Syntaxfehler und finde diese nicht. Vielleicht sehen ich auch vor lauter Wald die Bäume nicht.
Nachtrag: Möglich, dass sich nicht sichtbare Zeichen durch das Kopieren aus dem Wiki eingeschlichen haben. Mit Notepad++, wie ich das sonst auch tue, habe ich aber keine gefunden.

Aus ioBroker habe ich mir den Header extrahiert und die POST Daten mit einer Leerzeile als Json (mit toJSON() konvertiert) daran gehängt. Im Json musste ich das @ nachträglich escapen.
Kann das so funktionieren?

Header:
url: "https://id.eu.worx.com/oauth/token"
method: "post"
headers:
accept: "application/json"
"content-type": "application/json"
"user-agent": "fhem "
"accept-language": "de-de"

data:
client_id: "android-xxxxxx"
username: "xxx@xxx.de"
password: "xxxxxx"
scope: "*"
grant_type: "password"



SyntaxError aus MyUtils:
syntax error at ./FHEM/99_myUtils_Landroid.pm line 36, near "callback"
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?)
at ./FHEM/99_myUtils_Landroid.pm line 39. syntax error at ./FHEM/99_myUtils_Landroid.pm line 40, near "}"

Can't redeclare "my" in "my" at ./FHEM/99_myUtils_Landroid.pm line 45, near "my" syntax error at ./FHEM/99_myUtils_Landroid.pm line 67, near "}"


myUtils:
package main;

use strict;
use warnings;
use HttpUtils;

sub
myUtils_Logdatei_Initialize {
  my $hash = shift;
  return;
}

sub connectWorx
{
    my $hash = 'WorxTest';
    #my $def = shift;
    #my $name = $hash->{NAME};
    my $param = {
                    url        => "https://id.eu.worx.com/oauth/token",
                    timeout    => 5,
                    hash       => $hash,
                    method     => "POST",
                    header     => "User-Agent: android\r\nAccept: application/json\r\ncontent-type: application/json\r\naccept-language: de-de\r\n\r\nclient_id:\u0022android-xxxxxx\u0022,username:xxxx\@xxxx.de,password:xxxxx,scope:\u0022*\u0022,grant_type:\u0022password\u0022,"
                    callback   => \&X_ParseHttpResponse
                };

    HttpUtils_NonblockingGet($param);
}

sub X_ParseHttpResponse
{
    my $param = shift;
    my $err = shift;
    my $data = shift;
    my $hash = $param->{hash};
    my $name = 'Landroid';

    if($err ne "")                                                                                                      # wenn ein Fehler bei der HTTP Abfrage aufgetreten ist
    {
        Log3 $name, 3, "error while requesting ".$param->{url}." - $err";                                               # Eintrag fürs Log
        #readingsSingleUpdate($hash, "fullResponse", "ERROR", 0);                                                        # Readings erzeugen
    }

    elsif($data ne "")                                                                                                  # wenn die Abfrage erfolgreich war ($data enth? die Ergebnisdaten des HTTP Aufrufes)
    {
        Log3 $name, 3, "url ".$param->{url}." returned: $data";                                                         # Eintrag fürs Log

        # An dieser Stelle die Antwort parsen / verarbeiten mit $data

        #readingsSingleUpdate($hash, "fullResponse", $data, 0);                                                          # Readings erzeugen
    }

    # Damit ist die Abfrage zuende.
    # Evtl. einen InternalTimer neu schedulen
}

1;


Danke und Grüße
Bernd
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 11 März 2023, 07:34:21
Zitat von: frober am 10 März 2023, 20:40:37

SyntaxError aus MyUtils:
syntax error at ./FHEM/99_myUtils_Landroid.pm line 36, near "callback"
Global symbol "$param" requires explicit package name (did you forget to declare "my $param"?)
at ./FHEM/99_myUtils_Landroid.pm line 39. syntax error at ./FHEM/99_myUtils_Landroid.pm line 40, near "}"

Can't redeclare "my" in "my" at ./FHEM/99_myUtils_Landroid.pm line 45, near "my" syntax error at ./FHEM/99_myUtils_Landroid.pm line 67, near "}"


myUtils:
sub connectWorx
{
...
    my $param = {
                    url        => "https://id.eu.worx.com/oauth/token",
                    timeout    => 5,
                    hash       => $hash,
                    method     => "POST",
                    header     => "User-Agent: android\r\nAccept: application/json\r\ncontent-type: application/json\r\naccept-language: de-de\r\n\r\nclient_id:\u0022android-xxxxxx\u0022,username:xxxx\@xxxx.de,password:xxxxx,scope:\u0022*\u0022,grant_type:\u0022password\u0022,"
                    callback   => \&X_ParseHttpResponse
                };

...


Das erste was mir sofort ins Auge fällt ist die Variablendefinition. Wenn du einen Hash mit Keys und Values definieren willst, dann musst du das mit


my %param = ...


machen.

Vielen Dank für deinen Code und deine Tests.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 11 März 2023, 09:02:30
Zitat von: Ralli am 11 März 2023, 07:34:21
Das erste was mir sofort ins Auge fällt ist die Variablendefinition. Wenn du einen Hash mit Keys und Values definieren willst, dann musst du das mit


my %param = ...


machen.

Vielen Dank für deinen Code und deine Tests.

Der Code ist vermutlich von Rudi und stammt von hier
https://wiki.fhem.de/wiki/HttpUtils (https://wiki.fhem.de/wiki/HttpUtils)
Ist eigentlich ein Bsp. für Modulentwickler.

Ich habe nur die Daten für den Header zusammen gestellt.

Es muss auch klar sein, das ist nur die erste Treppenstufe...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 11 März 2023, 09:30:09
Ich habe mir gerade HttpUtils angesehen, da fehlt application/json beim MIMETyp.
Daher kommt evtl schon ein Teil der Syntaxfehler.

Daher war auch die Frage an Rudi gestellt:
Geht das überhaupt (also mit POST und Json) aktuell mit HttpUtils?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 11 März 2023, 11:38:53
ZitatIch habe mir gerade HttpUtils angesehen, da fehlt application/json beim MIMETyp.
Finde ich nicht wirklich relevant.
Dieser hash wird fuer DateinamenEndung => Content-Type Zuordnung verwendet, und die Anzahl der JSON Dateien(!) die FHEM ausliefern muss, ist bisher begrenzt.
Welche Endungen haben JSON-Dateien im Normalfall?

ZitatGeht das überhaupt (also mit POST und Json) aktuell mit HttpUtils?
Klar geht das, man muss im HttpUtils_NonblockingGet ein header definieren mit einem Content-Type Eintrag.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 11 März 2023, 12:01:18
Zitat von: rudolfkoenig am 11 März 2023, 11:38:53
Welche Endungen haben JSON-Dateien im Normalfall?
*.json  würde ich Mal behaupten

Zitat
Klar geht das, man muss im HttpUtils_NonblockingGet ein header definieren mit einem Content-Type Eintrag.

Habe ich hier, auch wenn es noch fehlerbehaftet ist.
https://forum.fhem.de/index.php/topic,111959.msg1267678.html#msg1267678 (https://forum.fhem.de/index.php/topic,111959.msg1267678.html#msg1267678)
Ich möchte damit erstmal ein Connect und sehen was zurück kommt. Daher habe ich einiges aus kommentiert.

Nachtrag: meine Json Syntax stimmt nicht nicht, schaue ich mir heute Abend nochmal an.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 11 März 2023, 18:29:32
So, die Sub funktioniert aktuell, nur der Server beschwert sich über fehlende/falsche Daten.  :(
Die Syntaxfehler kamen nur von einem Komma, das ich vergessen hatte.  :o

Die cliend_id habe ich aktuell vom ioBroker übernommen.

package main;

use strict;
use warnings;
use HttpUtils;

sub
myUtils_Logdatei_Initialize {
  my $hash = shift;
  return;
}


sub connectWorx
{

    my $hash = 'WorxTest';
    #my $def = shift;
    #my $name = $hash->{NAME};
    my $param = {
                    url        => "https://id.eu.worx.com/oauth/token",
                    timeout    => 5,
                    hash       => $hash,
                    method     => "POST",
                    header     => "User-Agent: android\r\nAccept: application/json\r\ncontent-type: application/json\r\naccept-language: de-de",
    data       => '"{\n    client_id: \"150da4d2-bb44-433b-9429-3773adc70a2a\",\n    username: \"xxx@xxx.de\",\n    password: \"xxxxxx\",\n    scope: \"*\",\n    grant_type: \"password\",\n}"',
                    callback   => \&X_ParseHttpResponse
                };


    HttpUtils_NonblockingGet($param);
}

sub X_ParseHttpResponse
{
    my $param = shift;
    my $err = shift;
    my $data = shift;
    my $hash = $param->{hash};
    my $name = 'Landroid';


    if($err ne "")                                                                                                      # wenn ein Fehler bei der HTTP Abfrage aufgetreten ist
    {
Log3 $name, 3, "error while requesting ".$param->{url}." - $err";                                               # Eintrag fürs Log
        #readingsSingleUpdate($hash, "fullResponse", "ERROR", 0);                                                        # Readings erzeugen
    }

    elsif($data ne "")                                                                                                  # wenn die Abfrage erfolgreich war ($data enth? die Ergebnisdaten des HTTP Aufrufes)
    {

        Log3 $name, 3, "url ".$param->{url}." returned: $data";                                                         # Eintrag fürs Log

        # An dieser Stelle die Antwort parsen / verarbeiten mit $data

        #readingsSingleUpdate($hash, "fullResponse", $data, 0);                                                          # Readings erzeugen
    }

    # Damit ist die Abfrage zuende.
    # Evtl. einen InternalTimer neu schedulen
}

1;


Das Json habe ich online konvertiert und getestet, sollte vom Syntax her passen.

Antwort vom Server:
2023-03-11 18:12:12 url https://id.eu.worx.com/oauth/token returned: {"error":"invalid_request","error_description":"The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed.","hint":"Check the `grant_type` parameter","message":"The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed."}
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 11 März 2023, 19:47:20
Erste Stufe geschafft...

Ich habe einen Token  ;D
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 13 März 2023, 18:58:53
Erstmal danke für eure Bemühungen.
Aber kann mir vielleicht bitte jemand erklären wo genau das Problem liegt?
Im ioBroker läuft es (wieder) (selbst getestet).
In OpenHAB soll es wohl auch (wieder) funktionieren (hab ich nur gelesen).
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 13 März 2023, 22:06:27
Einfach gesagt, die Authentifizierung wurde von Passwort auf Token und Websocket Security umgestellt.
Dazu kommt, dass der Token nur 1h gültig ist.

Ich bin auf einem guten Weg, habe aber leider nicht täglich Zeit.



Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 14 März 2023, 19:19:37
Aktuell komme ich nicht weiter  :(

Den Token bekomme ich, habe ihn nach Vorgabe manipuliert und den Websocket-Header erstellt.

@Rudi, kann ich die Serverantwort irgendwie besser debuggen?

Nachtrag: laut Inet wäre bei MQTT over WS der PORT 9001, damit bekomme ich keine Fehler- und auch keine Rückmeldung

erstens zur Info:
Über myUtils hole ich den Token, erstelle daraus den Header und übergebe ihn nach deinem ersten VersuchsBsp.
$defs{MQTT2_Worx}{header} =  { "x-amz-customauthorizer-name"=>"com-worxlandroid-customer", "x-amz-customauthorizer-signature"=>$token[2], jwt=>$token[0].".".$token[1]};
return fhem('set MQTT2_Worx connect');


Im Log bekomme ich dann:
2023.03.14 18:53:20 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:8883/ NonBlocking via https
2023.03.14 18:53:21 4: IP: iot.eu-west-1.worxlandroid.com -> 52.31.129.120
2023.03.14 18:53:21 5: HttpUtils request header:
GET / HTTP/1.1
Host: iot.eu-west-1.worxlandroid.com:8883
User-Agent: fhem
Accept-Encoding: gzip,deflate
Sec-WebSocket-Version: 13
x-amz-customauthorizer-name: com-worxlandroid-customer
x-amz-customauthorizer-signature: JcZu1JbB2tra9KOOnl57NRKjf+xYbELYSvWamxbKf5oKt/NGjK5BifhQmSMv5m4FiM3IhOPljzu3Ao+gGoaMN4GRN5l+9VKRX0nT93DmCcGE
Upgrade: websocket
Sec-WebSocket-Protocol: mqtt
Connection: Upgrade
jwt: JKV1QiLCJhbGciOiJSUzI1NiJ9.zBhMmEiLCJqdGkiOiIzNTJjOWE3YzJiODA5YWYzYjVkYjdiMjM5NjY0ZmFiZWFlYzZkNWFlZTM4YmQwNDk5YThmZTBiZjM4ODIwMDEmlhdCI6MTY3ODgxNj
Sec-WebSocket-Key: l/Ds6EzsXVh9gaBoO/wp4g==


Den Token habe ich natürlich verfälscht/gekürzt  ;D

Mit dieser Meldung komme ich nicht weiter...

P.S. für den MQTT_Connect wird vom ioBroker das aws-sdk verwendet...keine Ahnung, ob es da Besonderheiten gibt (protocol: "wss-custom-auth",)
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 14 März 2023, 21:47:35
Wieder ein Stück weiter...

PORT 443 für MQTT over WS bei AWS  ::)
https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html (https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html)

Nun bekomme ich auch ein Request...aber noch kein connect.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 14 März 2023, 22:13:04
was fehlt mir hier??

Zitat2023.03.14 21:56:29 4: https://iot.eu-west-1.worxlandroid.com:443/: HTTP response code 101
2023.03.14 21:56:29 5: HttpUtils https://iot.eu-west-1.worxlandroid.com:443/: Got data, length: 0
2023.03.14 21:56:29 5: HttpUtils response header:
HTTP/1.1 101 Switching Protocols
content-length: 0
upgrade: websocket
connection: upgrade
sec-websocket-accept: p+olasrgKWIYZL0yYCT/ctS/leA=
sec-websocket-protocol: mqtt
2023.03.14 21:56:29 5: MQTT2_Worx: sending CONNECT (16)9(0)(4)MQTT(4)(2)(3)(232)(0)-android-blabla(10)
2023.03.14 21:56:29 5: DevIo_SimpleWrite MQTT2_Worx: 02155103946406460044d51545404020
2023.03.14 21:56:29 1: wss:iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.03.14 21:56:29 5: Websocket msg: OP:8 LEN:0 MASK:0 FIN:1
2023.03.14 21:56:29 5: Websocket close, reason:
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 15 März 2023, 10:45:06
101 ist nichts Schlimmes, sagt nur, dass ab sofort auf dieser Leitung mit websocket weitergeht, das hat man ja vorher auch beantragt.
Was schlimm ist, dass die Gegenseite nach dem MQTT CONNECT die Leitung ohne Begruendung zuklappt, es gibt doch eine hoefliche Version mit CONNACK und Begruendung. Auch beim websocket close darf man eine Begruendung angeben, leider ist das auch hier optional.

Die Voreinstellung in MQTT2_CLIENT ist mqttVersion 3.1, womoeglich besteht die Gegenseite auf 3.1.1.
Muss man evtl. beim MQTT CONNECT Benutzername/Passwort angeben?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 15 März 2023, 15:43:52
Zitat von: rudolfkoenig am 15 März 2023, 10:45:06
Die Voreinstellung in MQTT2_CLIENT ist mqttVersion 3.1, womoeglich besteht die Gegenseite auf 3.1.1.
Muss man evtl. beim MQTT CONNECT Benutzername/Passwort angeben?

Zur Verwendung von Benutzername/Passwort habe ich bisher im ioBroker-Code keine Hinweise gefunden.

Aber mqttVersion 3.1.1 bzw. 5.0 werden, bzw. können beide verwendet werden.
Und "Clients müssen die TLS-Erweiterung Server Name Indication (SNI) in der Verbindungsanforderung senden. Verbindungsversuche, die das SNI nicht enthalten, werden abgelehnt."


Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 15 März 2023, 16:00:05
Fuer SNI muss man SSL_hostname in den sslargs Pararameter setzen, sagt https://metacpan.org/pod/IO::Socket::SSL.
Das wird aber von HttpUtils automatisch auf dem aus der Anfrage abgeleiteten Hostname gesetzt, falls die Bibliothek SNI unterstuetzt.

Wenn das Problem an SNI liegen wuerde, dann duerfte mAn kein OK auf das mit Token gesicherte websocket Anfrage kommen.
Wenn das kommt, dann ist man bei dem richtigen Server.

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 15 März 2023, 17:03:23
Zitat von: frober am 15 März 2023, 15:43:52
Zur Verwendung von Benutzername/Passwort habe ich bisher im ioBroker-Code keine Hinweise gefunden.

Benutzername/Passwort nicht, aber wenn ich den Code richtig interpretiere der Token (Zeile 882, wird aus 731 aufgerufen):


    createWebsocketHeader() {
        const accessTokenParts = this.session.access_token.replace(/_/g, "/").replace(/-/g, "+").split(".");
        const headers = {
            "x-amz-customauthorizer-name": "com-worxlandroid-customer",
            "x-amz-customauthorizer-signature": accessTokenParts[2],
            jwt: `${accessTokenParts[0]}.${accessTokenParts[1]}`,
        };
        return headers;
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 15 März 2023, 17:28:44
Die wurden doch angegeben, steht oben im Log.
Websocket Verbindung wurde daraufhin erfolgreich hergestellt (siehe 101, Switching Protocols), Probleme gibts bei MQTT CONNECT.

Aber: "return fhem('set MQTT2_Worx connect');" verwirrt mich, das sollte nicht notwendig sein.
Koennte ich den kompletten Code (myUtils.pm + MQTT-Definition) sehen?
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 15 März 2023, 18:34:40
Das ist korrekt, aber muss das nicht im eigentlichen MQTT-Connect auch mit rein?


this.mqttC = awsIot.device({
                clientId: `${this.clouds[this.config.server].mqttPrefix}/USER/${this.userData.id}/iobroker/${uuid}`,
                username: "iobroker",
                protocol: "wss-custom-auth",
                host: mqttEndpoint,
                region: region,
                customAuthHeaders: headers,
                baseReconnectTimeMs: 5000,
            });


Die Variable headers wird auch hier mitgegeben.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 15 März 2023, 18:40:05
Zitat von: rudolfkoenig am 15 März 2023, 17:28:44
Aber: "return fhem('set MQTT2_Worx connect');" verwirrt mich, das sollte nicht notwendig sein.
Koennte ich den kompletten Code (myUtils.pm + MQTT-Definition) sehen?
na klar, wenn es Sinn macht, sende sie dir auch mit meinen User/Passwort etc. zu

Vorweg 3 Fragen:
1. das hier gibt eine ziemliche Bastelei -> Dummy um Sub aufzurufen, dann ein einmaliges at um den Token jede Stunde zu erneuern und min. ein notify um nach Neustart/disconnect ein reconnect auszulösen.
Wäre es machbar, ein weiteres Attribut "perlConnectSub" einzuführen, wenn dieses gesetzt ist wird dann bei einem connect nicht die Url sondern die Sub aufgerufen?

2. die Übersetzung von Javascript `$a.$b` zu Perl $a.".".$b ist korrekt?

3. maxNrConnects  wird nur bei einem erfolgreichen connect zurückgesetzt?
Mit maxNrConnects 1 konnte ich nur einen Fehlversuch starten, danach musste ich die Anzahl erhöhen.
Wenn ich maxNrConnects lösche und der Token ist ungültig, wird wieder das Log zugemüllt.

Def:
defmod MQTT2_Worx MQTT2_CLIENT wss:iot.eu-west-1.worxlandroid.com:443
attr MQTT2_Worx SSL 1
attr MQTT2_Worx autocreate simple
attr MQTT2_Worx clientId android-xxxxxxxxx\

attr MQTT2_Worx disable 0
attr MQTT2_Worx group MQTT2
attr MQTT2_Worx keepaliveTimeout 1000
attr MQTT2_Worx maxNrConnects 6
attr MQTT2_Worx mqttVersion 3.1.1
attr MQTT2_Worx msgAfterConnect PRM100/FCxxxxxxxxBC/commandIn {}
attr MQTT2_Worx room System->Steuerung
attr MQTT2_Worx subscriptions PRM100/FCxxxxxxxBC/commandOut
attr MQTT2_Worx verbose 5


myUtils (mein debug habe ich auskommentiert):
package main;

use strict;
use warnings;
use HttpUtils;

sub
myUtils_Landroid_Initialize {
  my $hash = shift;
  return;
}

sub connectWorx
{
    #my $file = 'Landroid.log';

    my $hash = 'WorxTest';
    #my $def = shift;
    #my $name = $hash->{NAME};
    my $param = {
                    url        => "https://id.eu.worx.com/oauth/token",
                    timeout    => 5,
                    hash       => $hash,
                    method     => "POST",
                    header     => "User-Agent: TeleHeater/2.2.3\r\nAccept: application/json\r\ncontent-type: application/json\r\naccept-language: de-de",
    data       => '{"client_id": "150da4d2-bb44-433b-9429-3773adc70a2a","username": "xxx@xxx.de","password": "xxx","scop": "*","grant_type": "password"}',
                    callback   => \&Worxtoken
                };
    #debuglog("data: ".$param->{data}, $file);

    HttpUtils_NonblockingGet($param);
}

sub Worxtoken($)
{
    my $param = shift;
    my $err = shift;
    my $data = shift;
    my $hash = $param->{hash};
    my $name = 'Landroid';

    #my $file = 'Landroid.log';

    if($err ne "")                                                                                                       # wenn ein Fehler bei der HTTP Abfrage aufgetreten ist
    {
#debuglog("error while requesting ".$param->{url}." - $err", $file);
        Log3 $name, 3, "error while requesting ".$param->{url}." - $err";                                               # Eintrag fürs Log
       
    }

    elsif($data ne "")                                                                                                   # wenn die Abfrage erfolgreich war ($data enth? die Ergebnisdaten des HTTP Aufrufes)
    {
#debuglog("url ".$param->{url}." returned: $data", $file);
        Log3 $name, 3, "url ".$param->{url}." returned: $data";                                                         # Eintrag fürs Log

        my @array = ();
push @array, $data =~ /token_type.:.([^"]+).*expires_in.:([^"]+),.*access_token.:.([^"]+).*refresh_token.:.([^"]+)/gis;  # Token etc. aus Json auslesen

#debuglog("\ntokentyp: $array[0] \nAblauf: $array[1] \naccess: $array[2] \nrefresh: $array[3]", $file);

$array[2] =~ s/[_]/\//g; # im Token _ durch / ersetzen
$array[2] =~ s/[-]/+/g; # im Token - durch + ersetzen
my @token = split(/\./,$array[2]); # Token beim . splitten

#debuglog("\nTeil 1: $token[0] \nTeil 2: $token[1] \nTeil 3: $token[2]", $file);

$defs{MQTT2_Worx}{header} =  { "x-amz-customauthorizer-name"=>"com-worxlandroid-customer", "x-amz-customauthorizer-signature"=>$token[2], jwt=>$token[0].".".$token[1]}; # websocket header erstellen für MQTT2_CLIENT

#debuglog("$defs{MQTT2_Worx}{header}", $file);
# return fhem ("attr MQTT2_Worx HttpHeader $header; set MQTT2_Worx connect; defmod at_reconnect at $array[1]-100 {refreshToken()}");
return fhem('set MQTT2_Worx connect');

       
    }
return;   
}
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 15 März 2023, 18:42:15
Zitat von: Ralli am 15 März 2023, 18:34:40
Das ist korrekt, aber muss das nicht im eigentlichen MQTT-Connect auch mit rein?


this.mqttC = awsIot.device({
                clientId: `${this.clouds[this.config.server].mqttPrefix}/USER/${this.userData.id}/iobroker/${uuid}`,
                username: "iobroker",
                protocol: "wss-custom-auth",
                host: mqttEndpoint,
                region: region,
                customAuthHeaders: headers,
                baseReconnectTimeMs: 5000,
            });


Die Variable headers wird auch hier mitgegeben.


schaue dir meine Code an...
wie Rudi schon geschrieben hat, websocket funktioniert
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 15 März 2023, 18:59:15
Zu 1: ueber den optimalen Weg denken wir nach, wenn der Rest funktioniert. Immerhin verstehe ich anhand des Codes, was Du meinst :)
Zu 2: nicht ganz, JavaScript kennt kein $a. Richtig waere `${a}.${b}`, JS Template ersetzt im Backquote ${...} mit dem Ergebnis von eval(...) aus.
Zu 3: nein, das wird z.Zt nur bei define oder modify auf 0 gesetzt.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 15 März 2023, 19:11:53
Zitat von: rudolfkoenig am 15 März 2023, 18:59:15
Zu 1: ueber den optimalen Weg denken wir nach, wenn der Rest funktioniert. Immerhin verstehe ich anhand des Codes, was Du meinst :)
Das passt, danke.

Zitat
Zu 2: nicht ganz, JavaScript kennt kein $a. Richtig waere `${a}.${b}`, JS Template ersetzt im Backquote ${...} mit dem Ergebnis von eval(...) aus.
Das war nur ein schnelles Bsp. mir ging es um den Punkt. Es ist richtig, dass der String mit einem Punkt zusammengesetzt ist. Bsp. Vorname.Nachname ?

Zitat
Zu 3: nein, das wird z.Zt nur bei define oder modify auf 0 gesetzt.
Hmm, dann bedarf es hier wahrscheinlich auch eine Lösung, sofern ich es zum "laufen" bekomme.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 15 März 2023, 19:31:00
Zu 2, Beispiele

JavaScript:
var a="Vorname";
var b="Nachname";
`${a}.{$b}` => Vorname.Nachname
a+"."+b => Vorname.Nachname

Perl:
my $a="Vorname";
my $b="Nachname";
$a.".".$b => Vorname.Nachname
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 15 März 2023, 19:47:31
Zitat von: rudolfkoenig am 15 März 2023, 19:31:00
Zu 2, Beispiele

JavaScript:
var a="Vorname";
var b="Nachname";
`${a}.{$b}` => Vorname.Nachname
a+"."+b => Vorname.Nachname

Perl:
my $a="Vorname";
my $b="Nachname";
$a.".".$b => Vorname.Nachname

Danke, dann kann ich hier einen Fehler ausschließen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 17 März 2023, 10:29:28
Laut AWS Developerguide erfolgt erst der Wechsel auf Websocket und dann wird die Authentifizierung überprüft.
D.h. aktuell schlägt diese fehl.
Weiter wird der Token signiert, d.h. ich bekomme den Token und die Signatur zugesendet (war mir bisher nicht bewusst)

Aktuell habe ich versucht, mich direkt mit dem MQTT Server zu verbinden.
Da ich aber den Token manipulieren muss, passt dieser nicht mehr zur Signatur.  ::)

Fazit:
Zuerst muss man sich bei der API authentifizieren und danach sollte, hoffentlich, auch die Anmeldung für MQTT funktionieren.

Wenn das funktioniert, muss jede Std noch der Token erneuert und vor einem reconnect die Gültigkeit überprüft werden.

Man was für einen Aufwand... :( >:(
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 17 März 2023, 14:21:08
Nochmal ganz doof nachgefragt:
wäre der ioBroker Adapter nicht eine Inspiration?
Dort funktioniert es doch.
Kann man das nicht "einfach" von dort adaptieren?
Der Entwickler dieses Moduls hat das Rad doch sicherlich auch nicht neu erfunden ...
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 17 März 2023, 14:44:02
Das versucht froober doch ... bzw. hat es in Teilen auch bereits getan.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 17 März 2023, 15:05:04
Zitat von: remo am 17 März 2023, 14:21:08
Nochmal ganz doof nachgefragt:
wäre der ioBroker Adapter nicht eine Inspiration?
Dort funktioniert es doch.
Kann man das nicht "einfach" von dort adaptieren?
Der Entwickler dieses Moduls hat das Rad doch sicherlich auch nicht neu erfunden ...

Die Idee von hier, war ja, keine extra Software zu installieren.
Für ioBroker gibt es hier im Forum einen Thread.
Es steht jedem frei umzusteigen.

Die Entwickler vom ioBroker hatten mWn Unterstützung von Positec.

Wie Ralli geschrieben hat, versuche ich den Sourcecode vom ioBroker zu "entschlüsseln". Allerdings enthält dieser sehr viel Code, den wir hier nicht benötigen, was es nicht gerade einfach macht.

Für mich ist das auch Neuland (Javascript, http requests usw.).
Es gibt also keine Garantie, dass ich erfolgreich bin.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 18 März 2023, 06:48:30
Ok. Es war ja nicht böse gemeint.
Ich möchte es ja nur verstehen.
Wenn ich irgendwie unterstützen kann, lass es mich wissen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 18 März 2023, 10:00:13
Unterstützung kann ich immer gebrauchen, die Frage ist aktuell nur wie...

Gestern habe ich den Code umgebaut um zuerst mich bei der API zu authentifizieren.

Ein erster Fehler im Header brachte eine 401 unauthorized.
Nach Korrektur bekomme ich eine 403 forbidden und da spielt es keine Rolle, auf welches Zielverzeichnis ich gehe.
Wenn der Server die Meldung korrekt vergibt, dann habe ich die Authentifizierung bestanden, mir fehlen jedoch nachgelagerte Rechte.
Beim ioBroker wird nur die 401 behandelt, bezogen auf einen abgelaufen Token.

@Rudi, es werden Cookies verwendet, kann das damit zusammen hängen?

this.requestClient = axios.create({
            withCredentials: true,
            httpsAgent: new HttpsCookieAgent({
                cookies: {
                    jar: this.cookieJar,
                },
            }),
        });

Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 18 März 2023, 11:24:50
Zitat@Rudi, es werden Cookies verwendet, kann das damit zusammen hängen?
Klar, die empfangenen Cookies sollte man bei jedem neuen Request vorzeigen.
HttpUtils hat dafuer (noch?) keinen Automatismus, das muss man explizit machen.
Titel: Antw:MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 18 März 2023, 11:47:10
Zitat von: rudolfkoenig am 18 März 2023, 11:24:50
Klar, die empfangenen Cookies sollte man bei jedem neuen Request vorzeigen.
HttpUtils hat dafuer (noch?) keinen Automatismus, das muss man explizit machen.

Danke für die schnelle Antwort.
HTTPMOD habe ich gesehen, macht das schon, mal sehen ob ich das nutzen kann.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 20 März 2023, 19:16:46
Hmm, ich komme aktuell nicht weiter.  :(

Soweit ich das aus HTTPMOD richtig interpretiere habe, bekomme ich mit
my $header = $param->{httpheader};den vom Server gesendeten Header und kann nach "set-cookie" filtern.

Nur werden keine Cookies gesetzt:

Beim Anfordern des Tokens kommt:
HTTP/1.1 200 OK
Date: Mon, 20 Mar 2023 16:27:31 GMT
Content-Type: application/json; charset=UTF-8
Connection: close
vary: Accept-Encoding
pragma: no-cache
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
expires: Mon, 01 Jan 1990 00:00:00 GMT
Content-Encoding: gzip
CF-Cache-Status: DYNAMIC
Server: cloudflare
CF-RAY: 7aaf52ac0b7730ed-FRA
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400

und bei der API:
HTTP/1.1 403 Forbidden
Date: Mon, 20 Mar 2023 16:20:42 GMT
Content-Type: application/json
Connection: close
Server: nginx
Vary: Accept-Encoding
Cache-Control: no-cache, private
X-Robots-Tag: noindex, nofollow
Content-Encoding: gzip

Laut Developerguide gibt es auch nur, entweder den Token im Header oder über das Cookie.
Auch bin ich definitiv am Authorizer vorbei und die AWS Lambdafunktion sendet die 403, nur warum?

Nachtrag:
Wie kann ich das withCredentials: true setzen?
Möglich, dass es daran hängt, auch wenn ich es nur im Bezug auf die Cookies gelesen habe.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 21 März 2023, 12:45:33
ZitatWie kann ich das withCredentials: true setzen?

axios ist ein HTTP Client, genau wie HttpUtils_NonblockingGet.
Laut Doku (https://www.npmjs.com/package/axios):
Zitat// `withCredentials` indicates whether or not cross-site Access-Control requests
// should be made using credentials

Ich kenne nur Access-Control-Allow-Origin (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin), wo der Server dem Browser erlaubt, dass JS-Programme auch andere Server kontaktieren.
Wie man das im Zusammnhang des Kommentars verstehen soll, weiss ich nicht.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 21 März 2023, 14:56:51
Zitat von: rudolfkoenig am 21 März 2023, 12:45:33
ZitatWie kann ich das withCredentials: true setzen?

axios ist ein HTTP Client, genau wie HttpUtils_NonblockingGet.
Laut Doku (https://www.npmjs.com/package/axios):
Zitat// `withCredentials` indicates whether or not cross-site Access-Control requests
// should be made using credentials

Ich kenne nur Access-Control-Allow-Origin (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin), wo der Server dem rowser erlaubt, dass JS-Programme auch andere Server kontaktieren.
Wie man das im Zusammnhang des Kommentars verstehen soll, weiss ich nicht.

Ich habe das hier gefunden https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials)

Bzgl. XHR habe ich es öftes im Bezug auf den Client gelesen. Bin bisher aber auch noch nicht richtig schlau daraus geworden.


Bsp aus einem Forum vom Server
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https:xxxx

Nachtrag:
Hier ist es soweit beschrieben:
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#requests_with_credentials (https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#requests_with_credentials)

Relevant dürfe das sein:
Origin: https://foo.example
Cookie: pageAccess=2

Das Cookie habe ich auch zur Hälfte
cookies: {
                    jar: this.cookieJar,
                },

aber was kommt bei Origin hin, wir haben ja keine eigene Domain?  Das ist doch Domain vom Client?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Heatseeker am 21 März 2023, 21:23:10
Moin,
ich habe hier gerade nicht alles gelesen aber evtl geht es um das gleiche wie bei mir.
Mein Server hat gerade etwas gezickt, da die Festplatte nahezu voll war. Grund war, das seit Februar das MQTT für meinen Landroid sich nicht mehr verbinden konnte und sekündlich einen diconnect ins log geschrieben hat...

Habe das mal manuelle auf disconnect gestellt damit er es nicht ständig versucht und etwas aufgeräumt. Hat Landroid mal wieder (wie immer im Frühjahr) was am login geändert? Das wäre echt nervig!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 21 März 2023, 21:32:53
Genau, es wurde von User/Passwort auf Token und Websocket secure umgestellt.

IoBroker funktioniert wieder und ich versuche das gerade hier nachzubauen, damit es wieder funktioniert.
Leider nicht so einfach...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Heatseeker am 22 März 2023, 06:30:17
Moin frober,

Danke für die Info!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Jasimo am 25 März 2023, 13:21:26
Moin,
gibts noch eine Implementierung die funktioniert? Mein Landroid ist, nach dem Winterschlaf, nicht mehr in FHEM funktional.  :-\
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 25 März 2023, 13:46:33
Zitat von: Jasimo am 25 März 2023, 13:21:26Moin,
gibts noch eine Implementierung die funktioniert? Mein Landroid ist, nach dem Winterschlaf, nicht mehr in FHEM funktional.  :-\

https://forum.fhem.de/index.php?msg=1264477 (https://forum.fhem.de/index.php?msg=1264477)

Ich komme im Moment nicht weiter...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 25 März 2023, 15:37:58
Zitataber was kommt bei Origin hin, wir haben ja keine eigene Domain?  Das ist doch Domain vom Client?
Diese Allow-* Zeilen sind im HTTP-Header des Servers, und weisen den Browser an, bestimmte Sachen zu erlauben (Zugriff aus Javascript auf die Cookies, oder auf andere Webseiten).
Fuer die HttpUtils Funktionen sind diese Anweisungen irrelevant.
Wenn ich die Zeit finde zum Experimentieren: Gibt es eine Anleitung, was ich machen muss, um die Anmeldung selbst zu versuchen? Oder braucht man dafuer Hardware?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 25 März 2023, 16:07:57
Zitat von: rudolfkoenig am 25 März 2023, 15:37:58
Zitataber was kommt bei Origin hin, wir haben ja keine eigene Domain?  Das ist doch Domain vom Client?
Diese Allow-* Zeilen sind im HTTP-Header des Servers, und weisen den Browser an, bestimmte Sachen zu erlauben (Zugriff aus Javascript auf die Cookies, oder auf andere Webseiten).
Fuer die HttpUtils Funktionen sind diese Anweisungen irrelevant.
Wenn ich die Zeit finde zum Experimentieren: Gibt es eine Anleitung, was ich machen muss, um die Anmeldung selbst zu versuchen? Oder braucht man dafuer Hardware?

Danke für das Angebot, Hardware ist nicht nötig, nur der Zugang und die Benutzerdaten. Kann ich die zur Verfügung stellen.

Soweit ich gelesen habe, kann der Client mit Origin = eigeneDomain oder * beim Server anfragen, ob die Unterstützung vorhanden ist. Evtl. ist noch url
Host nötig. Bisher waren meine Anfragen aber ohne Erfolg.

Aktuell habe ich den Entwickler der DeskApp angeschrieben. Er ist fast soweit, dass es wieder funktioniert und verwendet die SDK auch nicht. Mal sehen ob er bereit ist zu antworten...

Notfalls Frage ich noch bei Positec an, da ich nicht weiß was der Server fordert. Laut AWS gibt es viele Möglichkeiten und aus der SDK wurde ich bisher nicht schlau.

P.S. den axios Code habe ich mir auch angesehen, da wird zusätzlich zum http request XMLHttpRequest verwendet und das hat die Funktion withcredentials.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 26 März 2023, 13:46:47
Hallo Rudi,

bezgl. API connect, bin ich mir nicht sicher ob ich das überhaupt benötige. Der Token refresh aktualisiert anscheinend nur die MQTT Verbindung.

Daher habe ich erstmal wieder die Verbindung zum MQTT Server getestet, müsste hier mit wss nicht erst der Wechsel auf Websocket angefragt und dann der Websocketheader zur Authentifizierung gesendet werden?
Mich wundert, dass der response Header immer gleich ist...

Laut Log wird der Websocket-Header mit dem Token bei der Anfrage gesendet, dann auf Websocket gewechselt. Es folgt dann nur ein Loginversuch mit der cliendId:
2023.03.26 12:45:46 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.03.26 12:45:47 4: IP: iot.eu-west-1.worxlandroid.com -> 34.252.173.127
2023.03.26 12:45:47 5: HttpUtils request header:
GET / HTTP/1.1
User-Agent: fhem
Accept-Encoding: gzip,deflate
Connection: Upgrade
protocol: wss-custom-auth
baseReconnectTimeMs: 5000
Sec-WebSocket-Key: FQ7pU0NSz4mQ9GaEZQRWjw==
clientId: android-xxx
host: iot.eu-west-1.worxlandroid.com
username: iobroker
Sec-WebSocket-Protocol: mqtt
customAuthHeaders: {
                        "x-amz-customauthorizer-name": "com-worxlandroid-customer",
                        "x-amz-customauthorizer-signature": "xxx",
                        jwt: "xxx.xxx,
                        }
Sec-WebSocket-Version: 13
region: eu-west-1
Upgrade: websocket

2023.03.26 12:45:47 4: https://iot.eu-west-1.worxlandroid.com:443/: HTTP response code 101
2023.03.26 12:45:47 5: HttpUtils https://iot.eu-west-1.worxlandroid.com:443/: Got data, length: 0
2023.03.26 12:45:47 5: HttpUtils response header:
HTTP/1.1 101 Switching Protocols
content-length: 0
upgrade: websocket
connection: upgrade
sec-websocket-accept: 6BR6nnFSkFcop27qN/U2kPmBZic=
sec-websocket-protocol: mqtt
2023.03.26 12:45:47 5: MQTT2_Worx: sending CONNECT (16)9(0)(4)MQTT(4)(2)(3)(232)(0)-android-xxx(10)
2023.03.26 12:45:47 5: DevIo_SimpleWrite MQTT2_Worx: 10390004xxx061360a
2023.03.26 12:45:47 1: wss:iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.03.26 12:45:47 5: Websocket msg: OP:8 LEN:0 MASK:0 FIN:1
2023.03.26 12:45:47 5: Websocket close, reason:

Wenn ich den ioBroker richtig verstehe wird der WS-Header im Header als Json mit gesendet:

Zitatthis.mqttC = awsIot.device({
                clientId: `${this.clouds[this.config.server].mqttPrefix}/USER/${this.userData.id}/iobroker/${uuid}`,
                username: "iobroker",
                protocol: "wss-custom-auth",
                host: mqttEndpoint,
                region: region,
                customAuthHeaders: headers,    //const headers = this.createWebsocketHeader();
                baseReconnectTimeMs: 5000,
            });


createWebsocketHeader() {
        const accessTokenParts = this.session.access_token.replace(/_/g, "/").replace(/-/g, "+").split(".");
        const headers = {
            "x-amz-customauthorizer-name": "com-worxlandroid-customer",
            "x-amz-customauthorizer-signature": accessTokenParts[2],
            jwt: `${accessTokenParts[0]}.${accessTokenParts[1]}`,
        };
        return headers;


Nachtrag:
Gerade mit einer Kopie vom Client ohne gesetzten Header getestet, gleicher response Header und wechsel auf Websocket erfolgt auch:
2023.03.26 13:49:42 5: MQTT2_Worx_Test: discarding DISCONNECT (224)(0)
2023.03.26 13:49:51 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.03.26 13:49:51 4: IP: iot.eu-west-1.worxlandroid.com -> 52.18.132.86
2023.03.26 13:49:51 5: HttpUtils request header:
GET / HTTP/1.1
Host: iot.eu-west-1.worxlandroid.com
User-Agent: fhem
Accept-Encoding: gzip,deflate
Sec-WebSocket-Protocol: mqtt
Connection: Upgrade
Sec-WebSocket-Key: Ln2i8Qi6c1xoOsk+68EsHQ==
Sec-WebSocket-Version: 13
Upgrade: websocket

2023.03.26 13:49:51 4: https://iot.eu-west-1.worxlandroid.com:443/: HTTP response code 101
2023.03.26 13:49:51 5: HttpUtils https://iot.eu-west-1.worxlandroid.com:443/: Got data, length: 0
2023.03.26 13:49:51 5: HttpUtils response header:
HTTP/1.1 101 Switching Protocols
content-length: 0
upgrade: websocket
connection: upgrade
sec-websocket-accept: WuceeZXGGJwUHYUbI17e9cvz1xg=
sec-websocket-protocol: mqtt
2023.03.26 13:49:51 5: MQTT2_Worx_Test: sending CONNECT (16)9(0)(4)MQTT(4)(2)(3)(232)(0)-android-xxx(10)
2023.03.26 13:49:51 5: DevIo_SimpleWrite MQTT2_Worx_Test: 1039000xxx5303061360a
2023.03.26 13:49:51 1: wss:iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx_Test)
2023.03.26 13:49:51 5: Websocket msg: OP:8 LEN:0 MASK:0 FIN:1
2023.03.26 13:49:51 5: Websocket close, reason:
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 26 März 2023, 17:38:32
ZitatDanke für das Angebot, Hardware ist nicht nötig, nur der Zugang und die Benutzerdaten. Kann ich die zur Verfügung stellen.
Ja bitte, oder mir beschreiben, wie/wo ich selbst was anlegen kann.


ZitatWenn ich den ioBroker richtig verstehe wird der WS-Header im Header als Json mit gesendet:
Kannst Du mir die Quelle dieses Codestuecks zeigen?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 26 März 2023, 19:02:20
Zitat von: rudolfkoenig am 26 März 2023, 17:38:32
ZitatDanke für das Angebot, Hardware ist nicht nötig, nur der Zugang und die Benutzerdaten. Kann ich die zur Verfügung stellen.
Ja bitte, oder mir beschreiben, wie/wo ich selbst was anlegen kann.

https://id.worx.com/login (https://id.worx.com/login)
Fürs Testen sollte das reichen, um Daten zu empfangen, müsstest du natürlich einen Mäher registrieren.
Für meinen Account müsstest du mir mittteilen, wie ich sie dir senden kann.

Die clietId kannst du dir, wie unter #1 beschrieben generieren:
attr MQTT_Worx autocreate simple {my $uuid=substr(genUUID(),0,36);;fhem("attr MQTT_Worx clientId android-$uuid")}
Zitat
ZitatWenn ich den ioBroker richtig verstehe wird der WS-Header im Header als Json mit gesendet:
Kannst Du mir die Quelle dieses Codestuecks zeigen?

Aus main.js habe ich soweit alles "abgeschrieben".
https://github.com/iobroker-community-adapters/ioBroker.worx/blob/master/main.js (https://github.com/iobroker-community-adapters/ioBroker.worx/blob/master/main.js)

und noch meine aktuelle Sub, Debug habe ich drin gelassen aber aus kommentiert
sub connectWorx
{
    #my $file = 'Landroid.log';
   
    my $hash = 'WorxTest';
    #my $def = shift;
    #my $name = $hash->{NAME};
    my $param = {
                    url        => "https://id.eu.worx.com/oauth/token",
                    timeout    => 5,
                    hash       => $hash,
                    method     => "POST",
                    header     => "User-Agent: TeleHeater/2.2.3\r\nAccept: application/json\r\ncontent-type: application/json\r\naccept-language: de-de",
            data       => '{"client_id": "150da4d2-bb44-433b-9429-3773adc70a2a","username": "xxx@xxx.de","password": "xxx!","scop": "*","grant_type": "password"}',
                    callback   => \&WorxApiRequest
                };
    #debuglog("data: ".$param->{data}, $file);

    HttpUtils_NonblockingGet($param);
}

sub WorxApiRequest($)
{
    my $param = shift;
    my $err = shift;
    my $data = shift;
    my $hash = $param->{hash};
    #my $header = $param->{httpheader};
    my $name = 'Landroid';
   
    #my $file = 'Landroid.log';
   
    #debuglog("WorxApiRequest", $file);
    #debuglog("\nheader: $header\nAuth: $param->{auth}", $file);
   
    #return debuglog("Abbruch Test", $file);

    if($err ne "")                                                                                                       # wenn ein Fehler bei der HTTP Abfrage aufgetreten ist
    {
    #debuglog("error while requesting from token ".$param->{url}." - $err", $file);
        Log3 $name, 3, "error while requesting ".$param->{url}." - $err";                                               # Eintrag fürs Log
        #readingsSingleUpdate($hash, "fullResponse", "ERROR", 0);                                                        # Readings erzeugen
    }

    elsif($data ne "")                                                                                                   # wenn die Abfrage erfolgreich war ($data enth? die Ergebnisdaten des HTTP Aufrufes)
    {
    #debuglog("url ".$param->{url}." returned: $data", $file);
        Log3 $name, 3, "url ".$param->{url}." returned: $data";                                                         # Eintrag fürs Log

        my @array = ();
        push @array, $data =~ /token_type.:.([^"]+).*expires_in.:([^"]+),.*access_token.:.([^"]+).*refresh_token.:.([^"]+)/gis;  # Token etc. aus Json auslesen
       
        #debuglog("\ntokentyp: $array[0] \nAblauf: $array[1] \naccess: $array[2] \nrefresh: $array[3]", $file);
       
        $hash = { hash => $hash, data => $data};
       
        my $param = {
                    url        => "https://api.worxlandroid.com/api/v2/users/me",
                    timeout    => 5,
                    hash       => $hash,
                    method     => "GET",
                    header     => "Host: api.worxlandroid.com\r\nOrigin: '*'\r\naccept: application/json\r\ncontent-type: application/json\r\nuser-agent: TeleHeater/2.2.3\r\naccept-language: de-de\r\nauthorization: $array[0] $array[2]",
            callback   => \&WorxMQTTlogin
                };
    #debuglog("param: $param->{header}", $file);

    HttpUtils_NonblockingGet($param);
    }
   
return;
}


sub WorxMQTTlogin($)
{
    my $param = shift;
    my $err = shift;
    my $data = shift;
    my $hash = $param->{hash};
    my $data2 = $hash->{data};
    $hash = $hash->{hash};
   
    my $header = $param->{httpheader};
   
    my $name = 'Landroid';
   
    #my $file = 'Landroid.log';
   
    #debuglog("WorxMQTTlogin", $file);
    #debuglog("\nheader: $header\nAuth: $param->{auth}", $file);
   
    #return debuglog("Abbruch Test", $file);

    if($err ne "")                                                                                                       # wenn ein Fehler bei der HTTP Abfrage aufgetreten ist
    {
    #debuglog("error while requesting from API".$param->{url}." - $err", $file);
        Log3 $name, 3, "error while requesting ".$param->{url}." - $err";                                               # Eintrag fürs Log
        #readingsSingleUpdate($hash, "fullResponse", "ERROR", 0);                                                        # Readings erzeugen
    }

    elsif($data ne "")                                                                                                   # wenn die Abfrage erfolgreich war ($data enth? die Ergebnisdaten des HTTP Aufrufes)
    {
    #debuglog("url ".$param->{url}." returned: $data", $file);
        Log3 $name, 3, "url ".$param->{url}." returned: $data";                                                         # Eintrag fürs Log

        my @array = ();
       
        push @array, $data =~ /message.:.([^"]+).*code.:.([^"]+)/gis;
        return debuglog("\nmessage: $array[0] \ncode: $array[1]", $file) if($array[0] ne "");
       
        #return debuglog("Abbruch Test", $file);
       
        push @array, $data2 =~ /token_type.:.([^"]+).*expires_in.:([^"]+),.*access_token.:.([^"]+).*refresh_token.:.([^"]+)/gis;  # Token etc. aus Json auslesen
       
        #debuglog("\ntokentyp: $array[0] \nAblauf: $array[1] \naccess: $array[2] \nrefresh: $array[3]", $file);
       
        $array[2] =~ s/[_]/\//g;                    # im Token _ durch / ersetzen
        $array[2] =~ s/[-]/+/g;                        # im Token - durch + ersetzen
        my @token = split(/\./,$array[2]);            # Token beim . splitten
       
        #debuglog("\nTeil 1: $token[0] \nTeil 2: $token[1] \nTeil 3: $token[2]", $file);
       
        #my $header = "x-amz-customauthorizer-name:com-worxlandroid-customer x-amz-customauthorizer-signature:$token[2] jwt:$token[0].".".$token[1]" # websocket header erstellen für MQTT2_CLIENT
        my $wssHeader = qq({
                        "x-amz-customauthorizer-name": "com-worxlandroid-customer",
                        "x-amz-customauthorizer-signature": "$token[2]",
                        jwt: "$token[0].$token[1]"
                        });
                         
        #debuglog("MQTT WSS Header: $wssHeader", $file);
       
        $defs{MQTT2_Worx}{header} =  { "clientId" => "android-xxx", "username" => "iobroker", "protocol" => "wss-custom-auth", "host" => "iot.eu-west-1.worxlandroid.com", "region" => "eu-west-1", "customAuthHeaders" => $wssHeader, "baseReconnectTimeMs" => 5000};
       
        #debuglog("MQTT Header: $defs{MQTT2_Worx}{header}", $file);
        # return fhem ("attr MQTT2_Worx HttpHeader $header; set MQTT2_Worx connect; defmod at_reconnect at $array[1]-100 {refrechToken()}");
       
        return fhem('set MQTT2_Worx connect');

        #readingsSingleUpdate($hash, "fullResponse", $data, 0);                                                          # Readings erzeugen
    }
return;   
}
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 31 März 2023, 11:35:48
Der Entwickler der Deskapp hat mir geantwortet:
ZitatLetztendlich kann man mit dem Access-Token (3 Teile) eine direkte Mqtt-Verbindung über Port 443 erstellen, wenn der MqttClient TLS1.2 und zusätzlich AWS, jwt und ALPN unterstützt.
Den Umweg über die API benötigen wir also doch nicht.

TLS1.2 -> sollte passen
AWS    -> vermutlich 'Amazon Web Service', bzw. die Spezifikation!?  https://docs.aws.amazon.com/iot/latest/developerguide/mqtt.html (https://docs.aws.amazon.com/iot/latest/developerguide/mqtt.html) Da MQTT vor der Umstellung schon funktioniert hat, sollte das vermutlich auch passen.
jwt       -> Json Web Token https://jwt.io/introduction (https://jwt.io/introduction), das habe ich in der Sub
ALPN   -> ? (Der Zusatz "mqtt" war das Schwierige bei der Deskapp ohne SDK)

@Rudi, gibt es hier noch Handlungsbedarf?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 31 März 2023, 18:19:39
AWS:
ich habe die verlinkte Doku durchgeflogen, und sehe keine Probleme

jwt:
keine Ahnung, wo man den Token setzen soll, wenn man "plain" MQTT macht, und auf WebSocket verzichtet.

alpn:
AWS Doku dazu: https://aws.amazon.com/blogs/iot/mqtt-with-tls-client-authentication-on-port-443-why-it-is-useful-and-how-it-works/
Dass man per TLS kann den Protokoll aussuchen kann, war mir neu.
Mir ist noch nicht klar, wozu wir alpn machen sollten: 8883 ist offen, und wir sind nicht hinter einem Corporate Firewall.
Wie auch immer, man sollte die mit Motivation nicht am Forschen hindern :)
Leider will SSL_alpn_protocols ein Array reference (siehe https://metacpan.org/pod/IO::Socket::SSL#SSL_alpn_protocols), deswegen musste ich HttpUtils.pm erweitern.
Um alpn fuer AWS zu nutzen, sollte man sslargs setzen bzw. erweitern:
define m2c MQTT2_CLIENT iot.eu-west-1.worxlandroid.com:443
attr m2c SSL 1
attr m2c sslargs SSL_alpn_protocols:x-amzn-mqtt-ca
Das reicht noch nicht, m2c kriegt kein MQTT CONNACK, Authentifizierung/etc fehlt.
Womoeglich funktioniert alpn auch nicht, ich kann es ja nicht wirklich testen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 31 März 2023, 19:57:09
Zitat von: rudolfkoenig am 31 März 2023, 18:19:39AWS:
ich habe die verlinkte Doku durchgeflogen, und sehe keine Probleme
Ok, danke.

Zitatjwt:
keine Ahnung, wo man den Token setzen soll, wenn man "plain" MQTT macht, und auf WebSocket verzichtet.
Das mache ich über den Websocket-Header in der Sub.
Zitatmy $wssHeader = qq({
                        "x-amz-customauthorizer-name": "com-worxlandroid-customer",
                        "x-amz-customauthorizer-signature": "$token[2]",
                        jwt: "$token[0].$token[1]"
                        });

Zitatalpn:
AWS Doku dazu: https://aws.amazon.com/blogs/iot/mqtt-with-tls-client-authentication-on-port-443-why-it-is-useful-and-how-it-works/
Dass man per TLS kann den Protokoll aussuchen kann, war mir neu.
Mir ist noch nicht klar, wozu wir alpn machen sollten: 8883 ist offen, und wir sind nicht hinter einem Corporate Firewall.
Wie auch immer, man sollte die mit Motivation nicht am Forschen hindern :)
Leider will SSL_alpn_protocols ein Array reference (siehe https://metacpan.org/pod/IO::Socket::SSL#SSL_alpn_protocols), deswegen musste ich HttpUtils.pm erweitern.
Um alpn fuer AWS zu nutzen, sollte man sslargs setzen bzw. erweitern:
define m2c MQTT2_CLIENT iot.eu-west-1.worxlandroid.com:443
attr m2c SSL 1
attr m2c sslargs SSL_alpn_protocols:x-amzn-mqtt-ca
Das reicht noch nicht, m2c kriegt kein MQTT CONNACK, Authentifizierung/etc fehlt.
Womoeglich funktioniert alpn auch nicht, ich kann es ja nicht wirklich testen.
Es wird MQTT over WSS benutzt auf Port 443.

Nochmals danke, leider funktioniert Websocket nicht mehr bei gesetztem
attr MQTT2_Worx sslargs SSL_version:TLSv12 SSL_alpn_protocols:x-amzn-mqtt-caVorsichtshalber habe ich noch TLS1.2 mit angegeben, wahrscheinlich nicht nötig.
maxNrConnects funktioniert auch nicht mehr, wenn ich das Attr hoch setze wird beim nächsten Versuch wieder angezeigt, dass die max Anzahl erreicht ist und es erfolgt kein connect.

Sorry, wenn ich dir Arbeit mache. Vielleicht bin ich mit meiner geringen Erfahrung auch der Falsche für diese Umstellung, aber ich denke es sind einige User die darauf warten, bis es wieder funktioniert.
Wie schon angeboten, würde ich dir meinen Account zum Testen "leihen", nur wie? Persönliche Nachrichten hast du verständlicher Weise blockiert...

Nachtrag:
Als Protokollname wird 'mqtt' verwendet
SSL_alpn_protocols:mqtt, laut meiner Info vom DeskApp-Entwickler.
Für MQTT over WSS ist bei AWS überhaupt kein Protokollname angegeben, deswegen habe ich ihn nochmals angeschrieben.
https://docs.aws.amazon.com/de_de/iot/latest/developerguide/protocols.html (https://docs.aws.amazon.com/de_de/iot/latest/developerguide/protocols.html)

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 01 April 2023, 11:30:53
zur Info:

die DeskApp V0.31a ist verfügbar, dafür muss .NET Core 6.0 installiert werden

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 01 April 2023, 12:00:57
ZitatNochmals danke, leider funktioniert Websocket nicht mehr bei gesetztem [...] SSL_alpn_protocols:x-amzn-mqtt-ca
WSS sollte auch nicht funktionieren, man bestellt ja mit SSL_alpn_protocols explizit "plain" MQTT, und damit nicht die Voreinstellung HTTP, was fuer Websocket die benoetigte "Vorstufe" ist. Insofern danke fuer die Bestaetigung, dass diese Option funktioniert.

alpn ist fuer direktes MQTT (d.h. ohne Websocket) gedacht, fuer den Fall dass man hinter dem Corporate Firewall ist, und die beschraenkte IT-Abteilung nur HTTPS (Port 443) nach aussen zulaesst. Es koennte zwar sein, dass AWS auch auf Port 443 mit alpn besteht, 8883 ist aber offen, und das spricht dagegen.

ZitatDas mache ich über den Websocket-Header in der Sub.
Das geht zwar, ist aber nicht mehr "plain" MQTT sondern MQTT over WebSocket, und man braucht dazu kein alpn.

ZitatWie schon angeboten, würde ich dir meinen Account zum Testen "leihen", nur wie? Persönliche Nachrichten hast du verständlicher Weise blockiert...
Email Adresse ist in dem Impressum hinterlegt.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 01 April 2023, 14:27:24
Zitat von: rudolfkoenig am 01 April 2023, 12:00:57
ZitatNochmals danke, leider funktioniert Websocket nicht mehr bei gesetztem [...] SSL_alpn_protocols:x-amzn-mqtt-ca
WSS sollte auch nicht funktionieren, man bestellt ja mit SSL_alpn_protocols explizit "plain" MQTT, und damit nicht die Voreinstellung HTTP, was fuer Websocket die benoetigte "Vorstufe" ist. Insofern danke fuer die Bestaetigung, dass diese Option funktioniert.

alpn ist fuer direktes MQTT (d.h. ohne Websocket) gedacht, fuer den Fall dass man hinter dem Corporate Firewall ist, und die beschraenkte IT-Abteilung nur HTTPS (Port 443) nach aussen zulaesst. Es koennte zwar sein, dass AWS auch auf Port 443 mit alpn besteht, 8883 ist aber offen, und das spricht dagegen.
Ich warte noch auf die Antwort von DeskApp Entwickler, aber im Forum hat er geschrieben, dass "MQTT over https by Postitec", also benutzerdefiniert verwendet wird.
Durch die ursprünglichen Infos habe ich mich zu sehr auf WSS konzentriert. 

Zitat
ZitatDas mache ich über den Websocket-Header in der Sub.
Das geht zwar, ist aber nicht mehr "plain" MQTT sondern MQTT over WebSocket, und man braucht dazu kein alpn.
Jetzt bin ich mir hier nicht mehr sicher, für MQTT müsste die Auth in die Url, bei Https würde es auch über den Header funktionieren. Bei MQTT over Https...?
Auf jedem Fall wird zuerst der Token und vermutlich auch die Bearbeitung von diesem benötigt.
Möglich, dass die Abfrage der API doch relevant ist, da hier noch eine userId empfangen wird.

Aus der Developerguide https://docs.aws.amazon.com/de_de/iot/latest/developerguide/custom-auth.html (https://docs.aws.amazon.com/de_de/iot/latest/developerguide/custom-auth.html):
ZitatMQTT
Geräte, die AWS IoT Core über eine MQTT-Verbindung eine Verbindung herstellen, können Anmeldeinformationen über die password Felder username und von MQTT-Nachrichten weitergeben. Der username Wert kann optional auch eine Abfragezeichenfolge enthalten, die zusätzliche Werte (einschließlich eines Tokens, einer Signatur und eines Autorisierungsnamens) an Ihren Autorisierer übergibt. Sie können diese Abfragezeichenfolge verwenden, wenn Sie ein tokenbasiertes Authentifizierungsschema anstelle von username und password -Werten verwenden möchten.

Anmerkung
Die Daten im Passwortfeld sind base64-kodiert von AWS IoT Core. Ihre Lambda-Funktion muss es dekodieren.

Das folgende Beispiel enthält eine username Zeichenfolge, die zusätzliche Parameter enthält, die ein Token und eine Signatur angeben.
username?x-amz-customauthorizer-name=authorizer-name&x-amz-customauthorizer-signature=token-signature&token-key-name=token-value
Um einen Autorisierer aufzurufen, müssen Geräte, zuAWS IoT Core denen MQTT und benutzerdefinierte Authentifizierung eine Verbindung herstellen, über Port 443 eine Verbindung herstellen. Sie müssen außerdem die TLS-Erweiterung Application Layer Protocol Negotiation (ALPN) mit dem Wert von mqtt und die Erweiterung Server Name Indication (SNI) mit dem Hostnamen ihresAWS IoT Core Datenendpunkts übergeben. Um mögliche Fehler zu vermeiden, x-amz-customauthorizer-signature sollte der Wert für URL-codiert sein. Wir empfehlen außerdem dringend, dass die Werte vonx-amz-customauthorizer-name und token-key-name URL-codiert sind. Weitere Informationen zu diesen Werten finden Sie unter Kommunikationsprotokolle für Geräte. Die V2AWS IoTGeräte-SDKs, Mobil-SDKs und AWS IoT Geräteclient kann diese beiden Erweiterungen konfigurieren.

Zitat
ZitatWie schon angeboten, würde ich dir meinen Account zum Testen "leihen", nur wie? Persönliche Nachrichten hast du verständlicher Weise blockiert...
Email Adresse ist in dem Impressum hinterlegt.
Ok, danke.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 01 April 2023, 18:46:41
Habe gerade die Antwort bekommen.
Es geht über MQTT over https mit ALPN 'mqtt' und die Credentials in der Url oder über Websocket und Header (hier muss an den Endpunkt noch ein /mqtt).

Er hat mir ein Teil seines Codes mitgesendet, den muss ich mir noch anschauen...

@Rudi habe dir eine Mail gesendet, sollten nach einem erfolgreichen Connect keine Daten kommen, liegt es daran, dass mein Mäher noch schläft. Connect hat aber bei der DeskApp auch so funktioniert.
Im Laufe der nächsten Woche sollte er Online sein...
Ich kann ich dir gerne die Codezeilen zukommen lassen (C# und dotnet).

Wo wird das Protokoll 'wss-custom-auth'
bei WSS angegeben? Das gehört anscheinend doch nicht in den Header!?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 01 April 2023, 19:51:27
Den MQTT Abschnitt im Developer-Guide habe ich auch gesehen token-signature ist wohl der letzte Teil vom access_token. Sind token-key-name und token-value die ersten beiden?
 
Ansonsten habe ich den iobroker Connector angeschaut, und jetzt ist mein Kopf fuer heute voll :)
Und wuesste gerne, wo updateCustomAuthHeaders definiert ist, in aws-iot-device-sdk-js-v2-main ist es nicht.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 02 April 2023, 10:02:15
Zitat von: rudolfkoenig am 01 April 2023, 19:51:27Den MQTT Abschnitt im Developer-Guide habe ich auch gesehen token-signature ist wohl der letzte Teil vom access_token. Sind token-key-name und token-value die ersten beiden?
token-key-name = jwt
token-value = die beiden ersten mit Punkt verbunden
jwt: $token[0].".".$token[1]
ZitatUnd wuesste gerne, wo updateCustomAuthHeaders definiert ist, in aws-iot-device-sdk-js-v2-main ist es nicht.
updateCustomAuthHeaders habe ich auch nicht gefunden, theoretisch müsste das in der SDK sein.
Ein Token refresh erfolgt ähnlich wie die Neuanforderung. Anstelle User/Passwort wird der refresch_token gesendet. Damit erhält man einen neuen Token. Server disconnet und neuer Connect mit neuem Token. Mehr sollte es nicht sein.

data: JSON.stringify({
                client_id: this.clouds[this.config.server].clientId,
                scope: "user:profile mower:firmware mower:view mower:pair user:manage mower:update mower:activity_log user:certificate data:products mower:unpair mower:warranty mobile:notifications mower:lawn",
                refresh_token: this.session.refresh_token,
                grant_type: "refresh_token",
            }),

Die Tage habe ich Besuch, das Testen deines Workarounds kann etwas dauern.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 03 April 2023, 18:59:02
Ich lade mal meinen aktuellen Stand hoch.
Die HTTP Aufrufe (auth, userinfo, deviceinfo) funktionieren, eine MQTT-Verbindung kann ich aber weder per wss noch per direktes MQTT herstellen.

Ich habe versucht die Konfiguration in das Hilfsmodul LandroidUtils.pm zu packen (siehe Anhang), damit ist die Definition wie folgt:
define MQTT2_Worx MQTT2_CLIENT XX
attr MQTT2_Worx connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx")}
attr MQTT2_Worx username YYY
wobei username gesetzt werden muss, und auch das Passwort per "set MQTT2_Worx password ZZZ".

Ich habe vom iobroker die Cloud-Adressen der 4 Anbieter kopiert, d.h. statt XX wird die vom userinfo mitgelieferte Gegenstelle verwendet, nicht wundern.

Dank deviceinfo kriegt man eine Liste aller mit diesem Account verbundenen Geraete, diese werden automatisch angelegt (autocreate), und die im Paket erhaltenen Readings (bis auf auto_schedule und last_status) gesetzt.

Wenn man wss:XX statt XX schreibt, dann wird websocket versucht (wie geschrieben, geht auch nicht).
Nach der Verbindung klappt die Gegenseite ohne Details zu, die Aufgabe ist rauszufinden, wieso.
Zum Verwenden ist die aktuelle Version von MQTT2_CLIENT.pm noetig.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 03 April 2023, 19:36:32
Hallo Rudi,

wow, hätte ich jetzt nicht erwartet. Allein die Einbindung deines Workarounds fand ich schon super.

Ich habe heute kurz getestet, bekommst du einen Token?
Ich musste 'data=> toJSON(...' nacharbeiten, d.h. alles in eine Zeile, ohne unnötige Leerzeichen etc.
data => toJSON({client_id=>"150da4d2-bb44-433b-9429-3773adc70a2a", username=>$usr, password=>$pwd, scope=>"*", grant_type=>"password"})
Der Server ist hier zickig, was ich bei meinen ersten Versuchen gemerkt habe. Deswegen hatte ich den Json-String auch vorerst direkt rein geschrieben.

Ich vermute das beim https die Substitution beim Token verkehrt ist.

Im Log bein Connect hängt nach den Token noch das Passwort, stört evtl auch und der User in der Url ist vermutlich auch nicht der Anmeldename. In der DeskApp ist hier einfach 'da' und beim ioBroker wird als username 'ioBroker' übergeben.

Könnte noch nicht weiter testen ..
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 03 April 2023, 20:12:53
ZitatIch habe heute kurz getestet, bekommst du einen Token?
Mit der angehaengter Datei und MQTT2_Client.pm aus SVN?
Welchen "Step" meinst Du?

Die 3 Webcalls (auth, userinfo, deviceinfo) klappen, ich kann dank deviceInfo die Details deines Geraetes anschauen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 03 April 2023, 20:18:07
Zitat von: rudolfkoenig am 03 April 2023, 20:12:53
ZitatIch habe heute kurz getestet, bekommst du einen Token?
Mit der angehaengter Datei und MQTT2_Client.pm aus SVN?
Welchen "Step" meinst Du?

Die 3 Webcalls (auth, userinfo, deviceinfo) klappen, ich kann dank deviceInfo die Details deines Geraetes anschauen.

Nein, war heute Morgen mit den Daten per Mail.

D.h. du hast API Zugriff?
Da wäre ein Test mit der userID bzw. von /User/me die ID (k.a. wie man die übergibt) und den gelieferten Endpunkt noch interessant.
Morgen Abend sollte ich etwas Zeit zum Testen haben ..
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 04 April 2023, 11:26:02
Hallo Rudi,

ich bin den Code durchgegangen und habe nun gesehen, dass du mein Geschriebenes schon umgesetzt, bzw. den komplette Code von ioBroker nachgebaut hast. Wow, kann ich da nur sagen.

Nun habe ich kurz getestet, leider sperrt der Server bei 3-4 Fehlversuchen ( für 24h ?):
2023.04.04 11:01:36 5: MQTT2_Worx: discarding DISCONNECT (224)(0)Irgendwo habe ich gelesen, wenn man 3x keine Daten abruft wird man temp. gesperrt.

Da ich gesperrt werde, vermute ich mal, dass wir nah dran sind.
Hattest du die Meldung/Sperre auch?

In der Url (https) habe ich den User ausgetauscht. Nach meinen Infos ist es der Gleiche wie bei clientID, also aktuell ioBroker.
Falls ich einen Connect hinbekomme, teste ich, ob als User auch Fhem o.ä. funktioniert...

Zitat2023.04.04 10:12:41 5: MQTT2_Worx: sending CONNECT (16)(227)(11)(0)(4)MQTT(4)(194)(2)X(0)<WX/USER/xxx/iobroker/xxx(5)(142)iobroker?x-amz-customauthorizer-signature=xxx&jwt=xxx(0)(9)Passwort!

Am Ende wird hier das Passwort mit gesendet, keine Ahnung ob das stört.

Edit: für Websocket, wäre wss-custom-auth nicht hier zu setzten?
anstatt
Sec-WebSocket-Protocol: mqttfolgendes
Sec-WebSocket-Protocol: wss-custom-auth
P:S.: wo lag nun die Lösung für den API connect, warum hat es bei mir nicht funktioniert?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 04 April 2023, 11:53:17
Für die die auch testen möchten...

Zeile 203 -206 sieht nun so aus:
Zitatmy $userName = "iobroker".
                   "?x-amz-customauthorizer-name=com-worxlandroid-customer".
                   "&x-amz-customauthorizer-signature=$token[2]".
                   "&jwt=$token[0].$token[1]";
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rippi46 am 04 April 2023, 14:23:54
Hallo,

wollte auch einmal testen, leider kommt beim laden der 00_MQTT2_ClIENT.pm
folgende fehlermeldung
ERROR:
Too many arguments for main::MQTT2_CLIENT_feedTheList at ./FHEM/00_MQTT2_CLIENT.pm line 544, near "1)"

und beim laden der LandroidUtils.pm
Too many arguments for main::MQTT2_CLIENT_connect at ./FHEM/LandroidUtils.pm line 225, near "1)"
Fehlt noch irgendein Modul?


Gruß rippi
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 04 April 2023, 16:50:08
Zitat von: rippi46 am 04 April 2023, 14:23:54Hallo,

wollte auch einmal testen, leider kommt beim laden der 00_MQTT2_ClIENT.pm
folgende fehlermeldung
ERROR:
Too many arguments for main::MQTT2_CLIENT_feedTheList at ./FHEM/00_MQTT2_CLIENT.pm line 544, near "1)"

und beim laden der LandroidUtils.pm
Too many arguments for main::MQTT2_CLIENT_connect at ./FHEM/LandroidUtils.pm line 225, near "1)"
Fehlt noch irgendein Modul?


Gruß rippi


Hast du kein komplettes Update gemacht?
Evtl. fehlt noch HttpUtils.pm
Das wurde davor schon überarbeitet.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 05 April 2023, 12:13:33
ZitatToo many arguments for main::MQTT2_CLIENT_feedTheList at ./FHEM/00_MQTT2_CLIENT.pm line 544, near "1)"
Diese Version von MQTT2_CLIENT ist _sehr_ alt.
Benoetigt wird eine vom 3.April.

ZitatEdit: für Websocket, wäre wss-custom-auth nicht hier zu setzten?
Soweit ich sehe, ist "wss-custom-auth" nur ein Hinweis an die drunterliegende MQTT/Websocket Bibliothek, die x-amz-* HTTP Header zu setzen, bzw. beim Fehlen der noetigen Tokens sich zu beschweren. Fuer die Anderen: wir reden hier von der iobroker Implementation.

ZitatP:S.: wo lag nun die Lösung für den API connect, warum hat es bei mir nicht funktioniert?
Welchen "API connect" meinst Du?
- auth abholen hast Du schon hingekriegt.
- userinfo und deviceinfo hast Du nicht probiert, die funktionieren genauso wie auth
- MQTT-Connect funktioniert bei mir nicht, weder mit deinem "iobroker Patch", noch mit einem leeren Passwort. Die Leitung wird einfach zugemacht, ich kriege nicht mal ein DISCONNECT.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rippi46 am 05 April 2023, 13:09:56
Hallo

ein Connect bekomme ich mit
define MQTT2_Worx MQTT2_CLIENT XX
attr MQTT2_Worx connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx")}
attr MQTT2_Worx username YYY

auch nicht hin, aber es wir bei mir ein Mqtt-Device angelegt, das alle Daten von meinem Landroid enthält.
Steuern kann ich ihn aber nicht.


Gruß rippi



Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 05 April 2023, 13:25:13
Genau das ist auch mein Stand.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 05 April 2023, 13:53:12
Zitat von: rudolfkoenig am 05 April 2023, 12:13:33
ZitatP:S.: wo lag nun die Lösung für den API connect, warum hat es bei mir nicht funktioniert?
Welchen "API connect" meinst Du?
- auth abholen hast Du schon hingekriegt.
- userinfo und deviceinfo hast Du nicht probiert, die funktionieren genauso wie auth
- MQTT-Connect funktioniert bei mir nicht, weder mit deinem "iobroker Patch", noch mit einem leeren Passwort. Die Leitung wird einfach zugemacht, ich kriege nicht mal ein DISCONNECT.

Das stimmt nicht ganz, habe es nur nicht geschrieben.

Diesen Endpoint hatte ich eh versucht
.../api/v2/user/me

habe auch auch diesen getestet, bekam jeweils eine 403
.../api/v2/product-items?status=1&gps_status=1
Soweit ich es gesehen habe, unterscheidet sich die Anfrage nur im Endpoint.
Deshalb meine Frage.

MQTT funktioniert noch nicht und ich müsste noch bis heute Abend gesperrt sein. Wenn du es während der Sperre probiert hast, verlängert sich sich diese vermutlich.

Was meinst du mit leeren Passwort?
Für der Token wird es ja benötigt, nur nicht beim MQTT connect.

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rippi46 am 05 April 2023, 14:54:34
ZitatDiese Version von MQTT2_CLIENT ist _sehr_ alt.

sind das die richtigen Versionen?

00_MQTT2_CLIENT.pm 27389 2023-04-03 16:41:04Z rudolfkoenig
10_MQTT2_DEVICE.pm 26860 2022-12-16 08:13:49Z rudolfkoenig
00_MQTT2_SERVER.pm 26924 2022-12-29 14:35:15Z rudolfkoenig
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 05 April 2023, 15:05:38
Zitatsind das die richtigen Versionen?
Ja. MQTT2_SERVER wird fuer diese Aufgabe nicht benoetigt.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 05 April 2023, 19:47:12
Wie vermutet, bin immer noch gesperrt.
Zum Test habe ich die unveränderte LandroidUtils.pm benutzt.

@Rudi: bitte die nächste 24h keine Tests und bei 3 Fehlversuchen geht die Sperre von vorne los :-(
P.S. hast du meinen vorigen Post gesehen?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 06 April 2023, 10:30:02
An alle die Testen, stellt bitte vorerst die Tests ein.
Ich habe neue Infos, die ich hier nicht teilen kann/darf.
Aber bei zu vielen Fehlversuchen kann es passieren, dass sogar die Mowerkommunikation gesperrt wird!

@Rudi ich schreibe die heute Abend eine Mail dazu.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 06 April 2023, 10:51:15
Ich habe zuletzt gestern um 18:14 mit FHEM einen Versuch gemacht (ging nicht), und danach (gefuehlt) 3,4-mal mit IOBroker (funktionierte immer ohne Probleme, jedenfalls laut Log und Statusanzeige), bis ca. 20:00.

Die Aufrufe sind in IOBroker verschachtelt, und ein Versuch mit ltrace hat nichts gebracht.

Ich versuch mich durch den Code zu wuehlen.
Testen (egal ob IOBroker oder FHEM) werde ich erst nach Freigabe.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 07 April 2023, 22:28:24
Ich habe jetzt eine Version von LandroidUtils.pm eingecheckt was ein MQTT connect ermoeglicht.

Usage (steht auch in LandroidUtils.pm drin):
define m2c MQTT2_CLIENT xx
attr m2c username a@bc.de
attr m2c connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
set m2c password mySecret
Danach ist entweder ein FHEM Neustart, oder "set m2c connect" notwendig.
Der letzte Parameter zu Landroid_connect erlaubt autocreate der MQTT2_DEVICE Instanzen, und setzt die Readings, die aus der HTTPS-Abfrage fuer "Mower-Info" kommen, und das bei jedem Token-Refresh.

Etwa einmal die Stunde wird ein reconnect stattfinden mit dem refresh_token.
Es gibt (noch?) kein automatisches reconnect, falls der Server streikt, dafuer muss man "set m2c connect" manuell ausfuehren.

TODO: jsonMap/setList/besseres readingsList/etc.
Das ueberlasse ich den Besitzern der Geraete.

Etwas Off-Topic: MQTT-Connect hat lange nicht geklappt, weil ich den mqtt_endpoint nicht aus dem Mower-Info geholt habe, sondern aus dem User-Info, beide Datensaetze stammen aus AWS-Abfragen.
Der Falsche heisst a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com, der Richtige iot.eu-west-1.worxlandroid.com.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 08 April 2023, 08:09:45
Vielen vielen Dank Rudi! Top!

Edit:

Connect erfolgreich, Readings ausgelesen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 08 April 2023, 10:01:55
@Rudi auch von mir nochmals vielen Dank. :)
 
Mit den ganzen Anpassungen die nötig waren, hätte ich alleine keine Change gehabt, aber ich habe viel dadurch gelernt. :)

Ich habe gerade den Code angeschaut und gesehen, dass du viele meiner Gedanken schon umgesetzt hast. ;)
Nur eins, den vorhandenen Token könnte man doch z.B. bei <3500 sec weiterverwenden und nur zw. 3500 und 3600 ein refresh machen? Ok, im Normalfall sollte das keine Rolle spielen...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 08 April 2023, 10:59:11
Zitatden vorhandenen Token könnte man doch z.B. bei <3500 sec weiterverwenden und nur zw. 3500 und 3600 ein refresh machen?
Die seltenen Faelle waren mir den etwas aufwendigeren Code nicht wert.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 08 April 2023, 18:40:01
Bei mir ist der Token ein paar mal unauffällig erneuert worden:

2023.04.08 09:20:12.011 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Client_Landroid)
2023.04.08 10:19:12.735 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Client_Landroid)
2023.04.08 11:18:13.328 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Client_Landroid)
2023.04.08 12:17:13.831 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Client_Landroid)
2023.04.08 13:16:14.747 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Client_Landroid)
2023.04.08 14:15:15.404 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Client_Landroid)
2023.04.08 15:14:16.063 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Client_Landroid)

Aber dann:
2023.04.08 16:14:15.567 1: ERROR: Landroid_connect MQTT2_Client_Landroid - read from https://id.eu.worx.com:443 timed out
2023.04.08 16:20:18.954 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Client_Landroid)
2023.04.08 16:20:19.168 1: ERROR: Landroid_connect MQTT2_Client_Landroid - no access_token / <!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->
<head>


<title>id.eu.worx.com | 502: Bad gateway</title>
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/main.css" />


</head>
<body>
<div id="cf-wrapper">

   

    <div id="cf-error-details" class="p-0">
        <header class="mx-auto pt-10 lg:pt-6 lg:px-8 w-240 lg:w-full mb-8">
            <h1 class="inline-block sm:block sm:mb-2 font-light text-60 lg:text-4xl text-black-dark leading-tight mr-2">
             
              <span class="inline-block">Bad gateway</span>
              <span class="code-label">Error code 502</span>
            </h1>
            <div>
              Visit <a href="https://www.cloudflare.com/5xx-error-landing?utm_source=errorcode_502&utm_campaign=id.eu.worx.com" target="_blank" rel="noopener noreferrer">cloudflare.com</a> for more information.
            </div>
            <div class="mt-3">2023-04-08 14:20:19 UTC</div>
        </header>
       
        <div class="my-8 bg-gradient-gray">
            <div class="w-240 lg:w-full mx-auto">
                <div class="clearfix md:px-8">
                 
<div id="cf-browser-status" class=" relative w-1/3 md:w-full py-15 md:p-0 md:py-8 md:text-left md:border-solid md:border-0 md:border-b md:border-gray-400 overflow-hidden float-left md:float-none text-center">
  <div class="relative mb-10 md:m-0">
   
    <span class="cf-icon-browser block md:hidden h-20 bg-center bg-no-repeat"></span>
    <span class="cf-icon-ok w-12 h-12 absolute left-1/2 md:left-auto md:right-0 md:top-0 -ml-6 -bottom-4"></span>
   
  </div>
  <span class="md:block w-full truncate">You</span>
  <h3 class="md:inline-block mt-3 md:mt-0 text-2xl text-gray-600 font-light leading-1.3">
   
    Browser
   
  </h3>
  <span class="leading-1.3 text-2xl text-green-success">Working</span>
</div>

<div id="cf-cloudflare-status" class=" relative w-1/3 md:w-full py-15 md:p-0 md:py-8 md:text-left md:border-solid md:border-0 md:border-b md:border-gray-400 overflow-hidden float-left md:float-none text-center">
  <div class="relative mb-10 md:m-0">
    <a href="https://www.cloudflare.com/5xx-error-landing?utm_source=errorcode_502&utm_campaign=id.eu.worx.com" target="_blank" rel="noopener noreferrer">
    <span class="cf-icon-cloud block md:hidden h-20 bg-center bg-no-repeat"></span>
    <span class="cf-icon-ok w-12 h-12 absolute left-1/2 md:left-auto md:right-0 md:top-0 -ml-6 -bottom-4"></span>
    </a>
  </div>
  <span class="md:block w-full truncate">Frankfurt</span>
  <h3 class="md:inline-block mt-3 md:mt-0 text-2xl text-gray-600 font-light leading-1.3">
    <a href="https://www.cloudflare.com/5xx-error-landing?utm_source=errorcode_502&utm_campaign=id.eu.worx.com" target="_blank" rel="noopener noreferrer">
    Cloudflare
    </a>
  </h3>
  <span class="leading-1.3 text-2xl text-green-success">Working</span>
</div>

<div id="cf-host-status" class="cf-error-source relative w-1/3 md:w-full py-15 md:p-0 md:py-8 md:text-left md:border-solid md:border-0 md:border-b md:border-gray-400 overflow-hidden float-left md:float-none text-center">
  <div class="relative mb-10 md:m-0">
   
    <span class="cf-icon-server block md:hidden h-20 bg-center bg-no-repeat"></span>
    <span class="cf-icon-error w-12 h-12 absolute left-1/2 md:left-auto md:right-0 md:top-0 -ml-6 -bottom-4"></span>
   
  </div>
  <span class="md:block w-full truncate">id.eu.worx.com</span>
  <h3 class="md:inline-block mt-3 md:mt-0 text-2xl text-gray-600 font-light leading-1.3">
   
    Host
   
  </h3>
  <span class="leading-1.3 text-2xl text-red-error">Error</span>
</div>

                </div>
             
            </div>
        </div>

        <div class="w-240 lg:w-full mx-auto mb-8 lg:px-8">
            <div class="clearfix">
                <div class="w-1/2 md:w-full float-left pr-6 md:pb-10 md:pr-0 leading-relaxed">
                    <h2 class="text-3xl font-normal leading-1.3 mb-4">What happened?</h2>
                    <p>The web server reported a bad gateway error.</p>
                </div>
             
                <div class="w-1/2 md:w-full float-left leading-relaxed">
                    <h2 class="text-3xl font-normal leading-1.3 mb-4">What can I do?</h2>
                    <p class="mb-6">Please try again in a few minutes.</p>
                </div>
            </div>
             
        </div>

        <div class="cf-error-footer cf-wrapper w-240 lg:w-full py-10 sm:py-4 sm:px-8 mx-auto text-center sm:text-left border-solid border-0 border-t border-gray-300">
  <p class="text-13">
    <span class="cf-footer-item sm:block sm:mb-1">Cloudflare Ray ID: <strong class="font-semibold">7b4b267b3c08bb65</strong></span>
    <span class="cf-footer-separator sm:hidden">•</span>
    <span id="cf-footer-item-ip" class="cf-footer-item hidden sm:block sm:mb-1">
      Your IP:
      <button type="button" id="cf-footer-ip-reveal" class="cf-footer-ip-reveal-btn">Click to reveal</button>
      <span class="hidden" id="cf-footer-ip">93.119.255.109</span>
      <span class="cf-footer-separator sm:hidden">•</span>
    </span>
    <span class="cf-footer-item sm:block sm:mb-1"><span>Performance & security by</span> <a rel="noopener noreferrer" href="https://www.cloudflare.com/5xx-error-landing?utm_source=errorcode_502&utm_campaign=id.eu.worx.com" id="brand_link" target="_blank">Cloudflare</a></span>
   
  </p>
  <script>(function(){function d(){var b=a.getElementById("cf-footer-item-ip"),c=a.getElementById("cf-footer-ip-reveal");b&&"classList"in b&&(b.classList.remove("hidden"),c.addEventListener("click",function(){c.classList.add("hidden");a.getElementById("cf-footer-ip").classList.remove("hidden")}))}var a=document;document.addEventListener&&a.addEventListener("DOMContentLoaded",d)})();</script>
</div><!-- /.error-footer -->


    </div>
</div>
</body>
</html>

Wobei das allerdings auch eher nach einem infrastrukturellen Problem aussieht...

Und danach nichts mehr, das liegt wahrscheinlich an dem AttributmaxFailedConnects 1?

Und nun connected der MQTT2_Client auch nicht mehr.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 08 April 2023, 19:11:58
Bei mir gibt es keine Probleme.
Gehe Mal im Device auf Def und übernehme ohne Änderung ob der Connect wieder funktioniert. Connect wird auto. ausgeführt.

id.eu.worx.com | 502: Bad gatewayDas verwundert mich.
@Rudi hast du eine Idee,?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 08 April 2023, 20:19:05
Einen erneuten Connect (set ... connect) hatte ich natürlich probiert, das war erfolglos.

Ein shutdown restart hat's geheilt.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 08 April 2023, 21:11:51
Zitat von: Ralli am 08 April 2023, 20:19:05Einen erneuten Connect (set ... connect) hatte ich natürlich probiert, das war erfolglos.

Ein shutdown restart hat's geheilt.

Von (set ... connect) war nicht die Rede.
Def öffnen, als wolltest du xx ändern und einfach übernehmen löst einen Reconnect aus.
Dann kannst du ein shutdown restart sparen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 09 April 2023, 07:25:52
Zitat von: frober am 08 April 2023, 21:11:51Von (set ... connect) war nicht die Rede.

Das weiß ich - hab's aber trotzdem probiert ;)

ZitatDef öffnen, als wolltest du xx ändern und einfach übernehmen löst einen Reconnect aus.
Dann kannst du ein shutdown restart sparen.

Danke, ja, ist mit bekannt.

So sah es heute nacht aus:

Zitat2023.04.09 01:11:46.922 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Client_Landroid)
2023.04.09 01:29:54.704 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Client_Landroid)
2023.04.09 02:28:56.740 2: maxFailedConnects (1) reached, no more reconnect attemtps
2023.04.09 03:27:57.398 2: maxFailedConnects (1) reached, no more reconnect attemtps
2023.04.09 04:26:58.294 2: maxFailedConnects (1) reached, no more reconnect attemtps
2023.04.09 05:25:58.917 2: maxFailedConnects (1) reached, no more reconnect attemtps
2023.04.09 06:25:01.522 2: maxFailedConnects (1) reached, no more reconnect attemtps
2023.04.09 07:24:02.182 2: maxFailedConnects (1) reached, no more reconnect attemtps

Seitdem stand das MQTT2_Client-Device auf disconnected.  Weder ein defmod noch ein shutdown restart haben dazu geführt, dass ein erfolgreicher Connect zustandekommt.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 09 April 2023, 08:39:53
Soweit ich weiss, sollte ein Neustart und ein "set ... connect" identisch sein, beide entfernen nrFailedConnects, genauso wie ein erfolgreiches connect.
modify (DEF oeffnen und speichern) tut das nicht.

Dass statt JSON mit auth-Daten ein HTML Dokument zurueckgeliefert wird, habe ich auch gesehen, ich habe es aber auf die Server-Probleme geschoben.
Wenn das "normal" ist, muessten wir rauskriegen, was in diesem Fall zu tun ist.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 09 April 2023, 10:31:03
Ich bin heute Nacht auch rausgeflogen,
letzter Log (verbose1, hab's nun auf 3):
2023.04.09 00:11:04 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
modify (DEF oeffnen und speichern)
Das ist doch das Gleiche wie eine Neu-/Redefinition, oder?
Zumindest hatte es bei meinen Tests funktioniert. Hmm, evtl. habe ich das folgende disconnet auch fehl interpretiert.

Nach einem Neustart bin ich wieder online. Es gab aber einen leichten Verzug, evtl. ist der Server immer noch 'belastet'.

Brauchen 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.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 09 April 2023, 10:57:11
2023.04.09 10:52:25.894 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Client_Landroid)
2023.04.09 10:52:25.966 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Client_Landroid)
2023.04.09 10:52:25.967 2: maxFailedConnects (1) reached, no more reconnect attemtps

Ich komme aktuell nicht rein. Über ioBroker oder die Worx-App geht's.

Wenn ich übrigens das Attribut maxFailedConnects auf einen Wert wie bspw. 3 setze, wird es magischerweise wieder auf 1 gesetzt, nachdem ich einen erfolglosen set ... connect durchgeführt habe.

Mit Verbose 5 habe ich eine interessante Beobachtung gemacht:

2023.04.09 11:14:22.500 5: {"token_type":"Bearer","expires_in":3600,"access_token":"...","refresh_token":"..."}
2023.04.09 11:14:22.501 4: MQTT2_Client_Landroid: Got auth info, request: refresh_token
2023.04.09 11:14:22.696 5: {"id":...,"user_type":"customer","push_notifications":true,"location":null,"mqtt_endpoint":"a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com","actions_on_google_pin_code":null,"created_at":"2019-09-15 05:58:08","updated_at":"2021-04-20 11:48:33"}
2023.04.09 11:14:22.696 4: MQTT2_Client_Landroid: Got userId: ...
2023.04.09 11:14:22.908 5: [...,"mqtt_endpoint":"iot.eu-west-1.worxlandroid.com",...]
2023.04.09 11:14:22.913 4: MQTT2_Client_Landroid: Got device info
2023.04.09 11:14:22.913 5: MQTT2_Client_Landroid: discarding DISCONNECT (224)(0)
2023.04.09 11:14:22.923 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.04.09 11:14:22.937 4: IP: iot.eu-west-1.worxlandroid.com -> 34.254.133.107
2023.04.09 11:14:23.055 5: MQTT2_Client_Landroid: sending CONNECT ...
2023.04.09 11:14:23.056 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Client_Landroid)
2023.04.09 11:14:23.123 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Client_Landroid)
2023.04.09 11:14:23.125 2: maxFailedConnects (1) reached, no more reconnect attemtps

Nach erfolgreichem User-Login und dem Empfang von Token werden in den Abfragen/Rückmeldungen aber zwei unterschiedliche MQTT-Endpunkte zurückgemeldet!

So wie das aussieht, können alle Daten aus dem Nutzerkonto einschl. der Meta-Daten des Mähers ausgelesen werden, jedoch nicht die eigentlichen Live-Daten des Mähers.

@Rudi: wenn du magst, kann ich dir gerne auch meine Login-Daten für's Prüfen zur Verfügung stellen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 09 April 2023, 18:58:48
@Ralli, hast du es noch einmal probiert?

Seit dem Neustart heute Morgen bin ich ohne Probleme online.

Die 2 Endpoint, sind die die Rudi erwähnt hat. User-Data und Mower-Data.

Der MQTT-Server hatte gestern schon Verzögerungen. Evtl. ist es Glück, dass der Connect funktioniert.

Probieren aber nicht zu häufig, besser x Minuten Pause dazwischen.

maxFailedConnects ist in der LandroidUtils hard vercodet.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 09 April 2023, 19:19:09
Zitat von: frober am 09 April 2023, 18:58:48@Ralli, hast du es noch einmal probiert?

Ja. Ist nach wie vor offline.

ZitatDie 2 Endpoint, sind die die Rudi erwähnt hat. User-Data und Mower-Data.

Ok.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 09 April 2023, 19:32:14
Zitat von: Ralli am 09 April 2023, 19:19:09
Zitat von: frober am 09 April 2023, 18:58:48@Ralli, hast du es noch einmal probiert?

Ja. Ist nach wie vor offline.

24h-Sperre? Die hatten wir ja vor der Umstellung schon...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 09 April 2023, 19:34:07
Nein. Klappt ja mit App und mit ioBroker.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 09 April 2023, 20:25:34
Zitat von: Ralli am 09 April 2023, 19:34:07Nein. Klappt ja mit App und mit ioBroker.

Lösche mal das Reading wxid und probiere es noch einmal. Aber nur wenn kurz davor der Connect nicht funktioniert.
Mich würde interessieren, ob meine Theorie stimmt.

Das soll aber eine AUSNAHME sein!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 09 April 2023, 21:16:55
Das hatte ich tatsächlich selbst auch schon einmal probiert, wahrscheinlich aus der gleichen Annahme wie du sie hattest.

Aber leider auch erfolglos.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 09 April 2023, 21:20:51
Zitat von: Ralli am 09 April 2023, 21:16:55Das hatte ich tatsächlich selbst auch schon einmal probiert, wahrscheinlich aus der gleichen Annahme wie du sie hattest.

Aber leider auch erfolglos.
OK, danke.
Es muss aber einen Grund geben, warum DeskApp, ioBroker etc. weiter funktionieren.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 09 April 2023, 22:17:19
Moin,

vielen Dank für eure Arbeit! Ich lese hier schon ein paar Tage mit und nun scheint es ja zu funktionieren?!

Was muss ich denn genau tun?

Zitat von: rudolfkoenig am 07 April 2023, 22:28:24Ich habe jetzt eine Version von LandroidUtils.pm eingecheckt was ein MQTT connect ermoeglicht.

Usage (steht auch in LandroidUtils.pm drin):
define m2c MQTT2_CLIENT xx
attr m2c username a@bc.de
attr m2c connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
set m2c password mySecret
Danach ist entweder ein FHEM Neustart, oder "set m2c connect" notwendig.
Der letzte Parameter zu Landroid_connect erlaubt autocreate der MQTT2_DEVICE Instanzen, und setzt die Readings, die aus der HTTPS-Abfrage fuer "Mower-Info" kommen, und das bei jedem Token-Refresh.

Etwa einmal die Stunde wird ein reconnect stattfinden mit dem refresh_token.
Es gibt (noch?) kein automatisches reconnect, falls der Server streikt, dafuer muss man "set m2c connect" manuell ausfuehren.

TODO: jsonMap/setList/besseres readingsList/etc.
Das ueberlasse ich den Besitzern der Geraete.

Etwas Off-Topic: MQTT-Connect hat lange nicht geklappt, weil ich den mqtt_endpoint nicht aus dem Mower-Info geholt habe, sondern aus dem User-Info, beide Datensaetze stammen aus AWS-Abfragen.
Der Falsche heisst a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com, der Richtige iot.eu-west-1.worxlandroid.com.

Also ich habe zunächst mal ein FHEM Update durchgeführt, um die neueste LandroidUtils.pm zu haben.
Dann wie oben beschrieben das Device m2c angelegt.
Dabei "xx" mit iot.eu-west-1.worxlandroid.com ersetzt.
"a@bc.de" durch meine Email-Adresse und "mySecret" durch mein Passwort ersetzt.

Danach shutdown restart und connect. Geht nicht - springt gleich wieder auf disconnected.

App auf dem Handy funktioniert. Was mache ich falsch?

Danke euch!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 09 April 2023, 22:36:57
Du hast einen Worx Landroid?
XX kannst du auch lassen, spielt keine Rolle.

Wurde ein Device angelegt?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: andi11 am 10 April 2023, 08:22:44
Zitat von: efyzz am 09 April 2023, 22:17:19define m2c MQTT2_CLIENT xx
attr m2c username a@bc.de
attr m2c connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
set m2c password mySecret

nach update, obigen Code einfügen und Neustart habe ich einen erfolgreichen Connect. Vielen Dank für die Arbeit
Allerdings gibt es keine Readings für MowerStatus, Batterieladung, oder Startmöglichkeit

define m2c_Shaun MQTT2_DEVICE 201830190905002650EF
attr m2c_Shaun DbLogExclude .*
attr m2c_Shaun IODev m2c
attr m2c_Shaun readingList DB510/F0FE6BB19C2E/commandOut:.* {json2nameValue($EVENT)}
attr m2c_Shaun room Aussen
#   CFGFN     
#   CID        201830190905002650EF
#   DEF        201830190905002650EF
#   FUUID      64339986-f33f-ae17-9886-f1e654666c52070d
#   IODev      m2c
#   NAME       m2c_Shaun
#   NR         461
#   STATE      ???
#   TYPE       MQTT2_DEVICE
#   READINGS:
#     2023-04-10 07:07:18   IODev           m2c
#     2023-04-10 08:06:17   battery_charge_cycles 650
#     2023-04-10 08:06:17   blade_work_time 40946
#     2023-04-10 08:06:17   capabilities_1  lock
#     2023-04-10 08:06:17   capabilities_2  mqtt
#     2023-04-10 08:06:17   capabilities_3  multi_zone
#     2023-04-10 08:06:17   capabilities_4  multi_zone_percentage
#     2023-04-10 08:06:17   capabilities_5  pairing_smartlink
#     2023-04-10 08:06:17   capabilities_6  rain_delay
#     2023-04-10 08:06:17   capabilities_7  unrestricted_mowing_time
#     2023-04-10 08:06:17   city_country_id 276
#     2023-04-10 08:06:17   city_created_at 2018-02-15 22:09:24
#     2023-04-10 08:06:17   city_id         2837572
#     2023-04-10 08:06:17   city_latitude   49.55917
#     2023-04-10 08:06:17   city_longitude  11.34306
#     2023-04-10 08:06:17   city_name       Schnaittach
#     2023-04-10 08:06:17   city_updated_at 2018-02-15 22:09:24
#     2023-04-10 08:06:17   created_at      2018-07-09 09:34:57
#     2023-04-10 08:06:17   diagnostic      false
#     2023-04-10 08:06:17   distance_covered 745657
#     2023-04-10 08:06:17   features_chassis s_2017
#     2023-04-10 08:06:17   features_display_type led
#     2023-04-10 08:06:17   features_input_type keyboard_led
#     2023-04-10 08:06:17   features_lock   true
#     2023-04-10 08:06:17   features_mqtt   true
#     2023-04-10 08:06:17   features_multi_zone true
#     2023-04-10 08:06:17   features_multi_zone_percentage true
#     2023-04-10 08:06:17   features_multi_zone_zones 4
#     2023-04-10 08:06:17   features_rain_delay true
#     2023-04-10 08:06:17   features_unrestricted_mowing_time true
#     2023-04-10 08:06:17   features_wifi_pairing smartlink
#     2023-04-10 08:06:17   firmware_auto_upgrade false
#     2023-04-10 08:06:17   firmware_version 3.52
#     2023-04-10 08:06:17   id              250326
#     2023-04-10 08:06:17   improvement     false
#     2023-04-10 08:06:17   iot_registered  true
#     2023-04-10 08:06:17   lawn_size       100
#     2023-04-10 08:06:17   locked          false
#     2023-04-10 08:06:17   mac_address     F0FE6BB19C2E
#     2023-04-10 08:06:17   mower_work_time 43132
#     2023-04-10 08:06:17   mqtt_endpoint   iot.eu-west-1.worxlandroid.com
#     2023-04-10 08:06:17   mqtt_registered true
#     2023-04-10 08:06:17   mqtt_topics_command_in DB510/F0FE6BB19C2E/commandIn
#     2023-04-10 08:06:17   mqtt_topics_command_out DB510/F0FE6BB19C2E/commandOut
#     2023-04-10 08:06:17   name            Shaun
#     2023-04-10 08:06:17   online          true
#     2023-04-10 08:06:17   product_id      37
#     2023-04-10 08:06:17   protocol        0
#     2023-04-10 08:06:17   purchased_at    2018-10-11 00:00:00
#     2023-04-10 08:06:17   push_notifications true
#     2023-04-10 08:06:17   push_notifications_level warning
#     2023-04-10 08:06:17   registered_at   2018-10-19 00:00:00
#     2023-04-10 08:06:17   serial_number   201830190905002650EF
#     2023-04-10 08:06:17   setup_location_latitude 49.5548501
#     2023-04-10 08:06:17   setup_location_longitude 11.3448669
#     2023-04-10 08:06:17   test            false
#     2023-04-10 08:06:17   time_zone       Europe/Berlin
#     2023-04-10 08:06:17   updated_at      2022-08-11 16:00:42
#     2023-04-10 08:06:17   user_id         214879
#     2023-04-10 08:06:17   uuid            96c52da7-b236-4002-a64c-7a33124de3c0
#     2023-04-10 08:06:17   warranty_expires_at 2021-10-11 00:00:00
#     2023-04-10 08:06:17   warranty_registered true
#
setstate m2c_Shaun 2023-04-10 07:07:18 IODev m2c
setstate m2c_Shaun 2023-04-10 08:06:17 battery_charge_cycles 650
setstate m2c_Shaun 2023-04-10 08:06:17 blade_work_time 40946
setstate m2c_Shaun 2023-04-10 08:06:17 capabilities_1 lock
setstate m2c_Shaun 2023-04-10 08:06:17 capabilities_2 mqtt
setstate m2c_Shaun 2023-04-10 08:06:17 capabilities_3 multi_zone
setstate m2c_Shaun 2023-04-10 08:06:17 capabilities_4 multi_zone_percentage
setstate m2c_Shaun 2023-04-10 08:06:17 capabilities_5 pairing_smartlink
setstate m2c_Shaun 2023-04-10 08:06:17 capabilities_6 rain_delay
setstate m2c_Shaun 2023-04-10 08:06:17 capabilities_7 unrestricted_mowing_time
setstate m2c_Shaun 2023-04-10 08:06:17 city_country_id 276
setstate m2c_Shaun 2023-04-10 08:06:17 city_created_at 2018-02-15 22:09:24
setstate m2c_Shaun 2023-04-10 08:06:17 city_id 2837572
setstate m2c_Shaun 2023-04-10 08:06:17 city_latitude 49.55917
setstate m2c_Shaun 2023-04-10 08:06:17 city_longitude 11.34306
setstate m2c_Shaun 2023-04-10 08:06:17 city_name Schnaittach
setstate m2c_Shaun 2023-04-10 08:06:17 city_updated_at 2018-02-15 22:09:24
setstate m2c_Shaun 2023-04-10 08:06:17 created_at 2018-07-09 09:34:57
setstate m2c_Shaun 2023-04-10 08:06:17 diagnostic false
setstate m2c_Shaun 2023-04-10 08:06:17 distance_covered 745657
setstate m2c_Shaun 2023-04-10 08:06:17 features_chassis s_2017
setstate m2c_Shaun 2023-04-10 08:06:17 features_display_type led
setstate m2c_Shaun 2023-04-10 08:06:17 features_input_type keyboard_led
setstate m2c_Shaun 2023-04-10 08:06:17 features_lock true
setstate m2c_Shaun 2023-04-10 08:06:17 features_mqtt true
setstate m2c_Shaun 2023-04-10 08:06:17 features_multi_zone true
setstate m2c_Shaun 2023-04-10 08:06:17 features_multi_zone_percentage true
setstate m2c_Shaun 2023-04-10 08:06:17 features_multi_zone_zones 4
setstate m2c_Shaun 2023-04-10 08:06:17 features_rain_delay true
setstate m2c_Shaun 2023-04-10 08:06:17 features_unrestricted_mowing_time true
setstate m2c_Shaun 2023-04-10 08:06:17 features_wifi_pairing smartlink
setstate m2c_Shaun 2023-04-10 08:06:17 firmware_auto_upgrade false
setstate m2c_Shaun 2023-04-10 08:06:17 firmware_version 3.52
setstate m2c_Shaun 2023-04-10 08:06:17 id 250326
setstate m2c_Shaun 2023-04-10 08:06:17 improvement false
setstate m2c_Shaun 2023-04-10 08:06:17 iot_registered true
setstate m2c_Shaun 2023-04-10 08:06:17 lawn_size 100
setstate m2c_Shaun 2023-04-10 08:06:17 locked false
setstate m2c_Shaun 2023-04-10 08:06:17 mac_address F0FE6BB19C2E
setstate m2c_Shaun 2023-04-10 08:06:17 mower_work_time 43132
setstate m2c_Shaun 2023-04-10 08:06:17 mqtt_endpoint iot.eu-west-1.worxlandroid.com
setstate m2c_Shaun 2023-04-10 08:06:17 mqtt_registered true
setstate m2c_Shaun 2023-04-10 08:06:17 mqtt_topics_command_in DB510/F0FE6BB19C2E/commandIn
setstate m2c_Shaun 2023-04-10 08:06:17 mqtt_topics_command_out DB510/F0FE6BB19C2E/commandOut
setstate m2c_Shaun 2023-04-10 08:06:17 name Shaun
setstate m2c_Shaun 2023-04-10 08:06:17 online true
setstate m2c_Shaun 2023-04-10 08:06:17 product_id 37
setstate m2c_Shaun 2023-04-10 08:06:17 protocol 0
setstate m2c_Shaun 2023-04-10 08:06:17 purchased_at 2018-10-11 00:00:00
setstate m2c_Shaun 2023-04-10 08:06:17 push_notifications true
setstate m2c_Shaun 2023-04-10 08:06:17 push_notifications_level warning
setstate m2c_Shaun 2023-04-10 08:06:17 registered_at 2018-10-19 00:00:00
setstate m2c_Shaun 2023-04-10 08:06:17 serial_number 201830190905002650EF
setstate m2c_Shaun 2023-04-10 08:06:17 setup_location_latitude 49.5548501
setstate m2c_Shaun 2023-04-10 08:06:17 setup_location_longitude 11.3448669
setstate m2c_Shaun 2023-04-10 08:06:17 test false
setstate m2c_Shaun 2023-04-10 08:06:17 time_zone Europe/Berlin
setstate m2c_Shaun 2023-04-10 08:06:17 updated_at 2022-08-11 16:00:42
setstate m2c_Shaun 2023-04-10 08:06:17 user_id 214879
setstate m2c_Shaun 2023-04-10 08:06:17 uuid 96c52da7-b236-4002-a64c-7a33124de3c0
setstate m2c_Shaun 2023-04-10 08:06:17 warranty_expires_at 2021-10-11 00:00:00
setstate m2c_Shaun 2023-04-10 08:06:17 warranty_registered true

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 10 April 2023, 08:38:57
Zitat von: andi11 am 10 April 2023, 08:22:44
Zitat von: efyzz am 09 April 2023, 22:17:19define m2c MQTT2_CLIENT xx
attr m2c username a@bc.de
attr m2c connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
set m2c password mySecret

nach update, obigen Code einfügen und Neustart habe ich einen erfolgreichen Connect. Vielen Dank für die Arbeit
Allerdings gibt es keine Readings für MowerStatus, Batterieladung, oder Startmöglichkeit

define m2c_Shaun MQTT2_DEVICE 201830190905002650EF
attr m2c_Shaun DbLogExclude .*
attr m2c_Shaun IODev m2c
attr m2c_Shaun readingList DB510/F0FE6BB19C2E/commandOut:.* {json2nameValue($EVENT)}
attr m2c_Shaun room Aussen
#   CFGFN     
#   CID        201830190905002650EF
#   DEF        201830190905002650EF
#   FUUID      64339986-f33f-ae17-9886-f1e654666c52070d
#   IODev      m2c
#   NAME       m2c_Shaun
#   NR         461
#   STATE      ???
#   TYPE       MQTT2_DEVICE
#   READINGS:
#     2023-04-10 07:07:18   IODev           m2c
#     2023-04-10 08:06:17   battery_charge_cycles 650
#     2023-04-10 08:06:17   blade_work_time 40946
#     2023-04-10 08:06:17   capabilities_1  lock
#     2023-04-10 08:06:17   capabilities_2  mqtt
#     2023-04-10 08:06:17   capabilities_3  multi_zone
#     2023-04-10 08:06:17   capabilities_4  multi_zone_percentage
#     2023-04-10 08:06:17   capabilities_5  pairing_smartlink
#     2023-04-10 08:06:17   capabilities_6  rain_delay
#     2023-04-10 08:06:17   capabilities_7  unrestricted_mowing_time
#     2023-04-10 08:06:17   city_country_id 276
#     2023-04-10 08:06:17   city_created_at 2018-02-15 22:09:24
#     2023-04-10 08:06:17   city_id         2837572
#     2023-04-10 08:06:17   city_latitude   49.55917
#     2023-04-10 08:06:17   city_longitude  11.34306
#     2023-04-10 08:06:17   city_name       Schnaittach
#     2023-04-10 08:06:17   city_updated_at 2018-02-15 22:09:24
#     2023-04-10 08:06:17   created_at      2018-07-09 09:34:57
#     2023-04-10 08:06:17   diagnostic      false
#     2023-04-10 08:06:17   distance_covered 745657
#     2023-04-10 08:06:17   features_chassis s_2017
#     2023-04-10 08:06:17   features_display_type led
#     2023-04-10 08:06:17   features_input_type keyboard_led
#     2023-04-10 08:06:17   features_lock   true
#     2023-04-10 08:06:17   features_mqtt   true
#     2023-04-10 08:06:17   features_multi_zone true
#     2023-04-10 08:06:17   features_multi_zone_percentage true
#     2023-04-10 08:06:17   features_multi_zone_zones 4
#     2023-04-10 08:06:17   features_rain_delay true
#     2023-04-10 08:06:17   features_unrestricted_mowing_time true
#     2023-04-10 08:06:17   features_wifi_pairing smartlink
#     2023-04-10 08:06:17   firmware_auto_upgrade false
#     2023-04-10 08:06:17   firmware_version 3.52
#     2023-04-10 08:06:17   id              250326
#     2023-04-10 08:06:17   improvement     false
#     2023-04-10 08:06:17   iot_registered  true
#     2023-04-10 08:06:17   lawn_size       100
#     2023-04-10 08:06:17   locked          false
#     2023-04-10 08:06:17   mac_address     F0FE6BB19C2E
#     2023-04-10 08:06:17   mower_work_time 43132
#     2023-04-10 08:06:17   mqtt_endpoint   iot.eu-west-1.worxlandroid.com
#     2023-04-10 08:06:17   mqtt_registered true
#     2023-04-10 08:06:17   mqtt_topics_command_in DB510/F0FE6BB19C2E/commandIn
#     2023-04-10 08:06:17   mqtt_topics_command_out DB510/F0FE6BB19C2E/commandOut
#     2023-04-10 08:06:17   name            Shaun
#     2023-04-10 08:06:17   online          true
#     2023-04-10 08:06:17   product_id      37
#     2023-04-10 08:06:17   protocol        0
#     2023-04-10 08:06:17   purchased_at    2018-10-11 00:00:00
#     2023-04-10 08:06:17   push_notifications true
#     2023-04-10 08:06:17   push_notifications_level warning
#     2023-04-10 08:06:17   registered_at   2018-10-19 00:00:00
#     2023-04-10 08:06:17   serial_number   201830190905002650EF
#     2023-04-10 08:06:17   setup_location_latitude 49.5548501
#     2023-04-10 08:06:17   setup_location_longitude 11.3448669
#     2023-04-10 08:06:17   test            false
#     2023-04-10 08:06:17   time_zone       Europe/Berlin
#     2023-04-10 08:06:17   updated_at      2022-08-11 16:00:42
#     2023-04-10 08:06:17   user_id         214879
#     2023-04-10 08:06:17   uuid            96c52da7-b236-4002-a64c-7a33124de3c0
#     2023-04-10 08:06:17   warranty_expires_at 2021-10-11 00:00:00
#     2023-04-10 08:06:17   warranty_registered true
#
setstate m2c_Shaun 2023-04-10 07:07:18 IODev m2c
setstate m2c_Shaun 2023-04-10 08:06:17 battery_charge_cycles 650
setstate m2c_Shaun 2023-04-10 08:06:17 blade_work_time 40946
setstate m2c_Shaun 2023-04-10 08:06:17 capabilities_1 lock
setstate m2c_Shaun 2023-04-10 08:06:17 capabilities_2 mqtt
setstate m2c_Shaun 2023-04-10 08:06:17 capabilities_3 multi_zone
setstate m2c_Shaun 2023-04-10 08:06:17 capabilities_4 multi_zone_percentage
setstate m2c_Shaun 2023-04-10 08:06:17 capabilities_5 pairing_smartlink
setstate m2c_Shaun 2023-04-10 08:06:17 capabilities_6 rain_delay
setstate m2c_Shaun 2023-04-10 08:06:17 capabilities_7 unrestricted_mowing_time
setstate m2c_Shaun 2023-04-10 08:06:17 city_country_id 276
setstate m2c_Shaun 2023-04-10 08:06:17 city_created_at 2018-02-15 22:09:24
setstate m2c_Shaun 2023-04-10 08:06:17 city_id 2837572
setstate m2c_Shaun 2023-04-10 08:06:17 city_latitude 49.55917
setstate m2c_Shaun 2023-04-10 08:06:17 city_longitude 11.34306
setstate m2c_Shaun 2023-04-10 08:06:17 city_name Schnaittach
setstate m2c_Shaun 2023-04-10 08:06:17 city_updated_at 2018-02-15 22:09:24
setstate m2c_Shaun 2023-04-10 08:06:17 created_at 2018-07-09 09:34:57
setstate m2c_Shaun 2023-04-10 08:06:17 diagnostic false
setstate m2c_Shaun 2023-04-10 08:06:17 distance_covered 745657
setstate m2c_Shaun 2023-04-10 08:06:17 features_chassis s_2017
setstate m2c_Shaun 2023-04-10 08:06:17 features_display_type led
setstate m2c_Shaun 2023-04-10 08:06:17 features_input_type keyboard_led
setstate m2c_Shaun 2023-04-10 08:06:17 features_lock true
setstate m2c_Shaun 2023-04-10 08:06:17 features_mqtt true
setstate m2c_Shaun 2023-04-10 08:06:17 features_multi_zone true
setstate m2c_Shaun 2023-04-10 08:06:17 features_multi_zone_percentage true
setstate m2c_Shaun 2023-04-10 08:06:17 features_multi_zone_zones 4
setstate m2c_Shaun 2023-04-10 08:06:17 features_rain_delay true
setstate m2c_Shaun 2023-04-10 08:06:17 features_unrestricted_mowing_time true
setstate m2c_Shaun 2023-04-10 08:06:17 features_wifi_pairing smartlink
setstate m2c_Shaun 2023-04-10 08:06:17 firmware_auto_upgrade false
setstate m2c_Shaun 2023-04-10 08:06:17 firmware_version 3.52
setstate m2c_Shaun 2023-04-10 08:06:17 id 250326
setstate m2c_Shaun 2023-04-10 08:06:17 improvement false
setstate m2c_Shaun 2023-04-10 08:06:17 iot_registered true
setstate m2c_Shaun 2023-04-10 08:06:17 lawn_size 100
setstate m2c_Shaun 2023-04-10 08:06:17 locked false
setstate m2c_Shaun 2023-04-10 08:06:17 mac_address F0FE6BB19C2E
setstate m2c_Shaun 2023-04-10 08:06:17 mower_work_time 43132
setstate m2c_Shaun 2023-04-10 08:06:17 mqtt_endpoint iot.eu-west-1.worxlandroid.com
setstate m2c_Shaun 2023-04-10 08:06:17 mqtt_registered true
setstate m2c_Shaun 2023-04-10 08:06:17 mqtt_topics_command_in DB510/F0FE6BB19C2E/commandIn
setstate m2c_Shaun 2023-04-10 08:06:17 mqtt_topics_command_out DB510/F0FE6BB19C2E/commandOut
setstate m2c_Shaun 2023-04-10 08:06:17 name Shaun
setstate m2c_Shaun 2023-04-10 08:06:17 online true
setstate m2c_Shaun 2023-04-10 08:06:17 product_id 37
setstate m2c_Shaun 2023-04-10 08:06:17 protocol 0
setstate m2c_Shaun 2023-04-10 08:06:17 purchased_at 2018-10-11 00:00:00
setstate m2c_Shaun 2023-04-10 08:06:17 push_notifications true
setstate m2c_Shaun 2023-04-10 08:06:17 push_notifications_level warning
setstate m2c_Shaun 2023-04-10 08:06:17 registered_at 2018-10-19 00:00:00
setstate m2c_Shaun 2023-04-10 08:06:17 serial_number 201830190905002650EF
setstate m2c_Shaun 2023-04-10 08:06:17 setup_location_latitude 49.5548501
setstate m2c_Shaun 2023-04-10 08:06:17 setup_location_longitude 11.3448669
setstate m2c_Shaun 2023-04-10 08:06:17 test false
setstate m2c_Shaun 2023-04-10 08:06:17 time_zone Europe/Berlin
setstate m2c_Shaun 2023-04-10 08:06:17 updated_at 2022-08-11 16:00:42
setstate m2c_Shaun 2023-04-10 08:06:17 user_id 214879
setstate m2c_Shaun 2023-04-10 08:06:17 uuid 96c52da7-b236-4002-a64c-7a33124de3c0
setstate m2c_Shaun 2023-04-10 08:06:17 warranty_expires_at 2021-10-11 00:00:00
setstate m2c_Shaun 2023-04-10 08:06:17 warranty_registered true


Ist dein Mäher eingeschaltet?
Wenn er noch schläft, gibt er auch keine Antwort.
Und der Client steht auf Open, wenn der Connect funktioniert.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 10 April 2023, 08:47:17
Bei mir war er wieder kurz nach Mitternacht offline.
Ein set ... connect hat geholfen.

Vermutlich die Zwangstrennung vom DSL-Provider.
Aktuell habe ich einen Watchdog definiert, mal sehen ob es Morgen damit funktioniert.

@Rudi, ich denke das ist ein Problem mit den nicht mehr verwendetet noch gültigen Token.
Dadurch wird bei Abbruch die vorhandene Verbindung nicht sauber geschlossen. Mit dem alten Token würde diese wieder hergestellt werden.
Zumindest habe ich das aus PositecBeta so verstanden.
Ich probiere mal, ob ich den Code entsprechend anpassen kann...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 10 April 2023, 09:05:31
Von Geisterhand hat sich meine Verbindung heute morgen geheilt und ich habe das erste mal nun auch die Daten vom Mäher bekommen.

Zitat2023.04.10 06:07:15.739 2: maxFailedConnects (1) reached, no more reconnect attemtps
2023.04.10 07:06:16.332 2: maxFailedConnects (1) reached, no more reconnect attemtps
2023.04.10 07:52:36.596 1: Downloading https://fhem.de/fhemupdate/controls_fhem.txt
2023.04.10 07:52:36.703 1: RMDIR: ./restoreDir/update/2023-04-07
2023.04.10 07:52:36.817 1: UPD FHEM/98_DOIF.pm
2023.04.10 07:52:36.937 1: saving fhem.cfg
2023.04.10 07:52:36.938 1: saving ./log/fhem.save
2023.04.10 07:52:36.940 1: Calling /usr/bin/perl ./contrib/commandref_modular.pl, this may take a while
2023.04.10 07:52:36.983 1: update finished, "shutdown restart" is needed to activate the changes.
2023.04.10 07:53:34.111 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Client_Landroid)
2023.04.10 08:52:35.439 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Client_Landroid)
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: andi11 am 10 April 2023, 09:16:40
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.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 10 April 2023, 09:36:41
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)?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: andi11 am 10 April 2023, 09:39:53
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
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 10 April 2023, 11:05:46
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.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 10 April 2023, 11:08:10
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.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 10 April 2023, 11:25:59
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
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag 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.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 10 April 2023, 11:42:49
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
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 10 April 2023, 11:56:12
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.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Allgaeuer am 10 April 2023, 19:37:49
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
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 10 April 2023, 19:44:39
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?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 10 April 2023, 20:28:17
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.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 10 April 2023, 20:35:18
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...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 10 April 2023, 20:56:41
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

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 10 April 2023, 21:39:26
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.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 10 April 2023, 22:00:16
Mir fällt gerade auf, ich habe noch
attr m2c mqttVersion 3.1.1
gesetzt. Da ich den alten Client weiter verwende.

Möglich dass das nicht setzen Probleme verursacht. AWS fordert  min. 3.1.1
Fhem Standard ist 3.1
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 10 April 2023, 22:06:26
Das ist bei mir auch gesetzt, daran liegt es nicht.

Neustart nützt auch nichts.  :'(

Set connect bringt einen neuen Datensatz und dann ist es wieder disconnected.

Finde es aber interessant, dass du noch "m2c" verwendest. Das Template verlangt scheinbar, dass das Device "MQTT_Worx" heißen muss. Jedenfalls wird dies als IODev gesetzt, wenn man das Template anwendet.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 10 April 2023, 22:23:25
In der DEF die du gepostet hast ist es nicht gesetzt.

m2c habe ich nur für hier, da Rudi damit "angefangen" hat ;D

Das Template setzt du im Device und es zieht den Namen von IODev (Client)
Ich verwende auch noch "MQTT_Worx".
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 11 April 2023, 09:15:51
ZitatWie aktualisierst du die Änderung, jedesmal durch Neustart?
Ich entwickele mit 3 Terminal Fenster: Editor, FHEM mit einer minimalen fhem.cfg und Ausgabe im Terminal, und ein "telnet" Fenster, wo ich FHEM Befehle eingebe. Mit "telnet" meine ich ein alias zu "socat TCP:!:1\:!:2 READLINE,history=~/.telnet_history", damit ich die Befehle nicht immer  neu eintippen muss. Nach Aenderung des Programmes starte ich FHEM meist neu.
Will aber nicht behaupten, dass dieses Setup fuer alle perfekt ist.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 11 April 2023, 09:41:43
Zitat von: frober am 10 April 2023, 22:23:25In der DEF die du gepostet hast ist es nicht gesetzt.

Das ist spannend. Scheinbar ist es erst nach dem Neustart aufgetaucht?! Ich habe es jedenfalls nicht nachträglich gesetzt.  :o
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 11 April 2023, 14:12:48
Zitat von: efyzz am 11 April 2023, 09:41:43
Zitat von: frober am 10 April 2023, 22:23:25In der DEF die du gepostet hast ist es nicht gesetzt.

Das ist spannend. Scheinbar ist es erst nach dem Neustart aufgetaucht?! Ich habe es jedenfalls nicht nachträglich gesetzt.  :o

mqttVersion 3.1.1 wird über die LandroidUtils gesetzt

Ich schreibe meist am Handy und kann deshalb nicht immer nachschauen...
Mir ist es nur in deinem Post aufgefallen, dass es gefehlt hat.

Funktioniert es mittlerweile?

Bei mir hat heute Nacht der Watchdog zugeschlagen und eine Reconnect ausgelöst.
Bis auf die Zwangstrennung läuft es stabil bei mir.

Mit maxFailedConnects und nextOpenDelay muss ich noch weiter testen.




Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 11 April 2023, 22:19:09
Zitat von: frober am 10 April 2023, 22:23:25Funktioniert es mittlerweile?

Leider unverändert. Interessanterweise hatten die Readings alle einen nur 10min alten Zeitstempel, als ich eben nachgeschaut habe. Also als wäre gerade aktualisiert worden. Und das, obwohl der MQTT Client die ganze Zeit disconnected war.

Also habe ich ins Logfile geschaut, da steht aber nichts drin außer
2023-04-11_21:50:27 MQTT_Worx_M attrTemplateVersion: 20221101
Warum landen denn keine Readings im Log? Das Attribut event-on-change-reading habe ich schon gelöscht, hat nichts genützt.

Irgendwie ist da total der Wurm drin.  :-\

Hier noch die Def des Logfiles
define FileLog_MQTT_Worx_M FileLog /media/usb/fhem_log/MQTT_Worx_M-%Y.log MQTT_Worx_M|MQTT_Worx_M:.*
attr FileLog_MQTT_Worx_M logtype text
attr FileLog_MQTT_Worx_M room MQTT2_DEVICE
#   CFGFN     
#   DEF        /media/usb/fhem_log/MQTT_Worx_M-%Y.log MQTT_Worx_M|MQTT_Worx_M:.*
#   FD         91
#   FUUID      6435ba18-f33f-6f7b-d5c8-d13260534316647f
#   NAME       FileLog_MQTT_Worx_M
#   NOTIFYDEV  MQTT_Worx_M
#   NR         26404
#   NTFY_ORDER 50-FileLog_MQTT_Worx_M
#   REGEXP     MQTT_Worx_M|MQTT_Worx_M:.*
#   STATE      active
#   TYPE       FileLog
#   currentlogfile /media/usb/fhem_log/MQTT_Worx_M-2023.log
#   eventCount 1
#   logfile    /media/usb/fhem_log/MQTT_Worx_M-%Y.log
#
setstate FileLog_MQTT_Worx_M active

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 12 April 2023, 08:22:26
Zitat von: efyzz am 11 April 2023, 22:19:09
Zitat von: frober am 10 April 2023, 22:23:25Funktioniert es mittlerweile?

Leider unverändert. Interessanterweise hatten die Readings alle einen nur 10min alten Zeitstempel, als ich eben nachgeschaut habe. Also als wäre gerade aktualisiert worden. Und das, obwohl der MQTT Client die ganze Zeit disconnected war.

Wenn der Client disconnect ist, kann nichts passieren. Was steht im Fhem log?

Bzw. setze im Client verbose auf 5 und starte neu (speichern nicht vergessen), wenn der Client auf disconnect bleibt, noch ein manuelles set ... connect.
Dann den entsprechenden Auszug aus dem log posten.
Bitte user/passwort/userID/access_token/refresh_token/clientID durch x ersetzen.

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 12 April 2023, 09:34:55
Also bei mir ist seit vorgestern auch wieder "dunkel" und ich habe den Client auch nicht wieder zum Connect bewegen können. Die Stammdaten des Mähers bekomme ich aktualisiert, der eigentliche Connect findet nicht (mehr) statt und die eigentlichen Mäher-Daten werden dementsprechend auch nicht aktualisiert - der Mäher war gestern den ganzen Tag online und aktiv.

Edit:
Kaum geschrieben und nochmal ein shutdown restart gemacht und schon ist der Client wieder online. Es ist verhext.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 12 April 2023, 10:35:48
ZitatInteressanterweise hatten die Readings alle einen nur 10min alten Zeitstempel, als ich eben nachgeschaut habe. Also als wäre gerade aktualisiert worden. Und das, obwohl der MQTT Client die ganze Zeit disconnected war.
Einmal die Stunde wird Landroid_connect ausgefuehrt, und nach aktualisieren des access_tokens wird User- und Device-Info geholt, bevor ein MQTT-Connect durchgefuehrt wird. Falls man im Aufruf des Landroid_connects als letztes Parameter 1 geschrieben hat, dann werden die bei Device-Info geholten Daten auch als Reading eingetragen bzw. aktualisiert.

Vmtl. geht in dem geschilderten Fall Device-Info gut, aber MQTT-Connect geht schief.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 12 April 2023, 10:50:19
Vor kurzen hatte ich aus einer anderen Quelle die Info, dass es zur Zeit sehr viele unauthorisierte Zugriffe auf die Server gibt, was diese belastet. Möglich das das Probleme bereitet. Keine Ahnung ob das immer noch zutrifft.

Bei mir gibt es weiterhin keine Probleme.
Nach einem Setzen von nextOpenDelay auf 180 hat auch der auto. reconnect nach der Zwangstrennung funktioniert.

@Rudi wäre es möglich, nextOpenDelay als attr zu implementieren? 180 sec ist evtl. nicht für alle Anwendungen sinnvoll.

Bei maxFailedConnects bin ich mir nicht sicher, was angemessen ist.
Zu viel müllt bei einem längeren Serverausfall das Log zu, zu wenig erfordert das manuelle Eingreifen.

Bsp.
nextOpenDelay 180
maxFailedConnects 20
Damit wäre ein Ausfall von einer Std überbrückt...
Bzg. Sperre, diese sollte bei einem Serverausfall nicht zum tragen kommen.

oder ein
maxFailedConnects 100 für 5 Std?

Was mir aber seltsam vorkommt, mit
nextOpenDelay 60
maxFailedConnects 3
hätte es doch mit der Zwangstrennung auch funktionieren müssen (3 x 60 = 180).
Erfolgt bei gesetztem maxFailedConnects überhaupt ein auto. reconnect?
Im Log war davon nichts zu sehen.


Lange vor der Umstellung hatte ich die Bestätigung von Positect, dass bei mehr als 150 Anfragen pro Tag für 24h gesperrt wird. vermutlich ist das immer noch so.
Bei dem gesetzten und empfohlenen "keepaliveTimeout 600" sind das 144! 
D.h. wenn durch dein Doif, watchdog etc. zu häufig versucht wird ein connect herzustellen, könnte das zum Tragen kommen. Da hilft dann nur ein disable vom Client für 24h.

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 12 April 2023, 11:32:54
Zitat von: frober am 12 April 2023, 08:22:26Was steht im Fhem log?

Bzw. setze im Client verbose auf 5 und starte neu (speichern nicht vergessen), wenn der Client auf disconnect bleibt, noch ein manuelles set ... connect.
Dann den entsprechenden Auszug aus dem log posten.
2023.04.12 11:09:29 5: {"token_type":"Bearer","expires_in":3600,"access_token":"xxx"}
2023.04.12 11:09:29 4: MQTT_Worx: Got auth info, request: refresh_token
2023.04.12 11:09:29 5: {"id":225193,"user_type":"customer","push_notifications":true,"location":null,"mqtt_endpoint":"a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com","actions_on_google_pin_code":null,"created_at":"2019-07-07 17:31:23","updated_at":"2020-05-17 17:15:44"}
2023.04.12 11:09:29 4: MQTT_Worx: Got userId: 225193
2023.04.12 11:09:29 5: [{"id":379013,"uuid":"96c52e42-951a-4002-9814-2224832xxxxx","product_id":49,"user_id":225xxx,"serial_number":"201930198403010xxxxx","mac_address":"98D86346xxxx","name":"M","locked":true,"firmware_version":3.2800000000000002,"firmware_auto_upgrade":false,"push_notifications":true,"sim":null,"push_notifications_level":"warning","test":false,"iot_registered":true,"mqtt_registered":true,"pin_code":null,"registered_at":"2019-07-07 00:00:00","online":true,"app_settings":null,"protocol":0,"pending_radio_link_validation":null,"capabilities":["auto_lock","digital_fence_settings","lock","mqtt","multi_zone","multi_zone_percentage","one_time_scheduler","pairing_smartlink","pause_over_wire","rain_delay","rain_delay_start","safe_go_home","scheduler_two_slots","unrestricted_mowing_time"],"capabilities_available":[],"features":{"auto_lock":3.25,"chassis":"m_2019","digital_fence_settings":3.25,"display_type":"tube","input_type":"keyboard_tube","lock":true,"mqtt":true,"multi_zone":true,"multi_zone_percentage":true,"multi_zone_zones":4,"one_time_scheduler":3.15,"pause_over_wire":3.26,"rain_delay":true,"rain_delay_start":3.08,"safe_go_home":3.25,"scheduler_two_slots":3.15,"unrestricted_mowing_time":true,"wifi_pairing":"smartlink"},"accessories":{"ultrasonic":true},"mqtt_endpoint":"iot.eu-west-1.worxlandroid.com","mqtt_topics":{"command_in":"PRM100\/98D863460BFC\/commandIn","command_out":"PRM100\/98D863460BFC\/commandOut"},"warranty_registered":true,"purchased_at":"2019-07-06 00:00:00","warranty_expires_at":"2022-07-06 00:00:00","setup_location":{"latitude":52.xxx,"longitude":10.xxx},"city":{"id":6552xxx,"country_id":276,"name":"xxx","latitude":52.xxx,"longitude":10.xxx,"created_at":"2018-02-15 22:22:41","updated_at":"2018-02-15 22:22:41"},"time_zone":"Europe\/Berlin","lawn_size":800,"lawn_perimeter":151,"auto_schedule_settings":{"boost":0,"exclusion_scheduler":{"days":[{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false}],"exclude_nights":true},"grass_type":null,"irrigation":null,"nutrition":null,"soil_type":null},"auto_schedule":false,"improvement":false,"diagnostic":false,"distance_covered":1285292,"mower_work_time":83903,"blade_work_time":78382,"blade_work_time_reset":78314,"blade_work_time_reset_at":"2023-04-10 17:45:33","battery_charge_cycles":651,"battery_charge_cycles_reset":null,"battery_charge_cycles_reset_at":null,"created_at":"2019-04-02 07:20:05","updated_at":"2023-04-11 01:16:13","last_status":{"timestamp":"2023-04-12 09:08:12","payload":{"cfg":{"id":2,"sn":"201930198403010xxxxx","dt":"12\/04\/2023","tm":"11:08:10","lg":"en","cmd":0,"sc":{"m":1,"d":[["00:00",0,0],["13:00",195,1],["13:00",195,0],["13:00",195,0],["13:00",195,0],["13:00",195,1],["00:00",0,0]],"dd":[["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0]],"distm":0,"p":0,"ots":{"wtm":0,"bc":0}},"mz":[6,7,8,9],"mzv":[0,1,2,3,0,1,2,3,0,1],"rd":60,"al":{"lvl":0,"t":60},"tq":0,"modules":{"US":{"enabled":1}}},"dat":{"mac":"98D863460BFC","fw":3.2800000000000002,"fwb":1,"ls":1,"le":0,"conn":"wifi","bt":{"t":8.4,"v":19.86,"p":97,"nr":651,"c":1,"m":1},"dmp":[2.5,-0.2,225.9],"st":{"b":78382,"d":1285292,"wt":83903,"bl":151},"act":1,"rsi":-88,"lk":1,"tr":0,"lz":9,"rain":{"s":0,"cnt":0},"modules":{"US":{"stat":"ok"}}}}}}]
2023.04.12 11:09:29 4: MQTT_Worx: Got device info
2023.04.12 11:09:29 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2023.04.12 11:09:29 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.04.12 11:09:29 4: IP: iot.eu-west-1.worxlandroid.com -> 54.72.252.151

Zitat von: frober am 12 April 2023, 10:50:19Lange vor der Umstellung hatte ich die Bestätigung von Positect, dass bei mehr als 150 Anfragen pro Tag für 24h gesperrt wird.

Heißt das, dass man nur max. 150 Datensätze pro Tag bekommt? Früher wurde ca. alle 3 min aktualisiert. Oder darf man 150x am Tag connecten, es reicht jedoch ein connect, und dann kommen die Daten quasi automatisch zyklisch?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 12 April 2023, 11:52:45
Zitat@Rudi wäre es möglich, nextOpenDelay als attr zu implementieren? 180 sec ist evtl. nicht für alle Anwendungen sinnvoll.
Habs eingebaut, LandroidUtils.pm mit 180/20 angepasst.


ZitatErfolgt bei gesetztem maxFailedConnects überhaupt ein auto. reconnect?
Ja, siehe den nrFailedConnects Zaehler.


ZitatBei dem gesetzten und empfohlenen "keepaliveTimeout 600" sind das 144!
MQTT PING als Anfrage zu zaehlen waere unprofessionell (hoeflich ausgedrueckt).


@efyzz: im Log waeren die naechsten Zeilen interessant. Bis dahin ist alles nach Plan.
"discarding DISCONNECT" ist zwar verwirrend, kommt aber vom Modul, und ist Schoenheitsfehler.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 12 April 2023, 13:12:36
Zitat von: rudolfkoenig am 12 April 2023, 11:52:45Habs eingebaut, LandroidUtils.pm mit 180/20 angepasst.
Danke


ZitatMQTT PING als Anfrage zu zaehlen waere unprofessionell (hoeflich ausgedrueckt).
Dann habe ich das auch missinterpretiert, sorry.
Ping ist klar, war nur der Meinung, das dadurch auch Daten angefordert/gesendet werden.


@efyzz
Antwort von Positec am 26.08.21:
ZitatIhr Gerät sendet uns täglich um die 150 Nachrichten oder versucht mehr zu senden. 150 ist tatsächlich das Maximale, was raus gesendet werden kann und sollte mit der normalen Software nur schwer zu erreichen sein bis zu unmöglich. Wenn die Nachrichten am Maximum angekommen sind, kommt es dazu, das Ihr Konto für 24 Stunden gesperrt wird, das bekommen Sie gar nicht mit und passiert auch automatisch.

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 12 April 2023, 14:04:21
@Rudi, eine Kleinigkeit noch.
Falls hier connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)} autocreate auf 0 oder nicht angegeben ist, gibt es beim Neustart eine perl warnung.

Bei mir habe ich es angepasst:
-  $m2c->{autocreate} = 1 if($autocreate);
+  $m2c->{autocreate} = $autocreate?1:0;
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 12 April 2023, 15:07:19
Zitatautocreate auf 0 oder nicht angegeben ist, gibt es beim Neustart eine perl warnung.
Ich kann das nicht nachstellen (weder mit 0, noch ohne Parameter), und auch Code-Lesen hat mich nicht weitergebracht.
Kannst Du die konkrete Meldung zeigen?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 12 April 2023, 19:50:45
Zitat von: rudolfkoenig am 12 April 2023, 15:07:19
Zitatautocreate auf 0 oder nicht angegeben ist, gibt es beim Neustart eine perl warnung.
Ich kann das nicht nachstellen (weder mit 0, noch ohne Parameter), und auch Code-Lesen hat mich nicht weitergebracht.
Kannst Du die konkrete Meldung zeigen?

Rudi, mir fällt noch mehr auf...

meine Def nach doppelten Neustart (dazwischen einen connect um sicher zu gehen), aktuelle Änderungen von heute (ausgekürzt aufs nötigste):
Zitatdefine MQTT2_Worx MQTT2_CLIENT XX
attr MQTT2_Worx autocreate simple
attr MQTT2_Worx connectFn {use LandroidUtils;;;;Landroid_connect($NAME,"worx",0)}
attr MQTT2_Worx keepaliveTimeout 600
attr MQTT2_Worx maxFailedConnects 3
attr MQTT2_Worx mqttVersion 3.1.1
#  ClientsKeepOrder 1
#  DEF        XX
#  DeviceName XX
#  NAME      MQTT2_Worx
#  STATE      disconnected
#  TYPE      MQTT2_CLIENT
#  clientId  MQTT2_Worx
#  connecting 1
#  inConnectFn 1
#  nrConnects 0
#  nrFailedConnects 0
#  READINGS:
#    2023-04-12 19:11:45  state          disconnected

nach einem manuellen connect
attr MQTT2_Worx maxFailedConnects 20
attr MQTT2_Worx nextOpenDelay 180

setstate MQTT2_Worx opened

D.h. ein connect bei Neustart von Fhem funktioniert nicht. Hatte es durch meine vielen Tests schon geahnt, deshalb der doppelte Neustart um sicher zu gehen.
Edit: hattest du das sogar geschrieben? Muss ich nachlesen...

im Log:
2023.04.12 19:07:56 1: ERROR: Landroid_connect MQTT2_Worx - no username attribute
2023.04.12 19:08:12 1: PERL WARNING: Use of uninitialized value in hash element at FHEM/LandroidUtils.pm line 193.

Diese Perl Warnung habe ich gemeint, Zeile 193:
if(!$attr{$m2d->{NAME}}{readingList} && $m2c->{autocreate});
Den ERROR verstehe ich nicht, das attr ist da, sonst würde der connect nicht funktionieren. Die Meldung müsste von Zeile 54 kommen:
return Log 1, "$errPrefix no username attribute" if(!$usr);


Eine Frage noch, du hast {use LandroidUtils;;Landroid_connect($NAME,"worx",0)} mit doppelten Semikolon gepostet, ich habe es gerade mit einem und Neustart probiert, funktioniert genauso. War das ein Typo oder welcher Sinn steckt dahinter?

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 12 April 2023, 20:54:09
Zitat von: rudolfkoenig am 12 April 2023, 11:52:45@efyzz: im Log waeren die naechsten Zeilen interessant. Bis dahin ist alles nach Plan.

Tatsache, eine Zeile kam noch dazu. Sorry!
Und dann geht's eine Stunde später wieder von vorn los.

2023.04.12 11:09:40 2: maxFailedConnects (1) reached, no more reconnect attemtps
2023.04.12 12:08:29 4: MQTT_Worx: requesting new token

Zitat von: frober am 12 April 2023, 13:12:36
ZitatIhr Gerät sendet uns täglich um die 150 Nachrichten ...

Na toll, also bestenfalls alle 10min ein Update. Dagegen war das ja früher nahezu "Echtzeit". Aber warum hat das dann funktioniert? Kann ja irgendwie nicht sein, dass es früher schon auf 150 begrenzt war?!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 13 April 2023, 07:32:34
Zitat von: rudolfkoenig am 12 April 2023, 11:52:45MQTT PING als Anfrage zu zaehlen waere unprofessionell (hoeflich ausgedrueckt).

Nur als Hinweis: der ioBroker-Adapter hat ein Update erfahren. Dort wurde mqttPing nun deaktiviert:

https://github.com/iobroker-community-adapters/ioBroker.worx/commit/0c2921f70d74e30203af87c1fc4c4afac1784d19

Ich habe nach wie vor das Problem, dass aus unerfindlichen Gründen irgendwann der Client offline geht und einige Stunden auch keine Verbindung mehr herstellt.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 13 April 2023, 09:36:18
Zitat von: Ralli am 13 April 2023, 07:32:34Ich habe nach wie vor das Problem, dass aus unerfindlichen Gründen irgendwann der Client offline geht und einige Stunden auch keine Verbindung mehr herstellt.

Dein Doof steht auf 30s hast du Mal geschaut wie oft es auslöst?

Mein Watchdog reagiert erst nach 30 Min!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 13 April 2023, 09:48:02
Zitat von: efyzz am 12 April 2023, 20:54:09Na toll, also bestenfalls alle 10min ein Update. Dagegen war das ja früher nahezu "Echtzeit". Aber warum hat das dann funktioniert? Kann ja irgendwie nicht sein, dass es früher schon auf 150 begrenzt war?!

Es ist ein Unterschied, ob ich Daten Anfrage oder der Mower von sich aus sendet. Ich hatte damals ein notify das zu oft ausgelöst hat.
Mit der aktuellen FW wurde das eh eingeschränkt, es werden nur noch Events gesendet. Batteriespannung, Temp. usw. kommen nicht mehr regelmäßig.
Zumal die Verbindung zum Server möglichst gehalten wird. Ein ständiges dis-/reconnect ist nicht sinnvoll, wenn man regelmäßig Daten haben möchte.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 13 April 2023, 10:19:03
ZitatNur als Hinweis: der ioBroker-Adapter hat ein Update erfahren. Dort wurde mqttPing nun deaktiviert:
mqttPing (in FHEM als keepaliveTimeout bekannt) hilft Verbindungsprobleme schneller zu entdecken.
Das als "Fallback" aktivierte KeepAlive auf TCP-Ebene prueft nur alle 2+ Stunden, ob die Gegenseite noch da ist.
Man kann keepaliveTimeout auch auf einem groesseren Wert setzen oder auf 0 zum deaktivieren.

Ich habe jetzt LandroidUtils so angepasst, dass geaenderte Attribute (keepaliveTimeout, maxFailedConnects und nextOpenDelay) bei einem Landroid_connect Aufruf nicht ueberschrieben werden.

@Frober: ich habe vmtl. auch die Ursache der obigen Warnung gefunden (und behoben): es liegt an dem Zugriff auf eine noch nicht vorhandene Attributliste.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 13 April 2023, 11:50:45
Zitat von: rudolfkoenig am 13 April 2023, 10:19:03
ZitatNur als Hinweis: der ioBroker-Adapter hat ein Update erfahren. Dort wurde mqttPing nun deaktiviert:
mqttPing (in FHEM als keepaliveTimeout bekannt) hilft Verbindungsprobleme schneller zu entdecken.
Das als "Fallback" aktivierte KeepAlive auf TCP-Ebene prueft nur alle 2+ Stunden, ob die Gegenseite noch da ist.
Man kann keepaliveTimeout auch auf einem groesseren Wert setzen oder auf 0 zum deaktivieren.

Ich habe jetzt LandroidUtils so angepasst, dass geaenderte Attribute (keepaliveTimeout, maxFailedConnects und nextOpenDelay) bei einem Landroid_connect Aufruf nicht ueberschrieben werden.

@Frober: ich habe vmtl. auch die Ursache der obigen Warnung gefunden (und behoben): es liegt an dem Zugriff auf eine noch nicht vorhandene Attributliste.


Danke, werde ich testen...
Mit den Attr finde ich gut, hatte den Gedanken auch schon. ;)



mqttPing ist mWn dafür die Verbindung zu halten, wenn länger als 15 oder 20 Min (?) keine Kommunikation stattfindet beendet der Server die Verbindung.
Zumindest habe ich das so gelesen, da aber Postitec hier eine benutzerdefinierte Konfiguration benutzt ist es möglich, dass es hier nicht zutrifft.
Bei ioBroker ist die Ursache der Probleme noch nicht bekannt, ich habe die Issue komplett gelesen. Die Vermutung war von 24h-Sperre bis zu Internetproblemen.

Bei mir läuft Fhem mit der AndroidApp parallel ohne Probleme. Allerding steuere ich nichts, ich lese nur...
Vor der Umstellung hatte ich den Ping auch auf 1000.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 13 April 2023, 14:05:48
Ich habe noch etwas im Inet gestöbert...

Bei openHAB wird alle 599s ein polling ausgeführt, mit der Bemerkung das nach 600s die Verbindung geschlossen wird.
Bei AWS IOT gibt es für den Server ein keepAliveTimeout, ist dieses um das 1,5 fache überschritten, beendet der Server die Verbindung (keine Info, wie es Positec konfiguriert hat).
In PositecBeta sehe ich bisher keine Änderung.

Hier ziehlt das Bsp. für Ping direkt auf den Mower (Seriennummer):
./index.js --brand-prefix WX --auth-endpoint=xxx --auth-client-id=xxxx --endpoint=xxx ping 20220000000000000123
@Rudi, war ich damit wirklich so unprofessionell, dass ich die Pings mitgezählt habe? ;)

Wobei ich aktuell nicht weiß/verstehe, wie das im MQTT2_Client erfolgt. Zumindest sehe ich hier nichts im Zusammenhang mit LandroidUtils.   
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 13 April 2023, 14:47:29
Dass der MQTT-Server nach 1,5 fachen Ueberschreiten des keepAlives die Verbindung zuklappen muss, ist im MQTT-Standard beschrieben, MQTT2_SERVER macht das auch.

"index.js ping" ist kein MQTT-Ping, da wird das Landroid Backend "angepingt" (leeres Kommando), und der antwortet mit einem JSON, wovon ich nichts verstehe
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 13 April 2023, 14:52:30
Zitat"index.js ping" ist kein MQTT-Ping, da wird das Landroid Backend "angepingt" (leeres Kommando), und der antwortet mit einem JSON, wovon ich nichts verstehe

Das kann man auch selbst nachstellen, wenn die MQTT-Verbindung steht, mit:
set MQTT2_Worx publish PRM100/FC*******/commandIn {"cmd":0}wobei man das Beobachten nicht vergessen sollte:
- "attr MQTT2_Worx rawEvents .*" + Event-Monitor
- oder "Show MQTT traffic" in der FHEMWEB Detailansicht von MQTT2_Worx
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 13 April 2023, 19:18:57
Zitat von: rudolfkoenig am 13 April 2023, 14:52:30
Zitat"index.js ping" ist kein MQTT-Ping, da wird das Landroid Backend "angepingt" (leeres Kommando), und der antwortet mit einem JSON, wovon ich nichts verstehe

Das kann man auch selbst nachstellen, wenn die MQTT-Verbindung steht, mit:
set MQTT2_Worx publish PRM100/FC*******/commandIn {"cmd":0}wobei man das Beobachten nicht vergessen sollte:
- "attr MQTT2_Worx rawEvents .*" + Event-Monitor
- oder "Show MQTT traffic" in der FHEMWEB Detailansicht von MQTT2_Worx

"Show MQTT traffic" funktioniert "nicht", man sieht was gesendet wurde, sobald die Antwort kommt klappt es sofort zu (getestet mit 2 gleichen Browserfenster, eins zum senden, eins um nachzuschauen, was passiert ist).
Es kommt eine ganz "normale" Statusmeldung zurück mit aktueller Konfig + Istdaten.
D.h. im ioBroker zählt dieser "Ping" als Anfrage zu den max. 150/Tag.
Bei Fhem ist das nicht so...

Der Errormeldung ist noch vorhanden, Perl Warnung ist weg.
2023.04.13 19:03:06 1: ERROR: Landroid_connect MQTT2_Worx - no username attributeMich stört es nicht, ist eher ein Schönheitsfehler...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 14 April 2023, 07:52:27
Es wird immer doller. Ich bekomme jetzt sowohl beim manuellen Aufruf per Browser der Login-Seite als auch über den MQTT2-Client ein 403.

Wohlgemerkt VOR der Account-Eingabe.

2023.04.14 07:50:17.109 1: ERROR: Landroid_connect MQTT2_Client_Worx - no access_token / <html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
</body>
</html>
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 14 April 2023, 08:35:11
Zitat von: Ralli am 14 April 2023, 07:52:27Es wird immer doller. Ich bekomme jetzt sowohl beim manuellen Aufruf per Browser der Login-Seite als auch über den MQTT2-Client ein 403.

Wohlgemerkt VOR der Account-Eingabe.

2023.04.14 07:50:17.109 1: ERROR: Landroid_connect MQTT2_Client_Worx - no access_token / <html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
</body>
</html>

Wieso bekommst du dauernd html-Meldungen? Normalerweise kommt hier Json zurück.
Mir scheint es so, als wenn du gesperrt wurdest...

Welche Login-Seite? Eine 403 vor Eingabe der Logindaten?
Kannst du dich hier https://id.worx.com/login (https://id.worx.com/login) noch anmelden?

Steuerst du deinen Mäher über Fhem?
Schon einmal probiert, den Fhem-Client für 24h abzuschalten?
Hast du geschaut, was dein Doif alle 30s "treibt"?

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 14 April 2023, 12:47:18
Zitat von: frober am 14 April 2023, 08:35:11Wieso bekommst du dauernd html-Meldungen? Normalerweise kommt hier Json zurück.
Mir scheint es so, als wenn du gesperrt wurdest...
Welche Login-Seite? Eine 403 vor Eingabe der Logindaten?
Kannst du dich hier https://id.worx.com/login (https://id.worx.com/login) noch anmelden?

Genau diese Seite hatte heute morgen offensichtlich ein Problem. Jetzt geht sie wieder und mein MQTT-Client ist auch wieder online. Scheinbar werkeln die ganz schön an der Infrastruktur herum.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 17 April 2023, 12:44:46
Moin,

hat jetzt noch jemand eine Idee, warum bei mir keine Daten kommen?

Zitat von: efyzz am 12 April 2023, 20:54:09Tatsache, eine Zeile kam noch dazu. Sorry!
Und dann geht's eine Stunde später wieder von vorn los.

2023.04.12 11:09:40 2: maxFailedConnects (1) reached, no more reconnect attemtps
2023.04.12 12:08:29 4: MQTT_Worx: requesting new token

Ansonsten: Was wäre denn genau zu tun, um die IObroker Lösung zu verwenden? Muss ich dafür tatsächlich einen IObroker laufen haben oder geht es einfach nach dem alten Prinzip von Axel?
https://github.com/axelmohnen/fhem-landroid-s (https://github.com/axelmohnen/fhem-landroid-s)
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 17 April 2023, 13:07:55
Zitat2023.04.12 11:09:40 2: maxFailedConnects (1) reached, no more reconnect attemtps
Die aktuelle Version von LandroidUtils.pm setzt maxFailedConnects auf 20 und nextOpenDelay auf 180.
Da das nur passiert, wenn die Werte noch nicht gesetzt sind, empfehle ich diese manuell nachzuziehen.
Vmtl. steht eine Fehlermeldung im FHEM-Log, wenn das MQTT Connect nicht funktioniert, diese Meldung wuerde mich interessieren.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Torxgewinde am 17 April 2023, 18:38:49
Hallo,
Schonmal ein dickes Dankeschön!

Ich habe es heute mit dem aktuellem Stand mal ausprobiert und hatte auch ein paar Probleme, aber nun ist das eigentliche Rasenmäher-Device da. Ich musste das Rasenmäher-Device selbst anlegen, vorher stellte das Device "MQTT_Worx" keine Verbindung her und legte das Rasenmäher-Device auch nicht für mich an. Es tauchte im Event-Log eine entsprechende Meldung dazu auf:
Zitat2023-04-17 18:22:24 Global global UNDEFINED MQTT_Worx_Rasenmaeher MQTT2_DEVICE 1234567890123456...

So ging es dann letztendlich:

...und dann erst tauchte das Device mit vielen Readings drin auf.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 17 April 2023, 20:14:57
ZitatIch musste das Rasenmäher-Device selbst anlegen [...]
Vmtl. weil autocreate deaktiviert war.
Wenn man klueger ist als die Voreinstellung, dann muss man halt mehr arbeiten :)
Die Fehlermeldung werde ich abfangen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 17 April 2023, 21:43:18
Zitat von: rudolfkoenig am 17 April 2023, 13:07:55Die aktuelle Version von LandroidUtils.pm setzt maxFailedConnects auf 20 und nextOpenDelay auf 180.
Da das nur passiert, wenn die Werte noch nicht gesetzt sind, empfehle ich diese manuell nachzuziehen.
Vmtl. steht eine Fehlermeldung im FHEM-Log, wenn das MQTT Connect nicht funktioniert, diese Meldung wuerde mich interessieren.


Ich habe nochmal ein Update durchgeführt. Nach einem connect sieht es so aus im Logfile:
2023.04.17 21:24:49 5: {"token_type":"Bearer","expires_in":3600,"access_token":"xxx"}
2023.04.17 21:24:49 4: MQTT_Worx: Got auth info, request: refresh_token
2023.04.17 21:24:49 5: {"id":225193,"user_type":"customer","push_notifications":true,"location":null,"mqtt_endpoint":"a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com","actions_on_google_pin_code":null,"created_at":"2019-07-07 17:31:23","updated_at":"2020-05-17 17:15:44"}
2023.04.17 21:24:49 4: MQTT_Worx: Got userId: xxx
2023.04.17 21:24:50 5: [{"id":xxx,"uuid":"96c52e42-951a-4002-9814-xxx","product_id":49,"user_id":xxx,"serial_number":"xxx","mac_address":"xxx","name":"M","locked":true,"firmware_version":3.2800000000000002,"firmware_auto_upgrade":false,"push_notifications":true,"sim":null,"push_notifications_level":"warning","test":false,"iot_registered":true,"mqtt_registered":true,"pin_code":null,"registered_at":"2019-07-07 00:00:00","online":true,"app_settings":null,"protocol":0,"pending_radio_link_validation":null,"capabilities":["auto_lock","digital_fence_settings","lock","mqtt","multi_zone","multi_zone_percentage","one_time_scheduler","pairing_smartlink","pause_over_wire","rain_delay","rain_delay_start","safe_go_home","scheduler_two_slots","unrestricted_mowing_time"],"capabilities_available":[],"features":{"auto_lock":3.25,"chassis":"m_2019","digital_fence_settings":3.25,"display_type":"tube","input_type":"keyboard_tube","lock":true,"mqtt":true,"multi_zone":true,"multi_zone_percentage":true,"multi_zone_zones":4,"one_time_scheduler":3.15,"pause_over_wire":3.26,"rain_delay":true,"rain_delay_start":3.08,"safe_go_home":3.25,"scheduler_two_slots":3.15,"unrestricted_mowing_time":true,"wifi_pairing":"smartlink"},"accessories":{"ultrasonic":true},"mqtt_endpoint":"iot.eu-west-1.worxlandroid.com","mqtt_topics":{"command_in":"PRM100\/xxx\/commandIn","command_out":"PRM100\/xxx\/commandOut"},"warranty_registered":true,"purchased_at":"2019-07-06 00:00:00","warranty_expires_at":"2022-07-06 00:00:00","setup_location":{"latitude":52.xxx,"longitude":10.xxx},"city":{"id":xxx,"country_id":276,"name":"xxx","latitude":52.xxx,"longitude":10.xxx,"created_at":"2018-02-15 22:22:41","updated_at":"2018-02-15 22:22:41"},"time_zone":"Europe\/Berlin","lawn_size":800,"lawn_perimeter":151,"auto_schedule_settings":{"boost":0,"exclusion_scheduler":{"days":[{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false}],"exclude_nights":true},"grass_type":null,"irrigation":null,"nutrition":null,"soil_type":null},"auto_schedule":false,"improvement":false,"diagnostic":false,"distance_covered":1290687,"mower_work_time":84235,"blade_work_time":78676,"blade_work_time_reset":78314,"blade_work_time_reset_at":"2023-04-10 17:45:33","battery_charge_cycles":653,"battery_charge_cycles_reset":null,"battery_charge_cycles_reset_at":null,"created_at":"2019-04-02 07:20:05","updated_at":"2023-04-11 01:16:13","last_status":{"timestamp":"2023-04-17 19:14:36","payload":{"cfg":{"id":2,"sn":"xxx","dt":"17\/04\/2023","tm":"21:14:41","lg":"en","cmd":0,"sc":{"m":1,"d":[["00:00",0,0],["13:00",195,1],["13:00",195,0],["13:00",195,0],["13:00",195,0],["13:00",195,1],["00:00",0,0]],"dd":[["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0]],"distm":0,"p":0,"ots":{"wtm":0,"bc":0}},"mz":[6,7,8,9],"mzv":[0,1,2,3,0,1,2,3,0,1],"rd":60,"al":{"lvl":0,"t":60},"tq":0,"modules":{"US":{"enabled":1}}},"dat":{"mac":"xxx","fw":3.2800000000000002,"fwb":1,"ls":1,"le":0,"conn":"wifi","bt":{"t":12.3,"v":18.92,"p":97,"nr":654,"c":0,"m":0},"dmp":[2.6,0.9,130.1],"st":{"b":78819,"d":1293130,"wt":84385,"bl":151},"act":1,"rsi":-87,"lk":1,"tr":0,"lz":4,"rain":{"s":0,"cnt":0},"modules":{"US":{"stat":"ok"}}}}}}]
2023.04.17 21:24:50 4: MQTT_Worx: Got device info
2023.04.17 21:24:50 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2023.04.17 21:24:50 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.04.17 21:24:50 4: IP: iot.eu-west-1.worxlandroid.com -> 46.51.198.77
2023.04.17 21:26:53 5: {"token_type":"Bearer","expires_in":3600,"access_token":"xxx"}
2023.04.17 21:26:53 4: MQTT_Worx: Got auth info, request: refresh_token
2023.04.17 21:26:53 5: {"id":225193,"user_type":"customer","push_notifications":true,"location":null,"mqtt_endpoint":"a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com","actions_on_google_pin_code":null,"created_at":"2019-07-07 17:31:23","updated_at":"2020-05-17 17:15:44"}
2023.04.17 21:26:53 4: MQTT_Worx: Got userId: 225193
2023.04.17 21:26:53 5: [{"id":379013,"uuid":"96c52e42-951a-4002-9814-xxx","product_id":49,"user_id":xxx,"serial_number":"xxx","mac_address":"xxx","name":"M","locked":true,"firmware_version":3.2800000000000002,"firmware_auto_upgrade":false,"push_notifications":true,"sim":null,"push_notifications_level":"warning","test":false,"iot_registered":true,"mqtt_registered":true,"pin_code":null,"registered_at":"2019-07-07 00:00:00","online":true,"app_settings":null,"protocol":0,"pending_radio_link_validation":null,"capabilities":["auto_lock","digital_fence_settings","lock","mqtt","multi_zone","multi_zone_percentage","one_time_scheduler","pairing_smartlink","pause_over_wire","rain_delay","rain_delay_start","safe_go_home","scheduler_two_slots","unrestricted_mowing_time"],"capabilities_available":[],"features":{"auto_lock":3.25,"chassis":"m_2019","digital_fence_settings":3.25,"display_type":"tube","input_type":"keyboard_tube","lock":true,"mqtt":true,"multi_zone":true,"multi_zone_percentage":true,"multi_zone_zones":4,"one_time_scheduler":3.15,"pause_over_wire":3.26,"rain_delay":true,"rain_delay_start":3.08,"safe_go_home":3.25,"scheduler_two_slots":3.15,"unrestricted_mowing_time":true,"wifi_pairing":"smartlink"},"accessories":{"ultrasonic":true},"mqtt_endpoint":"iot.eu-west-1.worxlandroid.com","mqtt_topics":{"command_in":"PRM100\/xxx\/commandIn","command_out":"PRM100\/xxx\/commandOut"},"warranty_registered":true,"purchased_at":"2019-07-06 00:00:00","warranty_expires_at":"2022-07-06 00:00:00","setup_location":{"latitude":52.xxx,"longitude":10.xxx},"city":{"id":xxx,"country_id":276,"name":"xxx","latitude":52.xxx,"longitude":10.2833,"created_at":"2018-02-15 22:22:41","updated_at":"2018-02-15 22:22:41"},"time_zone":"Europe\/Berlin","lawn_size":800,"lawn_perimeter":151,"auto_schedule_settings":{"boost":0,"exclusion_scheduler":{"days":[{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false}],"exclude_nights":true},"grass_type":null,"irrigation":null,"nutrition":null,"soil_type":null},"auto_schedule":false,"improvement":false,"diagnostic":false,"distance_covered":1290687,"mower_work_time":84235,"blade_work_time":78676,"blade_work_time_reset":78314,"blade_work_time_reset_at":"2023-04-10 17:45:33","battery_charge_cycles":653,"battery_charge_cycles_reset":null,"battery_charge_cycles_reset_at":null,"created_at":"2019-04-02 07:20:05","updated_at":"2023-04-11 01:16:13","last_status":{"timestamp":"2023-04-17 19:25:59","payload":{"cfg":{"id":2,"sn":"20193019840301098478","dt":"17\/04\/2023","tm":"21:26:04","lg":"en","cmd":0,"sc":{"m":1,"d":[["00:00",0,0],["13:00",195,1],["13:00",195,0],["13:00",195,0],["13:00",195,0],["13:00",195,1],["00:00",0,0]],"dd":[["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0],["00:00",0,0]],"distm":0,"p":0,"ots":{"wtm":0,"bc":0}},"mz":[6,7,8,9],"mzv":[0,1,2,3,0,1,2,3,0,1],"rd":60,"al":{"lvl":0,"t":60},"tq":0,"modules":{"US":{"enabled":1}}},"dat":{"mac":"xxx","fw":3.2800000000000002,"fwb":1,"ls":1,"le":0,"conn":"wifi","bt":{"t":11.9,"v":18.88,"p":96,"nr":654,"c":0,"m":0},"dmp":[2.6,0.9,130.1],"st":{"b":78819,"d":1293130,"wt":84385,"bl":151},"act":1,"rsi":-87,"lk":1,"tr":0,"lz":4,"rain":{"s":0,"cnt":0},"modules":{"US":{"stat":"ok"}}}}}}]
2023.04.17 21:26:54 4: MQTT_Worx: Got device info
2023.04.17 21:26:54 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2023.04.17 21:26:54 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.04.17 21:26:54 4: IP: iot.eu-west-1.worxlandroid.com -> 46.51.198.77

Leider noch immer keine weiteren Daten vom Mäher :(
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Torxgewinde am 17 April 2023, 21:59:20
Zitat von: rudolfkoenig am 17 April 2023, 20:14:57
ZitatIch musste das Rasenmäher-Device selbst anlegen [...]
Vmtl. weil autocreate deaktiviert war.
Wenn man klueger ist als die Voreinstellung, dann muss man halt mehr arbeiten :)
Die Fehlermeldung werde ich abfangen.

Das ist richtig, autocreate habe ich ausgeschaltet. Danke für's Feedback, die wahrscheinliche Ursache und Aussicht auf einen Fix.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 17 April 2023, 22:17:00
Zitat von: efyzz am 17 April 2023, 21:43:18Leider noch immer keine weiteren Daten vom Mäher :(


Du hast hier 2 connects in 2 Min. Wie oft machst du das?
Mal versucht den Client ein paar Std auf disable zu stellen?

Laut Log fehlt das (re)connect. Der Rest scheint zu funktionieren.
Es fehlen Zeilen aus dem Log, nach
2023.04.17 21:24:50 4: IP: iot.eu-west-1.worxlandroid.com -> 46.51.198.77müsste noch etwas kommen.


Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 17 April 2023, 22:41:08
Also danach kommt nichts mehr, außer dass es immer mal wieder von vorne anfängt. Seit dem Update offensichtlich öfter, ich dachte das sei normal und liegt an den nun erhöhten maxFailedConnects.

Manuell führe ich das wenige Male am Tag aus, also eigentlich immer nur, wenn ich auch hier ins Forum schreibe. Vor dem Update wurde es scheinbar 1x pro Stunde aufgerufen, das hatte Rodulf ja auch so erwähnt.
Zitat von: rudolfkoenig am 12 April 2023, 10:35:48Einmal die Stunde wird Landroid_connect ausgefuehrt, und nach aktualisieren des access_tokens wird User- und Device-Info geholt, bevor ein MQTT-Connect durchgefuehrt wird. Falls man im Aufruf des Landroid_connects als letztes Parameter 1 geschrieben hat, dann werden die bei Device-Info geholten Daten auch als Reading eingetragen bzw. aktualisiert.

OK, ich werde mal für mindestens 24h deaktivieren ... Aber wenn ich gesperrt wäre, dürfte doch auch die Handy-App nicht mehr funktionieren oder?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 18 April 2023, 08:30:00
Zitat von: efyzz am 17 April 2023, 22:41:08OK, ich werde mal für mindestens 24h deaktivieren ... Aber wenn ich gesperrt wäre, dürfte doch auch die Handy-App nicht mehr funktionieren oder?

Die Sperren sind individuell und erstmal Client bezogen (clientID ?). Ich war bei den Tests auch in Fhem gesperrt und die anderen App haben noch funktioniert.

Einen stündlichen Refresh gibt es bei einem erfolgreichen Connect schon von Anfang an. Das erhöhte maxFailedConnects müsste eigentlich mit dem nextOpenDelay alle 180 sec einen  Connect versuchen.
Das im Log nichts mehr kommt, ist seltsam und kann ich nicht wirklich glauben.

Nachtrag:
Im Log müsste entweder ein MQTT2_Worx: sending CONNECT (16)(204)(11)(0)(4)MQTT(4)....
oder ein "maxFailedConnects..." stehen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 18 April 2023, 14:32:01
Also nach euren Anpassungen (vielen Dank dafür) habe ich nun auch den aktuellen Stand für den Mower erhalten.

Ist es momentan korrekt, dass man quasi ein Device hat, bei dem recht viele Readings sind mit allen möglich Parametern (aus der App, Anschaffung, Koordinaten, Battery_charge_cycles, etc.)?

Den aktuellen Status, also was der Mower gerade macht, sehe ich dabei nicht.
Auch den Batterie Stand sieht man nicht.
Und die Steuerung funktioniert auch nicht.

Nicht falsch verstehen, möchte nur sicher gehen, dass ich den aktuellen Stand habe. :)

Das template worx_landroid braucht man denke ich momentan nicht, da die Werte nicht passen und die Steuerung noch nicht geht. Ist das richtig?

Sorry für die vielen Fragen, aber ich habe mich nun durch die letzten Seiten gekämpft und noch ein paar ??? auf der Stirn :)


Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 18 April 2023, 14:40:08
Zitat von: fred_feuerstein am 18 April 2023, 14:32:01Also nach euren Anpassungen (vielen Dank dafür) habe ich nun auch den aktuellen Stand für den Mower erhalten.

Ist es momentan korrekt, dass man quasi ein Device hat, bei dem recht viele Readings sind mit allen möglich Parametern (aus der App, Anschaffung, Koordinaten, Battery_charge_cycles, etc.)?

Den aktuellen Status, also was der Mower gerade macht, sehe ich dabei nicht.
Auch den Batterie Stand sieht man nicht.
Und die Steuerung funktioniert auch nicht.

Nicht falsch verstehen, möchte nur sicher gehen, dass ich den aktuellen Stand habe. :)

Das template worx_landroid braucht man denke ich momentan nicht, da die Werte nicht passen und die Steuerung noch nicht geht. Ist das richtig?

Sorry für die vielen Fragen, aber ich habe mich nun durch die letzten Seiten gekämpft und noch ein paar ??? auf der Stirn :)




Das Device wird mit den Mowerdaten angelegt noch vor dem eigentlichen MQTT Connect. Wenn du die Daten nicht möchtest kannst du im Attr, wo die LandroidUtils aufgerufen wird die 1 auf 0 setzten.
Mit deletereading kannst du diese dann löschen.

Steht dein Client auf Open und ist dein Mäher online?
Dann sollten auch die "richtigen' Daten kommen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 18 April 2023, 14:46:56
Moin Fred,

na prima, dann bin ich nicht mehr allein. Siehe Beitrag #526. Aktuell habe ich einfach mal den Clienten deaktiviert, weil ich möglicherweise von Worx gesperrt wurde. Morgen werde ich sehen, ob's funktioniert... Kannst du ja auch mal testen und achte auch darauf, dass der alte Client (falls noch nicht gelöscht) ebenfalls inaktiv ist.

Zitat von: frober am 18 April 2023, 08:30:00Nachtrag:
Im Log müsste entweder ein
MQTT2_Worx: sending CONNECT (16)(204)(11)(0)(4)MQTT(4)....
oder ein "maxFailedConnects..." stehen.

Nö. Hast ja gesehen, dass sich einfach alles wiederholt. Aber vielleicht hatte er einfach seine 20 Versuche noch nicht durch?!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 18 April 2023, 14:50:47
Also mein Device MQTT_Worx steht meist auf disconnected.
Im per autocreate erstellten Device MQTT_Worx_ShaunDasSchaf (den Namen hat er auch automatisch übernommen) werden folgende Readings allerdings zyklisch alle paar Minuten aktualisiert:
battery_charge_cycles
battery_charge_cycles_reset
battery_charge_cycles_reset_at
blade_work_time
blade_work_time_reset
blade_work_time_reset_at
capabilities_1
capabilities_2
capabilities_3
capabilities_4
capabilities_5
capabilities_6
capabilities_7
city_country_id
city_created_at
city_id
city_latitude
city_longitude
city_name
city_updated_at
created_at
diagnostic
distance_covered
features_chassis
features_display_type
features_input_type
features_lock
features_mqtt
features_multi_zone
features_multi_zone_percentage
features_multi_zone_zones
features_rain_delay
features_unrestricted_mowing_time
features_wifi_pairing
firmware_auto_upgrade
firmware_version
id
improvement
iot_registered
lawn_size
locked
mac_address
mower_work_time
mqtt_endpoint
mqtt_registered
mqtt_topics_command_in
mqtt_topics_command_out
name
online
product_id
protocol
purchased_at
push_notifications
push_notifications_level
registered_at
serial_number
setup_location_latitude
setup_location_longitude
test
time_zone
updated_at
user_id
uuid
warranty_expires_at
warranty_registered

Diese Readings werden alle 3 Minuten aktualisiert. Also nachdem das Haupt-Device kurz auf connected und dann wieder disconnected springt.

Zitat von: frober am 18 April 2023, 14:40:08Steht dein Client auf Open und ist dein Mäher online?
Dann sollten auch die "richtigen' Daten kommen.



Sollte das Haupt-Device immer auf "connected" stehen?
Der Mäher steht auf "online"-true (und fährt gerade draussen)

Es fehlen hier die eigentlichen "Status"-Readings vom Mower.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 18 April 2023, 17:52:54
Hallo Rudi,

mit der aktuellen Version stimmt etwas nicht.
Ich habe es auf meinem Testsystem nachgestellt, die
$Id: LandroidUtils.pm 27411 2023-04-07 20:10:13Zfunktioniert noch. Neuere Versionen habe ich nicht zum Testen.

Im Log kommt nach
2023.04.18 17:22:44 5: MQTT_Worx: discarding DISCONNECT (224)(0) nichts mehr, da der Endpoint in den Internals fehlt. Des Weiteren fehlt attr subscriptions und
execAfterConnect { my $h=$defs{$NAME};;} ist nicht vollständig.

Edit:
das kann nur am Fix für die readinglist liegen, habe mit gerade die diff angeschaut...

@fred_feuerstein und @efyzz
Testet mal die alte Version im Anhang. Auf die Rechte beim Kopieren achten und Neustart.

Zeile 59 ersetzten durch: $m2c->{autocreate} = $autocreate?1:0; und Neustart funktioniert auch bei mir. Client davor gelöscht und neu angelegt (zum Testen).
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: ph0x am 18 April 2023, 18:13:25
Zitat von: Torxgewinde am 17 April 2023, 18:38:49So ging es dann letztendlich: [...]
Exakt so hat es heute bei mir auch funktioniert.

Vielen Dank an alle, die sich darum bemüht haben, dass das wieder läuft!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 18 April 2023, 18:25:03
@Otto: Da nun auch Kress und Landxcape, bei Ferrex bin ich nicht sicher (DeskApp hat es nicht implementiert) funktioniert.

Erster Post anpassen oder Wiki?

Was meinst du?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 18 April 2023, 20:00:43
Zitat von: frober am 18 April 2023, 17:52:54@fred_feuerstein und @efyzz
Testet mal die alte Version im Anhang. Auf die Rechte beim Kopieren achten und Neustart.

Zeile 59 ersetzten durch: $m2c->{autocreate} = $autocreate?1:0; und Neustart funktioniert auch bei mir. Client davor gelöscht und neu angelegt (zum Testen).

Habe die Version getestet. Vorher sowohl das Haupt-Device und das Mäher-Device gelöscht. Die Änderung im Skript gemacht und dann Neustart.
Dann wieder erstellt.

define MQTT_Worx MQTT2_CLIENT xyzblablubb-ats.iot.eu-west-1.amazonaws.com:8883
attr MQTT_Worx username a@bc.de
attr MQTT_Worx connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
set MQTT_Worx password mySecret

Das Mäher-Device wurde dann automatisch angelegt. Das Haupt-Device steht auf disconnected. Mit der Utils-Version aus dem FHEM Update wurde dann trotzdem zyklisch das Mäher-Device upgedated. Allerdings nur mit folgenden Readings:
battery_charge_cycles
battery_charge_cycles_reset
battery_charge_cycles_reset_at
blade_work_time
blade_work_time_reset
blade_work_time_reset_at
capabilities_1
capabilities_2
capabilities_3
capabilities_4
capabilities_5
capabilities_6
capabilities_7
city_country_id
city_created_at
city_id
city_latitude
city_longitude
city_name
city_updated_at
created_at
diagnostic
distance_covered
features_chassis
features_display_type
features_input_type
features_lock
features_mqtt
features_multi_zone
features_multi_zone_percentage
features_multi_zone_zones
features_rain_delay
features_unrestricted_mowing_time
features_wifi_pairing
firmware_auto_upgrade
firmware_version
id
improvement
iot_registered
lawn_size
locked
mac_address
mower_work_time
mqtt_endpoint
mqtt_registered
mqtt_topics_command_in
mqtt_topics_command_out
name
online
product_id
protocol
purchased_at
push_notifications
push_notifications_level
registered_at
serial_number
setup_location_latitude
setup_location_longitude
test
time_zone
updated_at
user_id
uuid
warranty_expires_at
warranty_registered

Es fehlen hier also nach wie vor die benötigen Status Readings: über die Batterie, Aktueller Status vom Mäher, etc.

Für mich also erstmal kein Unterschied zu erkennen, zwischen der Version aus dem Update und der "älteren" von Dir angehängten Version.

Was hast Du denn für Readings im Mäher-Device? Die aus meiner Liste oben und welche weiteren noch?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 18 April 2023, 20:38:35
Hab jetzt relativ viel ungebaut, einiges getestet, und eine neue Version von LandroidUtils.pm eingecheckt.
Gelernt: ein refresh_token scheint viele Stunden (15+) lang gueltig zu sein.

Die neue Version verwendet den access_token (wenn noch gueltig), sonst refresh_token (falls vorhanden), sonst username/passwort. Es wird kein MQTT disconnect initiiert, sondern auf dem MQTT-Server gewartet. Danach wird sofort ein reconnect versucht, wenn das nicht klappt, dann jeweils alle nextOpenDelay (180 Sekunden) noch eins, bis maxFailedConnects (20) erreicht ist.
Auch in Problemfaellen wie falsches Username oder Backend-Probleme wird die 180-Sekunden Schleife angewendet

Getestet:
- login ohne gespeicherte Daten
- login mit gueltigen access_token
- login mit ungueltigen access_token
- login mit ungueltigen refresh token
- falscher username
- mqtt-server disconnect

Was ich nicht getestet habe: Probleme im Amazon-Backend, insb. wenn Auth und HTTP da ist, aber der MQTT-Server nicht.

Lesbares debugging bekommt man mit "attr MQTT2_Worx verbose 4".
Die Aufruf-Syntax hat sich nicht geaendert.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 18 April 2023, 20:56:08
Zitat von: fred_feuerstein am 18 April 2023, 20:00:43Habe die Version getestet. Vorher sowohl das Haupt-Device und das Mäher-Device gelöscht. Die Änderung im Skript gemacht und dann Neustart.
Dann wieder erstellt.
Sorry, war wohl missverständlich. Entweder Zeile ändern oder alte Version.

Hast du noch ein set .. connect gemacht?


ZitatWas hast Du denn für Readings im Mäher-Device? Die aus meiner Liste oben und welche weiteren noch?

Ich bekomme die gewohnten Readings.

Probiere die neue Version von Rudi...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 18 April 2023, 21:06:41
2023.04.18 21:05:26.208 1: ERROR evaluating my $NAME=   $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}: Attempt to reload LandroidUtils.pm aborted.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 18 April 2023, 21:10:01
Ich bin gewohnt, dass in der naechsten Zeile im FHEM-Log die Begruendung fuer diese Fehlermeldung steht.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 18 April 2023, 21:14:57
Entschuldige Rudi, darunter stand lediglich noch

Compilation failed in require at (eval 3966) line 1.
BEGIN failed--compilation aborted at (eval 3966) line 1.

Tatsächlich hatte ich aber übersehen, dass beim Start von FHEM bereits einige Einträge im Log waren:

2023.04.18 21:04:37.599 1: PERL WARNING: Bareword found where operator expected at FHEM/LandroidUtils.pm line 13, near ""X-UA-Compatible" content"
2023.04.18 21:04:37.599 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.599 1: PERL WARNING:    (Missing operator before content?)
2023.04.18 21:04:37.599 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.599 1: PERL WARNING: Bareword found where operator expected at FHEM/LandroidUtils.pm line 16, near ")
        window"
2023.04.18 21:04:37.599 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.599 1: PERL WARNING:    (Missing operator before window?)
2023.04.18 21:04:37.599 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.599 1: PERL WARNING: Bareword found where operator expected at FHEM/LandroidUtils.pm line 20, near ""search"  href"
2023.04.18 21:04:37.599 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.599 1: PERL WARNING:    (Missing operator before href?)
2023.04.18 21:04:37.599 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.599 1: PERL WARNING: Bareword found where operator expected at FHEM/LandroidUtils.pm line 39, near "jQuery"
2023.04.18 21:04:37.599 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.599 1: PERL WARNING:    (Missing semicolon on previous line?)
2023.04.18 21:04:37.599 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.600 1: PERL WARNING: String found where operator expected at FHEM/LandroidUtils.pm line 40, near "$(".trac-autofocus""
2023.04.18 21:04:37.600 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.600 1: PERL WARNING:    (Missing operator before ".trac-autofocus"?)
2023.04.18 21:04:37.600 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.600 1: PERL WARNING: String found where operator expected at FHEM/LandroidUtils.pm line 41, near "$(".trac-target-new""
2023.04.18 21:04:37.600 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.600 1: PERL WARNING:    (Missing operator before ".trac-target-new"?)
2023.04.18 21:04:37.600 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.600 1: PERL WARNING: Bareword found where operator expected at FHEM/LandroidUtils.pm line 42, near "$.ui"
2023.04.18 21:04:37.600 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.600 1: PERL WARNING:    (Missing operator before ui?)
2023.04.18 21:04:37.600 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.600 1: PERL WARNING: String found where operator expected at FHEM/LandroidUtils.pm line 43, near "$(".trac-datepicker:not([readonly])""
2023.04.18 21:04:37.600 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.600 1: PERL WARNING:    (Missing operator before ".trac-datepicker:not([readonly])"?)
2023.04.18 21:04:37.600 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.600 1: PERL WARNING: Bareword found where operator expected at FHEM/LandroidUtils.pm line 45, near "// Input"
2023.04.18 21:04:37.600 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.600 1: PERL WARNING:    (Missing operator before Input?)
2023.04.18 21:04:37.600 3: eval: my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
2023.04.18 21:04:37.600 1: ERROR evaluating my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}: Can't modify glob in predecrement (--) at FHEM/LandroidUtils.pm line 7, near "<"
Unknown regexp modifier "/t" at FHEM/LandroidUtils.pm line 8, at end of line
Unknown regexp modifier "/t" at FHEM/LandroidUtils.pm line 8, at end of line
Unknown regexp modifier "/e" at FHEM/LandroidUtils.pm line 8, at end of line
syntax error at FHEM/LandroidUtils.pm line 13, near ""X-UA-Compatible" content"
Not enough arguments for link at FHEM/LandroidUtils.pm line 20, near ""search"  href"
syntax error at FHEM/LandroidUtils.pm line 20, near ""search"  href"
syntax error at FHEM/LandroidUtils.pm line 41, near "$(".trac-target-new""
syntax error at FHEM/LandroidUtils.pm line 42, near "$.ui"
syntax error at FHEM/LandroidUtils.pm line 45, near "// Input current "
FHEM/LandroidUtils.pm has too many errors.
Compilation failed in require at (eval 631) line 1.
BEGIN failed--compilation aborted at (eval 631) line 1.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 18 April 2023, 21:23:42
 @Rudi, beim ersten Start hatte ich Disco:
2023.04.18 21:11:49 3: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.18 21:11:49 3: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
2023.04.18 21:11:50 3: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.18 21:11:50 3: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
2023.04.18 21:11:51 3: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.18 21:11:51 3: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
2023.04.18 21:11:52 3: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.18 21:11:53 3: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
2023.04.18 21:11:53 3: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.18 21:11:54 3: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
2023.04.18 21:11:54 3: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.18 21:11:55 3: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
2023.04.18 21:11:56 3: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.18 21:11:56 3: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
2023.04.18 21:11:57 3: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.18 21:11:57 3: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
2023.04.18 21:11:58 3: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.18 21:11:58 3: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
2023.04.18 21:11:59 3: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.18 21:11:59 3: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)

Nach einem disable/enable lief es stabil, auch nach einem erneuten Neustart.

Fazit: läuft erstmal...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 18 April 2023, 21:37:11
Ich habe das File neu heruntergeladen und in meine FHEM-Installation geschoben.

Nun klappt's. Scheinbar war der Download korrupt. :o
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 18 April 2023, 21:47:31
@Rudi, Disco bekomme ich anscheinend wg. autocreate 0.
Während des connects kann ich von 1 auf 0 ohne Auswirkung, wenn ich dann aber z.B. nextOpenDelay ändere fängt es wieder an.

Nachtrag: 
Mein Device ist umbenannt, wg. Logging und sonstigen Abhängigkeiten. Mit autocreate wird, obwohl vorhanden, ein weiteres Device neu angelegt.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 19 April 2023, 07:43:34
Eine neue Version der LandroidUtils.pm bekomme ich nicht übers Update. Die letzte ist vom 14.04.
Kann mir jemand die neue Version mal anhängen?

//edit: jetzt ist eine neue im Update gewesen von heute 7.45 Uhr - hat Rudi scheinbar gerade noch was dran gemacht :)

Werde also mal probieren.

//edit2: habe testweise mich mal online anmelden wollen. Dort kommt der Hinweis, dass ich scheinbar temporär gesperrt bin. Mal schauen. Wahrscheinlich geht es dann erst wieder morgen weiter...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 19 April 2023, 08:01:00
Zitat von: fred_feuerstein am 19 April 2023, 07:43:34Eine neue Version der LandroidUtils.pm bekomme ich nicht übers Update. Die letzte ist vom 14.04.
Kann mir jemand die neue Version mal anhängen?

//edit: jetzt ist eine neue im Update gewesen von heute 7.45 Uhr - hat Rudi scheinbar gerade noch was dran gemacht :)

Werde also mal probieren.

Die neue Versionen kommen immer erst am nächsten Tag, morgens um 7 Uhr(?).
Direkt kann man sie aus dem SVN beziehen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 19 April 2023, 08:12:45
Hallo Rudi,

autocreate 0 macht Probleme. Auch beim nachträglichen Setzen.
Edit: evtl. hängt es damit zusammen, dass ich mein Device umbenannt habe, ich habe auch keine "Mowerdaten" in diesem Device.

Bei mir hat es heute Nacht zugeschlagen, bin nun erstmal komplett gesperrt...auch die AndroidApp usw.

Ich habe nun auch eine 403 forbidden als HTML im Log.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 19 April 2023, 08:53:16
Moin,
ich habe gerade nochmal ein Update gemacht, den Clienten wieder enabled und connect ausgeführt. Funktioniert immer noch nicht, obwohl ich jetzt über 30h gewartet habe. In der Log steht auch nichts Neues drin.

2023.04.19 08:34:36 4: MQTT_Worx: Got device info
2023.04.19 08:34:36 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2023.04.19 08:34:36 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.04.19 08:34:36 4: IP: iot.eu-west-1.worxlandroid.com -> 34.250.240.209

Zitat von: fred_feuerstein am 19 April 2023, 07:43:34//edit2: habe testweise mich mal online anmelden wollen. Dort kommt der Hinweis, dass ich scheinbar temporär gesperrt bin. Mal schauen. Wahrscheinlich geht es dann erst wieder morgen weiter...

Wie genau machst du das? Wenn ich mich bei eu.worx.com einlogge, kann ich dort nur meine persönlichen Daten einsehen/ändern, sonst nichts.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 19 April 2023, 08:58:36
Zitat von: frober am 19 April 2023, 08:12:45Ich habe nun auch eine 403 forbidden als HTML im Log.

Dafür klappt's jetzt bei mir 8) . Das ist schon ein Kreuz mit dem Worx-Zeug >:( .
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 19 April 2023, 09:18:07
Zitat von: efyzz am 19 April 2023, 08:53:16
Zitat//edit2: habe testweise mich mal online anmelden wollen. Dort kommt der Hinweis, dass ich scheinbar temporär gesperrt bin. Mal schauen. Wahrscheinlich geht es dann erst wieder morgen weiter...

Wie genau machst du das? Wenn ich mich bei eu.worx.com einlogge, kann ich dort nur meine persönlichen Daten einsehen/ändern, sonst nichts.

https://account.worxlandroid.com/login (https://account.worxlandroid.com/login)

da wird die IP-Adresse gebannt -> aus dem Heimnetz 403 forbidden, Mobil kann ich mich einloggen
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 19 April 2023, 09:32:08
Also dort kann ich mich nun wieder einloggen. Bin also scheinbar wieder entsperrt.

Aber an der Sache mit MQTT, FHEM und worx hat sich nichts geändert.
Das Device steht nach wie vor auf disconnected und alle 180 Sekunden wird ein connect versucht. Dabei kommen dann am Mäher-Device die Standard-Readings vom Mäher (ohne die Status und Battery Readings und ohne Kalender etc.)

Im Log vom Haupt-Device sehe ich trotz verbose 5 nur solche Einträge:
2023-04-19_07:49:16 MQTT_Worx connect
2023-04-19_07:49:18 MQTT_Worx disconnected
2023-04-19_07:49:59 MQTT_Worx connect
2023-04-19_07:50:01 MQTT_Worx disconnected
2023-04-19_07:55:26 MQTT_Worx disconnected
2023-04-19_07:57:20 MQTT_Worx disconnected
2023-04-19_07:57:41 MQTT_Worx connect
2023-04-19_07:58:13 MQTT_Worx disconnected

fehlt noch eine Grundeinrichtung bei mir? wie gesagt, letztes Jahr hatte es mit MQTT2 alles funktioniert, somit gehe ich davon aus, dass alle benötigten Dinge installiert sind.

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 19 April 2023, 09:38:44
Zitat von: fred_feuerstein am 19 April 2023, 09:32:08Also dort kann ich mich nun wieder einloggen. Bin also scheinbar wieder entsperrt.

Aber an der Sache mit MQTT, FHEM und worx hat sich nichts geändert.
Das Device steht nach wie vor auf disconnected und alle 180 Sekunden wird ein connect versucht. Dabei kommen dann am Mäher-Device die Standard-Readings vom Mäher (ohne die Status und Battery Readings und ohne Kalender etc.)

Im Log vom Haupt-Device sehe ich trotz verbose 5 nur solche Einträge:
2023-04-19_07:49:16 MQTT_Worx connect
2023-04-19_07:49:18 MQTT_Worx disconnected
2023-04-19_07:49:59 MQTT_Worx connect
2023-04-19_07:50:01 MQTT_Worx disconnected
2023-04-19_07:55:26 MQTT_Worx disconnected
2023-04-19_07:57:20 MQTT_Worx disconnected
2023-04-19_07:57:41 MQTT_Worx connect
2023-04-19_07:58:13 MQTT_Worx disconnected

fehlt noch eine Grundeinrichtung bei mir? wie gesagt, letztes Jahr hatte es mit MQTT2 alles funktioniert, somit gehe ich davon aus, dass alle benötigten Dinge installiert sind.



ich kann nur spekulieren...
Hast du im Fhemweb, in der Regel "WEB", bei attr sslVersion etwas definiert?
MQTT benötigt TLSv12


Mit einem "Trick" bin ich nun wieder online.  ;D
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 19 April 2023, 09:51:13
Zitat von: frober am 19 April 2023, 08:12:45Hallo Rudi,

autocreate 0 macht Probleme. Auch beim nachträglichen Setzen.
Edit: evtl. hängt es damit zusammen, dass ich mein Device umbenannt habe, ich habe auch keine "Mowerdaten" in diesem Device.

Bei mir hat es heute Nacht zugeschlagen, bin nun erstmal komplett gesperrt...auch die AndroidApp usw.

Ich habe nun auch eine 403 forbidden als HTML im Log.

Das Problem habe ich vermutlich erkannt. Da der Client das umbenannte Device nicht kennt, stimmten nach den Anpassungen die Internals nicht mehr.
Ich benenne nun das Neue um und probiere autocreate 0 noch einmal...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 19 April 2023, 10:20:54
Zitat von: frober am 19 April 2023, 09:38:44ich kann nur spekulieren...
Hast du im Fhemweb, in der Regel "WEB", bei attr sslVersion etwas definiert?
MQTT benötigt TLSv12


sslVersion war bei mir gar nicht definiert. Habe es nun auf TLSv12 gesetzt.

hat aber nach erneutem fhem Neustart auch nichts gebracht.

Hier mal ein list vom Haupt-Device:
Internals:
   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      643ed8e2-f33f-965f-f880-1229b3821cb918e2d4e
   NAME       MQTT_Worx
   NEXT_OPEN  1681892098.90043
   NR         1563
   PARTIAL   
   SSL        1
   STATE      disconnected
   TYPE       MQTT2_CLIENT
   autocreate 1
   clientId   WX/USER/123456/FHEM/12345678-f33f-965f-66d8-12122b6c7aaa222f
   connecting 1
   devioLoglevel 5
   eventCount 2
   landroidType worx
   mqttEndpoint iot.eu-west-1.worxlandroid.com
   nextOpenDelay 180
   nrConnects 1
   nrFailedConnects 1
   userId     12345
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2023-04-19 10:11:58   state           disconnected
     2023-04-18 19:53:33   wxid            12345678-f33f-965f-66d8-202932372457243
   sslargs:
     SSL_alpn_protocols mqtt
Attributes:
   connectFn  {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
   disable    0
   execAfterConnect { my $h=$defs{$NAME};MQTT2_CLIENT_doPublish($h,'DB510/12345678/commandIn','{}')}
   keepaliveTimeout 600
   maxFailedConnects 1
   nextOpenDelay 180
   room       MQTT2_DEVICE
   subscriptions DB510/123456789/commandOut
   username   mail@mail.de
   verbose    5

also das Haupt-Device sollte eigentlich immer auf "opened" stehen, oder?
Da es das bei mir nicht macht, brauche ich am Mäher-Device gar nicht weiter probieren. Dort kommen halt nur diese Standard-Readings an.

Bin momentan etwas ratlos.

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 19 April 2023, 10:24:48
@Rudi, ich habe weiter getestet...

Das alte Device gelöscht, das Neue umbenannt und mit dem Template angepasst.
Mit autocreate 1 wird wieder ein neues Device mit den Mowerdaten angelegt, die MQTT-Daten gehen jedoch nur in das alte Device und ohne die Mowerdaten (evtl. wg. dem Template oder weil der Client es nicht "kennt".
Wenn ich das neue Device lösche, wird es beim nächsten connect wieder angelegt.
Lösche ich es und setze autocreate auf 0 gibt es beim nächsten connect wieder ein ständiges dis-/connect.

Mache erstmal Pause, damit ich nicht wieder gesperrt werde...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 19 April 2023, 10:40:05
Zitat von: fred_feuerstein am 19 April 2023, 10:20:54
Zitat von: frober am 19 April 2023, 09:38:44ich kann nur spekulieren...
Hast du im Fhemweb, in der Regel "WEB", bei attr sslVersion etwas definiert?
MQTT benötigt TLSv12


sslVersion war bei mir gar nicht definiert. Habe es nun auf TLSv12 gesetzt.

hat aber nach erneutem fhem Neustart auch nichts gebracht.

Hier mal ein list vom Haupt-Device:
ZitatInternals:
   
   clientId   WX/USER/xxxx/FHEM/xxxx
   userId     xxxx
   
   READINGS:
     2023-04-19 10:11:58   state           disconnected
     2023-04-18 19:53:33   wxid            xxxx
   
Attributes:
   execAfterConnect { my $h=$defs{$NAME};MQTT2_CLIENT_doPublish($h,'DB510/xxxx/commandIn','{}')}
   subscriptions DB510/xxx/commandOut
   

also das Haupt-Device sollte eigentlich immer auf "opened" stehen, oder?
Da es das bei mir nicht macht, brauche ich am Mäher-Device gar nicht weiter probieren. Dort kommen halt nur diese Standard-Readings an.

Bin momentan etwas ratlos.



Bitte sslVersion wieder löschen, der Default ist von Fhem aus richtig gesetzt.
Korrigieren bitte auch deinen Post und ersetzt deine Daten wir von mit rot gekennzeichnet.

Der Client sollte auf opened steht und auch bleiben. Es erfolgt alle Std + x Min ein reconnect.
Momentan sehe ich keine Fehler, was steht im Log (verbose 4 reicht, ist default)?

Edit:
was für ein Log hattest du gepostet? Das ist nicht das Fhemlog (Logfile in Fhemweb)...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 19 April 2023, 10:58:24
Zitatautocreate 0 macht Probleme. Auch beim nachträglichen Setzen.
Habs offensichtlich nicht getestet.
Ursache war, dass nur damit subscription berechnet wurde, und die Gegenseite reagiert allergisch auf falsche subscriptions. Wuerde ich in der gleichen Situation auch.
Habs jetzt gefixt.

ZitatBei mir hat es heute Nacht zugeschlagen, bin nun erstmal komplett gesperrt...auch die AndroidApp usw.
Leider greifte in diesem Fall nextOpenDelay und maxFailedConnects nicht.
Ich habe das jetzt fuer nextOpenDelay gefixt, allerdings fehlt mir die Energie fuer maxFailedConnects.

Die neue Version ist wie erwaehnt sofort aus SVN (https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/LandroidUtils.pm) oder morgen ab 7:45 + Processing-Time per FHEM-Update zu holen
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 19 April 2023, 11:15:53
Zitat von: frober am 19 April 2023, 10:40:05Der Client sollte auf opened steht und auch bleiben. Es erfolgt alle Std + x Min ein reconnect.
Momentan sehe ich keine Fehler, was steht im Log (verbose 4 reicht, ist default)?

Edit:
was für ein Log hattest du gepostet? Das ist nicht das Fhemlog (Logfile in Fhemweb)...


(hatte die meisten IDs aus meinem List schon vorher auf Phantasiewerte gesetzt. Hab die restlichen auch noch geändert, danke)

hatte das Log vom Device gepostet. Hier der Auszug aus fhemlog (der erste Block noch mit verbose 5, Rest dann mit verbose 4)

2023.04.19 10:56:24 4: MQTT_Worx: reusing the acess_token
2023.04.19 10:56:24 5: {"id":75595,"user_type":"customer","push_notifications":true,"location":null,"mqtt_endpoint":"a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com","actions_on_google_pin_code":null,"created_at":"2018-07-04 19:10:33","updated_at":"2020-05-16 00:00:23"}
2023.04.19 10:56:24 4: MQTT_Worx: Got userId: 75595
2023.04.19 10:56:24 5: [{"id":240315,"uuid":"..... alle statischen Readings werden geholt ...1}}}}]
2023.04.19 10:56:24 4: MQTT_Worx: Got device info
2023.04.19 10:56:24 5: MQTT_Worx: discarding DISCONNECT (224)(0)
.
.
.
2023.04.19 10:59:34 4: MQTT_Worx: reusing the acess_token
2023.04.19 10:59:39 4: MQTT_Worx: Got userId: 75595
.
.
2023.04.19 10:59:58 1: ERROR: Landroid_connect3 MQTT_Worx - start_SSL https://api.worxlandroid.com:443 timed out
.
.
2023.04.19 11:02:58 4: MQTT_Worx: reusing the acess_token
2023.04.19 11:02:58 4: MQTT_Worx: Got userId: 75595
2023.04.19 11:02:59 4: MQTT_Worx: Got device info
2023.04.19 11:02:59 4: IP: iot.eu-west-1.worxlandroid.com -> 52.214.209.63


nach einem Neustart von FHEM kam auch diese Zeile im Log:
2023.04.19 11:30:26 1: ERROR: Landroid_connect MQTT_Worx - no username attribute
Aber auch nur einmal, danach kam wieder der Block mit reusing the Access Token etc.



Habe nun bereits die neueste Version von Rudolf installiert.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 19 April 2023, 11:55:32
Zitat von: rudolfkoenig am 19 April 2023, 10:58:24Die neue Version ist wie erwaehnt sofort aus SVN (https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/LandroidUtils.pm) oder morgen ab 7:45 + Processing-Time per FHEM-Update zu holen

Vielen Dank. Läuft hier.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 19 April 2023, 12:06:51
Zitat2023.04.19 10:56:24 5: MQTT_Worx: discarding DISCONNECT (224)(0)
Das bedeutet entweder Muell in der Leitung, oder ein MQTT-Disconnect Nachricht, bevor unser CONNECT mit CONNACK bestaetigt wuurde. Ich habe das noch nie selbst erlebt.
Wenn jemand das reproduzieren kann, bitte mit dem "HOWTO" melden.

Zitat2023.04.19 10:59:58 1: ERROR: Landroid_connect3 MQTT_Worx - start_SSL https://api.worxlandroid.com:443 timed out
Problem auf der anderen Seite, "kann man nix machen" :)

Zitat2023.04.19 11:30:26 1: ERROR: Landroid_connect MQTT_Worx - no username attribute
Ich hoffe diese Meldung ist klar, wenn nicht, bitte um Verbesserungsvorschlag.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 19 April 2023, 12:20:12
die letzte Meldung ist zwar klar, aber ich verstehe nicht warum. Am Device hat sich nach der Einrichtung nichts geändert. Somit ist dort per attr auch der Username hinterlegt. Warum dann irgendwann einmal diese Meldung kommt, kann ich mir deshalb nicht erklären.

kann ich sonst noch etwas testen? Sonst setze ich das Device erstmal auf disable und hoffe dass mir oder jemandem von euch noch eine Idee kommt.

Der User efyzz hatte ja glaube ich das gleiche Problem.

//edit: gerade mal die neue DeskApp 0.31 unter Windows11 probiert. Dort läuft es. Also genau wie in der Android App. Nutzt halt leider nichts für die fhem Integration. Ausser, dass zumindest die Login-Daten zu stimmen scheinen ;)
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 19 April 2023, 12:39:38
Die Error Meldung habe ich auch schon gepostet, die Funktion ist trotzdem gegeben.
D.h. während des Starts von Fhem ist das gesetzte attr username noch nicht für LandroidUtils verfügbar.
Die Meldung kommt noch vor
Including /opt/fhem/log/fhem.save, keine Ahnung, ob das damit zusammen hängt.

@Rudi wäre $hash->{NR} eine Lösung, d.h. Nr. hoch setzen damit der Client bzw. LandroidUtils erst später initialisiert wird?

Die aktuelle Version hat noch Probleme, mit autocreate 1 es wird alle "nextOpenDelay" ein reconnect ausgeführt (bei mit aktuell alle 60s), trotz erfolgreichem connect.
Edit: es fehlt wahrscheinlich die Überprüfung auf "state opened"

Ein neues Device wird, wenn ein umbenanntes vorhanden ist, nicht mehr angelegt.

Mit autocreate 0 bekomme ich kein connect.
Zitat2023.04.19 12:18:25 1: ERROR evaluating my $NAME=  $evalSpecials->{'%NAME'};{use LandroidUtils;;Landroid_connect(MQTT2_Worx,"worx",0)}: Bareword "MQTT2_Worx" not allowed while "strict subs" in use at (eval 31087) line 1.
Edit: Der Name wird aktuell direkt gesetzt, aber ohne Quotes. Habe es bei korrigiert, dann funktioniert autocreate 0. Hmm, bin mir gerade nicht sicher, ob ich das war...aktuell habe ich es wieder auf $NAME geändert, damit funktioniert autocreate 0, aber auch mit ständigem reconnect.

Mowerdaten habe ich keine im Devcice, sollten auch nicht nötig sein!?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 19 April 2023, 13:42:21
@Rudi, Zeile 57,58 geändert auf
if(!$noToCheck && $m2c->{".CONNECT_TO"} &&
    gettimeofday() < $m2c->{".CONNECT_TO"} && DevIo_getState($m2c) eq 'disconnected"') {
scheint erstmal zu funktionieren, keine Ahnung ob es Nebenwirkungen gibt...


...und "%types -> ferrex => {..." würde ich raus nehmen, laut PositecBeta gibt es das nicht (mehr).
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 19 April 2023, 14:48:06
ZitatD.h. während des Starts von Fhem ist das gesetzte attr username noch nicht für LandroidUtils verfügbar.
Ich wuesste gerne, was Ihr wieder fuer Sonderkonfiguration hingekriegt habt.
MQTT-Connect (und damit die connectFn Auswertung) wird per InternalTimer gestartet, die Abarbeitung laeuft erst los, wenn alles eingelesen wurde.

Zitatkeine Ahnung ob es Nebenwirkungen gibt...
Entspricht einem "unter dem Teppich kehren" Aktion.
Ich frag mich, wieso ich kein Problem damit habe, Du hast vmtl. neben "starten und laufen lassen" noch was gemacht (fhem.cfg editiert / reloadcfg / Landroid_connect direkt aufgerufen, etc).
Das Problem kann ich nur fixen, wenn ich mehr weiss, bei mir laeuft es laut verbose 4 problemlos.


Zitatkann ich sonst noch etwas testen?
Einen Anmeldeversuch starten mit "attr global verbose 5", und das komplette Log hier posten.

Man kann dafuer auch ein separates FHEM verwenden:
- in /opt/fhem fhem.cfg.landroid erstellen mit folgenden Inhalt:
Zitatdefine m2c MQTT2_CLIENT XX
attr m2c connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
attr m2c username user@host
set m2c password geheim
- FHEM im Terminal starten mit "perl fhem.pl -d fhem.cfg.landroid", und die Ausgabe hier als Datei anhaengen
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 19 April 2023, 15:00:28
Zitat von: rudolfkoenig am 19 April 2023, 14:48:06Ich wuesste gerne, was Ihr wieder fuer Sonderkonfiguration hingekriegt habt.
MQTT-Connect (und damit die connectFn Auswertung) wird per InternalTimer gestartet, die Abarbeitung laeuft erst los, wenn alles eingelesen wurde.
Das Error kam von einer vorherigen Version und aktuell durch meinen Test/Fehler in connectFn, aktuell habe ich es bei einem Neustart nicht mehr gesehen.

Zitat
Zitatkeine Ahnung ob es Nebenwirkungen gibt...
Entspricht einem "unter dem Teppich kehren" Aktion.
Ich frag mich, wieso ich kein Problem damit habe, Du hast vmtl. neben "starten und laufen lassen" noch was gemacht (fhem.cfg editiert / reloadcfg / Landroid_connect direkt aufgerufen, etc).
Das Problem kann ich nur fixen, wenn ich mehr weiss, bei mir laeuft es laut verbose 4 problemlos.

Ich kann mich davor setzen, nichts tuen und zusehen, wie alle "nextOpenDelay" (bei mir aktuell 60) ein reconnect durchgeführt wird (fhem.cfg editiere ich schon sehr lange nicht mehr, rereadcfg war nicht nötig und funktioniert mit LandroidUtils nicht, LandroidUtils direkt aufrufen? warum sollte ich so etwas tuen, vor allem wenn ich ein connect habe)
2023.04.19 12:54:11 4: MQTT2_Worx: reusing the acess_token
2023.04.19 12:54:11 4: MQTT2_Worx: Got userId: 376946
2023.04.19 12:54:12 4: MQTT2_Worx: Got device info
2023.04.19 12:54:12 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
2023.04.19 12:54:12 4: IP: iot.eu-west-1.worxlandroid.com -> 54.195.179.23
2023.04.19 12:54:12 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.19 12:54:12 4: MQTT2_Worx received CONNACK
2023.04.19 12:54:12 4: MQTT2_Worx received SUBACK
2023.04.19 12:54:12 4: MQTT2_Worx received PUBLISH
2023.04.19 12:55:11 4: MQTT2_Worx: reusing the acess_token
2023.04.19 12:55:11 4: MQTT2_Worx: Got userId: 376946
2023.04.19 12:55:11 4: MQTT2_Worx: Got device info
2023.04.19 12:55:11 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
2023.04.19 12:55:12 4: IP: iot.eu-west-1.worxlandroid.com -> 54.74.129.222
2023.04.19 12:55:12 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.19 12:55:12 4: MQTT2_Worx received CONNACK
2023.04.19 12:55:12 4: MQTT2_Worx received SUBACK
2023.04.19 12:55:13 4: MQTT2_Worx received PUBLISH
2023.04.19 12:56:11 4: MQTT2_Worx: reusing the acess_token
2023.04.19 12:56:11 4: MQTT2_Worx: Got userId: 376946
2023.04.19 12:56:12 4: MQTT2_Worx: Got device info
2023.04.19 12:56:12 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
2023.04.19 12:56:12 4: IP: iot.eu-west-1.worxlandroid.com -> 54.74.129.222
2023.04.19 12:56:12 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.19 12:56:12 4: MQTT2_Worx received CONNACK
2023.04.19 12:56:12 4: MQTT2_Worx received SUBACK
2023.04.19 12:56:12 4: MQTT2_Worx received PUBLISH

falls du ein verbose 5 benötigst, sag Bescheid.

autocreate auf 0 oder 1, Device umbenannt

Nachtrag:
direkt nach Neustart mit meiner Anpassung, nach ~70 Min ein reconnect:
2023.04.19 13:36:33 0: Server started with 393 defined entities (fhem.pl:27410/2023-04-07 perl:5.028001 os:linux user:fhem pid:28237)
2023.04.19 13:36:34 1: 127.0.0.1:1883 reappeared (MQTT2_Client)
2023.04.19 13:38:20 4: MQTT2_Worx: reusing the acess_token
2023.04.19 13:38:21 4: MQTT2_Worx: Got userId: 376946
2023.04.19 13:38:21 4: MQTT2_Worx: Got device info
2023.04.19 13:38:21 4: IP: iot.eu-west-1.worxlandroid.com -> 34.252.253.75
2023.04.19 13:38:22 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.19 13:38:22 4: MQTT2_Worx received CONNACK
2023.04.19 13:38:22 4: MQTT2_Worx received SUBACK
2023.04.19 13:38:22 4: MQTT2_Worx received PUBLISH
2023.04.19 13:40:04 4: MQTT2_Worx received PUBLISH
2023.04.19 13:44:19 4: MQTT2_Worx received PUBLISH
2023.04.19 13:58:43 4: MQTT2_Worx received PUBLISH
2023.04.19 14:00:09 4: MQTT2_Worx received PUBLISH
2023.04.19 14:00:10 4: MQTT2_Worx received PUBLISH
2023.04.19 14:01:08 4: MQTT2_Worx received PINGRESP
2023.04.19 14:04:51 4: MQTT2_Worx received PUBLISH
2023.04.19 14:11:08 4: MQTT2_Worx received PINGRESP
2023.04.19 14:21:08 4: MQTT2_Worx received PINGRESP
2023.04.19 14:21:42 4: MQTT2_Worx received PUBLISH
2023.04.19 14:31:08 4: MQTT2_Worx received PINGRESP
2023.04.19 14:41:08 4: MQTT2_Worx received PINGRESP
2023.04.19 14:50:17 4: MQTT2_Worx received PUBLISH
2023.04.19 14:51:08 4: MQTT2_Worx received PINGRESP
2023.04.19 14:59:41 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
2023.04.19 14:59:42 4: MQTT2_Worx: Got auth info, type refresh_token
2023.04.19 14:59:42 4: MQTT2_Worx: Got userId: 376946
2023.04.19 14:59:42 4: MQTT2_Worx: Got device info
2023.04.19 14:59:42 4: IP: iot.eu-west-1.worxlandroid.com -> 54.75.228.101
2023.04.19 14:59:43 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.19 14:59:43 4: MQTT2_Worx received CONNACK
2023.04.19 14:59:43 4: MQTT2_Worx received SUBACK
2023.04.19 14:59:43 4: MQTT2_Worx received PUBLISH
2023.04.19 15:00:12 4: MQTT2_Worx received PUBLISH
2023.04.19 15:00:47 4: MQTT2_Worx received PUBLISH
2023.04.19 15:06:41 4: MQTT2_Worx received PUBLISH
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 19 April 2023, 15:15:13
Zitat von: rudolfkoenig am 19 April 2023, 14:48:06
Zitatkann ich sonst noch etwas testen?
Einen Anmeldeversuch starten mit "attr global verbose 5", und das komplette Log hier posten.

Man kann dafuer auch ein separates FHEM verwenden:
- in /opt/fhem fhem.cfg.landroid erstellen mit folgenden Inhalt:
Zitatdefine m2c MQTT2_CLIENT XX
attr m2c connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
attr m2c username user@host
set m2c password geheim
- FHEM im Terminal starten mit "perl fhem.pl -d fhem.cfg.landroid", und die Ausgabe hier als Datei anhaengen

Hallo Rudi,

anbei das wie von Dir beschrieben erstellte Log. Vielleicht kannst Du etwas erkennen was nicht normal ist.
Status auch hier: das device steht auf disconnected.

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 19 April 2023, 15:32:19
@fred_feuerstein
Bei mir ist die naechste Zeile im Log "alpn_selected:mqtt", du kriegst vmtl ein Timeout (war nicht mehr in der angehaengten Datei).
Welche openssl version hast du?
Was meldet "/usr/bin/telnet iot.eu-west-1.worxlandroid.com 443" ?


@frober:
Gibts das Problem auch mit der o.g. fhem.cfg.landroid?
Neben der verbose 5 Ausgabe interessiert mich eher die Ausgabe von
fhemdebug timerList
{ join("\n", keys %readyfnlist) }
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 19 April 2023, 16:01:24
@Rudi, mit fhem.cfg.landroid habe ich das Problem nicht. Nach 6 Min kam eine Publish, sonst ist es ruhig.
Edit: habe es nochmal mit echo am laufen, da das Terminal nicht so viele Daten anzeigt. Falls du die Datei auch möchtest...

verbose 5, direkt nach Neustart, nach dem 3. reconnect habe ich disabled:
2023.04.19 15:19:29 0: Server started with 393 defined entities (fhem.pl:27410/2023-04-07 perl:5.028001 os:linux user:fhem pid:31581)
2023.04.19 15:19:30 1: 127.0.0.1:1883 reappeared (MQTT2_Client)
2023.04.19 15:22:24 4: MQTT2_Worx: reusing the acess_token
2023.04.19 15:22:25 5: {"id":...
2023.04.19 15:22:25 4: MQTT2_Worx: Got userId: xxx
2023.04.19 15:22:25 5: [{"id":.....
2023.04.19 15:22:25 4: MQTT2_Worx: Got device info
2023.04.19 15:22:25 5: MQTT2_Worx: discarding DISCONNECT (224)(0)
2023.04.19 15:22:25 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.04.19 15:22:25 4: IP: iot.eu-west-1.worxlandroid.com -> 52.31.10.108
2023.04.19 15:22:25 5: MQTT2_Worx: sending CONNECT (16)(188)....
2023.04.19 15:22:25 5: DevIo_SimpleWrite MQTT2_Worx: .....
2023.04.19 15:22:25 5: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.19 15:22:25 4: MQTT2_Worx received CONNACK
2023.04.19 15:22:25 5: MQTT2_Worx: received CONNACK (0)(0)
2023.04.19 15:22:25 5: MQTT2_Worx: sending SUBSCRIBE (130)#(0)9(0)(30)PRM100/xxx/commandOut(0)
2023.04.19 15:22:26 4: MQTT2_Worx received SUBACK
2023.04.19 15:22:26 5: MQTT2_Worx: received SUBACK (0)9(0)
2023.04.19 15:22:26 5: MQTT2_Worx: sending PUBLISH 0!(0)(29)PRM100/xxx/commandIn{}
2023.04.19 15:22:26 4: MQTT2_Worx received PUBLISH
2023.04.19 15:22:26 5: MQTT2_Worx: received PUBLISH (0)(30)PRM100/xxx/commandOut{"cfg":....
2023.04.19 15:22:26 5: MQTT2_Worx: dispatch autocreate=simple\000WX_USER_....
2023.04.19 15:23:24 4: MQTT2_Worx: reusing the acess_token
2023.04.19 15:23:25 5: {"id":...
2023.04.19 15:23:25 4: MQTT2_Worx: Got userId: xxx
2023.04.19 15:23:25 5: [{"id":....
2023.04.19 15:23:25 4: MQTT2_Worx: Got device info
2023.04.19 15:23:25 5: MQTT2_Worx: discarding DISCONNECT (224)(0)
2023.04.19 15:23:25 5: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
2023.04.19 15:23:25 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.04.19 15:23:25 4: IP: iot.eu-west-1.worxlandroid.com -> 52.31.10.108
2023.04.19 15:23:25 5: MQTT2_Worx: sending CONNECT (16)(188)....
2023.04.19 15:23:25 5: DevIo_SimpleWrite MQTT2_Worx: ...
2023.04.19 15:23:25 5: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.19 15:23:25 4: MQTT2_Worx received CONNACK
2023.04.19 15:23:25 5: MQTT2_Worx: received CONNACK (0)(0)
2023.04.19 15:23:25 5: MQTT2_Worx: sending SUBSCRIBE (130)#(0)9(0)(30)PRM100/xxx/commandOut(0)
2023.04.19 15:23:26 4: MQTT2_Worx received SUBACK
2023.04.19 15:23:26 5: MQTT2_Worx: received SUBACK (0)9(0)
2023.04.19 15:23:26 5: MQTT2_Worx: sending PUBLISH 0!(0)(29)PRM100/xxx/commandIn{}
2023.04.19 15:23:26 4: MQTT2_Worx received PUBLISH
2023.04.19 15:23:26 5: MQTT2_Worx: received PUBLISH (0)(30)PRM100/xxx/commandOut{"cfg":....
2023.04.19 15:23:26 5: MQTT2_Worx: dispatch autocreate=simple\000WX_USER_....
2023.04.19 15:24:24 4: MQTT2_Worx: reusing the acess_token
2023.04.19 15:24:25 5: {"id":....
2023.04.19 15:24:25 4: MQTT2_Worx: Got userId: xxx
2023.04.19 15:24:25 5: [{"id":....
2023.04.19 15:24:25 4: MQTT2_Worx: Got device info
2023.04.19 15:24:25 5: MQTT2_Worx: discarding DISCONNECT (224)(0)
2023.04.19 15:24:25 5: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT2_Worx)
2023.04.19 15:24:25 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.04.19 15:24:25 4: IP: iot.eu-west-1.worxlandroid.com -> 34.247.128.29
2023.04.19 15:24:25 5: MQTT2_Worx: sending CONNECT (16)(188)....
2023.04.19 15:24:25 5: DevIo_SimpleWrite MQTT2_Worx: ....
2023.04.19 15:24:25 5: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT2_Worx)
2023.04.19 15:24:26 4: MQTT2_Worx received CONNACK
2023.04.19 15:24:26 5: MQTT2_Worx: received CONNACK (0)(0)
2023.04.19 15:24:26 5: MQTT2_Worx: sending SUBSCRIBE (130)#(0)9(0)(30)PRM100/xxx/commandOut(0)
2023.04.19 15:24:26 4: MQTT2_Worx received SUBACK
2023.04.19 15:24:26 5: MQTT2_Worx: received SUBACK (0)9(0)
2023.04.19 15:24:26 5: MQTT2_Worx: sending PUBLISH 0!(0)(29)PRM100/xxx/commandIn{}
2023.04.19 15:24:26 4: MQTT2_Worx received PUBLISH
2023.04.19 15:24:26 5: MQTT2_Worx: received PUBLISH (0)(30)PRM100/xxx/commandOut{"cfg":....
2023.04.19 15:24:26 5: MQTT2_Worx: dispatch autocreate=simple\000WX_USER_....
2023.04.19 15:25:16 5: MQTT2_Worx: sending DISCONNECT (224)(0)
2023.04.19 15:25:16 5: DevIo_SimpleWrite MQTT2_Worx: e000

Timerlist:
2023-04-19 15:43:30.96844 SIGNALduino_HandleWriteQueue 
2023-04-19 15:43:31.10553 ModbusTCPServer_Poll 
2023-04-19 15:43:31.60214 FHEM::readingsWatcher::OnTimer readingsWatcher
2023-04-19 15:43:31.89910 MQTT2_SERVER_keepaliveChecker MQTT2_Server
2023-04-19 15:43:34.47866 SYSMON_Update sysmon
2023-04-19 15:43:34.86913 LUXTRONIK2_GetUpdate Heizung
2023-04-19 15:43:38.95890 OWMULTI_GetValues USV_Batterie
2023-04-19 15:43:39.02111 OWTHERM_GetValues USV_BatterieTemperatur
2023-04-19 15:43:39.36146 OWSWITCH_GetValues USV_Status
2023-04-19 15:43:53.20958 ALP600_resetToIdle Hoftor
2023-04-19 15:43:59.73608 DbLog_execMemCacheAsync syncdb
2023-04-19 15:44:00.73629 MQTT2_CLIENT_keepalive MQTT2_Client
2023-04-19 15:44:03.48577 HttpUtils_TimeoutErr 
2023-04-19 15:44:05.20132 LaCrosseGateway_OnConnectTimer LaCrosseGateway
2023-04-19 15:44:11.79454 at_Exec at_Teichfoto
2023-04-19 15:44:24.94824 FW_closeInactiveClients 
2023-04-19 15:44:30.00000 Twilight_sunpos Sonnenstand_sunpos
2023-04-19 15:44:30.19009 GetUpdate 
2023-04-19 15:44:30.65462 SIGNALduino_KeepAlive sduino
2023-04-19 15:44:39.70316 FRITZBOX_Readout_Start 
2023-04-19 15:45:11.96903 at_Exec I2C_USV_get
2023-04-19 15:45:27.65170 OWX_Kick USV_OW
2023-04-19 15:45:29.48289 DbLog_execMemCacheAsync logdb
2023-04-19 15:47:44.19057 GetConnectStatus MyGW_RS485
2023-04-19 15:49:10.10009 at_Exec at_FHEM.save
2023-04-19 15:49:41.38546 PRESENCE_StartLocalScan SolarlogWeb_ping
2023-04-19 15:49:41.45135 PRESENCE_StartLocalScan Solarlog_ping
2023-04-19 15:52:46.39838 MQTT2_CLIENT_keepalive MQTT2_Worx
2023-04-19 15:53:27.70190 watchdog_Trigger w_LGW
2023-04-19 15:59:55.00000 statistics_PeriodChange Statistik
2023-04-19 16:04:30.72998 watchdog_Trigger w_PCA301
2023-04-19 16:09:13.01375 watchdog_Trigger w_nanoCUL
2023-04-19 16:19:25.86539 at_Exec at_Lockstatus
2023-04-19 16:19:25.92996 at_Exec at_mowerActiveZone
2023-04-19 16:19:25.93566 at_Exec at_Bodenfeuchte
2023-04-19 16:19:33.48258 FHEM::Astro::Update Astro
2023-04-19 16:19:41.66102 Calendar_Wakeup GoogelKalender
2023-04-19 16:19:46.36654 GetUpdate Wetter
2023-04-19 16:21:12.07588 MYSENSORS::DEVICE::timeoutAlive MYSENSOR_3
2023-04-19 16:35:44.53158 MYSENSORS::DEVICE::timeoutAlive MYSENSOR_4
2023-04-19 16:36:06.29440 MYSENSORS::DEVICE::timeoutAlive MYSENSOR_2
2023-04-19 16:38:56.67633 MYSENSORS::DEVICE::timeoutAlive MYSENSOR_1
2023-04-19 19:28:24.95000 Twilight_fireEvent Sonnenstand_ss_weather
2023-04-19 20:18:49.96000 Twilight_fireEvent Sonnenstand_ss_indoor
2023-04-19 20:18:49.97000 Twilight_fireEvent Sonnenstand_ss
2023-04-19 20:58:20.00000 at_Exec at_SS
2023-04-19 20:58:20.98000 Twilight_fireEvent Sonnenstand_ss_civil
2023-04-19 21:19:45.04224 PROPLANTA_Start AgrarWetter
2023-04-19 21:40:34.99000 Twilight_fireEvent Sonnenstand_ss_naut
2023-04-19 22:27:44.00000 Twilight_fireEvent Sonnenstand_ss_astro
2023-04-19 23:00:00.00000 at_Exec at_deleteNetzfrequenz
2023-04-19 23:58:00.00000 at_Exec at_JahresStatistik
2023-04-20 00:00:00.00000 at_Exec SQL_Groesse
2023-04-20 00:00:01.00000 FileLog_dailySwitch 
2023-04-20 00:00:01.00000 Twilight_Midnight Sonnenstand_Midnight
2023-04-20 00:00:02.35892 holiday_refresh 
2023-04-20 00:00:03.25846 DOIFtoolsCounterReset 
2023-04-20 00:00:05.00000 WDT_SetTimerOfDay wdt_Zirkulation_WW_midnight
2023-04-20 00:01:00.00000 at_Exec FHEMBackup
2023-04-20 00:10:00.00000 at_Exec at_MinMaxTemp
2023-04-20 00:20:00.00000 at_Exec at_gruenLandTemp
2023-04-20 00:25:00.00000 at_Exec at_GruenlandTemp2
2023-04-20 00:30:00.00000 at_Exec at_syncDb
2023-04-20 00:30:00.00000 at_Exec at_Rollo_Kontrolle
2023-04-20 01:00:00.00000 at_Exec at_BackupDb
2023-04-20 01:00:00.00000 at_Exec FHEMBackup_off
2023-04-20 04:10:00.00000 DOIF_TimerTrigger 
2023-04-20 04:50:00.00000 DOIF_TimerTrigger 
2023-04-20 05:00:00.00000 at_Exec at_Beregnung
2023-04-20 05:10:00.00000 DOIF_TimerTrigger 
2023-04-20 06:00:00.00000 at_Exec at_deleteOld
2023-04-20 06:50:00.00000 DOIF_TimerTrigger 
2023-04-20 07:30:00.00000 DOIF_TimerTrigger 
2023-04-20 07:45:00.00000 DOIF_TimerTrigger 
2023-04-20 07:50:00.00000 DOIF_TimerTrigger 
2023-04-20 08:00:00.00000 DOIF_TimerTrigger 
2023-04-20 13:00:00.00000 at_Exec at_Desinfektion_WW
2023-04-20 14:00:00.00000 DOIF_TimerTrigger 
2023-04-20 15:30:00.00000 DOIF_TimerTrigger

Nachtrag:
Die Meldung kommt doch noch mit der aktuellen Version, aber nicht immer:
2023.04.19 15:19:24 1: ERROR: Landroid_connect MQTT2_Worx - no username attributeAuch funktioniert ein connect (manuell) erst nach 1-2 Minuten nach Neustart. Autoconnect funktioniert nicht, da
2023.04.19 15:19:30 1: 127.0.0.1:1883 reappeared (MQTT2_Client)Alles von deinem aktuellen Original.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 19 April 2023, 18:35:48
Zitat@Rudi, mit fhem.cfg.landroid habe ich das Problem nicht.
Wenn man ein FHEMWEB und ein telnet hinzufuegt, dann auch nicht.
D.h. durch einen der anderen Module oder lokalen Konfiguration wird MQTT2_Worx in readyfnlist eingetragen.
Mit dessen Hilfe wird gepollt wann der Server wieder verfuegbar ist, nach einem connect sollte unser MQTT2_CLIENT nicht mehr eingetragen sein. Als einer der letzten Befehle in Landroid_connect4 werden "wir" sicherheitshalber ausgetragen.
Apropos: diese Liste vermisse ich, s.o.: { join("\n", keys %readyfnlist) }


ZitatERROR: Landroid_connect MQTT2_Worx - no username attribute
Kommt das vor der "Server started" Zeile?
Wenn ja, dann haett ich gerne ein verbose 5 Log bis zu diesem Fehler.
Habe das Gefuehl, dass irgendeiner der anderen Module die Initialisierungsreihenfolge sabotiert.


ZitatAutoconnect funktioniert nicht, da [...] 127.0.0.1:1883 reappeared (MQTT2_Client)
Das verstehe ich nicht. Wo kommt 127.0.0.1 her? Und wieso siehst Du eine Verbindung?
Ich habe jetzt testweise einen weiteren MQTT2_CLIENT nach localhost/mosquitto hinzugefuegt, ich sehe keine Nebenwirkungen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 19 April 2023, 19:59:53
Zitat von: rudolfkoenig am 19 April 2023, 18:35:48
Zitat@Rudi, mit fhem.cfg.landroid habe ich das Problem nicht.
Wenn man ein FHEMWEB und ein telnet hinzufuegt, dann auch nicht.
Auch nicht, log kommt per Mail.
Es wird kein Device angelegt, liegt das am Debug?

ZitatD.h. durch einen der anderen Module oder lokalen Konfiguration wird MQTT2_Worx in readyfnlist eingetragen.
Mit dessen Hilfe wird gepollt wann der Server wieder verfuegbar ist, nach einem connect sollte unser MQTT2_CLIENT nicht mehr eingetragen sein. Als einer der letzten Befehle in Landroid_connect4 werden "wir" sicherheitshalber ausgetragen.
Apropos: diese Liste vermisse ich, s.o.: { join("\n", keys %readyfnlist) }
Sorry, hatte das als eine Zeile gelesen...
MyGW_RFM69./dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A9UXX3FZ-if00-port0
MQTT2_Worx.XX
MQTT2_Worx.iot.eu-west-1.worxlandroid.com:443
JL_HX2272./dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A103NNEJ-if00-port0

Zitat
ZitatERROR: Landroid_connect MQTT2_Worx - no username attribute
Kommt das vor der "Server started" Zeile?
Wenn ja, dann haett ich gerne ein verbose 5 Log bis zu diesem Fehler.
Habe das Gefuehl, dass irgendeiner der anderen Module die Initialisierungsreihenfolge sabotiert.

noch davor, Log sende ich dir per Mail (~10t Zeilen mit Passwörter etc.)

Zitat
ZitatAutoconnect funktioniert nicht, da [...] 127.0.0.1:1883 reappeared (MQTT2_Client)
Das verstehe ich nicht. Wo kommt 127.0.0.1 her? Und wieso siehst Du eine Verbindung?
Ich habe jetzt testweise einen weiteren MQTT2_CLIENT nach localhost/mosquitto hinzugefuegt, ich sehe keine Nebenwirkungen.
OK, das habe ich vermutlich missinterpretiert, ich habe ein Device namens MQTT2_Client, das historisch noch auf Mosquitto zugreift.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 20 April 2023, 10:41:16
Moin,

habe soeben wieder ein Update und dann ein connect durchgeführt. Jetzt funktioniert irgendwie gar nichts mehr. Nicht mal die "Stammdaten" werden im Mower-Device aktualisiert und im Log gibt es nur diesen einen Eintrag:

2023.04.20 10:36:20 5: MQTT_Worx: discarding DISCONNECT (224)(0)
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 20 April 2023, 11:01:03
Zitat von: efyzz am 20 April 2023, 10:41:16Moin,

habe soeben wieder ein Update und dann ein connect durchgeführt. Jetzt funktioniert irgendwie gar nichts mehr. Nicht mal die "Stammdaten" werden im Mower-Device aktualisiert und im Log gibt es nur diesen einen Eintrag:

2023.04.20 10:36:20 5: MQTT_Worx: discarding DISCONNECT (224)(0)

Benutzt du wirklich noch Jessie?

Auch bei dir
ZitatWelche openssl version hast du?
Was meldet "/usr/bin/telnet iot.eu-west-1.worxlandroid.com 443" ?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 20 April 2023, 11:49:02
Zitatund im Log gibt es nur diesen einen Eintrag:
Ich will nicht bezweifeln, dass es diesen Eintrag gibt, habe aber Probleme zu glauben, dass es "nur" diesen gibt.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 20 April 2023, 14:33:50
So Leute. Was soll ich sagen. Es funktioniert wieder alles !!

Die Frage von Rudi:

Zitat von: rudolfkoenig am 19 April 2023, 15:32:19@fred_feuerstein
Bei mir ist die naechste Zeile im Log "alpn_selected:mqtt", du kriegst vmtl ein Timeout (war nicht mehr in der angehaengten Datei).
Welche openssl version hast du?
Was meldet "/usr/bin/telnet iot.eu-west-1.worxlandroid.com 443" ?

war die richtige Spur!

Tausend Dank an alle Beteiligten, insbesondere frober und rudolfkoenig!

Mein Raspberry war schon etwas betagt und lief tatsächlich noch mit Jessie. Man konnte dort auch nicht mehr ohne weiteres alle Pakete aktualisieren. Beim Versuch mit anderen Quellen hatte ich mir dann gestern noch Jessie komplett zerstört. Also musste ich ran und von vorne anfangen. Habe also nun "bullseye" als Raspberry OS. Backup von fhem mache ich täglich und konnte also mit dem Stand vom 18.04. neu aufsetzen. Schwierig genug, wenn man sonst systemseitig nichts dokumentiert hat. Gerade wenn es um abhängigkeiten und libs etc. geht. (Bose Soundtouch, Xiaomi Staubsauger, diverse CULs, Zwave RaZberry Modul, usw.) Alles in allem knapp 300 Devices (!) :)
Aber mittlerweile bin ich geschätzt bei über 80% meiner fhem Einrichtung :)

So, aber was direkt funktionierte war, dass der MQTT Client für Worx dauerhaft auf "opened" stand und auch direkt alle benötigten Readings (die mir vorher fehlten) im Mower-Device angelegt hat.

Nun habe ich alle Einstellungen vom Mäher Device vom letzten Jahr auf das neue übertragen, alle DOIFs und sonstigen Programmierungen, Plots und Anzeigen angepasst und soeben habe ich den Mäher erstmals wieder mit dem Befehl "StartMower" losgeschickt!
Mal sehen wie es mit der Aktualisierung der Readings dann aussieht, gerade bzgl. Batterie etc.
Bin aber zuversichtlich.

Ist denke ich auch bei efyzz das Problem mit einer viel zu alten Version...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 20 April 2023, 14:39:47
Ich bin gerade etwas überfordert/verwirrt.
Wie ist denn aktuell der Stand?
Fertig? Einsatzfähig? Testbetrieb? Gibt's nur Readings oder funktioniert auch die Steuerung?
Ich blicke gerade nicht durch ???

Was hat es mit dem XX auf sich?
Sollte ich das autocreate-Attribut setzen?


define m2c MQTT2_CLIENT XX
attr m2c connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
attr m2c username user@host
set m2c password geheim
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 20 April 2023, 14:53:57
Zitat von: remo am 20 April 2023, 14:39:47Ich bin gerade etwas überfordert/verwirrt.
Wie ist denn aktuell der Stand?
Fertig? Einsatzfähig? Testbetrieb? Gibt's nur Readings oder funktioniert auch die Steuerung?
Ich blicke gerade nicht durch ???

Was hat es mit dem XX auf sich?
Sollte ich das autocreate-Attribut setzen?


define m2c MQTT2_CLIENT XX
attr m2c connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
attr m2c username user@host
set m2c password geheim


Aktuell, funktioniert es soweit.
XX ist nur ein Platzhalter für die Definition, da hier die URL nicht benötigt wird. Diese wird über "connectFn" ermittelt.
Username + Passwort sind deine Zugangsdaten.

Betriebssystem ab Stretch
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 20 April 2023, 15:25:51
Ja, bin super happy, dass es wieder läuft :)

Gerade erste über fhem gestartete Ausfahrt beendet und lädt nun wieder:
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 20 April 2023, 16:34:42
Zitat von: frober am 20 April 2023, 14:53:57Betriebssystem ab Stretch

Neeeiiin! :'(
Never touch a running system oder wie war das?

Also liegt es an der openssl version?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 20 April 2023, 16:49:25
Wahrscheinlich. Evtl. auch noch andere libs.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 21 April 2023, 08:14:50
Zitat von: frober am 20 April 2023, 14:53:57
Zitat von: remo am 20 April 2023, 14:39:47Ich bin gerade etwas überfordert/verwirrt.
Wie ist denn aktuell der Stand?
Fertig? Einsatzfähig? Testbetrieb? Gibt's nur Readings oder funktioniert auch die Steuerung?
Ich blicke gerade nicht durch ???

Was hat es mit dem XX auf sich?
Sollte ich das autocreate-Attribut setzen?


define m2c MQTT2_CLIENT XX
attr m2c connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
attr m2c username user@host
set m2c password geheim


Aktuell, funktioniert es soweit.
XX ist nur ein Platzhalter für die Definition, da hier die URL nicht benötigt wird. Diese wird über "connectFn" ermittelt.
Username + Passwort sind deine Zugangsdaten.

Betriebssystem ab Stretch



Genial.
Danke für eure Arbeit!!!!


Hier ein List:

Internals:
   BUF       
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        XX
   DeviceName iot.eu-west-1.worxlandroid.com:443
   FD         8
   FUUID      xxxxxxxxxx
   NAME       m2c
   NR         908
   PARTIAL   
   SSL        1
   STATE      opened
   TYPE       MQTT2_CLIENT
   WBCallback
   autocreate 1
   clientId   xxxxxxxxxx
   devioLoglevel 4
   eventCount 3
   landroidType worx
   lastMsgTime 1682057471.67001
   mqttEndpoint iot.eu-west-1.worxlandroid.com
   nextOpenDelay 180
   nrConnects 1
   userId     xxxxxxxxxx
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2023-04-21 08:11:11   state           opened
     2023-04-21 08:08:55   wxid            xxxxxxxxxx
   sslargs:
     SSL_alpn_protocols mqtt
Attributes:
   autocreate simple
   connectFn  {use LandroidUtils;Landroid_connect($NAME,"worx",1)}
   execAfterConnect { my $h=$defs{$NAME};MQTT2_CLIENT_doPublish($h,'PRM100/xxxxxxxxxx/commandIn','{}')}
   keepaliveTimeout 600
   maxFailedConnects 20
   nextOpenDelay 180
   room       TEST
   subscriptions PRM100/xxxxxxxxxx/commandOut
   username   xxxxxxxxxx


State ist opened
WXID ist auch gesetzt.

Mehr Readings bekomme ich aber leider nicht ...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 21 April 2023, 09:11:49
Zitat von: remo am 21 April 2023, 08:14:50State ist opened
WXID ist auch gesetzt.

Mehr Readings bekomme ich aber leider nicht ...

Du solltest ein neues MQTT2_Device bekommen haben, darin findest du die Readings.
Ansonsten wäre ein Logauszug hilfreich...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 21 April 2023, 09:43:00
Hallo Rudi,

die Korrektur im MQTT2_Client funktioniert, Error-Meldung ist weg, Cient geht direkt nach Neustart auf opened und das ständige dis-/connect ist auch beseitig.

Leider gibt es noch ein Problem, hatte ich schon mit der fhem.cfg.landroid geschrieben. Es wird kein Device mehr angelegt.
Ich habe es gerade auf dem Testsystem nachgestellt.

verbose 5
Zitat2023.04.21 09:28:26 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2023.04.21 09:28:47 5: {"token_type":...
2023.04.21 09:28:47 4: MQTT_Worx: Got auth info, type password
2023.04.21 09:28:47 5: {"id":...
2023.04.21 09:28:47 4: MQTT_Worx: Got userId: xxx
2023.04.21 09:28:48 5: [{"id":...
2023.04.21 09:28:48 4: MQTT_Worx: Got device info
2023.04.21 09:28:48 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2023.04.21 09:28:48 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.04.21 09:28:48 4: IP: iot.eu-west-1.worxlandroid.com -> 34.254.38.56
2023.04.21 09:28:49 5: MQTT_Worx: sending CONNECT (16)(196)(11)(0)(6)MQIsdp(3)(130)....
2023.04.21 09:28:49 5: DevIo_SimpleWrite MQTT_Worx: ....
2023.04.21 09:28:49 5: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.04.21 09:28:49 4: MQTT_Worx received CONNACK
2023.04.21 09:28:49 5: MQTT_Worx: received CONNACK (0)(0)
2023.04.21 09:28:49 5: MQTT_Worx: sending SUBSCRIBE (130)#(0)(22)(0)(30)PRM100/xxxx/commandOut(0)
2023.04.21 09:28:49 4: MQTT_Worx received SUBACK
2023.04.21 09:28:49 5: MQTT_Worx: received SUBACK (0)(22)(0)
2023.04.21 09:28:49 5: MQTT_Worx: sending PUBLISH 0!(0)(29)PRM100/xxxx/commandIn{}
2023.04.21 09:28:49 4: MQTT_Worx received PUBLISH
2023.04.21 09:28:49 5: MQTT_Worx: received PUBLISH (0)(30)PRM100/.....
2023.04.21 09:28:49 5: MQTT_Worx: dispatch autocreate=no\000WX_USER_....
2023.04.21 09:29:58 5: MQTT_Worx: sending DISCONNECT (224)(0)
2023.04.21 09:29:58 5: DevIo_SimpleWrite MQTT_Worx: e000

Sollte anstelle von "MQIsdp" nicht "MQTT" stehen?
"autocreate=no" obwohl ich autocreate auf 1 habe


Nachtrag:
auch mit einem manuell gesetzten
attr MQTT_Worx autocreate simplewird kein Device angelegt
2023.04.21 09:49:37 5: MQTT_Worx: dispatch autocreate=simple\000WX_USER_....
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 21 April 2023, 10:11:30
Zitat von: frober am 21 April 2023, 09:11:49
Zitat von: remo am 21 April 2023, 08:14:50State ist opened
WXID ist auch gesetzt.

Mehr Readings bekomme ich aber leider nicht ...

Du solltest ein neues MQTT2_Device bekommen haben, darin findest du die Readings.
Ansonsten wäre ein Logauszug hilfreich...


Kann ich leider nicht bestätigen...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 21 April 2023, 10:22:17
Zitat von: remo am 21 April 2023, 10:11:30Kann ich leider nicht bestätigen...

siehe meinen vorherigen Post...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 21 April 2023, 11:12:32
@Rudi, keine Ahnung, ob das beabsichtigt ist.

Ohne ein attr MQTT_Worx autocreate simple ist {$defs{MQTT2_Worx}{autocreate}} undef.
Mit bekomme ich eine 0 oder 1, je nach "Einstellung" von "connectFn".

Device wird aber aktuell so oder so nicht angelegt.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 21 April 2023, 11:20:50
ZitatLeider gibt es noch ein Problem, hatte ich schon mit der fhem.cfg.landroid geschrieben. Es wird kein Device mehr angelegt.
Mit der gezeigten fhem.cfg.landroid sollte man nur die MQTT Verbindung testen, bzw. Landroid zu den eigenen Konfiguration hinzufuegen.
Damit ein Device angelegt wird, braucht man "define a autocreate".
Damit das neu angelegte Device (und fuer uns wichtiger, refresh_token) gespeichert wird: "attr global statefile ./log/fhem.save".
Damit man ein Frontend zum anschauen hat: "define WEB FHEMWEB 8083 global".
Alle drei sind Teil der ausgelieferten fhem.cfg.

Mit den erwaehnten Zeilen wird bei mir ein Device angelegt.
Sehe gerade: das von LandroidUtils.pm automatisch gesetzte readingsList war bis zum naechsten FHEM-Neustart inaktiv, d.h. die per MQTT gelieferten Device-Infos wurden nicht eingetragen.
Das habe ich jetzt gefixt.

ZitatSollte anstelle von "MQIsdp" nicht "MQTT" stehen?
"MQIsdp(3)" => MQTT Version 3.1, "MQTT(4)" => MQTT Version 3.1.1.
Kann man aendern mit der mqttVersion Attribut, offensichtlich ist das der Gegenseite aber egal.


Zitat"autocreate=no" obwohl ich autocreate auf 1 habe
"autocreate=no" zeigt die Voreinstellung bei MQTT2_Client, autocreate wird aber besser von LandroidUtils.pm erledigt.
Man kann es zwar auch aendern, das so erzeugte Devicename beinhaltet aber die MQTT-ClientId, was in diesem Fall haesslich ist.
Und wenn MQTT2_Client das Device anlegt, dann kann LandroidUtils die Ergebnisse von deviceInfo nicht (so einfach) eintragen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 21 April 2023, 12:16:03
Zitat von: rudolfkoenig am 21 April 2023, 11:20:50Mit der gezeigten fhem.cfg.landroid sollte man nur die MQTT Verbindung testen, bzw. Landroid zu den eigenen Konfiguration hinzufuegen.
Damit ein Device angelegt wird, braucht man "define a autocreate".
Damit das neu angelegte Device (und fuer uns wichtiger, refresh_token) gespeichert wird: "attr global statefile ./log/fhem.save".
Damit man ein Frontend zum anschauen hat: "define WEB FHEMWEB 8083 global".
Alle drei sind Teil der ausgelieferten fhem.cfg.
fhem.cfg.landroid betraf meinen Test mit Fhemweb und telnet, ok es war nicht alles definiert...


ZitatMit den erwaehnten Zeilen wird bei mir ein Device angelegt.
Sehe gerade: das von LandroidUtils.pm automatisch gesetzte readingsList war bis zum naechsten FHEM-Neustart inaktiv, d.h. die per MQTT gelieferten Device-Infos wurden nicht eingetragen.
Das habe ich jetzt gefixt.
Auch mit der aktuellen Version bekomme ich kein Device. Im Testsystem ist autocreate definiert, hat ja mit vorherigen Versionen auch funktioniert. Client und Device gelöscht, Neustart und von vorne angefangen mit autocreate 1. Kein Device...
Und Remo scheint das gleiche Problem zu haben...

Zitat"MQIsdp(3)" => MQTT Version 3.1, "MQTT(4)" => MQTT Version 3.1.1.
Kann man aendern mit der mqttVersion Attribut, offensichtlich ist das der Gegenseite aber egal.
MQTT Version 3.1.1. war mal in der LandroidUtil definiert, wenn es dem Sever egal ist...

Zitat
Zitat"autocreate=no" obwohl ich autocreate auf 1 habe
"autocreate=no" zeigt die Voreinstellung bei MQTT2_Client, autocreate wird aber besser von LandroidUtils.pm erledigt.
Man kann es zwar auch aendern, das so erzeugte Devicename beinhaltet aber die MQTT-ClientId, was in diesem Fall haesslich ist.
Und wenn MQTT2_Client das Device anlegt, dann kann LandroidUtils die Ergebnisse von deviceInfo nicht (so einfach) eintragen.
ok


komplett neu angelegt, nach Neustart:
define MQTT_Worx MQTT2_CLIENT xx
attr MQTT_Worx connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
attr MQTT_Worx execAfterConnect { my $h=$defs{$NAME};;MQTT2_CLIENT_doPublish($h,'PRM100/xxx/commandIn','{}')}
attr MQTT_Worx keepaliveTimeout 600
attr MQTT_Worx maxFailedConnects 20
attr MQTT_Worx nextOpenDelay 180
attr MQTT_Worx room MQTT
attr MQTT_Worx subscriptions PRM100/xxx/commandOut
attr MQTT_Worx username x@x.de
attr MQTT_Worx verbose 5
#  BUF       
#  CFGFN     
#  Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
#  ClientsKeepOrder 1
#  DEF        xx
#  DeviceName iot.eu-west-1.worxlandroid.com:443
#  FD        21
#  FUUID      64425fd1-f33f-ff70-976e-11214e11c2b777de
#  NAME      MQTT_Worx
#  NR        141
#  PARTIAL   
#  SSL        1
#  STATE      opened
#  TYPE      MQTT2_CLIENT
#  WBCallback
#  autocreate 1
#  clientId  WX/USER/....
#  devioLoglevel 5
#  eventCount 5
#  landroidType worx
#  lastMsgTime 1682071519.11238
#  mqttEndpoint iot.eu-west-1.worxlandroid.com
#  nextOpenDelay 180
#  nrConnects 2
#  userId    xxx
#  MatchList:
#    1:MQTT2_DEVICE ^.
#    2:MQTT_GENERIC_BRIDGE ^.
#  READINGS:
#    2023-04-21 12:05:18  state          opened
#    2023-04-21 12:05:18  wxid            xxxx
#  sslargs:
#    SSL_alpn_protocols mqtt
#
setstate MQTT_Worx opened
setstate MQTT_Worx 2023-04-21 12:05:17 .access_token xxx
setstate MQTT_Worx 2023-04-21 12:05:17 .expires_in 3600
setstate MQTT_Worx 2023-04-21 12:05:17 .refresh_token xxx
setstate MQTT_Worx 2023-04-21 12:05:17 .token_type Bearer
setstate MQTT_Worx 2023-04-21 12:05:18 state opened
setstate MQTT_Worx 2023-04-21 12:05:18 wxid xxx


2023.04.21 12:05:05 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2023.04.21 12:05:16 5: {"token_type":...
2023.04.21 12:05:17 4: MQTT_Worx: Got auth info, type password
2023.04.21 12:05:17 5: {"id":...
2023.04.21 12:05:17 4: MQTT_Worx: Got userId: xxx
2023.04.21 12:05:17 5: [{"id":...
2023.04.21 12:05:18 4: MQTT_Worx: Got device info
2023.04.21 12:05:18 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2023.04.21 12:05:18 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.04.21 12:05:18 4: IP: iot.eu-west-1.worxlandroid.com -> 52.17.153.4
2023.04.21 12:05:18 5: MQTT_Worx: sending CONNECT (16)(204)...
2023.04.21 12:05:18 5: DevIo_SimpleWrite MQTT_Worx: ...
2023.04.21 12:05:18 5: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.04.21 12:05:18 4: MQTT_Worx received CONNACK
2023.04.21 12:05:18 5: MQTT_Worx: received CONNACK (0)(0)
2023.04.21 12:05:18 5: MQTT_Worx: sending SUBSCRIBE (130)#(0)(21)(0)(30)PRM100/xxx/commandOut(0)
2023.04.21 12:05:18 4: MQTT_Worx received SUBACK
2023.04.21 12:05:18 5: MQTT_Worx: received SUBACK (0)(21)(0)
2023.04.21 12:05:18 5: MQTT_Worx: sending PUBLISH 0!(0)(29)PRM100/xxx/commandIn{}
2023.04.21 12:05:19 4: MQTT_Worx received PUBLISH
2023.04.21 12:05:19 5: MQTT_Worx: received PUBLISH (0)(30)PRM100/xxx/commandOut{"cfg":....
2023.04.21 12:05:19 5: MQTT_Worx: dispatch autocreate=no\000WX_USER_...
2023.04.21 12:06:11 4: MQTT_Worx received PUBLISH
2023.04.21 12:06:11 5: MQTT_Worx: received PUBLISH (0)(30)PRM100/xxx/commandOut{"cfg":...
2023.04.21 12:06:11 5: MQTT_Worx: dispatch autocreate=no\000WX_USER_...

Nachtrag:
defmod autocreate autocreate
attr autocreate autocreateThreshold .*:2:30
attr autocreate ignoreTypes CUL_WUL*|CUL_HOERMANN.*|FHT.*|CUL_WS.*

setstate autocreate active
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 21 April 2023, 16:16:33
Mal eine kleine Zwischenmeldung meinerseits:

Bei mir klappt diese Lösung mittlerweile seit meinem letzten Post einwandfrei - auch mit den zwischenzeitlichen Modifikationen.

Einen ganz herzliches Dankeschön an frober für die zielgerichteten Forschungen und vor allem an Rudi für seine Lösung und sein Engagement auch für nur einige wenige Nutzer! Danke!!!

... und Otto nicht zu vergessen mit seiner ursprünglichen investigativen Arbeit und seiner ersten reinen MQTT-Lösung!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 21 April 2023, 16:29:53
@Ralli, bezogen auf Nutzungsbreite von Fhem, dem Anteil der User die überhaupt einen Mähroboter habe und dann noch einen Worx, sehe ich das nicht als wenig. Zumal sich nicht alle melden oder bisher gemeldet haben.
Auch auf meinem Hauptsystem läuft es zuverlässig.

Auch von mir ein großes Danke an Rudi, ohne ihn wären wir nicht soweit gekommen. Und Ottos "Idee" natürlich...

@Rudi, ich habe die fhem.cfg.landroid ergänzt und bekomme auch hier kein Device angelegt.
Cfg. und debug habe ich dir per Mail gesendet.
 
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 21 April 2023, 18:01:48
Zitat von: remo am 21 April 2023, 10:11:30
Zitat von: frober am 21 April 2023, 09:11:49
Zitat von: remo am 21 April 2023, 08:14:50State ist opened
WXID ist auch gesetzt.

Mehr Readings bekomme ich aber leider nicht ...

Du solltest ein neues MQTT2_Device bekommen haben, darin findest du die Readings.
Ansonsten wäre ein Logauszug hilfreich...


Kann ich leider nicht bestätigen...

Also autocreate funktioniert, ich hatte
attr autocreate autocreateThreshold .*:2:30
das hat mich "blockiert".

Hast du autocreate aktiv?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: remo am 21 April 2023, 21:20:28
ZitatHast du autocreate aktiv?

Jetzt ja. Readings hab ich nun. Auch mit vernünftigen Werten. Ob die sich auch aktualisieren teste ich morgen.

Wie funktioniert das nun mit der Steuerung?!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 21 April 2023, 22:28:52
Zitat von: remo am 21 April 2023, 21:20:28
ZitatHast du autocreate aktiv?

Jetzt ja. Readings hab ich nun. Auch mit vernünftigen Werten. Ob die sich auch aktualisieren teste ich morgen.

Wie funktioniert das nun mit der Steuerung?!

Das Template funktioniert weiterhin.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 22 April 2023, 10:16:38
ZitatDas Template funktioniert weiterhin.
Welches Template ist das?
Sollte LandroidUtils.pm es beim Anlegen der Mower-Device es automatisch anwenden?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 22 April 2023, 10:58:04
Zitat von: rudolfkoenig am 22 April 2023, 10:16:38
ZitatDas Template funktioniert weiterhin.
Welches Template ist das?
Sollte LandroidUtils.pm es beim Anlegen der Mower-Device es automatisch anwenden?

Wäre sinnvoll, allerdings bekommt man damit keine Mowerdaten mehr, soweit ich das gesehen habe.
Sollte diese jemand benötigen, müsste er nach konfigurieren...

"worx_landroid"
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 22 April 2023, 20:42:27
Zitat von: frober am 22 April 2023, 10:58:04
Zitat von: rudolfkoenig am 22 April 2023, 10:16:38
ZitatDas Template funktioniert weiterhin.
Welches Template ist das?
Sollte LandroidUtils.pm es beim Anlegen der Mower-Device es automatisch anwenden?

Wäre sinnvoll, allerdings bekommt man damit keine Mowerdaten mehr, soweit ich das gesehen habe.
Sollte diese jemand benötigen, müsste er nach konfigurieren...

"worx_landroid"

Sonst keiner eine Meinung?

Mit Mowerdaten meine ich die Daten aus der API, nicht die Statusdaten per MQTT.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 23 April 2023, 06:57:11
Meines Erachtens sollte die jetzige Lösung mit LandroidUtils.pm sich darauf "beschränken", alles das in FHEM einzurichten bzw. aktuell zu halten, was rein für die Kommunikation mit dem Worx-Backend nötig und wichtig ist.

Daher ist meiner Meinung nach ein Automatismus für das Anwenden des Templates nicht nötig, das kann der Nutzer durchaus manuell tun, da er, wie du ja schreibst, sowieso noch nacharbeiten muss.

Wenn diese Anbindung nun zuverlässig funktioniert, sollten wir eher hingehen und das HowTo von Otto überarbeiten bzw. Otto bitten, das als veraltet zu kennzeichnen und ein neues HowTo erstellen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 23 April 2023, 08:41:06
Zitat von: Ralli am 23 April 2023, 06:57:11Meines Erachtens sollte die jetzige Lösung mit LandroidUtils.pm sich darauf "beschränken", alles das in FHEM einzurichten bzw. aktuell zu halten, was rein für die Kommunikation mit dem Worx-Backend nötig und wichtig ist.

Daher ist meiner Meinung nach ein Automatismus für das Anwenden des Templates nicht nötig, das kann der Nutzer durchaus manuell tun, da er, wie du ja schreibst, sowieso noch nacharbeiten muss.

Wenn diese Anbindung nun zuverlässig funktioniert, sollten wir eher hingehen und das HowTo von Otto überarbeiten bzw. Otto bitten, das als veraltet zu kennzeichnen und ein neues HowTo erstellen.

Mir ist es egal, ich dachte nur an die neuen User.

Das Nacharbeiten ist nicht zwingend nötig, die Daten aus der API hatten wir vorher auch nicht und sind für die Funktion als Reading nicht nötig.
Ich habe habe sie auch nicht, mir sind das zuviele Readings...bei mir steht autocreate auf 0 beim Aufruf von  LandroidUtils.


Otto hatte ich in einem vorherigen Post schon versucht zu "erreichen"...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: mabula am 23 April 2023, 10:13:45
Danke für die Arbeit am Landroid Modul. Es läuft soweit stabil. Allerdings der Parameter "cfg_sc_distm" hat es in sich. Er setzt den programmierten Zeitplan wie vermutet aus, führt aber zu einem "maxFailedConnects" und rasantem Überfüllen des Logs. Ich wollte den Wert von "cfg_sc_distm" angepasst an meine gemessene Niederschlagsmenge setzen. Als Test habe ich ihn auf 300 gesetzt. Der Wert zählt rückwärts (wie erwartet) erzeugt allerdings nicht jede Minute ein neues reading, eher alle 5 - 7 Minuten (Gedächtnis, log nicht vorhanden und derzeit mit "maxFailedConnects" gesperrt). beim Stand des Zähler von 147 meldete der Client fortwährend:
2023.04.23 09:47:24.001 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.04.23 09:47:25.001 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.04.23 09:47:25.378 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.04.23 09:47:26.001 2: maxFailedConnects (20) reached, no more reconnect attemtps
usw.
Werden zu viele Werte übermittelt, was passiert bei sehr langer Regenverzögerung, auch hier läuft ein Zähler?

Gruß
Hans-Jörg
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 23 April 2023, 10:28:33
Die "maxFailedConnects" bekommst du mit einem manuellen "set ... connect" oder Neustart weg.

Bist du sicher, dass man den Parameter selber setzen kann?
Falls ja, ist dein gesendeter Befehl richtig (Syntax, etc.)?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: mabula am 23 April 2023, 10:41:25
ZitatDie "maxFailedConnects" bekommst du mit einem manuellen "set ... connect" oder Neustart weg
Habe beides versucht. die "maxFailedConnects" bleiben.

ja, in den Readings wurde der Wert gesetzt, der count down wurde teilweise ausgeführt (bis zum disconnect) und der Zeitplan wurde ausgesetzt.

Der Befehl ist:
setList setraindelay:textField { my $payload = $EVENT;;$payload =~ s/$EVTPART0 //g;; qq(PRM100/98F4AB02DF3C/commandIn {"sc":{"distm":$payload}})}
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: mabula am 23 April 2023, 12:26:27
Es sieht aus, als ob der Server gleich nach dem reboot den Zugang für den Mqtt-Client blockiert hat.
Also warten.

Gruß Hans-Jörg
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 23 April 2023, 12:29:29
Zitatführt aber zu einem "maxFailedConnects" und rasantem Überfüllen des Logs
Nach dieser Meldung wird die Quelle der Wiederholungen ausgeschaltet, d.h. irgendwer schaltet sie wieder ein. Woemoglich inspiriert mich ein "attr global verbose 5" Log zwischen zwei solchen Meldungen, und/oder wenn man in 00_MQTT2_CLIENT.pm vor dieser Meldung die Zeile
stacktrace();
einfuegt.
Wofuer ist der Countdown da?
Da ich kein Geraet habe, kann ich das nicht so einfach selbst probieren.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: mabula am 23 April 2023, 13:52:31
In der "Garage" funktioniert der im Landroid eingebaute Regensensor nicht wirklich. Und es gibt im Landroid nur eine fest einstellbare Regenpause. Die neuen Möglichkeiten haben den Erfindergeist geweckt und ich wollte die Pause abhängig von der Regenmenge einstellen. Sumpfigen Rasen mäht er nicht wirklich gut. Der Parameter "cfg_sc_distm" pausiert den programmierten Zeitplan um die eingetragenen Minuten und der Wert wird im Landroid selbst runter gezählt. Das reading dieses Werts wird wie oben beschrieben alle 5 - 7 Minuten aktualisiert.
Wenn der Zugang wieder frei ist, kann ich das stacktrace zum Test einfügen, ein global verbose 5 wird bei den vielen Geräten wuchtig.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 23 April 2023, 16:21:38
Zitat von: frober am 22 April 2023, 10:58:04Wäre sinnvoll, allerdings bekommt man damit keine Mowerdaten mehr, soweit ich das gesehen habe.
Sollte diese jemand benötigen, müsste er nach konfigurieren...

"worx_landroid"

Ich muss mich korrigieren, ich habe es gerade von Grund auf getestet, die Mowerdaten aus der API bekommt man auch noch mit dem Template.
Aber ich denke Ralli hat Recht, wir(ich?) werden es in der Doku bei der Grunddefinition als Bsp. mit aufnehmen, dann kann jeder selbst entscheiden...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: mabula am 23 April 2023, 17:24:55
Leider ist der Zugang zum Server noch gesperrt. Habe kurz die 00_Mqtt2_Client angesehen und die Routine getKeyValue() gefunden. Da bin ich mit dem Viera Modul auch hereingefallen. Die Namen sind nicht wie bei $hash eineindeutig. Jemand hatte 2 TV's, dann wurden die Werte überschrieben. Ich habe dann folgenden Wert vor den Variablennamen gestellt.
my $nom = $hash->{TYPE}."_".$hash->{NAME}."_";
Damit war mein Name und Wert eineindeutig.

Kann dies das Problem sein?
Gruß Hans-Jörg
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 23 April 2023, 18:28:18
Zitat von: frober am 23 April 2023, 08:41:06Otto hatte ich in einem vorherigen Post schon versucht zu "erreichen"...
Ich lese immer noch mit, aber ich war in der allgemeinen "Rasenmäherstartphase" jetzt ein paar Tage weg :)
Ich muss das alles noch in Ruhe durcharbeiten, kann sein da brauche ich noch etwas. ;)   
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 23 April 2023, 18:30:00
Zitat von: Otto123 am 23 April 2023, 18:28:18
Zitat von: frober am 23 April 2023, 08:41:06Otto hatte ich in einem vorherigen Post schon versucht zu "erreichen"...
Ich lese immer noch mit, aber ich war in der allgemeinen "Rasenmäherstartphase" jetzt ein paar Tage weg :)
Ich muss das alles noch in Ruhe durcharbeiten, kann sein da brauche ich noch etwas. ;)   

Alles ok, schön dass du dich meldest, bin gerade dabei eine Wiki-Seite zu erstellen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 23 April 2023, 18:42:00
Zitat von: frober am 23 April 2023, 16:21:38
Zitat von: frober am 22 April 2023, 10:58:04Wäre sinnvoll, allerdings bekommt man damit keine Mowerdaten mehr, soweit ich das gesehen habe.
Sollte diese jemand benötigen, müsste er nach konfigurieren...

"worx_landroid"

Ich muss mich korrigieren, ich habe es gerade von Grund auf getestet, die Mowerdaten aus der API bekommt man auch noch mit dem Template.
Aber ich denke Ralli hat Recht, wir(ich?) werden es in der Doku bei der Grunddefinition als Bsp. mit aufnehmen, dann kann jeder selbst entscheiden...

Ah. Wollte gerade sagen. Bei mir werden die mowerdaten und die api Daten  aktualisiert.
Meine verschiedenen Doifs etc. Vom letzten und vorletzten Jahr funktionieren alle.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 23 April 2023, 19:03:59
ZitatDie Namen sind nicht wie bei $hash eineindeutig.
Kannst Du bitte dafuer ein Beispiel nennen?

Zitat[..]ein global verbose 5 wird bei den vielen Geräten wuchtig.
Ich wuerde nur die Ausgaben zwischen zwei Meldungen brauchen.
stacktrace wird vmtl. Zeile 849 in fhem.pl zeigen, die Frage ist, wer findet es fuer notwendig, MQTT_Worx in %readyfnlist wieder einzutragen.
stacktrace ist dann wichtig, wenn ich mich mit meiner Hypothese irren sollte.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: mabula am 23 April 2023, 19:34:33
Hallo Rudi,
Als ich das Modul 70_VIERA.pm für die verschlüsselte Verbindung geändert habe, brauchte ich Variable die restart überleben. Ich war und bin nicht so eingefuchst in FHEM, die einzige Lösung dir mir half war "setKeyValue" und "getKeyValue". Also zB. die Valiable $ENCRYPTION mit

setKeyValue("$ENCRYPTION", xyz)

gesichert und nach restart mit

getKeyValue("$ENCRYPTION")

wieder ausgelesen.
Jemand hatte 2 TVs (define TV1 Viera ... und define TV2 Viera ...) und setKeyValue hatte die unterschiedlichen Werte in den selben Speicherplatz geschrieben/überschrieben. Nach Modulspezifischer Namensergänzung war alles ok. Also diese Zeilen verwendet:

setKeyValue("$nom.ENCRYPTION", XYZ) und getKeyValue("$nom.ENCRYPTION")

Damit waren die Speicherplätze Modul spezifisch eindeutig.

Das mit global verbose 5 ist nun klar, nur zwischen den Ereignissen.


Gruß
Hans-Jörg
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 23 April 2023, 19:46:42
Bin nicht sicher, dass ich dein Beispiel verstehe, keine Ahnung, was $ENCRYPTION enthaelt.
ENCRYPTION (ohne $) ist natuerlich ein Problem.

Im Fall vom MQTT2_CLIENT ist die Ergaenzug der Schluessel (z.Zt. Name der Instanz) mit dem Typ ueberfluessig, da der Name einer Instanz in FHEM (z.Bsp MQTT_Worx) eindeutig ist.

Will sagen: ich sehe noch nicht, wann die aktuelle Implementierung zu einem Problem fuehrt.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 23 April 2023, 19:48:53
Premiere erfolgreich  8)

Ein ersten "Entwurf", Feinheiten fehlen noch...
https://wiki.fhem.de/wiki/Mähroboter:_Worx_Landroid,_Kress,_Landxcape (https://wiki.fhem.de/wiki/M%C3%A4hroboter:_Worx_Landroid,_Kress,_Landxcape)

...gefundene Fehler dürfen behalten werden, Verbesserungen sind erwünscht.  ;D

Edit: Link aktualisiert
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 23 April 2023, 20:15:09
Moin,

um das Dist-Upgrade auf meinem Raspberry zu vermeiden bzw. noch etwas hinauszuzögern, habe ich jetzt mal ein zweites FHEM auf meinem NAS (Debian Buster) installiert. Und siehe da: die Anbindung an den Landroid war in 5min erledigt :)

Ich weiß, es ist gefuscht ... Aber kann mir jemand einen Tipp geben, wie ich die Daten jetzt vom NAS-FHEM zum Raspi-FHEM kriege? Ideal wäre ja, wenn nur der MQTT-Client auf dem NAS läuft und auf dem Raspi dann das Mower-Device liegt. Oder muss ich unbedingt FHEM2FHEM benutzen?

Auf jeden Fall auch nochmal von mir ein dickes DANKE bis hierher :)
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 23 April 2023, 20:25:53
Zitat von: efyzz am 23 April 2023, 20:15:09Moin,

um das Dist-Upgrade auf meinem Raspberry zu vermeiden bzw. noch etwas hinauszuzögern, habe ich jetzt mal ein zweites FHEM auf meinem NAS (Debian Buster) installiert. Und siehe da: die Anbindung an den Landroid war in 5min erledigt :)

Ich weiß, es ist gefuscht ... Aber kann mir jemand einen Tipp geben, wie ich die Daten jetzt vom NAS-FHEM zum Raspi-FHEM kriege? Ideal wäre ja, wenn nur der MQTT-Client auf dem NAS läuft und auf dem Raspi dann das Mower-Device liegt. Oder muss ich unbedingt FHEM2FHEM benutzen?

Auf jeden Fall auch nochmal von mir ein dickes DANKE bis hierher :)

MQTT_GENERIC_BRIDGE schon einmal angeschaut? Hab's aber selbst noch nicht benutzt...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: mabula am 23 April 2023, 20:39:29
Beide TVs sind im System noch nicht definiert.
TV1 benötigt eine verschlüsselte Kommunikation. also wird bei der Initialisierung $ENCRYPTION="yes" gesetzt und mit
setKeyValue("ENCRYPTION", $ENCRYPTION)
gesichert. Nach einem restart wird bei der Initialisierung geschaut, ob $ENCRYPTION bereits gesetzt ist und die vorhandenen Schlüssel verwendet werden können. Also wird mit
$ENCRYPTION=getKeyValue("ENCRYPTION")
der Wert ausgelesen und sollte "yes" sein. Wird danach der TV2, der keine verschlüsselte Kommunikation kann, initialisiert, wird in diesem Modul $ENCRYPTION="no" gesetzt und wie oben gesichert.
Nach einem restart wird bei der Initialisierung des TV1 nicht mehr $ENCRYPTION="yes", wie es richtig wäre, sondern
$ENCRYPTION=getKeyValue("ENCRYPTION") => "no" ausgelesen. Der Wert des Modul TV1 wird durch Modul TV2 überschrieben. Deshalb die Modulspezifischen Namen.
Ein fehlendes $ Zeichen sehe ich nicht. Nur die Namen der Speicherplätze werden mit $nom ergänzt. ENCRYPTION => $nom.ENCRYPTION

Sorry: Der Name in GertKeyValue und setKeyValue war natürlich "ENCRYPTION" und nicht "$ENCRYPTION"
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 24 April 2023, 09:54:21
Zitat von: frober am 23 April 2023, 19:48:53Premiere erfolgreich  8)

Ein ersten "Entwurf", Feinheiten fehlen noch...
https://wiki.fhem.de/wiki/Mähroboter:_Works,_Kress,_Landxcape (https://wiki.fhem.de/wiki/M%C3%A4hroboter:_Works,_Kress,_Landxcape)

...gefundene Fehler dürfen behalten werden, Verbesserungen sind erwünscht.  ;D

Ja, super! Danke.

Habe nur einen kleinen Fehler gefunden ;)

Du schreibst in der Überschrift:
ZitatMähroboter: Works, Kress, Landxcape

Ich würde "Worx" schreiben und ggfs. noch in Klammern (Landroid), also so:
Mähroboter: Worx (Landroid), Kress, Landxcape

Ansonsten sind die wichtigen Sachen enthalten.

:)

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 24 April 2023, 12:25:47
Zitat von: fred_feuerstein am 24 April 2023, 09:54:21
Zitat von: frober am 23 April 2023, 19:48:53Premiere erfolgreich  8)

Ein ersten "Entwurf", Feinheiten fehlen noch...
https://wiki.fhem.de/wiki/Mähroboter:_Works,_Kress,_Landxcape (https://wiki.fhem.de/wiki/M%C3%A4hroboter:_Works,_Kress,_Landxcape)

...gefundene Fehler dürfen behalten werden, Verbesserungen sind erwünscht.  ;D

Ja, super! Danke.

Habe nur einen kleinen Fehler gefunden ;)

Du schreibst in der Überschrift:
ZitatMähroboter: Works, Kress, Landxcape

Ich würde "Worx" schreiben und ggfs. noch in Klammern (Landroid), also so:
Mähroboter: Worx (Landroid), Kress, Landxcape

Ansonsten sind die wichtigen Sachen enthalten.

:)



F*** ausgerechnet in der Überschrift (Url).

Danke für den Hinweis, damit ändert sich auch der Link. Werde es heute Abend korrigieren...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Mumpitz am 24 April 2023, 16:13:26
Zitat von: mabula am 23 April 2023, 13:52:31In der "Garage" funktioniert der im Landroid eingebaute Regensensor nicht wirklich. Und es gibt im Landroid nur eine fest einstellbare Regenpause. Die neuen Möglichkeiten haben den Erfindergeist geweckt und ich wollte die Pause abhängig von der Regenmenge einstellen. Sumpfigen Rasen mäht er nicht wirklich gut. Der Parameter "cfg_sc_distm" pausiert den programmierten Zeitplan um die eingetragenen Minuten und der Wert wird im Landroid selbst runter gezählt. Das reading dieses Werts wird wie oben beschrieben alle 5 - 7 Minuten aktualisiert.
Wenn der Zugang wieder frei ist, kann ich das stacktrace zum Test einfügen, ein global verbose 5 wird bei den vielen Geräten wuchtig.

Hey Mabula
Dein Voting hat mich angesprochen. Ist zwar etwas OffTopic hier..
Mein Worx M500 steht ebenfalls in einer Garage und kommt daher nicht mit, ob es regnet oder nicht. Sprich ich würde grundsätzlich gerne den automatischen Zeitplan deaktivieren, selber einen bauen und diesen dann mittels fhem an den Worx übermitteln.
Dazu habe ich mir einen ganz einfachen, dummen, Regenmelder mit einer in der nähe befindlichen Wetterstation gebaut. Ich möchte diesen nun gerne etwas pimpen und je nach Regenmenge und anzahl zurückliegender Regentage intelligenter Steuern. Ich habe bei meinem Garten, zu mindest in einem Teil das Problem, dass es dort relativ lange feucht bleibt. Wenn der Worx zu früh rausfährt, sieht der Rasen dort wie ein frisch angesähtes Maisfeld aus :-)

Was hast du noch für Ideen für eine smarte Steuerung?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: mabula am 24 April 2023, 17:37:15
@ Mumpitz
das hört sich nach vielen Stunden Verzögerung an. Dafür würde ich zum Party Mode raten. Der count down von cfg_sc_distm ist evtl. instabil, da laufend vom Server Push Nachrichten kommen. Trotzdem anbei die beiden Befehle:
setList PartyMode:on,off { my %hash = ( 'on' => 2, 'off' => 1);; qq(PRM100/98F4AB02DF3C/commandIn {"sc":{"m":$hash{$EVTPART1}}})}\
        setraindelay:textField { my $payload = $EVENT;;;;$payload =~ s/$EVTPART0 //g;;;; qq(PRM100/98F4AB02DF3C/commandIn {"sc":{"distm":$payload}})}
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 24 April 2023, 18:59:03
Wiki ist korrigiert und noch etwas überarbeitet.
https://wiki.fhem.de/wiki/Mähroboter:_Worx_Landroid,_Kress,_Landxcape (https://wiki.fhem.de/wiki/M%C3%A4hroboter:_Worx_Landroid,_Kress,_Landxcape)
Vorherigen Post habe ich aktualisiert.

Es darf gerne gegengelesen und bearbeitet werden...


@Otto, diesen Link kannst du im ersten Post erwähnen, die alte Beschreibung ist obsolet.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: mabula am 24 April 2023, 20:18:47
Ich habe versucht den Fehlerfall "maxFailedConnects" mit stacktrace und verbose 5 zu wiederholen. Der Test lief 6 Stunden, leider trat kein Fehler auf. Allerdings war meine Beobachtung, dass diesmal das update Intervall der readings bis über eine Stunde verlängert wurde. Wurden Parameter im Server durch die Sperre verändert?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 25 April 2023, 09:59:28
Zitat von: frober am 24 April 2023, 18:59:03@Otto, diesen Link kannst du im ersten Post erwähnen, die alte Beschreibung ist obsolet.
Danke Dir, habe ich gemacht.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 25 April 2023, 17:22:30
Zitat von: mabula am 24 April 2023, 20:18:47Ich habe versucht den Fehlerfall "maxFailedConnects" mit stacktrace und verbose 5 zu wiederholen. Der Test lief 6 Stunden, leider trat kein Fehler auf. Allerdings war meine Beobachtung, dass diesmal das update Intervall der readings bis über eine Stunde verlängert wurde. Wurden Parameter im Server durch die Sperre verändert?

Durch die Sperre sollte es keine Veränderung geben, zumindest habe ich das bei mir bisher nicht beobachtet.

Welche Readings meinst du genau?
Die von der API kommen nur ~stündlich. Die vom Mäher (MQTT) kommen individuell, sofern der Mäher nicht "schläft".
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: mabula am 25 April 2023, 20:32:23
ZitatWelche Readings meinst du genau?
Es geht um cfg_sc_distm. Ich will das gespeicherte Mähprogramm für zB. 5 Stunden aussetzen. Also cfg_sc_distm auf 300 gesetzt. Dabei werden alle Daten mit cfg_* und dat_* aktualisiert. Nach 8 Minuten wurde das erste mal aktualisiert, wieder alle cfg_* und dat_* und cfg_sc_dist = 292. Nach weiteren 38 Minuten erfolgte die nächste Aktualisierung aller oberen Daten cfg_sc_distm = 254. Dann nach weiteren 12 Minuten cfg_sc_distm = 242, usw. Das Intervall scheint zufällig zu sein.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 25 April 2023, 22:10:02
Zitat von: mabula am 25 April 2023, 20:32:23
ZitatWelche Readings meinst du genau?
Es geht um cfg_sc_distm. Ich will das gespeicherte Mähprogramm für zB. 5 Stunden aussetzen. Also cfg_sc_distm auf 300 gesetzt. Dabei werden alle Daten mit cfg_* und dat_* aktualisiert. Nach 8 Minuten wurde das erste mal aktualisiert, wieder alle cfg_* und dat_* und cfg_sc_dist = 292. Nach weiteren 38 Minuten erfolgte die nächste Aktualisierung aller oberen Daten cfg_sc_distm = 254. Dann nach weiteren 12 Minuten cfg_sc_distm = 242, usw. Das Intervall scheint zufällig zu sein.

Das die Readings individuell kommen hatte ich ja schon geschrieben.
Bis Anfang/Mitte letzten Jahres kamen sie noch regelmäßig(er), dann wurde auf Events reduziert und noch sind es wieder mehr...eine Regelmäßigkeit sehe ich aber aktuell auch nicht.

Ich verstehe nun auch, was du vor hast, aber benutzt du das Template nicht?
Otto hat die Funktion schon als Partytime implementiert.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: mabula am 26 April 2023, 08:02:33
Zitat von: frober am 25 April 2023, 22:10:02Ich verstehe nun auch, was du vor hast, aber benutzt du das Template nicht?
Otto hat die Funktion schon als Partytime implementiert.
Es geht nicht um die Implementierung der Regenpause. Ich kenne die Templates und es funktioniert. Nur bei einem Test mit sehr langer Regenpause, tratt als Nebeneffekt ein Problem mit dem Mqtt-Client auf, siehe mein Post #648
https://forum.fhem.de/index.php?topic=111959.msg1273527#msg1273527 (https://forum.fhem.de/index.php?topic=111959.msg1273527#msg1273527).
Dies führte zu meiner 24h Sperre. Für die Analyse wollte ich den Fehler mit geeignetem Log reproduzieren. Was bisher über sehr viele Stunden vergebens war. Mein subjektiver Eindruck war eine reduzierte "update rate" des readings cfg_sc_distm nach der Sperre und damit das Mqtt-Client Problem nicht mehr auftritt.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: micky0867 am 29 April 2023, 22:09:48
Hallo,

ich weiß nicht, ob das bekannt ist:

Mein WR101SI ist von 2017 mit der "aktuellen" Firmware 3.52
Leider scheint bei dieser Firmware der Kantenmodus nicht so zu funktionieren, wie in der aktuellen Version und eine neuere gibt es für das Modell nicht.

Im alten Landroid-Modul habe ich dafür einen Workaround gefunden:
                //--> Start zone training (cmd:4)
                //--> wait 3 sec
                //--> Pause Mower (cmd:2)
                //--> wait 3 sec
                //--> Stop Mower (cmd:3)

Dank der setList und x_raw_payload kann ich damit jetzt wieder das Kantemähen anstossen.  ;D
Zur Vereinfachung habe ich mir ein entsprechendes sub in 99_myUtils gemacht.

sub edgeCutting() {
  fhem("set MQTT_Worx_Shaun x_raw_payload {\"cmd\":4};\
        sleep 3;\
        set MQTT_Worx_Shaun x_raw_payload {\"cmd\":2};\
        sleep 3;\
        set MQTT_Worx_Shaun x_raw_payload {\"cmd\":3};");
}



Gruss
Micky
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 30 April 2023, 19:49:19
Ich mache das auch mit dem workaround bei meinem Mäher aus 2018.
Bei mir ein Schalter, der bei Aktivierung ein DOIF mit den entsprechenden befehlen und Zeiten ausführt und am Ende den Schalter wieder auf off setzt.
Klappt gut damit.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Heatseeker am 30 April 2023, 21:47:28
Moin Kurzes Feedback von mir:

Es scheint alles funktioniert zu haben! Wenn doch nicht, melde ich mich ;-)

Viele Dank für eure Arbeit!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: pillepalle12 am 03 Mai 2023, 15:39:53
Hallo zusammen,
habt ihr heute auch das Problem, dass ihr weder in der App noch in Fhem den Roboter steuern könnt? Readings kommen beim Neustart der Android App, aber dann immer connection Fehler.
Danke
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: andreas1971 am 03 Mai 2023, 22:27:15
Hallo,
ich habe das Problem, dass ich regelmäßig für 24h gesperrt werde. Danach läuft es wieder für einen halben Tag und es gibt dann eine neue Sperre. Notifys die ich hatte sind alle abgestellt - es läuft also eigentlich nur die Grundkonfiguration.

Gruß, Andreas
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 04 Mai 2023, 09:19:15
Zitat von: andreas1971 am 03 Mai 2023, 22:27:15Hallo,
ich habe das Problem, dass ich regelmäßig für 24h gesperrt werde. Danach läuft es wieder für einen halben Tag und es gibt dann eine neue Sperre. Notifys die ich hatte sind alle abgestellt - es läuft also eigentlich nur die Grundkonfiguration.

Gruß, Andreas

Sicher, dass du alle Zugriffe deaktiviert hast?
Bei einem normalen Verlauf (reconnect alle 60Min+) und sonnst keine Anfragen sollte es keine Sperre geben.

Was steht im Log, verbose 4 sollte erstmal reichen?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: SuMiHe am 04 Mai 2023, 17:44:18
Hallo,

bei mir bleibt der MQTT2_Client einfach nicht im "open" Status. Fällt immer wieder zurück auf "disconnect". Die API Daten werden geholt und aktualisiert, die Daten vom Mower leider nicht. Neues MQTT2 Device wird angelegt.
Ich habe ein frisches "update" gemacht, die beiden devices gelöscht und neu angelegt (mit Neustart zwischendurch) aber immer das gleiche Ergebnis. Die Landroid APP und IOBroker funktionieren problemlos. (Hab mich auch auf beiden abgemeldet, dass nicht evtl. zu viele Geräte zugreifen aber hilft leider auch nicht)
Auf einem Neuen "FHEM" nur mit dem Mower geht es ???
Wo könnte noch ein Fehler bei mir liegen ?

Danke schon mal vorab

Internals:
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        xx
   DevIoJustClosed 1
   DeviceName iot.eu-west-1.worxlandroid.com:443
   FUUID      6453cd37-f33f-03b5-fbd4-285ee11182c62112
   NAME       Worx
   NR         847
   SSL        1
   STATE      disconnected
   TYPE       MQTT2_CLIENT
   autocreate 1
   clientId   WX/USER/xxxxxx/FHEM/xxxxxx
   connecting 1
   devioLoglevel 5
   eventCount 13
   landroidType worx
   mqttEndpoint iot.eu-west-1.worxlandroid.com
   nextOpenDelay 180
   nrConnects 3
   nrFailedConnects 2
   userId     xxxxxx
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2023-05-04 17:28:56   state           disconnected
     2023-05-04 17:22:57   wxid            xxxxxxxxxxxxxx
   sslargs:
     SSL_alpn_protocols mqtt
Attributes:
   autocreate complex
   connectFn  {use LandroidUtils;Landroid_connect($NAME,"worx",1)}
   disable    1
   execAfterConnect { my $h=$defs{$NAME};MQTT2_CLIENT_doPublish($h,'PRM100/xxxxxxxx/commandIn','{}')}
   keepaliveTimeout 600
   maxFailedConnects 20
   nextOpenDelay 180
   room       Mower
   subscriptions PRM100/xxxxxxx/commandOut
   username   mein_username
   verbose    5

log mit verbose 5

2023.05.04 17:28:55.240 4: Worx: reusing the acess_token
2023.05.04 17:28:55.477 5: {"id":xxxxxx,"user_type":"customer","push_notifications":true,"location":null,"mqtt_endpoint":"a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com","actions_on_google_pin_code":null,"created_at":"2020-06-29 16:36:27","updated_at":"2020-06-29 16:45:41"}
2023.05.04 17:28:55.478 4: Worx: Got userId: xxxxxx
2023.05.04 17:28:55.740 5: [{"id":xxxxx,"uuid":"xxxxx-4002-84c1-545de18eac61","product_id":49,"user_id":xxxxxx,"serial_number":"SerialNrxxxxxx","mac_address":"MACxxxxx","name":"Gunter","locked":false,"firmware_version":3.29,"firmware_auto_upgrade":true,"push_notifications":true,"sim":null,"push_notifications_level":"warning","test":false,"iot_registered":true,"mqtt_registered":true,"pin_code":"0022","registered_at":"2020-06-29 00:00:00","online":true,"app_settings":null,"protocol":0,"pending_radio_link_validation":null,"capabilities":["auto_lock","digital_fence_settings","lock","mqtt","multi_zone","multi_zone_percentage","one_time_scheduler","pairing_smartlink","pause_over_wire","rain_delay","rain_delay_start","safe_go_home","scheduler_two_slots","unrestricted_mowing_time"],"capabilities_available":[],"features":{"auto_lock":3.25,"chassis":"m_2019","digital_fence_settings":3.25,"display_type":"tube","input_type":"keyboard_tube","lock":true,"mqtt":true,"multi_zone":true,"multi_zone_percentage":true,"multi_zone_zones":4,"one_time_scheduler":3.15,"pause_over_wire":3.26,"rain_delay":true,"rain_delay_start":3.08,"safe_go_home":3.25,"scheduler_two_slots":3.15,"unrestricted_mowing_time":true,"wifi_pairing":"smartlink"},"accessories":null,"mqtt_endpoint":"iot.eu-west-1.worxlandroid.com","mqtt_topics":{"command_in":"PRM100\/MACxxxxx\/commandIn","command_out":"PRM100\/MACxxxxx\/commandOut"},"warranty_registered":true,"purchased_at":"2020-06-29 00:00:00","warranty_expires_at":"2023-06-29 00:00:00","setup_location":{"latitude":52.537889,"longitude":13.4543613},"city":{"id":2907298,"country_id":276,"name":"Heinersdorf","latitude":52.571732,"longitude":13.43757,"created_at":"2018-02-15 22:06:12","updated_at":"2018-02-15 22:06:12"},"time_zone":"Europe\/Berlin","lawn_size":154.10417175293,"lawn_perimeter":85,"auto_schedule_settings":{"boost":0,"exclusion_scheduler":{"days":[{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false}],"exclude_nights":true},"grass_type":"mixed_species","irrigation":false,"nutrition":{"k":30,"n":30,"p":30},"soil_type":"ignore"},"auto_schedule":false,"improvement":false,"diagnostic":false,"distance_covered":1433855,"mower_work_time":91415,"blade_work_time":87105,"blade_work_time_reset":83129,"blade_work_time_reset_at":"2023-04-08 18:31:05","battery_charge_cycles":890,"battery_charge_cycles_reset":0,"battery_charge_cycles_reset_at":null,"created_at":"2019-03-19 03:10:05","updated_at":"2023-05-04 01:16:29","last_status":{"timestamp":"2023-05-04 15:25:08","payload":{"cfg":{"id":2,"sn":"SerialNrxxxxxx","dt":"04\/05\/2023","tm":"17:25:12","lg":"en","cmd":0,"sc":{"m":1,"d":[["11:00",120,1],["11:00",120,0],["11:00",120,0],["11:00",120,1],["11:00",120,0],["11:00",120,0],["11:00",120,0]],"dd":[["16:00",90,0],["16:00",90,0],["16:00",90,0],["16:00",90,0],["16:00",90,0],["16:00",90,0],["16:00",90,0]],"distm":0,"p":0,"ots":{"wtm":0,"bc":0}},"mz":[3,40,0,0],"mzv":[0,1,0,1,0,1,0,1,0,0],"rd":60,"al":{"lvl":0,"t":60},"tq":-10},"dat":{"mac":"MACxxxxx","fw":3.29,"fwb":17,"ls":7,"le":0,"conn":"wifi","bt":{"t":25.6,"v":17.66,"p":33,"nr":891,"c":0,"m":1},"dmp":[2.4,-0.6,320.1],"st":{"b":87288,"d":1437065,"wt":91600,"bl":85},"act":1,"rsi":-69,"lk":0,"tr":0,"lz":9,"rain":{"s":0,"cnt":0}}}}}]
2023.05.04 17:28:55.765 4: Worx: Got device info
2023.05.04 17:28:55.769 5: Worx: discarding DISCONNECT (224)(0)
2023.05.04 17:28:55.771 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.05.04 17:28:55.800 4: IP: iot.eu-west-1.worxlandroid.com -> 34.255.255.83
2023.05.04 17:28:55.932 5: Worx: sending CONNECT (16)(190)(11)(0)(6)MQIsdp(3)(130)(2)X(0)<WX/USER/xxxxxx/FHEM/xxxxxx(5)rFHEM?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxNTBkYTRkMi1iYjQ0LTQzM2ItOTQyOS0zNzczyyyyy
2023.05.04 17:28:55.933 5: DevIo_SimpleWrite Worx: 10be0bzzzzzzzzzzzz
2023.05.04 17:28:55.935 5: iot.eu-west-1.worxlandroid.com:443 reappeared (Worx)
2023.05.04 17:28:56.003 5: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (Worx)

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 04 Mai 2023, 17:57:52
Zitat2023.05.04 17:28:55.932 5: Worx: sending CONNECT [deleted] FHEM?jwt=[deleted].[deleted]
Hier fehlt noch am Ende des MQTT-Benutzernamens (was mit FHEM? beginnt) sowas wie &x-amz-customauthorizer-signature=...
Bei einem falschen Benutzernamen reagiert die andere seite mit einem kommentarlosen disconnect.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: andreas1971 am 04 Mai 2023, 19:34:42
Zitat von: frober am 04 Mai 2023, 09:19:15Sicher, dass du alle Zugriffe deaktiviert hast?
Bei einem normalen Verlauf (reconnect alle 60Min+) und sonnst keine Anfragen sollte es keine Sperre geben.

Was steht im Log, verbose 4 sollte erstmal reichen?

Hi,

erstmal vielen Dank für eure schnelle Hilfe in diesem Forum. Ich habe mal meine Definition und das Log angehängt.

Gruß, Andreas

defmod MQTT_Worx MQTT2_CLIENT xx
attr MQTT_Worx connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
attr MQTT_Worx execAfterConnect { my $h=$defs{$NAME};;MQTT2_CLIENT_doPublish($h,'DB504/0023A7E5EA87/commandIn','{}')}
attr MQTT_Worx group Rasenmähroboter
attr MQTT_Worx icon ah-settings
attr MQTT_Worx keepaliveTimeout 600
attr MQTT_Worx maxFailedConnects 20
attr MQTT_Worx nextOpenDelay 180
attr MQTT_Worx room Landroid
attr MQTT_Worx sortby 40
attr MQTT_Worx subscriptions DB504/0023A7E5EA87/commandOut
attr MQTT_Worx username xxxxxxxxxxxxxx@xxxxxxxx.de
attr MQTT_Worx verbose 1

setstate MQTT_Worx opened
setstate MQTT_Worx 2023-05-04 19:16:57 .access_token xxx0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxNTBkYTRkMi1iYjQ0LTQzM2ItOTQyOS0zNzczYWRjNzBhMmEiLCJqdGkiOiI3YTRiNmI5Yjc3NmJkZWViNmE5MGIwNjQ3NGYxYjc4NzJiOTc5MzgyY2JjMGI5N2E0ODZlYzZmYjhkYzJkZGY1MWJmZWNhZjhjYzQ4OGM4NSIsImlhdCI6MTY4MzIyMDYxNi43MjQyNDIsIm5iZiI6MTY4MzIyMDYxNi43MjQyNDQsImV4cCI6MTY4MzIyNDIxNiwic3ViIjoiMTUyMzgxIiwic2NvcGVzIjpbImRhdGE6cHJvZHVjdHMiLCJ1c2VyOnByb2ZpbGUiLCJ1c2VyOm1hbmFnZSIsInVzZXI6Y2VydGlmaWNhdGUiLCJtb2JpbGU6bm90aWZpY2F0aW9ucyIsIm1vd2VyOnZpZXciLCJtb3dlcjp1cGRhdGUiLCJtb3dlcjphY3Rpdml0eV9sb2ciLCJtb3dlcjpsYXduIiwibW93ZXI6bWFwIiwibW93ZXI6d2FycmFudHkiLCJtb3dlcjpmaXJtd2FyZSIsIm1vd2VyOnBhaXIiLCJtb3dlcjp1bnBhaXIiXX0.ADHQqN6djEpsPZ9VARtH1ZNeWLcuE0m0APYcEv1QFTDzjMetpifJnekvJM9kg5XmqfcvItUlnLx9AHeJayeom1A9FhgY39Hibtkkk9hiwF7cnU8p_Eq5OdDA0yY3dm8vLC97600DlbCeehZTUZtq5HpNSQmqCvYtCJYL3P98RS40A3-EOcmMEprYhD9K0jvd26wTEujP6yzWsnTU45A06lg2_3S2ZMi7OnNRuN5bJGGms8_6kygmWCA8tsAm7yiLEdM98VCYn_Xi1GwapqhNxRfZI7UV5AD5Cga3UQ7no8vHZpOYmt9PLrfnEMAGcAfYVeYCaBFmuxXGRP1QxFxFZn1JzyD6-nImqemVv9b1lLB0O6unAJVW1i4ivStOSWWPMgCMMUbj1PJUIBq7bp-trkDClSqmi7AompDmHblnrL8M2F1G5T4B4R0XW3VPCXaR2-_E4SCGSxdx5Dzk8orwgRgF2KQMiWyjGTpQhIIMgIgGau6R41tqqjO_C475PAdvdfxkmuP-dMXkVn0X5z4SZyyAnKw_bi3E1v5QjZOtRu3YYafXVHOjW4okvoUjBejA_0clPZdXqDrYALQFNVwuwPdfV4LRXtVa-T79Zy9mMU8UL3NFgl3Kbg1hcYx1W2U72t2kOlg9d6dTpySE3mcl3ptaqSJsj9A6HGhGV0vyzhc
setstate MQTT_Worx 2023-05-04 19:16:57 .expires_in 3600
setstate MQTT_Worx 2023-05-04 19:16:57 .refresh_token xxx50200b5323e8f4c6dc5cb47d6dee4b445b3ad0166e40d77abf81a2053892ac13b48ae3425ea83ef9a52bb388a7234a1a06f0bc357c70f1a5c94849c42d8ff520fcb4d187aa69867a3a53ad87d39fabfc15b1236f73011ba310615b25df406aff3678d217298f4de1a9204caaa8e434e3c3e0247a0bd8d2415655b7fa7005bb36253a82de275ae5be83abd72c5cda304d09c4de43d1c0670f3fe4a8411ad403f8a443e0d52910ce8d7dce1f5de5a719652287c0858ad237640dbafd3bf22bff7ee9abf9251f21c2b72445814ac6ecb0a5ff0a52b6dc025242e8ad70f6e6ab13bab111a5ee8d91fcc6894acccda9cc6abb78f4aadffc301de443bb17eaa3fe55217eea61b6a3b0849201e758eb516ef3878cbf18a75b7e9650f38d17d6ec72fbf5dc509de08496d2d12a0aa4d64225517af11f04ab2451f9f3afa1714ab19690343cfc89bd28a80ef82ed21de23497f3ea4bad110ca1c8e416857560ffabd0767c404f9713e1568b63d18ad829eea07ae0449103182cfe4144626136dc296bdd4a25e9832de6f088bd1ff7d0b6c26724e10b8f17821eebede4c5ad449cab91e0e7f8ef1717cb2595cdbeee84be946a83b0b5a7c40ee08b0acec8874f56e37f7f235310fcd60fcc887fce4379b1a216baffa660d59a988bafbb3f26cf37f81c60f3a44bc46f9d5de88676192a99fcb153bbd94f4a791b51968d49e168d0a730bd36044712da1d16249a1b342328d1f1d3d148872e4531af4656e11a890a13bd406e8f5e5f6e4a76ec1878ae99e54c80171f72153ec7abc2bd8f664dcb26aa717a5ff20c765ea9c15ea21f8e21cf04be7c28294bf6a60350f68a5b47a110d8f108f66a992bd9602
setstate MQTT_Worx 2023-05-04 19:16:57 .token_type Bearer
setstate MQTT_Worx 2023-05-04 19:22:57 state opened
setstate MQTT_Worx 2023-04-25 20:46:01 wxid xxx81fe9-f33f-70e5-92dc-fee4773afee5c524


023.05.04 18:00:28 1: Logfile gelöscht
2023.05.04 18:01:43 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:01:44 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:02:24 1: RMDIR: ./restoreDir/save/2023-04-30
2023.05.04 18:04:44 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:04:44 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:07:45 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:07:45 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:10:46 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:10:46 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:13:46 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:13:46 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:16:47 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:16:47 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:16:48 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 18:19:47 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:19:47 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:19:47 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 18:22:47 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:22:47 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:22:48 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 18:25:47 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:25:48 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:25:49 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 18:28:48 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:28:49 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:28:49 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 18:31:48 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:31:48 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:31:49 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 18:34:48 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:34:49 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:34:49 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 18:37:49 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:37:49 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:37:50 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 18:40:49 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:40:49 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:40:50 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 18:43:49 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:43:50 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:43:50 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 18:46:50 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:46:51 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:46:51 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 18:49:51 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:49:51 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:49:51 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 18:52:51 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:52:51 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:52:52 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 18:55:52 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:55:52 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:55:53 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 18:58:54 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 18:58:54 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 18:58:55 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 19:01:54 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 19:01:55 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 19:01:55 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 19:04:55 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 19:04:55 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 19:04:55 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 19:07:55 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 19:07:55 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 19:07:55 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 19:10:55 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 19:10:56 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 19:10:56 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 19:13:56 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 19:13:56 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 19:13:57 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 19:16:57 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 19:16:57 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 19:16:58 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 19:19:56 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 19:19:56 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 19:19:57 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }
2023.05.04 19:22:57 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 19:22:57 1: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 19:22:58 4: MQTT2_DEVICE_Parse: MQTT_Worx_R2D2 DB504/0023A7E5EA87/commandOut => { json2nameValue($EVENT,'',$JSONMAP) }

Nachtrag - Nach dem Sperren mit Loglevel 5:
2023.05.04 21:20:13 4: MQTT_Worx: Got device info
2023.05.04 21:20:13 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2023.05.04 21:20:13 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.05.04 21:20:13 4: IP: iot.eu-west-1.worxlandroid.com -> 99.81.176.170
2023.05.04 21:20:13 5: MQTT_Worx: sending CONNECT (16)(214)(11)(0)(6)MQIsdp(3)(130)(2)X(0)<WX/USER/152381/FHEM/64481fe9-f33f-70e5-92dc-fee4773afee5c524(5)(138)FHEM?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxNTBkYTRkMi1iYjQ0LTQzM2ItOTQyOS0zNzczYWRjNzBhMmEiLCJqdGkiOiJmNmU0NTY4YWNkYjhiZDY4MWY0MGZkNTJhMzBlNTE3OTk3MTYzZjNhZjU0MDFkNmIxZTcyOTJjZGQ0Mjc0YTM3NzY1OGIwMjhkMGRjMDE1MCIsImlhdCI6MTY4MzIyNzgzMy4wNDcxODEsIm5iZiI6MTY4MzIyNzgzMy4wNDcxODMsImV4cCI6MTY4MzIzMTQzMywic3ViIjoiMTUyMzgxIiwic2NvcGVzIjpbImRhdGE6cHJvZHVjdHMiLCJ1c2VyOnByb2ZpbGUiLCJ1c2VyOm1hbmFnZSIsInVzZXI6Y2VydGlmaWNhdGUiLCJtb2JpbGU6bm90aWZpY2F0aW9ucyIsIm1vd2VyOnZpZXciLCJtb3dlcjp1cGRhdGUiLCJtb3dlcjphY3Rpdml0eV9sb2ciLCJtb3dlcjpsYXduIiwibW93ZXI6bWFwIiwibW93ZXI6d2FycmFudHkiLCJtb3dlcjpmaXJtd2FyZSIsIm1vd2VyOnBhaXIiLCJtb3dlcjp1bnBhaXIiXX0&x-amz-customauthorizer-signature=nJIASD%2BhYzUuufpiqFd%2FkNkug5h7Nvl5e7x1ReK0%2Bfwvwgc%2BdYxeUlxrmMQsX2OmbVWsrpa9E0%2BK1ObZF%2BbboDEoMpYnI3HWWs5krgEx%2FJIpk1yiO1nHTxmwI1DZpb7A5T9hObppkrebnaU9AT%2BqzvT3FaIEHIuI1wQqbeSbdjjbjN8hcgviHgK9JylFAC4Od20qOfysZVSjNSJDiYDEEVg55q%2BVm%2Bu%2B9E8XozBgR8IVj%2FA2IxISi1tmJ7SyGmp98GhfUYSg7KbGNrYCAAEbOVj76fTC35xeHvHxNBS2szy4uKf2ugdG%2BV5SAhiGShH%2Bj7MGoWaihIj8UVRV6qZ62e1Lml4TvS9t8wA0bAxs0AtVdjRnloe3SYIOBOWpMUq9xMT9wLXjPkGvVAPCNIbzheTaQcl9v8yufW%2BtFmm5451eZTPjSM9nPMf2O78zl%2FGLyyFPHMJAb7yq0rseGoKQUjVlcgy%2F7JOWqOUi5tD%2BUVSFJ9z22rf2COt5zcoK1nG1RGd%2FWV%2B6bxO5x%2FrkboMDnW2UoKNhg5dpY4v1CeI4JZ8bTwc1i8B8pcxDMFr9Dke1h7BEu7nOd%2Fqv%2BT%2B%2FgiM6lKD3yBf6vp3%2F5eN5UOtC95c%2B7Cn7Z8YwKJNsO1vz3RcrFf4xnbRE0K6BUrV%2BiVlQkpIHU0ZawshCMKq8xyVF3dE
2023.05.04 21:20:13 5: DevIo_SimpleWrite MQTT_Worx: 10d60b00064d514973647003820258003c57582f555345522f3135323338312f4648454d2f36343438316665392d663333662d373065352d393264632d66656534373733616665653563353234058a4648454d3f6a77743d65794a30655841694f694a4b563151694c434a68624763694f694a53557a49314e694a392e65794a68645751694f6949784e54426b5954526b4d693169596a51304c54517a4d3249744f5451794f53307a4e7a637a5957526a4e7a42684d6d45694c434a7164476b694f694a6d4e6d55304e54593459574e6b596a68695a4459344d5759304d475a6b4e544a684d7a426c4e5445334f546b334d54597a5a6a4e685a6a55304d44466b4e6d49785a5463794f544a6a5a4751304d6a633059544d334e7a59314f4749774d6a686b4d47526a4d4445314d434973496d6c68644349364d5459344d7a49794e7a677a4d7934774e4463784f444573496d35695a6949364d5459344d7a49794e7a677a4d7934774e4463784f444d73496d5634634349364d5459344d7a497a4d54517a4d79776963335669496a6f694d5455794d7a67784969776963324e766347567a496a7062496d52686447453663484a765a48566a64484d694c434a31633256794f6e427962325a70624755694c434a31633256794f6d3168626d466e5a534973496e567a5a5849365932567964476c6d61574e68644755694c434a7462324a7062475536626d393061575a70593246306157397563794973496d3176643256794f6e5a705a5863694c434a746233646c636a703163475268644755694c434a746233646c636a706859335270646d6c3065563973623263694c434a746233646c636a70735958647549697769625739335a5849366257467749697769625739335a58493664324679636d467564486b694c434a746233646c636a706d61584a74643246795a534973496d3176643256794f6e4268615849694c434a746233646c636a7031626e42686158496958583026782d616d7a2d637573746f6d617574686f72697a65722d7369676e61747572653d6e4a4941534425324268597a5575756670697146642532466b4e6b75673568374e766c356537783152654b3025324266777677676325324264597865556c78726d4d517358324f6d625657737270613945302532424b314f625a4625324262626f44456f4d70596e493348575773356b726745782532464a49706b3179694f316e4854786d774931445a70623741355439684f6270706b7265626e6155394154253242717a76543346614945484975493177517162655362646a6a626a4e38686367766948674b394a796c464143344f643230714f6679735a56536a4e534a4469594445455667353571253242566d25324275253242394538586f7a4267523849566a2532464132497849536931746d4a375379476d70393847686655595367374b62474e725943414145624f566a373666544333357865487648784e425332737a7934754b663275676447253242563553416869475368482532426a374d476f57616968496a385556525636715a363265314c6d6c345476533974387741306241787330417456646a526e6c6f65335359494f424f57704d557139784d5439774c586a506b4776564150434e49627a6865546151636c3976387975665725324274466d6d35343531655a54506a534d396e504d66324f37387a6c253246474c79794650484d4a416237797130727365476f4b51556a566c636779253246374a4f57714f5569357444253242555653464a397a3232726632434f74357a636f4b316e473152476425324657562532423662784f3578253246726b626f4d446e5732556f4b4e686735647059347631436549344a5a38625477633169384238706378444d467239446b65316837424575376e4f6425324671762532425425324225324667694d366c4b44337942663676703325324635654e35554f744339356325324237436e375a3859774b4a4e734f31767a33526372466634786e625245304b364255725625324269566c516b70494855305a61777368434d4b713878795646336445
2023.05.04 21:20:13 5: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 21:20:14 5: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 21:23:13 4: MQTT_Worx: reusing the acess_token
2023.05.04 21:23:13 5: {"id":152381,"user_type":"customer","push_notifications":true,"location":null,"mqtt_endpoint":"a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com","actions_on_google_pin_code":null,"created_at":"2019-01-14 11:55:04","updated_at":"2021-05-29 08:51:27"}
2023.05.04 21:23:13 4: MQTT_Worx: Got userId: 152381
2023.05.04 21:23:14 5: [{"id":249023,"uuid":"96c52f6d-dd54-4002-a5cf-9d377be531cf","product_id":11,"user_id":152381,"serial_number":"2018301547060010XXXX","mac_address":"0023A7E5EA87","name":"R2D2","locked":false,"firmware_version":5.25,"firmware_auto_upgrade":true,"push_notifications":true,"sim":null,"push_notifications_level":"warning","test":false,"iot_registered":true,"mqtt_registered":true,"pin_code":"xxxx","registered_at":"2019-03-03 00:00:00","online":true,"app_settings":null,"protocol":0,"pending_radio_link_validation":null,"capabilities":["mqtt","multi_zone","multi_zone_percentage","pairing_udp_broadcast","rain_delay","unrestricted_mowing_time"],"capabilities_available":[],"features":{"chassis":"m_2016","display_type":"lcd","input_type":"keyboard_numeric","mqtt":true,"multi_zone":true,"multi_zone_percentage":true,"multi_zone_zones":4,"rain_delay":true,"unrestricted_mowing_time":true,"wifi_pairing":"udp_broadcast"},"accessories":null,"mqtt_endpoint":"iot.eu-west-1.worxlandroid.com","mqtt_topics":{"command_in":"DB504\/0023A7E5EA87\/commandIn","command_out":"DB504\/0023A7E5EA87\/commandOut"},"warranty_registered":true,"purchased_at":"2019-03-01 00:00:00","warranty_expires_at":"2022-03-01 00:00:00","setup_location":{"latitude":52.310116,"longitude":10.0016033},"city":{"id":2848043,"country_id":276,"name":"Rethmar","latitude":52.316669,"longitude":10,"created_at":"2018-02-15 22:25:57","updated_at":"2018-02-15 22:25:57"},"time_zone":"Europe\/Berlin","lawn_size":null,"lawn_perimeter":null,"auto_schedule_settings":{"boost":0,"exclusion_scheduler":{"days":[{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false}],"exclude_nights":true},"grass_type":null,"irrigation":null,"nutrition":null,"soil_type":null},"auto_schedule":false,"improvement":false,"diagnostic":false,"distance_covered":1802286,"mower_work_time":106842,"blade_work_time":93453,"blade_work_time_reset":47744,"blade_work_time_reset_at":"2021-04-21 18:38:39","battery_charge_cycles":6319,"battery_charge_cycles_reset":null,"battery_charge_cycles_reset_at":null,"created_at":"2018-06-29 09:54:40","updated_at":"2022-08-11 16:02:30","last_status":{"timestamp":"2023-05-04 19:22:11","payload":{"cfg":{"sn":"2018301547060010XXXX","dt":"04\/05\/2023","tm":"21:22:10","lg":"de","cmd":0,"sc":{"m":1,"d":[["00:00",0,0],["09:00",198,1],["09:00",198,0],["09:00",198,0],["09:00",198,0],["09:00",198,0],["00:00",0,0]],"p":10},"mz":[2,31,126,0],"mzv":[0,1,1,2,0,0,0,2,1,0],"rd":0},"dat":{"mac":"0023A7E5EA87","fw":5.25,"ls":1,"le":0,"bt":{"t":18.8,"v":27.82,"p":100,"nr":6323,"c":0},"dmp":[0,-1,0],"st":{"b":93659,"d":1806481,"wt":107082},"rsi":59,"lk":0,"lz":0}}}}]
2023.05.04 21:23:14 4: MQTT_Worx: Got device info
2023.05.04 21:23:14 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2023.05.04 21:23:14 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.05.04 21:23:14 4: IP: iot.eu-west-1.worxlandroid.com -> 34.252.127.252
2023.05.04 21:23:14 5: MQTT_Worx: sending CONNECT (16)(214)(11)(0)(6)MQIsdp(3)(130)(2)X(0)<WX/USER/152381/FHEM/64481fe9-f33f-70e5-92dc-fee4773afee5c524(5)(138)FHEM?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxNTBkYTRkMi1iYjQ0LTQzM2ItOTQyOS0zNzczYWRjNzBhMmEiLCJqdGkiOiJmNmU0NTY4YWNkYjhiZDY4MWY0MGZkNTJhMzBlNTE3OTk3MTYzZjNhZjU0MDFkNmIxZTcyOTJjZGQ0Mjc0YTM3NzY1OGIwMjhkMGRjMDE1MCIsImlhdCI6MTY4MzIyNzgzMy4wNDcxODEsIm5iZiI6MTY4MzIyNzgzMy4wNDcxODMsImV4cCI6MTY4MzIzMTQzMywic3ViIjoiMTUyMzgxIiwic2NvcGVzIjpbImRhdGE6cHJvZHVjdHMiLCJ1c2VyOnByb2ZpbGUiLCJ1c2VyOm1hbmFnZSIsInVzZXI6Y2VydGlmaWNhdGUiLCJtb2JpbGU6bm90aWZpY2F0aW9ucyIsIm1vd2VyOnZpZXciLCJtb3dlcjp1cGRhdGUiLCJtb3dlcjphY3Rpdml0eV9sb2ciLCJtb3dlcjpsYXduIiwibW93ZXI6bWFwIiwibW93ZXI6d2FycmFudHkiLCJtb3dlcjpmaXJtd2FyZSIsIm1vd2VyOnBhaXIiLCJtb3dlcjp1bnBhaXIiXX0&x-amz-customauthorizer-signature=nJIASD%2BhYzUuufpiqFd%2FkNkug5h7Nvl5e7x1ReK0%2Bfwvwgc%2BdYxeUlxrmMQsX2OmbVWsrpa9E0%2BK1ObZF%2BbboDEoMpYnI3HWWs5krgEx%2FJIpk1yiO1nHTxmwI1DZpb7A5T9hObppkrebnaU9AT%2BqzvT3FaIEHIuI1wQqbeSbdjjbjN8hcgviHgK9JylFAC4Od20qOfysZVSjNSJDiYDEEVg55q%2BVm%2Bu%2B9E8XozBgR8IVj%2FA2IxISi1tmJ7SyGmp98GhfUYSg7KbGNrYCAAEbOVj76fTC35xeHvHxNBS2szy4uKf2ugdG%2BV5SAhiGShH%2Bj7MGoWaihIj8UVRV6qZ62e1Lml4TvS9t8wA0bAxs0AtVdjRnloe3SYIOBOWpMUq9xMT9wLXjPkGvVAPCNIbzheTaQcl9v8yufW%2BtFmm5451eZTPjSM9nPMf2O78zl%2FGLyyFPHMJAb7yq0rseGoKQUjVlcgy%2F7JOWqOUi5tD%2BUVSFJ9z22rf2COt5zcoK1nG1RGd%2FWV%2B6bxO5x%2FrkboMDnW2UoKNhg5dpY4v1CeI4JZ8bTwc1i8B8pcxDMFr9Dke1h7BEu7nOd%2Fqv%2BT%2B%2FgiM6lKD3yBf6vp3%2F5eN5UOtC95c%2B7Cn7Z8YwKJNsO1vz3RcrFf4xnbRE0K6BUrV%2BiVlQkpIHU0ZawshCMKq8xyVF3dE
2023.05.04 21:23:14 5: DevIo_SimpleWrite MQTT_Worx: 10d60b00064d514973647003820258003c57582f555345522f3135323338312f4648454d2f36343438316665392d663333662d373065352d393264632d66656534373733616665653563353234058a4648454d3f6a77743d65794a30655841694f694a4b563151694c434a68624763694f694a53557a49314e694a392e65794a68645751694f6949784e54426b5954526b4d693169596a51304c54517a4d3249744f5451794f53307a4e7a637a5957526a4e7a42684d6d45694c434a7164476b694f694a6d4e6d55304e54593459574e6b596a68695a4459344d5759304d475a6b4e544a684d7a426c4e5445334f546b334d54597a5a6a4e685a6a55304d44466b4e6d49785a5463794f544a6a5a4751304d6a633059544d334e7a59314f4749774d6a686b4d47526a4d4445314d434973496d6c68644349364d5459344d7a49794e7a677a4d7934774e4463784f444573496d35695a6949364d5459344d7a49794e7a677a4d7934774e4463784f444d73496d5634634349364d5459344d7a497a4d54517a4d79776963335669496a6f694d5455794d7a67784969776963324e766347567a496a7062496d52686447453663484a765a48566a64484d694c434a31633256794f6e427962325a70624755694c434a31633256794f6d3168626d466e5a534973496e567a5a5849365932567964476c6d61574e68644755694c434a7462324a7062475536626d393061575a70593246306157397563794973496d3176643256794f6e5a705a5863694c434a746233646c636a703163475268644755694c434a746233646c636a706859335270646d6c3065563973623263694c434a746233646c636a70735958647549697769625739335a5849366257467749697769625739335a58493664324679636d467564486b694c434a746233646c636a706d61584a74643246795a534973496d3176643256794f6e4268615849694c434a746233646c636a7031626e42686158496958583026782d616d7a2d637573746f6d617574686f72697a65722d7369676e61747572653d6e4a4941534425324268597a5575756670697146642532466b4e6b75673568374e766c356537783152654b3025324266777677676325324264597865556c78726d4d517358324f6d625657737270613945302532424b314f625a4625324262626f44456f4d70596e493348575773356b726745782532464a49706b3179694f316e4854786d774931445a70623741355439684f6270706b7265626e6155394154253242717a76543346614945484975493177517162655362646a6a626a4e38686367766948674b394a796c464143344f643230714f6679735a56536a4e534a4469594445455667353571253242566d25324275253242394538586f7a4267523849566a2532464132497849536931746d4a375379476d70393847686655595367374b62474e725943414145624f566a373666544333357865487648784e425332737a7934754b663275676447253242563553416869475368482532426a374d476f57616968496a385556525636715a363265314c6d6c345476533974387741306241787330417456646a526e6c6f65335359494f424f57704d557139784d5439774c586a506b4776564150434e49627a6865546151636c3976387975665725324274466d6d35343531655a54506a534d396e504d66324f37387a6c253246474c79794650484d4a416237797130727365476f4b51556a566c636779253246374a4f57714f5569357444253242555653464a397a3232726632434f74357a636f4b316e473152476425324657562532423662784f3578253246726b626f4d446e5732556f4b4e686735647059347631436549344a5a38625477633169384238706378444d467239446b65316837424575376e4f6425324671762532425425324225324667694d366c4b44337942663676703325324635654e35554f744339356325324237436e375a3859774b4a4e734f31767a33526372466634786e625245304b364255725625324269566c516b70494855305a61777368434d4b713878795646336445
2023.05.04 21:23:14 5: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 21:23:14 5: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 21:26:13 4: MQTT_Worx: reusing the acess_token
2023.05.04 21:26:14 5: {"id":152381,"user_type":"customer","push_notifications":true,"location":null,"mqtt_endpoint":"a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com","actions_on_google_pin_code":null,"created_at":"2019-01-14 11:55:04","updated_at":"2021-05-29 08:51:27"}
2023.05.04 21:26:14 4: MQTT_Worx: Got userId: 152381
2023.05.04 21:26:14 5: [{"id":249023,"uuid":"96c52f6d-dd54-4002-a5cf-9d377be531cf","product_id":11,"user_id":152381,"serial_number":"2018301547060010XXXX","mac_address":"0023A7E5EA87","name":"R2D2","locked":false,"firmware_version":5.25,"firmware_auto_upgrade":true,"push_notifications":true,"sim":null,"push_notifications_level":"warning","test":false,"iot_registered":true,"mqtt_registered":true,"pin_code":"xxxx","registered_at":"2019-03-03 00:00:00","online":true,"app_settings":null,"protocol":0,"pending_radio_link_validation":null,"capabilities":["mqtt","multi_zone","multi_zone_percentage","pairing_udp_broadcast","rain_delay","unrestricted_mowing_time"],"capabilities_available":[],"features":{"chassis":"m_2016","display_type":"lcd","input_type":"keyboard_numeric","mqtt":true,"multi_zone":true,"multi_zone_percentage":true,"multi_zone_zones":4,"rain_delay":true,"unrestricted_mowing_time":true,"wifi_pairing":"udp_broadcast"},"accessories":null,"mqtt_endpoint":"iot.eu-west-1.worxlandroid.com","mqtt_topics":{"command_in":"DB504\/0023A7E5EA87\/commandIn","command_out":"DB504\/0023A7E5EA87\/commandOut"},"warranty_registered":true,"purchased_at":"2019-03-01 00:00:00","warranty_expires_at":"2022-03-01 00:00:00","setup_location":{"latitude":52.310116,"longitude":10.0016033},"city":{"id":2848043,"country_id":276,"name":"Rethmar","latitude":52.316669,"longitude":10,"created_at":"2018-02-15 22:25:57","updated_at":"2018-02-15 22:25:57"},"time_zone":"Europe\/Berlin","lawn_size":null,"lawn_perimeter":null,"auto_schedule_settings":{"boost":0,"exclusion_scheduler":{"days":[{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false}],"exclude_nights":true},"grass_type":null,"irrigation":null,"nutrition":null,"soil_type":null},"auto_schedule":false,"improvement":false,"diagnostic":false,"distance_covered":1802286,"mower_work_time":106842,"blade_work_time":93453,"blade_work_time_reset":47744,"blade_work_time_reset_at":"2021-04-21 18:38:39","battery_charge_cycles":6319,"battery_charge_cycles_reset":null,"battery_charge_cycles_reset_at":null,"created_at":"2018-06-29 09:54:40","updated_at":"2022-08-11 16:02:30","last_status":{"timestamp":"2023-05-04 19:22:11","payload":{"cfg":{"sn":"2018301547060010XXXX","dt":"04\/05\/2023","tm":"21:22:10","lg":"de","cmd":0,"sc":{"m":1,"d":[["00:00",0,0],["09:00",198,1],["09:00",198,0],["09:00",198,0],["09:00",198,0],["09:00",198,0],["00:00",0,0]],"p":10},"mz":[2,31,126,0],"mzv":[0,1,1,2,0,0,0,2,1,0],"rd":0},"dat":{"mac":"0023A7E5EA87","fw":5.25,"ls":1,"le":0,"bt":{"t":18.8,"v":27.82,"p":100,"nr":6323,"c":0},"dmp":[0,-1,0],"st":{"b":93659,"d":1806481,"wt":107082},"rsi":59,"lk":0,"lz":0}}}}]
2023.05.04 21:26:14 4: MQTT_Worx: Got device info
2023.05.04 21:26:14 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2023.05.04 21:26:14 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.05.04 21:26:14 4: IP: iot.eu-west-1.worxlandroid.com -> 52.211.213.99
2023.05.04 21:26:14 5: MQTT_Worx: sending CONNECT (16)(214)(11)(0)(6)MQIsdp(3)(130)(2)X(0)<WX/USER/152381/FHEM/64481fe9-f33f-70e5-92dc-fee4773afee5c524(5)(138)FHEM?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxNTBkYTRkMi1iYjQ0LTQzM2ItOTQyOS0zNzczYWRjNzBhMmEiLCJqdGkiOiJmNmU0NTY4YWNkYjhiZDY4MWY0MGZkNTJhMzBlNTE3OTk3MTYzZjNhZjU0MDFkNmIxZTcyOTJjZGQ0Mjc0YTM3NzY1OGIwMjhkMGRjMDE1MCIsImlhdCI6MTY4MzIyNzgzMy4wNDcxODEsIm5iZiI6MTY4MzIyNzgzMy4wNDcxODMsImV4cCI6MTY4MzIzMTQzMywic3ViIjoiMTUyMzgxIiwic2NvcGVzIjpbImRhdGE6cHJvZHVjdHMiLCJ1c2VyOnByb2ZpbGUiLCJ1c2VyOm1hbmFnZSIsInVzZXI6Y2VydGlmaWNhdGUiLCJtb2JpbGU6bm90aWZpY2F0aW9ucyIsIm1vd2VyOnZpZXciLCJtb3dlcjp1cGRhdGUiLCJtb3dlcjphY3Rpdml0eV9sb2ciLCJtb3dlcjpsYXduIiwibW93ZXI6bWFwIiwibW93ZXI6d2FycmFudHkiLCJtb3dlcjpmaXJtd2FyZSIsIm1vd2VyOnBhaXIiLCJtb3dlcjp1bnBhaXIiXX0&x-amz-customauthorizer-signature=nJIASD%2BhYzUuufpiqFd%2FkNkug5h7Nvl5e7x1ReK0%2Bfwvwgc%2BdYxeUlxrmMQsX2OmbVWsrpa9E0%2BK1ObZF%2BbboDEoMpYnI3HWWs5krgEx%2FJIpk1yiO1nHTxmwI1DZpb7A5T9hObppkrebnaU9AT%2BqzvT3FaIEHIuI1wQqbeSbdjjbjN8hcgviHgK9JylFAC4Od20qOfysZVSjNSJDiYDEEVg55q%2BVm%2Bu%2B9E8XozBgR8IVj%2FA2IxISi1tmJ7SyGmp98GhfUYSg7KbGNrYCAAEbOVj76fTC35xeHvHxNBS2szy4uKf2ugdG%2BV5SAhiGShH%2Bj7MGoWaihIj8UVRV6qZ62e1Lml4TvS9t8wA0bAxs0AtVdjRnloe3SYIOBOWpMUq9xMT9wLXjPkGvVAPCNIbzheTaQcl9v8yufW%2BtFmm5451eZTPjSM9nPMf2O78zl%2FGLyyFPHMJAb7yq0rseGoKQUjVlcgy%2F7JOWqOUi5tD%2BUVSFJ9z22rf2COt5zcoK1nG1RGd%2FWV%2B6bxO5x%2FrkboMDnW2UoKNhg5dpY4v1CeI4JZ8bTwc1i8B8pcxDMFr9Dke1h7BEu7nOd%2Fqv%2BT%2B%2FgiM6lKD3yBf6vp3%2F5eN5UOtC95c%2B7Cn7Z8YwKJNsO1vz3RcrFf4xnbRE0K6BUrV%2BiVlQkpIHU0ZawshCMKq8xyVF3dE
2023.05.04 21:26:14 5: DevIo_SimpleWrite MQTT_Worx: 10d60b00064d514973647003820258003c57582f555345522f3135323338312f4648454d2f36343438316665392d663333662d373065352d393264632d66656534373733616665653563353234058a4648454d3f6a77743d65794a30655841694f694a4b563151694c434a68624763694f694a53557a49314e694a392e65794a68645751694f6949784e54426b5954526b4d693169596a51304c54517a4d3249744f5451794f53307a4e7a637a5957526a4e7a42684d6d45694c434a7164476b694f694a6d4e6d55304e54593459574e6b596a68695a4459344d5759304d475a6b4e544a684d7a426c4e5445334f546b334d54597a5a6a4e685a6a55304d44466b4e6d49785a5463794f544a6a5a4751304d6a633059544d334e7a59314f4749774d6a686b4d47526a4d4445314d434973496d6c68644349364d5459344d7a49794e7a677a4d7934774e4463784f444573496d35695a6949364d5459344d7a49794e7a677a4d7934774e4463784f444d73496d5634634349364d5459344d7a497a4d54517a4d79776963335669496a6f694d5455794d7a67784969776963324e766347567a496a7062496d52686447453663484a765a48566a64484d694c434a31633256794f6e427962325a70624755694c434a31633256794f6d3168626d466e5a534973496e567a5a5849365932567964476c6d61574e68644755694c434a7462324a7062475536626d393061575a70593246306157397563794973496d3176643256794f6e5a705a5863694c434a746233646c636a703163475268644755694c434a746233646c636a706859335270646d6c3065563973623263694c434a746233646c636a70735958647549697769625739335a5849366257467749697769625739335a58493664324679636d467564486b694c434a746233646c636a706d61584a74643246795a534973496d3176643256794f6e4268615849694c434a746233646c636a7031626e42686158496958583026782d616d7a2d637573746f6d617574686f72697a65722d7369676e61747572653d6e4a4941534425324268597a5575756670697146642532466b4e6b75673568374e766c356537783152654b3025324266777677676325324264597865556c78726d4d517358324f6d625657737270613945302532424b314f625a4625324262626f44456f4d70596e493348575773356b726745782532464a49706b3179694f316e4854786d774931445a70623741355439684f6270706b7265626e6155394154253242717a76543346614945484975493177517162655362646a6a626a4e38686367766948674b394a796c464143344f643230714f6679735a56536a4e534a4469594445455667353571253242566d25324275253242394538586f7a4267523849566a2532464132497849536931746d4a375379476d70393847686655595367374b62474e725943414145624f566a373666544333357865487648784e425332737a7934754b663275676447253242563553416869475368482532426a374d476f57616968496a385556525636715a363265314c6d6c345476533974387741306241787330417456646a526e6c6f65335359494f424f57704d557139784d5439774c586a506b4776564150434e49627a6865546151636c3976387975665725324274466d6d35343531655a54506a534d396e504d66324f37387a6c253246474c79794650484d4a416237797130727365476f4b51556a566c636779253246374a4f57714f5569357444253242555653464a397a3232726632434f74357a636f4b316e473152476425324657562532423662784f3578253246726b626f4d446e5732556f4b4e686735647059347631436549344a5a38625477633169384238706378444d467239446b65316837424575376e4f6425324671762532425425324225324667694d366c4b44337942663676703325324635654e35554f744339356325324237436e375a3859774b4a4e734f31767a33526372466634786e625245304b364255725625324269566c516b70494855305a61777368434d4b713878795646336445
2023.05.04 21:26:14 5: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 21:26:14 5: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 21:29:14 4: MQTT_Worx: reusing the acess_token
2023.05.04 21:29:14 5: {"id":152381,"user_type":"customer","push_notifications":true,"location":null,"mqtt_endpoint":"a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com","actions_on_google_pin_code":null,"created_at":"2019-01-14 11:55:04","updated_at":"2021-05-29 08:51:27"}
2023.05.04 21:29:14 4: MQTT_Worx: Got userId: 152381
2023.05.04 21:29:14 5: [{"id":249023,"uuid":"96c52f6d-dd54-4002-a5cf-9d377be531cf","product_id":11,"user_id":152381,"serial_number":"2018301547060010XXXX","mac_address":"0023A7E5EA87","name":"R2D2","locked":false,"firmware_version":5.25,"firmware_auto_upgrade":true,"push_notifications":true,"sim":null,"push_notifications_level":"warning","test":false,"iot_registered":true,"mqtt_registered":true,"pin_code":"xxxx","registered_at":"2019-03-03 00:00:00","online":true,"app_settings":null,"protocol":0,"pending_radio_link_validation":null,"capabilities":["mqtt","multi_zone","multi_zone_percentage","pairing_udp_broadcast","rain_delay","unrestricted_mowing_time"],"capabilities_available":[],"features":{"chassis":"m_2016","display_type":"lcd","input_type":"keyboard_numeric","mqtt":true,"multi_zone":true,"multi_zone_percentage":true,"multi_zone_zones":4,"rain_delay":true,"unrestricted_mowing_time":true,"wifi_pairing":"udp_broadcast"},"accessories":null,"mqtt_endpoint":"iot.eu-west-1.worxlandroid.com","mqtt_topics":{"command_in":"DB504\/0023A7E5EA87\/commandIn","command_out":"DB504\/0023A7E5EA87\/commandOut"},"warranty_registered":true,"purchased_at":"2019-03-01 00:00:00","warranty_expires_at":"2022-03-01 00:00:00","setup_location":{"latitude":52.310116,"longitude":10.0016033},"city":{"id":2848043,"country_id":276,"name":"Rethmar","latitude":52.316669,"longitude":10,"created_at":"2018-02-15 22:25:57","updated_at":"2018-02-15 22:25:57"},"time_zone":"Europe\/Berlin","lawn_size":null,"lawn_perimeter":null,"auto_schedule_settings":{"boost":0,"exclusion_scheduler":{"days":[{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false}],"exclude_nights":true},"grass_type":null,"irrigation":null,"nutrition":null,"soil_type":null},"auto_schedule":false,"improvement":false,"diagnostic":false,"distance_covered":1802286,"mower_work_time":106842,"blade_work_time":93453,"blade_work_time_reset":47744,"blade_work_time_reset_at":"2021-04-21 18:38:39","battery_charge_cycles":6319,"battery_charge_cycles_reset":null,"battery_charge_cycles_reset_at":null,"created_at":"2018-06-29 09:54:40","updated_at":"2022-08-11 16:02:30","last_status":{"timestamp":"2023-05-04 19:22:11","payload":{"cfg":{"sn":"2018301547060010XXXX","dt":"04\/05\/2023","tm":"21:22:10","lg":"de","cmd":0,"sc":{"m":1,"d":[["00:00",0,0],["09:00",198,1],["09:00",198,0],["09:00",198,0],["09:00",198,0],["09:00",198,0],["00:00",0,0]],"p":10},"mz":[2,31,126,0],"mzv":[0,1,1,2,0,0,0,2,1,0],"rd":0},"dat":{"mac":"0023A7E5EA87","fw":5.25,"ls":1,"le":0,"bt":{"t":18.8,"v":27.82,"p":100,"nr":6323,"c":0},"dmp":[0,-1,0],"st":{"b":93659,"d":1806481,"wt":107082},"rsi":59,"lk":0,"lz":0}}}}]
2023.05.04 21:29:14 4: MQTT_Worx: Got device info
2023.05.04 21:29:14 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2023.05.04 21:29:14 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.05.04 21:29:14 4: IP: iot.eu-west-1.worxlandroid.com -> 52.50.248.164
2023.05.04 21:29:15 5: MQTT_Worx: sending CONNECT (16)(214)(11)(0)(6)MQIsdp(3)(130)(2)X(0)<WX/USER/152381/FHEM/64481fe9-f33f-70e5-92dc-fee4773afee5c524(5)(138)FHEM?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxNTBkYTRkMi1iYjQ0LTQzM2ItOTQyOS0zNzczYWRjNzBhMmEiLCJqdGkiOiJmNmU0NTY4YWNkYjhiZDY4MWY0MGZkNTJhMzBlNTE3OTk3MTYzZjNhZjU0MDFkNmIxZTcyOTJjZGQ0Mjc0YTM3NzY1OGIwMjhkMGRjMDE1MCIsImlhdCI6MTY4MzIyNzgzMy4wNDcxODEsIm5iZiI6MTY4MzIyNzgzMy4wNDcxODMsImV4cCI6MTY4MzIzMTQzMywic3ViIjoiMTUyMzgxIiwic2NvcGVzIjpbImRhdGE6cHJvZHVjdHMiLCJ1c2VyOnByb2ZpbGUiLCJ1c2VyOm1hbmFnZSIsInVzZXI6Y2VydGlmaWNhdGUiLCJtb2JpbGU6bm90aWZpY2F0aW9ucyIsIm1vd2VyOnZpZXciLCJtb3dlcjp1cGRhdGUiLCJtb3dlcjphY3Rpdml0eV9sb2ciLCJtb3dlcjpsYXduIiwibW93ZXI6bWFwIiwibW93ZXI6d2FycmFudHkiLCJtb3dlcjpmaXJtd2FyZSIsIm1vd2VyOnBhaXIiLCJtb3dlcjp1bnBhaXIiXX0&x-amz-customauthorizer-signature=nJIASD%2BhYzUuufpiqFd%2FkNkug5h7Nvl5e7x1ReK0%2Bfwvwgc%2BdYxeUlxrmMQsX2OmbVWsrpa9E0%2BK1ObZF%2BbboDEoMpYnI3HWWs5krgEx%2FJIpk1yiO1nHTxmwI1DZpb7A5T9hObppkrebnaU9AT%2BqzvT3FaIEHIuI1wQqbeSbdjjbjN8hcgviHgK9JylFAC4Od20qOfysZVSjNSJDiYDEEVg55q%2BVm%2Bu%2B9E8XozBgR8IVj%2FA2IxISi1tmJ7SyGmp98GhfUYSg7KbGNrYCAAEbOVj76fTC35xeHvHxNBS2szy4uKf2ugdG%2BV5SAhiGShH%2Bj7MGoWaihIj8UVRV6qZ62e1Lml4TvS9t8wA0bAxs0AtVdjRnloe3SYIOBOWpMUq9xMT9wLXjPkGvVAPCNIbzheTaQcl9v8yufW%2BtFmm5451eZTPjSM9nPMf2O78zl%2FGLyyFPHMJAb7yq0rseGoKQUjVlcgy%2F7JOWqOUi5tD%2BUVSFJ9z22rf2COt5zcoK1nG1RGd%2FWV%2B6bxO5x%2FrkboMDnW2UoKNhg5dpY4v1CeI4JZ8bTwc1i8B8pcxDMFr9Dke1h7BEu7nOd%2Fqv%2BT%2B%2FgiM6lKD3yBf6vp3%2F5eN5UOtC95c%2B7Cn7Z8YwKJNsO1vz3RcrFf4xnbRE0K6BUrV%2BiVlQkpIHU0ZawshCMKq8xyVF3dE
2023.05.04 21:29:15 5: DevIo_SimpleWrite MQTT_Worx: 10d60b00064d514973647003820258003c57582f555345522f3135323338312f4648454d2f36343438316665392d663333662d373065352d393264632d66656534373733616665653563353234058a4648454d3f6a77743d65794a30655841694f694a4b563151694c434a68624763694f694a53557a49314e694a392e65794a68645751694f6949784e54426b5954526b4d693169596a51304c54517a4d3249744f5451794f53307a4e7a637a5957526a4e7a42684d6d45694c434a7164476b694f694a6d4e6d55304e54593459574e6b596a68695a4459344d5759304d475a6b4e544a684d7a426c4e5445334f546b334d54597a5a6a4e685a6a55304d44466b4e6d49785a5463794f544a6a5a4751304d6a633059544d334e7a59314f4749774d6a686b4d47526a4d4445314d434973496d6c68644349364d5459344d7a49794e7a677a4d7934774e4463784f444573496d35695a6949364d5459344d7a49794e7a677a4d7934774e4463784f444d73496d5634634349364d5459344d7a497a4d54517a4d79776963335669496a6f694d5455794d7a67784969776963324e766347567a496a7062496d52686447453663484a765a48566a64484d694c434a31633256794f6e427962325a70624755694c434a31633256794f6d3168626d466e5a534973496e567a5a5849365932567964476c6d61574e68644755694c434a7462324a7062475536626d393061575a70593246306157397563794973496d3176643256794f6e5a705a5863694c434a746233646c636a703163475268644755694c434a746233646c636a706859335270646d6c3065563973623263694c434a746233646c636a70735958647549697769625739335a5849366257467749697769625739335a58493664324679636d467564486b694c434a746233646c636a706d61584a74643246795a534973496d3176643256794f6e4268615849694c434a746233646c636a7031626e42686158496958583026782d616d7a2d637573746f6d617574686f72697a65722d7369676e61747572653d6e4a4941534425324268597a5575756670697146642532466b4e6b75673568374e766c356537783152654b3025324266777677676325324264597865556c78726d4d517358324f6d625657737270613945302532424b314f625a4625324262626f44456f4d70596e493348575773356b726745782532464a49706b3179694f316e4854786d774931445a70623741355439684f6270706b7265626e6155394154253242717a76543346614945484975493177517162655362646a6a626a4e38686367766948674b394a796c464143344f643230714f6679735a56536a4e534a4469594445455667353571253242566d25324275253242394538586f7a4267523849566a2532464132497849536931746d4a375379476d70393847686655595367374b62474e725943414145624f566a373666544333357865487648784e425332737a7934754b663275676447253242563553416869475368482532426a374d476f57616968496a385556525636715a363265314c6d6c345476533974387741306241787330417456646a526e6c6f65335359494f424f57704d557139784d5439774c586a506b4776564150434e49627a6865546151636c3976387975665725324274466d6d35343531655a54506a534d396e504d66324f37387a6c253246474c79794650484d4a416237797130727365476f4b51556a566c636779253246374a4f57714f5569357444253242555653464a397a3232726632434f74357a636f4b316e473152476425324657562532423662784f3578253246726b626f4d446e5732556f4b4e686735647059347631436549344a5a38625477633169384238706378444d467239446b65316837424575376e4f6425324671762532425425324225324667694d366c4b44337942663676703325324635654e35554f744339356325324237436e375a3859774b4a4e734f31767a33526372466634786e625245304b364255725625324269566c516b70494855305a61777368434d4b713878795646336445
2023.05.04 21:29:15 5: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 21:29:15 5: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 21:32:14 4: MQTT_Worx: reusing the acess_token
2023.05.04 21:32:15 5: {"id":152381,"user_type":"customer","push_notifications":true,"location":null,"mqtt_endpoint":"a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com","actions_on_google_pin_code":null,"created_at":"2019-01-14 11:55:04","updated_at":"2021-05-29 08:51:27"}
2023.05.04 21:32:15 4: MQTT_Worx: Got userId: 152381
2023.05.04 21:32:15 5: [{"id":249023,"uuid":"96c52f6d-dd54-4002-a5cf-9d377be531cf","product_id":11,"user_id":152381,"serial_number":"2018301547060010XXXX","mac_address":"0023A7E5EA87","name":"R2D2","locked":false,"firmware_version":5.25,"firmware_auto_upgrade":true,"push_notifications":true,"sim":null,"push_notifications_level":"warning","test":false,"iot_registered":true,"mqtt_registered":true,"pin_code":"xxxx","registered_at":"2019-03-03 00:00:00","online":true,"app_settings":null,"protocol":0,"pending_radio_link_validation":null,"capabilities":["mqtt","multi_zone","multi_zone_percentage","pairing_udp_broadcast","rain_delay","unrestricted_mowing_time"],"capabilities_available":[],"features":{"chassis":"m_2016","display_type":"lcd","input_type":"keyboard_numeric","mqtt":true,"multi_zone":true,"multi_zone_percentage":true,"multi_zone_zones":4,"rain_delay":true,"unrestricted_mowing_time":true,"wifi_pairing":"udp_broadcast"},"accessories":null,"mqtt_endpoint":"iot.eu-west-1.worxlandroid.com","mqtt_topics":{"command_in":"DB504\/0023A7E5EA87\/commandIn","command_out":"DB504\/0023A7E5EA87\/commandOut"},"warranty_registered":true,"purchased_at":"2019-03-01 00:00:00","warranty_expires_at":"2022-03-01 00:00:00","setup_location":{"latitude":52.310116,"longitude":10.0016033},"city":{"id":2848043,"country_id":276,"name":"Rethmar","latitude":52.316669,"longitude":10,"created_at":"2018-02-15 22:25:57","updated_at":"2018-02-15 22:25:57"},"time_zone":"Europe\/Berlin","lawn_size":null,"lawn_perimeter":null,"auto_schedule_settings":{"boost":0,"exclusion_scheduler":{"days":[{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false},{"slots":[],"exclude_day":false}],"exclude_nights":true},"grass_type":null,"irrigation":null,"nutrition":null,"soil_type":null},"auto_schedule":false,"improvement":false,"diagnostic":false,"distance_covered":1802286,"mower_work_time":106842,"blade_work_time":93453,"blade_work_time_reset":47744,"blade_work_time_reset_at":"2021-04-21 18:38:39","battery_charge_cycles":6319,"battery_charge_cycles_reset":null,"battery_charge_cycles_reset_at":null,"created_at":"2018-06-29 09:54:40","updated_at":"2022-08-11 16:02:30","last_status":{"timestamp":"2023-05-04 19:32:11","payload":{"cfg":{"sn":"2018301547060010XXXX","dt":"04\/05\/2023","tm":"21:32:10","lg":"de","cmd":0,"sc":{"m":1,"d":[["00:00",0,0],["09:00",198,1],["09:00",198,0],["09:00",198,0],["09:00",198,0],["09:00",198,0],["00:00",0,0]],"p":10},"mz":[2,31,126,0],"mzv":[0,1,1,2,0,0,0,2,1,0],"rd":0},"dat":{"mac":"0023A7E5EA87","fw":5.25,"ls":1,"le":0,"bt":{"t":18.4,"v":27.78,"p":100,"nr":6323,"c":0},"dmp":[0,-1,0],"st":{"b":93659,"d":1806481,"wt":107082},"rsi":59,"lk":0,"lz":0}}}}]
2023.05.04 21:32:15 4: MQTT_Worx: Got device info
2023.05.04 21:32:15 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2023.05.04 21:32:15 5: HttpUtils url=https://iot.eu-west-1.worxlandroid.com:443/ NonBlocking via https
2023.05.04 21:32:15 4: IP: iot.eu-west-1.worxlandroid.com -> 54.73.224.92
2023.05.04 21:32:15 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.05.04 21:32:16 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.05.04 21:32:16 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.05.04 21:32:16 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.05.04 21:32:16 5: MQTT_Worx: sending CONNECT (16)(214)(11)(0)(6)MQIsdp(3)(130)(2)X(0)<WX/USER/152381/FHEM/64481fe9-f33f-70e5-92dc-fee4773afee5c524(5)(138)FHEM?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxNTBkYTRkMi1iYjQ0LTQzM2ItOTQyOS0zNzczYWRjNzBhMmEiLCJqdGkiOiJmNmU0NTY4YWNkYjhiZDY4MWY0MGZkNTJhMzBlNTE3OTk3MTYzZjNhZjU0MDFkNmIxZTcyOTJjZGQ0Mjc0YTM3NzY1OGIwMjhkMGRjMDE1MCIsImlhdCI6MTY4MzIyNzgzMy4wNDcxODEsIm5iZiI6MTY4MzIyNzgzMy4wNDcxODMsImV4cCI6MTY4MzIzMTQzMywic3ViIjoiMTUyMzgxIiwic2NvcGVzIjpbImRhdGE6cHJvZHVjdHMiLCJ1c2VyOnByb2ZpbGUiLCJ1c2VyOm1hbmFnZSIsInVzZXI6Y2VydGlmaWNhdGUiLCJtb2JpbGU6bm90aWZpY2F0aW9ucyIsIm1vd2VyOnZpZXciLCJtb3dlcjp1cGRhdGUiLCJtb3dlcjphY3Rpdml0eV9sb2ciLCJtb3dlcjpsYXduIiwibW93ZXI6bWFwIiwibW93ZXI6d2FycmFudHkiLCJtb3dlcjpmaXJtd2FyZSIsIm1vd2VyOnBhaXIiLCJtb3dlcjp1bnBhaXIiXX0&x-amz-customauthorizer-signature=nJIASD%2BhYzUuufpiqFd%2FkNkug5h7Nvl5e7x1ReK0%2Bfwvwgc%2BdYxeUlxrmMQsX2OmbVWsrpa9E0%2BK1ObZF%2BbboDEoMpYnI3HWWs5krgEx%2FJIpk1yiO1nHTxmwI1DZpb7A5T9hObppkrebnaU9AT%2BqzvT3FaIEHIuI1wQqbeSbdjjbjN8hcgviHgK9JylFAC4Od20qOfysZVSjNSJDiYDEEVg55q%2BVm%2Bu%2B9E8XozBgR8IVj%2FA2IxISi1tmJ7SyGmp98GhfUYSg7KbGNrYCAAEbOVj76fTC35xeHvHxNBS2szy4uKf2ugdG%2BV5SAhiGShH%2Bj7MGoWaihIj8UVRV6qZ62e1Lml4TvS9t8wA0bAxs0AtVdjRnloe3SYIOBOWpMUq9xMT9wLXjPkGvVAPCNIbzheTaQcl9v8yufW%2BtFmm5451eZTPjSM9nPMf2O78zl%2FGLyyFPHMJAb7yq0rseGoKQUjVlcgy%2F7JOWqOUi5tD%2BUVSFJ9z22rf2COt5zcoK1nG1RGd%2FWV%2B6bxO5x%2FrkboMDnW2UoKNhg5dpY4v1CeI4JZ8bTwc1i8B8pcxDMFr9Dke1h7BEu7nOd%2Fqv%2BT%2B%2FgiM6lKD3yBf6vp3%2F5eN5UOtC95c%2B7Cn7Z8YwKJNsO1vz3RcrFf4xnbRE0K6BUrV%2BiVlQkpIHU0ZawshCMKq8xyVF3dE
2023.05.04 21:32:16 5: DevIo_SimpleWrite MQTT_Worx: 10d60b00064d514973647003820258003c57582f555345522f3135323338312f4648454d2f36343438316665392d663333662d373065352d393264632d66656534373733616665653563353234058a4648454d3f6a77743d65794a30655841694f694a4b563151694c434a68624763694f694a53557a49314e694a392e65794a68645751694f6949784e54426b5954526b4d693169596a51304c54517a4d3249744f5451794f53307a4e7a637a5957526a4e7a42684d6d45694c434a7164476b694f694a6d4e6d55304e54593459574e6b596a68695a4459344d5759304d475a6b4e544a684d7a426c4e5445334f546b334d54597a5a6a4e685a6a55304d44466b4e6d49785a5463794f544a6a5a4751304d6a633059544d334e7a59314f4749774d6a686b4d47526a4d4445314d434973496d6c68644349364d5459344d7a49794e7a677a4d7934774e4463784f444573496d35695a6949364d5459344d7a49794e7a677a4d7934774e4463784f444d73496d5634634349364d5459344d7a497a4d54517a4d79776963335669496a6f694d5455794d7a67784969776963324e766347567a496a7062496d52686447453663484a765a48566a64484d694c434a31633256794f6e427962325a70624755694c434a31633256794f6d3168626d466e5a534973496e567a5a5849365932567964476c6d61574e68644755694c434a7462324a7062475536626d393061575a70593246306157397563794973496d3176643256794f6e5a705a5863694c434a746233646c636a703163475268644755694c434a746233646c636a706859335270646d6c3065563973623263694c434a746233646c636a70735958647549697769625739335a5849366257467749697769625739335a58493664324679636d467564486b694c434a746233646c636a706d61584a74643246795a534973496d3176643256794f6e4268615849694c434a746233646c636a7031626e42686158496958583026782d616d7a2d637573746f6d617574686f72697a65722d7369676e61747572653d6e4a4941534425324268597a5575756670697146642532466b4e6b75673568374e766c356537783152654b3025324266777677676325324264597865556c78726d4d517358324f6d625657737270613945302532424b314f625a4625324262626f44456f4d70596e493348575773356b726745782532464a49706b3179694f316e4854786d774931445a70623741355439684f6270706b7265626e6155394154253242717a76543346614945484975493177517162655362646a6a626a4e38686367766948674b394a796c464143344f643230714f6679735a56536a4e534a4469594445455667353571253242566d25324275253242394538586f7a4267523849566a2532464132497849536931746d4a375379476d70393847686655595367374b62474e725943414145624f566a373666544333357865487648784e425332737a7934754b663275676447253242563553416869475368482532426a374d476f57616968496a385556525636715a363265314c6d6c345476533974387741306241787330417456646a526e6c6f65335359494f424f57704d557139784d5439774c586a506b4776564150434e49627a6865546151636c3976387975665725324274466d6d35343531655a54506a534d396e504d66324f37387a6c253246474c79794650484d4a416237797130727365476f4b51556a566c636779253246374a4f57714f5569357444253242555653464a397a3232726632434f74357a636f4b316e473152476425324657562532423662784f3578253246726b626f4d446e5732556f4b4e686735647059347631436549344a5a38625477633169384238706378444d467239446b65316837424575376e4f6425324671762532425425324225324667694d366c4b44337942663676703325324635654e35554f744339356325324237436e375a3859774b4a4e734f31767a33526372466634786e625245304b364255725625324269566c516b70494855305a61777368434d4b713878795646336445
2023.05.04 21:32:16 5: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.05.04 21:32:16 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.05.04 21:32:16 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.05.04 21:32:16 5: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.05.04 21:32:16 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.05.04 21:32:16 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.05.04 21:32:17 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.05.04 21:32:17 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.05.04 21:32:17 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.05.04 21:32:17 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.05.04 21:32:17 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.05.04 21:32:17 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.05.04 21:32:17 2: maxFailedConnects (20) reached, no more reconnect attemtps


Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: SuMiHe am 04 Mai 2023, 19:48:48
Jetzt hab ich ein "opened" MQTT2_CLIENT :-). Muß vor lauter Aufregung erstmal schauen, ob der Rest auch funktioniert...
Ja, fehlende readings sind auch da !
Lösung war:

MQTT2_CLIENT deaktiviert,
dann in der fhem.save die Enträge für den MQTT2_CLIENT und das MQTT2_DEVICE gelöscht,
MQTT2_CLIENT aktiviert und

TADA ! nun scheint es zu funktionieren... Mal sehen wie lange.

Erst einmal Danke für die Hilfe und natürlich die tolle Entwicklungsarbeit.

Gruß Mirko
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 04 Mai 2023, 22:00:08
@andreas1971, setze beim Client mal ein 'attr disable 1' und warte 24h.

Dann erstmal ohne notify usw. laufen lassen. Wenn das funktioniert, musst du schauen, was die vielen Anfragen am Server auslöst. Die Begrenzung liegt bei 150/Tag.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: pillepalle12 am 06 Mai 2023, 10:02:48
Hallo zusammen, ich habe festgestellt, dass der rasenmäher bei Regen Verzögerung in die Account sperre läuft.
Anscheinend meldet fhem bei Regen Verzögerung mehr als die 150 Anfragen an den worx Server.
Ist das bei Euch ähnlich?
Danke
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 06 Mai 2023, 10:36:23
Nein.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 06 Mai 2023, 12:17:18
Zitat von: pillepalle12 am 06 Mai 2023, 10:02:48Hallo zusammen, ich habe festgestellt, dass der rasenmäher bei Regen Verzögerung in die Account sperre läuft.
Anscheinend meldet fhem bei Regen Verzögerung mehr als die 150 Anfragen an den worx Server.
Ist das bei Euch ähnlich?
Danke

Wenn das bei dir so ist, dann hast du ein notify, doif o.ä. das das auslöst.
Fhem, bzw. der MQTT2_CLIENT empfängt nur  die Daten. Gesendet wir nur auf Anforderung von 'User'.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: pillepalle12 am 06 Mai 2023, 12:32:50
Danke für den Hinweis. Das muß ich nochmal prüfen. Hatte einen watchdog falls es nicht auf opened steht. Den habe ich deaktiviert und beobachte weiter sobald meine sperre weg ist.
Danke
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: ake am 08 Mai 2023, 11:36:49
Hallo zusammen,

eine Idee warum ich den Fehler bekomme?

MQTT_Worx: unknown attribute connectFn. Type 'attr MQTT_Worx ?' for a detailed list.

bei attr MQTT_Worx connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 08 Mai 2023, 11:53:47
Zitateine Idee warum ich den Fehler bekomme?
MQTT2_CLIENT zu alt.
Bitte FHEM update durchfuehren.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Skusi am 08 Mai 2023, 20:13:14
Hallo,
bei mir funktioniert zwar die Kommunikation zum Landroid wieder, aber ca jede Stunde habe ich im Log ein 2sec disconnect. !?

2023.05.07 14:05:04 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.07 14:05:06 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.07 15:11:49 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.07 15:11:51 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.07 16:15:35 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.07 16:15:37 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.07 17:18:41 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.07 17:18:43 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.07 18:24:58 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.07 18:25:00 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 08 Mai 2023, 20:40:51
Zitat von: Skusi am 08 Mai 2023, 20:13:14Hallo,
bei mir funktioniert zwar die Kommunikation zum Landroid wieder, aber ca jede Stunde habe ich im Log ein 2sec disconnect. !?

2023.05.07 14:05:04 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.07 14:05:06 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.07 15:11:49 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.07 15:11:51 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.07 16:15:35 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.07 16:15:37 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.07 17:18:41 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.07 17:18:43 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.07 18:24:58 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.07 18:25:00 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)

Jede Stunde passt, der Token läuft dann ab und wird erneuert.
Aber 2s kommt mir seltsam vor, hast du das Attribut 'nextOpenDelay' verändert?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Skusi am 09 Mai 2023, 20:06:26
ZitatAber 2s kommt mir seltsam vor, hast du das Attribut 'nextOpenDelay' verändert?

Steht bei mit auf 180.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 09 Mai 2023, 20:15:37
Zitat von: Skusi am 09 Mai 2023, 20:06:26
ZitatAber 2s kommt mir seltsam vor, hast du das Attribut 'nextOpenDelay' verändert?

Steht bei mit auf 180.

OK, mein Fehler.
Der 'normale' Reconnect erfolgt 'sofort'.
'nextOpenDelay' kommt erst bei einem misslungenen Connect zum Tragen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Skusi am 11 Mai 2023, 20:35:12
2023.05.11 07:21:25 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 07:21:27 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 08:27:49 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 08:27:51 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 09:33:22 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 09:33:23 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 10:38:48 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 10:38:50 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 11:44:04 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 11:44:06 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 12:50:23 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 12:50:25 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 13:56:41 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 13:56:43 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 14:58:26 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 14:58:30 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 16:02:27 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 16:02:29 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 17:08:13 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 17:08:15 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 18:10:31 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 18:10:33 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
Hmm, niemand ne Idee warum mein Log damit zugemüllt wird ???

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 11 Mai 2023, 21:32:53
Zitat von: Skusi am 11 Mai 2023, 20:35:122023.05.11 07:21:25 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 07:21:27 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 08:27:49 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 08:27:51 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 09:33:22 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 09:33:23 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 10:38:48 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 10:38:50 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 11:44:04 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 11:44:06 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 12:50:23 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 12:50:25 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 13:56:41 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 13:56:43 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 14:58:26 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 14:58:30 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 16:02:27 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 16:02:29 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 17:08:13 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 17:08:15 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
2023.05.11 18:10:31 1: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (m2c)
2023.05.11 18:10:33 1: iot.eu-west-1.worxlandroid.com:443 reappeared (m2c)
Hmm, niemand ne Idee warum mein Log damit zugemüllt wird ???



Das ist normal...

@Rudi, könnte man das noch abfangen, damit nur Probleme geloggt werden.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 12 Mai 2023, 10:46:25
Zitat@Rudi, könnte man das noch abfangen, damit nur Probleme geloggt werden.

Diese Meldungen werden per Voreinstellung mit verbose 4 ausgegeben, es sei denn man setzt das MQTT2_CLIENT verbose Attribut explizit, dann wird es mit diesem Level gemeldet.
Das ist natuerlich (nach etwas nachdenken) kontraproduktiv, deswegen habe ich LandroidUtils.pm geaendert, und es hart auf 4 gesetzt.

Ich weiss nicht, wie ich elegant (d.h. ohne jede Menge Code zu schreiben) erkennen soll, wann die Unterbrechnung "normal" ist, und wann ein Problem gibt.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 12 Mai 2023, 11:21:44
Zitat von: rudolfkoenig am 12 Mai 2023, 10:46:25
Zitat@Rudi, könnte man das noch abfangen, damit nur Probleme geloggt werden.

Diese Meldungen werden per Voreinstellung mit verbose 4 ausgegeben, es sei denn man setzt das MQTT2_CLIENT verbose Attribut explizit, dann wird es mit diesem Level gemeldet.
Das ist natuerlich (nach etwas nachdenken) kontraproduktiv, deswegen habe ich LandroidUtils.pm geaendert, und es hart auf 4 gesetzt.

Ich weiss nicht, wie ich elegant (d.h. ohne jede Menge Code zu schreiben) erkennen soll, wann die Unterbrechnung "normal" ist, und wann ein Problem gibt.

Danke fürs Anpassen. Die Meldung mit "verbose 1" zu senden, war 'unschön'.
Das die Unterscheidung zu einem Problem nicht vorhanden ist, habe ich schon vermutet.

Ich überwache den Client per Watchdog, von daher ist die Logausgabe erstmal 'nicht' relevant...

Wäre die Überwachung von 'maxFailedConnects' eine Möglichkeit? Z.B. logging ab 2 failconnects.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 29 Mai 2023, 15:27:09
Hallo zusammen,
hat zufällig in dieser Runde schon jemand einen Landroid Vision im Einsatz? Die Integration in FHEM hat (vermutlich) gut funktioniert, aber mein Eindruck ist, dass elementare Informationen noch nicht von Worx übermittelt werden, z.B. Status oder Fehler auch haben die Set-Befehle keine Auswirkung. Da der Vision mein erster Landroid ist fehlt mir leider auch der Vergleich. Rein vom Device-Status und den Readings sieht das aber eigentlich erstmal funktionsfähig aus.

Danke und Gruß
Chris

Internals:
  CID        2023302....
  DEF       
  FUUID      646cdd2d-f33f-fd7e-98ff-213e9dd88be47608
  IODev      MQTT_Worx
  LASTInputDev MQTT_Worx
  MQTT_Worx_MSGCNT 63
  MQTT_Worx_TIME 2023-05-23 20:26:18
  MSGCNT    63
  NAME      MQTT_Worx_Vision_L
  NR        736
  STATE      Active: mowerActive, Status: mowerStatusTxt, Error: mowerErrorTxt
  TYPE      MQTT2_DEVICE
  eventCount 68
  Helper:
    DBLOG:
      attrTemplateVersion:
        logdb:
          TIME      1684866385.6981
          VALUE      20221101
      cfg_al_lvl:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_al_t:
        logdb:
          TIME      1684866379.11714
          VALUE      60
      cfg_cmd:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_id:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_lg:
        logdb:
          TIME      1684866379.11714
          VALUE      en
      cfg_log_diag:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_log_imp:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_modules_DF_cut:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_modules_DF_fh:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_modules_EA_h:
        logdb:
          TIME      1684866379.11714
          VALUE      30
      cfg_rd:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_enabled:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_once_cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_once_time:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_paused:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_slots_10_cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_slots_10_d:
        logdb:
          TIME      1684866379.11714
          VALUE      4
      cfg_sc_slots_10_e:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_10_s:
        logdb:
          TIME      1684866379.11714
          VALUE      1065
      cfg_sc_slots_10_t:
        logdb:
          TIME      1684866379.11714
          VALUE      210
      cfg_sc_slots_11_cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_slots_11_d:
        logdb:
          TIME      1684866379.11714
          VALUE      5
      cfg_sc_slots_11_e:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_11_s:
        logdb:
          TIME      1684866379.11714
          VALUE      660
      cfg_sc_slots_11_t:
        logdb:
          TIME      1684866379.11714
          VALUE      210
      cfg_sc_slots_12_cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_slots_12_d:
        logdb:
          TIME      1684866379.11714
          VALUE      5
      cfg_sc_slots_12_e:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_12_s:
        logdb:
          TIME      1684866379.11714
          VALUE      1065
      cfg_sc_slots_12_t:
        logdb:
          TIME      1684866379.11714
          VALUE      210
      cfg_sc_slots_13_cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_slots_13_d:
        logdb:
          TIME      1684866379.11714
          VALUE      6
      cfg_sc_slots_13_e:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_13_s:
        logdb:
          TIME      1684866379.11714
          VALUE      660
      cfg_sc_slots_13_t:
        logdb:
          TIME      1684866379.11714
          VALUE      210
      cfg_sc_slots_14_cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_slots_14_d:
        logdb:
          TIME      1684866379.11714
          VALUE      6
      cfg_sc_slots_14_e:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_14_s:
        logdb:
          TIME      1684866379.11714
          VALUE      1065
      cfg_sc_slots_14_t:
        logdb:
          TIME      1684866379.11714
          VALUE      210
      cfg_sc_slots_1_cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_1_d:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_slots_1_e:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_1_s:
        logdb:
          TIME      1684866379.11714
          VALUE      660
      cfg_sc_slots_1_t:
        logdb:
          TIME      1684866379.11714
          VALUE      210
      cfg_sc_slots_2_cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_slots_2_d:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_slots_2_e:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_2_s:
        logdb:
          TIME      1684866379.11714
          VALUE      1065
      cfg_sc_slots_2_t:
        logdb:
          TIME      1684866379.11714
          VALUE      210
      cfg_sc_slots_3_cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_slots_3_d:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_3_e:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_3_s:
        logdb:
          TIME      1684866379.11714
          VALUE      660
      cfg_sc_slots_3_t:
        logdb:
          TIME      1684866379.11714
          VALUE      210
      cfg_sc_slots_4_cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_slots_4_d:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_4_e:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_4_s:
        logdb:
          TIME      1684866379.11714
          VALUE      1065
      cfg_sc_slots_4_t:
        logdb:
          TIME      1684866379.11714
          VALUE      210
      cfg_sc_slots_5_cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_slots_5_d:
        logdb:
          TIME      1684866379.11714
          VALUE      2
      cfg_sc_slots_5_e:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_5_s:
        logdb:
          TIME      1684866379.11714
          VALUE      660
      cfg_sc_slots_5_t:
        logdb:
          TIME      1684866379.11714
          VALUE      210
      cfg_sc_slots_6_cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_slots_6_d:
        logdb:
          TIME      1684866379.11714
          VALUE      2
      cfg_sc_slots_6_e:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_6_s:
        logdb:
          TIME      1684866379.11714
          VALUE      1065
      cfg_sc_slots_6_t:
        logdb:
          TIME      1684866379.11714
          VALUE      210
      cfg_sc_slots_7_cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_7_d:
        logdb:
          TIME      1684866379.11714
          VALUE      3
      cfg_sc_slots_7_e:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_7_s:
        logdb:
          TIME      1684866379.11714
          VALUE      330
      cfg_sc_slots_7_t:
        logdb:
          TIME      1684866379.11714
          VALUE      210
      cfg_sc_slots_8_cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_slots_8_d:
        logdb:
          TIME      1684866379.11714
          VALUE      3
      cfg_sc_slots_8_e:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_8_s:
        logdb:
          TIME      1684866379.11714
          VALUE      630
      cfg_sc_slots_8_t:
        logdb:
          TIME      1684866379.11714
          VALUE      210
      cfg_sc_slots_9_cfg_cut_b:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_sc_slots_9_d:
        logdb:
          TIME      1684866379.11714
          VALUE      4
      cfg_sc_slots_9_e:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      cfg_sc_slots_9_s:
        logdb:
          TIME      1684866379.11714
          VALUE      660
      cfg_sc_slots_9_t:
        logdb:
          TIME      1684866379.11714
          VALUE      210
      cfg_tq:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      cfg_tz:
        logdb:
          TIME      1684866379.11714
          VALUE      Europe/Berlin
      dat_act:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      dat_bt_c:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_bt_m:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_bt_nr:
        logdb:
          TIME      1684866379.11714
          VALUE      18
      dat_bt_p:
        logdb:
          TIME      1684866379.11714
          VALUE      31
      dat_bt_t:
        logdb:
          TIME      1684866379.11714
          VALUE      21.2
      dat_bt_v:
        logdb:
          TIME      1684866379.11714
          VALUE      17.8
      dat_cam_error:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_cam_status:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_conn:
        logdb:
          TIME      1684866379.11714
          VALUE      wifi
      dat_dmp_1:
        logdb:
          TIME      1684866379.11714
          VALUE      -2
      dat_dmp_2:
        logdb:
          TIME      1684866379.11714
          VALUE      4.2
      dat_dmp_3:
        logdb:
          TIME      1684866379.11714
          VALUE      191.9
      dat_features_ble:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_fw:
        logdb:
          TIME      1684866379.11714
          VALUE      3.29.0+85
      dat_head_act:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      dat_head_fw:
        logdb:
          TIME      1684866379.11714
          VALUE      1.2.5+2
      dat_head_uuid:
        logdb:
          TIME      1684866379.11714
          VALUE      98beb172-ca71-4003-af7e-3ab0e3b3e83b
      dat_le:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_lk:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_ls:
        logdb:
          TIME      1684866379.11714
          VALUE      9
      dat_mac:
        logdb:
          TIME      1684866379.11714
          VALUE      505A65D8FD29
      dat_modules_DF_stat:
        logdb:
          TIME      1684866379.11714
          VALUE      ok
      dat_modules_EA_error:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_modules_EA_stat:
        logdb:
          TIME      1684866379.11714
          VALUE      ok
      dat_mz_1_a:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_mz_1_id:
        logdb:
          TIME      1684866379.11714
          VALUE      1
      dat_mz_1_p:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_rain_cnt:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_rain_s:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_rfid_status:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_rsi:
        logdb:
          TIME      1684866379.11714
          VALUE      -68
      dat_sc_once:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_sc_slot:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_sh:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_st_b:
        logdb:
          TIME      1684866379.11714
          VALUE      390
      dat_st_bl:
        logdb:
          TIME      1684866379.11714
          VALUE      85
      dat_st_d:
        logdb:
          TIME      1684866379.11714
          VALUE      9077
      dat_st_wt:
        logdb:
          TIME      1684866379.11714
          VALUE      392
      dat_tm:
        logdb:
          TIME      1684866379.11714
          VALUE      2023-05-23T18:26:18.327Z
      dat_tr:
        logdb:
          TIME      1684866379.11714
          VALUE      0
      dat_uuid:
        logdb:
          TIME      1684866379.11714
          VALUE      98beb16d-5f2d-4002-a6b5-ce432d80c97b
      state:
        logdb:
          TIME      1685364893.91623
          VALUE      stopMower
  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-05-23 20:26:25  IODev          MQTT_Worx
    2023-05-29 14:55:38  accessories_digital_fence true
    2023-05-29 14:55:38  accessories_electric_height_adjustment true
    2023-05-23 20:26:25  attrTemplateVersion 20221101
    2023-05-29 14:55:38  battery_charge_cycles 48
    2023-05-29 14:55:38  battery_charge_cycles_reset 0
    2023-05-29 14:55:38  blade_work_time 1622
    2023-05-29 14:55:38  blade_work_time_reset 0
    2023-05-29 14:55:38  capabilities_1  auto_lock
    2023-05-29 14:55:38  capabilities_2  bluetooth_pairing
    2023-05-29 14:55:38  capabilities_3  mqtt
    2023-05-29 14:55:38  capabilities_4  rain_delay
    2023-05-29 14:55:38  capabilities_5  unrestricted_mowing_time
    2023-05-29 14:55:38  capabilities_6  vision
    2023-05-24 19:01:38  capabilities_available_1 auto_lock
    2023-05-29 14:55:38  city_country_id 276
    2023-05-29 14:55:38  city_created_at 2018-02-15 22:21:29
    2023-05-29 14:55:38  city_id        2817724
    2023-05-29 14:55:38  city_latitude  51.
    2023-05-29 14:55:38  city_longitude  7.
    2023-05-29 14:55:38  city_name     
    2023-05-29 14:55:38  city_updated_at 2018-02-15 22:21:29
    2023-05-29 14:55:38  created_at      2023-03-23 01:25:27
    2023-05-29 14:55:38  diagnostic      false
    2023-05-29 14:55:38  distance_covered 31575
    2023-05-29 14:55:38  features_auto_lock true
    2023-05-29 14:55:38  features_bluetooth_pairing true
    2023-05-29 14:55:38  features_chassis vision_l_2022
    2023-05-29 14:55:38  features_display_type lcd
    2023-05-29 14:55:38  features_input_type keyboard_push_knob
    2023-05-29 14:55:38  features_mqtt  true
    2023-05-29 14:55:38  features_rain_delay true
    2023-05-29 14:55:38  features_unrestricted_mowing_time true
    2023-05-29 14:55:38  firmware_auto_upgrade true
    2023-05-29 14:55:38  firmware_version 3.3
    2023-05-29 14:55:38  id              920867
    2023-05-29 14:55:38  improvement    false
    2023-05-29 14:55:38  iot_registered  true
    2023-05-29 14:55:38  lawn_perimeter  94
    2023-05-29 14:55:38  lawn_size      300
    2023-05-29 14:55:38  locked          false
    2023-05-29 14:55:38  mower_work_time 1725
    2023-05-29 14:55:38  mqtt_endpoint  iot.eu-west-1.worxlandroid.com
    2023-05-29 14:55:38  mqtt_registered true
    2023-05-29 14:55:38  mqtt_topics_command_in WX/MW/WR213E/98beb16d-5f2d-4002-a6b5-ce432d80c97b/v1/commandIn
    2023-05-29 14:55:38  mqtt_topics_command_out WX/MW/WR213E/98beb16d-5f2d-4002-a6b5-ce432d80c97b/v1/commandOut
    2023-05-29 14:55:38  name            Vision L
    2023-05-29 14:55:38  online          true
    2023-05-29 14:55:38  pin_code       
    2023-05-29 14:55:38  product_id      75
    2023-05-29 14:55:38  protocol        1
    2023-05-29 14:55:38  purchased_at    2023-05-19 00:00:00
    2023-05-29 14:55:38  push_notifications true
    2023-05-29 14:55:38  push_notifications_level notice
    2023-05-29 14:55:38  registered_at  2023-05-22 00:00:00
    2023-05-29 14:55:38  serial_number 
    2023-05-29 14:55:38  setup_location_latitude
    2023-05-29 14:55:38  setup_location_longitude
    2023-05-29 14:54:53  state          stopMower
    2023-05-29 14:55:38  test            false
    2023-05-29 14:55:38  time_zone      Europe/Berlin
    2023-05-29 14:55:38  updated_at      2023-05-26 20:37:17
    2023-05-29 14:55:38  user_id       
    2023-05-29 14:55:38  uuid           
    2023-05-29 14:55:38  warranty_expires_at 2026-05-19 00:00:00
    2023-05-29 14:55:38  warranty_registered true
Attributes:
  IODev      MQTT_Worx
  alias      Mower
  devicetopic WX/MW
  event-on-change-reading .*
  icon      scene_robo_lawnmower
  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
  model      worx_landroid_mower
  readingList $DEVICETOPIC/commandOut:.* { json2nameValue($EVENT,'',$JSONMAP) }
  room      Worx
  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)}
  stateFormat Active: mowerActive, Status: mowerStatusTxt, Error: mowerErrorTxt
  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")}}
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 30 Mai 2023, 09:48:09
Hallo Chris,

der devicetopic WX/MW passt so gar nicht zu dem wie es eigentlich aussehen müsste.
Diese Readings sehe ich zum ersten mal
    2023-05-29 14:55:38  mqtt_topics_command_in WX/MW/WR213E/98beb16d-5f2d-4002-a6b5-ce432d80c97b/v1/commandIn
    2023-05-29 14:55:38  mqtt_topics_command_out WX/MW/WR213E/98beb16d-5f2d-4002-a6b5-ce432d80c97b/v1/commandOut

Wenn die das beinhalten was man da interpretieren kann, ist die topic Struktur völlig anders als bei den anderen.
Selbst wenn die Befehle kompatibel sind, kann natürlich damit die setList nicht funktionieren. Versuch
attr MQTT_Worx_Vision_L devicetopic WX/MW/WR213E/98beb16d-5f2d-4002-a6b5-ce432d80c97b/v1Mal schauen, ob dann die Steuerung zumindest mit start und stop geht.

Gruß Otto
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 30 Mai 2023, 10:22:19
ZitatDiese Readings sehe ich zum ersten mal [...]
Sie werden von LandroidUtils.pm gesetzt, beim parsen der sog. device list (https://<url>/api/v2/product-items?status=1)
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 30 Mai 2023, 19:40:44
Zitat von: Otto123 am 30 Mai 2023, 09:48:09Versuch
attr MQTT_Worx_Vision_L devicetopic WX/MW/WR213E/98beb16d-5f2d-4002-a6b5-ce432d80c97b/v1Mal schauen, ob dann die Steuerung zumindest mit start und stop geht.

Hallo Otto,

vielen Dank. Das löst eigentlich schon alle Probleme. Ich kann den Mäher nun steuern und bekomme auch sinnvolle Readings inkl. Status.

Heißt aber, dass aus irgendeinem Grund die automatische Ermittlung des topics beim Vision anders ist.

Gruß
Chris
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 31 Mai 2023, 19:59:49
Zitat von: Flachzange am 30 Mai 2023, 19:40:44Heißt aber, dass aus irgendeinem Grund die automatische Ermittlung des topics beim Vision anders ist.

Das devicetopic wurde vom Template gesetzt.

Vermutlich ist das noch eine Betafirmware, laut Roboterforum tut sich da noch einiges.
Aktuelle Version 1.2.5+2 - 3.29.0+85

Zumindest habe ich bisher keine Info, das mit dem neuen Modell etwas geändert wurde.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 01 Juni 2023, 11:10:56
Achtung:
Positec hat für Worx Landroid und Kress die loginUrl von EU auf global umgestellt.

Übergangsfrist ist bis Ende Juni, danach wird die EU-Url deaktiviert.

Die LandroidUtils.pm wurde von mir angepasst und ist ab morgen über das Update verfügbar.


Als Info:
Da Rudi hat keinen Mäher zum Testen hat und ich Zugang zum Repository von Postitec habe, wurde die LandroidUtils.pm heute von mir übernommen.

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: ph1959de am 01 Juni 2023, 14:46:30
Zitat von: frober am 01 Juni 2023, 11:10:56Als Info:
Da Rudi hat keinen Mäher zum Testen hat und ich Zugang zum Repository von Postitec habe, wurde die LandroidUtils.pm heute von mir übernommen.
Schaust Du dann (oder Rudi noch vor/bei der Übergabe), dass LandroidUtils.pm auch noch in der maintainer.txt eingetragen wird?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 01 Juni 2023, 14:59:33
Zitat von: ph1959de am 01 Juni 2023, 14:46:30Schaust Du dann (oder Rudi noch vor/bei der Übergabe), dass LandroidUtils.pm auch noch in der maintainer.txt eingetragen wird?

Schau mal richtig, ist doch eingetragen.  ;)
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: ph1959de am 01 Juni 2023, 15:07:26
Hier (https://fhem.de/MAINTAINER.txt) finde ich das aber (noch?) nicht  :-[
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 01 Juni 2023, 15:08:50
Zitat von: ph1959de am 01 Juni 2023, 15:07:26Hier (https://fhem.de/MAINTAINER.txt) finde ich das aber (noch?) nicht  :-[

Ab Morgen mit dem Update, hab's ja heute erst übernommen.

Oder hier (https://svn.fhem.de/trac/browser/trunk/fhem/MAINTAINER.txt)
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 01 Juni 2023, 20:08:08
Zitat von: frober am 31 Mai 2023, 19:59:49
Zitat von: Flachzange am 30 Mai 2023, 19:40:44Heißt aber, dass aus irgendeinem Grund die automatische Ermittlung des topics beim Vision anders ist.

Das devicetopic wurde vom Template gesetzt.

Vermutlich ist das noch eine Betafirmware, laut Roboterforum tut sich da noch einiges.
Aktuelle Version 1.2.5+2 - 3.29.0+85

Zumindest habe ich bisher keine Info, das mit dem neuen Modell etwas geändert wurde.


Es gibt nur die eine Firmware. Heute gab es wieder ein Update. Damit ist die aktuelle Version 1.2.9+1 - 3.30.0+2 (falls es jemand braucht).
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 04 Juni 2023, 13:05:21
Wie kann ich herausfinden, welche Parameter ich via json setzen kann? Zum Beispiel kann ich bei meinem die Schnitthöhe elektronisch verstellen. Der dazugehörige Parameter ist "cfg_modules_EA_h". Per trial&error via x_raw_payload bin ich noch nicht an Ziel gekommen.

Danke schon mal!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 04 Juni 2023, 21:10:45
eventuell in dem Du die Parameter über die App einstellst und schaust was per MQTT an Readings zurück kommt. Normalerweise passt das zusammen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 04 Juni 2023, 22:39:19
Das Reading hatte ich ja, aber ich habe die Systematik jetzt erst verstanden. Der Parameter
cfg_modules_EA_h
übersetzt sich nach JSON wie folgt:

{"modules":{"EA":{"h":40}}}
Damit funktioniert es dann auch.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 06 Juni 2023, 19:21:48
Zitat von: frober am 01 Juni 2023, 11:10:56Achtung:
Positec hat für Worx Landroid und Kress die loginUrl von EU auf global umgestellt.

Übergangsfrist ist bis Ende Juni, danach wird die EU-Url deaktiviert.

Die LandroidUtils.pm wurde von mir angepasst und ist ab morgen über das Update verfügbar.

Update habe ich gemacht. Was mas muss ich tun, damit die URL angepasst wird?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 06 Juni 2023, 19:25:21
Hmm, warum auch immer, ich werde aktuell nicht mehr über neue Nachrichten in diesen Thread benachrichtigt.  :(


Zum Vision habe ich nun doch Infos:
Beginnend mit Vision wird der payload überarbeitet/besser strukturiert, es gibt neue Readings, einige fallen weg, die meisten sollen unverändert bleiben...

Alles steht noch am Anfang, aktuell umgesetzt:

Es gibt noch etwas mehr, mir fehlt aber aktuell die Zeit...bei Gelegenheit reiche ich nach.

Mittels 'protocol' 0|1 kann die API-Version umgeschaltet werden.
 
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 06 Juni 2023, 19:27:56
Zitat von: Flachzange am 06 Juni 2023, 19:21:48
Zitat von: frober am 01 Juni 2023, 11:10:56Achtung:
Positec hat für Worx Landroid und Kress die loginUrl von EU auf global umgestellt.

Übergangsfrist ist bis Ende Juni, danach wird die EU-Url deaktiviert.

Die LandroidUtils.pm wurde von mir angepasst und ist ab morgen über das Update verfügbar.

Update habe ich gemacht. Was mas muss ich tun, damit die URL angepasst wird?

Es gibt außer dem Update kein Handlungsbedarf. Die angepasste Url betrifft nur die Anforderung/Aktualisierung des Token und geschieht unbemerkt im Hintergrund.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 06 Juni 2023, 20:02:29
ZitatEs gibt außer dem Update kein Handlungsbedarf.
Ich vermute, ein FHEM Neustart ist doch notwendig.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 06 Juni 2023, 20:26:11
Danke für die schnellen Rückmeldungen.

Zitat von: rudolfkoenig am 06 Juni 2023, 20:02:29Ich vermute, ein FHEM Neustart ist doch notwendig.

Ja gut, das versteht sich ja von selbst, wenn man das Modul nicht händisch nachlädt.

Meine Frage kam daher, dass im Reading

mqtt_endpointweiterhin
iot.eu-west-1.worxlandroid.comsteht.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 06 Juni 2023, 21:39:24
Zitat von: rudolfkoenig am 06 Juni 2023, 20:02:29
ZitatEs gibt außer dem Update kein Handlungsbedarf.
Ich vermute, ein FHEM Neustart ist doch notwendig.

Sorry, nicht dran gedacht. Ohne wird es nicht funktionieren.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 06 Juni 2023, 21:42:44
Zitat von: Flachzange am 06 Juni 2023, 20:26:11Danke für die schnellen Rückmeldungen.

Zitat von: rudolfkoenig am 06 Juni 2023, 20:02:29Ich vermute, ein FHEM Neustart ist doch notwendig.

Ja gut, das versteht sich ja von selbst, wenn man das Modul nicht händisch nachlädt.

Meine Frage kam daher, dass im Reading

mqtt_endpointweiterhin
iot.eu-west-1.worxlandroid.comsteht.

Das ist die URL vom MQTT-Server, diese wird aus der API ausgelesen und sollte  sich im Fall einer Änderung automatisch aktualisieren.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 09 Juni 2023, 15:10:49
Zitat von: frober am 06 Juni 2023, 19:25:21Zum Vision habe ich nun doch Infos:
Beginnend mit Vision wird der payload überarbeitet/besser strukturiert, es gibt neue Readings, einige fallen weg, die meisten sollen unverändert bleiben...

Alles steht noch am Anfang, aktuell umgesetzt:
  • Versionierung der API, aktuell V1
  • SN durch UUID ersetzt
  • Zeitzone wird berücksichtigt, cfg.tz = Zeitzone, dat.tm = Zeitstempel
  • cfg.tm und cfg.dt wird zu cfg.tm (z.B. 2023-06-05T15:30:15.123Z) ISO8601 Zulu
  • der Sheduler wird erweitert, je nach Mäher mehrere Slots

Es gibt noch etwas mehr, mir fehlt aber aktuell die Zeit...bei Gelegenheit reiche ich nach.

Mittels 'protocol' 0|1 kann die API-Version umgeschaltet werden.

Wie versprochen, meine derzeitigen Infos.
Ich habe keinen Vision, deshalb kann ich nicht alles nachvollziehen, bzw. richtig übersetzen. Vielleicht hilft es trotzdem.


cfg.mzk ist das Flag zum Aktivieren des Zonenwächters

dat.st sind Mäherstatistiken:
dat.st.b: Arbeitszeit der Klinge in Minuten
dat.st.wt : Arbeitszeit des Mähers in Minuten
dat.st.d: Gesamtstrecke des Mähers in Metern
dat.st.bl: Länge des Begrenzungskabels in Metern

dat.bt.m: "maintenance charge" [Akkupflege?] (0 oder 1) Dies wird verwendet, wenn der Mäher längere Zeit in der Ladestation steht, um eine Beschädigung des Akkus zu vermeiden.
dat.tr: whether the trunk is open (when applicable, 0 or 1) -> bin nicht sicher, was damit gemeint ist
dat.act: Mäher "aktiv" (verwendbar); Wenn der Mäher verkauft wurde, wird dies immer 1 sein. Kann ignoriert werden.


Sheduler:
cfg.sc: Sheduler konfigurieren
cfg.sc.enabled: (entweder 1 oder 0) Sheduler aktiviert oder deaktiviert
cfg.sc.paused: Pause für Anzahl der Minuten, nächster Status gibt den Countdown zurück

Jeder Slot ist in cfg.sc.slots definiert, die von d,s,t ASC gespeichert werden:

d: Wochentag (beginnend mit 0 = Sonntag bis 6 = Samstag).
E: aktiviert oder nicht.
S: Startzeit für den Slot, als Minuten nach Mitternacht.
T: Arbeitszeit des Slots in Minuten.
cfg: Konfiguration des Slots, da das CFG-Hauptfeld während der Arbeit am Slot überschrieben wird.

cfg.cut.z: Zu mähende Zonen.
cfg.cut.b: Gibt an, ob der Rand gemäht werden soll.

Hinweis: Der Mäher (vermutlich Modellabhängig) kann die Anzahl der Slots pro Tag, die er verarbeiten kann, oder die CFG, die er von einem einzelnen Slot aus anwenden kann, einschränken.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 10 Juni 2023, 11:29:35
Danke @frober für die Infos. Was ich noch nicht verstanden habe, ob man jetzt die API-Version über protocol ändern kann/muss/sollte und welche Auswirkungen das hat. Dazu wäre eine API-Dokumentation hilfreich.

Grundsätzliches zum Vision: Hier ist Firmware-seitig noch sehr viel Bewegung drin. Viele Dinge, die bisher gingen, gehen aber auch mit dem Vision.

Was geht aktuell noch nicht:

Was ist neu und funktioniert schon:

1) Starten des Zonentraining
{"cmd":5}
2) Einstellung der Schnitthöhe (modellabhängig)
{"modules":{"EA":{"h":35}}}
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 11 Juni 2023, 19:29:42
Zitat von: Flachzange am 10 Juni 2023, 11:29:35Danke @frober für die Infos. Was ich noch nicht verstanden habe, ob man jetzt die API-Version über protocol ändern kann/muss/sollte und welche Auswirkungen das hat. Dazu wäre eine API-Dokumentation hilfreich.

Eine API-Doku gibt es bisher keine, aktuell ist die Umstrukturierung ja auch noch am Anfang...

Über protocol kannst du nach meinem Verständnis die neue API-Version "deaktivieren" und die alte benutzen. Das steht dir frei.
Vielleicht am Anfang sinnvoll, bis sich die Bewegung beruhigt hat. Muss jeder selbst entscheiden.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: pillepalle12 am 16 Juni 2023, 10:10:40
Hallo, da ich es noch nicht so richtig verstanden habe, aktualisiert sich die landroid utils von selbst bei einem fhem Update und danach Neustart oder muss ich im Linux Hand anlegen?
In meinem mqqt device steht immer noch EU in der URL.
Habe Update und restart schon ein paar mal versucht.

Danke
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 17 Juni 2023, 15:36:07
Zitat von: pillepalle12 am 16 Juni 2023, 10:10:40Hallo, da ich es noch nicht so richtig verstanden habe, aktualisiert sich die landroid utils von selbst bei einem fhem Update und danach Neustart oder muss ich im Linux Hand anlegen?
In meinem mqqt device steht immer noch EU in der URL.
Habe Update und restart schon ein paar mal versucht.

Danke

Fhem Update und Neustart reicht.
Die Url, die angezeigt wird ist nicht betroffen, sondern eine andere im Hintergrund.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Skusi am 26 Juni 2023, 18:24:40
Bei mir ist das Device auch vor und nach Update und restart disconnected  :(

Keinen Plan was ich nun machen muss damit wieder alles normal läuft.

Wie immer habe ich nix geschraubt, trotzdem läuft die Kommunikation nicht. Ich bin Ratlos was da immer los ist. Langsam verstehe ich auch in den Beiträgen hier nur noch Bahnhof.
Ich trau mich auch nicht hier die Logeinträge unter Verbose5 zu posten, weil ich nicht weiß welche Informationen nicht für die Öffentlichkeit bestimmt sind. Verstehen tue ich die Einträge aber auch nicht.

Kann jemand helfen ???
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 26 Juni 2023, 21:35:21
Ich wuerde ein "attr MQTT2_CLIENT verbose 4" Log posten, ich meine mit dieser Einstellung werden keine privaten Daten protokolliert.
Sicherheitshalber das Log nach Email und Passwort durchsuchen, und diese unkenntlich machen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Skusi am 27 Juni 2023, 20:17:53
Da wollte ich doch eben wie von Rudi vorgeschlagen einen Verbose 4 Log posten,
setzte Verbose auf 4 und klicke auf connect, und was soll ich sagen, der state geht auf "opened" !!!

Keine Ahnung was sich da seid gestern selbst repariert hat.
Egal, läuft erstmal wieder...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: pillepalle12 am 15 Juli 2023, 07:46:22
Ich habe inzwischen wieder alles raus gelöscht und neu angelegt.
Habe keinerlei watchdogs oder sonstige zusatz Basteleien drin.

Es läuft alles einwandfrei solange es keine Regen Verzögerung gibt. Sobald der Mäher das meldet werde ich aufgrund vieler Connections aus dem Account für 24h ausgesperrt.
Geht es nur mir so oder sind noch andere hier betroffen?
Ich bin gerade ziemlich ratlos.
Danke für eure Ideen.
Vg
Philipp
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 15 Juli 2023, 20:51:38
Ich bin mit meinem "Vison" vermutlich ein Exot und kann Dein Problem bei mir nicht bestätigen.

Hattest Du mal das Device komplett neu angelegt?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 15 Juli 2023, 23:10:29
Bei mir gibt es das Problem auch nicht.

Sicher dass du kein notify, Doif usw. übersehen hast?

Die Sperre bekommt man eigentlich nur, wen  man selbst und zu oft sendet.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: pillepalle12 am 16 Juli 2023, 11:44:20
Ich verstehe es auch nicht, habe keinerlei Zusätze zum device.
Es passiert auch tatsächlich nur bei der Regen Verzögerung. Ansonsten ist alles in Ordnung.
Ein Rätsel...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 16 Juli 2023, 12:10:33
klingt aber wirklich danach, dass Du was gebaut hast, was auf die Regenverzögerung triggert.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: pillepalle12 am 20 Juli 2023, 18:59:27
Heute bin ich sogar ohne Regen Verzögerung ausgesperrt worden.

Ich versteh es einfach nicht...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 21 Juli 2023, 19:10:30
Zitat von: pillepalle12 am 20 Juli 2023, 18:59:27Heute bin ich sogar ohne Regen Verzögerung ausgesperrt worden.

Ich versteh es einfach nicht...

Hast du evtl. in Perl (z.B. myUtils) etwas das sendet oder benutzt du die selbe clientId mehrfach?

Andere Möglichkeiten sehe ich nicht.
Der Verursacher muss auf deiner Seite liegen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: manfzimm am 22 Juli 2023, 10:32:29
Hallo zusammen,

mein Vision verweigert seit einier Zeit ohne erkennbaren Grund die Annahme von FHEM-Befehlen, wie startMower. Über die Hersteller App funktioniert es hingegen.

Die WLAN-Verbindung zum Mäher ist stabil (Ping vom FHEM-Rechner auf Mäher hat keine Drops).

Habe das MQTT2_DEVICE namens LanDroid_Vision_M gelöscht. Es wurde gem Anleitung (https://wiki.fhem.de/wiki/M%C3%A4hroboter:_Worx_Landroid,_Kress,_Landxcape) neu angelegt. Allerdings besteht das Problem weiterhin.

Das IODev LanDroid hat den Status opened

Ein Show MQTT traffic  zeigt:
   
SENT
   
WX/MW/commandIn
   
{"cmd":1}
10:11:41.251
   
SENT
   
WX/MW/WR208E/986d035c-ed22-4002-9ec9-a17a247c7bae/v1/commandIn
   
{}
10:11:42.329
   
RCVD
   
WX/MW/WR208E/986d035c-ed22-4002-9ec9-a17a247c7bae/v1/commandOut
   
{"cfg":{"id":1,"lg":"de","tz":"Europe/Andorra","log":{"imp":0,"diag":0},"rd":0,"cmd":0,"tq":0,"al":{"lvl":1,"t":600},"sc":{"enabled":1,"paused":0,"slots":[],"once":{"time":0,"cfg":{"cut":{"b":0,"z":[]}}}},"modules":{"DF":{"cut":1,"fh":0},"HL":{"enabled":1}},"cut":{"b":0,"z":[],"bd":0,"ob":0},"mz":{"p":[],"s":[{"id":1,"c":1,"cfg":{"cut":{"bd":100,"ob":0}}}]},"vis":{"slab":0}},"dat":{"uuid":"986d035c-ed22-4002-9ec9-a17a247c7bae","fw":"3.31.0+6","tm":"2023-07-22T08:11:35.756Z","ls":1,"le":0,"conn":"wifi","sc":{"slot":0,"once":0},"sh":0,"bt":{"t":18.7,"v":19.4,"p":100,"nr":67,"c":0,"m":0},"dmp":[1.2,6.6,143.8],"st":{"b":5693,"d":92977,"wt":5739,"bl":75},"rsi":-86,"lk":0,"tr":0,"act":1,"rain":{"s":0,"cnt":0},"features":{"ble":0},"head":{"uuid":"986d0362-44c3-4003-8371-3fd289216b7e","act":1,"fw":"1.2.13+3"},"modules":{"DF":{"stat":"ok"},"HL":{"stat":"ok","on":0}},"mac":"505A65D90DCD","cam":{"status":0,"error":0},"rfid":{"status":0},"mz":[{"id":1,"p":75925,"a":221814205}],"cut":{"z":0}}}

Das MQTT2_DEVICE namens LanDroid_Vision_M zeigt aktuell auch viele Readings an (Auszug):
mqtt_endpoint     iot.eu-west-1.worxlandroid.com
Allerdings fehlen Readings wie mowerActive, mowerStatusTxt, mowerErrorTxt

Nun ja, hat vielleicht jemand eine Idee, warum die Befehle via FHEM ignoriert werden ?

Ganz lieben Dank für Eure Unterstützung!!!!

Manfred


Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 22 Juli 2023, 11:30:01
Hallo Manfred,

das einzige, was an der MQTT-Antwort merkwürdig ist, sind die fehlenden Einträge für den Zeitplan. Das sollte aber irgendwie auch nicht die Erklärung für die nicht funktionierende Steuerung sein.

Stelle bitte mal

hier zur Verfügung plus Info, wann Du den FHEM command abgesetzt hast.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: manfzimm am 22 Juli 2023, 15:02:33
Hallo nochmals

und vielen Dank für die Unterstützung.

Hoffentlich packe ich hier das richtige Log rein.

1. LanDroid_Vision_M-2023.log:

2023-07-22_09:42:00 LanDroid_Vision_M cfg_log_imp: 0
2023-07-22_09:42:00 LanDroid_Vision_M cfg_id: 1
2023-07-22_09:42:00 LanDroid_Vision_M dat_head_act: 1
2023-07-22_09:42:00 LanDroid_Vision_M cfg_al_t: 600
2023-07-22_09:42:00 LanDroid_Vision_M cfg_mz_s_1_id: 1
2023-07-22_09:42:00 LanDroid_Vision_M dat_mac: 505A65D90DCD
2023-07-22_09:42:00 LanDroid_Vision_M dat_mz_1_a: 221814205
2023-07-22_09:42:00 LanDroid_Vision_M dat_tr: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_st_d: 92977
2023-07-22_09:42:00 LanDroid_Vision_M cfg_vis_slab: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_rfid_status: 0
2023-07-22_09:42:00 LanDroid_Vision_M cfg_lg: de
2023-07-22_09:42:00 LanDroid_Vision_M dat_dmp_3: 143.7
2023-07-22_09:42:00 LanDroid_Vision_M dat_mz_1_p: 75925
2023-07-22_09:42:00 LanDroid_Vision_M dat_bt_t: 18.4
2023-07-22_09:42:00 LanDroid_Vision_M dat_bt_c: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_rain_cnt: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_bt_m: 0
2023-07-22_09:42:00 LanDroid_Vision_M cfg_mz_s_1_cfg_cut_ob: 0
2023-07-22_09:42:00 LanDroid_Vision_M cfg_log_diag: 0
2023-07-22_09:42:00 LanDroid_Vision_M cfg_modules_DF_fh: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_rain_s: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_dmp_2: 6.6
2023-07-22_09:42:00 LanDroid_Vision_M cfg_tz: Europe/Andorra
2023-07-22_09:42:00 LanDroid_Vision_M dat_head_fw: 1.2.13+3
2023-07-22_09:42:00 LanDroid_Vision_M dat_mz_1_id: 1
2023-07-22_09:42:00 LanDroid_Vision_M dat_dmp_1: 1.2
2023-07-22_09:42:00 LanDroid_Vision_M cfg_al_lvl: 1
2023-07-22_09:42:00 LanDroid_Vision_M dat_cut_z: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_cam_error: 0
2023-07-22_09:42:00 LanDroid_Vision_M cfg_mz_s_1_cfg_cut_bd: 100
2023-07-22_09:42:00 LanDroid_Vision_M dat_sh: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_st_wt: 5739
2023-07-22_09:42:00 LanDroid_Vision_M dat_le: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_uuid: 986d035c-ed22-4002-9ec9-a17a247c7bae
2023-07-22_09:42:00 LanDroid_Vision_M cfg_sc_enabled: 1
2023-07-22_09:42:00 LanDroid_Vision_M dat_cam_status: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_conn: wifi
2023-07-22_09:42:00 LanDroid_Vision_M dat_lk: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_bt_p: 100
2023-07-22_09:42:00 LanDroid_Vision_M dat_bt_nr: 67
2023-07-22_09:42:00 LanDroid_Vision_M dat_sc_once: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_head_uuid: 986d0362-44c3-4003-8371-3fd289216b7e
2023-07-22_09:42:00 LanDroid_Vision_M cfg_tq: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_sc_slot: 0
2023-07-22_09:42:00 LanDroid_Vision_M cfg_mz_s_1_c: 1
2023-07-22_09:42:00 LanDroid_Vision_M dat_modules_HL_stat: ok
2023-07-22_09:42:00 LanDroid_Vision_M dat_modules_DF_stat: ok
2023-07-22_09:42:00 LanDroid_Vision_M dat_rsi: -87
2023-07-22_09:42:00 LanDroid_Vision_M dat_st_bl: 75
2023-07-22_09:42:00 LanDroid_Vision_M cfg_modules_HL_enabled: 1
2023-07-22_09:42:00 LanDroid_Vision_M cfg_cut_ob: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_features_ble: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_modules_HL_on: 0
2023-07-22_09:42:00 LanDroid_Vision_M cfg_sc_paused: 0
2023-07-22_09:42:00 LanDroid_Vision_M cfg_sc_once_cfg_cut_b: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_fw: 3.31.0+6
2023-07-22_09:42:00 LanDroid_Vision_M dat_st_b: 5693
2023-07-22_09:42:00 LanDroid_Vision_M dat_act: 1
2023-07-22_09:42:00 LanDroid_Vision_M cfg_sc_once_time: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_bt_v: 19.6
2023-07-22_09:42:00 LanDroid_Vision_M cfg_cut_b: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_tm: 2023-07-22T07:41:53.982Z
2023-07-22_09:42:00 LanDroid_Vision_M cfg_modules_DF_cut: 1
2023-07-22_09:42:00 LanDroid_Vision_M cfg_rd: 0
2023-07-22_09:42:00 LanDroid_Vision_M cfg_cmd: 0
2023-07-22_09:42:00 LanDroid_Vision_M cfg_cut_bd: 0
2023-07-22_09:42:00 LanDroid_Vision_M dat_ls: 1
2023-07-22_09:42:36 LanDroid_Vision_M attrTemplateVersion: 20221101

2. Device Listing:
define LanDroid_Vision_M MQTT2_DEVICE
setuuid LanDroid_Vision_M 64bb8847-f33f-f431-fc59-e309f0925392b1ce
attr LanDroid_Vision_M IODev LanDroid
attr LanDroid_Vision_M alias Mower
attr LanDroid_Vision_M devicetopic WX/MW
attr LanDroid_Vision_M event-on-change-reading .*
attr LanDroid_Vision_M icon scene_robo_lawnmower
attr LanDroid_Vision_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 LanDroid_Vision_M model worx_landroid_mower
attr LanDroid_Vision_M readingList $DEVICETOPIC/commandOut:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr LanDroid_Vision_M room Garten,MQTT2_DEVICE
attr LanDroid_Vision_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 LanDroid_Vision_M stateFormat Active: mowerActive, Status: mowerStatusTxt, Error: mowerErrorTxt
attr LanDroid_Vision_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")}}
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 22 Juli 2023, 20:38:45
Also ich musste

attr <device> devicetopic
explizit setzen damit es funktioniert. Siehe hier: https://forum.fhem.de/index.php?msg=1277353


Zu 1) Ich meinte die logs, die Du direkt vom Mäher bekommst (USB-Stick einstecken und warten)
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: manfzimm am 22 Juli 2023, 21:12:39
Wow, genau das war es.

attr LanDroid_Vision_M devicetopic WX/MW/WR208E/xxxBLABLUBBxxx/v1

Sorry, das hatte ich ich im Forum nicht gesehen.

Tausend Dank für die Unterstützung !!!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: vencam am 12 August 2023, 16:49:24
Muss mich hier mal bedanken! Ist jetzt total easy zu installieren und läuft top :)
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: eldrik am 28 August 2023, 11:54:06
Moin zusammen,

vielleicht hat ja einer eine Idee, ich hab meinen Worx auch mal wieder in FHEM aktiviert und neu hinterlegt (FHEM aktualisiert, alte MQTT2_DEVICE und MQTT2_Client Definitionen gelöscht und neue mit anderen Namen angelegt).

Für die Dauer eines Tages scheint auch soweit alles ok, der Status in FHEM als auch in der iOS Worx App ist abrufbar, wenngleich die MQTT Verbindung über    
MQTT2_CLIENT nicht immer auf connected steht.

Mir fällt dann meist abends mit Blickrichtung zum Garten auf, dass die Lade LED des Mowersstation über einen längeren Zeitpunkt blinkt.

Am nächsten Tag ist dann der Mower weder in FHEM noch über die iOS App erreichbar, dann setz ich das MQTT2_CLIENT Device auf disabled 1 und kann den Mower am nächsten Tag wieder normal verwenden.

Greetz
Eldrik

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 28 August 2023, 13:03:31
Womoeglich steht im FHEM-Log eine Begruendung, es lohnt sich einen Blick reinzufwerfen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: eldrik am 28 August 2023, 13:45:14
Zitat von: rudolfkoenig am 28 August 2023, 13:03:31Womoeglich steht im FHEM-Log eine Begruendung, es lohnt sich einen Blick reinzufwerfen.

stimmt natürlich! Ich hatte für das MQTT2_CLIENT Device auch irgendwann einmal auf Basis eines anderen Beitrags hier im Thread verbose 4 gesetzt:

Es finden sich diverse Reconnects vom Typ

2023.08.24 15:14:28.527 4: MQTT_Worx: reusing the acess_token
2023.08.24 15:14:28.714 4: MQTT_Worx: Got userId: 180051
2023.08.24 15:14:29.079 4: MQTT_Worx: Got device info
2023.08.24 15:14:29.123 4: IP: iot.eu-west-1.worxlandroid.com -> 54.155.186.133
2023.08.24 15:14:29.309 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.08.24 15:14:29.379 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)

und irgendwann wird scheinbar aufgegeben wenn die maxFailedConnects Meldungen zu dem Device gehören, zumindest passt die (20) zum maxFailedConnects Attributes des Devices.

2023.08.24 15:14:28.527 4: MQTT_Worx: reusing the acess_token
2023.08.24 15:14:28.714 4: MQTT_Worx: Got userId: 180051
2023.08.24 15:14:29.079 4: MQTT_Worx: Got device info
2023.08.24 15:14:29.123 4: IP: iot.eu-west-1.worxlandroid.com -> 54.155.186.133
2023.08.24 15:14:29.309 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.08.24 15:14:29.379 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.08.24 15:17:28.589 4: MQTT_Worx: reusing the acess_token
2023.08.24 15:17:30.255 4: MQTT_Worx: Got userId: 180051
2023.08.24 15:17:30.485 4: MQTT_Worx: Got device info
2023.08.24 15:17:30.526 4: IP: iot.eu-west-1.worxlandroid.com -> 34.253.243.233
2023.08.24 15:17:30.651 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.08.24 15:17:30.736 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.08.24 15:20:28.622 4: MQTT_Worx: reusing the acess_token
2023.08.24 15:20:28.833 4: MQTT_Worx: Got userId: 180051
2023.08.24 15:20:29.128 4: MQTT_Worx: Got device info
2023.08.24 15:20:29.179 4: IP: iot.eu-west-1.worxlandroid.com -> 54.76.230.176
2023.08.24 15:20:29.298 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.08.24 15:20:29.416 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.08.24 15:23:28.786 4: MQTT_Worx: reusing the acess_token
2023.08.24 15:23:29.617 4: MQTT_Worx: Got userId: 180051
2023.08.24 15:23:29.914 4: MQTT_Worx: Got device info
2023.08.24 15:23:29.952 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.08.24 15:23:29.969 4: IP: iot.eu-west-1.worxlandroid.com -> 52.208.23.126
2023.08.24 15:23:29.971 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.08.24 15:23:30.010 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.08.24 15:23:30.042 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.08.24 15:23:30.047 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.08.24 15:23:30.079 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.08.24 15:23:30.081 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.08.24 15:23:30.113 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.08.24 15:23:30.149 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2023.08.24 15:23:30.170 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.08.24 15:23:30.181 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.08.24 15:23:30.190 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.08.24 15:23:30.226 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.08.24 15:23:30.244 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2023.08.24 15:23:30.280 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.08.24 15:23:30.280 2: maxFailedConnects (20) reached, no more reconnect attemtps


defmod vom MQTT2_CLIENT

defmod MQTT_Worx MQTT2_CLIENT xx
attr MQTT_Worx connectFn {use LandroidUtils;;;;Landroid_connect($NAME,"worx",1)}
attr MQTT_Worx disable 1
attr MQTT_Worx execAfterConnect { my $h=$defs{$NAME};;MQTT2_CLIENT_doPublish($h,'PRM100/98D863315B2C/commandIn','{}')}
attr MQTT_Worx keepaliveTimeout 600
attr MQTT_Worx maxFailedConnects 20
attr MQTT_Worx nextOpenDelay 180
attr MQTT_Worx subscriptions PRM100/98D863315B2C/commandOut
attr MQTT_Worx username username@meineadresse.de (anonymisiert)
attr MQTT_Worx verbose 4


defmod vom MQTT2_DEVICE

defmod MQTT_Worx_M MQTT2_DEVICE
attr MQTT_Worx_M IODev MQTT_Worx
attr MQTT_Worx_M alias Mower
attr MQTT_Worx_M devicetopic PRM100/98D863315B2C
attr MQTT_Worx_M event-on-change-reading .*
attr MQTT_Worx_M group Rasenmäher
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
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, Batterie batteryPercent%
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")}}

setstate MQTT_Worx_M Active: Yes, Status: Home, Error: No error, Batterie 100%
setstate MQTT_Worx_M 2023-08-07 20:05:50 IODev MQTT_Worx
setstate MQTT_Worx_M 2023-08-24 14:23:29 SerialNumber 2019301984010091498B
setstate MQTT_Worx_M 2023-07-29 20:37:49 attrTemplateVersion 20221101
setstate MQTT_Worx_M 2023-08-24 14:23:29 batteryChargeCycle 749
setstate MQTT_Worx_M 2023-08-24 14:23:29 batteryCharging 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 batteryPercent 100
setstate MQTT_Worx_M 2023-08-24 14:23:29 batteryTemperature 23.3
setstate MQTT_Worx_M 2023-08-24 14:23:29 batteryVoltage 19.39
setstate MQTT_Worx_M 2023-08-24 15:23:29 battery_charge_cycles 748
setstate MQTT_Worx_M 2023-08-24 15:23:29 blade_work_time 62238
setstate MQTT_Worx_M 2023-08-24 15:23:29 blade_work_time_reset 42698
setstate MQTT_Worx_M 2023-08-24 15:23:29 blade_work_time_reset_at 2021-08-15 15:59:29
setstate MQTT_Worx_M 2023-08-24 14:23:29 borderLength 45
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_1 auto_lock
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_10 ota_upgrade
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_11 pairing_smartlink
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_12 pause_over_border
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_13 pause_over_wire
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_14 rain_delay
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_15 rain_delay_start
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_16 safe_go_home
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_17 scheduler_two_slots
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_18 unrestricted_mowing_time
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_19 zone_keeper
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_2 border_cut
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_3 digital_fence_settings
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_4 follow_border
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_5 lock
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_6 mqtt
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_7 multi_zone
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_8 multi_zone_percentage
setstate MQTT_Worx_M 2023-08-24 15:23:29 capabilities_9 one_time_scheduler
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_al_lvl 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_al_t 60
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_cmd 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_dt 24/08/2023
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_id 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_lg en
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_mz_1 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_mz_2 4
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_mz_3 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_mz_4 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_mzk 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_mzv_1 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_mzv_10 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_mzv_2 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_mzv_3 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_mzv_4 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_mzv_5 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_mzv_6 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_mzv_7 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_mzv_8 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_mzv_9 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_1_1 00:00
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_1_2 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_1_3 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_2_1 11:00
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_2_2 90
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_2_3 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_3_1 00:00
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_3_2 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_3_3 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_4_1 11:00
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_4_2 90
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_4_3 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_5_1 00:00
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_5_2 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_5_3 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_6_1 11:00
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_6_2 90
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_6_3 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_7_1 11:00
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_7_2 90
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_d_7_3 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_1_1 00:00
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_1_2 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_1_3 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_2_1 18:00
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_2_2 90
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_2_3 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_3_1 00:00
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_3_2 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_3_3 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_4_1 18:00
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_4_2 90
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_4_3 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_5_1 00:00
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_5_2 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_5_3 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_6_1 18:00
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_6_2 90
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_6_3 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_7_1 18:00
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_7_2 90
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_dd_7_3 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_distm 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_ots_bc 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_sc_ots_wtm 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 cfg_tm 14:23:28
setstate MQTT_Worx_M 2023-08-24 15:23:29 city_country_id 276
setstate MQTT_Worx_M 2023-08-24 15:23:29 city_created_at 2018-02-15 22:21:35
setstate MQTT_Worx_M 2023-08-24 15:23:29 city_id 2808893
setstate MQTT_Worx_M 2023-08-24 15:23:29 city_latitude 52.900002
setstate MQTT_Worx_M 2023-08-24 15:23:29 city_longitude 8.43333
setstate MQTT_Worx_M 2023-08-24 15:23:29 city_name Wildeshausen
setstate MQTT_Worx_M 2023-08-24 15:23:29 city_updated_at 2018-02-15 22:21:35
setstate MQTT_Worx_M 2023-08-24 15:23:29 created_at 2019-01-24 07:30:04
setstate MQTT_Worx_M 2023-08-24 14:23:29 dat_act 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 dat_bt_m 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 dat_conn wifi
setstate MQTT_Worx_M 2023-08-24 14:23:29 dat_fwb 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 dat_lk 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 dat_lz 8
setstate MQTT_Worx_M 2023-08-24 14:23:29 dat_mac 98D863315B2C
setstate MQTT_Worx_M 2023-08-24 14:23:29 dat_rain_cnt 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 dat_rain_s 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 dat_time_l 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 dat_time_r 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 dat_tr 0
setstate MQTT_Worx_M 2023-08-24 15:23:29 diagnostic true
setstate MQTT_Worx_M 2023-08-24 14:23:29 directionPitch -1.3
setstate MQTT_Worx_M 2023-08-24 14:23:29 directionRoll -0.2
setstate MQTT_Worx_M 2023-08-24 14:23:29 directionYaw 11.6
setstate MQTT_Worx_M 2023-08-24 15:23:29 distance_covered 971890
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_auto_lock 3.25
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_chassis m_2019
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_digital_fence_settings 3.25
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_display_type tube
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_input_type keyboard_tube
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_lock true
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_mqtt true
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_multi_zone true
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_multi_zone_percentage true
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_multi_zone_zones 4
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_one_time_scheduler 3.15
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_pause_over_wire 3.26
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_rain_delay true
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_rain_delay_start 3.08
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_safe_go_home 3.25
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_scheduler_two_slots 3.15
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_unrestricted_mowing_time true
setstate MQTT_Worx_M 2023-08-24 15:23:29 features_wifi_pairing smartlink
setstate MQTT_Worx_M 2023-08-24 14:23:29 firmware 3.32
setstate MQTT_Worx_M 2023-08-24 15:23:29 firmware_auto_upgrade true
setstate MQTT_Worx_M 2023-08-24 15:23:29 firmware_version 3.32
setstate MQTT_Worx_M 2023-08-24 15:23:29 id 291487
setstate MQTT_Worx_M 2023-08-24 15:23:29 improvement true
setstate MQTT_Worx_M 2023-08-24 15:23:29 iot_registered true
setstate MQTT_Worx_M 2023-08-14 12:00:57 json2nameValueErrorText error parsing (#2) '␎�J��␝�Ԋ�.␂��R��J��␝�Ԋ�.␂��R��␁ �I␁ H>␃'
setstate MQTT_Worx_M 2023-08-14 12:00:57 json2nameValueInput ␎�J��␝�Ԋ�.␂��R��J��␝�Ԋ�.␂��R��␁ �I␁ H>␃
setstate MQTT_Worx_M 2023-08-24 15:23:29 lawn_perimeter 47
setstate MQTT_Worx_M 2023-08-24 15:23:29 lawn_size 100
setstate MQTT_Worx_M 2023-08-24 15:23:29 locked false
setstate MQTT_Worx_M 2023-08-24 15:23:29 mac_address 98D863315B2C
setstate MQTT_Worx_M 2023-07-29 20:41:41 mowerActive Yes
setstate MQTT_Worx_M 2023-08-24 14:23:29 mowerActiveIndex 1
setstate MQTT_Worx_M 2023-08-24 14:23:29 mowerErrorIndex 0
setstate MQTT_Worx_M 2023-08-14 12:01:00 mowerErrorTxt No error
setstate MQTT_Worx_M 2023-08-24 14:23:29 mowerRainDelay 0
setstate MQTT_Worx_M 2023-08-24 14:23:29 mowerStatusIndex 1
setstate MQTT_Worx_M 2023-08-24 10:31:01 mowerStatusTxt Home
setstate MQTT_Worx_M 2023-08-24 14:23:29 mowerTimeCorrection -100
setstate MQTT_Worx_M 2023-08-24 15:23:29 mower_work_time 65138
setstate MQTT_Worx_M 2023-08-24 15:23:29 mqtt_endpoint iot.eu-west-1.worxlandroid.com
setstate MQTT_Worx_M 2023-08-24 15:23:29 mqtt_registered true
setstate MQTT_Worx_M 2023-08-24 15:23:29 mqtt_topics_command_in PRM100/98D863315B2C/commandIn
setstate MQTT_Worx_M 2023-08-24 15:23:29 mqtt_topics_command_out PRM100/98D863315B2C/commandOut
setstate MQTT_Worx_M 2023-08-24 15:23:29 name M
setstate MQTT_Worx_M 2023-08-24 15:23:29 online true
setstate MQTT_Worx_M 2023-08-24 15:23:29 pin_code 0000
setstate MQTT_Worx_M 2023-08-24 15:23:29 product_id 49
setstate MQTT_Worx_M 2023-08-24 15:23:29 protocol 0
setstate MQTT_Worx_M 2023-08-24 15:23:29 purchased_at 2019-04-26 00:00:00
setstate MQTT_Worx_M 2023-08-24 15:23:29 push_notifications true
setstate MQTT_Worx_M 2023-08-24 15:23:29 push_notifications_level notice
setstate MQTT_Worx_M 2023-08-24 15:23:29 registered_at 2019-05-01 00:00:00
setstate MQTT_Worx_M 2023-08-24 15:23:29 serial_number 1234567890
setstate MQTT_Worx_M 2023-08-24 15:23:29 setup_location_latitude 52.901773
setstate MQTT_Worx_M 2023-08-24 15:23:29 setup_location_longitude 8.467414
setstate MQTT_Worx_M 2023-08-25 09:11:21 state startMower
setstate MQTT_Worx_M 2023-08-24 15:23:29 test false
setstate MQTT_Worx_M 2023-08-24 15:23:29 time_zone Europe/Berlin
setstate MQTT_Worx_M 2023-08-24 14:23:29 torqueSetting -30
setstate MQTT_Worx_M 2023-08-24 14:23:29 totalBladeTime 62322
setstate MQTT_Worx_M 2023-08-24 14:23:29 totalDistance 973349
setstate MQTT_Worx_M 2023-08-24 14:23:29 totalTime 65224
setstate MQTT_Worx_M 2023-08-24 15:23:29 updated_at 2023-07-31 09:42:05
setstate MQTT_Worx_M 2023-08-24 15:23:29 user_id 180051
setstate MQTT_Worx_M 2023-08-24 15:23:29 uuid 96c52db8-410a-4002-a8c8-29b199a62333
setstate MQTT_Worx_M 2023-08-24 15:23:29 warranty_expires_at 2022-04-26 00:00:00
setstate MQTT_Worx_M 2023-08-24 15:23:29 warranty_registered true
setstate MQTT_Worx_M 2023-08-24 14:23:29 wifiQuality -83

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 28 August 2023, 14:13:33
das Problem habe ich auch seit ca. 2 bis 3 Wochen.
An der config hat sich meinerseits nichts geändert und es lief vorher über Monate (seit MQTT Neueinführung für den Worx) sehr problemlos.

Die Logs sehen sehr ähnlich aus wie bei Dir.

Ich muss dann auch das MQTT device auf disable setzen und einen Tag warten. Dann wieder aktivieren, set ... connect und es läuft wieder für eine gewisse Zeit, ggfs. ein paar Tage oder auch nur einen Tag teilweise.

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 28 August 2023, 16:51:28
Nach dem Log wuerde ich sagen, dass "reusing the access token" womoeglich nicht immer eine gute Idee ist.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 31 August 2023, 10:16:04
Was müsste man denn ändern? die Abfragezeiten/Abstände?!

So ist es recht nervig, da aktuell bei mir täglich die Verbindung dann nicht mehr möglich ist, dann auf disable gesetzt werden muss und erst am nächsten Tag wieder versucht werden kann auf disable=0 und dann connect zu machen.
In der Zeit ist dann natürlich auch keine Verbindung über die Worx App möglich, da dort auch gesperrt. Teilweise gehe ich dann zum Mäher selbst, um ihn per Hand einzuschalten ;)

Hat sonst keiner das Problem?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 31 August 2023, 10:52:00
Nein. Das von dir beschriebene Phänomen hatte ich nur in der Zeit, in der ich parallel zu der Verbindung von FHEM zu Worx auch noch den ioBroker mit dem Worx-Modul am Laufen hatte.

Daher: bist du wirklich GANZ sicher, dass du nicht mehrfach bzw. zu oft eine Verbindung nutzt?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: hanswerner1 am 31 August 2023, 13:49:29
Zitat von: fred_feuerstein am 31 August 2023, 10:16:04Hat sonst keiner das Problem?

Ich hatte das Problem in der letzten Zeit auch. Nach einiger Zeit blieb dann aber die Verbindung wieder stabil. Gemacht hatte ich das gleiche wie Du. Im Moment bleibt die Verbindung jetzt seit über 3 Wochen ohne disconnect.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: eldrik am 31 August 2023, 17:23:53
Zitat von: Ralli am 31 August 2023, 10:52:00Nein. Das von dir beschriebene Phänomen hatte ich nur in der Zeit, in der ich parallel zu der Verbindung von FHEM zu Worx auch noch den ioBroker mit dem Worx-Modul am Laufen hatte.

Daher: bist du wirklich GANZ sicher, dass du nicht mehrfach bzw. zu oft eine Verbindung nutzt?

also bei mir läuft reine die iOS Worx App und die Fhem Implementierung, keine weiteren Instanzen etc. daher ist es für mich weiter verwunderlich.

Greetz
Eldrik
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rippchen am 31 August 2023, 18:27:19
Hallo Leute,
vorab, ich bin nicht zu faul zum lesen, finde aber wohl nicht das richtige :-(
Also (nur) zu blöd ;-)

Ich habe bereits einen MQTT2 Server laufen, auf Port 1882.
Aktiviere ich jetzt den Worx win im Wiki beschrieben und starte mein FHEM neu möchte sich jedes MQTT2 Device mit dem MQTT_WORX veerbinden, bzw. tut es auch. Kann ich irgendwie einen anderen Port beim MQTT_WORX eingeben? Kann ich den WORX auf den vorhanden MQTT2 umstellen? Wo habe ich den Denkfehler?

Danke für eure Zeit.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 31 August 2023, 20:58:18
Zitat von: rippchen am 31 August 2023, 18:27:19Wo habe ich den Denkfehler?
Landroid Worx hat nichts mit MQTT2 Server zu tun, es ist ein MQTT2 Client!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: fred_feuerstein am 06 September 2023, 10:18:01
Zitat von: Ralli am 31 August 2023, 10:52:00Nein. Das von dir beschriebene Phänomen hatte ich nur in der Zeit, in der ich parallel zu der Verbindung von FHEM zu Worx auch noch den ioBroker mit dem Worx-Modul am Laufen hatte.

Daher: bist du wirklich GANZ sicher, dass du nicht mehrfach bzw. zu oft eine Verbindung nutzt?

Ja, bin sicher. Sonst ist seit der Umstellung auf die neuen Gegebenheiten bzgl. MQTT2 nichts mehr aktiv. Nur die eine Instanz in FHEM und eben die normale Android Worx App.
Aber ich will mal "auf Holz klopfen"... seit ein paar Tagen bleibt die  Verbindung auf "opened" und aktiv.
Mal weiter beobachten.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 22 September 2023, 06:47:51
So, ich scheine irgendwie in ein ähnliches Problem gelaufen zu sein. Ich hatte gestern keine Verbindung und habe mal ins log geschaut:

Zitat2023.09.21 00:00:00 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:01 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:01 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:01 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:02 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:02 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:02 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:02 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:05 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:05 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:05 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:05 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:05 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:05 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:05 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:07 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:07 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:08 2: maxFailedConnects (20) reached, no more reconnect attemtps

Das log wird bei normalem log level komplett zugeballert. Man kann zunächst nur erahnen, dass es sich um das worx MQTT_CLIENT device handelt. Das ist sehr ungüntig. Bei mir sind auch keine Altlasten (hatte nie welche) oder sonstige parallele Abfragen aktiv. Ich habe noch nicht mal etwas geändert.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: GreenFHEMfan am 22 September 2023, 16:20:32
Sorry, wenn ich hier im Urschleim anfange, aber ich bekomme das mit dem username schon nicht hin. Mein Username in der Landroid App ist meine Email-Adi - die nimmt das Device aber nicht an.

Es kommt der Fehler bei "attr MQTT_Worx mnennstiel@web.de":

MQTT_Worx: bad attribute name 'mnennstiel@web.de' (allowed chars: A-Za-z/\d_\.-)

Scheinbar gebe ich den Username falsch ein - ich verstehe nur nicht wo der Fehler ist!

Gruß
Maik

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 22 September 2023, 16:35:41
Zitat von: GreenFHEMfan am 22 September 2023, 16:20:32Es kommt der Fehler bei "attr MQTT_Worx mnennstiel@web.de":
Hast Du mal das probiert?
attr MQTT_Worx username mnennstiel@web.de
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: GreenFHEMfan am 22 September 2023, 17:13:59
Oh man, manchmal steht man wirklich auf dem Schlauch!

Danke Otto  :)
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: GreenFHEMfan am 22 September 2023, 22:06:35
Mal eine generelle Frage - funktioniert das Device momentan überhaupt?
BEI MIR BLEIBT DAS DEVICE DISONNECTED!
Ich habe allerdings noch einen 2. mqtt Server für Zigbee (zigbee2mqtt) Geräte auf port 1883 laufen. Kann ich diesen eigentlich auch für den mäher nutzen?
Naja auf jeden Fall ist das Gerät egal über welchen Port disconnted - habe ich schon getestet. Kann das event. an der neuen Firmware vom Landroid-Mäher hängen?
Das Worx Device will ich über den ext. Mosquitto Server einbinden!

Gruß Maik
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Otto123 am 22 September 2023, 23:40:03
Du liegst schief! Worx betreibt den MQTT Server, wir verbinden uns lediglich mit einem MQTT2 Client zu ihm. Deine MQTT Server spielen keine Rolle.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: GreenFHEMfan am 23 September 2023, 00:21:49
Es funktioniert - oh man.
Scheint irgendwie mit meinen vorherigen Huddeleien mit dem Username zusammenzuhängen. Nach löschen und neu anlegen des Devices NUR als Client OHNE MQTT-Server-Anbindung auf dem PI, hat es gleich funktioniert!
Danke!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: GreenFHEMfan am 23 September 2023, 00:43:57
Ok ich muss mich nochmal melden zwecks anlegen des Templates.

Nach versuchten Setzen des Templates mit:

set MQTT_Worx attrTemplate worx_landroid

sagt er mit "Unknown argument ?, choose one of connect password publish disconnect"

quasi, daß dieser set Befehl nicht erlaubt ist.
 
Wie bekomme ich den Befehl "attrTemplate" zugelassen?
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Ralli am 23 September 2023, 07:51:11
Du musst das Template auf das für den Mäher erstelle MQTT2_DEVICE und nicht auf den MQTT2_CLIENT anwenden - so steht's auch deutlich in der Anleitung.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: GreenFHEMfan am 23 September 2023, 11:47:23
Danke - ich habe das Device nicht gleich gefunden!
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: GreenFHEMfan am 27 September 2023, 17:27:58
Hallo,
Eine Frage zu der Aktuallisierung der Daten vom Landroid-MQTT-Server.
Meines Erachtens ist dafür das Reading "mowerTimeCorrection" im MQTT-Device zuständig.
Es scheint so, daß die Readings sich nur sporatisch bzw. bei einer Änderung einiger Readings  aktuallisiert.
Darunter scheint der Akkustand nicht zu sein.
Es wäre schön, wenn man die Aktuallisierung über das "mowerTimeCorrection" Reading beeinflussen kann.
Bei mir stehen 10sec in dem Reading ohne das dies irgendein Einfluss hat.
Wäre es möglich, daß man die Aktualisierungzeit selbst beeinflussen kann? - ich kenn das so aus einem anderen Landroid-FHEM Modul, das momentan nicht mehr rund läuft.

Gruß Maik
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: GreenFHEMfan am 27 September 2023, 22:31:24
Danke ! Das ging aber schnell  :)

Leider hat die Änderung nicht die gewünschte  Auswirkung.

Ich denke eine Lösung wäre, wenn aus dem Modul in der eingetragenen Zeit x von Reading "mowerTimeCorrection" ein Befehl (z.B.: set mowerTimeCorrection") Richtung Landroid-Server geschickt wird.

Alternativ kann man sich sicherlich etwas in FHEM basteln!

Gruß
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 27 September 2023, 23:07:44
mowerTimeCorrection hat nichts mit der Aktualisierung von Readings zu tun. Wie kommst Du drauf? Es ist die Mähzeitanpassung für den Mäher/Mähplan.

Was möchtest Du denn überhaupt erreichen? Die Readings werden dann aktualisiert, wenn sich die Werte ändern und natürlich wird der Akkustand (regelmäßig) aktualisiert. Bei mir alle ~10 Minuten, auch wenn sich nichts ändert.

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: GreenFHEMfan am 28 September 2023, 14:45:16
Der Grund für mein Anliegen ist vielfältig - eine ist z.B. die Auswertung, wenn sich der Mäher auf der Heimfahrt festfrist und die Räder drehen munter weiter. Selbst bei 10 minütlicher Aktualisierung wäre die Zeitspanne zu lange um einen Fehler über den Akkustand zu generieren.
Wie gesagt, es sollte ein Reading geben oder ein Anstoßer an den Landroid-Server über das Modul.
Leider habe ich die alte andere LANDROID Installation gelöscht, wo das möglich war.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 28 September 2023, 20:28:55
Zitat von: GreenFHEMfan am 28 September 2023, 14:45:16eine ist z.B. die Auswertung, wenn sich der Mäher auf der Heimfahrt festfrist und die Räder stehen munter weiter.

Und welches Reading liefert dir Diese Information?

Bei meinem Vision kann ich über

{"cmd":0}
einen manuellen refresh auslösen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 03 Oktober 2023, 11:07:34
Wenn die Räder durchdrehen, würde ich das Drehmoment reduzieren (torqueSetting).
Bei mir steht das z.B. auf -30.
Wenn er dann auf Störung geht, wertest du mowerErrorTxt aus und sendest dir eine Nachricht.

Das häufige Anfordern von Daten führt zu einer 24h-Sperre.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: StephanFHEM am 03 Oktober 2023, 22:02:04
Wurde das folgende Problem schon gelöst? Bei mir werden pausenlos Fehlermeldung wie die u.s in den Log geschrieben. Hab die Reconnects im Worx Client auch schon auf 21 gestellt und die Zahl im Log hat sich entsprechend geändert. Wird also definitiv von Worx ausgelöst

2023.09.21 00:00:00 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:01 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:01 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:01 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:02 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:02 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:02 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:02 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:05 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:05 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:05 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:05 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:05 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:05 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:05 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:07 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:07 2: maxFailedConnects (20) reached, no more reconnect attemtps
2023.09.21 00:00:08 2: maxFailedConnects (20) reached, no more reconnect attemtps
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 04 Oktober 2023, 18:30:52
ZitatBei mir werden pausenlos Fehlermeldung wie die u.s in den Log geschrieben.
Ich kann so eine "pausenlose" Fehlermeldung nachstellen, wenn ich waehrend der Reconnect-Phase die MQTT2_CLIENT Instanz umbenenne.
War das hier auch der Fall?

ZitatHab die Reconnects im Worx Client auch schon auf 21 gestellt und die Zahl im Log hat sich entsprechend geändert. Wird also definitiv von Worx ausgelöst
Das habe ich nicht verstanden.

"(20)" im Log kommt aus dem maxFailedConnects Attribut, das wird im LandroidUtils.pm auf 20 gesetzt, falls es nicht vorhanden ist.
Es wird 20-mal in jeweils 3 Minuten Abstand versucht, eine Verbindung aufzubauen.
Falls das nicht zum Erfolg fuehrt, dann kommt einmal die Meldung ins Log, und der Benutzer muss neue Versuche mit "set m2c connect" starten.
So jedenfalls die Theorie.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 04 Oktober 2023, 18:45:02
Zitat von: rudolfkoenig am 04 Oktober 2023, 18:30:52Es wird 20-mal in jeweils 3 Minuten Abstand versucht, eine Verbindung aufzubauen.
Falls das nicht zum Erfolg fuehrt, dann kommt einmal die Meldung ins Log, und der Benutzer muss neue Versuche mit "set m2c connect" starten.
So jedenfalls die Theorie.
Das wäre ja OK, aber zumindest im Log taucht diese Meldung im ms-Abstand auf.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: StephanFHEM am 04 Oktober 2023, 19:23:57
ist bei mir genau so im ms Abstand. Das bremst dann auch FHEM ganz schön aus. Das Attribut steht auf 20. Da ich nicht sicher war von welchem Device es kommt hab ich im Worx-Device bzw. Client das Attribut auf 21 gesetzt. Im Log tauchte dann auch die 21 auf. War für mich nur die Eingrenzung, dass es wirklich von Worx kommt.

Ich hab beim Reconnect kein Rename gemacht. Nach Neustart läuft das ganze teilweise auch fehlerlos für eine bestimmte Zeit (1-2 Tage) und erst dann geht es mit dauerhaft Fehlermeldungen los
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 04 Oktober 2023, 20:43:49
Koennt Ihr bitte die angehaengten Dateien einspielen, und damit einen neuen Versuch starten?
Vmtl. gibt es keine Endlosschleife damit, und im Problemfall steht im Log ein Text der Art:
ZitatRFN ERROR: m2s.localhost:1883 ne m2c.localhost:1883
Auf die konkrete Ausgestaltung des Textes bin ich in eurem Fall neugierig.

Das schuetzt nicht davor, dass die die Verbindung nicht hergestellt werden kann, nur von der Endlosschleife.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 06 Oktober 2023, 10:50:46
Danke, habe ersetzt und beobachte mal. Da es bei mir nur sporadisch auftrat kann es mit der Rückmeldung ggf. dauern.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: mabula am 19 Oktober 2023, 10:17:16
Bitte Fehlermeldung nicht überbewerten, teils erwartbar.
Wegen Endlosmeldung habe ich auch die zwei Routinen übernommen. Ich habe folgende Meldung erhalten:
2023.10.18 22:01:32.335 1: ERROR: Landroid_connect MQTT_Worx - read from https://id.worx.com:443 timed out
2023.10.18 22:04:33.079 1: ERROR: Landroid_connect MQTT_Worx - read from https://id.worx.com:443 timed out
Allerdings wurde der Landroid tags zuvor in den Winterschlaf gesetzt, durch Ausschalten am Button und danach erst Akku entfernt.

Gruß Hans-Jörg
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: StephanFHEM am 04 November 2023, 14:30:40
Die Endlos-Fehlermeldungen im Log waren weg. Jetzt sind sie wieder da. Wahrscheinlich aber nur, weil ich vor ein paar Tagen ein FHEM Update gemacht habe und die Daten evnt. wieder mit den offiziellen Versionen ersetzt wurden. Kann der Workaround gegen die Endlosschleife in die offizielle Version überführt werden?

Diese RFN Error Fehlermeldung habe ich übrigens in der ganzen Zeit auch nicht bekommen und die Verbindung lief fehlerfrei
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 05 November 2023, 12:05:56
ZitatKann der Workaround gegen die Endlosschleife in die offizielle Version überführt werden?
Ich kenne keinen Workaround.
Die modifizierten Dateien aus Beitrag #776 erzeugen im Problemfall nur die o.g. Meldung.
Sie sollte helfen, die Ursache der Endlosschleife festzustellen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 05 November 2023, 12:18:30
Korrektur: die Endlosschliefe wird in einem bestimmten Fall vermieden, in diesem Fall sollte aber eine Meldung kommen, die mich interessiert.
Ich habe die beiden geaenderten Dateien jetzt eingecheckt.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: StephanFHEM am 05 November 2023, 12:45:00
Dank dir. Mir ist so eine Meldung bisher nicht aufgefallen. Ich werde weiter auf die Logs achten
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 22 November 2023, 19:06:47
Zur Info einige Code "Übersetzungen" für den Vision...

Vision
Status Code
      •   110 border crossing
      •   111 exploring lawn
Error Codes
      •   110 camera error
      •   111 mapping exploration required
      •   112 mapping exploration failed
      •   113 RFID reader error
      •   114 Headlight error
      •   116 Blade height adjustment blocked
RTK
Status Code
      •   103 Moving to zone - The mower is reaching a zone without cutting
      •   104 Going home - The mower is returning to the charging station
Error Codes
      •   100 Charging station docking error
      •   101 HBI error
      •   102 OTA error
      •   103 Map error
      •   104 Excessive slope
      •   105 Unreachable zone
      •   106 Unreachable charging station
      •   108 Insufficient sensor data
      •   109 Training start disallowed
      •   115 Missing charging station
      •   116 Blade height adjustment blocked

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: efyzz am 16 Januar 2024, 22:56:38
Nabend,
ich wollte nur nochmal DANKE sagen!

Zitat von: frober am 20 April 2023, 14:53:57Betriebssystem ab Stretch

Nach dem Umstieg von Jessie auf Bookworm funktionierte die Einrichtung blasenfrei. Der Frühling kann kommen  ;D
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Allgaeuer am 28 Januar 2024, 11:29:54
Hallo zusammen,
erst mal vielen Dank an alle Mitwirkenden für diese Lösung.  :)

Ende Dezember habe ich diese MQTT-Variante auf einem Testsystem installiert (hatte letztes Jahr die Interimslösung mit IOBroker). Das läuft soweit alles ganz prima. Testweise habe ich einen Stromausfall simuliert und dann macht MQTT alle 3 Minuten einen reconnect. Wenn ich dann wieder edit Files -> fhem.cfg -> save mache, dann erfolgt der reconnect nur alle Stunde.
Ich habe dann verbose=4 im MQTT2_CLIENT gesetzt und beim 3-Min-reconnect fällt der Eintrag "MQTT_Worx: reusing the acess_token" auf.
Die Problembeschreigungen einiger Posts hier könnten die gleiche Ursache haben.

Zur Info:
- Mein Worx hat noch die alte Firmware 3.26 drauf, die ca. alle 9..12 Minuten was sendet.
- Den Stromausfall habe ich bei 2024-01-28_10:17:09 gemacht
- save von "fhem.cfg" dann bei 2024-01-28_10:36:16

Via Filelog lasse ich die Batteriewerte mitscheiben. Man sieht auch ganz gut den stündlichen Reconnect:
2024-01-28_06:16:21 MQTT_Worx DISCONNECTED
2024-01-28_06:16:21 MQTT_Worx disconnected
2024-01-28_06:16:22 MQTT_Worx disconnected
2024-01-28_06:16:23 MQTT_Worx CONNECTED
2024-01-28_06:16:25 Maehrobbi_1 batteryVoltage: 19.84
2024-01-28_06:16:25 Maehrobbi_1 cfg_tm: 06:16:56
2024-01-28_06:20:20 Maehrobbi_1 cfg_tm: 06:20:51
2024-01-28_06:20:20 Maehrobbi_1 batteryVoltage: 19.83
2024-01-28_06:30:22 Maehrobbi_1 cfg_tm: 06:30:53
2024-01-28_06:30:22 Maehrobbi_1 batteryTemperature: 11.9
2024-01-28_06:30:22 Maehrobbi_1 batteryVoltage: 19.80
2024-01-28_06:41:42 Maehrobbi_1 batteryVoltage: 19.77
2024-01-28_06:41:42 Maehrobbi_1 cfg_tm: 06:42:14
2024-01-28_06:50:10 Maehrobbi_1 cfg_tm: 06:50:42
2024-01-28_06:50:10 Maehrobbi_1 batteryTemperature: 11.8
2024-01-28_06:50:10 Maehrobbi_1 batteryVoltage: 19.75
2024-01-28_07:00:57 Maehrobbi_1 cfg_tm: 07:01:29
2024-01-28_07:00:57 Maehrobbi_1 batteryVoltage: 19.72
2024-01-28_07:12:00 Maehrobbi_1 cfg_tm: 07:12:32
2024-01-28_07:12:00 Maehrobbi_1 batteryVoltage: 19.69
2024-01-28_07:19:53 MQTT_Worx DISCONNECTED
2024-01-28_07:19:53 MQTT_Worx disconnected
2024-01-28_07:19:55 MQTT_Worx disconnected
2024-01-28_07:19:55 MQTT_Worx CONNECTED
2024-01-28_07:19:57 Maehrobbi_1 cfg_tm: 07:20:29
2024-01-28_07:19:57 Maehrobbi_1 batteryVoltage: 19.66
2024-01-28_07:21:16 Maehrobbi_1 cfg_tm: 07:21:48
2024-01-28_07:30:22 Maehrobbi_1 cfg_tm: 07:30:54
2024-01-28_07:30:22 Maehrobbi_1 batteryTemperature: 11.7
2024-01-28_07:30:22 Maehrobbi_1 batteryVoltage: 19.64
2024-01-28_07:41:07 Maehrobbi_1 batteryVoltage: 19.61
2024-01-28_07:41:07 Maehrobbi_1 cfg_tm: 07:41:39
2024-01-28_07:51:47 Maehrobbi_1 batteryVoltage: 19.59
2024-01-28_07:51:47 Maehrobbi_1 cfg_tm: 07:52:19
2024-01-28_08:02:12 Maehrobbi_1 batteryVoltage: 19.56
2024-01-28_08:02:12 Maehrobbi_1 cfg_tm: 08:02:44
2024-01-28_08:13:18 Maehrobbi_1 batteryTemperature: 11.6
2024-01-28_08:13:18 Maehrobbi_1 cfg_tm: 08:13:50
2024-01-28_08:13:18 Maehrobbi_1 batteryVoltage: 19.53
2024-01-28_08:20:12 MQTT_Worx DISCONNECTED
2024-01-28_08:20:12 MQTT_Worx disconnected
2024-01-28_08:20:13 MQTT_Worx disconnected
2024-01-28_08:20:13 MQTT_Worx CONNECTED
2024-01-28_08:20:16 Maehrobbi_1 batteryVoltage: 19.52
2024-01-28_08:20:16 Maehrobbi_1 cfg_tm: 08:20:47
2024-01-28_08:25:17 Maehrobbi_1 batteryVoltage: 19.50
2024-01-28_08:25:17 Maehrobbi_1 cfg_tm: 08:25:49
2024-01-28_08:33:32 Maehrobbi_1 batteryVoltage: 19.48
2024-01-28_08:33:32 Maehrobbi_1 cfg_tm: 08:34:04
2024-01-28_08:43:19 Maehrobbi_1 batteryVoltage: 19.46
2024-01-28_08:43:19 Maehrobbi_1 cfg_tm: 08:43:51
2024-01-28_08:51:47 Maehrobbi_1 cfg_tm: 08:52:19
2024-01-28_08:51:47 Maehrobbi_1 batteryVoltage: 19.43
2024-01-28_09:03:30 Maehrobbi_1 batteryVoltage: 19.41
2024-01-28_09:03:30 Maehrobbi_1 cfg_tm: 09:04:02
2024-01-28_09:14:40 Maehrobbi_1 batteryVoltage: 19.38
2024-01-28_09:14:40 Maehrobbi_1 cfg_tm: 09:15:12
2024-01-28_09:14:40 Maehrobbi_1 batteryTemperature: 11.5
2024-01-28_09:23:36 MQTT_Worx DISCONNECTED
2024-01-28_09:23:36 MQTT_Worx disconnected
2024-01-28_09:23:37 MQTT_Worx disconnected
2024-01-28_09:23:37 MQTT_Worx CONNECTED
2024-01-28_09:23:40 Maehrobbi_1 batteryVoltage: 19.36
2024-01-28_09:23:40 Maehrobbi_1 cfg_tm: 09:24:12
2024-01-28_09:26:21 Maehrobbi_1 cfg_tm: 09:26:53
2024-01-28_09:26:21 Maehrobbi_1 batteryVoltage: 19.35
2024-01-28_09:37:25 Maehrobbi_1 cfg_tm: 09:37:57
2024-01-28_09:37:25 Maehrobbi_1 batteryVoltage: 19.32
2024-01-28_09:47:42 Maehrobbi_1 batteryVoltage: 19.29
2024-01-28_09:47:42 Maehrobbi_1 cfg_tm: 09:48:14
2024-01-28_09:57:46 Maehrobbi_1 cfg_tm: 09:58:18
2024-01-28_09:57:46 Maehrobbi_1 batteryVoltage: 19.27
2024-01-28_10:09:03 Maehrobbi_1 batteryVoltage: 19.24
2024-01-28_10:09:03 Maehrobbi_1 cfg_tm: 10:09:35
2024-01-28_10:20:20 Maehrobbi_1 cfg_tm: 10:20:52
2024-01-28_10:20:20 Maehrobbi_1 batteryVoltage: 19.21
2024-01-28_10:17:11 global INITIALIZED
2024-01-28_10:25:04 MQTT_Worx disconnected
2024-01-28_10:25:04 MQTT_Worx CONNECTED
2024-01-28_10:25:07 Maehrobbi_1 batteryVoltage: 19.20
2024-01-28_10:25:07 Maehrobbi_1 cfg_tm: 10:25:39
2024-01-28_10:25:07 Maehrobbi_1 batteryTemperature: 11.5
2024-01-28_10:28:03 MQTT_Worx DISCONNECTED
2024-01-28_10:28:03 MQTT_Worx disconnected
2024-01-28_10:28:03 MQTT_Worx CONNECTED
2024-01-28_10:28:06 Maehrobbi_1 batteryVoltage: 19.19
2024-01-28_10:28:06 Maehrobbi_1 cfg_tm: 10:28:37
2024-01-28_10:30:21 Maehrobbi_1 cfg_tm: 10:30:53
2024-01-28_10:31:03 MQTT_Worx DISCONNECTED
2024-01-28_10:31:03 MQTT_Worx disconnected
2024-01-28_10:31:03 MQTT_Worx CONNECTED
2024-01-28_10:31:06 Maehrobbi_1 cfg_tm: 10:31:37
2024-01-28_10:34:03 MQTT_Worx DISCONNECTED
2024-01-28_10:34:03 MQTT_Worx disconnected
2024-01-28_10:34:03 MQTT_Worx CONNECTED
2024-01-28_10:34:06 Maehrobbi_1 batteryVoltage: 19.18
2024-01-28_10:34:06 Maehrobbi_1 cfg_tm: 10:34:37
2024-01-28_10:36:16 global REREADCFG
2024-01-28_10:36:16 global FILEWRITE fhem.cfg
2024-01-28_10:36:17 MQTT_Worx disconnected
2024-01-28_10:36:17 MQTT_Worx CONNECTED
2024-01-28_10:36:19 Maehrobbi_1 cfg_tm: 10:36:51
2024-01-28_10:36:19 Maehrobbi_1 batteryVoltage: 19.17
2024-01-28_10:39:34 Maehrobbi_1 batteryVoltage: 19.16
2024-01-28_10:39:34 Maehrobbi_1 cfg_tm: 10:40:06
2024-01-28_10:48:57 Maehrobbi_1 batteryVoltage: 19.13
2024-01-28_10:48:57 Maehrobbi_1 cfg_tm: 10:49:28
2024-01-28_10:59:37 Maehrobbi_1 batteryVoltage: 19.09
2024-01-28_10:59:37 Maehrobbi_1 cfg_tm: 11:00:09

Hier das Logfile mit den auffälligen Einträgen ,,MQTT_Worx: reusing the acess_token" im Zeitraum nach Stromausfall bis ,,save fhem.cfg"

2024.01.28 06:16:21 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2024.01.28 06:16:22 4: MQTT_Worx: Got auth info, type refresh_token
2024.01.28 06:16:22 4: MQTT_Worx: Got userId: 209893
2024.01.28 06:16:22 4: MQTT_Worx: Got device info
2024.01.28 06:16:22 4: IP: iot.eu-west-1.worxlandroid.com -> 52.215.239.59
2024.01.28 06:16:23 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2024.01.28 06:16:23 4: MQTT_Worx received CONNACK
2024.01.28 06:16:23 4: MQTT_Worx received SUBACK
2024.01.28 06:16:25 4: MQTT_Worx received PUBLISH
2024.01.28 06:20:20 4: MQTT_Worx received PUBLISH
2024.01.28 06:30:22 4: MQTT_Worx received PUBLISH
2024.01.28 06:36:23 4: MQTT_Worx received PINGRESP
2024.01.28 06:41:42 4: MQTT_Worx received PUBLISH
2024.01.28 06:50:10 4: MQTT_Worx received PUBLISH
2024.01.28 06:56:23 4: MQTT_Worx received PINGRESP
2024.01.28 07:00:57 4: MQTT_Worx received PUBLISH
2024.01.28 07:12:00 4: MQTT_Worx received PUBLISH
2024.01.28 07:16:23 4: MQTT_Worx received PINGRESP
2024.01.28 07:19:53 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2024.01.28 07:19:54 4: MQTT_Worx: Got auth info, type refresh_token
2024.01.28 07:19:54 4: MQTT_Worx: Got userId: 209893
2024.01.28 07:19:55 4: MQTT_Worx: Got device info
2024.01.28 07:19:55 4: IP: iot.eu-west-1.worxlandroid.com -> 52.209.189.174
2024.01.28 07:19:55 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2024.01.28 07:19:55 4: MQTT_Worx received CONNACK
2024.01.28 07:19:55 4: MQTT_Worx received SUBACK
2024.01.28 07:19:57 4: MQTT_Worx received PUBLISH
2024.01.28 07:21:16 4: MQTT_Worx received PUBLISH
2024.01.28 07:30:22 4: MQTT_Worx received PUBLISH
2024.01.28 07:39:55 4: MQTT_Worx received PINGRESP
2024.01.28 07:41:07 4: MQTT_Worx received PUBLISH
2024.01.28 07:51:47 4: MQTT_Worx received PUBLISH
2024.01.28 07:59:55 4: MQTT_Worx received PINGRESP
2024.01.28 08:02:12 4: MQTT_Worx received PUBLISH
2024.01.28 08:13:18 4: MQTT_Worx received PUBLISH
2024.01.28 08:19:55 4: MQTT_Worx received PINGRESP
2024.01.28 08:20:12 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2024.01.28 08:20:13 4: MQTT_Worx: Got auth info, type refresh_token
2024.01.28 08:20:13 4: MQTT_Worx: Got userId: 209893
2024.01.28 08:20:13 4: MQTT_Worx: Got device info
2024.01.28 08:20:13 4: IP: iot.eu-west-1.worxlandroid.com -> 52.215.130.215
2024.01.28 08:20:13 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2024.01.28 08:20:14 4: MQTT_Worx received CONNACK
2024.01.28 08:20:14 4: MQTT_Worx received SUBACK
2024.01.28 08:20:16 4: MQTT_Worx received PUBLISH
2024.01.28 08:25:17 4: MQTT_Worx received PUBLISH
2024.01.28 08:33:32 4: MQTT_Worx received PUBLISH
2024.01.28 08:40:13 4: MQTT_Worx received PINGRESP
2024.01.28 08:43:19 4: MQTT_Worx received PUBLISH
2024.01.28 08:51:47 4: MQTT_Worx received PUBLISH
2024.01.28 09:00:13 4: MQTT_Worx received PINGRESP
2024.01.28 09:03:30 4: MQTT_Worx received PUBLISH
2024.01.28 09:14:40 4: MQTT_Worx received PUBLISH
2024.01.28 09:20:14 4: MQTT_Worx received PINGRESP
2024.01.28 09:23:36 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2024.01.28 09:23:37 4: MQTT_Worx: Got auth info, type refresh_token
2024.01.28 09:23:37 4: MQTT_Worx: Got userId: 209893
2024.01.28 09:23:37 4: MQTT_Worx: Got device info
2024.01.28 09:23:37 4: IP: iot.eu-west-1.worxlandroid.com -> 54.72.66.188
2024.01.28 09:23:37 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2024.01.28 09:23:38 4: MQTT_Worx received CONNACK
2024.01.28 09:23:38 4: MQTT_Worx received SUBACK
2024.01.28 09:23:40 4: MQTT_Worx received PUBLISH
2024.01.28 09:26:21 4: MQTT_Worx received PUBLISH
2024.01.28 09:37:25 4: MQTT_Worx received PUBLISH
2024.01.28 09:43:37 4: MQTT_Worx received PINGRESP
2024.01.28 09:47:42 4: MQTT_Worx received PUBLISH
2024.01.28 09:57:46 4: MQTT_Worx received PUBLISH
2024.01.28 10:03:37 4: MQTT_Worx received PINGRESP
2024.01.28 10:09:03 4: MQTT_Worx received PUBLISH
2024.01.28 10:20:20 4: MQTT_Worx received PUBLISH
2024.01.28 10:17:09 1: Including fhem.cfg
2024.01.28 10:17:10 3: WEB: port 8083 opened
2024.01.28 10:17:11 2: eventTypes: loaded 32 lines from ./log/eventTypes.txt
2024.01.28 10:17:11 1: Including ./FHEM/fhem-WorxMQTT.cfg
2024.01.28 10:17:11 1: Including ./FHEM/fhem-Landroid_MQTT_single_new.cfg
2024.01.28 10:17:11 1: Including ./log/fhem.save
2024.01.28 10:17:11 0: Featurelevel: 6.2
2024.01.28 10:17:11 0: Server started with 12 defined entities (fhem.pl:28227/2023-11-29 perl:5.032001 os:linux user:fhem pid:398)
2024.01.28 10:17:11 1: ERROR: Landroid_connect MQTT_Worx - gethostbyname id.worx.com failed
2024.01.28 10:25:04 4: MQTT_Worx: Got auth info, type refresh_token
2024.01.28 10:25:04 4: MQTT_Worx: Got userId: 209893
2024.01.28 10:25:04 4: MQTT_Worx: Got device info
2024.01.28 10:25:04 4: IP: iot.eu-west-1.worxlandroid.com -> 52.210.112.108
2024.01.28 10:25:04 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2024.01.28 10:25:05 4: MQTT_Worx received CONNACK
2024.01.28 10:25:05 4: MQTT_Worx received SUBACK
2024.01.28 10:25:07 4: MQTT_Worx received PUBLISH
2024.01.28 10:28:02 4: MQTT_Worx: reusing the acess_token
2024.01.28 10:28:03 4: MQTT_Worx: Got userId: 209893
2024.01.28 10:28:03 4: MQTT_Worx: Got device info
2024.01.28 10:28:03 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2024.01.28 10:28:03 4: IP: iot.eu-west-1.worxlandroid.com -> 52.31.164.131
2024.01.28 10:28:03 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2024.01.28 10:28:03 4: MQTT_Worx received CONNACK
2024.01.28 10:28:03 4: MQTT_Worx received SUBACK
2024.01.28 10:28:05 4: MQTT_Worx received PUBLISH
2024.01.28 10:30:21 4: MQTT_Worx received PUBLISH
2024.01.28 10:31:02 4: MQTT_Worx: reusing the acess_token
2024.01.28 10:31:03 4: MQTT_Worx: Got userId: 209893
2024.01.28 10:31:03 4: MQTT_Worx: Got device info
2024.01.28 10:31:03 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2024.01.28 10:31:03 4: IP: iot.eu-west-1.worxlandroid.com -> 34.248.133.102
2024.01.28 10:31:03 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2024.01.28 10:31:03 4: MQTT_Worx received CONNACK
2024.01.28 10:31:04 4: MQTT_Worx received SUBACK
2024.01.28 10:31:05 4: MQTT_Worx received PUBLISH
2024.01.28 10:34:03 4: MQTT_Worx: reusing the acess_token
2024.01.28 10:34:03 4: MQTT_Worx: Got userId: 209893
2024.01.28 10:34:03 4: MQTT_Worx: Got device info
2024.01.28 10:34:03 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2024.01.28 10:34:03 4: IP: iot.eu-west-1.worxlandroid.com -> 52.211.208.60
2024.01.28 10:34:03 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2024.01.28 10:34:04 4: MQTT_Worx received CONNACK
2024.01.28 10:34:04 4: MQTT_Worx received SUBACK
2024.01.28 10:34:06 4: MQTT_Worx received PUBLISH
2024.01.28 10:35:36 2: AttrTemplates: got 261 entries
2024.01.28 10:36:16 1: Including fhem.cfg
2024.01.28 10:36:16 3: WEB: port 8083 opened
2024.01.28 10:36:16 2: eventTypes: loaded 32 lines from ./log/eventTypes.txt
2024.01.28 10:36:16 1: Including ./FHEM/fhem-WorxMQTT.cfg
2024.01.28 10:36:16 1: Including ./FHEM/fhem-Landroid_MQTT_single_new.cfg
2024.01.28 10:36:16 1: Including ./log/fhem.save
2024.01.28 10:36:16 4: MQTT_Worx: reusing the acess_token
2024.01.28 10:36:16 4: MQTT_Worx: Got userId: 209893
2024.01.28 10:36:17 4: MQTT_Worx: Got device info
2024.01.28 10:36:17 4: IP: iot.eu-west-1.worxlandroid.com -> 34.241.93.214
2024.01.28 10:36:17 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2024.01.28 10:36:17 4: MQTT_Worx received CONNACK
2024.01.28 10:36:17 4: MQTT_Worx received SUBACK
2024.01.28 10:36:19 4: MQTT_Worx received PUBLISH
2024.01.28 10:39:34 4: MQTT_Worx received PUBLISH
2024.01.28 10:48:56 4: MQTT_Worx received PUBLISH
2024.01.28 10:56:17 4: MQTT_Worx received PINGRESP
2024.01.28 10:59:37 4: MQTT_Worx received PUBLISH

Ich helfe gerne mit weiteren Daten und Analysen. Momentan ist es ein Testsystem nur mit FHEM ohne anderen Schnickschnack.

Gruß Allgäuer
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 28 Januar 2024, 17:24:25
Hallo Allgaeuer,

ein Reconnect jede Std. ist normal, da der Token nicht länger gültig ist.
Sollte vorher ein Reconnect sein, wird der Token weiterverwendet.

Bei einer Störung werden folgende Attribute benutzt:
nextOpenDelay
maxFailedConnects

Danach muss man manuell connecten.
Das hat den Hintergurnd, da die max. Anzahl von Anfragen an den Server begrenzt ist und eine 24h-Sperre triggert.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Allgaeuer am 28 Januar 2024, 18:30:05
Hallo Frober,

der Reconnect alle Stunde war und ist für mich ok.
Nach Stromausfall und Reboot wird der Reconnect aber alle 3 Minuten gemacht und bleibt in diesem Takt. Die Verbindung wird auch aufgebaut und es kommen Daten, aber jetzt reconnected er halt alle 3 Minuten. Ein manuelles connecten ist nicht erforderlich. Das geht so lange, bis ich manuell ein "save fhem.cfg" mache.
Wenn man einen Stromausfall nicht mitbekommt, dann läuft man Gefahr, schnell in die 24-h-Sperre zu laufen.
Das möchte ich gerne vermeiden.

Gruß Allgäuer
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 31 Januar 2024, 15:14:49
Ok, das sollte so nicht sein.

Ich versuche es bei mir nachzustellen...
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 03 Februar 2024, 10:32:31
Hallo Allgaeuer,

dass ein Stromausfall Probleme machen kann ist klar. Spätestens nach einem Neustart, sollte Fhem wieder normal laufen, sofern der Stromausfall keine Schäden hinterlassen hat.

Dein 'save fhem.cfg' hat mich stutzig gemacht..

Du hast die fhem.cfg editiert, bzw. Teile ausgelagert. Die fhem.cfg wird von Fhem verwaltet und bei einem save neu geschrieben. Fhem passt auch bei Bedarf die Reihenfolge an, wie die Definitionen geladen werden, was bei dir nicht mehr einwandfrei funktioniert. Ich behaupte mal, dass das die Ursache ist...

2024.01.28 10:36:16 1: Including ./FHEM/fhem-WorxMQTT.cfg
2024.01.28 10:36:16 1: Including ./FHEM/fhem-Landroid_MQTT_single_new.cfg

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Allgaeuer am 04 Februar 2024, 10:33:47
Hallo Frober,

herzlichen Dank für Deine Analyse.  :)

Ja, ich habe Teile der fhem.cfg ausgelagert wegen der Übersichtlichkeit. Für neue Testzwecke habe ich meine alte fhem.cfg (vor dem Auslagern) hergenommen und den Stromausfall wieder gemacht. Der Reconnect alle 3 Minuten ergibt sich auch hier. Daraufhin habe ich weiter probiert:
- sudo reboot (Linux-Shell): auch hier Reconnect alle 3 Minuten (obwohl "Server Shutdown" im FHEM-Logfile ein gezieltes Runterfahren signalisiert, im angehängten Listing bei "2024.02.03 19:17:39 0: Server shutdown" zu sehen)
- shutdown restart (in FHEM): Reconnet alle Stunde
- rereadcfg (in FHME): Reconnet alle Stunde.

Wenn das Problem nur bei mir auftritt, dann möchte ich Dich oder andere Formumsmitglieder nicht damit belästigen. Sorry. Ihr habt viel Zeit in diese Lösung gesteckt und das verdient vollen Respekt.

2024.02.03 19:01:58 2: AttrTemplates: got 261 entries
2024.02.03 19:07:09 4: MQTT_Worx received PUBLISH
2024.02.03 19:08:31 4: MQTT_Worx received PINGRESP
2024.02.03 19:17:39 0: Server shutdown
2024.02.03 19:17:48 1: Including fhem.cfg
2024.02.03 19:17:49 2: eventTypes: loaded 32 lines from ./log/eventTypes.txt
2024.02.03 19:17:50 1: Including ./log/fhem.save
2024.02.03 19:17:50 0: Featurelevel: 6.2
2024.02.03 19:17:50 0: Server started with 9 defined entities (fhem.pl:28227/2023-11-29 perl:5.032001 os:linux user:fhem pid:393)
2024.02.03 19:17:50 4: MQTT_Worx: reusing the acess_token
2024.02.03 19:17:50 1: ERROR: Landroid_connect2 MQTT_Worx - gethostbyname api.worxlandroid.com failed
2024.02.03 19:19:39 2: AttrTemplates: got 261 entries
2024.02.03 19:20:54 4: MQTT_Worx: reusing the acess_token
2024.02.03 19:20:54 4: MQTT_Worx: Got userId: 209893
2024.02.03 19:20:55 4: MQTT_Worx: Got device info
2024.02.03 19:20:55 4: IP: iot.eu-west-1.worxlandroid.com -> 52.209.189.174
2024.02.03 19:20:55 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2024.02.03 19:20:55 4: MQTT_Worx received CONNACK
2024.02.03 19:20:55 4: MQTT_Worx received SUBACK
2024.02.03 19:20:57 4: MQTT_Worx received PUBLISH
2024.02.03 19:23:54 4: MQTT_Worx: reusing the acess_token
2024.02.03 19:23:54 4: MQTT_Worx: Got userId: 209893
2024.02.03 19:23:54 4: MQTT_Worx: Got device info
2024.02.03 19:23:54 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2024.02.03 19:23:54 4: IP: iot.eu-west-1.worxlandroid.com -> 34.241.0.83
2024.02.03 19:23:55 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2024.02.03 19:23:55 4: MQTT_Worx received CONNACK
2024.02.03 19:23:55 4: MQTT_Worx received SUBACK
2024.02.03 19:23:57 4: MQTT_Worx received PUBLISH
2024.02.03 19:26:54 4: MQTT_Worx: reusing the acess_token
2024.02.03 19:26:54 4: MQTT_Worx: Got userId: 209893
2024.02.03 19:26:54 4: MQTT_Worx: Got device info
2024.02.03 19:26:54 4: iot.eu-west-1.worxlandroid.com:443 disconnected, waiting to reappear (MQTT_Worx)
2024.02.03 19:26:54 4: IP: iot.eu-west-1.worxlandroid.com -> 54.229.32.127
2024.02.03 19:26:55 4: iot.eu-west-1.worxlandroid.com:443 reappeared (MQTT_Worx)
2024.02.03 19:26:55 4: MQTT_Worx received CONNACK

Mal schauen, ob ich den Fehler bei mir weiter eingrenzen kann.

Ich wünsche Dir und dem Forum einen schönen Tag.  :)

Gruß Allgäuer
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 04 Februar 2024, 15:31:47
Wächst im Allgäu gerade mehr Gras als hier? ;)

Mein Worx Vision liegt gerade im Schuppen und wartet auf März. Dann kann ich wieder mitreden und ich befürchte es geht hier noch anderen so.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Allgaeuer am 04 Februar 2024, 16:26:46
@Flachzange: Gegenüber meinem internationalen Team spreche ich gerne vom ,,mediterranen Allgäu", wenn ich aber ganz ehrlich bin, kannˋs bei uns richtig kalt sein. Also Rasenwachstum aktuell ca. 0,0.  :)
Mein Robby steht im Keller auf der Ladestation (nur um die Software zu testen, ohne Begrenzungskabel). Aktuell tutˋs nicht so weh, wenn Worx einen mal 24h aussperrt.

Gruß Allgäuer

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 04 Februar 2024, 17:33:52
Zitat von: Allgaeuer am 04 Februar 2024, 10:33:47- sudo reboot (Linux-Shell): auch hier Reconnect alle 3 Minuten (obwohl "Server Shutdown" im FHEM-Logfile ein gezieltes Runterfahren signalisiert, im angehängten Listing bei "2024.02.03 19:17:39 0: Server shutdown" zu sehen)
- shutdown restart (in FHEM): Reconnet alle Stunde
- rereadcfg (in FHME): Reconnet alle Stunde.

Wenn ich dich richtig verstehe, hast du damit nur noch das Problem beim Stromausfall und Neustart des Betriebssystems.

Dann scheint es an der Netzwerkverbindung zu hängen, anscheinend geht diese alle 3 Min verloren. Schaue dir mal die Logs vom Hostsystem an...

...und starte den Host mal ohne vorherigen Stromausfall neu.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Allgaeuer am 04 Februar 2024, 22:41:11
Hallo Frober

in den System-Logfiles bin ich nicht fündig geworden. Um zu testen, ob das Neztwerk sporadisch unterbricht, habe ich von einem andren Raspi via mosquitto im 1-sec-Takt Messages an meinen Problem-Raspi geschickt. Hier gab's keine Unterbrechung. Zu Worx gab's aber den bekannten Reconnect.
Grübel, grübel, wo kanns sonst noch liegen ?

Jeder Reconnect wird mit "timestamp 4: MQTT_Worx: reusing the acess_token" eingeleitet. Bei mir steht das Attribut "nextOpenDelay" auf 180 und das dürften die 3 Minuten für den Reconnect sein. Ich rätsle, warum diese Funktion aufgerufen wird, obwohl Daten vom Landroid gekommen sind (also eine erfolgreiche Verbindung bestand).

Schönen Abend,

Gruß Allgäuer
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 05 Februar 2024, 17:59:04
Zitat von: Allgaeuer am 04 Februar 2024, 22:41:11Um zu testen, ob das Neztwerk sporadisch unterbricht, habe ich von einem andren Raspi via mosquitto im 1-sec-Takt Messages an meinen Problem-Raspi geschickt. Hier gab's keine Unterbrechung. Zu Worx gab's aber den bekannten Reconnect.
Grübel, grübel, wo kanns sonst noch liegen ?
Damit hast du nur das Heimnetz getestet und nicht das Internet. Es muss ja nicht direkt der Raspi sein..
Hast du irgendwelche Filter (Firewall, DNS, o.ä.) fürs Internet, die einen stabilen schnellen Verbindungsaufbau verhindern?

ZitatJeder Reconnect wird mit "timestamp 4: MQTT_Worx: reusing the acess_token" eingeleitet. Bei mir steht das Attribut "nextOpenDelay" auf 180 und das dürften die 3 Minuten für den Reconnect sein. Ich rätsle, warum diese Funktion aufgerufen wird, obwohl Daten vom Landroid gekommen sind (also eine erfolgreiche Verbindung bestand).
Die Logmeldung bedeutet ja nur, dass der Token noch gültig ist und weiterverwendet wird. Der Reconnect erfolgt anhand des Attr "nextOpenDelay", was aber nicht bedeutet, das die Verbindung nicht schon vorher verloren geht. Theoretisch kann die Internetverbindung Ping Pong spielen und irgendwann wird sie stabil und dauerhaft.

Das sind aber nur Vermutungen, vielleicht thematisierst du das Problem in einem anderen Unterforum (z.B. Einplatienencomputer) wo mehr Spezialisten lesen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Allgaeuer am 11 Februar 2024, 10:27:25
Hallo zusammen,

ich denke, ich habe das Problem identifiziert und eine Lösung gefunden.

Zum Testen hatte ich ja ein neues, ganz schlankes System (RPI2) aufgesetzt. Das hat sehr schnell gebootet und auch ganz schnell FHEM gestartet. Offensichtlich waren noch nicht alle Netzwerkdienste aktiv und deshalb der 3-Minuten reconnect. Als Abhilfe habe ich die fhem.service (unter /etc/systemd/system ) leicht modifiziert. Die beiden Einträge mit "network.target" auskommentiert und dafür die beiden Einträge mit "network-online.target" eingefügt. Jetzt sind die 3-Min-Reconnects weg.
Das erklärt auch, warum bei anderen der Fehler nicht auftritt.

[Unit]
Description=FHEM Home Automation
#Wants=network.target
#After=network.target
Requires=network-online.target
After=network-online.target
#Requires=postgresql.service

Viele Grüße,

Allgäuer
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Violinux am 11 Februar 2024, 13:15:40
Hi
macht ja auch Sinn komplettes Netzwerk vorher zu starten
bevor Fhem u.A. in Aktion gehen.

systemd[1]: Reached target Network is Online.
systemd[1]: Starting FHEM Home Automation...
systemd[1]: Starting OpenVPN connection to server...
systemd[1]: Starting xyz connection to server...
... ;)

Gruß, Uwe
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Allgaeuer am 11 Februar 2024, 17:29:27
Hi,

das fhem.service von der FHEM-Standardinstallation macht genau das leider nicht. Das Netzwerk wird zwar vorher gestartet, aber FHEM wartet nicht, bis die Netzwerkdienste alle laufen. Mein "fehlerbehaftetes" System habe ich nach Standardprozedur installiert. Dieses Problem tritt aber nur auf, wenn man ein ganz "schlankes" FHEM installiert. Das ist nicht der Normalfall.

@Rudi König: Ich denke, diese Anpassung wäre ein Fall für Dich (fhem.service) :-)

Gruß Allgäuer
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: rudolfkoenig am 11 Februar 2024, 20:52:08
Zitat@Rudi König: Ich denke, diese Anpassung wäre ein Fall für Dich (fhem.service) :-)
Habe betateilchen benachrichtigt.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: betateilchen am 11 Februar 2024, 21:32:50
Die Verwendung von network-online.target kann zu nicht nachvollziehbaren Verhalten beim Systemstart führen. Ob dieses sehr spezielle target überhaupt sinnvoll verwendet werden kann, hängt in erster Linie davon ab, wie die Verwaltung der Netzwerkschnittstellen auf der Plattform umgesetzt ist.

Wer - wie ich - beispielsweise nach wie vor mit ifupdown arbeitet (weil das nach wie vor hervorragend funktioniert, einfach zu konfigurieren ist und alles tut, was man braucht), wird mit dem target network-online niemals einen FHEM Start erreichen, wenn man nicht weiß, dass man in diesem Fall noch einen zusätzlichen systemd-Dienst aktivieren und starten muss, der das network-online.target für alle Interfaces simuliert, die in der /etc/network/interfaces als "auto" eingetragen sind.

Die Verwendung des network-online.target kann darüber hinaus zu unkontrollierbaren Verzögerungen beim Systemstart führen.

Aus all den Gründen habe ich nicht die Absicht, dieses aktive target als Standard in das service-file zu übernehmen, um damit das in den allermeisten Fällen problemlos funktionierende passive target zu ersetzen.

Worüber ich nachdenken werde:
Das target network-online mit einem entsprechenden Kommentar in die Datei aufzunehmen, damit man bei Verbindungsproblemen testen kann, ob es als Ersatz Abhilfe schafft.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Allgaeuer am 12 Februar 2024, 11:28:34
Hallo betateilchen,

Deine Bedenken kann ich nachvollziehen. Wenn dieser Fall (schnelles Booten + FHEM-Start) in der 00_MQTT2_CLIENT bei einem reconnect behoben wird, wäre das sogar die bessere Lösung.
Ich will da niemanden in Zugzwang bringen, biete aber an, hier als Tester mitzuwirken :-)

Gruß Allgäuer
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Violinux am 12 Februar 2024, 12:23:35
bei mir ist die Änderung der Konfiguration nur :
After=network.target dhcpcd.service

Diese läuft hier seit mind. 8 Jahren fehlerfrei.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: andi11 am 16 März 2024, 14:59:30
habt ihr eure Rasenmäher schon ausgewintert? Meiner ist jetzt wieder im Einsatz, allerdings klemmts noch.
Readings, wie z.b. der aktuelle Akkustand werden nicht aktualisiert.
Auch Befehle wie der Start interessieren den Mäher leider garnicht.
=> Prinzipiell geht die Kommunikation zum MQTT Server, und per App kann ich manuell starten.

(Habe daher vor dem List mit deletereading mal alle Readings gelöscht)
define m2c_Shaun MQTT2_DEVICE
attr m2c_Shaun DbLogExclude .*
attr m2c_Shaun DbLogInclude mowerStatusIndex,mowerErrorIndex,batteryPercent
attr m2c_Shaun IODev m2c
attr m2c_Shaun alias Mower
attr m2c_Shaun devicetopic DB510/F0FE6BB19C2E
attr m2c_Shaun disable 1
attr m2c_Shaun event-on-change-reading .*
attr m2c_Shaun icon scene_robo_lawnmower
attr m2c_Shaun 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 m2c_Shaun model worx_landroid_mower
attr m2c_Shaun readingList $DEVICETOPIC/commandOut:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr m2c_Shaun room Aussen
attr m2c_Shaun 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 m2c_Shaun stateFormat Active: mowerActive, Status: mowerStatusTxt, Error: mowerErrorTxt
attr m2c_Shaun 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")}}
#   FUUID      6433c303-f33f-ae17-5ed5-7265f5ae51abaf84
#   IODev      m2c
#   NAME       m2c_Shaun
#   NR         415
#   STATE      Active: mowerActive, Status: mowerStatusTxt, Error: mowerErrorTxt
#   TYPE       MQTT2_DEVICE
#   eventCount 7
#   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
#   READINGS:
#     2024-03-09 17:03:19   IODev           m2c
#     2024-03-09 16:38:48   attrTemplateVersion 20221101
#     2024-03-16 14:09:33   battery_charge_cycles 792
#     2024-03-16 14:09:33   blade_height_shift 0
#     2024-03-16 14:09:33   blade_work_time 51349
#     2024-03-16 14:09:33   capabilities_1  follow_border
#     2024-03-16 14:09:33   capabilities_2  lock
#     2024-03-16 14:09:33   capabilities_3  mqtt
#     2024-03-16 14:09:33   capabilities_4  multi_zone
#     2024-03-16 14:09:33   capabilities_5  multi_zone_percentage
#     2024-03-16 14:09:33   capabilities_6  ota_upgrade
#     2024-03-16 14:09:33   capabilities_7  pairing_smartlink
#     2024-03-16 14:09:33   capabilities_8  rain_delay
#     2024-03-16 14:09:33   capabilities_9  unrestricted_mowing_time
#     2024-03-16 14:09:33   city_country_id 276
#     2024-03-16 14:09:33   city_created_at 2018-02-15 22:09:24
#     2024-03-16 14:09:33   city_id         2837572
#     2024-03-16 14:09:33   city_latitude   49.55917
#     2024-03-16 14:09:33   city_longitude  11.34306
#     2024-03-16 14:09:33   city_name       Schnaittach
#     2024-03-16 14:09:33   city_updated_at 2018-02-15 22:09:24
#     2024-03-16 14:09:33   created_at      2018-07-09 09:34:57
#     2024-03-16 14:09:33   diagnostic      false
#     2024-03-16 14:09:33   distance_covered 935398
#     2024-03-16 14:09:33   features_chassis s_2017
#     2024-03-16 14:09:33   features_display_type led
#     2024-03-16 14:09:33   features_input_type keyboard_led
#     2024-03-16 14:09:33   features_lock   true
#     2024-03-16 14:09:33   features_mqtt   true
#     2024-03-16 14:09:33   features_multi_zone true
#     2024-03-16 14:09:33   features_multi_zone_percentage true
#     2024-03-16 14:09:33   features_multi_zone_zones 4
#     2024-03-16 14:09:33   features_rain_delay true
#     2024-03-16 14:09:33   features_unrestricted_mowing_time true
#     2024-03-16 14:09:33   features_wifi_pairing smartlink
#     2024-03-16 14:09:33   firmware_auto_upgrade false
#     2024-03-16 14:09:33   firmware_version 3.52.0+1
#     2024-03-16 14:09:33   id              250326
#     2024-03-16 14:09:33   improvement     false
#     2024-03-16 14:09:33   iot_registered  true
#     2024-03-16 14:09:33   lawn_size       100
#     2024-03-16 14:09:33   locked          false
#     2024-03-16 14:09:33   mac_address     F0FE6BB19C2E
#     2024-03-16 14:09:33   mower_work_time 53975
#     2024-03-16 14:09:33   mqtt_endpoint   iot.eu-west-1.worxlandroid.com
#     2024-03-16 14:09:33   mqtt_registered true
#     2024-03-16 14:09:33   mqtt_topics_command_in DB510/F0FE6BB19C2E/commandIn
#     2024-03-16 14:09:33   mqtt_topics_command_out DB510/F0FE6BB19C2E/commandOut
#     2024-03-16 14:09:33   name            Shaun
#     2024-03-16 14:09:33   online          true
#     2024-03-16 14:09:33   product_id      37
#     2024-03-16 14:09:33   protocol        0
#     2024-03-16 14:09:33   purchased_at    2018-10-11 00:00:00
#     2024-03-16 14:09:33   push_notifications true
#     2024-03-16 14:09:33   push_notifications_level warning
#     2024-03-16 14:09:33   registered_at   2018-10-19 00:00:00
#     2024-03-16 14:09:33   serial_number   201830190905002650EF
#     2024-03-16 14:09:33   setup_location_latitude 49.5548501
#     2024-03-16 14:09:33   setup_location_longitude 11.3448669
#     2024-03-16 14:09:33   test            false
#     2024-03-16 14:09:33   time_zone       Europe/Berlin
#     2024-03-16 14:09:33   updated_at      2024-02-20 21:11:07
#     2024-03-16 14:09:33   user_id         214879
#     2024-03-16 14:09:33   uuid            96c52da7-b236-4002-a64c-7a33124de3c0
#     2024-03-16 14:09:33   warranty_expires_at 2021-10-11 00:00:00
#     2024-03-16 14:09:33   warranty_registered true
#
setstate m2c_Shaun Active: mowerActive, Status: mowerStatusTxt, Error: mowerErrorTxt
setstate m2c_Shaun 2024-03-09 17:03:19 IODev m2c
setstate m2c_Shaun 2024-03-09 16:38:48 attrTemplateVersion 20221101
setstate m2c_Shaun 2024-03-16 14:09:33 battery_charge_cycles 792
setstate m2c_Shaun 2024-03-16 14:09:33 blade_height_shift 0
setstate m2c_Shaun 2024-03-16 14:09:33 blade_work_time 51349
setstate m2c_Shaun 2024-03-16 14:09:33 capabilities_1 follow_border
setstate m2c_Shaun 2024-03-16 14:09:33 capabilities_2 lock
setstate m2c_Shaun 2024-03-16 14:09:33 capabilities_3 mqtt
setstate m2c_Shaun 2024-03-16 14:09:33 capabilities_4 multi_zone
setstate m2c_Shaun 2024-03-16 14:09:33 capabilities_5 multi_zone_percentage
setstate m2c_Shaun 2024-03-16 14:09:33 capabilities_6 ota_upgrade
setstate m2c_Shaun 2024-03-16 14:09:33 capabilities_7 pairing_smartlink
setstate m2c_Shaun 2024-03-16 14:09:33 capabilities_8 rain_delay
setstate m2c_Shaun 2024-03-16 14:09:33 capabilities_9 unrestricted_mowing_time
setstate m2c_Shaun 2024-03-16 14:09:33 city_country_id 276
setstate m2c_Shaun 2024-03-16 14:09:33 city_created_at 2018-02-15 22:09:24
setstate m2c_Shaun 2024-03-16 14:09:33 city_id 2837572
setstate m2c_Shaun 2024-03-16 14:09:33 city_latitude 49.55917
setstate m2c_Shaun 2024-03-16 14:09:33 city_longitude 11.34306
setstate m2c_Shaun 2024-03-16 14:09:33 city_name Schnaittach
setstate m2c_Shaun 2024-03-16 14:09:33 city_updated_at 2018-02-15 22:09:24
setstate m2c_Shaun 2024-03-16 14:09:33 created_at 2018-07-09 09:34:57
setstate m2c_Shaun 2024-03-16 14:09:33 diagnostic false
setstate m2c_Shaun 2024-03-16 14:09:33 distance_covered 935398
setstate m2c_Shaun 2024-03-16 14:09:33 features_chassis s_2017
setstate m2c_Shaun 2024-03-16 14:09:33 features_display_type led
setstate m2c_Shaun 2024-03-16 14:09:33 features_input_type keyboard_led
setstate m2c_Shaun 2024-03-16 14:09:33 features_lock true
setstate m2c_Shaun 2024-03-16 14:09:33 features_mqtt true
setstate m2c_Shaun 2024-03-16 14:09:33 features_multi_zone true
setstate m2c_Shaun 2024-03-16 14:09:33 features_multi_zone_percentage true
setstate m2c_Shaun 2024-03-16 14:09:33 features_multi_zone_zones 4
setstate m2c_Shaun 2024-03-16 14:09:33 features_rain_delay true
setstate m2c_Shaun 2024-03-16 14:09:33 features_unrestricted_mowing_time true
setstate m2c_Shaun 2024-03-16 14:09:33 features_wifi_pairing smartlink
setstate m2c_Shaun 2024-03-16 14:09:33 firmware_auto_upgrade false
setstate m2c_Shaun 2024-03-16 14:09:33 firmware_version 3.52.0+1
setstate m2c_Shaun 2024-03-16 14:09:33 id 250326
setstate m2c_Shaun 2024-03-16 14:09:33 improvement false
setstate m2c_Shaun 2024-03-16 14:09:33 iot_registered true
setstate m2c_Shaun 2024-03-16 14:09:33 lawn_size 100
setstate m2c_Shaun 2024-03-16 14:09:33 locked false
setstate m2c_Shaun 2024-03-16 14:09:33 mac_address F0FE6BB19C2E
setstate m2c_Shaun 2024-03-16 14:09:33 mower_work_time 53975
setstate m2c_Shaun 2024-03-16 14:09:33 mqtt_endpoint iot.eu-west-1.worxlandroid.com
setstate m2c_Shaun 2024-03-16 14:09:33 mqtt_registered true
setstate m2c_Shaun 2024-03-16 14:09:33 mqtt_topics_command_in DB510/F0FE6BB19C2E/commandIn
setstate m2c_Shaun 2024-03-16 14:09:33 mqtt_topics_command_out DB510/F0FE6BB19C2E/commandOut
setstate m2c_Shaun 2024-03-16 14:09:33 name Shaun
setstate m2c_Shaun 2024-03-16 14:09:33 online true
setstate m2c_Shaun 2024-03-16 14:09:33 product_id 37
setstate m2c_Shaun 2024-03-16 14:09:33 protocol 0
setstate m2c_Shaun 2024-03-16 14:09:33 purchased_at 2018-10-11 00:00:00
setstate m2c_Shaun 2024-03-16 14:09:33 push_notifications true
setstate m2c_Shaun 2024-03-16 14:09:33 push_notifications_level warning
setstate m2c_Shaun 2024-03-16 14:09:33 registered_at 2018-10-19 00:00:00
setstate m2c_Shaun 2024-03-16 14:09:33 serial_number 201830190905002650EF
setstate m2c_Shaun 2024-03-16 14:09:33 setup_location_latitude 49.5548501
setstate m2c_Shaun 2024-03-16 14:09:33 setup_location_longitude 11.3448669
setstate m2c_Shaun 2024-03-16 14:09:33 test false
setstate m2c_Shaun 2024-03-16 14:09:33 time_zone Europe/Berlin
setstate m2c_Shaun 2024-03-16 14:09:33 updated_at 2024-02-20 21:11:07
setstate m2c_Shaun 2024-03-16 14:09:33 user_id 214879
setstate m2c_Shaun 2024-03-16 14:09:33 uuid 96c52da7-b236-4002-a64c-7a33124de3c0
setstate m2c_Shaun 2024-03-16 14:09:33 warranty_expires_at 2021-10-11 00:00:00
setstate m2c_Shaun 2024-03-16 14:09:33 warranty_registered true

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 17 März 2024, 08:52:26
hilft dir vermutlich nicht so, aber bei mir lief es out of the box wieder. Woran machst Du denn fest, dass die MQTT-Kommunikation funktioniert? Normalerweise hapertt es nämlich daran, wenn Du nicht über FHEM steuern kann. Im Zweifel das Gerät nochmal neuanlegen. Ggf. vorher auch mal ins Log schauen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: andi11 am 17 März 2024, 09:10:57
dass die MQTT Kommunikation funktioniert, mach ich nur daran fest, dass die Readings aktualisiert werden :)
Tatsächlich hilft mir die Antwort "bei mir geht noch alles" doch sehr, dann versuch ich mal neu erstellen usw.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: andi11 am 17 März 2024, 09:36:04
@Flachzange: Du hast leider recht. Habe die beiden alten devices komplett deaktiviert.
Neu erstellt laut Wiki, geht das Device zwar auf connected aber mehr auch nicht (das eigentliche device wird nicht erstellt, obwohl autocreate aktiviert ist)
Username und Passwort ist korrekt gesetzt. In der Handyapp ist Shaun währenddessen online. Im FHEM Log ist nichts zu sehen

define MQTT_Worx MQTT2_CLIENT xx
attr MQTT_Worx DbLogExclude .*
attr MQTT_Worx connectFn {use LandroidUtils;;Landroid_connect($NAME,"worx",1)}
attr MQTT_Worx execAfterConnect { my $h=$defs{$NAME};;MQTT2_CLIENT_doPublish($h,'DB510/F0FE6BB19C2E/commandIn','{}')}
attr MQTT_Worx keepaliveTimeout 600
attr MQTT_Worx maxFailedConnects 20
attr MQTT_Worx nextOpenDelay 180
attr MQTT_Worx subscriptions DB510/F0FE6BB19C2E/commandOut
attr MQTT_Worx username xxxxxxxxx
#   BUF       
#   CFGFN     
#   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
#   ClientsKeepOrder 1
#   DEF        xx
#   DeviceName iot.eu-west-1.worxlandroid.com:443
#   FD         23
#   FUUID      65f6aa9e-f33f-ae17-fc4e-b5cabca1b55fe97d
#   NAME       MQTT_Worx
#   NR         441
#   PARTIAL   
#   SSL        1
#   STATE      opened
#   TYPE       MQTT2_CLIENT
#   WBCallback
#   autocreate 1
#   clientId   WX/USER/214879/FHEM/65f6aab5-f33f-ae17-5efe-b36fdedfa519adb9
#   devioLoglevel 4
#   eventCount 5
#   landroidType worx
#   lastMsgTime 1710664374.01909
#   mqttEndpoint iot.eu-west-1.worxlandroid.com
#   nextOpenDelay 180
#   nrConnects 2
#   userId     214879
#   MatchList:
#     1:MQTT2_DEVICE ^.
#     2:MQTT_GENERIC_BRIDGE ^.
#   READINGS:
#     2024-03-17 09:32:53   state           opened
#     2024-03-17 09:32:53   wxid            65f6aab5-f33f-ae17-5efe-b36fdedfa519adb9
#   sslargs:
#     SSL_alpn_protocols mqtt
#
setstate MQTT_Worx opened
setstate MQTT_Worx 2024-03-17 09:32:52 .access_token eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxNTBkYTRkMi1iYjQ0LTQzM2ItOTQyOS0zNzczYWRjNzBhMmEiLCJqdGkiOiJhMGNlY2JmZjhhNTUxYmJkN2E3OGVmY2QyZGQ0M2I1ZDkxOGNjNDcyOTYyMDA5MDI3OWVmMGZkNDNkODYxMjE5YzVmZDM1Y2EwZjJlNWIzOCIsImlhdCI6MTcxMDY2NDM3Mi42NTUzMSwibmJmIjoxNzEwNjY0MzcyLjY1NTMxMiwiZXhwIjoxNzEwNjY3OTcyLCJzdWIiOiIyMTQ4NzkiLCJzY29wZXMiOlsiZGF0YTpwcm9kdWN0cyIsInVzZXI6cHJvZmlsZSIsInVzZXI6bWFuYWdlIiwidXNlcjpjZXJ0aWZpY2F0ZSIsIm1vYmlsZTpub3RpZmljYXRpb25zIiwibW93ZXI6dmlldyIsIm1vd2VyOnVwZGF0ZSIsIm1vd2VyOmFjdGl2aXR5X2xvZyIsIm1vd2VyOmxhd24iLCJtb3dlcjptYXAiLCJtb3dlcjp3YXJyYW50eSIsIm1vd2VyOmZpcm13YXJlIiwibW93ZXI6cGFpciIsIm1vd2VyOnVucGFpciJdfQ.USvBK9kgm98v3-8-K0l2Kz83x-kH6K-j3pA5Dtezeij1Fwrrajz-IKyJKtNDFqvJ5TYPcwSOpALj4WH7Lw4PBLLFngcXLa-0Wet3jb1d1zQLsiu2CI3KxFdmNVROVc9lPkglMlttpKddRYM8BbO_GUjNQBr1rnGigwfhko9_v0ZR19Q3XCfbuVNsA6cxM51DgwofZ9XjU1y7zkd0QorgSFUnbQluU__R6-sLhPfBRYysA9e5wnXTVIB9qaLDL1pioNg0MAexM7NK8b02oUuj9rD0JThNSphjT48i5Zf7yDEquIlj7NT1FDKjXGYs3ZeLS0uNqy1jxU-hbVeYylOJ4mx5hQ_S9H-eSHJYRXgDAXcuowwnm27FUcMmJvmuawLkFYKURtHMkPl7UESj4GC7efwsrLvY3sCun0SR0Puh58j72OdJulHAz-ZKqkT31eK3J6VopUQZx3nVvey4oB1Tmp_6nIy7b6gLC6zK_gwgo3eLEsJI4BVeTxcpTKHe6CapProj66EBu0cinrwaA8W8yKMETmyjVFaq6IeM7VqKzGQb-G1ZCsBE4rRnW7eHUR-0niOkvrLt7CziSCCreRCflCcKFREOOgUt7CZv6eqw_lSQ7hhcCrB4Xuo2RHcYfBQsR-zhmnyt-TdrS8lJzzxMZSiBlvxqQzTZMGLq2uVZ-eo
setstate MQTT_Worx 2024-03-17 09:32:52 .expires_in 3600
setstate MQTT_Worx 2024-03-17 09:32:52 .refresh_token def5020012e19f82b3de20bab410fd427b06da1dc0ac1e2924e2207b7eb9f8c46386020764ffc8b7bae7c0d1326e9d0bb2c1343d81bb0f510f0c16080940c78c31f1754afe1657360680972cfe4d44e2c9635e324ff72da037cd6f1bc481e321a9e847377c03c8102b27f3233c9c7ffa4a888a73f5ceccdf2de5c5d3ce3843180469179497fb66911a9e09245da24002db01d6cfb59d4f882ca29f0aa1da19592c07717fa398f5bdf0460fd220b3a54cad625bc35a4bd2114f91c962f5dc9e87fc8d11a9b2306003f6fcd78f26a6b58ea463db71785fd60b88a77a7d794da0228447d0284050d5a3dfe3e8aab356c3343a0a2bb2971972558e2396c5d31a242429fddeee50e88167c9f613489012153c0599be4507c602a4e0587a52e5f56bc545d32f6d32addfdb9846b673a0aad4a7bff4743a0a7f0de4f7b04aa8d3571d739c8491af648a4176fb129ec6f7fce24c739907eb3f9c595341e529561cdf460aaeaab9dc19b9d27c66bf8e47b84ee9da3f2d5447b5b36785f0e354daf6d4ec101b5e0b37cfd5b26019a71b4d44858ebdf3bf4471259625bdf8562bf8f95bf38f533d62e8472ebdc46f9cc9514b0bbc9db26a891e7595d31406e23926c0e7e37758b4352eab5fd23b06e7b2ca0e0494edc58c28ccdd8d9b9610ddfc609712e2528829ff88d004101038c5bae97cfa2275f6decd71b5c73f9c11a4bdca17011a87a5183b5cea42917f2dde3376b4ffb159e9e18406d02fdfbff6a49442d8b9517ff7744516a87198afa82d53d1160956819f737bedc572aa1b04e8afecfc9c321fefd26224e4af3dc3a39d3388dbbacce098699741f0d847fbfd5af918be233316a78bf404728caf
setstate MQTT_Worx 2024-03-17 09:32:52 .token_type Bearer
setstate MQTT_Worx 2024-03-17 09:32:53 state opened
setstate MQTT_Worx 2024-03-17 09:32:53 wxid 65f6aab5-f33f-ae17-5efe-b36fdedfa519adb9

Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: frober am 17 März 2024, 15:01:00
Zitat von: andi11 am 17 März 2024, 09:36:04@Flachzange: Du hast leider recht. Habe die beiden alten devices komplett deaktiviert.

Wenn die Devices deaktiviert sind, sind sie noch vorhanden und werden nicht neu angelegt.
Ändere die Def im Device, damit sollte ein neues Anlegen funktionieren.

Alternativ die RAW-Definition sichern und dann das Device löschen.
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: andi11 am 18 März 2024, 18:35:14
danke für den Tipp, das wars :)
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: Flachzange am 01 April 2024, 14:58:56
Hat jemand einen Vision ohne Scheinwerfer und könnte mir mal die Werte der folgenden Readings zukommen lassen, wenn der Vision im Dunkeln gestartet wird:

    accessories_headlight
    cfg_modules_HL.enabled
    dat_modules_HL_on
    dat_modules_HL_stat

Hintergrund: Es gibt die "Befürchtung", dass diese Felder auch befüllt werden, obwohl der Vision gar keine Scheinwerfer hat.

Danke :)
Titel: Aw: MQTT2 für Worx Landroid Mähroboter
Beitrag von: pillepalle12 am 16 April 2024, 14:04:22
Zitat von: Allgaeuer am 11 Februar 2024, 10:27:25Hallo zusammen,

ich denke, ich habe das Problem identifiziert und eine Lösung gefunden.

Zum Testen hatte ich ja ein neues, ganz schlankes System (RPI2) aufgesetzt. Das hat sehr schnell gebootet und auch ganz schnell FHEM gestartet. Offensichtlich waren noch nicht alle Netzwerkdienste aktiv und deshalb der 3-Minuten reconnect. Als Abhilfe habe ich die fhem.service (unter /etc/systemd/system ) leicht modifiziert. Die beiden Einträge mit "network.target" auskommentiert und dafür die beiden Einträge mit "network-online.target" eingefügt. Jetzt sind die 3-Min-Reconnects weg.
Das erklärt auch, warum bei anderen der Fehler nicht auftritt.

[Unit]
Description=FHEM Home Automation
#Wants=network.target
#After=network.target
Requires=network-online.target
After=network-online.target
#Requires=postgresql.service

Viele Grüße,

Allgäuer

Hallo Allgäuer, da ich nach 2 Tagen Betrieb auch schon wieder aus meinem Worx Account ausgesperrt wurde, habe ich Deinen Vorschlag ausprobiert und dieser läuft nun schon seit Tagen Perfekt ohne Aussperren.

Vielen Dank!