Ankündigung

Einklappen
Keine Ankündigung bisher.

Xiaomi / Roboroc Baustein 19001929

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • jonofe
    antwortet
    Zitat von JanKNX Beitrag anzeigen
    Nachtrag: Ich habe das Umschalten im Edomi-Monitor beobachtet. Wenn ich eine andere Karte aufrufe, gibt der Baustein nicht die geänderte Karten-ID aus, auch nicht nach dem nächsten triggern.
    Ich kann bei mir dasselbe Phänomen beobachten. Wenn ich über E18 eine Karte auswähle, zeigt A13 nicht den neuen Wert an, sondern immer den vorherigen.

    Bsp: aktuelle Karte = 0
    E18=1 => A13=0
    E18=3 => A13=1
    E18=2 => A13=3
    usw.

    Auch ein mehrfaches Triggern über E1 hilft da nicht. A13 ändert sich erst bei nächsten Ändern von E18, aber leider immer auf den Wert, der davor aktuell war.

    Habe nach dem zitierten Post von JanKNX keine weiteren Infos dazu gefunden...

    EDIT:

    Ich hatte vergessen zu erwähnen, dass in der Xiaomi Home App, die Karte nach Änderung via E18 innerhalb von Sekunden gewechselt wird, d.h. der Befehl wird ausgeführt, nur das Update von A13 funktioniert nicht.
    Zuletzt geändert von jonofe; 21.06.2022, 15:55.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von trollmar Beitrag anzeigen
    Dachte schon du scheiterst an der Inbetriebnahme
    Das hatte ich auch kurz befürchtet.

    Einen Kommentar schreiben:


  • trollmar
    antwortet
    Zitat von jonofe Beitrag anzeigen

    Dazu kann ich jetzt endlich auch was beitragen
    .
    wurde aber auch Zeit André!! Dachte schon du scheiterst an der Inbetriebnahme

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von sipiyou Beitrag anzeigen
    Wie das beim S7 und co ist, kann ich nicht sagen. Ich könnte mir aber auch vorstellen, dass du das in der App einstellen kannst, ob welcher Raum gemoppt werden soll.
    Das Kommando ist nur "Starten". Schau mal bitte, wie das in der App beim S7 ist.
    Wenn es dort die Funktion gibt, dann schau ich, wie die Funktion im LBS abgebildet werden kann.
    Dazu kann ich jetzt endlich auch was beitragen

    In der App sieht es so aus:

    Screenshot_20220621-090415_Mi Home.jpgScreenshot_20220621-090420_Mi Home.jpgScreenshot_20220621-090435_Mi Home.jpgScreenshot_20220621-090443_Mi Home.jpg

    Es kann also ausgewählt werden, ob Saugen&Wischen, Nur Saugen, Nur Wischen oder Individuell mit Raumauswahl.
    Je nach Auswahl kann man dann Saugleistung, Wischintensität auswählen.
    Die Zuordnung bei Individuell würde man wohl eher nur in der App machen, aber es wäre super, wenn man auf der ersten Auswahl Stufe die Auswahl "Individuell" per LBS auswählen könnte.

    D.h. es gibt 4 Varianten, die man konfigurieren kann
    1. Saugen/Wischen mit den Einstellungen Saugleistung & Wischintensität
    2. Wischen mit den Einstellungen Wischintensität & Wischroute
    3. Saugen mit den Einstellungen Saugleistung oder MAX+
    4. Individuell
    Ob das dann wirklich über die API geht weiss ich nicht, könnte aber den Betatester machen und Infos bereitstellen.

    Einen Kommentar schreiben:


  • mno
    antwortet
    Ah ok, das freut mich für Dich.
    Sehr speziell.

    Einen Kommentar schreiben:


  • mno
    antwortet
    Ok, habe jetzt noch einmal nachgeschaut.
    Also bei mir kommt auch immer eine neues Token an A10. Aber wie gesagt ich schreibe das in ein iKo und weiße es E7 zu. Dann sind Sie bei mir identisch.
    Steht so glaube ich auch in der Bausteinhilfe.

    Ich habe beim internen Token nur die Zahlen kein [LF]

    IP und Token hast du wie von dir geschrieben (habe ich leider überlesen) schon probiert.

    Dennoch denke ich, das er wenn er sich nicht in der Cloud einloggen kann keine Daten vom Roboter holen kann.

    Habe gerade gesehen, das es ein Firmware Update für den S7 4.1.5_1500 gibt.
    Edomit habe ich eben noch einmal neu gestartet und jetzt loggt er sich bei mir wieder in der Cloud ein.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Vielen Dank für deine Hilfe.

    Zitat von mno Beitrag anzeigen
    Hast Du wirklich im Heimnetz die 10.0.20.105?
    Jep.

    Zitat von mno Beitrag anzeigen
    Ich vermute das kein Login in der Cloud möglich ist und du deswegen keine Daten bekommst und es wird versucht die Daten vom Saugroboter zu holen.
    Das Login zur Cloud funktioniert, sonst hätte ich das Token nicht bekommen. Das "Kein Login" bedeutet wohl nur, dass kein neues Login notwendig ist, da das Token schon vorhanden ist und aus dem Cache verwendet wird.

    Aber dennoch konnte ich gerade das Problem lokalisieren und lösen und zwar wie folgt:

    Es liegt daran, dass EDOMI und meine zu intelligenten China Gadgets in unterschiedlichen VLANs leben. Eigentlich sollte das kein Problem sein, da die Kommunikation geroutet wird und auch der Port in der Firewall freigeschaltet war. Ich konnte also sowohl ein Ping machen als auch den UDP 54321 Port des Roborocks auf dem die Kommunikation läuft vom EDOMI Server aus erreichen .

    Das Problem ist aber, dass Xiaomi bei einigen Modellen entweder einen Bug in der Firmware hat oder ein neues Sicherheitsfeature eingebaut hat. Ausgewählte Geräte/Modelle verwerfen wohl UDP Packets, die nicht aus demselben Netz stammen. Mein EDOMI Server liegt im 10.0.80.0/24 Netz und der Roborock im 10.0.20.0/24.

    Das ganze ist HIER nochmal dokumentiert und trifft bei mir auch für meinen Mi Smart Standing Fan 2 zu.
    Die Lösung ist nun im Router für die Kommunikation von der EDOMI-IP zum Roborock (und zum Mi Smart Standing Fan) ein Masquerading zu aktivieren. Damit kommt für den Roborock die Kommunikation nicht mehr von 10.0.80.### im VLAN80 sondern von 10.0.20.1, dem Interface des Routers im VLAN20.

    Nach dieser Änderung im Router haben sich beim nächsten Trigger (E1=1) sofort die Ausgänge entsprechend gefüllt.

    mno Danke nochmal für deinen Support.

    sipiyou : Auch wenn es ein Spezialfall ist, kann man evtl. noch einen Satz in der Hilfe dazu ergänzen:

    "Wenn sich EDOMI Server und Roborock in unterschiedlichen VLANs befinden ist sowohl eine Firewallfreischaltung (Quelle: EDOMI-IP / Ziel: Roborock-IP, Port 54321) als auch Masquerading (Quelle: EDOMI-IP, Ziel: Roborock-IP, Outgoing-Interface: VLAN-Interface des Routers/Firewall im Roborock VLAN)"
    Ich habe es zumindest hier mal dokumentiert, damit ich es irgendwann mal wiederfinde.
    Zuletzt geändert von jonofe; 21.06.2022, 07:59.

    Einen Kommentar schreiben:


  • mno
    antwortet
    Hi Jonofe,
    ich bin kein Expert.

    Zeile 1 sagt für mich, das die Daten aus dem Cache verwendet werden sollen - Kein Login ( das ist unterschiedlich zu deinem ersten Post, da war wohl ein Login in der Cloud.

    Hast Du wirklich im Heimnetz die 10.0.20.105?
    Wenn ja dann mal in E10 eintragen. Auch Dein lokales Token - token = 59654c4f4f656b69384#########596d - mal bei E11 eintragen.

    Ich vermute das kein Login in der Cloud möglich ist und du deswegen keine Daten bekommst und es wird versucht die Daten vom Saugroboter zu holen.

    Hier meine aktuellen Daten:
    Bildschirmfoto 2022-06-21 um 07.58.49.png

    Aber wie gesagt keine Experte und nur eine Vermutung

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von mno Beitrag anzeigen
    Eins ist mir noch aufgefallen A10 und E7 sind bei mir identisch. Bei Dir nicht.
    Seit ich das Token an E7 mit entsprechenden Linebreaks eingebe, sind die beiden o.g. Fehler und A10 bleibt beim Triggern leer.
    Ist das bei dir auch so? Oder kommt an A10 bei jedem Start das Cloud-Token raus?

    Zitat von mno Beitrag anzeigen
    ich habe noch bei E10 die lokale IP Adresse und bei E11 noch das lokale Token eingetragen
    Habe ich jetzt auch mal gemacht, ändert ab nichts am Verhalten.

    Das hier ist jetzt das aktuelle Log eines Triggervorgangs:

    Code:
    2022-06-21 06:38:31 329597 25396 Debug Cloud-Daten aus Cache verwenden. Kein Login!
    2022-06-21 06:38:31 329862 25396 Debug V3=sgbgEbuTrtsiSQKrLO45JOMQ/XxO5MH8FCUO#########jHqxGNIjw+mEiDFs/WgWA92C4bPz80YY351dmEYKaeNfVL1Dj2lMxruMcGB6U7sS9v6 FtwaYMW1ogb5XCLmcI6QbFH6DNneFPkXrS00zUdKHYOET0WR8A 9EjYOBf1Oc=V4=tKtBO########P15D8KSg==V5=158######60
    2022-06-21 06:38:31 329900 25396 Debug ip: bzw. token : sind leer. Cloud->getDeviceStatus()
    2022-06-21 06:38:31 595468 25396 Info DeviceStatus ok[LF]
    2022-06-21 06:38:31 596132 25396 Debug ip = 10.0.20.105; token = 59654c4f4f656b69384#########596d[LF]
    2022-06-21 06:38:31 596328 25396 Debug CloudStateInformation:array(10) ... <hier stehen die Daten der 10 Geräte, Index 9 ist der Roborock>
    2022-06-21 06:38:31 596484 25396 Debug cloud->isAccessible:Y-E10=10.0.20.105-E11=59654c4f#########e69576e39596d
    2022-06-21 06:38:31 596503 25396 Debug RoborockMe:: ip = 10.0.20.105; token = 59654c4f4f656b69#########9596d; SequenceID: 0
    2022-06-21 06:38:51 616070 25396 Debug roborocMe:: ok
    2022-06-21 06:38:51 616153 25396 Info Roboter reagiert nicht.
    2022-06-21 06:38:51 616875 25396 Debug Ausführungszeit: 20.287811994553 [s]
    Ich vermute, das erste Problem tritt in der vorletzten Zeile auf? "Roboter reagiert nicht", oder? Ist der Teil davor so wie er sein sollte?

    Einen Kommentar schreiben:


  • mno
    antwortet
    Eins ist mir noch aufgefallen A10 und E7 sind bei mir identisch. Bei Dir nicht.

    Einen Kommentar schreiben:


  • mno
    antwortet
    Moin,
    ich habe noch bei E10 die lokale IP Adresse und bei E11 noch das lokale Token eingetragen.
    Ansonsten sieht es so aus wie bei mir

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Ich bekomme den LBS leider nicht zum Laufen.

    Ich habe den S7 MaxV in der MiHome App registriert und den LBS mit meinem MiHome Account Daten an E2/E3 gestartet, Debug=2, Geräte-ID=0.
    Im Log konnte ich dann identifizieren, dass die Geräte-ID wohl die 9 ist. Außerdem erscheint das Cloud Token kurz nach dem Start dann an A10.
    Diese ID habe ich dann im LBS eingetragen und das Cloud Token über ein iKO an E7 verbunden.

    roborock.png

    Beim Neustart sehe ich nun auch die IP des Saugers im Log (s.u.), aber alle Ausgänge bleiben leer. Außerdem sehe ich nach jedem Start ein neues Cloud Token an A10, keine Ahnung warum.

    Code:
    2022-06-20 23:22:55 744947 13197 Info Login erfolgreich!
    2022-06-20 23:22:55 745101 13197 Debug uid=158####860; ssecurity=RMA3PLFK#####iC7XP2wtg==; serviceToken= 2N7lziJ2Ct#####pxzUvf0n4Td/xiC#####x9oB4bCH5a1uVDxMETMTYBOm80jTcoWko3aJfToxhJ zSreEeCOukm8gaoSRDVltzZYD+aT34XWtYc5/RfQTHHCsM7pD/CcR7IvC4o8KQzPQEomz#####YWtISyA4lbC8R5UTQkoc=
    2022-06-20 23:22:55 745126 13197 Debug ip: bzw. token : sind leer. Cloud->getDeviceStatus()
    2022-06-20 23:22:55 921572 13197 Info DeviceStatus ok[LF]
    2022-06-20 23:22:55 922188 13197 Debug ip = 10.0.20.105; token = 59654c4f4f656b6######576e39596d[LF]
    2022-06-20 23:22:55 922358 13197 Debug CloudStateInformation:array(10) [9]=>[LF] array(27) {[LF] ["did"]=>[LF] string(9) "5353####24"[LF] ["token"]=>[LF] string(32) "59654c4f4#####69576e39596d"[LF] ["longitude"]=>[LF] string(3) "0.0"[LF] ["latitude"]=>[LF] string(3) "0.0"[LF] ["name"]=>[LF] string(16) "Roborock S7 MaxV"[LF] ["pid"]=>[LF] string(1) "0"[LF] ["localip"]=>[LF] string(11) "10.0.20.105"[LF] ["mac"]=>[LF] string(17) "B0:4A:39:47:90:10"[LF] ["ssid"]=>[LF] string(8) "FELD-IOT"[LF] ["bssid"]=>[LF] string(17) "02:0C:42:6E:B5:12"[LF] ["parent_id"]=>[LF] string(0) ""[LF] ["parent_model"]=>[LF] string(0) ""[LF] ["show_mode"]=>[LF] int(1)[LF] ["model"]=>[LF] string(19) "roborock.vacuum.a27"[LF] ["adminFlag"]=>[LF] int(1)[LF] ["shareFlag"]=>[LF] int(0)[LF] ["permitLevel"]=>[LF] int(16)[LF] ["isOnline"]=>[LF] bool(true)[LF] ["desc"]=>[LF] string(14) "Gerät online "[LF] ["extra"]=>[LF] array(5) {[LF] ["isSetPincode"]=>[LF] int(0)[LF] ["pincodeType"]=>[LF] int(0)[LF] ["fw_version"]=>[LF] string(10) "4.1.5_4676"[LF] ["needVerifyCode"]=>[LF] int(0)[LF] ["isPasswordEncrypt"]=>[LF] int(0)[LF] }[LF] ["uid"]=>[LF] int(15#####0)[LF] ["pd_id"]=>[LF] int(72166)[LF] ["password"]=>[LF] string(0) ""[LF] ["p2p_id"]=>[LF] string(0) ""[LF] ["rssi"]=>[LF] int(-51)[LF] ["family_id"]=>[LF] int(0)[LF] ["reset_flag"]=>[LF] int(0)[LF] }[LF]}[LF]
    2022-06-20 23:22:55 922518 13197 Debug cloud->isAccessible:Y-E10=-E11=
    2022-06-20 23:22:55 922538 13197 Debug RoborockMe:: ip = 10.0.20.105; token = 59654c4f#######4e69576e39596d; SequenceID: 0

    Zusätzlich erscheinen bei jedem Start des Projekts zwei Einträge im Fehlerlog:

    Code:
    2022-06-20 23:20:33 070550 ? 13089 Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19001929.php | Fehlercode: 8 | Zeile: 20 | Undefined offset: 1 ERROR
    2022-06-20 23:20:33 070640 ? 13089 Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19001929.php | Fehlercode: 8 | Zeile: 20 | Undefined offset: 2 ERROR
    Kann mir jemand einen Tip geben?

    Ich sehe gerade: Kann es sein, dass ich nicht das Token von A10 (sehr langes Token + UID) an E7 verwenden muss, sondern das Token aus dem Log, dass mit 5965.... anfängt? Das teste ich mal kurz ...

    EDIT:

    Hat nicht geholfen. Allerdings sind die beiden Fehler jetzt weg. An E7 wird wohl ein durch NEWLINE "\n" getrenntes Token erwartet, welches man aber so einfach nicht in einem iKO ablegen kann. Daher habe ich ein iKO an E7 gehängt, dieses Remanent gesetzt und dann in der Liveansicht das Token inkl. der Linebreaks eingefügt. Danach sind die Fehler dann weg. Aber der LBS sagt nach wie vor nichts ...

    Bei jedem erneuten Triggern mit E1=1 bekommen ich folgendes im Log:

    Code:
    2022-06-21 00:04:42 995786 15352 Debug Cloud-Daten aus Cache verwenden. Kein Login!
    2022-06-21 00:04:42 995964 15352 Debug V3=sgbgEbuTrtsiSQKrLO45JOMQ/XxO5MH8FCUOetVUmuM0jHqxGNIjw+mEiDFs/WgWA92C4b1Dj2lMxruMcGB6U7sS9v6 FtwaYMW1ogb5XCLmcI6QbFH6DNneFPkXrS00zUdKHYOET0WR8A 9EjYOBf1Oc=V4=tKtBO/5lXWLmhIP15D8KSg==V5=1585584860
    2022-06-21 00:04:42 995999 15352 Debug cloud->isAccessible:Y-E10=-E11=
    2022-06-21 00:04:42 996020 15352 Debug RoborockMe:: ip = 10.0.20.105; token = 59654c4##############d; SequenceID: 0
    2022-06-21 00:05:03 013848 15352 Debug roborocMe:: ok
    2022-06-21 00:05:03 013940 15352 Info Roboter reagiert nicht.
    2022-06-21 00:05:03 014533 15352 Debug Ausführungszeit: 20.019255161285 [s]
    Zuletzt geändert von jonofe; 20.06.2022, 23:07.

    Einen Kommentar schreiben:


  • sipiyou
    antwortet
    trollmar: Ist jetzt eine gute Frage. Ich hab nur den S6 und den S6maxV. Wenn ich das Reinigungstuch andocke, dann ist der automatisch auf saugen und wischen.
    Du kannst über die App dann einstellen, wie feucht welcher Raum gewischt werden soll, wenn das Tüchlein unten dran ist.

    Wie das beim S7 und co ist, kann ich nicht sagen. Ich könnte mir aber auch vorstellen, dass du das in der App einstellen kannst, ob welcher Raum gemoppt werden soll.
    Das Kommando ist nur "Starten". Schau mal bitte, wie das in der App beim S7 ist.
    Wenn es dort die Funktion gibt, dann schau ich, wie die Funktion im LBS abgebildet werden kann.

    Einen Kommentar schreiben:


  • trollmar
    antwortet
    Danke Sipiyou fürs update! Noch keine Absaug Station ..aber das hole ich sicher nach!

    Bin vom Gen1 auf den S7 gewechselt. ..is schon nen sprung wenn auch kein Quantensprung ;-)


    So wie ich verstanden habe ist der zuletzt aktive Modus (Vac+Mob oder nur Mob oder nur Vac) in der Xiaomi app doch auch der Modus mit das
    Startkommando gestartet wird....oder?

    Kann ich den Baustein so triggern das er "nur" saugt und nicht auch gleichzeitig wischt egal was in der App und aktuellen Karte als Modus gerade zuletzt verwendet wurde?

    LG
    Zuletzt geändert von trollmar; 20.06.2022, 20:54.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Perfektes Timing. Heute hat meine Frau den S7 MaxV Plus zum Geburtstag bekommen. Werde in den nächsten Tagen testen und berichten. Danke schon mal vorab für den LBS!

    Einen Kommentar schreiben:

Lädt...
X