NEWS
Neuer Adapter für Roborock-Staubsauger
-
@copystring im log stand auch ohne diese Option
[23:48:09.695][10.0.0.1:64843] Client TLS handshake failed. Client and mitmproxy cannot agree on a TLS version to use. You may need to adjust mitmproxy's tls_version_client_min option.
Das war mein Versuch, nachdem ich nach dem Fehler im i-Net gegoggelt hatte und dies als Möglichkeit fand.
Habe, von TLS1_1 über TLS1_2 bis SSL3 alles ausprobiert. -
@spacerx welchen Browser nimmst du? Bei lief es mit Chrome
-
@copystring im Moment Edge. Der ist eigentlich Chrome basierend.
-
Ich habe nun mal Chrome installiert. Das ändert leider Garnichts.
Noch mal eine Ausgabe dazu.
[11:01:04.438][10.0.0.1:54441] server connect 142.250.184.206:443 [11:01:04.485][10.0.0.1:54441] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for clients3.google.com, this may indicate that the client does not trust the proxy's certificate. [11:01:04.485][10.0.0.1:54441] client disconnect [11:01:04.485][10.0.0.1:54441] server disconnect 142.250.184.206:443 [11:01:04.500][10.0.0.1:49611] client connect [11:01:04.610][10.0.0.1:54442] client connect [11:01:04.625][10.0.0.1:54442] server connect 142.250.184.206:443 [11:01:04.672][10.0.0.1:54442] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for clients3.google.com, this may indicate that the client does not trust the proxy's certificate. [11:01:04.672][10.0.0.1:54442] client disconnect [11:01:04.672][10.0.0.1:54442] server disconnect 142.250.184.206:443 [11:01:07.218][10.0.0.1:54381] client connect [11:01:07.250][10.0.0.1:54381] server connect 52.29.91.104:8883 [11:01:07.359][10.0.0.1:54381] client disconnect [11:01:07.359][10.0.0.1:54381] server disconnect 52.29.91.104:8883 [11:01:09.109][10.0.0.1:54443] client connect [11:01:09.124][10.0.0.1:54444] client connect [11:01:09.140][10.0.0.1:54443] server connect 18.195.207.39:443 [11:01:09.155][10.0.0.1:54444] server connect 52.29.136.229:443 [11:01:09.218][10.0.0.1:54443] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for api-eu.roborock.com, this may indicate that the client does not trust the proxy's certificate. [11:01:09.218][10.0.0.1:54443] client disconnect [11:01:09.218][10.0.0.1:54443] server disconnect 18.195.207.39:443 [11:01:09.218][10.0.0.1:54444] Client TLS handshake failed. The client disconnected during the handshake. If this happens consistently for awsde0.fds.api.xiaomi.com, this may indicate that the client does not trust the proxy's certificate.
Die Verbindung zum iPhone mit WireGuard scheint zu Funktionieren nur vom Proxy zu Roborock usw. klappt anscheinend nicht weil was mit dem Zertifikat nicht hin haut.
Ehrlich gesagt ist so langsam meine Frustschwelle erreicht.
<frust = on>
Wer sich den ganzen Müll mit den Zertifikaten ausgedacht hat gehört geteert und gefedert.
<frust = off>Vielleicht war mein Vorgehen bei der ganzen Installation auch falsch.
- Python installiert
- pip installiert [python -m pip install --user pipx]
- Dann die Installationen zu mitmproxy
- py -m pipx install mitmproxy --force
- py -m pipx inject mitmproxy websocket
- py -m pipx inject mitmproxy websocket-client
Noch jemand eine Idee wie man das Prob gelöst bekommt?
@copystring
Geht der Installationskram auch anders. In der Wiki ist von Python als Voraussetzung nicht die Rede. Ich nehme mal an durch die Programmiererei hast du den Kram eh auf dem Rechner. Deshalb klappts bei dir ohne Prob. Ich hab's nur nicht so mit den Zertifikaten und hab immer versucht dem aus dem Weg zu gehen. -
@spacerx
Hallo, ich habe das Wiki ergänzt, vielen Dank.
Und Dein kleines Skript ist Klasse, ich habe bisher in der langen Liste immer geschaut, ob sich ein Datenpunkt ändert und wenn ja, wie.
Viele Grüße, Bert. -
@jahnbes sagte in Neuer Adapter für Roborock-Staubsauger:
ich habe bisher in der langen Liste immer geschaut, ob sich ein Datenpunkt ändert und wenn ja, wie.
Das war mein Ansinnen. Weil man die Objekte ja nicht mit einmal auf den Bildschirm bekommt ist es unmöglich das vernünftig nach zu vollziehen.
-
@spacerx said in Neuer Adapter für Roborock-Staubsauger:
Geht der Installationskram auch anders.
Nein. mitmproxy braucht zwingend Python.
Hast du das Zertifikat von mitmproxy denn auf dem iPhone als root Zertifikat hinzugefügt? -
@copystring ja habe ich.
-
@spacerx mit iPhone kenne ich mich nur wenig aus. Sicher, dass es als root Zertifikat hinzugefügt ist? Alle anderen Zertifikatstypen wären falsch.
-
@copystring das war das Stichwort. Es reichte nicht das Profil zu Installieren. Da muss man beim iPhone doch tiefer in die Abgründe der Einstellungen.
Jedenfalls zappelt jetzt was. -
Ab und an tauchen folgende Meldungen auf.
C:\Users\SpacerX\.local\pipx\venvs\mitmproxy\Scripts\python.exe [21:15:18.262] Packet type CONNACK is not supported yet! C:\Users\SpacerX\.local\pipx\venvs\mitmproxy\Scripts\python.exe [21:15:18.262] Addon error: unpack requires a buffer of 2 bytes Traceback (most recent call last): File "C:\ioBroker\node_modules\iobroker.roborock\lib\sniffing\mitmproxy_roborock.py", line 286, in tcp_message mqtt_packet = MQTTControlPacket(message.content) File "C:\ioBroker\node_modules\iobroker.roborock\lib\sniffing\mitmproxy_roborock.py", line 83, in __init__ self._parse_publish_variable_headers() File "C:\ioBroker\node_modules\iobroker.roborock\lib\sniffing\mitmproxy_roborock.py", line 136, in _parse_publish_variable_headers field_length, field_content_bytes = self._parse_length_prefixed_bytes(offset) File "C:\ioBroker\node_modules\iobroker.roborock\lib\sniffing\mitmproxy_roborock.py", line 127, in _parse_length_prefixed_bytes field_length = struct.unpack("!H", field_length_bytes)[0] struct.error: unpack requires a buffer of 2 bytes C:\Users\SpacerX\.local\pipx\venvs\mitmproxy\Scripts\python.exe [21:15:18.309] [PUBLISH] C:\Users\SpacerX\.local\pipx\venvs\mitmproxy\Scripts\python.exe [21:15:18.309] [PUBLISH]
Die Sniffing Message taucht bei mir leider auch nicht im Log auf.
Jetzt weis ich noch nicht genau nach was ich schauen soll.
-
@spacerx okay. Kann ich mir aktuell nicht angucken. Bin im Urlaub. Du müsstest dich gedulden oder selber mal schauen was das sein kann.
-
@copystring Alles gut!
Nachdem ich 24h Lebenszeit in das Unternehmen Sniffing verschwendet habe, habe ich der PC-Kiste erst mal den Strom abgedreht. Zur Frustbewältigung ein Eis gegessen und 3 Kippen verschlungen.
Nu hat es mir dann doch keine Ruhe gelassen. Also PC wieder an. ioBroker-Dienst + mitmproxy gestartet, Wireguard auf iPone angeschalten und Roborock App gestartet.Jetzt passt auf was kommt!
Es Läuft. Decoded sniffing in der Log-Ausgabe.
Hier schon mal rausgepickt was ich herausfinden will.
2023-08-05 22:12:19.101 - roborock.0 (8400) Decoded sniffing message: {"dps":{"101":"{"id":277019,"method":"get_wash_towel_mode","params":{}}"},"t":1691266339} 2023-08-05 22:12:19.181 - roborock.0 (8400) dps debug: {"id":277019,"result":{"wash_mode":1}} 2023-08-05 22:12:19.204 - roborock.0 (8400) Decoded sniffing message: {"dps":{"101":"{"id":277020,"method":"get_smart_wash_params","params":{}}"},"t":1691266339} 2023-08-05 22:12:19.296 - roborock.0 (8400) dps debug: {"id":277020,"result":{"smart_wash":0,"wash_interval":1200}}
Das sind Teile von den Einstellungen der Dockingstation.
Ich bin erst mal Happy.
Falls jemand für das Sniffing mit Roborock App auf iPhone Unterstützung braucht kann ich gern mit meinen Notizen von diesem Amoklauf behilflich sein.
Gut Nächtle.
-
@jahnbes Bevor ich es vergessen!
In der Doku zu den Objekten vom Robi Hast du eingetragen:
wash_ready wird nach meiner Beobachtung und den Logs von oben immer dann auf TRUE wenn der Robi zum Mopp Waschen richtig herum an der Station angedockt hat. Unter dem Wasserbefüllstutzen am Roboter ist ein Mikroschalter der durch eine kleine Nase unter dem Wasserstutzen der Station betätigt wird.
wash_ready wird FALSE wenn der Robi nach dem Mopp Waschen wieder abdockt und der Robi dreht rum um in Ladeposition wieder anzudocken. -
@jahnbes sagte in Neuer Adapter für Roborock-Staubsauger:
@matt77che
Danke, so habe ich es jetzt auch im Wiki eingetragen.Wenn ihr schon mal dabei seid, das Wiki zu vervollständigen wir haben einen Q7 Max+
Mehrfache Tests haben ergeben:
clean_type:
1 = Gesamt Reinigung (alle Räume)
2 = Zonenreinigung (ausgewählt über die App z.b.)
3 = Raumreinigungstart_type:
1 = manuell (Knopfdruck am Roboter)
2 = via App (aus der App gestartet oder per ioBroker.Adapter)
3 = Planstart (durch Zeitplanung in der App)complete Type
1 = normal beendet
<> 1 = abgebrochen
Andere Werte habe ich auch noch, die schicke ich nachher noch nach
Gruß Micha
-
@spacerx Danke, ist geändert!
-
@tritanium
Danke, MIcha, ich habe das Wiki ergänzt. Und warte auf Weiteres!
Ein schönes Wochenende noch, Gruß Bert. -
@jahnbes Sorry das ich nerve.
Es ist genau umgekehrt!
0 = Nicht bereit zum Mopp Waschen
1 = Bereit zum Mopp Waschen und ggf. Wasser nachtankenSagt aus das der Saugroboter richtig herum in der Station steht und bereit ist um den Mopp zu Waschen oder Wasser nachzutanken.
Wenn der Robi beim Andocken zum Waschen den Befüllstutzen nicht treffen würde bleibt wash_ready auf 0 (FALSE) -
@spacerx
Oh je, ich habe 0 und 1 und die Zuordnung von true und false dazu verwechselt. Mea culpa.
Gruß Bert. -
So, diesmal habe ich mich mit dem Aufbau der JSON befasst.
Datenpunkt ...CleaningInfo.JSON:
begin + end:-------> Im TS Format
duration:-----------> in Sekunden
area:----------------> Gereingte Fläche (durch 1000000, für m²)
error:---------------> 0 = ohne Fehler beendet
duration:-----------> in Sekunden
complete:----------> 0 = abgebrochene Reinigung, 1 = Reingung beendet
start_type:---------> siehe Wiki
clean_type:--------> siehe Wiki
dust_collection_Status: -----> 0 = Staub eingesammelt (nur), 1 = gesaugt + gewischt
map_flag:-----------> Karten ID (bei mir immer 0, da nur eine Karte verwendet wird)
Den DP "finish_reason" gibt es übrigens mit folgenden Ergebnissen:
21
24
52
54
56Die bin ich aber noch am "testen"
Habe die JSON bei mir in der VIS drin und dementspreechend formatiert:
Melde mich wieder wenn ich mehr habe, bis dahin lg MIcha