Air Conditioner Tile

I have a samsung mini split air conditioner connected via smart things.

I’ve added a tile for this and have it set as a “Standard Thermostat” in the layout section.

It displays correctly, however, I’m hitting 2 speedbumps.

  1. When I press the up and down arrows on the tile to adjust the temperature, it tries to adjust by half degree increments, and more so, I get “error sending command”. If I click the “adjust” in the bottom left, I can properly adjust the temperature.

  2. When I’m in the “adjust” section, I only get “Auto” and “cool” as options. Not heat. My mini split DOES have heat. When I put it into heat mode in smart things, the bottom right side of the tile (opposite of “adjust”) does properly show “heat” and I do get the flame Icon…however, if I"m in cool mode and want to change to heat, I am not able to do this via the dashboard.

Can you share the capabilities and attributes + values reported for the device?

  1. Open your SharpTools User Page
  2. Tap the ... next to the location in question
  3. Scroll down and tap on the device
  4. Screenshot (or highlight and copy/paste) the capabilities section and attributes + values section

That should only happen if the reported thermostat setpoint is < 50* or is already reporting a non integer value.

That usually would happen if the device does not report the Thermostat Heating Setpoint capability.

Even when set at say 53, it still goes in half deg increments.

See screen grabs below. Let me know if the attribute images are too small. The Attribute Values list is a mile long.

Attribute Screenshots

Here the are the Attributes copied and pasted

