Home Assistant Community

Support for Samsung Family Hub Refrigerator in the SmartThings integration

#1

The Samsung Family Hub refrigerator (RF28M9580) is detected by the new SmartThings integration, but it only currently shows these three sensors in HA 0.90.2:

  • binary_sensor.refrigerator_family_hub_contact
  • binary_sensor.refrigerator_family_hub_filterstatus
  • sensor.refrigerator_family_hub_temperature_measurement

It would be great if we could enhance the SmartThings integration to fully support all of the sensors it exposes. Looking at the device in the web IDE, it consists of a primary device and three child devices. Most of the properties of the primary device aren’t included in the HA integration, and neither are the child devices that provide info for each of the refrigerator’s three separate compartments (4-door Flex layout).

  • Samsung OCF Refrigerator (primary device)

    • temperature: 37 F
    • contact: closed
    • rapidCooling: false
    • rapidFreezing: false
    • defrost: off
    • mode: Freezer (this is the flex compartment mode)
    • icemaker: on
    • misc other properties with string values (n, icv, dmv, di, pi, mnmn, mnml, mnmo, mnpv, mnos, mnhw, mnfv, vid)
  • Samsung OCF Refrigerator Door (child 1: Refrigerator Family Hub CV Room)

    • contact: closed
  • Samsung OCF Refrigerator Compartment (child 2: Refrigerator Family Hub Cooler)

    • temperature: 37 F
    • contact: closed
    • coolingSetpoint: 37 F
  • Samsung OCF Refrigerator Compartment (child 3: Refrigerator Family Hub Freezer)

    • temperature: 0 F
    • contact: closed
    • coolingSetpoint: 0 F

I’m happy to provide any additional detail that would be beneficial to supporting the device.

Thanks!

#2

I think it should be possible to add the missing sensors… the child devices may be a larger change. Let’s start with getting some additional info. Can you run these commands and send me the output?

curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://api.smartthings.com/v1/devices/DEVICE_ID

curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://api.smartthings.com/v1/devices/DEVICE_ID/status
  • YOUR_ACCESS_TOKEN is the personal access token created for the integration.
  • DEVICE_ID is the GUID in the URL when you’re viewing the device in the SmartThings IDE (where those screen shots came from above). For example, when viewing the device, the URL looks something like: https://graph.api.smartthings.com/device/show/80e27aa1-8939-4a71-b6db-2510f7b2ace7. The Device ID is the part after /show/ in this case 80e27aa1-8939-4a71-b6db-2510f7b2ace.
  • If these show up as discrete devices in the IDE, run the commands for each ID and send me the output.
#3

It looks like everything for the primary and child sensors is available in the single status call. As you mentioned in the original issue I filed, the status for all three child devices comes back empty.

Cooler is the primary refrigerated compartment, freezer is the bottom left freezer-only compartment, and cvroom is the “flexzone” compartment that can be either freezer or refrigerator.

DEVICE INFO

{
"deviceId": "********-****-****-****-************",
"name": "[refrigerator] Samsung (LCD)",
"label": "Refrigerator Family Hub",
"locationId": "********-****-****-****-************",
"roomId": "********-****-****-****-************",
"deviceTypeId": "5ce8f920-4075-4a14-b513-497b12d85f10",
"deviceTypeName": "Samsung OCF Refrigerator",
"deviceNetworkType": "UNKNOWN",
"components": [
    {
        "id": "cooler",
        "capabilities": [
            {
                "id": "temperatureMeasurement",
                "version": 1
            },
            {
                "id": "contactSensor",
                "version": 1
            },
            {
                "id": "sensor",
                "version": 1
            },
            {
                "id": "thermostatCoolingSetpoint",
                "version": 1
            }
        ]
    },
    {
        "id": "cvroom",
        "capabilities": [
            {
                "id": "contactSensor",
                "version": 1
            },
            {
                "id": "sensor",
                "version": 1
            }
        ]
    },
    {
        "id": "freezer",
        "capabilities": [
            {
                "id": "temperatureMeasurement",
                "version": 1
            },
            {
                "id": "contactSensor",
                "version": 1
            },
            {
                "id": "sensor",
                "version": 1
            },
            {
                "id": "thermostatCoolingSetpoint",
                "version": 1
            }
        ]
    },
    {
        "id": "main",
        "capabilities": [
            {
                "id": "temperatureMeasurement",
                "version": 1
            },
            {
                "id": "contactSensor",
                "version": 1
            },
            {
                "id": "refresh",
                "version": 1
            },
            {
                "id": "ocf",
                "version": 1
            },
            {
                "id": "refrigeration",
                "version": 1
            },
            {
                "id": "filterStatus",
                "version": 1
            },
            {
                "id": "execute",
                "version": 1
            }
        ]
    }
],
"dth": {
    "deviceTypeId": "5ce8f920-4075-4a14-b513-497b12d85f10",
    "deviceTypeName": "Samsung OCF Refrigerator",
    "deviceNetworkType": "UNKNOWN",
    "completedSetup": true,
    "networkSecurityLevel": "UNKNOWN"
},
"type": "DTH"
}

