Ankündigung

Einklappen

Hinweis

Die Forenregeln wurden überarbeitet (Stand 7.11.22). Sie sind ab sofort verbindlich. Wir bitten um Beachtung.
Mehr anzeigen
Weniger anzeigen

Xiaomi / Roboroc Baustein 19001929

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

    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?

    Kommentar


      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

      Kommentar


        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.

        Kommentar


          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.

          Kommentar


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

            Kommentar


              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.

              Kommentar


                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
                Jean-Luc Picard: "Things are only impossible until they are not."

                Kommentar


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

                  Kommentar


                    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.

                    Kommentar


                      jonofe

                      Ich hab deine Info bzgl. Vlan eingebunden in der Hilfe eingebunden. Hab auch die E18 umgebaut. Es kann sein, dass der Refresh am LBS zu früh erfolgt ist. Ich hab jetzt eine Verzögerung von 10 Sekunden drin. Schau mal bitte, ob das so funktioniert.

                      Das ist der Wert in der Zeile 496, schau mal bitte, ob es auch mit 5 zuverlässig funktioniert - alternativ bischen mit dem Wert rumspielen. Sag bitte bescheid, was ich final da eintragen soll - sofern es so geht.

                      Hab den LBS erstmal in die Dropbox:
                      https://www.dropbox.com/s/h7r5em7jhh...9_lbs.php?dl=0

                      Wenn ich das richtig sehe gibts da ja noch paar mehr Optionen:
                      Wischroute: Standard / gründlich
                      Wischintensität: 1..3
                      und eben die 4 Optionen.

                      Schau ich mir die Tage an.

                      Wo ich diese 3d Karte sehe kommen mir auch schon paar Ideen...

                      Kommentar


                        Zitat von sipiyou Beitrag anzeigen
                        Hab auch die E18 umgebaut. Es kann sein, dass der Refresh am LBS zu früh erfolgt ist. Ich hab jetzt eine Verzögerung von 10 Sekunden drin. Schau mal bitte, ob das so funktioniert.
                        Funktioniert leider nicht. Hatte ich schon befürchtet, denn auch ein mehrfaches Triggern auch mit 30 Sekunden Abstand zum Map-Wechsel hat nicht funktioniert. A13 wird erst beim zweiten Kartenwechsel geändert, dann aber auf den vorhergehenden Wert. Das Update dauert dabei auch nur ca. 1-2 Sekunden.

                        Zitat von sipiyou Beitrag anzeigen
                        Wenn ich das richtig sehe gibts da ja noch paar mehr Optionen:
                        Es sind die 4 o.g. Varianten und jeder Variante hat 0 bis 2 Optionen.
                        D.h. zuerst wählt man Vac&Map, Saugen, Wischen, Individuell
                        und dann je nach Auswahl die zugehörigen Parameter.

                        Kommentar


                          Zitat von jonofe Beitrag anzeigen

                          .

                          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.
                          Der Unterschied zum s7 ist hier nur die fehlende "max +" Option. der Rest Ist gleich.
                          Jean-Luc Picard: "Things are only impossible until they are not."

                          Kommentar


                            jonofe: In welchen Zeitabständen triggerst du den Baustein ? Die Daten werden mit dem nächsten Trigger aktualisiert.

                            Kommentar


                              Ich wechsel die Map und triggere dann in der Liveansicht immer wieder mit E1=1. Aber auch nach 60 Sekunden ist noch nicht der richtige Wert an A13 zu sehen. Der Wert an A13 hinkt immer einen Mapwechsel hinterher, d h er zeigt immer die vorletzte map an, nie die aktuelle.

                              Das war Quatsch!

                              Ich glaube ich hatte den LBS noch nicht neu eingelesen. Es funktioniert nun nach ca. 10 Sekunden erscheint die korrekte MAP an A13 bei einem sekündlichen Update an E1 (Zeit-iKO als Trigger an E1).

                              Ich probiere jetzt mal, wie weit ich den Wert runterdrehen kann und es trotzdem noch funktioniert.

                              Zuletzt geändert von jonofe; 23.06.2022, 12:47.

                              Kommentar


                                Zitat von jonofe Beitrag anzeigen
                                Ich probiere jetzt mal, wie weit ich den Wert runterdrehen kann und es trotzdem noch funktioniert.
                                Also, Ergebnis ist, das es unterhalb von 10 Sekunden nicht stabil funktioniert. Selbst mit 10 Sekunden Wartezeit geht es manchmal nicht. Um auf Nummer Sicher zu gehen, könnte man das getActiveMapIndex() evtl. regelmäßig nach einem Map-Wechsel aufrufen, entweder automatisch im LBS oder über einen Eingang, mit dem man getActiveMapIndex() triggern könnte? Im letzteren Fall könnte man bei einem Triggern von E18 einen Telegrammgenerator starten, der dann für 20 Sekunden in einem bestimmte Takt den Eingang für getActiveMapIndex() triggert.

                                Kommentar

                                Lädt...
                                X