Attribute Values
Attribute Timestamp Value
airConditionerMode 1/15/2024, 11:43:02 AM heat
availableModules 12/12/2023, 1:29:44 PM []
data 12/12/2023, 1:30:09 PM { payload: { x.com.samsung.da.filterStatus: normal, if: [ oic.if.baseline, oic.if.a ], x.com.samsung.da.filterCapacityUnit: Hour, rt: [ x.com.samsung.da.filter.airdust ], x.com.samsung.da.filterResetType: [ replaceable, washable ], x.com.samsung.da.filterDesiredUsage: 500, x.com.samsung.da.filterUsage: 0, x.com.samsung.da.filterCapacity: 500, x.com.samsung.da.filterUsageResolution: 1 } }
periodicSensingInterval
reportStateRealtimePeriod 12/12/2023, 1:29:44 PM disabled
dustFilterLastResetDate
maximumSetpoint 12/12/2023, 1:29:44 PM 86
dustFilterCapacity 12/12/2023, 1:29:44 PM 500
dustLevel
energyType 12/12/2023, 1:29:44 PM 1
serialNumber
remoteControlEnabled
deodorFilterLastResetDate
fanMode 12/16/2023, 4:28:10 PM auto
targetModule
serialNumberExtra
volume 12/12/2023, 1:29:44 PM 100
doNotDisturb
electricHepaFilterUsage
micomAssayCode
deodorFilterUsageStep
veryFineDustFilterUsageStep
pi 12/12/2023, 1:29:44 PM 64cd4aea-71a1-fa61-f88c-a022be42d396
airConditionerOdorControllerState
mnhw 12/12/2023, 1:36:05 PM ARTIK051
deodorFilterCapacity
coolingSetpoint 1/16/2024, 8:58:48 AM 53
autoCleaningMode 12/12/2023, 1:29:44 PM off
lastUpdatedDate
endTime
n 12/12/2023, 1:42:31 PM Samsung Room A/C
mndt
odorLevel
coolingSetpointRange
electricHepaFilterCapacity
ocfResourceUpdatedTime
temperatureRange
versionNumber 12/12/2023, 1:29:44 PM 22100101
acOptionalMode 12/12/2023, 1:33:21 PM off
lastSensingLevel
minimumSetpoint 1/15/2024, 11:43:02 AM 47
lockState 12/12/2023, 1:29:44 PM unlocked
deodorFilterResetType
deodorFilterUsage
veryFineDustFilterStatus
veryFineDustFilterResetType
veryFineDustFilterLastResetDate
newVersionAvailable 12/12/2023, 1:29:44 PM FALSE
powerConsumption 12/12/2023, 1:51:11 PM { powerEnergy: 0.9700999975204468, start: 2023-12-12T19:51:02Z, power: 0, energy: 744, persistedEnergy: 744, energySaved: 0, end: 2023-12-12T19:51:11Z, deltaEnergy: 8 }
switch 1/7/2024, 10:18:09 AM on
supportedAcFanModes 12/12/2023, 1:29:44 PM [ auto, low, medium, high, turbo ]
energySavingSupport 12/12/2023, 1:29:44 PM FALSE
drlcStatus 12/12/2023, 1:29:44 PM { drlcLevel: -1, start: 1970-01-01T00:00:00Z, duration: 0, drlcType: 1, override: false }
mnml 12/12/2023, 1:29:44 PM http://www.samsung.com
disabledCapabilities 12/18/2023, 3:21:35 AM [ remoteControlStatus, odorSensor, relativeHumidityMeasurement, custom.dustFilter, custom.deodorFilter, custom.electricHepaFilter, custom.deviceReportStateConfiguration, custom.periodicSensing, custom.doNotDisturbMode, audioVolume, custom.autoCleaningMode, custom.airConditionerTropicalNightMode, custom.airConditionerOdorController, samsungce.individualControlLock, powerConsumptionReport, demandResponseLoadControl ]
lastSensingTime
spiMode 12/12/2023, 1:29:44 PM off
mnmo 12/12/2023, 1:29:44 PM ARTIK051_PRAC_20K|10217841|60010535001411010200001000000000
alarmThreshold 12/12/2023, 1:29:44 PM 500
mnmn 12/12/2023, 1:29:44 PM Samsung Electronics
airConditionerOdorControllerProgress
airQuality
supportedAutomaticExecutionMode
electricHepaFilterUsageStep
temperature 1/16/2024, 9:07:55 AM 55
dmv 12/12/2023, 1:42:37 PM 1.2.1
automaticExecutionSetting
supportedActions 12/12/2023, 1:29:44 PM [ start ]
supportedAcModes 12/12/2023, 1:29:44 PM [ cool, dry, wind, auto, heat ]
dustFilterStatus 12/12/2023, 1:29:44 PM normal
startTime
icv 12/12/2023, 1:29:44 PM core.1.1.0
ocfResourceVersion
veryFineDustLevel
reportStatePeriod 12/12/2023, 1:29:44 PM enabled
vid 12/12/2023, 1:29:44 PM DA-AC-RAC-000003
result
periodicSensingStatus
progress
otnDUID 12/12/2023, 1:29:44 PM XTCFUCFWKXMWY
energySavingLevel
electricHepaFilterLastResetDate
deodorFilterStatus
mnpv 12/12/2023, 1:36:05 PM DAWIT 2.0
mnsl 12/12/2023, 1:36:06 PM http://www.samsung.com
errors 12/12/2023, 1:29:44 PM []
periodicSensing
description
electricHepaFilterResetType
veryFineDustFilterCapacity
mnos 12/12/2023, 1:36:05 PM TizenRT 1.0 + IPv6
status 12/12/2023, 1:29:44 PM ready
electricHepaFilterStatus
supportedEnergySavingLevels
dustFilterResetType 12/12/2023, 1:29:44 PM [ replaceable, washable ]
acTropicalNightModeLevel 12/12/2023, 1:29:44 PM 0
humidity 1/16/2024, 7:46:46 AM 21
reportStateRealtime 1/15/2024, 11:42:24 AM { duration: 10, state: enabled, unit: minute }
energySavingOperationSupport 12/12/2023, 1:36:06 PM FALSE
energySavingOperation
drMaxDuration 12/12/2023, 1:36:06 PM 1440
dustFilterUsageStep 12/12/2023, 1:29:44 PM 1
modelClassificationCode
operatingState
dustFilterUsage 1/15/2024, 4:55:36 PM 41
fanOscillationMode 1/15/2024, 5:31:00 PM fixed
mnfv 12/12/2023, 1:42:31 PM ARTIK051_PRAC_20K_11230313
veryFineDustFilterUsage
automaticExecutionMode
supportedAlarmThresholds 12/12/2023, 1:29:44 PM [ 180, 300, 500, 700 ]
fineDustLevel
supportedFanOscillationModes 12/12/2023, 1:29:44 PM [ fixed, all, vertical, horizontal ]
di 12/12/2023, 1:29:44 PM 64cd4aea-71a1-fa61-f88c-a022be42d396
modelName
binaryId 1/13/2024, 9:07:30 PM ARTIK051_PRAC_20K
supportedAutomaticExecutionSetting
st
supportedAcOptionalMode 12/12/2023, 1:36:07 PM [ off, sleep, quiet, smart, speed, windFree, windFreeSleep ]

