MQTT2 für Worx Landroid Mähroboter

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

Vorheriges Thema - Nächstes Thema

efyzz

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

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

tschimi

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

Otto123

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

Moin Otto,

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

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

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

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

So, ich gehe jetzt mal EdgeCut testen  8)
RaspberryPi3B, Bookworm Lite
Homematic Funkmodul HM-MOD-RPI-PCB
------------------------------------------------------------------------
Ich bin kein Programmierer ... aber ich weiß, auf welcher Seite der Lötkolben heiß ist.

tschimi

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

Otto123

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

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

huhu

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


Ralli

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

@Otto: auch von mir vielen Dank, ich habe ebenfalls am Wochenende den Umstieg vollzogen.
Gruß,
Ralli

Proxmox 8.1 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.6.20240316) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

Otto123

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

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

Gruß Otto
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

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

Skusi

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.
RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler

Otto123

#73
Zitat von: Skusi am 20 April 2021, 19:00:57
Ich möchte nun aber über kurz oder lang aber die teile der Node Installation sauber aus  dem System löschen. Ich hab aber keine Ahnung wie ich das gefahrlos anstellen soll ohne was wichtiges zu löschen.
Da hatte ich doch schon was vorbereitet - Am Ende ;)
https://heinz-otto.blogspot.com/2019/05/worx-landroid-m500.html

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

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

Ich schau mir das aber mal (mit dem Fortschritt von einem Jahr :) ) in Ruhe an.
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

fred_feuerstein

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.


Gruß, Fred

FHEM auf Raspberry PI 3B+ im 7Zoll TouchDisplay Gehäuse, OS: Bullseye, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp) und knapp 300 Devices aller Art