tonesto7 / homebridge-smartthings

SmartThings Homebridge Plugin
384 stars 770 forks source link

(BUG) Samsung OCF Air Conditioner not detected correctly #378

Open beagleboys opened 3 years ago

beagleboys commented 3 years ago

About Your Setup

Expected Behavior

Samsung OCF Air Conditioner detected as thermostats

Current Behavior

Samsung OCF Air Conditioner are detected as "others", in home bridge as switches

Steps to Reproduce (for bugs)

simply configure the plugin after setting up the devices in the smart app

Context

unable to control the heat/cool capabilities of the device and fan speeds

The issue seems to be related to line 187 of the SmartThings app: tstat: [ c:["Thermostat Operating State"], a: [r: ["thermostatOperatingState"], o: ["heatingSetpoint", "coolingSetpoint"]] ], that seems to be filtering out the capabilities expected by a thermostat, only the "Samsung OCF Air Conditioner " seems to sets those same capabilities differently:

`{
    "name": "guest Bedroom",
    "basename": "[room a/c] Samsung",
    "deviceid": "XXXXX",
    "status": "ONLINE",
    "manufacturer": "Unknown",
    "model": "Samsung OCF Air Conditioner",
    "deviceNetworkId": "XXXXXXX",
    "lastActivity": "2020-11-23T12:41:07+0000",
    "capabilities": [
        "Air Conditioner Fan Mode",
        "Air Conditioner Mode",
        "Air Quality Sensor",
        "Audio Volume",
        "Demand Response Load Control",
        "Dust Sensor",
        "Execute",
        "Fan Oscillation Mode",
        "Ocf",
        "Power Consumption Report",
        "Refresh",
        "Relative Humidity Measurement",
        "Remote Control Status",
        "Switch",
        "Temperature Measurement",
        "Thermostat Cooling Setpoint",
        "Very Fine Dust Sensor",
        "custom.airConditionerOdorController",
        "custom.airConditionerOptionalMode",
        "custom.airConditionerTropicalNightMode",
        "custom.autoCleaningMode",
        "custom.deodorFilter",
        "custom.deviceReportStateConfiguration",
        "custom.disabledCapabilities",
        "custom.disabledComponents",
        "custom.dustFilter",
        "custom.energyType",
        "custom.spiMode",
        "custom.thermostatSetpointControl",
        "samsungce.driverVersion"
    ],
    "commands": [
        "checkOcfHomeMultiModel",
        "checkShpHomeMultiModel",
        "checkVersion",
        "execute",
        "getComponentInfo",
        "getDeviceInfo",
        "getEnergyConsumptionReport",
        "getOicData",
        "lowerSetpoint",
        "off",
        "on",
        "overrideDrlcAction",
        "postOcfCommand",
        "printResources",
        "raiseSetpoint",
        "refresh",
        "requestDrlcAction",
        "resetDeodorFilter",
        "resetDustFilter",
        "setAcOptionalMode",
        "setAcTropicalNightModeLevel",
        "setAirConditionerMode",
        "setAirConditionerOdorControllerState",
        "setAutoCleaningMode",
        "setCoolingSetpoint",
        "setFanMode",
        "setFanOscillationMode",
        "setReportStatePeriod",
        "setReportStateRealtime",
        "setReportStateRealtimePeriod",
        "setSpiMode",
        "setVolume",
        "volumeDown",
        "volumeUp"
    ],
    "customflags": [

    ],
    "attributes": {
        "acOptionalMode": "off",
        "acTropicalNightModeLevel": 0,
        "airConditionerMode": "wind",
        "airConditionerOdorControllerProgress": null,
        "airConditionerOdorControllerState": null,
        "airQuality": null,
        "autoCleaningMode": "off",
        "coolingSetpoint": 24,
        "cumulativePower": null,
        "currentPower": null,
        "data": "{\"payload\":{\"rt\":[\"oic.r.mode\"],\"if\":[\"oic.if.baseline\",\"oic.if.a\"],\"supportedModes\":[\"Cool\",\"Dry\",\"Wind\",\"Auto\",\"Heat\",\"HOMECARE_WIZARD_V2\"],\"modes\":[\"Wind\"]}}",
        "deodorFilterCapacity": null,
        "deodorFilterResetType": null,
        "deodorFilterStatus": null,
        "deodorFilterUsage": null,
        "deodorFilterUsageStep": null,
        "deviceType": "OCF",
        "di": "d282566a-6c17-0a9a-4f19-cb91342aa73d",
        "disabledCapabilities": "[\"airFlowDirection\",\"dustSensor\",\"odorSensor\",\"airQualitySensor\",\"carbonDioxideMeasurement\",\"odorSensor\",\"veryFineDustSensor\",\"remoteControlStatus\",\"custom.airConditionerOdorController\",\"demandResponseLoadControl\",\"custom.dustFilter\",\"custom.deodorFilter\",\"custom.eletricHepaFilter\",\"custom.hepaFilter\",\"custom.veryFineDustFilter\",\"custom.periodicSensing\",\"custom.doNotDisturbMode\"]",
        "disabledComponents": "[\"1\"]",
        "dmv": "res.1.1.0,sh.1.1.0",
        "drlcStatus": "{\"duration\":0,\"drlcLevel\":-1,\"start\":\"1970-01-01T00:00:00Z\",\"override\":false}",
        "dustFilterCapacity": null,
        "dustFilterResetType": null,
        "dustFilterStatus": null,
        "dustFilterUsage": null,
        "dustFilterUsageStep": null,
        "dustLevel": null,
        "energyType": "1.0",
        "fanMode": "turbo",
        "fanOscillationMode": "all",
        "fineDustLevel": null,
        "humidity": 52,
        "icv": "core.1.1.0",
        "isSubDevice": "false",
        "maximumSetpoint": 30.0,
        "minimumSetpoint": 18.0,
        "mndt": null,
        "mnfv": "0.1.0",
        "mnhw": "1.0",
        "mnml": "http://www.samsung.com",
        "mnmn": "Samsung Electronics",
        "mnmo": "ARTIK051_KRAC_18K|10193441|60010119001111110200000000000000",
        "mnos": "TizenRT2.0",
        "mnpv": "0G88PDBMC00429P",
        "mnsl": null,
        "n": "[room a/c] Samsung",
        "persistedEnergyStates": null,
        "pi": "d282566a-6c17-0a9a-4f19-cb91342aa73d",
        "powerConsumption": "{\"start\":\"2020-07-07T10:05:24Z\",\"power\":0,\"end\":\"2020-07-07T11:05:26Z\"}",
        "remoteControlEnabled": null,
        "reportStatePeriod": null,
        "reportStateRealtime": null,
        "reportStateRealtimePeriod": null,
        "spiMode": "off",
        "st": null,
        "supportedAcFanModes": "[\"auto\",\"low\",\"medium\",\"high\",\"turbo\"]",
        "supportedAcModes": "[\"cool\",\"dry\",\"wind\",\"auto\",\"heat\"]",
        "supportedAcOptionalMode": "[\"off\",\"windFree\"]",
        "switch": "off",
        "temperature": 21,
        "versionNumber": 20082801,
        "veryFineDustLevel": null,
        "vid": "DA-AC-RAC-000001",
        "volume": 100
    },
    "eventHistory": [
        "Mon Nov 23 12:41:07 UTC 2020 | [switch] | (off)",
        "Mon Nov 23 12:41:04 UTC 2020 | [airConditionerMode] | (wind)",
        "Mon Nov 23 12:41:04 UTC 2020 | [switch] | (on)"
    ]
}`