If via the remote control, I put the device into “auto” or “cool” mode, the up down arrows go by single degrees and do send the commands to the air conditioner. It is only when I’m in heat mode that it does the half degree issue…so probably related to the fact that I don’t have the option to select heat mode in sharp tools?

That is an unfortunate implementation.

It implements the Thermostat Cooling Setpoint which is why you are seeing the cooling mode, but it does not implement the Thermostat Heating Setpoint which is why you aren’t seeing the heating mode as an option.

It looks like they’re using a substandard implementation that defines custom UI controls to expose the heat mode within the mobile app rather than using a proper implementation which uses the proper Thermostat Heating Setpoint capability so it uses the default / automatic UI controls.

It’s further evidenced in their heavy use of custom.* capabilities especially for things that should use standard capabilities instead: custom.airConditionerOptionalMode, custom.thermostatSetpointControl, etc.

Let me see what options we have here. It looks like there’s a supportedAcModes attribute that we might be able to use as a fallback to detect that the heat mode is supported.

The bigger problem comes with setting the heating setpoint. Since the device doesn’t have a Thermostat Heating Setpoint capability, it’s likely also missing the setHeatingSetpoint() command.

I suspect that the heat being adjusted in 0.5 degree increments is related to this substandard implementation as it’s looking for the heatingSetpoint and it doesn’t exist on this device.

Can you send a note to support@sharptools.io with the Doc ID of the device so I can take a closer look?

With the heat…when I go into “adjust” section, those up down arrows do properly do single degree changes and the air conditioner DOES respond. It is only when adjusting the heat temp on the main tile that it does the half degree.

Its a friggin samsung…how odd that it sucks at integration. I’d have thought that they would have made it awesomely integrated.

Having said that, works flawless in smart things…figures.

I’m with you - it’s really frustrating. Unfortunately, it’s a common thing with a massive organization like Samsung.

Keep in mind that SmartThings was originally a startup focused on smart home automation and focused on things like lights, locks, etc. Samsung bought them out and the big money for Samsung is their appliance business. SmartThings enabled Samsung to simplify the 50+ apps and backend platforms they had at one point into a single app to control everything. You still have each division doing their own device integration in some cases and they end up getting away with substandard stuff like that.

I’ve seen similar substandard implementations from third-parties like Cielo and you can almost excuse it since that third-party likely integrates with lots of platforms (and of course expect that they would ultimately fix it). But yeah, it’s surprising when it’s a seemingly ‘first party’ integration that is substandard. :grimacing:

When you are in the modal, are you adjusting the “cooling” setpoint in that case though?

Since the thermostat doesn’t report the Thermostat Heating Setpoint capability or attribute, the modal shouldn’t be showing the heating setpoint nor the heating controls… so I would presume it’s just the cooling setpoint and cooling controls… and perhaps they are using the Cooling Setpoint as a proxy to actually set the Heating Setpoint.

Yes, in modal, I’m adjusting the “cooling” setpoint to actually adjust the heat level.

image

image