veista / smartthings

A fork of the Home Assistant SmartThings Integration. This adds better support for Samsung OCF Devices.
170 stars 40 forks source link

Smartthings offline device non reported in status #19

Open millallo opened 2 years ago

millallo commented 2 years ago

Hi asked this question in the HA core before knowing this awesome fork. https://github.com/home-assistant/core/issues/72148

If remove the AC power to the Outdoor Condensing Unit, all 3 splits go off too but while in the smartthings portal they result offline, in HA don't:

Screenshot 2022-05-20 at 12 56 38 169247094-b8c48730-40aa-4fc6-8fee-31f87fd06846

This is also the output of smartthings-cli:

smartthings devices:health -t xxx
┌───┬───────────────────────┬────────────────────┬──────┬──────────────────────────────────────┐
│ # │ Label                 │ Name               │ Type │ Device Id                            │
├───┼───────────────────────┼────────────────────┼──────┼──────────────────────────────────────┤
│ 1 │ Climatizzatore Camera │ [room a/c] Samsung │ OCF  │ xxx │
│ 2 │ Climatizzatore Elisa  │ [room a/c] Samsung │ OCF  │ xxx │
│ 3 │ Climatizzatore Salone │ [room a/c] Samsung │ OCF  │ xxx │
└───┴───────────────────────┴────────────────────┴──────┴──────────────────────────────────────┘

┌───────────────────┬──────────────────────────────────────┐
│ Device Id         │ xxx │
│ State             │ OFFLINE                              │
│ Last Updated Date │ 2022-05-20T09:07:30.684Z             │
└───────────────────┴──────────────────────────────────────┘
veista commented 2 years ago

I'm not sure what you are asking. You would like them to state offline in ha?

millallo commented 2 years ago

The current "off" state makes me think I can turn it on, but I can't do it because the device is not communicating with HA (it is out of power). So I think (maybe I'm wrong) that "offline" speaks better and is different from the "off" state

veista commented 2 years ago

If you follow the instructions on issue #6 what does the device print out?

millallo commented 2 years ago

Do you mean these?

