Sno Station
Sno Station is your agents' workstation: open-source software that turns the AI agents you already run into one squad on your own machine. Two heads are better than one, and they get better with every
DirectorLink · Samsung Refrigerator for Control4: a free, open-source driver for Samsung Wi-Fi refrigerators. Power Cool, Power Freeze, Sabbath Mode, the ice maker, temperatures, doors and the water f
PluginsPython · LuaGitHub @DirectorLinkOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
DirectorLink · Samsung Refrigerator for Control4: free, open-source driver for Samsung Wi-Fi refrigerators.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Free, open-source Control4 driver for Samsung Wi-Fi refrigerators. Part of DirectorLink Drivers.
It works through the Samsung SmartThings cloud: no extra hardware and no subscription.
Free. No subscription, no license key, no account with us.
Made by DirectorLink, the open-source management layer for Control4 homes. Works on its own: DirectorLink is not required.
DirectorLink is an independent project, not affiliated with Control4 or Snap One.Read the full README ↗Free, open-source Control4 driver for Samsung Wi-Fi refrigerators. Part of DirectorLink Drivers.
It works through the Samsung SmartThings cloud: no extra hardware and no subscription.
Free. No subscription, no license key, no account with us.
Made by DirectorLink, the open-source management layer for Control4 homes. Works on its own: DirectorLink is not required.
DirectorLink is an independent project, not affiliated with Control4 or Snap One.
With DirectorLink 1.7.0 or later, it also shows in the DirectorLink app. The app shows only the switches and values this refrigerator has, in the right unit.
| Feature | Control4 app | Programming |
|---|---|---|
| Samsung Refrigerator status | tile: green OK, amber door open, red problem; tap to refresh | – |
| Power Cool (fast cooling) | tile, tap to toggle | On / Off / Toggle, events, conditional |
| Power Freeze (fast freezing) | tile, tap to toggle | On / Off / Toggle, events, conditional |
| Sabbath Mode | tile, tap to toggle | On / Off / Toggle, events, conditional |
| Ice Maker | tile, tap to toggle | On / Off / Toggle, events, conditional |
| Fridge and freezer setpoints | – | set commands, Composer dropdown, variables |
| Temperatures, doors, FlexZone mode | – | Door Opened / Closed / Left Open events, variables |
| Water filter | – | Needs Replacement event, Reset command |
| Power, energy, online status | – | Offline / Online events, variables |
The driver checks which features each refrigerator supports. Anything your model doesn't have shows as Not available, and its tile is greyed out.
TP2X_REF_20K) on a CORE-1 with OS 4.2.1.DirectorLink-Samsung-Refrigerator.c4z from the latest release,
or from https://directorlink.io/drivers/samsung-refrigerator. Each release also lists SHA256SUMS.txt.Keep the file name exactly
DirectorLink-Samsung-Refrigerator.c4z. Composer identifies a driver by its file name. A browser saves a second download asDirectorLink-Samsung-Refrigerator (1).c4z, which Composer installs as a separate driver instead of updating this one. Delete older downloads first.
The same steps appear on the driver's Documentation tab in Composer.
The driver needs a Personal Access Token once, to create its own secure login (OAuth).
On a computer, open https://account.smartthings.com/tokens.
Sign in with the same Samsung account the refrigerator is registered to in the SmartThings app.
Click Generate new token and give it any name, for example Control4.
Under Authorized Scopes, tick every checkbox in these three sections:
If you're unsure, tick every box on the page. The token is used once and expires by itself after 24 hours.
Click Generate token and copy it. It looks like 1a2b3c4d-1111-2222-3333-444455556666
and is shown only once.
In Composer, select the driver and paste the token into Personal Access Token → Set.
On the driver's Actions tab click 1. Create OAuth App (uses Personal Access Token). OAuth Client ID and OAuth Client Secret fill in automatically.
You don't need to look up a Client ID anywhere: the driver creates it. SmartThings never shows the secret again, so save both values. If you reinstall the driver, paste the saved Client ID and Secret instead of creating another app.
https://httpbin.org/get?code=.... Copy the whole address from the address bar.Authorization Status should now say Authorized (OAuth) … renews automatically. You're done: the driver renews its own access from now on, and the Personal Access Token is no longer used.
Commands go through Samsung's cloud. The driver re-reads the refrigerator after each command and shows it as done only when the refrigerator confirms, typically in about 4 seconds. If it doesn't confirm, the driver fires Command Failed.
Use them in programming conditions, or read them from other drivers. The ids never change.
| Id | Variable | Type | Meaning |
|---|---|---|---|
| 1001 | POWER_COOL | bool | Power Cool is on |
| 1002 | POWER_FREEZE | bool | Power Freeze is on |
| 1003 | SABBATH_MODE | bool | Sabbath Mode is on |
| 1004 | ICE_MAKER | bool | The ice maker is on |
| 1005 | ONLINE | bool | The refrigerator is online in SmartThings |
| 1006 | DOOR_OPEN | bool | A door is open |
| 1007 | FRIDGE_TEMP | number | Fridge temperature, in the refrigerator's unit |
| 1008 | FREEZER_TEMP | number | Freezer temperature, in the refrigerator's unit |
| 1009 | FRIDGE_SETPOINT | number | Fridge setpoint, in the refrigerator's unit |
| 1010 | FREEZER_SETPOINT | number | Freezer setpoint, in the refrigerator's unit |
| 1011 | POWER_W | number | Power draw in watts |
| 1012 | WATER_FILTER_USAGE | number | Water filter used, in percent |
| 1013 | REPORTED_VARIABLES | string | Which of the variables above hold a value this refrigerator reports, comma-separated, for example POWER_COOL,ONLINE,FRIDGE_TEMP. Variables for features it doesn't have stay at 0 and aren't listed. Empty before the first status read, after Sign Out, and after another refrigerator is selected. |
| 1014 | TEMPERATURE_UNIT | string | C or F: the unit of the temperatures and setpoints. Empty while unknown. |
Latest version: 1.1.1. Version 1.1.0 added two variables for DirectorLink 1.7 and later, REPORTED_VARIABLES and
TEMPERATURE_UNIT (see Variables), so the app shows only the switches and values this refrigerator
has, in the right unit. Nothing else changed, and existing programming keeps working. The release notes
list what changed in every version.
Download the new DirectorLink-Samsung-Refrigerator.c4z from the latest release.
Mind the file name, as described in Installation. Then run Driver → Add or Update Driver or Agent in
Composer Pro. Your settings and sign-in are kept. To go back to an older version, install the .c4z from an
older release the same way.
| What you see | What to do |
|---|---|
Create app failed: Forbidden ... | The token is missing scopes. Make a new one with all Devices, Locations and Apps boxes ticked. |
Create app failed: Not authorized ... | The token is older than 24 hours. Make a new one. |
OAuth Client ID is already set | The app already exists. Use it, or clear both OAuth fields to create a new one. |
No refrigerators found in this SmartThings account | You signed in with a different Samsung account than the one the refrigerator is registered to. |
Authorization failed: ... | The code expired or was already used. Click 2. Show Authorization URL and sign in again. |
Re-authorization required | SmartThings no longer accepts the saved login, for example after about 30 days with the controller offline, or after access was removed in the SmartThings app. Repeat Step 3 only. |
| A feature shows Not available | Your model or its firmware doesn't offer it in SmartThings. Check for a refrigerator update in the SmartThings app. |
... was not confirmed by the refrigerator | SmartThings accepted the command but the refrigerator didn't change. Check that it's online in the SmartThings app. |
Rate limited by SmartThings | SmartThings allows about 12 reads a minute per device. Don't set the poll interval very short, and don't send many commands at once. |
| Lost the Client ID or Secret | Clear both OAuth fields, make a new token, and repeat Steps 2 and 3. |
The Personal Access Token is needed only once. After Step 3 the driver renews its own access. There's no local (no-cloud) option: current Samsung refrigerators need device certificates for local control. So the driver uses the official SmartThings cloud API, the same one Home Assistant uses.
The driver talks only to the Samsung cloud. It sends nothing to DirectorLink and collects no usage data.
The sign-in in Step 3 happens in your browser, which lands on httpbin.org to show you the one-time code. SmartThings tokens are kept in Control4's encrypted driver storage and are never written to the log.
Community-supported, best effort. Report problems in Issues.
Include the Composer properties Driver Version, Model, Supported Features and Driver Status, plus the Lua output with Debug Mode on. Never post tokens or the Client Secret. For security problems, see SECURITY.md.
src/driver.xml driver definition (5 uibutton proxies, properties, actions, commands, events)
src/driver.lua driver logic (OAuth, SmartThings API, feature detection, UI, programming)
src/www/documentation.html Composer Documentation tab
src/www/icons/<tile>/ tile icons per state + Composer images, generated by scripts/make_icons.py
scripts/gen_ui_xml.py regenerates driver.xml's proxies, Navigator icons and connections from one table
scripts/build.py stamp VERSION, validate and package -> dist/DirectorLink-Samsung-Refrigerator.c4z
scripts/check_repo.py fail if secrets or local configuration would be committed
tests/test_driver.py offline tests: real driver.lua vs mocked Control4 + fake SmartThings cloud
tests/live_test.py live tests against a real refrigerator (reverts every change)
tests/fixtures/ Home Assistant SmartThings fixtures (Apache-2.0, see NOTICE)
pip install -r requirements-dev.txt
python tests/test_driver.py # offline tests under Lua 5.1 and LuaJIT 2.1
python scripts/check_repo.py
python scripts/build.py # -> dist/DirectorLink-Samsung-Refrigerator.c4z
set ST_TOKEN=<personal access token> # live tests operate your refrigerator, then revert every change
python tests/live_test.py features
Releasing: VERSION (MAJOR.MINOR.PATCH) is the only place the version is set. The build stamps it into the
package: driver.xml <version> = MAJOR×10000 + MINOR×100 + PATCH, and DRIVER_VERSION in driver.lua.
Add docs/releases/v<VERSION>.md and push to main. The release workflow runs the tests, builds, and
publishes the release with the .c4z and SHA256SUMS.txt. Without the notes file nothing is published,
and an existing release is never replaced.
Don't zip with PowerShell 5.1's Compress-Archive: it writes backslash paths that break the icons.
Never change the .c4z file name, proxy binding ids, variable order, event and command ids, or property names
once released, because installed projects and dealers' programming depend on them. Director numbers variables
in the order OnDriverInit adds them (1001, 1002, …), and DirectorLink reads them by those ids, so new variables
are only ever added after the last one.
smartthings integration)| Feature | Component | Capability → command |
|---|---|---|
| Power Cool | main | samsungce.powerCool → activate / deactivate (fallback refrigeration.setRapidCooling("on"/"off")) |
| Power Freeze | main | samsungce.powerFreeze → activate / deactivate (fallback refrigeration.setRapidFreezing) |
| Sabbath | main | samsungce.sabbathMode → on / off |
| Ice maker | icemaker | switch → on / off |
| Setpoints | cooler / onedoor, freezer | thermostatCoolingSetpoint → setCoolingSetpoint(int) |
| Water filter | main | custom.waterFilter → resetWaterFilter |
A feature counts as unsupported when its capability is missing, listed in that component's
custom.disabledCapabilities, or its component is listed in main.custom.disabledComponents.
Auth: an OAuth2 API_ONLY app with scopes r:devices:* x:devices:*. Access tokens last 24 hours.
Refresh tokens rotate on every use, so each new one is saved immediately and refreshes run one at a time.
Apache License 2.0. Copyright 2026 DirectorLink. Not affiliated with or endorsed by Samsung, Control4 or Snap One. Samsung, Control4 and related names are trademarks of their respective owners.