nVuln / homebridge-lg-thinq

A Homebridge plugin for controlling/monitoring LG ThinQ device via their ThinQ platform.
https://github.com/nVuln/homebridge-lg-thinq
Apache License 2.0
195 stars 49 forks source link

Washtower start/finish automation #52

Closed dangerusty closed 3 years ago

dangerusty commented 3 years ago

I have an LG WashTower. I can see it running and finish in the home app, but I'm not sure how to add an automation when it starts and finishes for my use case. The only thing to trigger on is "washer door lock" which doesn't change when washtower finishes. Is my use case supported? Thanks.

nVuln commented 3 years ago

please turn on homebridge debug mode, you can see device data in debug logging, upload it here

dangerusty commented 3 years ago
[8/17/2021, 8:20:02 AM] [LGThinQ] Found device:  {
    "deviceId": "010a0d2f-6a5a-1983-8abd-f8b95ae597d0",
    "deviceType": 222,
    "modelName": "W3S1CVK2EVS_D_US",
    "subModelNm": null,
    "sensorType": null,
    "alias": "WashTower",
    "deviceCode": "LA06",
    "networkType": "02",
    "tftYn": "N",
    "guideTypeYn": "Y",
    "guideType": "TYPE1",
    "pccModelYn": "Y",
    "autoOrderYn": "N",
    "drServiceYn": "N",
    "ssid": "Limited or no connectivity",
    "timezoneCode": "America/New_York",
    "timezoneCodeAlias": "USA/New_York",
    "sdsGuide": "",
    "newRegYn": "N",
    "remoteControlType": null,
    "fareTarget": null,
    "area": "334505",
    "sleep": null,
    "deviceState": "E",
    "rmsClientId": null,
    "regDtUtc": "20210617184312000",
    "regIndex": 0,
    "blackboxYn": "Y",
    "groupableYn": "Y",
    "controllableYn": "N",
    "combinedProductYn": "Y",
    "masterYn": "Y",
    "snapshot": {
        "washerDryer": {
            "initialBit": "INITIAL_BIT_OFF",
            "smartCare_onOff": "SMARTCARE_BUTTON_OFF",
            "initialTimeMinute": 41,
            "preState": "INITIAL",
            "downloadedCourseDryer27inchBase": "WRINKLEPREVENTION",
            "energySaver": "ENERGYSAVER_OFF",
            "error": "ERROR_NO",
            "dryLevel": "DRYLEVEL_VERYDRY",
            "moreLessTime": 0,
            "dnnReady": "DNNREADY_OFF",
            "smartCourseDryer27inchBase": "NOT_SELECTED",
            "remainTimeHour": 0,
            "state": "DRYING",
            "reduceStatic": "REDUCESTATIC_OFF",
            "wrinkleCare": "WRINKLECARE_OFF",
            "temp": "TEMP_MEDIUMHIGH",
            "antiBacterial": "ANTIBACTERIAL_OFF",
            "loadItem": "LOADITEM_OFF",
            "AIDDLed": "AIDDLed_OFF",
            "cloudCourse": "NOT_SELECTED",
            "dampDrySignal": "DAMPDRYSIGNAL_OFF",
            "timeDry": "TIMEDRY_OFF",
            "remainTimeMinute": 15,
            "courseDryer27inchBase": "NORMAL",
            "easyIron": "EASYIRON_OFF",
            "childLock": "CHILDLOCK_OFF",
            "remoteStart": "REMOTE_START_ON",
            "turboSteam": "TURBOSTEAM_OFF",
            "initialTimeHour": 0
        },
        "mid": 50957536,
        "online": true,
        "static": {
            "deviceType": "222",
            "countryCode": "US"
        },
        "meta": {
            "allDeviceInfoUpdate": false,
            "messageId": "0Tf74m3CRbi40VQCVUY-1g"
        },
        "timestamp": 1629206384831
    },
    "manufacture": null,
    "online": true,
    "platformType": "thinq2",
    "homeDeviceOrder": -1,
    "roomDeviceOrder": -1,
    "ownershipYn": "Y",
    "modelJsonVer": "3.0",
    "modelJsonUri": "https://objectcontent.lgthinq.com/d3b8a3d0-3019-4229-a4ff-122ecf948a6f?hdnts=exp=1675409957~hmac=202ba30119caa4f769151e24abccc3b5ee52d3cd554b00d8042607ffb2adcccf",
    "appModuleVer": "3.63",
    "appModuleUri": "https://objectcontent.lgthinq.com/27342417-7989-4cd5-a248-9b204c437c3d?hdnts=exp=1690080696~hmac=57e58b829363251d0615a494886d685f1148c1f74649cb04d9fd7a19ebd3484b",
    "appRestartYn": "Y",
    "appModuleSize": "9896643",
    "langPackProductTypeVer": "82.8",
    "langPackProductTypeUri": "https://objectcontent.lgthinq.com/fc4eb092-aa14-494f-a1d3-b1d330a07913?hdnts=exp=1691803226~hmac=7e48ae39d72fc1d5544f48405f6c00c5cd2646b72059215cd71bcf389634bc11",
    "langPackModelVer": "0.4",
    "langPackModelUri": "https://objectstore.lgthinq.com/ae5670c7-4c73-4f81-a05a-cbd06cc841cc?Expires=1661646940&Signature=KY~vyBNY-RKA9ICugMCdG3qNw1LuxmKmen3UU7~VHTrfZErUp9R6xPz~mZO0gyoCw22rl00cgbeM9oS9pfCl0cLlcE33~KK4eMj4Jh5hB0LKs6nBrgXZrU1Dff1v63HljKQRpyiGwOUIdIecOwkgI4EU7u0cvqWxcYjTHI9MVcIsSgbrhV1d5kiBkPrxGZcHixtDMuuV4oXVEHwiquo-xt-f5ykafVkkgBrdSmn1dINoxHhtULZSNL-3jaatHHlvXuVtAT8ruyk7nGdVUAN8yGvoviLqw2je8dLs3MZ03Uq86x0TQjHmHKKjOFh6bT8WJlBt6LmgdbfFoVQZovOkLw__&Key-Pair-Id=APKAI74R6YENXPGRIWLQ",
    "roomId": "",
    "fwInfoList": [
        {
            "checksum": "0000B7B2",
            "partNumber": "SAA38964419",
            "order": 2
        },
        {
            "checksum": "0000FFDB",
            "partNumber": "SAA38964313",
            "order": 1
        }
    ],
    "modemInfo": {
        "modelName": "W3S1CVK2EVS_D_US",
        "appVersion": "clip_hna_v1.9.104",
        "modemType": "QCOM_QCA4010",
        "ruleEngine": "y"
    },
    "existsEntryPopup": "N",
    "fwVer": null,
    "modemVer": null,
    "subDeviceCount": 0,
    "firebaseLogKey": "T:LC-S:LC-U:4.5-P:KEPLER",
    "cardType": "Small",
    "cardControl": "Base"
}
[8/17/2021, 8:20:02 AM] [LGThinQ] Restoring existing accessory from cache: WashTower
[8/17/2021, 8:20:02 AM] [LGThinQ] Found device:  {
    "deviceId": "af65de5a-ce85-1895-a1c0-f8b95ae5759c",
    "deviceType": 221,
    "modelName": "F3S1CWK__",
    "subModelNm": null,
    "sensorType": null,
    "alias": "Washer",
    "deviceCode": "LA07",
    "networkType": "02",
    "tftYn": "N",
    "guideTypeYn": "Y",
    "guideType": "TYPE1",
    "pccModelYn": "Y",
    "autoOrderYn": "N",
    "drServiceYn": "N",
    "ssid": "Limited or no connectivity",
    "timezoneCode": "America/New_York",
    "timezoneCodeAlias": "USA/New_York",
    "sdsGuide": "",
    "newRegYn": "N",
    "remoteControlType": null,
    "fareTarget": null,
    "area": "334505",
    "sleep": null,
    "deviceState": "E",
    "rmsClientId": null,
    "regDtUtc": "20210617184312000",
    "regIndex": 0,
    "blackboxYn": "Y",
    "groupableYn": "Y",
    "controllableYn": "N",
    "combinedProductYn": "Y",
    "masterYn": "N",
    "snapshot": {
        "washerDryer": {
            "rinseDefault": "AUTODETECT_MANUAL",
            "smartCare_onOff": "SMARTCARE_BUTTON_OFF",
            "initialTimeMinute": 0,
            "preState": "END",
            "dnn_temp": "26",
            "drumLight": "DRUMLIGHT_ON",
            "washTime": "NO_WASHTIME",
            "addGarment": "ADDGARMENT_OFF",
            "dnn_precipitationProbability": "10",
            "dnn_washingIndex": "80",
            "autoSoak": "AUTOSOAK_OFF",
            "dnnReady": "DNNREADY_OFF",
            "preWash": "PREWASH_OFF",
            "state": "POWEROFF",
            "ezCSSoftenerSetVal": "EZCSSO_OFF",
            "intensive": "INTENSIVE_OFF",
            "wrinkleCare": "WRINKLECARE_OFF",
            "downloadCourse": "RINSESPIN",
            "smallUE": "SMALLUE_OFF",
            "buzzer": "BUZZER_OFF",
            "AIDDLed": "AIDDLed_OFF",
            "cloudCourse": "NOT_SELECTED",
            "dnn_humidity": "52",
            "freshCare": "FRESHCARE_OFF",
            "extraRinse": "EXTRARINSE_OFF",
            "medicRinse": "MEDICRINSE_OFF",
            "ezDispenseNotation": "ezDisNotation_ml",
            "turboWash": "TURBOWASH_OFF",
            "remainTimeMinute": 1,
            "steamSoftener": "STEAMSOFTENER_OFF",
            "warmWater": "WARMWATERT_OFF",
            "delay": "DELAY_OFF",
            "soak": "NO_SOAK",
            "childLock": "CHILDLOCK_OFF",
            "remoteStart": "REMOTE_START_OFF",
            "rinseHold": "RINSE_HOLD_OFF",
            "audibleSDS": "AUDIBLE_SDS_OFF",
            "ezDispenseDrawerState": "ezDisDrawer_CLOSE",
            "favorite": "FAVORITE_OFF",
            "rinseSpin": "RINSE_SPIN_OFF",
            "courseSpendWater": 0,
            "autoDetection": "AUTO_DETECTION_OFF",
            "laundryTexture": 0,
            "standby": "STANDBY_OFF",
            "timeSave": "TIMESAVE_OFF",
            "speechRecognitionMode": "SPEECH_RECOGNITION_MODE_OFF",
            "courseSpendPower": 193,
            "error": "ERROR_NO",
            "dryLevel": "NO_DRYLEVEL",
            "ezDetergentState": "EZCSDT_NOT_EMPTY",
            "washLoadDisplay": "WASHLOAD_DISPLAY_OFF",
            "creaseCare": "CREASECARE_OFF",
            "ezSoftenerAmount": 0,
            "rinseCount": "NO_RINSE",
            "course": "NOT_SELECTED",
            "protocolVersion": 0,
            "steam": "STEAM_OFF",
            "sterilize": "STERILIZE_OFF",
            "multiStain": "MULTISTAIN_OFF",
            "rinse": "RINSE_NORMAL",
            "temp": "NO_TEMP",
            "doorLock": "DOORLOCK_OFF",
            "reserveTimeMinute": 0,
            "ezCSDetergentSetVal": "EZCSDT_OFF",
            "loadItem": "LOADITEM_OFF",
            "washingIndex": "80",
            "baseDownloadCourseData": "NOT_SELECTED",
            "TCLCount": 19,
            "waterPlus": "WATERPLUS_OFF",
            "smartGridEnable": "SMARTGRIDENABLE_OFF",
            "fabricSoftener": "FABRIC_SOFTENER_OFF",
            "saveEnergy": "SAVE_ENERGY_OFF",
            "wifiSDS": "WIFI_SDS_OFF",
            "ezSoftenerState": "EZCSSO_NOT_EMPTY",
            "coolDown": "COOLDOWN_OFF",
            "dnn_dust": "-",
            "ecoHybrid": "ECOHYBRID_OFF",
            "voiceState": "VOICESTATE_OFF",
            "doorClose": "DOORCLOSE_OFF",
            "spin": "NO_SPIN",
            "ezDetergentAmount": 0,
            "waterLevel": "WATERLEVEL_0",
            "soilWash": "NO_SOILWASH",
            "activeStandbyEnable": "AUTO_STANDBY_OFF",
            "coldWash": "COLDWASH_OFF",
            "loadLevel": "LOAD_AUTO_DETECT"
        },
        "mid": 33703990,
        "online": true,
        "static": {
            "deviceType": "221",
            "countryCode": "US"
        },
        "meta": {
            "allDeviceInfoUpdate": true,
            "messageId": "iUzZp5ImRF2rBtW3Qv246w"
        },
        "timestamp": 1629191488662
    },
    "manufacture": null,
    "online": true,
    "platformType": "thinq2",
    "homeDeviceOrder": -1,
    "roomDeviceOrder": -1,
    "ownershipYn": "Y",
    "modelJsonVer": "9.4",
    "modelJsonUri": "https://objectcontent.lgthinq.com/b6e6e5f8-6289-4b09-873c-c007cea50288?hdnts=exp=1673490225~hmac=62b97250d0476e4bfdaf3785b08d53e1c7622bb0c35eb363d4f05c295c5a7c7b",
    "appModuleVer": "3.63",
    "appModuleUri": "https://objectcontent.lgthinq.com/27342417-7989-4cd5-a248-9b204c437c3d?hdnts=exp=1690080696~hmac=57e58b829363251d0615a494886d685f1148c1f74649cb04d9fd7a19ebd3484b",
    "appRestartYn": "Y",
    "appModuleSize": "9896643",
    "langPackProductTypeVer": "82.8",
    "langPackProductTypeUri": "https://objectcontent.lgthinq.com/fc4eb092-aa14-494f-a1d3-b1d330a07913?hdnts=exp=1691803226~hmac=7e48ae39d72fc1d5544f48405f6c00c5cd2646b72059215cd71bcf389634bc11",
    "langPackModelVer": "0.3",
    "langPackModelUri": "https://objectstore.lgthinq.com/28fdac4b-755d-4c78-b901-54e5e521d7ff?Expires=1661645814&Signature=W1wGgOPcQ4vvjdTreBMNwHSfGC7QT92muGntFxi~XkNzUuI5PCyYSmcyI2nO27~A9FagJ9veaSF1dTkUcbUQlFEAqTlKcgkoxi5Zm9kZsXMNkFUb2XYNkiwUem4UCywIfKUG681jCEunzkfXGu9sh4yIyrLqKVb3NupEVo67-q1Y7uFzWbjdz~hQSov5~UKOFAMnJd5zUE4ks~PTXRyLLGvk6dnWT0HtGftYwKo88Pwjdjcr2xNJwk4G5jI7LJfYNdnEmIGq3t92nmbi-iHt3jamZC6U8AdehQRH-DHZ585uE~5yy5AKCzOr-4fRgHpZcecHgAtSZUdGEhjZew~MWA__&Key-Pair-Id=APKAI74R6YENXPGRIWLQ",
    "roomId": "",
    "fwInfoList": [
        {
            "checksum": "0000585A",
            "partNumber": "SAA42102401",
            "order": 2
        },
        {
            "checksum": "00000B35",
            "partNumber": "SAA42473301",
            "order": 1
        }
    ],
    "modemInfo": {
        "modelName": "F3S1CWK__",
        "appVersion": "clip_hna_v1.9.104",
        "modemType": "QCOM_QCA4010",
        "ruleEngine": "y"
    },
    "existsEntryPopup": "N",
    "fwVer": null,
    "modemVer": null,
    "subDeviceCount": 0,
    "firebaseLogKey": "T:LC-S:LC-U:4.5-P:KEPLER",
    "cardType": "Small",
    "cardControl": "Base"
}
[8/17/2021, 8:20:02 AM] [LGThinQ] Restoring existing accessory from cache: Washer
[8/17/2021, 8:20:03 AM] [LGThinQ] START polling device data.
dangerusty commented 3 years ago

