Integrating Eectrolux Pure I9 Robotic Vacuum

Has anyone looked at integrating Electrolux Pure I9 Robotic Vacuum? They have a nice app with map, scheduling, IFTTT etc. And yes, it actually clean your house :slight_smile:

Would be great to run this with presence detection within Hassio.

Regards,

/Martin

1 Like

It would be a really good thing :slight_smile:

Best regards,
Tamas

+1 - this would be amazing!

The source code is open source if that helps: https://www.electrolux.co.uk/wellbeing/discover/explore-robot-vaccum-cleaners-pure-i-9/open-source-software-information/

I think this is just a statement to comply with open source licenses they have used in their development but they haven’t released the final software as open source.

I managed to get this working but had to use IFTTT as an intermediary. There are events which you can send to the vacuum via IFTTT which can start or stop the vacuum, and also an event which is fired when the state of the vacuum changes. What I did was setup an input_boolean in HA and used IFTTT to send the current state of the vacuum to a webhook I setup in HA. I included the newStatus ingredient in the payload sent from IFTTT, and used that to determine the status of the boolean, true for “Cleaning” or “Returning” and false for “Sleeping”, “Charing”, “PausedCleaning”.

I setup other events in IFTTT which responded to webhooks and either started or stopped the robot depending on the event name. In my case I have a flic button which sends a ‘start_henry’ or ‘stop_henry’ event to IFTTT depending on the type of click detected. This in turn triggers a state change on the robot, which eventually keeps my boolean up-to-date.

Jump over to the Electrolux Purei9 forum and vote for this feature. If I was given the proper tools such as a documented API (local or cloud), I’d create an integration in a heartbeat.

1 Like

Done. Let’s hope they do it soon, it looks like the most requested feature. I saw someone say somewhere they were holding off on updating IFTTT because they had a larger platform overhaul in mind. Hopefully this is it.

I found a git repo interacting with the Purei9.

@nikl.ekman, can you work with this?

That looks promising. I’ll see if I have some time over to check this out.

Edit: For those of you who have problems getting this to work see: Integrating Eectrolux Pure I9 Robotic Vacuum - #24 by nikl.ekman

I wrote a verry crude ha component with the given example but your vacuum needs a static ip address.
Currently only start, go home and the current status are supported.

anhaehne/homeassistant_electrolux_purei9 (github.com)

Copy the “electrolux_purei9” into your custom_components folder.

vacuum:
  - platform: electrolux_purei9
    name: <vacuum name>
    email: <electroLux/AEG email>
    password: <electroLux/AEG password>
    ip_address: "<static ip of the vacuum>" # example: "192.168.1.123"
2 Likes

Tried your component without success. I have the i9 on a separate VLAN, could this be an issue? Thanks!

Can you ping you vacuum from the Homeassistant host? Have you tried the cli project https://github.com/Phype/purei9-cli ?

I can operate my i9.2 using the cli but I couldn’t get the integration running.

The HA log only displays the following:

2021-03-19 23:32:58 WARNING (MainThread) [homeassistant.components.vacuum] Setup of vacuum platform electrolux_purei9 is taking over 10 seconds.
...
2021-03-19 23:33:48 ERROR (MainThread) [homeassistant.components.vacuum] Setup of platform electrolux_purei9 is taking longer than 60 seconds. Startup will proceed without waiting any longer.

Is there anyway I can view the debug log for more infomation?

Sorry, but how can I ping the vacuum from the host? I am running Hass OS supervisor on Proxmox.

I managed to integrate my i9.2 using switch.command along with the purei9-cli.
image

The config is simple like:

switch:
  - platform: command_line
    switches:
      pure_i9:
        command_on: 'ssh -i /config/pi pi@PI_IP "cd /home/pi/purei9-cli && python3 purei9.py local I9_IP PASSCODE start"'
        command_off: 'ssh -i /config/pi pi@PI_IP "cd /home/pi/purei9-cli && python3 purei9.py local I9_IP PASSCODE home"'
        command_state: 'ssh -i /config/pi pi@PI_IP "cd /home/pi/purei9-cli && python3 purei9.py local I9_IP PASSCODE status" | grep Cleaning'

This is good enough for me now. Thanks for all the information guys. :slight_smile:

Can’t make the integration work either. I have the ‘electrolux_purei9’ stuff in /config/custom_components -directory, the configuration.yaml has

vacuum:
  - platform: electrolux_purei9
    name: pureI
    email: !secret electrolux_user
    password: !secret electrolux_password
    ip_address: "xxx.xxx.xxx.xxx"
  • I can ping the IP address from hass host
  • No pureI Entity or Device visible in hass

Hass core-2021.4.6
Supervisor supervisor-2021.04.0

Log error message:

Logger: homeassistant.components.vacuum
Source: helpers/entity_platform.py:237
Integration: Vacuum (documentation, issues)
First occurred: 12:01:29 (1 occurrences)
Last logged: 12:01:29

Setup of platform electrolux_purei9 is taking longer than 60 seconds. Startup will proceed without waiting any longer.

My issue was caused by current Electrolux app (Wellbeing) and distribution of localpw from pureI to Electrolux cloud, see: Unable to connect local vacuum because there is no localpw ¡ Issue #6 ¡ Phype/purei9_unofficial ¡ GitHub

A little nicer with Template Vacuum - Home Assistant and ssh add-on with script hassio.addon_stdin over:

vacuum_start:
  alias: start_vacuum
  sequence:
  - service: hassio.addon_stdin
    data:
      addon: a0d7b954_ssh
      input: python3 -m purei9_unofficial cloud -c USERNAME:PASSWORD home
        -r IDHERE
  mode: single
vacuum_home:
  alias: home_vacuum
  sequence:
  - service: hassio.addon_stdin
    data:
      addon: a0d7b954_ssh
      input: python3 -m purei9_unofficial cloud -c USERNAME:PASSWORD home
        -r IDHERE
  mode: single
pause_vacuum:
  alias: pause_vacuum
  sequence:
  - service: hassio.addon_stdin
    data:
      addon: a0d7b954_ssh
      input: python3 -m purei9_unofficial cloud -c USERNAME:PASSWORD home
        -r IDHERE
  mode: single

and

vacuum:
  - platform: template
    vacuums:
      staubi:
        start:
          - service: script.turn_on
            target:
              entity_id: script.vacuum_start

        return_to_base:
          - service: script.turn_on
            target:
              entity_id: script.vacuum_home

        pause:
          - service: script.turn_on
            target:
              entity_id: script.vacuum_pause
1 Like

Hi!

I think I need a for dummies guide here on how to implement this. I got both these two components installed in my custom_components folder now so i can do it either way. Can somebody help me get going with this?

With the electrolux_purei9 folder in custom_components i get platform not found error?