Roomba Staubsaugerroboter

Begonnen von Prof. Dr. Peter Henning, 10 September 2020, 16:40:34

Vorheriges Thema - Nächstes Thema

rudolfkoenig

ZitatDas müstte nur im MQTT Modul eingebaut werden...
Alternativ setzt man
attr MQTT2_CLIENT sslargs  SSL_version:SSLv23
(oder so, ich will immer noch kein SSL Experte werden)

Sturi2011

Hallo,

das scheint leider nicht zu greifen - > siehe
https://forum.fhem.de/index.php/topic,114166.msg1088298.html#msg1088298
und die folgenden 3 Posts.
Ich musste es nach dem Upgrade des Docker Images auch in der OpenSSL.conf setzen.

Gruß Andreas

rudolfkoenig

sslargs ist die generische Version von sslVersion, erlaubt alle IO::Socket::SSL Parameter zu setzen, und nicht nur SSL_version. Weiterhin hat es Vorrang ueber sslVersion.

Habs gerade ueberpruft, es wird von MQTT2_CLIENT weitergegeben und in TcpServerUtils ausgewertet.

Ich wuesste nicht, was ich daran aendern soll.

Sturi2011

Hallo,

dann greift es in der TCPServerUtils.pm nicht oder die
TCPServerUtils (IO::Socket::SSL) setzt es nicht über die Default Arg im OpenSSL.

Woran es liegt vermag nur einer der Programmierer zu sagen.

Als Workaround kann man halt wie oben beschrieben die
CipherString = DEFAULT@SECLEVEL=1
setzen. Das ist aber unschön weil systemweit.
Es schaltet SHA1 ein....

Bei mir funktioniert es so - erschlag nicht den Boten - er versucht nur den scheinbaren Bug zu kommunizieren.
In welchem der beteiligten Module er liegt kann er auch nicht sagen ;)

Gruß Andreas

rudolfkoenig

Ich habe es vorhin in TcpServerUtils.pm ausgegeben, da war es richtig.
Wenn die Datei in /etc diese Einstellung ueberschreibt, dann ist das mAn ein Bug.
Was passiert, wenn man diese Datei loescht bzw. zur Seite schiebt?

Sturi2011

#95
Hallo,

dann funktioniert es. Es ist aber schwer zu sagen, welche systemrelevanten Auswirkungen das hat.

Gruß Andreas

Dracolein

Hallo zusammen,

ich hätte einen Roomba 980 und einen nagelneuen Braava Jet M6 beizusteuern, benötige jedoch eine zusammenfassende Anleitung (=Wiki-Eintrag) für Eure bisher hier nerdigen Fortschritte.
Im Wesentlichen schwebt mir eine Einbindung in FHEM vor, um anschließend per Homebridge die Geräte per Homekit-App & Siri zu aktivieren/deaktivieren.
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Prof. Dr. Peter Henning

Was ist denn nerdig daran, einen MQTT2_CLIENT mit dem Roomba zu verbinden?

LG

pah

Dracolein

Bei mir scheitert es derzeit noch an den Grundlagen wie dem Herausfinden von clientID oder einem Passwort für den Gerätezugriff. Ich hoffe, am Wochenende Zeit zu finden.
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Prof. Dr. Peter Henning

Ich bin noch nicht dazu gekommen, dass Holen des Passworts in FHEM zu realisieren. Einfachster Weg im Moment: Das hier

https://github.com/NickWaterton/Roomba980-Python

installieren und "python3 getpassword.py" ausführen.

LG

pah

Sturi2011

Guten Abend,

wenn du das aber in fhem realisieren willst (getpassword) dann ist Template für MQTT Geschichte und es wird doch ein eigenes Modul/Helper Modul?

Gruß Andreas

Prof. Dr. Peter Henning

Nicht notwendigerweise. Es muss sowieso eine Menge spezieller Code hinzugeladen werden - da kommt es auf ein Unterprogramm auch nicht mehr an. Ich halte nichts davon, diesen Code direkt im template zu lagern - er sollte vielmehr separat, z.B. im lib-Ordner liegen.

LG

pah

Prof. Dr. Peter Henning

#102
Noch etwas zum Diskutieren. Die vier Einstellungen

state_reported_noAutoPasses
state_reported_noPP
state_reported_openOnly
state_reported_twoPass

machen mir noch etwas Aufwand.

openOnly ist klar -> Kantenreinigung ein oder aus.

noAutoPasses true bedeutet: Einfachreinigung oder Zweifachreinigung fest eingestellt, keine autmatische Umschaltung
twoPass true bedeutet, Zweifachreinigung fest eingestellt.

Was wäre, wenn beide false sind? Was bedeutet PP bzw. noPP?

Ich knobele immer noch an der Kartenerstellung herum. So wie es aussieht, benutzt die Kiste bei der Kartenerzeugung entweder irgendwelche Signale der Bumper, die nicht nach außen geleitet werden. Oder irgendeine Kombination des Winkels mit den Koordinaten.

Sehen kann man das sehr schön an den von der App gezeigten Karten für unvollständige Läufe: Manche der Kanten enthalten dann fett gezeichnete Linien, andere nicht.

Jede Unterstützung beim Herausfinden ist hier willkommen.

LG

pah

Dracolein

Zitat von: carlos am 28 September 2020, 10:52:47
Hallo Andreas,
Du hattest recht.
Mit CipherString = DEFAULT@SECLEVEL=1 funktioniert mein Client jetzt.
Vielen Dank für den Tip, da wäre ich nie drauf gekommen.

Zur Vollstandigkeit:

OpenSSL 1.1.1d  10 Sep 2019

Gruß

Carlos
Habe die gleiche Problematik wie Du, habe auch o.g. Idee geändert, aber es bleibt bei mir weiterhin "disconnected".

Übrigens läuft bei mir das alte Roomba980-Modul! Darüber kann ich meinen Roomba980 starten & beenden. Über dessen modulinternes "DiscoverRoomba" erhielt ich die clientID und auch ein krypisches Passwort. Wird letzteres für mqtt2 gar nirgens benötigt? 


Internals:
   BUF       
   CFGFN     
   DEF        192.168.178.21:8883
   DeviceName 192.168.178.21:8883
   FUUID      5f787e4f-f33f-4dec-1624-9c568cbd4eeabc57
   NAME       RoombaFegerClient
   NEXT_OPEN  1601732659
   NR         39720
   PARTIAL   
   SSL        1
   STATE      disconnected
   TYPE       MQTT2_CLIENT
   clientId   31**********40
   connecting 1
   lastMsgTime 1601732192.72541
   nextOpenDelay 5
   READINGS:
     2020-10-03 15:44:14   state           disconnected
   sslargs:
     SSL_version SSLv23
Attributes:
   SSL        1
   autocreate simple
   clientId   31**********40
   mqttVersion 3.1.1
   room       Roomba
   sslargs    SSL_version:SSLv23
   username   31**********40
   verbose    1
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Sturi2011

Hallo,

das Passwort musst du im MQTT2_Client eintragen. Da gibt es oben ein Dropdown Conect usw.

Gruß Andreas