MQTT2 für Worx Landroid Mähroboter

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

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Offensichtlich ist der Server nicht fuer Dauerverbindungen ausgelegt.

kjmEjfu

Hab keepaliveTimeout seit Monaten auf 600 stehen. Läuft ohne Probleme.
Migriere derzeit zu Home Assistant

frober

Zitat von: kjmEjfu am 21 September 2021, 16:03:44
Hab keepaliveTimeout seit Monaten auf 600 stehen. Läuft ohne Probleme.

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

Bei mir kann es noch sein, da mein Wlan im Garten nicht komplett abdeckt ist, dass ich deswegen die 150 Anfrage /Tag kratze.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

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

kjmEjfu

Zitat von: frober am 21 September 2021, 19:06:26
Das Kantenmähen bekommst du auch gemeldet?
Wie sieht es mit den Zonen aus, so fern du welche hast?

Ich schaue halt nicht dauernd nach ... aber ja, prinzipiell bekomme ich das Kantenmähen angezeigt.
Zonen habe ich, weiß aber nicht genau, was da gerade meinst.
Migriere derzeit zu Home Assistant

frober

Zitat von: kjmEjfu am 22 September 2021, 08:20:42
Ich schaue halt nicht dauernd nach ... aber ja, prinzipiell bekomme ich das Kantenmähen angezeigt.
Zonen habe ich, weiß aber nicht genau, was da gerade meinst.

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

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

Die Daten logge ich und zeige sie in einem Plot.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

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

remo

Zitat von: frober am 22 September 2021, 09:49:32
Ich habe in der App die Benachrichtigungsart auf Hinweise stehen, da ich wissen wollte wie oft der Mäher aus der aktiven Zone flüchtet.
Daher sehe ich die Meldungen regelmäßig.

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

Die Daten logge ich und zeige sie in einem Plot.

Womit misst du die Bodenfeuchte?

frober

Zitat von: remo am 24 September 2021, 09:05:38
Womit misst du die Bodenfeuchte?

Ich habe 2 Giesomat vergraben.
Da bin ich aber noch am beobachten. Bei hoher Feuchte ist die Messung recht konstant. Sobald die Feuchte fällt, wird sie Temperaturabhängig.
Aktuell teste ich eine Temperaturkompensation.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

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

remo


efyzz

Zitat von: Otto123 am 13 September 2021, 12:39:08
Hi,

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

Gruß Otto

Moin Otto,

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

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

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

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

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

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

efyzz

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

frober

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

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

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

Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

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

frober

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)}
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

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

efyzz

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/

Bisher nur über die DeskApp (mit Plugin) einstellbar:
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.  :)
RaspberryPi3B, Bookworm Lite
Homematic Funkmodul HM-MOD-RPI-PCB
------------------------------------------------------------------------
Ich bin kein Programmierer ... aber ich weiß, auf welcher Seite der Lötkolben heiß ist.

Mumpitz

Hallo Freund der automatisierten Rasenpflege

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

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

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


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


Das Zertifikat ist aus meiner Sicht iO:

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


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

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


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

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

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

Hat jemand eine Idee oder einen Ansatz?