Shark IQ Vacuum - Launch to specific room?

I’m using the Shark IQ integration ton control my robot vac. It works great, but it seems I can only launch it for a full cleaning. Is there any way to specify the room I want it to clean?

I can see the vacuum.clean_spot and vacuum.send_command services, but not sure how to use them, if that’s at all possible. I know the API for Shark supports it, because I can get Alexa to target specific rooms when I give voice commands.

Has any one had any luck getting something like this to work?

I am interested as well. Looks like someone has posted an issue and was able to get the output of possibly running on a per room basis… or perhaps even in high traffic zones.

'Room_Mode': {'ack_enabled': False,
               'app_type': None,
               'base_type': 'integer',
               'data_updated_at': 'null',
               'denied_roles': [],
               'derived': False,
               'device_key': 24383219,
               'direction': 'input',
               'display_name': 'Room Mode',
               'host_sw_version': False,
               'key': 70572702,
               'name': 'SET_Room_Mode',
               'product_name': 'jaws',
               'read_only': False,
               'recipe': None,
               'retention_days': 30,
               'scope': 'user',
               'time_series': False,
               'track_only_changes': False,
               'type': 'Property',
               'value': None},

Hi all,

I have the same challenge:
Control what room to be cleaned by the SharkIQ from the Home Assistant dashboard. Like @dmartinez7500 describes: it is available in the API as through Alexa I can make it clean a specific room.

As a workaround I could write code to send a voice command to Alexa and through which it would go to SharkIQ, but that seems an unnecessary, and cumbersome workaround.

Anyone any luck with figuring out what the API method is to set a room for a specific cleaning task? I’m no pro in coding api calls, but willing to give it a shot.

I wouldn’t get your hopes up just yet, as there are a LOT of PR’s out there for home assistant, but I opened up a PR to allow the use of the vacuum “Send Command” to be used to tell a shark vacuum to vacuum a specific room.

If you’re familiar with the HA github scene, you could go give this PR a review to help nudge it along!

1 Like

I saw the issues is closed. How long do you think before this is integrated into core?

@jrlambs any new news on the horizon?

2 Likes

The integration says it supports room targeting now but I can’t figure out how to make it work.

1 Like

I am also not able to get this to work. Google’s AI result said it should pop up and ask me which room I want but it doesn’t.

Everyone, I was able to get this to work. Wow, the instructions on the Home Assistant landing page for Shark are lacking. It doesn’t say it at all, but you actually have to create buttons for each room, and automations for each room. After a ton of digging this is what worked for me:

Step 1- Click the hamburger menu in the top left. Go to Settings. Click “Devices and Services”. Then click “Helpers” in the bottom right corner. We need to create a helper first.

Step 2 - Click the blue “Create Helper” button. Choose “Button” when it gives you the list of Helper types. Give the button any name and any icon that you want and click “Create”. This will be for one room only so probably choose the name of the room as the name (like “Kitchen”).

Step 3 - We need to get the entity ID. Click the 3 dots next to the button helper you just created and choose “Show Settings”. Copy down the Entity ID of the button. it will be something like input_button.name_of_button

Step 4 - Go back to the hamburger menu in the top left. Go to Settings. Then click “Automations and Scenes”. We are going to create an automation.

Step 5 - Hit the blue Create Automation button. Then click “Create new automation” (from scratch).

Step 6 - Click Add Trigger. Then click Entity. Then click State. In the Entity dropdown, find the button you just made. For the trigger, choose “When [Name of your button] changes state or any attributes”. Pick your button that you made in the Helper menu from the Entity dropdown. Do not touch any other fields on this screen. That’s all we need for the Trigger. You can hit the little arrow to minimize that if you are on mobile and move down to the “Then Do” section. If you accidentally hit save don’t worry - jsut go back into the edit section of the automation and keep going.

Step 7 - This is the toughest part. IUnder “Then do” click “Add Action”. Click “Shark IQ” - if you don’t see Shark, you may have to click “Other actions” at the bottom and then it will reveal it. Click “Clean Room”. I actually didn’t find this before so I did custom YAML. But you might be able to select rooms from the dropdowns that appear. If not, this YAML should work (click the 3 dots and choose “Edit YAML” to edit the YAML):

service: sharkiq.clean_room
metadata: {}
data:
rooms:
- “Kitchen”
target:
entity_id: vacuum.robovac

A couple of important notes - my vacuum’s name is “robovac” - you need to change that to your vacuum’s name. The name of the room has to match exactly what you have in the SharkIQ app and be in quotes. In my example “Kitchen”.

Repeat this process for every room you want to target. You can do multiple rooms for one button too by either selecting multiple rooms or adding dashes with the room names below the first one in the YAML. I haven’t tried it but I’ve seen others say that works.

I hope this helps someone spend less time than I did figuring this out, it took me hours!!

Thanks for this write up. I’m having issues keeping the room name in the yaml file though. I edit the yaml and include the room name as it is coded in the Shark app.
rooms:

  • “Living Room”
    Hit save, but when I go back into the yaml it only has
    rooms: - this is supposed to be the square brackets

Anybody else have this issue?