Can smart Samsung washing machines be started with the SmartThings integration?

The washing machine has a remote lock button which basically locks the door and opens remote support thought app or api.

Do the samsung dishwashers work similarly? It’s not clear from the manual.

The command":“setMachineState”, with argument run, resumes a paused cycle. On my samsung washing machine from 2022.

How can you give multiple payload comments like:

rest_command:
   kleur:
    url: "https://api.smartthings.com/v1/devices/<DeviceID>/commands"
    method: post
    content_type: 'application/json; charset=utf-8'
    headers: 
      Authorization: Bearer <Token>
    payload:
      '[{
          "capability":"samsungce.washerBubbleSoak", "command":"on",
          "capability":"samsungce.autoDispenseDetergent", "command":"standard",
          "capability":"samsungce.washerCycle", "command":"setWasherCycle", "arguments":["Course_1B"]
      }]'

Great stuff all! Already have a Smartthings capable washing machine for some years, and thanks to this thread discovered its smart capabilities :slight_smile:

I think we should integrate this functionality into the Smartthings integration of HA. I created an issue for it, see Samsung Washing Machine - No option for remote start · Issue #109357 · home-assistant/core · GitHub

I hope somebody can pick this up, as I lack python coding skills for that :frowning:

1 Like

I know this is 50% offtopic, but still heavily related: when I don’t want (or cannot) setup an external webhook, and therefore the “proper” smartthings integration not being an option, can I still trigger commands and pull information about a device via the smartthings API directly? Or is on the samsung side the API connected to the existence/setup of a webhook on my side?

I’d be totally fine with setting up tons of API calls via CURL or REST sensors, but it has to work without a webhook on my side.

Thanks in advance!

You should not need a webhook if you set up the API commands like I’ve done here :

Fully local control would be ideal, but I’m not sure if that would be even possible. But if you’re happy to fire the API calls that should work

1 Like

Did you get it running without exposing HA to a webhook? Will follow this topic further I want to integrate my Smart Things App but I also don’t wanna create a webhook or subscribe to a cloud service I don’t really need.

For anyone trying this today, the SmartThings IDE is discontinued, but you can still do this. Go to Samsung account and sign in, click ‘Add a new device’ and choose a cloud-based switch.

You now only need one switch for the smart control automation; for starting and stopping the machine, you can create manually triggered routines in the smartthings app, which will appear as buttons in the HA smartthings integration.

I just tried it. The only thing that appeared in HA is the “cloud switch” but not the routine. Could you please elaborate on the procedure?

You can send multiple payload commands by formating the payload like shown below:

[
    {"capability":"samsungce.washerCycle", "command":"setWasherCycle", "arguments":["Course_1B"]},
    {"capability":"custom.washerWaterTemperature", "command":"setWasherWaterTemperature", "arguments":["60"]},
    {"capability":"samsungce.washerBubbleSoak", "command":"off"},
    {"capability":"custom.dryerDryLevel", "command":"setDryerDryLevel", "arguments":["cupboard"]},
    {"capability":"custom.washerRinseCycles", "command":"setWasherRinseCycles", "arguments":["4"]},
    {"capability":"custom.washerSpinLevel", "command":"setWasherSpinLevel", "arguments":["1200"]}
]

For future readers, you can actually use linebreaks in the YAML variables like shown below. This can help with the readability and you don’t need to escape the quotes :wink:

#/homeassistant/configuration.yaml

shell_command:
  # Washing machine
  washer_program_1: |-
    curl -s -L 'https://api.smartthings.com/v1/devices/<DEVICE_ID>/commands' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer <BEARER_TOKEN>' \
    -d '[
        {"capability":"samsungce.washerCycle", "command":"setWasherCycle", "arguments":["Course_1B"]},
        {"capability":"custom.washerWaterTemperature", "command":"setWasherWaterTemperature", "arguments":["30"]},
        {"capability":"samsungce.washerBubbleSoak", "command":"on"},
        {"capability":"custom.dryerDryLevel", "command":"setDryerDryLevel", "arguments":["none"]},
        {"capability":"custom.washerRinseCycles", "command":"setWasherRinseCycles", "arguments":["2"]},
        {"capability":"custom.washerSpinLevel", "command":"setWasherSpinLevel", "arguments":["1200"]}
    ]'
  washer_program_2: |-
    curl -s -L 'https://api.smartthings.com/v1/devices/<DEVICE_ID>/commands' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer <BEARER_TOKEN>' \
    -d '[
        {"capability":"samsungce.washerCycle", "command":"setWasherCycle", "arguments":["Course_1B"]},
        {"capability":"custom.washerWaterTemperature", "command":"setWasherWaterTemperature", "arguments":["30"]},
        {"capability":"samsungce.washerBubbleSoak", "command":"off"},
        {"capability":"custom.dryerDryLevel", "command":"setDryerDryLevel", "arguments":["none"]},
        {"capability":"custom.washerRinseCycles", "command":"setWasherRinseCycles", "arguments":["2"]},
        {"capability":"custom.washerSpinLevel", "command":"setWasherSpinLevel", "arguments":["1200"]}
    ]'
  washer_program_3: |-
    curl -s -L 'https://api.smartthings.com/v1/devices/<DEVICE_ID>/commands' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer <BEARER_TOKEN>' \
    -d '[
        {"capability":"samsungce.washerCycle", "command":"setWasherCycle", "arguments":["Course_1B"]},
        {"capability":"custom.washerWaterTemperature", "command":"setWasherWaterTemperature", "arguments":["30"]},
        {"capability":"samsungce.washerBubbleSoak", "command":"on"},
        {"capability":"custom.dryerDryLevel", "command":"setDryerDryLevel", "arguments":["cupboard"]},
        {"capability":"custom.washerRinseCycles", "command":"setWasherRinseCycles", "arguments":["2"]},
        {"capability":"custom.washerSpinLevel", "command":"setWasherSpinLevel", "arguments":["1200"]}
    ]'
  # ....
1 Like

The token and device_id should be in brackets or pure string?

  1. Authorization: Bearer 1234567890’
    or
  2. Authorization: Bearer <1234567890>’

They should be pure string.

The first option you gave is correct.

Its not completely clear to me. I see different aproaches from api to creating switches.
How can i see wich cycle is running at this moment.
I can see in postman what cycles are available but want to detect wich cycle e.g. course
is running when starting the washing machine.

would love to get some pointers

would this be possible to integrate in the smarthings integration?