Ankündigung

Einklappen
Keine Ankündigung bisher.

Roomba 980 inkl WiFi

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

    Roomba 980 inkl WiFi

    Hallo,

    bin seit kurzem stolzer Besitzer des neuen Roomba 980. dieser kleine Roboter saugt eine ganze Etage (inkl zwischenladung falls nötig) macht dies mit sehr ordentlichen Ergebnis ohne Kratzer zu hinterlassen und mit einer 1a Navigation. Gestartet werden kann er ganz "smart" mittels der irobot App via WLAN oder von überall aus mit der "cloud Funktion" aus dem WAN.

    soweit so gut!

    natürlich möchte ich in meinem schalterlosen Haus auf diese Knopfdrücke verzichten
    die reinigung soll starten, wenn 30 min keine Präsenz erkannt wurde und der Transponderder an der Haustür schickt den Roomba zurück zur Station, falls nötig. In der App gibt es für beides eine Taste, kann also nicht schwer sein, oder?

    Falsch!

    Irobot weigert sich jegliche Informationen zur Steuerung rauszugeben. (IP-Telegramme,...)
    Mein Versuch den Datenverkehr über einen Proxy mitzuhören scheiterte, die App-Robot Verbindung funktioniert nicht wenn Proxy oder VPN aktiv ist ( steht auch in der Anleitung)
    die befehle gehen also über den irobot Server (zwecks dyndns dienst vermutlich)

    nächster Schritt wird morgen ein WLAN Sniffer sein, hoffentlich bringt das mehr Erfolg.

    Hat noch jemand Erfahrungen mit dem Roomba 980 oder sogar schon ein Hintertürchen in die Steuerung entdeckt?
    Ich halte euch auf jeden Fall auf dem laufenden

    gruß Marcel





    #2
    Moin Marcel,

    ich habe da eine gute und eine schlechte Nachricht: ;-D

    Die Schlechte:
    Der Roomba 980 verwendet eine TLS1.2 Verschlüsselung im Pinning-Mode ohne PFS.
    Da kommst Du nicht ohne weiteres mit einem MITM dazwischen.
    Auch Protokoll-Sniffer - egal ob kabelgebunden oder "OverTheAir" - werden Dich vmtl. nicht zum Ziel bringen.
    ( Selbst die allgemein bekannte US-Sicherheitsbehörde hat mit TLS1.2 "zu kämpfen"... ;-) )

    Die Gute:
    Wir haben für den Roomba 980er einen Logikbaustein (HSRoobot2) für den Gira Homeserver entwickelt, der sich momentan in der "Alpha"-Endphase befindet.
    Mit diesem Baustein kann man den Roomba 980 bedienen / fernsteuern / kommandieren - wie man auch immer dazu sagt.

    Der Funktionsumfang des Logikbausteins lehnt sich an den bereits von uns für die Roomba 880 u.a. entwickelte
    Bausteine an. ( siehe https://knx-user-forum.de/forum/%C3%...-irobot-roomba )
    Auch die präsenzabhängige Steuerung ist hier wieder integriert - mit neuer "AutoHome-bei-Präsenz"-Funktion.

    Zusätzlich hat der neue HSRoobot2-Logikbaustein noch ein paar nette Zusatzfeatures erhalten.
    ( z.B. integrierte Prowl-Pushbenachrichtigungen oder Audio-Meldungen für Multiroom-Systeme )

    Ich denke, dass der Baustein demnächst in die Beta-Testphase geht und dann ca. Ende März 2016 offiziell verfügbar ist.

    Wenn Du also noch etwas Geduld aufbringen kannst.... :-)

    VG
    Sven





    Kommentar


      #3
      Ui, das sind ja schlechte/ gute Nachrichten

      Hab schon gemerkt, dass das nicht klappt :/

      Darf ich testen?

      Gruß marcel

      Kommentar


        #4
        Moin Marcel,

        ja sicher kannst Du testen - gibt auch bei diesem Baustein wieder zeitlich befristete Testlizenzen zum "spielen".

        Ich melde mich in Kürze, sobald der Betatest startet.

        VG
        Sven


        Kommentar


          #5
          Moin Marcel,

          der Thread zum neuen Logikbaustein ist erstellt, da gehtś weiter... (siehe Link )

          VG
          Sven


          n903313 Hallo zusammen, nach dem Logikbaustein HSRoobot für den Roomba 880 möchten wir euch unseren neuen Logikbaustein HSRoobot2 für das neue

          Kommentar


            #6
            Hallo zusammen,

            anbei ein weiterer einfacher und transparenter Weg wie man den Roboter im heimischen WLAN anspricht ohne gross über die grosse Wolke zu gehen und auch ohne Logikbausteine oder ähnliches. Einfach ein Browser Plugin, wie z.B. HttpRequester, benutzen um die Kommandos an den Roomba 980 zu senden:

            1. Passwort in Erfahrung bringen (einmalig):
            (192.168.10.135 mit der IP Adresse des Roboters ersetzen)
            (Den Roboter auf die Basisstation stellen und den HOME Button für ca. 2 Sekunden drücken bis eine Serie von Tönen abgespielt wird und das WIFI Licht aufleuchtet, dann schnell dieses POST Command absenden)

            Code:
            POST https://192.168.10.135/umi
            Content-Type: application/json
            Connection: close
            User-Agent: aspen%20production/2618 CFNetwork/758.3.15 Darwin/15.4.0
            Content-Encoding: identity
            Accept: */*
            Accept-Language: en-us
            Host: 192.168.10.135
            content-length: 37
            
            {"do":"get","args":["passwd"],"id":1}
            -- Response: --
            Code:
            200 OK
            Server:  Marvell-WM
            Connection:  close
            Transfer-Encoding:  chunked
            Content-Type:  application/json
            
            {"ok":{"passwd":"a1bcdEF23GhIj4KL"},"id":1}
            2. Username/blid in Erfahrung bringen (einmalig, optional):
            (192.168.10.135 mit der IP Adresse des Roboters ersetzen)
            (Für den Authorization Header muss der String "user:"+ThePasswordReceivedFromStep1 Base64 kodiert werden, also z.B. Base64(user:a1bcdEF23GhIj4KL) -> dXNlcjphMWJjZEVGMjNHaElqNEtM)
            (Die Dezimalen "blid" Werte in der Antwort müssen HEX-codiert werden um den Usernamen zu erhalten: Username: 43,6,75,31,32,127,12,132 -> 2B064B1F207F0C84)

            Code:
            POST https://192.168.10.135/umi
            Content-Type: application/json
            Connection: close
            User-Agent: aspen%20production/2618 CFNetwork/758.3.15 Darwin/15.4.0
            Content-Encoding: identity
            Accept: */*
            Accept-Language: en-us
            Host: 192.168.10.135
            content-length: 34
            Authorization: Basic dXNlcjphMWJjZEVGMjNHaElqNEtM
            
            {"do":"get","args":["sys"],"id":2}
            -- Response: --

            Code:
            200 OK
            Server:  Marvell-WM
            Connection:  close
            Transfer-Encoding:  chunked
            Content-Type:  application/json
            
            {"ok":{"umi":2,"pid":2,"blid":[43,6,75,31,32,127,12,132],"sw":"v1.2.9","cfg":0,"boot":4042,"main":4313,"wifi":517,"nav":"01.08.04","ui":2996,"audio":32,"bat":"lith"},"id":2}

            3. Den Roboter starten (saugen lassen):
            (192.168.10.135 mit der IP Adresse des Roboters ersetzen)
            (Siehe Kommentar zu Schritt 2 für den Authorization header)

            Code:
            POST https://192.168.10.135/umi
            Content-Type: application/json
            Connection: close
            User-Agent: aspen%20production/2618 CFNetwork/758.3.15 Darwin/15.4.0
            Content-Encoding: identity
            Accept: */*
            Accept-Language: en-us
            Host: 192.168.10.135
            content-length: 49
            Authorization: Basic dXNlcjphMWJjZEVGMjNHaElqNEtM
            
            {"do":"set","args":["cmd" {"op":"start"}],"id":3}
            -- Response: --

            Code:
            200 OK
            Server:  Marvell-WM
            Connection:  close
            Transfer-Encoding:  chunked
            Content-Type:  application/json
            
            {"ok":null,"id":3}
            4. Den Roboter pausieren:
            (192.168.10.135 mit der IP Adresse des Roboters ersetzen)
            (Siehe Kommentar zu Schritt 2 für den Authorization header)

            Code:
            POST https://192.168.10.135/umi
            Content-Type: application/json
            Connection: close
            User-Agent: aspen%20production/2618 CFNetwork/758.3.15 Darwin/15.4.0
            Content-Encoding: identity
            Accept: */*
            Accept-Language: en-us
            Host: 192.168.10.135
            content-length: 49
            Authorization: Basic dXNlcjphMWJjZEVGMjNHaElqNEtM
            
            {"do":"set","args":["cmd" {"op":"pause"}],"id":4}
            -- Response: --

            Code:
            200 OK
            Server:  Marvell-WM
            Connection:  close
            Transfer-Encoding:  chunked
            Content-Type:  application/json
            
            {"ok":null,"id":4}
            5. Den Roboter wieder anfahren:
            (192.168.10.135 mit der IP Adresse des Roboters ersetzen)
            (Siehe Kommentar zu Schritt 2 für den Authorization header)

            Code:
            POST https://192.168.10.135/umi
            Content-Type: application/json
            Connection: close
            User-Agent: aspen%20production/2618 CFNetwork/758.3.15 Darwin/15.4.0
            Content-Encoding: identity
            Accept: */*
            Accept-Language: en-us
            Host: 192.168.10.135
            content-length: 50
            Authorization: Basic dXNlcjphMWJjZEVGMjNHaElqNEtM
            
            {"do":"set","args":["cmd" {"op":"resume"}],"id":5}
            -- Response: --

            Code:
            200 OK
            Server:  Marvell-WM
            Connection:  close
            Transfer-Encoding:  chunked
            Content-Type:  application/json
            
            {"ok":null,"id":5}
            6. Den Roboter stoppen:
            (192.168.10.135 mit der IP Adresse des Roboters ersetzen)
            (Siehe Kommentar zu Schritt 2 für den Authorization header)

            Code:
            POST https://192.168.10.135/umi
            Content-Type: application/json
            Connection: close
            User-Agent: aspen%20production/2618 CFNetwork/758.3.15 Darwin/15.4.0
            Content-Encoding: identity
            Accept: */*
            Accept-Language: en-us
            Host: 192.168.10.135
            content-length: 48
            Authorization: Basic dXNlcjphMWJjZEVGMjNHaElqNEtM
            
            {"do":"set","args":["cmd" {"op":"stop"}],"id":6}
            -- Response: --

            Code:
            200 OK
            Server:  Marvell-WM
            Connection:  close
            Transfer-Encoding:  chunked
            Content-Type:  application/json
            
            {"ok":null,"id":6}
            7. Den Roboter zurück zur Ladestation fahren lassen:
            (192.168.10.135 mit der IP Adresse des Roboters ersetzen)
            (Siehe Kommentar zu Schritt 2 für den Authorization header)

            Code:
            POST https://192.168.10.135/umi
            Content-Type: application/json
            Connection: close
            User-Agent: aspen%20production/2618 CFNetwork/758.3.15 Darwin/15.4.0
            Content-Encoding: identity
            Accept: */*
            Accept-Language: en-us
            Host: 192.168.10.135
            content-length: 48
            Authorization: Basic dXNlcjphMWJjZEVGMjNHaElqNEtM
            
            {"do":"set","args":["cmd" {"op":"dock"}],"id":7}
            -- Response: --

            Code:
            200 OK
            Server:  Marvell-WM
            Connection:  close
            Transfer-Encoding:  chunked
            Content-Type:  application/json
            
            {"ok":null,"id":7}
            Weitere Funktionalitäten, siehe im Quellcode Dorita980: https://www.npmjs.com/package/dorita980

            HttpRequester.png
            Zuletzt geändert von empirenetde; 04.12.2016, 02:22.

            Kommentar

            Lädt...
            X