Screenshot 2022-05-20 at 14 04 36
# smartthings devices:status -t xxx
┌───┬───────────────────────┬────────────────────┬──────┬──────────────────────────────────────┐
│ # │ Label                 │ Name               │ Type │ Device Id                            │
├───┼───────────────────────┼────────────────────┼──────┼──────────────────────────────────────┤
│ 1 │ Climatizzatore Camera │ [room a/c] Samsung │ OCF  │ xxx │
│ 2 │ Climatizzatore Elisa  │ [room a/c] Samsung │ OCF  │ xxx │
│ 3 │ Climatizzatore Salone │ [room a/c] Samsung │ OCF  │ xxx │
└───┴───────────────────────┴────────────────────┴──────┴──────────────────────────────────────┘
? Select a device. 1
┌────────────────────────────────────────┬──────────────────────────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Capability                             │ Attribute                            │ Value                                                                                           │
├────────────────────────────────────────┼──────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────┤
│ relativeHumidityMeasurement            │ humidity                             │ 56 %                                                                                            │
│ custom.airConditionerOdorController    │ airConditionerOdorControllerProgress │                                                                                                 │
│ custom.airConditionerOdorController    │ airConditionerOdorControllerState    │                                                                                                 │
│ custom.thermostatSetpointControl       │ minimumSetpoint                      │ 16 C                                                                                            │
│ custom.thermostatSetpointControl       │ maximumSetpoint                      │ 30 C                                                                                            │
│ airConditionerMode                     │ supportedAcModes                     │ ["cool","dry","wind","auto","heat"]                                                             │
│ airConditionerMode                     │ airConditionerMode                   │ "auto"                                                                                          │
│ custom.spiMode                         │ spiMode                              │ "off"                                                                                           │
│ airQualitySensor                       │ airQuality                           │                                                                                                 │
│ custom.airConditionerOptionalMode      │ supportedAcOptionalMode              │ ["off","sleep","speed","windFree","windFreeSleep"]                                              │
│ custom.airConditionerOptionalMode      │ acOptionalMode                       │ "off"                                                                                           │
│ switch                                 │ switch                               │ "off"                                                                                           │
│ custom.airConditionerTropicalNightMode │ acTropicalNightModeLevel             │ 0                                                                                               │
│ ocf                                    │ st                                   │                                                                                                 │
│ ocf                                    │ mndt                                 │                                                                                                 │
│ ocf                                    │ mnfv                                 │ "0.1.0"                                                                                         │
│ ocf                                    │ mnhw                                 │ "1.0"                                                                                           │
│ ocf                                    │ di                                   │ "xxx"                                                          │
│ ocf                                    │ mnsl                                 │                                                                                                 │
│ ocf                                    │ dmv                                  │ "res.1.1.0,sh.1.1.0"                                                                            │
│ ocf                                    │ n                                    │ "[room a/c] Samsung"                                                                            │
│ ocf                                    │ mnmo                                 │ "ARTIK051_PRAC_20K|xxx|xxx"                                   │
│ ocf                                    │ vid                                  │ "DA-AC-RAC-000003"                                                                              │
│ ocf                                    │ mnmn                                 │ "Samsung Electronics"                                                                           │
│ ocf                                    │ mnml                                 │ "http://www.samsung.com"                                                                        │
│ ocf                                    │ mnpv                                 │ "xxx"                                                                               │
│ ocf                                    │ mnos                                 │ "TizenRT2.0"                                                                                    │
│ ocf                                    │ pi                                   │ "xxx"                                                          │
│ ocf                                    │ icv                                  │ "core.1.1.0"                                                                                    │
│ airConditionerFanMode                  │ fanMode                              │ "auto"                                                                                          │
│ airConditionerFanMode                  │ supportedAcFanModes                  │ ["auto","low","medium","high","turbo"]                                                          │
│ samsungce.dustFilterAlarm              │ alarmThreshold                       │ 500 Hour                                                                                        │
│ samsungce.dustFilterAlarm              │ supportedAlarmThresholds             │ [180,300,500,700] Hour                                                                          │
│ custom.electricHepaFilter              │ electricHepaFilterCapacity           │                                                                                                 │
│ custom.electricHepaFilter              │ electricHepaFilterUsageStep          │                                                                                                 │
│ custom.electricHepaFilter              │ electricHepaFilterLastResetDate      │                                                                                                 │
│ custom.electricHepaFilter              │ electricHepaFilterStatus             │                                                                                                 │
│ custom.electricHepaFilter              │ electricHepaFilterUsage              │                                                                                                 │
│ custom.electricHepaFilter              │ electricHepaFilterResetType          │                                                                                                 │
│ custom.disabledCapabilities            │ disabledCapabilities                 │ [                                                                                               │
│                                        │                                      │   "airQualitySensor",                                                                           │
│                                        │                                      │   "odorSensor",                                                                                 │
│                                        │                                      │   "dustSensor",                                                                                 │
│                                        │                                      │   "veryFineDustSensor",                                                                         │
│                                        │                                      │   "custom.spiMode",                                                                             │
│                                        │                                      │   "remoteControlStatus",                                                                        │
│                                        │                                      │   "custom.airConditionerOdorController",                                                        │
│                                        │                                      │   "demandResponseLoadControl",                                                                  │
│                                        │                                      │   "custom.deodorFilter",                                                                        │
│                                        │                                      │   "custom.hepaFilter",                                                                          │
│                                        │                                      │   "custom.electricHepaFilter",                                                                  │
│                                        │                                      │   "custom.periodicSensing",                                                                     │
│                                        │                                      │   "custom.doNotDisturbMode",                                                                    │
│                                        │                                      │   "samsungce.individualControlLock",                                                            │
│                                        │                                      │   "powerConsumptionReport"                                                                      │
│                                        │                                      │ ]                                                                                               │
│ custom.ocfResourceVersion              │ ocfResourceUpdatedTime               │                                                                                                 │
│ custom.ocfResourceVersion              │ ocfResourceVersion                   │                                                                                                 │
│ samsungce.driverVersion                │ versionNumber                        │ 21123001                                                                                        │
│ fanOscillationMode                     │ supportedFanOscillationModes         │                                                                                                 │
│ fanOscillationMode                     │ fanOscillationMode                   │ "fixed"                                                                                         │
│ temperatureMeasurement                 │ temperature                          │ 23 C                                                                                            │
│ dustSensor                             │ dustLevel                            │                                                                                                 │
│ dustSensor                             │ fineDustLevel                        │                                                                                                 │
│ custom.deviceReportStateConfiguration  │ reportStateRealtimePeriod            │ "disabled"                                                                                      │
│ custom.deviceReportStateConfiguration  │ reportStateRealtime                  │ {"state":"disabled"}                                                                            │
│ custom.deviceReportStateConfiguration  │ reportStatePeriod                    │ "enabled"                                                                                       │
│ custom.periodicSensing                 │ automaticExecutionSetting            │ "NotSupported"                                                                                  │
│ custom.periodicSensing                 │ automaticExecutionMode               │ "NotSupported"                                                                                  │
│ custom.periodicSensing                 │ supportedAutomaticExecutionSetting   │ ["NotSupported"]                                                                                │
│ custom.periodicSensing                 │ supportedAutomaticExecutionMode      │ ["NotSupported"]                                                                                │
│ custom.periodicSensing                 │ periodicSensing                      │                                                                                                 │
│ custom.periodicSensing                 │ periodicSensingInterval              │ 600                                                                                             │
│ custom.periodicSensing                 │ lastSensingTime                      │                                                                                                 │
│ custom.periodicSensing                 │ lastSensingLevel                     │ ""                                                                                              │
│ custom.periodicSensing                 │ periodicSensingStatus                │ "nonprocessing"                                                                                 │
│ thermostatCoolingSetpoint              │ coolingSetpoint                      │ 23 C                                                                                            │
│ demandResponseLoadControl              │ drlcStatus                           │ {                                                                                               │
│                                        │                                      │   "drlcType": 1,                                                                                │
│                                        │                                      │   "drlcLevel": -1,                                                                              │
│                                        │                                      │   "start": "1970-01-01T00:00:00Z",                                                              │
│                                        │                                      │   "duration": 0,                                                                                │
│                                        │                                      │   "override": false                                                                             │
│                                        │                                      │ }                                                                                               │
│ audioVolume                            │ volume                               │ 100 %                                                                                           │
│ powerConsumptionReport                 │ powerConsumption                     │                                                                                                 │
│ custom.autoCleaningMode                │ autoCleaningMode                     │ "off"                                                                                           │
│ samsungce.individualControlLock        │ lockState                            │                                                                                                 │
│ execute                                │ data                                 │ {                                                                                               │
│                                        │                                      │   "payload": {                                                                                  │
│                                        │                                      │     "rt": [                                                                                     │
│                                        │                                      │       "x.com.samsung.da.information"                                                            │
│                                        │                                      │     ],                                                                                          │
│                                        │                                      │     "if": [                                                                                     │
│                                        │                                      │       "oic.if.baseline",                                                                        │
│                                        │                                      │       "oic.if.a"                                                                                │
│                                        │                                      │     ],                                                                                          │
│                                        │                                      │     "x.com.samsung.da.modelNum": "ARTIK051_PRAC_20K|xxx|xxxx", │
│                                        │                                      │     "x.com.samsung.da.description": "ARTIK051_PRAC_20K",                                        │
│                                        │                                      │     "x.com.samsung.da.serialNum": "xxx",                                            │
│                                        │                                      │     "x.com.samsung.da.otnDUID": "xxx",                                                │
│                                        │                                      │     "x.com.samsung.da.serialNumOption": "xxx",                                      │
│                                        │                                      │     "x.com.samsung.da.items": [                                                                 │
│                                        │                                      │       {                                                                                         │
│                                        │                                      │         "x.com.samsung.da.id": "0",                                                             │
│                                        │                                      │         "x.com.samsung.da.description": "Version",                                              │
│                                        │                                      │         "x.com.samsung.da.type": "Software",                                                    │
│                                        │                                      │         "x.com.samsung.da.number": "xxx",                                              │
│                                        │                                      │         "x.com.samsung.da.newVersionAvailable": "0"                                             │
│                                        │                                      │       },                                                                                        │
│                                        │                                      │       {                                                                                         │
│                                        │                                      │         "x.com.samsung.da.id": "1",                                                             │
│                                        │                                      │         "x.com.samsung.da.description": "Version",                                              │
│                                        │                                      │         "x.com.samsung.da.type": "Firmware",                                                    │
│                                        │                                      │         "x.com.samsung.da.number": "20082000",                                                  │
│                                        │                                      │         "x.com.samsung.da.newVersionAvailable": "0"                                             │
│                                        │                                      │       },                                                                                        │
│                                        │                                      │       {                                                                                         │
│                                        │                                      │         "x.com.samsung.da.id": "2",                                                             │
│                                        │                                      │         "x.com.samsung.da.description": "Version",                                              │
│                                        │                                      │         "x.com.samsung.da.type": "Firmware",                                                    │
│                                        │                                      │         "x.com.samsung.da.number": "19111300,10000100",                                         │
│                                        │                                      │         "x.com.samsung.da.newVersionAvailable": "0"                                             │
│                                        │                                      │       }                                                                                         │
│                                        │                                      │     ]                                                                                           │
│                                        │                                      │   }                                                                                             │
│                                        │                                      │ }                                                                                               │
│ custom.dustFilter                      │ dustFilterUsageStep                  │ 1                                                                                               │
│ custom.dustFilter                      │ dustFilterUsage                      │ 0                                                                                               │
│ custom.dustFilter                      │ dustFilterLastResetDate              │                                                                                                 │
│ custom.dustFilter                      │ dustFilterStatus                     │ "normal"                                                                                        │
│ custom.dustFilter                      │ dustFilterCapacity                   │ 500 Hour                                                                                        │
│ custom.dustFilter                      │ dustFilterResetType                  │ ["replaceable","washable"]                                                                      │
│ odorSensor                             │ odorLevel                            │                                                                                                 │
│ remoteControlStatus                    │ remoteControlEnabled                 │                                                                                                 │
│ custom.deodorFilter                    │ deodorFilterLastResetDate            │                                                                                                 │
│ custom.deodorFilter                    │ deodorFilterCapacity                 │                                                                                                 │
│ custom.deodorFilter                    │ deodorFilterStatus                   │                                                                                                 │
│ custom.deodorFilter                    │ deodorFilterResetType                │                                                                                                 │
│ custom.deodorFilter                    │ deodorFilterUsage                    │                                                                                                 │
│ custom.deodorFilter                    │ deodorFilterUsageStep                │                                                                                                 │
│ custom.energyType                      │ energyType                           │ "1.0"                                                                                           │
│ custom.energyType                      │ energySavingSupport                  │ false                                                                                           │
│ custom.energyType                      │ drMaxDuration                        │ 1440 min                                                                                        │
│ custom.energyType                      │ energySavingOperation                │                                                                                                 │
│ custom.energyType                      │ energySavingOperationSupport         │ false                                                                                           │
│ samsungce.softwareUpdate               │ otnDUID                              │ "xxx"                                                                                 │
│ samsungce.softwareUpdate               │ availableModules                     │ []                                                                                              │
│ samsungce.softwareUpdate               │ newVersionAvailable                  │ false                                                                                           │
│ veryFineDustSensor                     │ veryFineDustLevel                    │                                                                                                 │
│ custom.veryFineDustFilter              │ veryFineDustFilterStatus             │                                                                                                 │
│ custom.veryFineDustFilter              │ veryFineDustFilterResetType          │                                                                                                 │
│ custom.veryFineDustFilter              │ veryFineDustFilterUsage              │                                                                                                 │
│ custom.veryFineDustFilter              │ veryFineDustFilterLastResetDate      │                                                                                                 │
│ custom.veryFineDustFilter              │ veryFineDustFilterUsageStep          │                                                                                                 │
│ custom.veryFineDustFilter              │ veryFineDustFilterCapacity           │                                                                                                 │
│ custom.doNotDisturbMode                │ doNotDisturb                         │ "off"                                                                                           │
│ custom.doNotDisturbMode                │ startTime                            │ "0000"                                                                                          │
│ custom.doNotDisturbMode                │ endTime                              │ "0000"                                                                                          │
└────────────────────────────────────────┴──────────────────────────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────┘
veista commented 2 years ago

Yes. I think that the data of Offline is not available in the api. I would have to check, but even if it was should all the entities go unavailable?

millallo commented 2 years ago

good question, I think all entities should, but you have more experience than me. For example, this is how the WLED integration shows an unavailable device:

Screenshot 2022-05-20 at 15 46 14
veista commented 2 years ago

I will take this into consideration if it is possible.

chrismcneil commented 1 year ago

If this is possible would love it, I have door sensors that when the battery dies just stop reporting in but continue to look fine in HA. In the smartthings app they show as Offline.