I think "washer" is indeed the washer, which has a "door lock" button that gives an event when it starts/stops. "Washtower" is just the dryer but doesn't have a button that gives events.

nVuln commented 3 years ago

I think "washer" is indeed the washer, which has a "door lock" button that gives an event when it starts/stops. "Washtower" is just the dryer but doesn't have a button that gives events.

yup, your washtower don't provide door lock status, so door lock sensor is not showing I have plan to add stateless programmable switch as finished trigger, but this feature still in developing, not released yet

dangerusty commented 3 years ago

Thanks! I’ll keep an eye out for it. I have a ridiculous use case where my garage has a ventilation fan which shouldn’t run when the dryer runs, because the garage intake vent is right by the dryer output vent ಠ_ಠ.

On Tue, Aug 17, 2021 at 9:17 AM nVuln @.***> wrote:

I think "washer" is indeed the washer, which has a "door lock" button that gives an event when it starts/stops. "Washtower" is just the dryer but doesn't have a button that gives events.

yup, your washtower don't provide door lock status, so door lock sensor is not showing I have plan to add stateless programmable switch as finished trigger, but this feature still in developing, not released yet

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/nVuln/homebridge-lg-thinq/issues/52#issuecomment-900338517, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHV5IYX4OEHPZ4B2UYTMN2TT5JVPJANCNFSM5CITEKOQ .

nVuln commented 3 years ago

I added program finished trigger on latest version, please try

dangerusty commented 3 years ago

That does work for when the dryer completes. How to know when the dryer starts?

On Tue, Aug 24, 2021 at 7:51 AM nVuln @.***> wrote:

I added program finished trigger on latest version, please try

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/nVuln/homebridge-lg-thinq/issues/52#issuecomment-904612389, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHV5IYXR7CRL5BG5H3X7LNDT6OIWHANCNFSM5CITEKOQ .

dangerusty commented 3 years ago

Ah nevermind. I can automate off the dryer valve running condition if I make automations in Eve app. I think this works perfectly for me, thank you!

On Tue, Aug 24, 2021 at 1:41 PM Russ Reimann @.***> wrote:

That does work for when the dryer completes. How to know when the dryer starts?

On Tue, Aug 24, 2021 at 7:51 AM nVuln @.***> wrote:

I added program finished trigger on latest version, please try

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/nVuln/homebridge-lg-thinq/issues/52#issuecomment-904612389, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHV5IYXR7CRL5BG5H3X7LNDT6OIWHANCNFSM5CITEKOQ .