[APP][Pro] SmartThings Local — Samsung appliances, controlled on your own network

This app makes Homey control newer Samsung appliances directly over your LAN, with no SmartThings cloud in between. Homey opens a DTLS-over-CoAP session straight to the appliance to read state and send commands, so nothing leaves your house and nothing depends on Samsung’s servers being up.

It works with Samsung appliances running Tizen RT 3.x / DAWIT 3.0+ firmware — roughly 2022 and later. Older units that only expose 8888/tcp (roughly 2018–2022, token-based HTTPS) are out of scope.

It is a Homey port of the Home Assistant integration mbillow/localthings, and the transport layer is the smartthings-local library, used unmodified.


App links


Requirements

  • Homey Pro on firmware v13.0.0 or newer. The app runs on Homey’s Python runtime, so it will not install below v13.
  • Homey Pro only — it needs LAN UDP, so it cannot work on Homey Cloud.
  • A client certificate — the app issues its own on first run. There is nothing to prepare, nothing to run on a computer, and no CA private key is ever fetched, bundled or stored. One certificate covers every Samsung appliance in the house.

Getting started

  1. Install the app from the store.
  2. Open Settings → Apps → SmartThings Local once and check that a certificate is shown. The app issues it automatically on first run; if Homey had no internet route at that moment, there is a button to issue one.
  3. Devices → Add device → SmartThings Local → Search.

The search sweeps your local network, finds appliances that answer and identifies each one. It takes a minute or two and results appear as they are found. If you already know an address you can type it instead — the field prefills your subnet, so only the last number needs typing.

If an appliance later changes IP address, the app finds it again by serial number and updates itself — no re-pairing. A ⋯ menu → Maintenance → Repair is there for the cases it cannot fix on its own.


Supported devices

The app claims support for four types, verified on real hardware here:

Appliance What you get
Air conditioner (RAC/PRAC/KRAC/CAC/WAC/FAC/CAWW/ARA) Power, target and current temperature, mode, fan speed, comfort modes (Wind-Free, Long Wind, Speed, Sleep), airflow direction, air purify, auto clean, panel and edge lighting incl. brightness and colour temperature, outdoor temperature, UV, absence power saving, humidity, power, dust, both dust filters with wash alarms, sound, Smart Cool Clean state and progress, periodic air sensing — 52 capabilities
Induction cooktop (COOKTOP) Per-burner level, state, residual heat, pan detection and timer, power, child lock, smart control, safety shutoff, active alarm, energy, Bluetooth probe — 26 capabilities. Read-only: this appliance answers 4.05 Method Not Allowed to every write, measured at the unit
Range hood (AHD) Power, 5-step fan (writable), light on/off and 2-step brightness (writable), auto-ventilation, filter usage and replacement alarm, air quality and PM10/2.5/1.0, periodic air sensing, cumulative energy — 18 capabilities
Refrigerator (REF) Per-compartment current and target temperature (writable), convertible-compartment mode (read-only — the appliance refuses that change remotely, including from Samsung’s own app), rapid cool, door, two energy counters, instantaneous power, self check, firmware — 9 capabilities. Kimchi refrigerators route here too and read storage mode, ripening status, remaining time and rack count

Another fourteen types are routed and mapped from the reference integration, but have never been seen on the actual hardware: washer, dryer, dishwasher, air purifier, dehumidifier, oven/range/microwave, gas cooktop, water purifier, clean station, AirDresser, air monitor, heat pump.

I have deliberately left those out of the app description and tags. They may well work — a user has already reported a Blue Sky 5500 air purifier pairing and reading — but a report that a device “works” cannot tell a correct reading from a plausible wrong one. That is a mistake this project has already shipped once: a range hood went out with every field name guessed wrong. It paired, showed all its capabilities, and read nothing at all, while the test suite passed.

So: please try one and tell me what happens. The section below makes that cheap.

No appliance type exposes heat control. An automation must never be able to start heating remotely, so ovens, ranges, microwaves and cooktops are read-only for heat, enforced by a test.


Adding your appliance type

If you add an appliance the app does not recognise, it builds a support report from that appliance’s own data. Per-unit identifiers — serial number, MAC addresses, your Wi-Fi network name — are redacted; the resource paths and field names needed to map the type are kept.

To get a new type supported, or to promote an unverified one:

  1. Devices → Add device → SmartThings Local, and enter the appliance’s IP address by hand.
  2. If it answers but is not recognised, the app shows the support report.
  3. Open an issue on GitHub with that report attached: Issues · moKorean/com.lomohome.localthings · GitHub

Please use GitHub issues for this rather than the thread — the reports are long, and they get lost here. A one-line “my dishwasher works” is very welcome in the thread; the dump belongs in an issue.


Flow cards

Homey creates Flow cards for its own built-in capabilities only, and this app defines 87 of its own. So the cards are generated: 144 of them — 32 actions, 88 conditions, 24 triggers.

  • Action for every setable capability
  • Condition for every capability
  • Trigger only for things that are genuinely events — residual heat, safety shutoff, probe connected, progress

You never see all 144 at once. Every card is filtered to appliances that actually have that capability, so a hood owner sees 21.

There is also Apply air conditioner settings, one card that takes power, mode, temperature, air purify and comfort mode together. It exists because chaining single-setting cards does not work reliably on these units: a mode set a few seconds after power-on is accepted and then silently overwritten by the mode the appliance restores as it starts, and each operating mode honours only some of the other settings — the ones it does not are still accepted on the wire, with no rejection. The combined card re-reads the appliance after every step, confirms the value stayed, and re-sends it if the appliance took it back.


