ollo69 / ha-smartthinq-sensors

HomeAssistant custom integration for SmartThinQ LG devices configurable with Lovelace User Interface.
Apache License 2.0
1.12k stars 157 forks source link

[Feature Request]Dehumidifier supporting #148

Closed huhsian closed 2 years ago

huhsian commented 3 years ago

Hello?

Is any chance to add support for Dehumidifier? I have 2 humidifiers which are connected to ver 2 server. There are integrations in Samsung smartthings (LG connector : https://github.com/fison67/LG-Connector), but no support in HA.

Thank you, Best Regards

KTibow commented 3 years ago

You'll need to do some capturing of what the app sends to the server and vice versa.

GeneFung commented 3 years ago

I have a LG dehumidifiers too and am looking forward to it. Since I'm new to this, if you show me how to capture the package, I might help.

KTibow commented 3 years ago

I don't know myself; @ollo69 might know how though.

KTibow commented 3 years ago

Also, this may be a duplicate of #102.

ollo69 commented 3 years ago

How is a Humidifer managed in LG ThinQ app? It is like an AC device or something different?

huhsian commented 3 years ago

How is a Humidifer managed in LG ThinQ app? It is like an AC device or something different?

Quite similar, You can refer https://github.com/fison67/LG-Connector/blob/master/devicetypes/fison67/lg-dehumidifier-v2.src/lg-dehumidifier-v2.groovy It is for Samsung smartthings, but you can find required attributes.

Also I added my device information from LG-connector from below:

If you want, I can change Korean into English from below information.

=====================================================================

LG Connector

General

Home
Devices
Settings

Admin

Settings

Property
Language Pack

{

Info: {
    productType: "DeHumidifier",
    country: "KR",
    modelType: "",
    model: "Normal",
    modelName: "Full Model",
    networkType: "WIFI",
    version: "1.09",
    productCode: "LI03"
},
Module: {
    WPM: {
        GJM_CEN01_Main: "002",
        GJM_ENM01_Moment: "002",
        GJM_ENM02_Weekly: "002",
        GJM_ENM03_Monthly: "002",
        GJM_FOT01_Main: "002",
        GJM_REC_Main: "002",
        GJM_SCH01_Main: "002",
        GJM_SCH02_AddEdit: "002",
        GJM_SCH03_Delete: "002",
        GJM_SET01_Main: "002",
        GJM_SET02_PushList: "002",
        GJM_SET03_SensorMon: "002",
        GJM_SET04_EnergySet: "002",
        GJM_SET05_EnergyFee: "002",
        GJM_SET09_Region: "002",
        GJM_WEA01_RainRatio: "002",
        GJM_WEA01_WeeklyWeather: "002"
    },
    Menu: [
        "GJM_REC_Main",
        "GJM_SCH01_Main",
        "GJM_ENM02_Main",
        "GJM_SDS01_SdsMain",
        "GJM_SET01_Main"
    ]
},
Value: {
    support.airState.opMode: {
        data_type: "enum",
        value_mapping: {
            0: "@NON",
            18: "@AP_MAIN_MID_OPMODE_SMART_DEHUM_W",
            19: "@AP_MAIN_MID_OPMODE_FAST_DEHUM_W",
            20: "@AP_MAIN_MID_OPMODE_CILENT_DEHUM_W",
            21: "@AP_MAIN_MID_OPMODE_CONCENTRATION_DRY_W",
            22: "@AP_MAIN_MID_OPMODE_CLOTHING_DRY_W"
        }
    },
    support.airState.windStrength: {
        data_type: "enum",
        value_mapping: {
            0: "@NON",
            3: "@AP_MAIN_MID_WINDSTRENGTH_DHUM_LOW_W",
            7: "@AP_MAIN_MID_WINDSTRENGTH_DHUM_HIGH_W",
            13: "@AP_MAIN_MID_SINGLE_WINDSTRENGTH_LOW_W",
            17: "@AP_MAIN_MID_SINGLE_WINDSTRENGTH_HIGH_W"
        }
    },
    support.racMode: {
        data_type: "enum",
        value_mapping: {
            0: "@NON"
        }
    },
    support.reserve: {
        data_type: "enum",
        value_mapping: {
            0: "@NON",
            5: "@AP_OFF_ON_TIME",
            6: "@AP_SCHEDULER",
            9: "@AP_SIMPLE_TIMER_DHUM_8"
        }
    },
    support.light: {
        data_type: "enum",
        value_mapping: {
            0: "@NON"
        }
    },
    support.airState.tempState.unit: {
        data_type: "enum",
        value_mapping: {
            0: "@NON"
        }
    },
    support.tempCtrl: {
        data_type: "enum",
        value_mapping: {
            0: "@NON"
        }
    },
    support.airState.groupType: {
        data_type: "enum",
        value_mapping: {
            0: "@PAC",
            1: "@RAC",
            3: "@AWHP",
            4: "@HWANKI"
        }
    },
    support.accumMode: {
        data_type: "enum",
        value_mapping: {
            0: "@NOT_SUPPORT",
            1: "@SUPPORT"
        }
    },
    support.mFilter: {
        data_type: "enum",
        value_mapping: {
            0: "@NON"
        }
    },
    support.airPolution: {
        data_type: "enum",
        value_mapping: {
            0: "@NON",
            6: "@SENSOR_HUMID_SUPPORT",
            8: "@SENSOR_MONITORING_SET_SUPPORT"
        }
    },
    support.airState.notification.detailList: {
        data_type: "enum",
        value_mapping: {
            0: "@NON",
            1: "@MANSU",
            17: "@DHUM_HIGH_HUMIDITY"
        }
    },
    support.airState.filterMngState.desorption: {
        data_type: "enum",
        value_mapping: {
            0: "@NON"
        }
    },
    support.smartFunc: {
        data_type: "enum",
        value_mapping: {
            0: "@NON",
            1: "@SDS_WIFI",
            2: "@FOTA",
            3: "@SDS_BUZZER"
        }
    },
    support.humidity.control: {
        data_type: "enum",
        value_mapping: {
            0: "@NON",
            5: "@5_0UNIT_CONTROL"
        }
    },
    airState.operation: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@operation_off",
            1: "@operation_on"
        }
    },
    airState.opMode: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@AC_MAIN_OPERATION_MODE_COOL_W",
            1: "@AC_MAIN_OPERATION_MODE_DRY_W",
            2: "@AC_MAIN_OPERATION_MODE_FAN_W",
            3: "@AC_MAIN_OPERATION_MODE_AI_W",
            4: "@AC_MAIN_OPERATION_MODE_HEAT_W",
            5: "@AC_MAIN_OPERATION_MODE_AIRCLEAN_W",
            6: "@AC_MAIN_OPERATION_MODE_ACO_W",
            7: "@AC_MAIN_OPERATION_MODE_AROMA_W",
            8: "@AC_MAIN_OPERATION_MODE_ENERGY_SAVING_W",
            9: "@AP_MAIN_MID_OPMODE_CLEAN_W",
            10: "@AP_MAIN_MID_OPMODE_SLEEP_W",
            11: "@AP_MAIN_MID_OPMODE_SILENT_W",
            12: "@AP_MAIN_MID_OPMODE_HUMIDITY_W",
            13: "@AP_MAIN_MID_OPMODE_CIRCULATOR_CLEAN_W",
            14: "@AP_MAIN_MID_OPMODE_BABY_CARE_W",
            15: "@AP_MAIN_MID_OPMODE_DUAL_CLEAN_W",
            16: "@AP_MAIN_MID_OPMODE_AUTO_W",
            17: "@AP_MAIN_MID_OPMODE_SMART_DEHUM_W",
            18: "@AP_MAIN_MID_OPMODE_FAST_DEHUM_W",
            19: "@AP_MAIN_MID_OPMODE_CILENT_DEHUM_W",
            20: "@AP_MAIN_MID_OPMODE_CONCENTRATION_DRY_W",
            21: "@AP_MAIN_MID_OPMODE_CLOTHING_DRY_W",
            22: "@AP_MAIN_MID_OPMODE_IONIZER_W"
        },
        label: "운전 모드"
    },
    airState.windStrength: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@AP_MAIN_MID_WINDSTRENGTH_DHUM_LOWST_LOW_W",
            1: "@AP_MAIN_MID_WINDSTRENGTH_DHUM_LOWST_W",
            2: "@AP_MAIN_MID_WINDSTRENGTH_DHUM_LOW_W",
            3: "@AP_MAIN_MID_WINDSTRENGTH_DHUM_LOW_MID_W",
            4: "@AP_MAIN_MID_WINDSTRENGTH_DHUM_MID_W",
            5: "@AP_MAIN_MID_WINDSTRENGTH_DHUM_MID_HIGH_W",
            6: "@AP_MAIN_MID_WINDSTRENGTH_DHUM_HIGH_W",
            7: "@AP_MAIN_MID_WINDSTRENGTH_DHUM_POWER_W",
            8: "@AP_MAIN_MID_WINDSTRENGTH_DHUM_AUTO_W"
        },
        label: "바람 세기"
    },
    airState.tempState.current: {
        data_type: "range",
        default: "0",
        value_validation: {
            min: -40,
            max: 60,
            step: 1
        },
        label: "현재온도"
    },
    airState.reservation.sleepTime: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 420
        },
        label: "취침예약",
        _comment: "1시간일 경우 60으로 데이터 받음, 2,4,8,12 시간 적용필요함. "
    },
    airState.reservation.targetTimeToStop: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 1440
        },
        label: "꺼짐타이머",
        _comment: "1시간일 경우 60으로 데이터 받음, 1~12 or 1~8 시간 적용필요함. "
    },
    airState.reservation.absoluteStartTime: {
        value_validation: {
            min: 0,
            max: 2400
        },
        label: "켜짐예약(시각)",
        _comment: "오전 12시 30분은 0030, 오후12시30분은 1230 ,오후 4시30분은 1630 off는 0 ",
        data_type: "range"
    },
    airState.reservation.absoluteStopTime: {
        value_validation: {
            min: 0,
            max: 2400
        },
        label: "꺼짐예약(시각)",
        _comment: "AM 12: 30=> 0030, PM 12:30 =>1230 ,PM 04:30 => 1630 off => 0 ",
        data_type: "range"
    },
    airState.quality.PM1: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 1000,
            step: 1
        },
        label: "PM1"
    },
    airState.quality.PM2: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 1000,
            step: 1
        },
        label: "PM2"
    },
    airState.quality.PM10: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 1000,
            step: 1
        },
        label: "PM10"
    },
    airState.quality.odor: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 1000,
            step: 1
        },
        comment: "냄새"
    },
    airState.quality.overall: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 1000,
            step: 1
        }
    },
    airState.quality.sensorMon: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@AP_SETTING_SENSORMON_OPERATIONING_W",
            1: "@AP_SETTING_SENSORMON_ALWAYS_W"
        },
        label: "센서"
    },
    airState.quality.airMon: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@AP_SETTING_SENSORMON_OPERATIONING_W",
            1: "@AP_SETTING_SENSORMON_ALWAYS_W"
        }
    },
    airState.diagCode: {
        data_type: "enum",
        default: "00",
        value_mapping: {
            10: "@ERROR_FAN",
            00: "@NORMAL",
            09: "@ERROR_EEPROM"
        }
    },
    airState.groupType: {
        data_type: "enum",
        value_mapping: {
            12: "@grouptype_aircare"
        },
        label: "그룹타입 실질적으로 쓰지 않음"
    },
    airState.filterMngState.useTime: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0
        },
        label: "필터사용시간"
    },
    airState.filterMngState.maxTime: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0
        },
        label: "필터수명"
    },
    airState.filterMngState.type: {
        data_type: "enum",
        default: "1",
        value_mapping: {
            1: 1,
            2: 2
        },
        label: "필터 타입",
        comment: "1 : 교체필터 , 2: 무교체필터"
    },
    airState.filterMngState.desorption: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@AP_OFF_W",
            1: "@AP_POP_ALARM_FILTER_W",
            2: "@AP_POP_ALARM_COVER_W",
            3: "@AP_POP_ALARM_FILTER_COVER_W",
            4: "@AP_POP_ALARM_FILTER_W",
            5: "@AP_POP_ALARM_FILTER_W",
            6: "@AP_POP_ALARM_COVER_W",
            7: "@AP_POP_ALARM_FILTER_W",
            8: "@AP_POP_ALARM_FILTER_W",
            9: "@AP_POP_ALARM_FILTER_W",
            10: "@AP_POP_ALARM_FILTER_W",
            11: "@AP_POP_ALARM_FILTER_W",
            12: "@AP_POP_ALARM_FILTER_W",
            13: "@AP_POP_ALARM_FILTER_W",
            14: "@AP_POP_ALARM_FILTER_W",
            15: "@AP_POP_ALARM_FILTER_W",
            16: "@AP_POP_ALARM_FILTER_W",
            17: "@AP_POP_ALARM_FILTER_W",
            18: "@AP_POP_ALARM_FILTER_W",
            19: "@AP_POP_ALARM_FILTER_W",
            20: "@AP_POP_ALARM_FILTER_W",
            21: "@AP_POP_ALARM_FILTER_W",
            22: "@AP_POP_ALARM_FILTER_W",
            23: "@AP_POP_ALARM_FILTER_W",
            24: "@AP_POP_ALARM_FILTER_W",
            25: "@AP_POP_ALARM_FILTER_W",
            26: "@AP_POP_ALARM_FILTER_W",
            27: "@AP_POP_ALARM_FILTER_W",
            28: "@AP_POP_ALARM_FILTER_W",
            29: "@AP_POP_ALARM_FILTER_W",
            30: "@AP_POP_ALARM_FILTER_W",
            31: "@AP_POP_ALARM_FILTER_W"
        },
        comment: "탈착감지"
    },
    airState.lightingState.signal: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@AP_OFF_W",
            1: "@AP_ON_W"
        },
        label: "라이팅"
    },
    airState.energy.inCurrent: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 40
        }
    },
    airState.energy.outCurrent: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 40
        }
    },
    airState.energy.accumulated: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 40
        }
    },
    airState.energy.accumulatedTime: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 1440
        }
    },
    airState.energy.desired: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 280
        }
    },
    airState.energy.desiredDay: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 40
        }
    },
    airState.energy.desiredWeek: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 280
        }
    },
    airState.energy.desiredMonth: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 1250
        }
    },
    airState.circulate.strength: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@AP_MAIN_MID_CIRCULATORSTRENGTH_LOWST_LOW_W",
            1: "@AP_MAIN_MID_CIRCULATORSTRENGTH_LOWST_W",
            2: "@AP_MAIN_MID_CIRCULATORSTRENGTH_LOW_W",
            3: "@AP_MAIN_MID_CIRCULATORSTRENGTH_LOW_MID_W",
            4: "@AP_MAIN_MID_CIRCULATORSTRENGTH_MID_W",
            5: "@AP_MAIN_MID_CIRCULATORSTRENGTH_MID_HIGH_W",
            6: "@AP_MAIN_MID_CIRCULATORSTRENGTH_HIGH_W",
            7: "@AP_MAIN_MID_CIRCULATORSTRENGTH_POWER_W",
            8: "@AP_MAIN_MID_CIRCULATORSTRENGTH_AUTO_W",
            9: "@AP_MAIN_MID_CIRCULATORSTRENGTH_LINK_W"
        },
        label: "서큘레이터 세기"
    },
    airState.circulate.rotate: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@AP_OFF_W",
            1: "@AP_ON_W"
        },
        label: "순환 회전"
    },
    airState.miscFuncState.antiBugs: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@AP_OFF_W",
            1: "@AP_ON_W"
        },
        label: "모기퇴치"
    },
    airState.miscFuncState.airRemoval: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@AP_OFF_W",
            1: "@AP_ON_W"
        },
        label: "공기제균"
    },
    airState.miscFuncState.airFast: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@AP_OFF_W",
            1: "@AP_ON_W"
        },
        label: "쾌속모드"
    },
    airState.miscFuncState.airUVDisinfection: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@AP_OFF_W",
            1: "@AP_ON_W"
        },
        label: "UV살균"
    },
    airState.miscFuncState.watertankLight: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@AP_OFF_W",
            1: "@AP_ON_W"
        },
        label: "수조라이팅"
    },
    airState.miscFuncState.cleanDry: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@AP_OFF_W",
            1: "@AP_ON_W"
        },
        label: "위생건조"
    },
    airState.miscFuncState.extraOp: {
        data_type: "enum",
        default: "0",
        value_mapping: {
            0: "@AP_OFF_W",
            512: "@AP_EXTRAOP_DEFROST"
        },
        label: "비상운전"
    },
    airState.outside.quality.PM2: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 1000,
            step: 1
        }
    },
    airState.outside.humidity.current: {
        data_type: "range",
        default: "0",
        value_validation: {
            min: 0,
            max: 100,
            step: 1
        }
    },
    airState.outside.temperature.current: {
        data_type: "range",
        default: "0",
        value_validation: {
            min: -40,
            max: 60,
            step: 1
        },
        label: "실외온도"
    },
    airState.humidity.current: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 100,
            step: 1
        }
    },
    airState.humidity.desired: {
        data_type: "range",
        default: "30",
        value_validation: {
            min: 30,
            max: 70,
            step: 5
        },
        label: "##희망습도_기본"
    },
    support.airState.miscFuncSate.extraOp: {
        _comment: "FuncSync_비상운전기능 지원",
        data_type: "enum",
        value_mapping: {
            0: "@NOT_SUPPORT",
            1: "@COLLHEAT_EMERGENCY",
            2: "@CENTER_ALL_LOCK",
            3: "@CENTER_TEMP_LOCK",
            4: "@CENTER_WIND_LOCK",
            5: "@CENTER_OPMODE_LOCK",
            6: "@CENTER_TEMP_RANGE_LOCK",
            7: "@GROUP_CONTROL",
            8: "@DRYCONTACT_LOCK",
            9: "@CENTER_LOCK",
            10: "@DEFROST"
        }
    },
    airState.energy.totalCurrent: {
        data_type: "range",
        default: 0,
        value_validation: {
            min: 0,
            max: 40
        }
    }
},
ControlDevice: [
    {
        ctrlKey: "basicCtrl",
        comment: "Remote control-Basic control, Operatio mode, Wind mode, Target humidity",
        command: "Operation|Get|Set",
        dataKey: "airState.operation|airState.opMode|airState.windStrength|airState.humidity.desired",
        dataValue: "{%airState.operation%}|{%airState.opMode%}|{%airState.windStrength%}|{%airState.humidity.desired%}"
    },
    {
        ctrlKey: "reservationCtrl",
        comment: "Remote control-Reservation",
        command: "Get|Set",
        dataSetList: {
            airState.reservation.targetTimeToStop: "{%airState.reservation.targetTimeToStop%}",
            airState.reservation.targetTimeToStart: "{%airState.reservation.targetTimeToStart%}",
            airState.reservation.sleepTime: "{%airState.reservation.sleepTime%}",
            airState.reservation.absoluteStopTime: "{%airState.reservation.absoluteStopTime%}",
            airState.reservation.absoluteStartTime: "{%airState.reservation.absoluteStartTime%}",
            airState.reservation.monOnTime: "{%airState.reservation.monOnTime%}",
            airState.reservation.monOffTime: "{%airState.reservation.monOffTime%}",
            airState.reservation.tueOnTime: "{%airState.reservation.tueOnTime%}",
            airState.reservation.tueOffTime: "{%airState.reservation.tueOffTime%}",
            airState.reservation.wedOnTime: "{%airState.reservation.wedOnTime%}",
            airState.reservation.wedOffTime: "{%airState.reservation.wedOffTime%}",
            airState.reservation.thuOnTime: "{%airState.reservation.thuOnTime%}",
            airState.reservation.thuOffTime: "{%airState.reservation.thuOffTime%}",
            airState.reservation.friOnTime: "{%airState.reservation.friOnTime%}",
            airState.reservation.friOffTime: "{%airState.reservation.friOffTime%}",
            airState.reservation.satOnTime: "{%airState.reservation.satOnTime%}",
            airState.reservation.satOffTime: "{%airState.reservation.satOffTime%}",
            airState.reservation.sunOnTime: "{%airState.reservation.sunOnTime%}",
            airState.reservation.sunOffTime: "{%airState.reservation.sunOffTime%}"
        },
        dataGetList: [
            "airState.reservation.targetTimeToStop",
            "airState.reservation.targetTimeToStart",
            "airState.reservation.sleepTime",
            "airState.reservation.absoluteStopTime",
            "airState.reservation.absoluteStartTime",
            "airState.reservation.monOnTime",
            "airState.reservation.monOffTime",
            "airState.reservation.tueOnTime",
            "airState.reservation.tueOffTime",
            "airState.reservation.wedOnTime",
            "airState.reservation.wedOffTime",
            "airState.reservation.thuOnTime",
            "airState.reservation.thuOffTime",
            "airState.reservation.friOnTime",
            "airState.reservation.friOffTime",
            "airState.reservation.satOnTime",
            "airState.reservation.satOffTime",
            "airState.reservation.sunOnTime",
            "airState.reservation.sunOffTime"
        ]
    },
    {
        ctrlKey: "remoteMon",
        comment: "Remote monitoring",
        command: "Stop|Start"
    },
    {
        ctrlKey: "diagData",
        comment: "Self diag",
        command: "Get"
    },
    {
        ctrlKey: "energyStateCtrl",
        comment: "Power consumption monitoring",
        command: "Get|Set",
        dataKey: "airState.energy.inCurrent|airState.energy.outCurrent|airState.energy.totalCurrent",
        dataValue: "{%airState.energy.inCurrent%}|{%airState.energy.outCurrent%}|{%airState.energy.totalCurrent%}"
    }
],
SmartMode: {
    MODE010: {
        _comment: "외출모드",
        actionName: "@AP_ALARM_DHUM_MODE_W",
        control: [
            {
                ctrlKey: "basicCtrl",
                command: "Set",
                dataKey: "airState.operation",
                dataValue: "0"
            }
        ]
    },
    MODE020: {
        _comment: "귀가모드",
        actionName: "@AP_ALARM_DHUM_MODE_W",
        control: [
            {}
        ]
    },
    MODE030: {
        _comment: "휴가모드",
        actionName: "@AP_ALARM_DHUM_MODE_W",
        control: [
            {
                ctrlKey: "basicCtrl",
                command: "Set",
                dataKey: "airState.operation",
                dataValue: "0"
            }
        ]
    },
    MODE040: {
        _comment: "취침모드",
        actionName: "@AP_ALARM_DHUM_MODE_W",
        control: [
            {
                ctrlKey: "basicCtrl",
                command: "Set",
                dataKey: "airState.operation",
                dataValue: "0"
            }
        ]
    },
    MODE050: {
        _comment: "쾌적모드",
        actionName: "@AP_ALARM_DHUM_MODE_W",
        control: "@MODE050_CONTROL"
    }
},
Exception: {
    comment: "쾌속모드 동작후, 바람세기 조절시, 쾌속모드 해제된다."
},
Monitoring: {
    type: "JSON",
    protocol: [
        {
            path: "airState.operation",
            value: "airState.operation"
        },
        {
            path: "airState.opMode",
            value: "airState.opMode"
        },
        {
            path: "airState.humidity.desired",
            value: "airState.humidity.desired"
        },
        {
            path: "airState.windStrength",
            value: "airState.windStrength"
        },
        {
            path: "airState.circulate.strength",
            value: "airState.circulate.strength"
        },
        {
            path: "airState.circulate.rotate",
            value: "airState.circulate.rotate"
        },
        {
            path: "airState.miscFuncState.antiBugs",
            value: "airState.miscFuncState.antiBugs"
        },
        {
            path: "airState.miscFuncState.airRemoval",
            value: "airState.miscFuncState.airRemoval"
        },
        {
            path: "airState.miscFuncState.airFast",
            value: "airState.miscFuncState.airFast"
        },
        {
            path: "airState.miscFuncState.airUVDisinfection",
            value: "airState.miscFuncState.airUVDisinfection"
        },
        {
            path: "airState.lightingState.signal",
            value: "airState.lightingState.signal"
        },
        {
            path: "airState.miscFuncState.watertankLight",
            value: "airState.miscFuncState.watertankLight"
        },
        {
            path: "airState.reservation.absoluteStartTime",
            value: "airState.reservation.absoluteStartTime"
        },
        {
            path: "airState.reservation.absoluteStopTime",
            value: "airState.reservation.absoluteStopTime"
        },
        {
            path: "airState.reservation.sleepTime",
            value: "airState.reservation.sleepTime"
        },
        {
            path: "airState.reservation.targetTimeToStop",
            value: "airState.reservation.targetTimeToStop"
        },
        {
            path: "airState.diagCode",
            value: "airState.diagCode"
        },
        {
            path: "airState.quality.PM1",
            value: "airState.quality.PM1"
        },
        {
            path: "airState.quality.PM2",
            value: "airState.quality.PM2"
        },
        {
            path: "airState.quality.PM10",
            value: "airState.quality.PM10"
        },
        {
            path: "airState.quality.sensorMon",
            value: "airState.quality.sensorMon"
        },
        {
            path: "airState.quality.airMon",
            value: "airState.quality.airMon"
        },
        {
            path: "airState.humidity.current",
            value: "airState.humidity.current"
        },
        {
            path: "airState.miscFuncState.extraOp",
            value: "airState.miscFuncState.extraOp"
        },
        {
            path: "airState.tempState.current",
            value: "airState.tempState.current"
        },
        {
            path: "airState.quality.odor",
            value: "airState.quality.odor"
        },
        {
            path: "airState.filterMngState.desorption",
            value: "airState.filterMngState.desorption"
        },
        {
            path: "airState.miscFuncState.cleanDry",
            value: "airState.miscFuncState.cleanDry"
        },
        {
            path: "airState.quality.overall",
            value: "airState.quality.overall"
        }
    ]
},
ControlWifi: {
    type: "JSON",
    action: {}
},
Push: [
    {
        category: "1",
        label: "@AP_SETTING_ALARM_MANSU_W",
        groupCode: "40301",
        pushList: [
            {
                0001: "@AP_SETTING_ALARM_MANSU_S"
            }
        ]
    },
    {
        category: "17",
        label: "@AP_SETTING_ALARM_RECOMMEND_W",
        groupCode: "40317",
        pushList: [
            {
                0017: "@AP_SETTING_ALARM_RECOMMEND_W"
            }
        ]
    }
],
Config: {
    audibleDiagnosis: "true",
    fota: "true",
    forceShowCIC: "true"
}

}

Gentelella - Bootstrap Admin Template by Colorlib

ollo69 commented 3 years ago

OK, very similar to AC, I will work on this when AC support is completed.

DrewL4 commented 3 years ago

Has support been added yet?

ollo69 commented 3 years ago

No, still not found time to do this. Is in my to do list, I will report here when ready...

ollo69 commented 2 years ago

Dehumidifier support is now available with last release. I close this FR, please refer to FR #318 for feed-back