Ankündigung

Einklappen
Keine Ankündigung bisher.

Xiaomi / Roboroc Baustein 19001929

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

    Sooo... ich hab es gelöst

    Nachdem alles andere nicht half, habe ich mal versucht mich bei Xiaomi einzuloggen, um mein Passwort zu prüfen. Es war korrekt. Mich hat aber auch eine "Bitte Account per Telefon verifizieren" (sinngemäß) Nachricht begrüßt. Nachdem ich das getan habe, lief auch der Baustein wieder.

    Ich bin mir ziemlich sicher, dass der Baustein davor lief, weil der Staubsauger bei uns ständig im Einsatz ist. Ob das Update irgendwie die Sicherheitsprüfung getriggert haben kann? edomi ist weiterhin in der gleichen VM gelaufen. An IP oder Mac-Adresse oder so hat sich nichts geändert

    Danke + Grüße

    Kommentar


      Hi zusammen,

      ich hab 2 S50-Robbies im Haus, mit Valetudo bestückt, jeweils mit mqtt in Edomi eingebunden und lasse mir die Maps über ein dockercontainer generieren.

      Nun würde ich gerne auch diese Lösung versimplifizieren und diesen tollen LBS einbinden. Vielen Dank an dieser Stelle für die viele Mühe, die da drin steckt!!

      Ich habe aus diesen Grund heute den LBS und den VisuBaustein downgeloaded und importiert.

      Der LBS kann den Robbi nach IP-Vergabe sofort steuern. Es scheint einen kleinen Bug beim Auswerfen der Map-URL für Valetudo-Robbies zu geben, den hab ich bei mir korrigiert, ist aber eher nebensächlich, da die auszugebende URL ja bekannt ist und auch hardgecoded in ein iKO geworfen werden kann. Nur zur Info für spätere Updates:
      ------------------------------------------------------------------------------------------------------------------------------------

      alt:

      ......} else {
      exec_debug (1, "getMapV1: fehlgeschlagen. Roboter nicht online ?");
      }
      }
      } else if (!empty($E[12]['value']) && $E[12]['value'] == 1 && !empty($E[10]['value'])) {



      neu:

      ......} else {
      exec_debug (1, "getMapV1: fehlgeschlagen. Roboter nicht online ?");
      }
      }
      else{
      $ret = "http://".$E[10]['value']."/api/map/latest";
      logic_setOutput($id, 40, $ret);
      }

      } else if (!empty($E[12]['value']) && $E[12]['value'] == 1 && !empty($E[10]['value'])) {

      ------------------------------------------------------------------------------------------------------------------------------------

      Jetzt zu meinem Problem.... Das Visuelement zeigt nichts an. Es kennt die URL, welche auch die MapKoordinaten des Robbis liefert. Ich habe mehrere Browser probiert.
      Eine vorherige Version hatte ich nicht installiert.

      Mein Verdacht:
      In der Hilfe steht etwas von externen javascript-Files, welche, wie ich es verstehe, bei Visuaktivierung erstellt werden und unter /usr/local/edomi/www/shared/js gelegt werden. In diesem Verzeichnis finde ich bei mir aber nur folgende Files, die irgendwie nicht nach Roborock klingen:
      - graphics.js
      - camview_global.js
      - camview_worker.js
      - camview.js
      - main.js

      Kann es sein, dass beim Erstellen dieser js-Files etwas nicht klappt bei mir? Müssen Rechte auf diesen Pfad geändert werden?

      Ich weiss, dass es bei anderen klappt, aber ich stehe irgendwie auf dem Schlauch gerade und mir fehlt der Ansatz, den Fehler zu suchen

      Vielleicht hat jemand eine Idee?

      Viele Grüße
      Christian

      Kommentar


        Okay, war quatsch.... es gibt keine externen js.files mehr, sind ausdokumentiert im Quelltext.

        Um ein URL-Lese-Problem auszuschliessen habe ich im VSE-Quelltext hardgecoded den Inhalt von /map/latest

        {"header_length":20,"data_length":35992,"versio n": {"major":1,"....

        in den $string in PHP_VSE_VSEID gepackt

        $string = ' {"header_length":20,"data_length":35992,"versio n": {"major":1,"....) und das Projekt neu aktiviert.


        Aber auch dann generiert er keine Karte, an einem Leseproblem kann es somit nicht liegen.

        Kommentar


          Es sieht so aus, als wenn dein valetudo die map als json o.ä. ausgibt. Der Baustein benötigt hier aber die binäre Datei.

          stonie2oo4 ich hatte mir das ja bei dir angeschaut, bei dir gibt valetudo die Info binär aus. Könntest du hier paar Tipps geben ? Dann übernehme ich das auch im Hilfetext.

          Kommentar


            Ich vermute es liegt an der verwendeten valetudo Version. Ich verwende einen Fork von hier:
            https://github.com/rand256/valetudo

            Langer89 hat mir ein ähnliches Problem per PN geschildert und er verwendet diese valetudo Version:
            https://github.com/Hypfer/Valetudo

            Ich meine mal was gelesen zu haben das hypfer die map Generierung ausgelagert hat, da es zuviel Resourcen auf dem robi verbraucht. Sicher bin ich mir dabei aber nicht zu 100%
            Würde sich auch mit dem decken was bei rand256 steht:
            Code:
            • You can also try to request a simple map from Valetudo RE itself via http at /api/simple_map, but it shouldn't be called too often since resources of the vacuum are limited.

            willchr
            welche valetudo Version hast du im Einsatz?

            Langer89
            Hast du es zufällig bei dir hin bekommen?
            Gruß Ben

            Kommentar


              ja, richtig, ich habe Valetudo 4.0 und 5.2 im Einsatz, beide geben ein json aus. Da ein Wechsel auf eine andere Valetudoversion für mich keine Option ist, heisst das, dass nur ein Umgehen dieses Umwandlungsschrittes von Base64 auf Json eine Möglichkeit wäre, den VSE für mich zum Laufen zum bringen.

              Die Mapgenerierung ist momentan auch bei mir ausgelagert in einem Dockercontainer, welcher ein png über einen webserver auswirft. Da habe ich aber nicht dieses wirklich nette feature, direkt in der Map die Zone anwählen zu können.

              Wenn der VSE direkt JSON verstehen würde, könnte man die Sache noch weiterspinnen. Ein großer Vorteil der cloudlosen Robbies ist die sehr nice MQTT-Anbindung, worüber auch die Map-Daten in Klartext ausgegeben werden. Aber da man bei Edomi das MQTT-Ergebnis aber erst in ein iKO schreiben muss, welche auf 10K Zeichen limitiert ist, müsste man sowohl das entsprechende DB-Feld von varchar(10000) auf mediumtext ändern und eine eigene Ausgangsbox schreiben, um jegliche 10K-Limits zu umgehen.

              Kommentar


                Hier müsste ein json parser geschrieben werden, das ist keine Umwandlung von base64.

                in diesem Fall tut es mir leid, aber der Aufwand kommt für mich so nicht in Frage. Du kannst den Baustein gerne forken und selbst erweitern.

                Kommentar


                  (wegen Falschaussage gelöscht)
                  Zuletzt geändert von willchr; 02.07.2020, 18:10.

                  Kommentar


                    Könnte mir bitte mal jemand von Euch, bei denen automatisch Segmente erkannt werden, beispielhaft einen String posten, der das Segment image->pixels->segments des map-Jsons enthält?

                    Ich möchte die selbst angelegten Räume, von denen mir ja die Koordinaten bekannt sind, vor Map-Erstellung als Segmente in das Json einfügen.

                    Das wäre sehr nett

                    Kommentar


                      Zitat von stonie2oo4 Beitrag anzeigen
                      Hast du es zufällig bei dir hin bekommen?
                      Nein bisher nicht. Habe es aber auch nicht weiter versucht, da die Prioritäten zur Zeit wo anders liegen. An einer Lösung bin ich aber weiter interessiert ;-)

                      Gruß
                      Henrik

                      Kommentar

                      Lädt...
                      X