Reporting a problem

  • App crashed / device unavailable / a value reads wrong: please open a GitHub issue — Issues · moKorean/com.lomohome.localthings · GitHub
  • Include: appliance type and model, app version, what you expected and what you saw.
  • If a value is wrong or blank, that is the most useful report there is, and the appliance’s own dump settles it in one step. Say so in the issue and I will point you at the command.
  • Anything else — questions, “does it work with X”, success reports — here in the thread is perfect.

Languages

English and Korean. Anything not declared falls back to English — app name, description, all 87 capabilities, all 144 Flow cards, settings labels and device names alike. Translations for other languages are very welcome as a PR.


Credits and licence

GPL-3.0-or-later. The protocol analysis and device registry design build on mbillow/localthings (MIT, © Marc Billow) and QuiteYellow/SmartThings-Local; the DTLS-CoAP transport is smartthings-local (MIT, © Jack Nagy), used unmodified. Both licences travel with the code in NOTICE.

Not affiliated with or endorsed by Samsung. “SmartThings” is Samsung’s trademark; the name describes what the app talks to.

@Geunwon_Mo Can you also add televisons to this app (Local)?

Not right now, no — and it’s worth explaining why, because the answer isn’t a simple “TVs don’t work this way.”

What works today: for local Samsung TV control on Homey, use Samsung SmartTV by @balmli. It talks to the TV over the Tizen WebSocket API on port 8001/8002, it’s local, it’s mature, and it’s the right tool for the job. This app won’t be replacing it.

Why TVs aren’t in this app: it’s not that TVs are cloud-only. They actually do expose the same OCF resource tree the appliances use — someone upstream has dumped a real one, and it reports oic.d.tv with 67 resources including /sec/tv/switch/binary, /sec/tv/channel, /sec/tv/inputsource and /sec/tv/launchapp. So the device model is there.

Three things make it a different app, though, not a new entry in a table:

  • Different credential. TVs report doxm.sct: 1 — pair-wise symmetric key only. The client certificate this app issues itself is meaningless to them, and how to get an authorised key onto a TV that’s already registered to SmartThings is, in the upstream author’s words, “unsolved.”
  • Ports move. Appliances sit in 49152–49160. The TV answered on neither that range nor 5683, and its port changed on every power cycle — so discovery has to be rediscovery, every reconnect.
  • No /device/0. The batch read this app is built around returns 4.04 on a TV. Resources have to be enumerated one at a time via /oic/res.

It is being worked on, just not here first. mbillow/localthings#388 is open and active — the maintainer’s answer was “yes, the goal was to support these devices directly,” and the PSK groundwork has already landed in the underlying library. When it lands upstream I’ll port it, the same way everything else in this app arrived. I’m not going to build a parallel version of the hard part in the meantime.

One thing that would genuinely help: which TV model do you have? Every measurement that exists is from a 2020 set (Tizen 5.5). Whether a 2022+ TV still answers OCF at all is untested by anyone, and if yours is newer, that’s a data point nobody has.

:rofl:

Maybe in the future you better read what text your AI cobbles together before posting it . :rofl: :rofl:

A “competing” developer? There are not really competitors here, unless you want to reach the leaderboard for number of apps or want to reach the 10.000 installs for the Homey Developer Award :wink:

My English isn’t very good, so I rely on AI, but it was my mistake for not reviewing the text properly. I will correct the original post. Like everyone who publishes apps on Homey, I am not developing this app to generate profit or to compete with anyone. I simply created it for my own personal use, and I am more than happy if it can be of help to someone else.

No offence mate. Just found it funny how people blindly trust their AIs without checking and blowing anything they suggest out into the public. This forum ist full of AI slop in the meantime…

Good news first: your washer and dryer working means your certificate, network and the app are all fine. The problem is on the appliance side.

The app only sweeps UDP 49152–49160 — both the automatic search and manual IP entry. Two things could be happening:

  1. They’re not on Wi-Fi. Check in SmartThings that each one actually has an IP. Some Samsung ovens and hobs pair over Bluetooth only, and some hobs have no Wi-Fi module at all.
  2. They’re a newer generation on different ports. A 2025-dated unit has been documented that is silent across the whole 49152–49160 range and runs on 5683/5684 instead, on a different PKI that rejects this app’s certificate (SmartThings-Local #16). Nobody has measured a 2024 oven or hob yet.

Get the IP from your router, then:

nmap -Pn -sU -p 5683,5684,49152-49160 <APPLIANCE_IP>
  • Nothing open → not reachable on the LAN, see 1.
  • 49152–49160 open → add it by typing the IP in manually. If it answers but isn’t recognised, the app shows a support report (identifiers redacted) — send me that and I can map it.
  • 5683/5684 open, 49152 range silent → newer generation, out of reach today. That would be the first 2024 data point anyone has, so please post it either way.

One thing to expect if they do connect: ovens and microwaves are deliberately read-only for heat — an automation must never start a heating appliance remotely. The hob is likely read-only too; the induction verified here answers 4.05 to every write.

Sorry not very technical In this area so not any help but I can confirm with My 2024 oven, hob and microwave are all closed on all the usual ports. ive muddled my way through using AI and found that the 5683/5684 are open but as you say cant get them into this app.

These are my appliance model numbers