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.

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:
Zitat
        Issuer: 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
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
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
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
Zitat
gerade 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
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
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
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
Zitat
Wechselt 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
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...)
Zitat
periodicCmd <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
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.
Zitat
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.

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:

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>:8883kein 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.

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.

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
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
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
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
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
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
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
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.

Zitat
Umfang 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,
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!!

- 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
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
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
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
@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 mowerStatusTxtDas 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
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
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
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
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
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...
Zitat
Ich 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
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
Hallo Stefan,
Müsste man mal über die App setzen und schauen was im dann in MQTT zurückbekommt.
--> über das net.zip-Tool?
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
--> ü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
Dieses Windows Tool wo dann eine DeskApp.exe gestartet wird. Aber ist ja überholt habe ich heute gemacht.

--> fürs nächste Mal ;)
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.

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.

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
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
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
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
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
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
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
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


 
Hast Du auch <BOARDIDAUSDERAPP>/<MACADRESSEAUSDERAB> gegen Deine echten Werte ersetzt? Ohne die spitzen < Klammern >?

Ne , ohne spitze Klammern ,


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
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
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ß...

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:

Zitat
Eine 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
Zitat
Die 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


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
Zitat
Einmal 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
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
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
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
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.

Zitat
Es 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. ;)

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
  • 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
Zitat
Ich 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
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
Zitat
Also 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
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
„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,
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
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
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
Zitat
anscheinend 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
Zitat
Bevor 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
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
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
@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
@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
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

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
Zitat
Es 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
@ 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
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
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
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
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
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  :)

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 0und 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
versteh ich nicht. Mit (beliebigen Werten)
setreading Mower cfg_mzv_10 99;setreading Mower dat_lz 0und 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
Zitat
Mit 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
@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
versteh ich nicht. Mit (beliebigen Werten)
setreading Mower cfg_mzv_10 99;setreading Mower dat_lz 0und 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
Zitat
Device 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
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
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
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
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
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,

Zitat
Wie kann ich einen pull Request auf das Template machen?
Naja eigentlich nur so wie Du es hier gemacht hast :)
Zitat
Deutlich 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
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

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
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
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
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
Zitat
Also 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
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
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
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
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
Zitat
Den 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
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
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
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
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
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
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
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
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.  :)