Plugin: MiRobot2Lox-NG - Xiaomi Vacuum Robots

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Haidy
    LoxBus Spammer
    • 01.06.2016
    • 396

    t_heinrich du meinst welchen Use-Case ich für die Stati vom Robo habe? Oder habe ich die Frage falsch verstanden?
    Loxone: Miniserver Gen.1, 1-Wire Extension, Air Base Extension, Dali-Extension, KNX (MDT GT2S, BWM, Taster, ...)
    Technik: PV 11,7kWp, Fronius Symo GEN24, BYD HVS 10,24kWh, LoxBerry, QNAP TS-431P, Unifi, Shelly

    Kommentar


    • t_heinrich
      t_heinrich kommentierte
      Kommentar bearbeiten
      Haidy sorry, da hab ich mich wohl missverständlich ausgedrückt.
      Ich habe seit einigen Wochen einen Roborock Q8 Max und erhalte hier (auch) keinen Status mehr.
      Nun habe ich durch dich erfahren, dass anscheinend nur die virtuellen Ausgänge nicht mehr korrekt sind.
      Ich hab jetzt nur nicht verstanden, was du genau gemacht hast. :-)
  • Haidy
    LoxBus Spammer
    • 01.06.2016
    • 396

    Hallo t_heinrich,

    kein Problem, gerne schildere ich meine Lösung.
    Ich habe die VI mit der Vorlage aus dem Plugin (Eingänge / Ausgänge --> Virtuelle HTTP Eingänge) in meine Config importiert, dann habe ich in der Config bei diesem virtuellen Eingang die URL auf "http://IPvomLoxberry/plugins/mirobot2lox-ng/sendcmd.cgi?command=status&robot=1&debug=0" geändert.
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: VI_MiRobot.png
Ansichten: 471
Größe: 149,4 KB
ID: 426894
    Im nächsten Schritt habe ich dann bei den einzelnen virtuellen HTTP Eingangsbefehlen die Befehlserkennung auf die Ausgabe der vorhin genannten URL angepasst:
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Befehlserkennung.png
Ansichten: 418
Größe: 85,6 KB
ID: 426895
    Battery: \i"battery":\i\v
    Clean Area: \i"clean_area":\i\v
    Clean Time: \i"clean_time":\i\v
    State Code: \i"state":\i\v
    Error Code: \i"error_code":\i\v

    In der Config habe ich dann einfach die Vorlage aus dem Plugin-Beitrag im Wiki verwendet: https://wiki.loxberry.de/_media/plug...ng/mirobot.zip

    Die Statusauswertung über den Statusbaustein muss ich aber noch anpassen, den das scheint für den Q8 Max nicht ganz zu passen.
    z.B. steht der Robo aktuell in der Ladestation und ist voll geladen, als Status bekomme ich aber "8 - Charging" zurück, was nicht ganz falsch ist, aber ich hätte da eher "15 - Docking" oder "100 - Fully Charged" erwartet.
    Loxone: Miniserver Gen.1, 1-Wire Extension, Air Base Extension, Dali-Extension, KNX (MDT GT2S, BWM, Taster, ...)
    Technik: PV 11,7kWp, Fronius Symo GEN24, BYD HVS 10,24kWh, LoxBerry, QNAP TS-431P, Unifi, Shelly

    Kommentar


    • t_heinrich
      t_heinrich kommentierte
      Kommentar bearbeiten
      Danke schon mal für die ausführliche Erklärung.
      Ich merke gerade, dass meine ganzen Eingangsbefehle auf UDP laufen, dass muss ich mir wohl genauer anschauen.
      Der Befehl für Battery ist zB MiRobot1:\ibattery=\i\v
  • meisterjäger
    Smart Home'r
    • 15.06.2019
    • 71

    Hallo Prof.Mobilux, kann man mit diesen Infos was anfangen bezüglich Roborock App Integration?

    Kommentar


    • Prof.Mobilux
      Prof.Mobilux kommentierte
      Kommentar bearbeiten
      Nein. Das Plugin nutzt die Software https://github.com/rytilahti/python-miio Wenn die es kann, dann kann es das Plugin. Solange die das nicht kann, kann es auch das Plugin nicht. Ich plane aktuell nicht das Plugin auf eine andere Api umzubauen.

    • meisterjäger
      meisterjäger kommentierte
      Kommentar bearbeiten
      Vielen Dank für die Rückmeldung. Ich habe bei GitHub beim python-miio Projekt bezüglich Roborock Integration gefragt und er hat dann mit dem Link von oben geantwortet 😉 Darum hab ich gedacht ich frag hier mal ob man damit was anfangen kann.
  • Vaddy
    Smart Home'r
    • 19.01.2017
    • 88

    Moins ich muss mich nochmal zu diesem Thema melden. Kann man mit der Integration dann auch verschiedene Räume einzeln reinigen wie in der Roborock App ich hab das in der Xiaomi App nicht gefunden oder bin ich mal wieder blind .

    Kommentar


    • Haidy
      Haidy kommentierte
      Kommentar bearbeiten
      Einzelne Räume über die Xiaomi App reinigen geht:

      In der Kartenansicht auf "Raum" wechseln, dann die gewünschten Bereiche markieren und mit "reinigen" starten
  • t_heinrich
    Lox Guru
    • 07.01.2016
    • 2028

    Zitat von Haidy
    Die Statusauswertung über den Statusbaustein muss ich aber noch anpassen, den das scheint für den Q8 Max nicht ganz zu passen.
    Hi Haidy ,

    hast du das schon gemacht und könntest evtl. einen Screenshot oder die Config posten?

    Ich würde die Infos dann auch im Wiki hinterlegen.

    Danke dir und Gruß

    Thomas

    Kommentar


    • Haidy
      Haidy kommentierte
      Kommentar bearbeiten
      Hi,
      Leider nein, hab mich noch nicht weiter damit beschäftigt, aber vielleicht komm ich dieses Wochenende dazu...
  • securetech
    Azubi
    • 02.02.2023
    • 1

    Hello, is possible add support for ijai.vacuum.v3, python miio support it but a can´t add this robot to plugin.
    thanks

    Kommentar

    • andreas221988
      Lox Guru
      • 13.06.2018
      • 1559

      Hat jemand den Dreame L20 integriert?

      Kommentar

      • Wzvnn
        Smart Home'r
        • 03.01.2024
        • 64

        Hallo,

        Kann man den Roborock S8 mit diesem Plugin auch einbinden? Oder ist er noch zu "neu" dafür?

        danke

        Kommentar

        • Wzvnn
          Smart Home'r
          • 03.01.2024
          • 64

          Hallo,

          ich habe es geschafft den Roborock S8 mit einzubinden.
          Prof.Mobilux, ich hab Loxberry nochmal auf eine neue SD Karte gespielt und somit konnte ich den Token auslesen, hat also geklappt

          Das Plugin funktioniert soweit ganz gut, ich kann den Robo steuern wie ich möchte, also die Ausgänge funktionieren alle.
          Nur er liefert mir keine Statuswerte und ich weiss nicht wieso.

          Was ich auch nicht verstehe, warum hab ich die Eingänge alle "doppelt", also einmal als UDP und als HTTP Eingang?
          Ich hatte die Vorlagen wie im Plugin beschrieben kopiert und eingefügt.


          Wenn ich auf das Plugin gehe --> Robot Kommandos --> Status zeigt er mir ja Werte an. Aber in der Config steht überall 0,0.


          Angehängte Dateien

          Kommentar

          • andreas221988
            Lox Guru
            • 13.06.2018
            • 1559

            Hast du den Token über die Xiaomi Home App erstellt oder?

            Kommentar


            • Prof.Mobilux
              Prof.Mobilux kommentierte
              Kommentar bearbeiten
              In der Doku zum Plugin steht wie es geht. Einfach im Wiki nachlesen.

            • andreas221988
              andreas221988 kommentierte
              Kommentar bearbeiten
              Ich weiß wie es geht… Wollte nur wissen ob es mittlerweile außerhalb der Xiaomi App funktioniert.

              z. B. Für den Dreame X40 welcher nicht in der App verfügbar ist

            • Wzvnn
              Wzvnn kommentierte
              Kommentar bearbeiten
              Ja genau
          • Prof.Mobilux
            Supermoderator
            • 25.08.2015
            • 4630

            Vermutlich gibt er den Status in einem für das Plugin unbekannten Format aus. Ich kann das leider nicht integrieren, weil ich keinen S8 habe. Irgendwo oben hab ich geschrieben welche Infos ich brauche. Hat mir aber niemand zugeschickt.

            Du kannst aber die URL für den Status aus den Robot Kommandos als HTTP Eingang nehmen und dir dann entsprechende Befehlserkennungen in Loxone selber bauen.
            🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


            LoxBerry - Beyond the Limits

            Kommentar

            • snehvid
              Extension Master
              • 24.03.2022
              • 119

              Zitat von Prof.Mobilux
              Also wenn ich mir das hier durchlese, sollte der S8 funktionieren: https://github.com/rytilahti/python-...S8+is%3Aclosed

              Wer selbst testen möchte: S8 mit der Xiaomi App verbinden, dann per Putty auf dem LoxBerry einloggen und folgenden Befehl eingeben, euren Usernamen und Passwort des Xiaomi-Cloud-Zugangs eingeben. Es werden euch eure Robots samt Token angezeigt:

              Code:
              loxberry@loxberrykeller:~ $ miiocli cloud
              Username: sxxxxx@gmail.com
              Password: xxxxxx
              == Obergeschoss (Charging:82%) ==
              Model: rockrobo.vacuum.v1
              Token: 776bxxxxxxxxxxxx4f31786456
              IP: 192.168.3.40 (mac: 34:xx:00:EB:71:64)
              DID: 64734182
              Locale: cn
              == Erdgeschoss Neu (Fully charged) ==
              Model: roborock.vacuum.s5
              Token: 59796xxxxxxxxxxx76304e4243
              IP: 192.168.3.61 (mac: 40:31:xx:AE:35:86)
              DID: 118197505
              Locale: de
              loxberry@loxberrykeller:~ $
              Mit dem Token probiert Infos vom Robot abzuholen:

              Code:
              loxberry@loxberrykeller:~ $ miiocli device --ip 192.168.3.61 --token 59796xxxxxxxxxxx76304e4243 info
              Model: roborock.vacuum.s5
              Hardware version: Linux
              Firmware version: 3.5.7_002008
              loxberry@loxberrykeller:~ $

              Wenn das klappt versuchen den Status zu holen:

              Code:
              loxberry@loxberrykeller:~ $ miiocli roborockvacuum --ip 192.168.3.61 --token 59796xxxxxxxxxxx76304e4243 status
              Running command status
              <VacuumStatus battery=100 clean_area=43.7925 clean_time=0:44:59 error=No error error_code=0 fanspeed=102 got_error=False in_segment_cleaning=False in_zone_cleaning=False is_on=False is_paused=False is_water_box_attached=False is_water_box_carriage_attached=None is_water_shortage=None map=True state=Charging state_code=8>
              loxberry@loxberrykeller:~ $
              ​
              Die Ausgabe eurer Befehle mal hier posten (Token unkenntlich machen, Rest nicht).

              Wenn das nicht funktioniert, dann müsst ihr eventuell die aktuelle Entwicklerversion installieren. Dazu zu root werden (su -) und dann die Entwicklerversion mit folgendem Kommando installieren:

              Code:
              pip3 install git+https://github.com/rytilahti/python-miio.git
              Dann LoxBerry neu starten (zur Sicherheit) und dann obige Befehle erneut ausführen. Mit der Entwicklerversion steht Euch ein neuer Treiber für neuere XIAOMI Geräte zur Verfügung. Wenn also obiges Statuskommando fehl schlägt, probiert:

              Code:
              miiocli genericmiot --ip 192.168.3.61 --token 59796xxxxxxxxxxx76304e4243 status
              ​
              Hey,

              ich hoffe, dass ich alles richtig gemacht habe. Anbei das Ergebnis. Melde Dich gern, wenn Du Fragen hast - ich würde gern dazu beitragen, dass der S8 unterstützt wird. Herzlichen Dank für Dein Engagement und viele Grüße

              Code:
              loxberry@loxberry:~ $ miiocli cloud
              Username: XXX
              Password: XXX
              == Roborock S7 MaxV (Device online ) ==
                      Model: roborock.vacuum.a27
                      Token:  XXX
                      IP: 192.168.1.30 (mac: XXX)
                      DID: XXX
                      Locale: de
              == Roborock S8 (Device online ) ==
                      Model: roborock.vacuum.a51
                      Token: XXX
                      IP: 192.168.1.33 (mac: XXX)
                      DID: XXX
                      Locale: de
              loxberry@loxberry:~ $ miiocli device --ip 192.168.1.33 --token XXX info
              Model: roborock.vacuum.a51
              Hardware version: Linux
              Firmware version: 4.3.5_1602
              loxberry@loxberry:~ $ miiocli roborockvacuum --ip 192.168.1.33 --token XXX status
              Running command status
              WARNING:miio.device:Found an unsupported model 'roborock.vacuum.a51' for class 'RoborockVacuum'. If this is working for you, please open an issue at https://github.com/rytilahti/python-miio/
              <VacuumStatus battery=99 clean_area=0.0 clean_time=0:00:00 error=No error error_code=0 fanspeed=101 got_error=False in_segment_cleaning=False in_zone_cleaning=False is_on=False is_paused=False is_water_box_attached=False is_water_box_carriage_attached=False is_water_shortage=False map=True state=Charging state_code=8>
              ​
              Zuletzt geändert von snehvid; 15.06.2024, 18:46.

              Kommentar


              • Wzvnn
                Wzvnn kommentierte
                Kommentar bearbeiten
                Sehr gut, sonst hätte ich das gemacht . Hoffendlich klappt das
            • andreas221988
              Lox Guru
              • 13.06.2018
              • 1559

              gibt es die möglichkeit den dreame x40 einzubinden?

              Kommentar

              • Wzvnn
                Smart Home'r
                • 03.01.2024
                • 64

                Zitat von Prof.Mobilux
                Vermutlich gibt er den Status in einem für das Plugin unbekannten Format aus. Ich kann das leider nicht integrieren, weil ich keinen S8 habe. Irgendwo oben hab ich geschrieben welche Infos ich brauche. Hat mir aber niemand zugeschickt.

                Du kannst aber die URL für den Status aus den Robot Kommandos als HTTP Eingang nehmen und dir dann entsprechende Befehlserkennungen in Loxone selber bauen.
                Wäre eine Möglichkeit das ich mir die Stati selber bastle.
                Bin ja froh das er sich zumindest schon mal steuern lässt.

                Kommentar

                • Wzvnn
                  Smart Home'r
                  • 03.01.2024
                  • 64

                  Zitat von Prof.Mobilux
                  Vermutlich gibt er den Status in einem für das Plugin unbekannten Format aus. Ich kann das leider nicht integrieren, weil ich keinen S8 habe. Irgendwo oben hab ich geschrieben welche Infos ich brauche. Hat mir aber niemand zugeschickt.

                  Du kannst aber die URL für den Status aus den Robot Kommandos als HTTP Eingang nehmen und dir dann entsprechende Befehlserkennungen in Loxone selber bauen.
                  ok, einfacher gesagt als getan.

                  Der HTTP eingang dürfte klar sein. Plugin -> Robot Kommandos --> Status. Den link als Eingang nehmen. Aber bei der zusammsetzung der Befehle komme ich nicht weiter....

                  Edit: Hab es rausbekommen. Klappt.
                  Zuletzt geändert von Wzvnn; 15.06.2024, 16:36.

                  Kommentar

                  Lädt...