MQTT2 für Worx Landroid Mähroboter

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

Vorheriges Thema - Nächstes Thema

clumsy

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

Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

steffen83

Hallo Otto,

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

Viele Grüße
Steffen
Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

Allgaeuer

Hallo Otto,

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

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

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

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

Herzlichen Dank für Deine Lösung.

Gruß Allgäuer

Skusi

Ich hab meinen Landroid m500 nun auch aus dem Winterschlaf geholt und bin auf diesen sehr interessanten Thread gestoßen.

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

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

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

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


Was kann ich noch machen damit ich einen Connect bekomme?
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

Hi Skusi,

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

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

Skusi

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

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

Skusi

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

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

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

Skusi

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

define MQTT_Worx MQTT2_CLIENT <broker-server-adresse>:8883
kein MQTT2_CLIENT dann gar nix...

Du redest vom MQTT2_DEVICE ich nicht! ;)

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

Wie gesagt verbose 5 im MQTT2_CLIENT...
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

Skusi

#57
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)
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

Nur zur Sicherheit: Das hast Du jetzt für den Post gemacht? <BoardID>/<MAC>/ in Wahrheit stehen in Echt die richtigen Werte drin?
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

Skusi

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