Plugin: MiRobot2Lox-NG - Xiaomi Vacuum Robots

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Prof.Mobilux
    Supermoderator
    • 25.08.2015
    • 4626

    #31
    Ja Leute, ist doch hier alles beschrieben: https://www.loxforum.com/forum/proje...541#post159541

    Einfach mal die Forensuche benutzen...

    Jemand müsste nur testen, ob die Befehle mit der RestApi des Plugins kompatibel sind. Ansonsten implementiere ich das noch.
    🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


    LoxBerry - Beyond the Limits

    Kommentar

    • Gast

      #32
      Ich kann gerne ein paar Infos zur Implementierung der Befehle app_goto_target und app_zoned_clean geben.
      Bitte beachtet, dass meine Umsetzung noch auf dem alten Plugin MiRobot2Lox beruht und zudem das Any Plugin für die Ausführung von Bash-Scripten verwendet.

      Die Karte/Map gibt es nur in der Xiaomi App und so viel ich weiss, gibt es bis heute noch keine Möglichkeit diese auszulesen. Wenn einmal alles eingerichtet ist und die Karte nicht dreht, braucht man die Xiaomi App nicht. Dennoch liegt bei mir ein altes Handy herum, auf dem ich die App installiert habe und ich mir die Karte mit den Spuren des Roboters ansehen kann.

      Aus meiner Sicht ist es nicht zielführend die Koordinaten der Positionen und Zonen in der Config zu verwaltet . Hier wäre eine Konfiguration-Seite im Plugin sicher geeigneter. Bei mir stehen die Koordinaten in den Scripten "mirobo_goto" und "mirobo_zoned_cleanup". Darin steht auch wie die Parameter übergeben werden können. An den Scripten selber muss nichts angepasst werden, es kann alles über Arrays definiert werden. Die Orientierung der Karte kann man in der Config einstellen (1...4) und als zusätzlicher Parameter übergeben. Die Scripte rechnen damit die Positionen/Zonen automatisch um (1=0Grad Drehung im Uhrzeigersinn, 2=90Grad, 3=180Grad, 4=270Grad) . Eigentlich müsste alles was in den Scripten gemacht wird, ins Plugin integriert werden. Bestimmt gibt es noch andere Ideen wie man es am besten mit einem Plugin umsetzen könnte.

      Ich habe mit ein paar Screenshots die Implementierung etwas dokumentiert (1'840 KB). Bestimmt fehlen noch einige Angaben, welche ich nachreichen müsste. Zumindest bekommt ihr eine Vorstellung was es alles braucht.

      Angehängte Dateien
      Zuletzt geändert von Gast; 24.09.2018, 07:42.

      Kommentar


      • Ghostchaser
        Ghostchaser kommentierte
        Kommentar bearbeiten
        Hi,
        zum Thema Karte/Map:
        Die Karte lässt sich super mit der FloleVac App über Android auslesen (https://xiaomi.flole.de/).
        Wer kein Android-Gerät hat, kann das auch unter Verwendung von Bluestacks (https://www.bluestacks.com/de/index.html) nutzen.

        Einfach mit den Zugangsdaten der Xiaomi App einloggen, Mainland als Server auswählen und schon kann man die aktuelle Karte einsehen.
        Dann die Zone markieren, als wenn man eine manuelle Zonenreinigung machen möchte.
        Ein längerer Klick auf Reinigen und schon werden die Koordinaten in die Zwischenablage kopiert.

        Natürlich sollte man danach keine Komplettreinigung mehr anstoßen, weil sonst die Karte neu erstellt wird und ggfs. die Koordinaten nicht mehr passen.

        Gruß
        Jörg
    • Schurich83
      Extension Master
      • 21.01.2016
      • 107

      #33
      Zitat von Prof.Mobilux
      Moin zusammen,

      ich habe ein neues Plugin online gestellt: MiRobot2Lox-NG (https://www.loxwiki.eu/display/LOXBERRY/MiRobot2Lox-NG).

      Leider entwickelt hismastersvoice das Original-Plugin aus diversen Gründen nicht mehr weiter. Sein altes Plugin hat aber mittlerweile diverse Probleme durch den neuen LoxBerry V1.0. Ich habe mich daher entschieden das Plugin von Grund auf neu zu schreiben. Das grundsätzliche Konzept von hismastersvoice habe ich dabei übernommen - vielen Dank an dieser Stelle für die klasse Arbeit!

      Das neue Plugin nutzt eine andere Kommunikationsstruktur mit dem Miniserver: Befehle an den Robot werden per HTTP REST API an das Plugin abgesetzt. Da es eine direkte Schnittstelle zum darunter liegenden Softwarepaket Python-MIIO gibt, können so auch neue oder vom Plugin nicht vorgesehene Befehle selbst integriert werden. Die Daten werden per UDP oder HTTP Eingang an den Miniserver gesendet.

      Als kleines "Schmankerl" können mit dem Plugin auch neue Soundpacks (z. B. Deutsche Sprache) kostenlos auf den Robot installiert werden. Ich habe dazu die Soundpacks per GoogleTTS und AmazonPolly TTS erstellt und als kostenlosen Download bereitgestellt.

      All who are missing their own lagnuage for the Soundpacks: Please translate the Plugin using the LoxBerry Translation Wizard and I will create the Soundpack for your language and integrate it into the plugin.

      Viel Spaß dabei! Bugs bitte hier oder auf GitHub melden.
      hi nach der instalieren sendet nier nicht unter den linke: http://loxberry/plugins/mirobot2lox-ng/robotsdata.txt
      seite bleibt leer was kann ich tun damit der sendet? wenn ich aber status aufrufe zeigt er mir die daten

      Kommentar


      • Prof.Mobilux
        Prof.Mobilux kommentierte
        Kommentar bearbeiten
        Robot aktivieren, so wie in Wiki beschrieben. Doku lesen! 🙄
    • Schurich83
      Extension Master
      • 21.01.2016
      • 107

      #34
      Hab's alles nach der Wiki gemacht, udp bekomme ich http bekomme ich nichts rein, und nach 24 Stunden läuft da gar nichts mehr. Biss ich alles neu aufspiele

      Kommentar


      • Ghostchaser
        Ghostchaser kommentierte
        Kommentar bearbeiten
        Kommt nichts an. Ich deinstalliere mal da Plugin und installiere es dann noch mal neu. Vielleicht ist bei der Installation falsch gelaufen - LOG ist auch komplett leer

      • Ghostchaser
        Ghostchaser kommentierte
        Kommentar bearbeiten
        Neuinstallation des Plugins hat bei mir funktioniert. Seitdem UDP und HTML.

      • Liver_64
        Liver_64 kommentierte
        Kommentar bearbeiten
        Warum beides? Lass HTML weg und nutze nur UDP um die Last zu verringern, evtl. noch die 2 virtuellen Texteingänge für den Status/Fehler. Das Problem ist beim Core Team bekannt und sie arbeiten bereits daran.
    • Scrati
      LoxBus Spammer
      • 25.08.2015
      • 216

      #35
      Prof.Mobilux :

      Moin Prof. Ich habe einen kleinen Bug gefunden:
      Ich nutze die aktuellen gereinigten m² und die aktuelle Reinigungszeit, um bestimmte Dinge zu steuern. Die UDP Befehlserkennung für die aktuelle Zeit ist "clean_time=" die Befehlserkennung für die gesamte Zeit ist "total_clean_time=". Problem hierbei ist jedoch, dass das erstgenannte nicht eindeutig ist. Daher schreibt er mir auch gerne mal bei der aktuellen Reinigungszeit die Gesamtzeit der Reinigung hin. Gleiches gilt auch für "clean_area" / "total_clean_area"

      Könntest du das ins nächste Update aufnehmen? Mit einer Umwandlung in "cur_clean_xxxx" beim Senden von UDP und des HTML Befehls sowie der entsprechenden Eingänge in Loxone, sollte alles funktionieren!

      Kommentar


      • Prof.Mobilux
        Prof.Mobilux kommentierte
        Kommentar bearbeiten
        Mach ich - Danke für den Hinweis!
    • Schurich83
      Extension Master
      • 21.01.2016
      • 107

      #36
      hi versuche es schon den ganzen tag pi eu aufgesetzt update auf v1.2.4.5 plugin installiert alles nach Wiki, udp und http eine eingefügt in config, logfils ist leer, bekomme aber nichts rein. befehle kann ich aber erteilen und kommen an. über den linke geht nur eine leere seite auf http://loxberry/plugins/mirobot2lox-ng/robotsdata.txt

      Kommentar


      • Liver_64
        Liver_64 kommentierte
        Kommentar bearbeiten
        Lies doch mal ein paar Beiträge zurück, dann bist du schlauer

      • Liver_64
        Liver_64 kommentierte
        Kommentar bearbeiten
        War auch noch von dir gepostet 😕 Warum alles 2x...
    • Schurich83
      Extension Master
      • 21.01.2016
      • 107

      #37
      Http ist immer an das kann ich nicht deaktivieren

      Kommentar

      • Prof.Mobilux
        Supermoderator
        • 25.08.2015
        • 4626

        #38
        Schurich83 https://www.loxforum.com/forum/proje...en-bitte-lesen
        🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


        LoxBerry - Beyond the Limits

        Kommentar

        • Schurich83
          Extension Master
          • 21.01.2016
          • 107

          #39
          hi habe alle dinge schon durch
          2. auf v1.2.4.5 geupdatet
          3. sieht im anhang alles sauber ( kenn mich da nicht aus)
          4. LoxBerry-Version: v1.2.4.5
          Plugin-Version: v.0.5.3
          Plattform (Raspberry, VM, etc.): rasberry pi 3B
          Eventuell volle Datenträger: daten trger leer
          Angehängte Dateien

          Kommentar

          • svethi
            Lebende Foren Legende
            • 25.08.2015
            • 6292

            #40
            Also einmal postest Du Fehler, dass der LoxBerry keine Updates laden kann. Jetzt kommt „keine Antwort von Gerät“ ich glaube, Du hast da ein Netzwerkproblem. Oder Du hast nicht gelesen, dass der Sauger auch angeschaltet sein muss
            Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

            Kommentar


            • Schurich83
              Schurich83 kommentierte
              Kommentar bearbeiten
              er sauger ist an, ich hatte ein update fehler. denn hab ich behoben, und bis heute frü ging alles er hat alles gesendet und ich konnte im befehle erteilen und auf einmal ging nichts mehr. könnte einer von euch bitte über teamviewer bei mir einlogen und mal schen was da schiff geht?

            • svethi
              svethi kommentierte
              Kommentar bearbeiten
              Was denn für ein Schiff?
          • Schurich83
            Extension Master
            • 21.01.2016
            • 107

            #41
            ich meinte warum ich keine verbinung bekomme von sauger zu loxone

            Kommentar

            • Prof.Mobilux
              Supermoderator
              • 25.08.2015
              • 4626

              #42
              Schurich83 Am Sonntag Abend kann ich schauen. Schick mir den Teamviewer Zugang per PN. Bitte auf dem Rechner ein Putty zum Loxberry und ein Browserfenster zum LoxBerry aufmachen.

              Bitte alles so so lassen wenn der LoxBerry nicht mehr sendet. Damit ich den Fehler sehen kann.
              🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


              LoxBerry - Beyond the Limits

              Kommentar

              • Schurich83
                Extension Master
                • 21.01.2016
                • 107

                #43
                um wieviel uhr wäre das?

                Kommentar

                • Gast

                  #44
                  Prof.Mobilux, ich habe dein neues Plugin nun doch zum Laufen gebraucht. Damit die UDP Meldungen an den MiniServer gesendet werden, muss das Plugin zuerst wieder deinstallieren und anschliessend wieder installiert werden. Eine 2. Installation über die bestehende hilft nicht.

                  Zudem fehlen noch die folgenden Statusmeldungen:
                  16 = Gehe zu Ziel
                  17 = Zone Cleaning aktiv

                  Dann hätte ich noch ein Wunsch bei den Care-Daten. Könnte man diese nicht in einen %-Wert umrechnen, anstelle die Anzahl Stunden anzuzeigen. Der Benutzer sollte eher wissen, wann die Bürsten ausgetauscht bzw. die Sensoren gereinigt werden müssen. Ansonsten muss man die maximale Zeit kennen.
                  Mit diesen Formeln würde es so wie in der Xiaomi App angezeigt. 100% würden bei neuen Bürsten/Filter bzw. gereinigten Sensoren angezeigt:
                  - Hauptürste: 100/300*(300-I1), %, Replace in about (300-I1)h
                  - Seitenbürste: (100/200)*(200-I1)%, Replace in about (200-I1)h
                  - Staubfilter: 100/150*(150-I1)%, Replace in about (150-I1)h
                  - Sensoren: 100/30*(30-I1)%, Clean in about (30-I1)h

                  und wenn das zu lange ist, könnte auch nur ein Prozentwert oder Text angezeigt werden. Bei 100% müsste die Bürste/der Senosr/der Filter ersetzt werden:
                  Prozentwert oder als Text:
                  - Hauptürste: 100/300*(I1)%
                  - Seitenbürste: (100/200)*(I1)%
                  - Staubfilter: 100/150*(I1)%
                  - Sensoren: 100/30*(I1)%

                  oder als es wird die genutzte und maximale Lebenszeit angezeigt:
                  - Hauptürste: (300-I1)"/300h"
                  - Seitenbürste: (200-I1)"/200h"
                  - Staubfilter: (150-I1)"/150h"
                  - Sensoren: (30-I1)"/30h"

                  Bei der Saugleistung bzw. beim Fan Speed stimmt noch nicht alles. Je nach Zeitpunkt, in dem man den Wert in der Xiaomi App ändert, werden noch die Werte der Xiaomi App angezeigt. Im darauffolgenden Durchlauf werden dann die des Plugins angezeigt:
                  - Xiaomi App: 101, 102, 103, 104
                  - Plugin: 38, 60, 77, 90

                  Vielen Dank für deine Arbeit!

                  Kommentar


                  • Liver_64
                    Liver_64 kommentierte
                    Kommentar bearbeiten
                    Das kannst du doch ganz einfach im MS machen, dafür muss man nicht programmieren. Auch nicht jeder möchte die Daten in deinem gewünschten Format haben, von daher macht es wohl wenig Sinn.
                    Fanspeed kannst du auch im MS umsetzen ohne die Programmierung des Plugins zu ändern

                  • Gast
                    Gast kommentierte
                    Kommentar bearbeiten
                    Ja klar, kann man das alles im der Config machen, ich habe es ja schon implementiert, siehe mein pdf im Post #32. Die Config wird so aber nicht sehr schlank.

                    Es ist auch nicht mein Format sondern das Format der Xiaomi App und das der Library! So muss muss jeder über ein Statusbaustein die Werte der Saugleistung harmonisieren.

                    Und bei den Care Daten wären die Werte einfach verständlicher. Aber natürlich geht es mit einem zusätzlichen Formelbaustein und einem Merker.

                    Ist ja alles nur ein Wunsch!

                  • Prof.Mobilux
                    Prof.Mobilux kommentierte
                    Kommentar bearbeiten
                    Ich baue das zusätzlich ein. Fanspeed hatte hismastersvoice auch schon gemeldet. Ist auf der ToDo-Liste.
                • Gast

                  #45
                  So sehen die Seiten in der Xiaomi App aus. Die Auswahl der Saugleistung habe ich mit einem Radiobutton wie in der Xiaomi App zusammengefasst und somit gibt es in der Loxone App auch nur einen einzelnen Eintrag.

                  Ob in der Config oder im Plugin, es ist kein grosser Aufwand. Bei der Saugleistung müsste man im Plugin einfach bei den Werten 101 oder 38 eine 1 an Loxone senden und entsprechend für die anderen Stärken eine 2, 3 oder 4. Zudem bei beim Empfang des Fan-Speeds den Parameter "option" von 1,2,3,4 in 38, 60, 77, 90 ändern und an den Roboter senden.

                  /plugins/mirobot2lox-ng/sendcmd.cgi?command=set_fan_speed&option=38&robot=1&debug=0

                  Im Post #25 hatte ich schon darauf hingewiesen. Aus meiner Sicht würde das schon Sinn machen. Aber wie gesagt, es ist nur ein Wunsch.
                  Zuletzt geändert von Gast; 01.10.2018, 10:27.

                  Kommentar

                  Lädt...