I got a Dreametech L10s Ultra yesterday and was very impressed! It’s quite capable and has a lot of nice features.

I tried it out on day 1 using the Dreametech app and I didn’t upgrade the firmware on the L10s Ultra in case I want to switch to Valetudo some day. But now that I know how to use it and I’m sure it’s working fine, I want to integrate it with Home Assistant. There’s a Xiaomi Mii integration and a Dreame Vacuum HACS integration. Configuring either one of them seems to require an account on Xiaomi Mi Cloud.

I installed the Xiaomi Home app on my Android and connected my L10s Ultra to it - so the L10s is now controllable via the Xiaomi Home app. Then I set up an account on Xiaomi Mi Cloud, but the cloud account says I have no devices. I can’t find a way to tell the Xiaomi Home app to inform Xiaomi Mi Cloud that I have a device.

Does anyone have any suggestions either how to get my L10s to appear in Xiaomi Mi Cloud, or to integrate it with Home Assistant another way (other than Valetudo - I want to do that, but it’s beyond my skillset right now)?

Thanks for any tips or guidance.

  • thisNotMyName@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 months ago

    Iirc Xiaomi has different data centers, like eu, cn, us. You have to pick the correct one when setting up the HA integration of your choice. Hope that helps

        • Mike Wooskey@lemmy.d.thewooskeys.comOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          9 months ago

          This seems to be a step in the right direction, I installed the Xiaomi Miot Auto integration and during configuration it found my L10s Ultra! However, it failed to add the it as a device due to this error:

          Logger: custom_components.xiaomi_miot.vacuum
          Source: custom_components/xiaomi_miot/__init__.py:1418
          Integration: Xiaomi Miot Auto (documentation, issues)
          First occurred: 4:55:37 AM (197 occurrences)
          Last logged: 8:11:21 AM
          DreameBot L10s Ultra(dreame.vacuum.r2228o): Got MiioException while fetching the state: Unable to discover the device 192.168.133.122, mapping: {'vacuum.status': {'siid': 2, 'piid': 1}, 'vacuum.fault': {'siid': 2, 'piid': 2}, 'vacuum.mode': {'siid': 2, 'piid': 3}, 'silver_ion.silverion_life_time': {'siid': 19, 'piid': 1}, 'silver_ion.silverion_life_level': {'siid': 19, 'piid': 2}, 'mop.mop_life_level': {'siid': 18, 'piid': 1}, 'mop.mop_left_time': {'siid': 18, 'piid': 2}, 'collect_dust.auto_collect': {'siid': 15, 'piid': 1}, 'collect_dust.clean_times': {'siid': 15, 'piid': 2}, 'collect_dust.dust_enable': {'siid': 15, 'piid': 3}, 'collect_dust.dust_status': {'siid': 15, 'piid': 5}, 'clean_logs.first_clean_time': {'siid': 12, 'piid': 1}, 'clean_logs.total_clean_time': {'siid': 12, 'piid': 2}, 'clean_logs.total_clean_times': {'siid': 12, 'piid': 3}, 'clean_logs.total_clean_area': {'siid': 12, 'piid': 4}, 'audio.volume': {'siid': 7, 'piid': 1}, 'audio.voice_packet_id': {'siid': 7, 'piid': 2}, 'audio.voice_change_state': {'siid': 7, 'piid': 3}, 'map.mult_map_state': {'siid': 6, 'piid': 7}, 'map.mult_map_info': {'siid': 6, 'piid': 8}, 'do_not_disturb.enable': {'siid': 5, 'piid': 1}, 'do_not_disturb.start_time': {'siid': 5, 'piid': 2}, 'do_not_disturb.end_time': {'siid': 5, 'piid': 3}, 'vacuum_extend.work_mode': {'siid': 4, 'piid': 1}, 'vacuum_extend.cleaning_time': {'siid': 4, 'piid': 2}, 'vacuum_extend.cleaning_area': {'siid': 4, 'piid': 3}, 'vacuum_extend.cleaning_mode': {'siid': 4, 'piid': 4}, 'vacuum_extend.mop_mode': {'siid': 4, 'piid': 5}, 'vacuum_extend.waterbox_status': {'siid': 4, 'piid': 6}, 'vacuum_extend.task_status': {'siid': 4, 'piid': 7}, 'break_point_restart-4-11': {'siid': 4, 'piid': 11}, 'vacuum_extend.carpet_press': {'siid': 4, 'piid': 12}, 'vacuum_extend.serial_number': {'siid': 4, 'piid': 14}, 'vacuum_extend.clean_rags_tip': {'siid': 4, 'piid': 16}, 'vacuum_extend.keep_sweeper_time': {'siid': 4, 'piid': 17}, 'vacuum_extend.faults': {'siid': 4, 'piid': 18}, 'vacuum_extend.nation_matched': {'siid': 4, 'piid': 19}, 'vacuum_extend.relocation_status': {'siid': 4, 'piid': 20}, 'vacuum_extend.laser_switch': {'siid': 4, 'piid': 21}, 'vacuum_extend.ai_switch': {'siid': 4, 'piid': 22}, 'vacuum_extend.clean_setting': {'siid': 4, 'piid': 23}, 'vacuum_extend.mop_status': {'siid': 4, 'piid': 25}, 'vacuum_extend.custom_enable': {'siid': 4, 'piid': 26}, 'vacuum_extend.child_lock': {'siid': 4, 'piid': 27}, 'vacuum_extend.sensitivity': {'siid': 4, 'piid': 28}, 'vacuum_extend.mop_way': {'siid': 4, 'piid': 29}, 'vacuum_extend.clean_cancel': {'siid': 4, 'piid': 30}, 'carpet_distinguish-4-33': {'siid': 4, 'piid': 33}, 'vacuum_extend.autowash_switch': {'siid': 4, 'piid': 34}, 'vacuum_extend.warn_status': {'siid': 4, 'piid': 35}, 'vacuum_extend.carpet_clean': {'siid': 4, 'piid': 36}, 'auto_add_detergent-4-37': {'siid': 4, 'piid': 37}, 'vacuum_extend.dry_time': {'siid': 4, 'piid': 40}, 'vacuum_extend.nowater_tips': {'siid': 4, 'piid': 41}, 'filter.filter_life_level': {'siid': 11, 'piid': 1}, 'filter.filter_left_time': {'siid': 11, 'piid': 2}, 'brush_left_time-10-1': {'siid': 10, 'piid': 1}, 'brush_life_level-10-2': {'siid': 10, 'piid': 2}, 'brush_cleaner.brush_left_time': {'siid': 9, 'piid': 1}, 'brush_cleaner.brush_life_level': {'siid': 9, 'piid': 2}, 'battery_level': {'siid': 3, 'piid': 1}, 'battery.charging_state': {'siid': 3, 'piid': 2}}, max_properties: 10/62
          

          So I found an explanation that there are sometimes problems discovering devices across subnets, and my L10s is in a different subnet than my Home Assistant. This seems odd to me, though, because Xiaomi Miot Auto saw my L10s and even knew it’s IP address - but perhaps that’s TCP and the problem is that UDP can’t cross subnets? The article says there are 2 ways to possibly overcome the cross-subnet issue: put the devices on the same subnet (currently not an option for me), and “configure IP masquearding on the outgoing routing interface for the subnet where the MI device resides.” With GPT’s help, I tried to add IP Masquerading (which I guess is just NAT), but it’s not working. I’m pretty confident I did it wrong. Can anyone help me configure my pfsense so that my L10s on one subnet can be discovered by Xiaomi Miot Auto on the other subnet?

          • thisNotMyName@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            9 months ago

            Networking stuff was my first thought, too, when starting to read your log. Unfortunately i can’t help you with that (my HA is in host mode as are all the IoT-devices), but I think I can explain why it was able to get the IP: It received it via the API from Xiaomi. Good luck figuring out the networking :/

    • Mike Wooskey@lemmy.d.thewooskeys.comOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      9 months ago

      That’s the HACS integration I tried. Upon trying to add my vacuum, it asks for login to Xaiomi’s Miio cloud, and when I do it says there are no devices.

      In Xaiomi Mii cloud, I can log into my account and indeed it says there are no devices. In the Xaiomi Home app on Android, my device is definitely there and I can control it. So if I assume that once the vacuum appears in Xaiomi Mii cloud then it will also integrate into Home Assistant, how do I get my device to appear in Xaiomi Mii cloud?

      When you first installed this custom integration. And added your vacuum, did you have to log into Xiaomi Mii cloud? In your Mii cloud account, does your vacuum show as a device?