Xiaomi WiFi Devices Modul (Vacuum/Airpurifier/Fan) - 72_XiaomiDevice (Support)

Begonnen von Markus M., 11 Juni 2017, 12:48:58

Vorheriges Thema - Nächstes Thema

RappaSan

Für die Zonen- und Goto-Funktion ist immer noch der überlastete China-Server nötig, oder? :(

gsbox

ZitatFür die Zonen- und Goto-Funktion ist immer noch der überlastete China-Server nötig, oder? :(

Also ich nutze das Zonen-Feature, ohne dass mein Robi Internet-Zugang hat (Ist in meiner FritzBox per Filter gesperrt)

Sollte allerdings jemand (meine Frau oder Kinder oder so  :-[) auf den "Sauge"-Knopf drücken, muss ich die Zonen neu einlernen (wie in meinem vorherigen Post beschrieben), und dazu muss der Robi dann leider wieder ins Netz :(

RappaSan

Ist nun mal so - Clean Programm bedeutet neuer scan der Umgebung.
Das war aber nicht der Kern der Frage. Momentan bietet nach meinem Kenntnisstand nur der China-Server diese Funktion, andere Server können das noch nicht einmal.
Das ist ja der Mist. Alle melden sich nun auf dem China-Server an, und der bekommt davon dicke Backen.
Wird höchste Eisenbahn, daß die anderen Server dies auch bieten. (Nicht die dicken Backen)

ToM_ToM

Was meint ihr denn mit der Zonen-Funktion?
Also ich bin auf dem europäischen Server angemeldet und kann auch auf meiner Map die Zone einzeichnen und dann fährt er dort hin und säubert genau diesen Bereich bzw. Bereiche wenn ich mehrer Zonen eingezeichnet habe.

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

MadMax-FHEM

Zitat von: ToM_ToM am 09 Mai 2018, 20:29:31
Was meint ihr denn mit der Zonen-Funktion?
Also ich bin auf dem europäischen Server angemeldet und kann auch auf meiner Map die Zone einzeichnen und dann fährt er dort hin und säubert genau diesen Bereich bzw. Bereiche wenn ich mehrer Zonen eingezeichnet habe.

VG, Thomas

Genau das ist mit Zonenfunktion gemeint.
Wenn du die Koordinaten beim Attribut angibst inkl. Name, dann kannst du nicht nur clean starten sondern auch zoneclean...

Kurz, da Handy...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

ToM_ToM

ZitatGenau das ist mit Zonenfunktion gemeint.

Aber das funktioniert bei mir einwandfrei. Und ich nutze den Europa-Server. Die App-Verbindung läuft erstaunlich stabil, Zone-Clean funktioniert super und auch die FHEM-Connection.
Probiert einfach mal den Europa-Server aus. Vielleicht gab es ja zwischenzeitlich ein Update.  ;)
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

aeronaut

Sagt mal, wie komme ich denn mittlerweile an das Token, um den Vacuum in FHEM einzurichten?

Hatte das schon mal am laufen und gerade nach App-Update (auf Mi Home 5.1.30) und Firmware-Update den Robot zurückgesetzt und neu eingerichtet. Damals hatte ich den Token mit der Flole-App exportiert. Das klappt auch noch, auch wenn Flole den Robot nicht mehr steuern kann, aber das war da exportiert wurde, scheint in FHEM nicht als Token zu funktionieren. Gibt es mittlerweile einen anderen Weg um an das Token zu gelangen?

Sorry wenn ich irgendwas nicht mit bekommen habe, der Thread hier ist riesig.

lg
aeronaut

Skusi

Also ich habe nun auch versucht auf den Europa Server umzusteigen. Leider bekomme ich dann den Sauger nicht in der App angelegt. Das Sauger Wlan ist da, aber die App findet den Robbi einfach nicht.
Bin jetzt erst mal wieder auf China Mainland umgestiegen.

Leider musste ich feststellen das sich bei der Aktion auch der Token ändert. Nach langer Recherche hab ich den dann endlich mit dieser Modifizierten App auslesen können.

https://cloud.mail.ru/public/55AA/RF3DYidFf/MiHome_5.1.30_vevs.apk

Hat es denn noch jemand geschafft mit einer Europa Server Verbindung den Robbi incl. Zone Funktion ans laufen zu bekommen. Lohnt es sich also es noch mal zu probieren. Mich nervt dieser lahme China Server auch extrem. Wäre toll wenn der Euro Server nun auch auf dem neuesten Stand ist und alle Funktionen des China Server bereitstellt.
RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler

thymjan

Zitat von: ToM_ToM am 11 Mai 2018, 08:18:29
Aber das funktioniert bei mir einwandfrei. Und ich nutze den Europa-Server. Die App-Verbindung läuft erstaunlich stabil, Zone-Clean funktioniert super und auch die FHEM-Connection.
Probiert einfach mal den Europa-Server aus. Vielleicht gab es ja zwischenzeitlich ein Update.  ;)
Welche Staubsauger Version hast Du denn?

ToM_ToM

ZitatWelche Staubsauger Version hast Du denn?

Roborock (Firmware 3.3.9_001232)
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

thymjan


olili

Hallo,

habe mir zusätzlich zu einem Roborock 2. Gen direkt in China bei Ali einen Roborock 3 Gen gekauft:

https://de.aliexpress.com/item/New-Roborock-Xiaowa-Xiaomi-MI-Robot-Vacuum-Cleaner-3-for-Home-Automatic-Sweeping-Dust-Sterilize-Smart/32863739611.html?spm=a2g0s.9042311.0.0.37e34c4dNUVSZW

Kann das Gerät nicht über das Xiaomi-Modul mit FHEM koppeln - FHEM hängt sich dabei irgendwie auf.
Bekomme im Log folgende Einträge:

2018.05.15 19:31:02 3: SaugMops: initialized, using Rijndael
2018.05.15 19:31:12 3: SaugMops: disconnecting
2018.05.15 19:31:12 2: SaugMops: connecting
2018.05.15 19:31:12 3: SaugMops: initialized
Can't use string ("R0203S81301612") as a HASH ref while "strict refs" in use at ./FHEM/72_XiaomiDevice.pm line 2354.

Hat jemand ne Idee?

P.

Florie

Vielleicht muss das Modul erst auf dieses Modell angepasst werden?

Gesendet von meinem ONEPLUS A5000 mit Tapatalk


isy

Ist das ein Original Xiaomi Mi Robot?
Die Firma hat auf ihrer Website https://xiaomi-mi.com/appliances/ nur 2 Modelle gelistet.
Ein Weg wird erst zu einem Weg, wenn man ihn geht

olili

hm ... dachte schon irgendwie - zumindest kann man mit der Xiaomi-App den Sauger steuern, allerdings nur über China-Landserver.

Habe inwischen noch ein Log mit Verbose Level 5 erstellt:


2018.05.15 23:25:14 4: WEB_172.23.23.45_51198 POST /fhem&fw_id=202&room=Unsorted&cmd=define+SaugMops+XiaomiDevice+172.23.23.30+b5bd5249ac54df914f7404d272a8dae6; BUFLEN:0
2018.05.15 23:25:14 5: Cmd: >define SaugMops XiaomiDevice 172.23.23.30 b5bd5249ac54df914f7404d272a8dae6<
2018.05.15 23:25:14 4: SaugMops: Crypt::Cipher::AES not found
2018.05.15 23:25:14 3: SaugMops: initialized, using Rijndael
2018.05.15 23:25:14 5: Starting notify loop for global, 1 event(s), first is DEFINED SaugMops
2018.05.15 23:25:14 5: createNotifyHash
2018.05.15 23:25:14 4: WEB_172.23.23.45_51198 GET /fhem?detail=SaugMops&fw_id=202; BUFLEN:0
2018.05.15 23:25:14 4: WEB: /fhem?detail=SaugMops&fw_id=202 / RL:3022 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2018.05.15 23:25:14 4: Connection closed for WEB_172.23.23.45_51203: EOF
2018.05.15 23:25:14 4: WEB_172.23.23.45_51197 GET /fhem?cmd=%7BReadingsVal(%22SaugMops%22%2C%22reconnect%22%2C%22%22)%7D&XHR=1; BUFLEN:0
2018.05.15 23:25:14 5: Cmd: >{ReadingsVal("SaugMops","reconnect","")}<
2018.05.15 23:25:14 4: WEB: /fhem?cmd=%7BReadingsVal(%22SaugMops%22%2C%22reconnect%22%2C%22%22)%7D&XHR=1 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.05.15 23:25:14 4: WEB_172.23.23.45_51199 GET /fhem?cmd=%7BAttrVal(%22SaugMops%22%2C%22room%22%2C%22%22)%7D&XHR=1; BUFLEN:0
2018.05.15 23:25:14 5: Cmd: >{AttrVal("SaugMops","room","")}<
2018.05.15 23:25:14 4: WEB: /fhem?cmd=%7BAttrVal(%22SaugMops%22%2C%22room%22%2C%22%22)%7D&XHR=1 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.05.15 23:25:15 4: Connection accepted from WEB_172.23.23.45_51204

2018.05.15 23:25:24 3: SaugMops: disconnecting
2018.05.15 23:25:24 2: SaugMops: connecting
2018.05.15 23:25:24 3: SaugMops: initialized
2018.05.15 23:25:24 5: SaugMops: initSend
2018.05.15 23:25:24 5: SaugMops Send SUCCESS
2018.05.15 23:25:24 5: SaugMops > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2018.05.15 23:25:24 5: SaugMops < 2131002000000000050ce4b400003fd400000000000000000000000000000000 (32)
2018.05.15 23:25:28 4: SaugMops: write {"id":1,"method":"miIO.wifi_assoc_state","params":[""]} (55)
2018.05.15 23:25:28 5: SaugMops: send 2131006000000000050ce4b400003fd8e8d6bb9538bfe935f3019a98438e858b4d6d24a5b50d7117453a57b00e9266a2da50e31ed1edc89510b76194e7cdb1f13216d3074249042ff7f8b81bb93d6df367ca0b6829f1bcf45264f46f999dc58f
2018.05.15 23:25:28 5: SaugMops Send SUCCESS
2018.05.15 23:25:28 5: SaugMops > 2131006000000000050ce4b400003fd8e8d6bb9538bfe935f3019a98438e858b4d6d24a5b50d7117453a57b00e9266a2da50e31ed1edc89510b76194e7cdb1f13216d3074249042ff7f8b81bb93d6df367ca0b6829f1bcf45264f46f999dc58f
2018.05.15 23:25:28 4: SaugMops: write {"id":2,"method":"miIO.info","params":[""]} (43)
2018.05.15 23:25:28 5: SaugMops: send 2131005000000000050ce4b400003fd84a92cc2b93b9c19a85a3484d6e1e444fce0324d9fcae709d1b3a728f6a12e6b0176d72ba88f57dbea1e65e6f909ef63ff8538a96355e48045f7129873289d97f
2018.05.15 23:25:28 5: SaugMops Send SUCCESS
2018.05.15 23:25:28 5: SaugMops > 2131005000000000050ce4b400003fd84a92cc2b93b9c19a85a3484d6e1e444fce0324d9fcae709d1b3a728f6a12e6b0176d72ba88f57dbea1e65e6f909ef63ff8538a96355e48045f7129873289d97f
2018.05.15 23:25:28 4: SaugMops: write {"id":3,"method":"get_serial_number","params":[""]} (51)
2018.05.15 23:25:28 5: SaugMops: send 2131006000000000050ce4b400003fd84cc064be0d8ed80a9c2ced5d2d800e023346020cb2ded2b98e57bf30244e56e66545ce6358768e4c3a1b4df225060734a9f813bd875ed2190a3dfa442afa93711079226bbffd658fb48678c5f74d90d4
2018.05.15 23:25:28 5: SaugMops Send SUCCESS
2018.05.15 23:25:28 5: SaugMops > 2131006000000000050ce4b400003fd84cc064be0d8ed80a9c2ced5d2d800e023346020cb2ded2b98e57bf30244e56e66545ce6358768e4c3a1b4df225060734a9f813bd875ed2190a3dfa442afa93711079226bbffd658fb48678c5f74d90d4
2018.05.15 23:25:28 4: SaugMops: write {"id":4,"method":"get_timezone","params":[""]} (46)
2018.05.15 23:25:28 5: SaugMops: send 2131005000000000050ce4b400003fd81bc047babcf3999c773793be9d5295e47234d596e40f6ba7123fea9d48315279639f40ea7f698344e966d25012fcd783dd883685f2ba41f489d2d5667f8bb3e2
2018.05.15 23:25:28 5: SaugMops Send SUCCESS
2018.05.15 23:25:28 5: SaugMops > 2131005000000000050ce4b400003fd81bc047babcf3999c773793be9d5295e47234d596e40f6ba7123fea9d48315279639f40ea7f698344e966d25012fcd783dd883685f2ba41f489d2d5667f8bb3e2
2018.05.15 23:25:28 5: SaugMops < 213100a000000000050ce4b400003fd82ff2770ae4ab142dce1fabda754e0068e26df2a838c0f4f99943044d4fdb003104d4d12eb9d9316d5bfcacc9bfc121cb27a3db50a1f38d7c2cdecd248895a287b4ffa33b0f31953daa70550843a97c9ccba85044646df02f3d3093eee11bcaee82a850776b597e090a910d7bcb445a266d3b067344d53e514187513d74f8500629e71145669c6626fe059f5a1b98ec05 (160)
2018.05.15 23:25:28 5: SaugMops: decrypted
{"result":{"state":"ONLINE","auth_fail_count":0,"conn_succes_count":1,"conn_fail_count":0,"dhcp_fail_count":0},"id":1}
2018.05.15 23:25:28 5: SaugMops: parse id 1
$VAR1 = {
          'id' => 1,
          'result' => {
                        'dhcp_fail_count' => 0,
                        'auth_fail_count' => 0,
                        'conn_fail_count' => 0,
                        'state' => 'ONLINE',
                        'conn_succes_count' => 1
                      }
        };

2018.05.15 23:25:28 4: SaugMops: parse id 1 / wifi_stats
2018.05.15 23:25:28 4: SaugMops: msg ref is HASH
2018.05.15 23:25:28 5: Starting notify loop for SaugMops, 1 event(s), first is error: none
2018.05.15 23:25:28 5: Temperatur: not on any display, ignoring notify
2018.05.15 23:25:28 5: End notify loop for SaugMops
2018.05.15 23:25:28 5: Starting notify loop for SaugMops, 5 event(s), first is wifi_state: online
2018.05.15 23:25:28 5: Temperatur: not on any display, ignoring notify
2018.05.15 23:25:28 5: End notify loop for SaugMops
2018.05.15 23:25:28 5: SaugMops < 213101c000000000050ce4b400003fd8443608b9b9ff8a3b00595591e4b0e951efeb50f4731c2dcd8a3d6510cb819b195a3fcb6631e7739141ada6a4c05de80a592dbbbdd1352cd9a998d7c95fbbe29bf66f5450e9a1aeeadc2c5cb536c1a57da2a402476940763b885aeec41b995cd3eb275f551bb98c47c3ddbca00cf4dea88e4c3b2a47e47e94d6323b3dea653b1097f819b4b758e39cfaed27aefadfbfa7253e496488e2fb2c6eadb7dbc8cc8417001c4071997486e4d033653db9f7c01aedd4ac7f0d33cfeee6aae0e57dfdf2e0e825e5d7eb5fdfcb1e35bfef0fd0855b9d8280f6943dc1fd1bd33c617928d5d26736fb15fd63cecc6ebc28ba761652699bff5bc12080af3d5de4922f5fb38413809fe81914ee9e5c5dd1db0446de95ef32fe54abe86dd6d9fc28114798cad96342b66f8b86d241a30f9d045df90dc68eb8f5368bd7ad7641b8664c5adaf71d28134a9f6f9498a95ab70a40bdb6a16518798b0fb51db7dddc6f2875998798f735d7a91f0410bfe855dd18b08a8751796f57661790ebac7df499f0d677606c1a552a4d4b0886ca83f7c1305999769823db18a750ef5b38cd866e566e938ba974c19bafc85e0b2a5e8937035ec6c34bada8 (448)
2018.05.15 23:25:28 5: SaugMops: decrypted
{"result":{"life":16344,"token":"b5bd5249ac54df914f7404d272a8dae6","mac":"7C:49:EB:00:86:1B","fw_ver":"1.3.0","hw_ver":"ESP8266","uid":"1814712348","model":"roborock.vacuum.c1","mcu_fw_ver":"0254","wifi_fw_ver":"1.5.0-dev(1210f4f)","ap":{"rssi":-54,"ssid":"Casa-Stralau","bssid":"30:B5:C2:57:23:88"},"netif":{"localIp":"172.23.23.30","mask":"255.255.255.0","gw":"172.23.23.1"},"mmfree":16848},"id":2}
2018.05.15 23:25:28 5: SaugMops: parse id 2
$VAR1 = {
          'result' => {
                        'model' => 'roborock.vacuum.c1',
                        'netif' => {
                                     'localIp' => '172.23.23.30',
                                     'mask' => '255.255.255.0',
                                     'gw' => '172.23.23.1'
                                   },
                        'fw_ver' => '1.3.0',
                        'mmfree' => 16848,
                        'ap' => {
                                  'rssi' => -54,
                                  'bssid' => '30:B5:C2:57:23:88',
                                  'ssid' => 'Casa-Stralau'
                                },
                        'wifi_fw_ver' => '1.5.0-dev1210f4f',
                        'hw_ver' => 'ESP8266',
                        'uid' => '1814712348',
                        'mcu_fw_ver' => '0254',
                        'mac' => '7C:49:EB:00:86:1B',
                        'life' => 16344,
                        'token' => 'b5bd5249ac54df914f7404d272a8dae6'
                      },
          'id' => 2
        };

2018.05.15 23:25:28 4: SaugMops: parse id 2 / device_info
2018.05.15 23:25:28 4: SaugMops: msg ref is HASH
2018.05.15 23:25:28 5: Starting notify loop for SaugMops, 1 event(s), first is error: none
2018.05.15 23:25:28 5: Temperatur: not on any display, ignoring notify
2018.05.15 23:25:28 5: End notify loop for SaugMops
2018.05.15 23:25:28 5: Starting notify loop for SaugMops, 3 event(s), first is device_uptime: 4.54
2018.05.15 23:25:28 5: Temperatur: not on any display, ignoring notify
2018.05.15 23:25:28 5: End notify loop for SaugMops
2018.05.15 23:25:28 5: SaugMops < 2131005000000000050ce4b400003fd837f26d218af3901ec061ddb6a1bd6af00e1e552e6c37477fec61ade2945387349f1e6639ec33117da68f937cb2e350bed517d7cb94ac74a58d93dc80da41fcf4 (80)
2018.05.15 23:25:28 5: SaugMops: decrypted
{"result":["R0203S81301612"],"id":3}
2018.05.15 23:25:28 5: SaugMops: parse id 3
$VAR1 = {
          'id' => 3,
          'result' => [
                        'R0203S81301612'
                      ]
        };

2018.05.15 23:25:28 4: SaugMops: parse id 3 / get_serial_number
2018.05.15 23:25:28 4: SaugMops: msg ref is ARRAY
2018.05.15 23:25:28 5: Starting notify loop for SaugMops, 1 event(s), first is error: none
2018.05.15 23:25:28 5: Temperatur: not on any display, ignoring notify
2018.05.15 23:25:28 5: End notify loop for SaugMops
Can't use string ("R0203S81301612") as a HASH ref while "strict refs" in use at ./FHEM/72_XiaomiDevice.pm line 2354.



Hilft das jemanden weiter?

P.