DEVICE STATUS

{
"components": {
    "cooler": {
        "contactSensor": {
            "contact": {
                "value": "closed"
            }
        },
        "temperatureMeasurement": {
            "temperature": {
                "value": 37,
                "unit": "F"
            }
        },
        "sensor": {},
        "thermostatCoolingSetpoint": {
            "coolingSetpoint": {
                "value": 37,
                "unit": "F"
            }
        }
    },
    "freezer": {
        "contactSensor": {
            "contact": {
                "value": "closed"
            }
        },
        "temperatureMeasurement": {
            "temperature": {
                "value": 0,
                "unit": "F"
            }
        },
        "sensor": {},
        "thermostatCoolingSetpoint": {
            "coolingSetpoint": {
                "value": 0,
                "unit": "F"
            }
        }
    },
    "main": {
        "contactSensor": {
            "contact": {
                "value": "closed"
            }
        },
        "refrigeration": {
            "defrost": {
                "value": "off"
            },
            "rapidFreezing": {
                "value": "false"
            },
            "rapidCooling": {
                "value": "false"
            }
        },
        "ocf": {
            "st": {
                "value": null
            },
            "mnfv": {
                "value": "1.0"
            },
            "mndt": {
                "value": null
            },
            "mnhw": {
                "value": "1.0"
            },
            "di": {
                "value": "********-****-****-****-************"
            },
            "mnsl": {
                "value": null
            },
            "dmv": {
                "value": "res.1.1.0,sh.1.1.0"
            },
            "n": {
                "value": "[refrigerator] Samsung (LCD)"
            },
            "vid": {
                "value": "DA-REF-NORMAL-000001"
            },
            "mnmo": {
                "value": "18K_REF_LCD_FHUB3.0|00079341|00000350021024280102000000000000"
            },
            "mnmn": {
                "value": "Samsung Electronics"
            },
            "mnml": {
                "value": "http://www.samsung.com"
            },
            "mnpv": {
                "value": "2015050100079341"
            },
            "mnos": {
                "value": "Tizen(3.0)"
            },
            "pi": {
                "value": "********-****-****-****-************"
            },
            "icv": {
                "value": "core.1.1.0"
            }
        },
        "filterStatus": {
            "filterStatus": {
                "value": null
            }
        },
        "refresh": {},
        "temperatureMeasurement": {
            "temperature": {
                "value": 37,
                "unit": "F"
            }
        },
        "execute": {
            "data": {
                "value": {
                    "payload": {
                        "x.com.samsung.da.items": [
                            {
                                "x.com.samsung.da.id": "0",
                                "x.com.samsung.da.openState": "Close"
                            },
                            {
                                "x.com.samsung.da.id": "1",
                                "x.com.samsung.da.openState": "Close"
                            },
                            {
                                "x.com.samsung.da.id": "2",
                                "x.com.samsung.da.openState": "Close"
                            }
                        ],
                        "if": [
                            "oic.if.baseline",
                            "oic.if.s"
                        ],
                        "rt": [
                            "x.com.samsung.da.doors"
                        ]
                    }
                }
            }
        }
    },
    "cvroom": {
        "contactSensor": {
            "contact": {
                "value": "closed"
            }
        },
        "sensor": {}
    }
}
}
#4

So the child devices are definitely defined as components since they’re showing up under the definition of the main device. The only capability we’re not currently supporting is refrigeration. This isn’t documented publicly, so I don’t know what the definition of the attributes. Let me open ping someone at ST.

Supporting child devices will be a larger effort and not something we may want turned on for everything. Let me do some research and get back on that topic.

1 Like
#6

Do you guys know if there is currently a way to get the inside view of the fridge to show on HomeAssistant?

#7

Yes, familyhub is a supported platform for cameras.

-BK

1 Like