Three gaps reported against an ARTIK051_PRAC_20K WindFree unit vs. the SmartThings integration: 1. Missing WindFree/motion convenient-mode presets -- left alone here. PR #91 replaces climate.py's static _DEVICE_TO_PRESET table with a generic resolver that reads any preset code straight off the unit's own supportedModes, which already covers this (and more generically than a per-model dict would) -- adding one here would just conflict. 2. No horizontal oscillation: /wind/direction/vs/0's supportedModes includes Left_And_Right, which _DEVICE_TO_SWING had no mapping for. Add it to HA's standard 'horizontal' swing constant. 3. No standalone humidity/current-temperature sensors: the climate card already reads both internally, but nothing exposed them as entities for history/automations. Add CURRENT_TEMPERATURE (OCF /temperature/current/0) with a CURRENT_TEMPERATURE_VS vendor fallback (same match_fn-gated pair shape as common.py's POWER_GENERIC/ POWER_VS_FALLBACK), and a HUMIDITY sensor reading /humidity/vs/0's fivepercentHumidity field -- the only one of the three humidity-shaped fields across /humidity/0 and /humidity/vs/0 that isn't permanently stuck at 0 on every dump seen. Regenerates the five existing AC goldens (all pick up current_temperature_c; most pick up humidity) and adds a dedicated fixture from the issue's WindFree dump, whose /humidity/vs/0 actually has live fivepercentHumidity data.
380 lines
9.4 KiB
JSON
380 lines
9.4 KiB
JSON
{
|
|
"device0": [
|
|
{
|
|
"rt": [
|
|
"x.com.samsung.devcol",
|
|
"oic.wk.col"
|
|
],
|
|
"if": [
|
|
"oic.if.baseline",
|
|
"oic.if.ll",
|
|
"oic.if.b"
|
|
]
|
|
},
|
|
{
|
|
"href": "/alarms/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.items": [
|
|
{
|
|
"x.com.samsung.da.id": "0",
|
|
"x.com.samsung.da.description": "Alarm",
|
|
"x.com.samsung.da.alarmType": "Device",
|
|
"x.com.samsung.da.code": "ErrorCode_OFF",
|
|
"x.com.samsung.da.triggeredTime": "2026-07-25T08:19:03"
|
|
},
|
|
{
|
|
"x.com.samsung.da.id": "1",
|
|
"x.com.samsung.da.description": "Alarm",
|
|
"x.com.samsung.da.alarmType": "Device",
|
|
"x.com.samsung.da.code": "FilterAlarm_OFF",
|
|
"x.com.samsung.da.triggeredTime": "2026-07-25T08:19:03"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"href": "/configuration/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.region": "0000000000",
|
|
"x.com.samsung.da.airconOptionList": [
|
|
"SingleCommand_1",
|
|
"HOMECARE_WIZARD_V2",
|
|
"PRODUCT_GLOBAL",
|
|
"AI_RAC_GLOBAL_2.0",
|
|
"AI_2.0",
|
|
"Auto_To_AI",
|
|
"AI_Heat"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"href": "/diagnosis/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.diagnosisStart": "Ready"
|
|
}
|
|
},
|
|
{
|
|
"href": "/energy/consumption/0",
|
|
"rep": {
|
|
"power": 0.0
|
|
}
|
|
},
|
|
{
|
|
"href": "/energy/consumption/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.instantaneousPower": "0",
|
|
"x.com.samsung.da.cumulativePower": "320466",
|
|
"x.com.samsung.da.cumulativeUnit": "Wh",
|
|
"x.com.samsung.da.instantaneousPowerUnit": "W"
|
|
}
|
|
},
|
|
{
|
|
"href": "/file/information/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.timeoffset": "+00:00",
|
|
"x.com.samsung.supprtedtype": 1
|
|
}
|
|
},
|
|
{
|
|
"href": "/filter/airdustfilter/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.filterUsage": "41",
|
|
"x.com.samsung.da.filterUsageResolution": "1",
|
|
"x.com.samsung.da.filterDesiredUsage": "500",
|
|
"x.com.samsung.da.filterStatus": "normal",
|
|
"x.com.samsung.da.filterCapacity": "500",
|
|
"x.com.samsung.da.filterCapacityUnit": "Hour",
|
|
"x.com.samsung.da.filterResetType": [
|
|
"replaceable",
|
|
"washable"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"href": "/humidity/0",
|
|
"rep": {
|
|
"humidity": 0
|
|
}
|
|
},
|
|
{
|
|
"href": "/humidity/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.humidity": "0",
|
|
"x.com.samsung.da.fivepercentHumidity": "42"
|
|
}
|
|
},
|
|
{
|
|
"href": "/information/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.modelNum": "ARTIK051_PRAC_20K|10217841|60010519001411010200001000000000",
|
|
"x.com.samsung.da.description": "ARTIK051_PRAC_20K",
|
|
"x.com.samsung.da.serialNum": "**REDACTED**",
|
|
"x.com.samsung.da.otnDUID": "**REDACTED**",
|
|
"x.com.samsung.da.serialNumOption": "**REDACTED**",
|
|
"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": "02181A230313",
|
|
"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,FFFFFFFF",
|
|
"x.com.samsung.da.newVersionAvailable": "0"
|
|
},
|
|
{
|
|
"x.com.samsung.da.id": "2",
|
|
"x.com.samsung.da.description": "Version",
|
|
"x.com.samsung.da.type": "Outdoor",
|
|
"x.com.samsung.da.number": "20091600,10000400"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"href": "/mode/convenient/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.modes": "Off",
|
|
"x.com.samsung.da.supportedModes": [
|
|
"Off",
|
|
"Sleep",
|
|
"Quiet",
|
|
"Smart",
|
|
"Speed",
|
|
"MotionIndirect",
|
|
"MotionDirect",
|
|
"Nano",
|
|
"NanoSleep"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"href": "/mode/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.supportedModes": [
|
|
"Cool",
|
|
"Dry",
|
|
"Wind",
|
|
"Auto",
|
|
"Heat"
|
|
],
|
|
"x.com.samsung.da.modes": [
|
|
"Dry"
|
|
],
|
|
"x.com.samsung.da.options": [
|
|
"Sleep_0",
|
|
"ArtificialWorking_Off",
|
|
"ComfortAICooling_Off",
|
|
"MotionState_Normal",
|
|
"AiTempChanged_Off",
|
|
"AiTemp_240",
|
|
"OutdoorTemp_87",
|
|
"CoolCapa_25",
|
|
"WarmCapa_32",
|
|
"Light_Off",
|
|
"Volume_100",
|
|
"MotionMode_Default",
|
|
"OptionCode_56376",
|
|
"ExtendOptionCode_781",
|
|
"RacInfo_None",
|
|
"UpdateAllow_NotAllowed",
|
|
"DurationOn_0",
|
|
"WelcomeCoolingState_Off"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"href": "/option/airpurify/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.modes": "Off",
|
|
"x.com.samsung.da.supportedModes": [
|
|
"On",
|
|
"Off"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"href": "/option/autoclean/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.status": "Stop",
|
|
"x.com.samsung.da.settingStatus": "On",
|
|
"x.com.samsung.da.progress": "0",
|
|
"x.com.samsung.da.supportedStatus": [
|
|
"Start",
|
|
"Stop"
|
|
],
|
|
"x.com.samsung.da.supportedSettingStatus": [
|
|
"On",
|
|
"Off"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"href": "/personality/presence/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.items": [
|
|
{
|
|
"x.com.samsung.da.id": "",
|
|
"x.com.samsung.da.deviceId": "**REDACTED**",
|
|
"x.com.samsung.da.value": ""
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"href": "/power/0",
|
|
"rep": {
|
|
"value": false
|
|
}
|
|
},
|
|
{
|
|
"href": "/power/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.power": "Off"
|
|
}
|
|
},
|
|
{
|
|
"href": "/realtimenotiforclient/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.timeforshortnoti": "0",
|
|
"x.com.samsung.da.longnotisubscription": "false",
|
|
"x.com.samsung.da.periodicnotisubscription": "true"
|
|
}
|
|
},
|
|
{
|
|
"href": "/sensors/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.items": [
|
|
{
|
|
"x.com.samsung.da.id": "0",
|
|
"x.com.samsung.da.description": "Sensor for CleanLevel",
|
|
"x.com.samsung.da.type": "CleanLevel",
|
|
"x.com.samsung.da.value": [
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"x.com.samsung.da.id": "1",
|
|
"x.com.samsung.da.description": "Sensor for Odor",
|
|
"x.com.samsung.da.type": "Odor",
|
|
"x.com.samsung.da.value": [
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"x.com.samsung.da.id": "2",
|
|
"x.com.samsung.da.description": "Sensor for Dust",
|
|
"x.com.samsung.da.type": "Dust",
|
|
"x.com.samsung.da.value": [
|
|
"0",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"x.com.samsung.da.id": "3",
|
|
"x.com.samsung.da.description": "Sensor for FineDust",
|
|
"x.com.samsung.da.type": "FineDust",
|
|
"x.com.samsung.da.value": [
|
|
"0",
|
|
"0"
|
|
]
|
|
},
|
|
{
|
|
"x.com.samsung.da.id": "4",
|
|
"x.com.samsung.da.description": "Sensor for SuperFineDust",
|
|
"x.com.samsung.da.type": "SuperFineDust",
|
|
"x.com.samsung.da.value": [
|
|
"0",
|
|
"0"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"href": "/temperature/control/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.increment": "1"
|
|
}
|
|
},
|
|
{
|
|
"href": "/temperature/current/0",
|
|
"rep": {
|
|
"range": [
|
|
16.0,
|
|
30.0
|
|
],
|
|
"units": "C",
|
|
"temperature": 27.0
|
|
}
|
|
},
|
|
{
|
|
"href": "/temperature/desired/0",
|
|
"rep": {
|
|
"range": [
|
|
16.0,
|
|
30.0
|
|
],
|
|
"units": "C",
|
|
"temperature": 26.0
|
|
}
|
|
},
|
|
{
|
|
"href": "/temperatures/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.items": [
|
|
{
|
|
"x.com.samsung.da.id": "0",
|
|
"x.com.samsung.da.description": "Temperature",
|
|
"x.com.samsung.da.desired": "26.0",
|
|
"x.com.samsung.da.current": "27.0",
|
|
"x.com.samsung.da.maximum": "30",
|
|
"x.com.samsung.da.minimum": "18",
|
|
"x.com.samsung.da.increment": "1.0",
|
|
"x.com.samsung.da.unit": "Celsius"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"href": "/timezone/vs/0",
|
|
"rep": {}
|
|
},
|
|
{
|
|
"href": "/wind/direction/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.modes": "Fix",
|
|
"x.com.samsung.da.supportedModes": [
|
|
"Fix",
|
|
"All",
|
|
"Up_And_Low",
|
|
"Left_And_Right"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"href": "/wind/strength/vs/0",
|
|
"rep": {
|
|
"x.com.samsung.da.modes": "0",
|
|
"x.com.samsung.da.supportedModes": [
|
|
"0",
|
|
"1",
|
|
"2",
|
|
"3",
|
|
"4"
|
|
],
|
|
"x.com.samsung.da.modesName": [
|
|
"Auto",
|
|
"Low",
|
|
"Mid",
|
|
"High",
|
|
"Turbo"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
} |