A while back, I went over my experiences with Samsung’s SmartThings ecosystem. In the time since that post I have added a few new sensors and added automations right in the app itself, but have felt its integration with other ecosystems fairly limited. In this quick post I will go over how to integrate SmartThings with Home Assistant so that it can be used with that great environment. Luckily for us, a few updates ago this feature was added. The method I will be using requires the use of the Nabu Casa cloud, which is a paid subscription service that makes remote access to our home assistant super easy.
NOTE: This post assumes that you already have a Home Assistant instance setup. If you need help with that, you can go over my previous post where I go over how to install hass.io on a Raspberry Pi 4.
Setting up the Cloud
Following the original instructions from the Home Assistant docs, there are two methods to connect the two services, the easy Nabu Casa Cloud service way, or the manual way. Since I was planning on using the Cloud, I went for that method. If you go for the manual method instead, you will need to expose your home assistant instance to the internet (Potentially Dangerous) and set up the webhooks manually.
You will need to create a free Nabu Casa account at their website. Luckily they offer a free 31 day trial, so you can try it out before even entering any payment info. Click on the “Start a free 31 day trial” button, and when prompted, follow the instructions to create an account and get it verified.
Make sure you remember the username and password you just used to make the account, as we will need that soon to sign in on out home assistant instance. Go to your Home Assistant Web UI, then Configuration, then Home Assistant Cloud. There you will be prompted to sign into your new account. Once you are all signed in, you can play around with the different options, which I plan on going over in a future post, so stay tuned.
Getting a Samsung SmartThings Access Token
In order for our Home Assistant instance to talk with SmartThings, we need to create a private Access Token that will tell SmartThings to give Home Assistant access to all of our data on that service. First, we want to log into our SmartThings account, found here. Choose the account type that you used for SmartThings and sign in. Once Signed in, click on the “Generate New Token” button.
On the next page, it will prompt you to give the token a name, which can be anything, but I named it “Home Assistant”. Below that it will ask you what items we want to give permissions to for the token. I selected everythings, since I want Home Assistant to have full access to my SmartThings account. Once done, select “Generated Token” and it will display the generated token for you.
Be careful with this token, anyone with it can do quite a bit of dame to your SmartThings account if in the wrong hands. Also note that once you leave this page, you will not be able to see the token again, so make sure to write it done somewhere, or else you will need to create another token and delete the old one. Copy your new token and go back to your Home Assistant instant Web UI. Click on Configuration side tab, then Integrations. On the bottom right corner, click on the plus symbol and scroll down until you see SmartThings. In the screen, paste your token and click submit.
It will then tell you to enable the SmartApp integration before you can continue.
SmartThings Classic App
Unfortunately, the official SmartThings app does not allow use to enable the SmartApp integration, so we will need a new one. On your phone, go to the App/Play Store and search for “SmartThings Classic”. It should be the first app on the list found. Install the app, and once done, open it up. You will then need to sign into your samsung account. On my phone it automatically detected my account and signed me in right away.
Once in the app, click “Automations” down at the bottom, then click on “SmartApps” at the top. Click on the “Add a SmartApp” button, scroll down to the bottom then click on the “my apps” option. You should see the Home Assistant option if everything is done correctly up to this point. Give it a new name and follow any instructions if prompted. We can finally go back to the Home Assistant Web UI and click submit, which should indicate success, and prompt you to add all of your existing SmartThings devices to Home Assistant and assign them to rooms.
Now that all of our devices are in Home Assistant, we can use them like any other entity, including directly controlling them and seeing their states.