bodyscape / cielo_home

Integration with Cielo Home
Apache License 2.0
44 stars 10 forks source link

Breeze Lite Mode Not Working #36

Closed jgennari closed 5 months ago

jgennari commented 8 months ago

When my Breeze Lite device is turned on, the Cielo web UI shows it on:

image

But HA shows it off:

image

Here is the API return the web UI is parsing:

{
    "status": 200,
    "message": "SUCCESS",
    "data": {
        "iosVersion": "4.4.0",
        "iosLatestVersion": "4.4.0",
        "iosExpiryTime": 1693508400,
        "androidVersion": "5.4.6",
        "androidLatestVersion": "5.5.4",
        "androidExpiryTime": 1640977200,
        "manufactureDBversion": "1009.28",
        "comfyMinimumLimit": {
            "fahRoomTemp": 0,
            "celRoomTemp": 0,
            "roomHumidity": 3
        },
        "listDevices": [
            {
                "isLocalDbAck": 0,
                "deviceId": "qcYk9g",
                "isFaren": 1,
                "macAddress": "redacted",
                "deviceName": "Garage",
                "fwVersion": "1.0.2,1.0.2",
                "connectionSource": 1,
                "deviceType": "BREEZ-LITE",
                "deviceTypeVersion": "BL02",
                "suggestedRemotes": [
                    {
                        "applianceId": "2120",
                        "protocolId": 402,
                        "isFaren": 1,
                        "priority": 6
                    },
                    {
                        "applianceId": "2710",
                        "protocolId": 770,
                        "isFaren": 1,
                        "priority": 6
                    }
                ],
                "broadcastName": "Cielo_BL02_F9B78C",
                "deviceTimeZone": "-04:00",
                "deviceTimeZoneName": "America/New_York",
                "applianceId": 2120,
                "applianceType": "AC",
                "isEnergyDevice": 0,
                "createdAt": 1698179297,
                "retainCreatedAt": 1698179297,
                "deviceStatus": 1,
                "latestAction": {
                    "uirules": "default:default:default:default",
                    "deviceStatus": "off",
                    "temp": "78",
                    "actionSource": "WEB",
                    "statustimestamp": "1698251501",
                    "fanspeed": "fanspeed",
                    "mode": "mode",
                    "swing": " ",
                    "followme": "off",
                    "ontimestamp": "1698239951",
                    "power": "on",
                    "modeTimestamp": "1698179273",
                    "timestamp": "1698240754",
                    "moderules": "default:default:default:default"
                },
                "wifiName": "redacted",
                "userId": "redacted",
                "applianceSubtype": 1,
                "isOnceSyncedState": 1,
                "isFotaRequired": 1,
                "isUpdatingFw": 0,
                "fwInitiatedAt": 0,
                "fpFailureAttempts": 0,
                "fpSuccessAttempts": 0,
                "turboFailureAttempts": 0,
                "turboSuccessAttempts": 0,
                "scheduleDetails": {},
                "isBlocked": 0,
                "blockMessage": "Unblocked",
                "groupId": "-1",
                "deviceSettings": {
                    "isBleAlwaysEnabled": "0"
                },
                "latestBucketError": "0",
                "thermostatDeviceId": "N/A",
                "structureId": "N/A",
                "thermostatHomeAway": {},
                "bleMacAddress": "redacted",
                "isBacktrackEnabled": 1,
                "latEnv": {
                    "temp": 82.0,
                    "humidity": 51.0
                },
                "humCalibrationOffset": "0",
                "tempCalibrationOffset": "0",
                "isHumCalibrationSync": 1,
                "isTempCalibrationSync": 1,
                "myRules": [],
                "myRuleConfiguration": {},
                "deviceFilterDuration": "14",
                "deviceFilterFlag": 1,
                "filterTimestamp": 1698251469,
                "deviceFilterDurationValue": 864,
                "isWifiDisabled": 0,
                "priority": 1
            }
        ],
        "listGroups": [],
        "devicesCount": 1
    }
}

When it's turned off, the web UI shows off:

image

... and HA still shows it off:

image

Here is the API response:

    "status": 200,
    "message": "SUCCESS",
    "data": {
        "iosVersion": "4.4.0",
        "iosLatestVersion": "4.4.0",
        "iosExpiryTime": 1693508400,
        "androidVersion": "5.4.6",
        "androidLatestVersion": "5.5.4",
        "androidExpiryTime": 1640977200,
        "manufactureDBversion": "1009.28",
        "comfyMinimumLimit": {
            "fahRoomTemp": 0,
            "celRoomTemp": 0,
            "roomHumidity": 3
        },
        "listDevices": [
            {
                "isLocalDbAck": 0,
                "deviceId": "qcYk9g",
                "isFaren": 1,
                "macAddress": "redacted",
                "deviceName": "Garage",
                "fwVersion": "1.0.2,1.0.2",
                "connectionSource": 1,
                "deviceType": "BREEZ-LITE",
                "deviceTypeVersion": "BL02",
                "suggestedRemotes": [
                    {
                        "applianceId": "2120",
                        "protocolId": 402,
                        "isFaren": 1,
                        "priority": 6
                    },
                    {
                        "applianceId": "2710",
                        "protocolId": 770,
                        "isFaren": 1,
                        "priority": 6
                    }
                ],
                "broadcastName": "Cielo_BL02_F9B78C",
                "deviceTimeZone": "-04:00",
                "deviceTimeZoneName": "America/New_York",
                "applianceId": 2120,
                "applianceType": "AC",
                "isEnergyDevice": 0,
                "createdAt": 1698179297,
                "retainCreatedAt": 1698179297,
                "deviceStatus": 1,
                "latestAction": {
                    "uirules": "default:default:default:default",
                    "deviceStatus": "off",
                    "temp": "78",
                    "actionSource": "WEB",
                    "statustimestamp": "1698251501",
                    "fanspeed": "fanspeed",
                    "mode": "mode",
                    "swing": " ",
                    "followme": "off",
                    "ontimestamp": "1698254017",
                    "power": "off",
                    "modeTimestamp": "1698179273",
                    "timestamp": "1698254017",
                    "moderules": "default:default:default:default"
                },
                "wifiName": "redacted",
                "userId": "redacted",
                "applianceSubtype": 1,
                "isOnceSyncedState": 1,
                "isFotaRequired": 1,
                "isUpdatingFw": 0,
                "fwInitiatedAt": 0,
                "fpFailureAttempts": 0,
                "fpSuccessAttempts": 0,
                "turboFailureAttempts": 0,
                "turboSuccessAttempts": 0,
                "scheduleDetails": {},
                "isBlocked": 0,
                "blockMessage": "Unblocked",
                "groupId": "-1",
                "deviceSettings": {
                    "isBleAlwaysEnabled": "0"
                },
                "latestBucketError": "0",
                "thermostatDeviceId": "N/A",
                "structureId": "N/A",
                "thermostatHomeAway": {},
                "bleMacAddress": "redacted",
                "isBacktrackEnabled": 1,
                "latEnv": {
                    "temp": 82.0,
                    "humidity": 52.0
                },
                "humCalibrationOffset": "0",
                "tempCalibrationOffset": "0",
                "isHumCalibrationSync": 1,
                "isTempCalibrationSync": 1,
                "myRules": [],
                "myRuleConfiguration": {},
                "deviceFilterDuration": "15",
                "deviceFilterFlag": 1,
                "filterTimestamp": 1698254017,
                "deviceFilterDurationValue": 906,
                "isWifiDisabled": 0,
                "priority": 1
            }
        ],
        "listGroups": [],
        "devicesCount": 1
    }
}

Also, there is no option in HA for the mode:

image
bodyscape commented 8 months ago

"latestAction": { "uirules": "default:default:default:default", "deviceStatus": "off", "temp": "78", "actionSource": "WEB", "statustimestamp": "1698251501", "fanspeed": "fanspeed", "mode": "mode", "swing": " ", "followme": "off", "ontimestamp": "1698239951", "power": "on", "modeTimestamp": "1698179273", "timestamp": "1698240754", "moderules": "default:default:default:default" }

the devicestatus is off, it's really weird! Like it's not connected anymore.

jgennari commented 8 months ago

Yea, it's strange. I think they're utilizing the "power": "on" field for driving the UI.

Video of the behavior

bodyscape commented 6 months ago

@jgennari

can you check the json msg in the websocket connection what you have for device_status

each action you make after go through this connection and you can see each call and callback.

image

jgennari commented 6 months ago

I tried multiple actions but none of the WS payloads contain a device_status field:

image
bodyscape commented 6 months ago

In js object actions what do you have? I can't see all properties on your screenshot.

jgennari commented 6 months ago

Sorry, here ya go:

image
bodyscape commented 6 months ago

Hmmm i have really no idea if you have this behaviour because of the lite version or your appliance model.

jgennari commented 6 months ago

Strange! Hopefully more Lite's pop up and others can comment. I feel like the appliance is pretty standard (at least here in the US).

Regardless, thanks for checking!

bodyscape commented 6 months ago

Well maybe i could remove the connection state when it's the lite device. It's just weird nobody seem to have also this issue.

bodyscape commented 6 months ago

@jgennari Do you want to send me your setup config (token wetc...) to bodyscape@protonmail.com? I think i found something and i want to test it with your device.

jgennari commented 6 months ago

@bodyscape just sent it!

bodyscape commented 6 months ago

@bodyscape just sent it!

I'm out of town, i'll check it probably Wednesday. Happy new year!

bodyscape commented 5 months ago

@jgennari are you sure you configure the good HAVC in you cielo?

There are no option in the config for your HAVC

{ "protocolId": 402, "applianceId": 2120, "manufacturerId": 202, "name": "Cielo", "modelNumber": "Model 209 Screenless", "isFaren": 1, "temp": "inc:dec", "tempIncrement": 1, "mode": "mode", "isMultiModeTempRange": 0, "modesTemp": [], "fan": "fanspeed", "swing": " ", "showSwingTray": 0, "isScreenless": 1, "is485IR": 0, "modeRules": { "mode": { "mode_rules": "default:default:default", "ui_rules": "default:vanish:default" } }, "isDisplayLight": 0, "isLightBasestring": 0, "isSwingBasestring": 1, "isTurboBasestring": 0, "displayLight": "on:off", "oppositeUnitId": 0, "isTurboDisplay": 0, "turboConfig": "", "turbo": "", "isFreezepointDisplay": 0, "freezepointConfig": "", "freezepoint": "freezepoint", "isFollowmeDisplay": 0, "followmeConfig": "", "followme": "", "serviceFunctions": null, "serviceFunctionsDefault": null, "isServFuncDisplay": 0, "isEvenTemp": 1 }

bodyscape commented 5 months ago

mine look like this :

the property "mode" tell me what your device support like mine ("mode": "cool:dry:fan:auto:heat")

{ "protocolId": 3, "applianceId": 1674, "manufacturerId": 202, "name": "Cielo", "modelNumber": "Model 11 (Celsius)", "isFaren": 0, "temp": "17:30", "tempIncrement": 1, "mode": "cool:dry:fan:auto:heat", "isMultiModeTempRange": 0, "modesTemp": [], "fan": "auto:low:medium:high", "swing": "auto/stop:adjust", "showSwingTray": 1, "isScreenless": 0, "is485IR": 0, "modeRules": { "cool": { "mode_rules": "default:default:default", "ui_rules": "default:default:default" }, "dry": { "mode_rules": "default:default:default", "ui_rules": "default:default:vanish" }, "fan": { "mode_rules": "default:default:default", "ui_rules": "vanish:default:default" }, "auto": { "mode_rules": "default:default:default", "ui_rules": "default:default:vanish" }, "heat": { "mode_rules": "default:default:default", "ui_rules": "default:default:default" }, "freezepoint": { "mode_rules": "default:default:default", "ui_rules": "default:default:default" }, "turbo_on/off": { "mode_rules": "default:default:default", "ui_rules": "default:default:default", "mode": "on/off" } }, "isDisplayLight": 1, "isLightBasestring": 1, "isSwingBasestring": 1, "isTurboBasestring": 1, "displayLight": "on/off", "oppositeUnitId": 1675, "isTurboDisplay": 1, "turboConfig": "default,default:Turbo:heat,cool,auto:temp,swing,light,followme:0:1", "turbo": "on/off", "isFreezepointDisplay": 1, "freezepointConfig": "heat,FP,10,FP:FP:heat:swing,light,followme:1", "freezepoint": "freezepoint", "isFollowmeDisplay": 1, "followmeConfig": "default,default:Follow Me:heat,cool,auto,freezepoint:temp,fanspeed,swing,light,turbo:0", "followme": "on:off", "serviceFunctions": [ { "name": "E1", "description": "Filter Replacement Reminder", "unit": "n/a", "control_type": "toggle", "values": [ "off", "on" ] }, { "name": "E5", "description": "Heat/Cool priority for Multi-zone systems", "unit": "n/a", "control_type": "list", "values": [ "cooling", "heating" ] }, { "name": "F1", "description": "Auto Start", "unit": "n/a", "control_type": "toggle", "values": [ "off", "on" ] }, { "name": "F2", "description": "Heating Temperature Compensation", "unit": "degree", "control_type": "numericrange", "values": [ "-6", "-5", "-4", "-3", "-2", "-1", "0", "1", "2", "3", "4", "5", "6" ] }, { "name": "F4", "description": "Indoor Fan Motor Speed", "unit": "n/a", "control_type": "list", "values": [ "idle", "slow", "on", "intermittent" ] }, { "name": "F5", "description": "Louver Angle Memory", "unit": "n/a", "control_type": "list", "values": [ "disabled", "enabled", "poweroffonly" ] }, { "name": "F6", "description": "Combination of Heat/Cool settings enabled", "unit": "n/a", "control_type": "list", "values": [ "both", "heat", "cool" ] }, { "name": "F7", "description": "Cooling Temperature Compensation", "unit": "degree", "control_type": "number", "values": [ "-2", "-1", "0", "1", "2" ] } ], "serviceFunctionsDefault": { "E5": "cooling", "F6": "both", "F7": "0", "F1": "off", "E1": "off", "F2": "0", "F4": "idle", "F5": "disabled" }, "isServFuncDisplay": 1, "isEvenTemp": 1 }

jgennari commented 5 months ago

I'm pretty sure! At least it's working. Apparently this version can't switch modes directly, just cycle through them. I sent you an email with my credentials if you want to look deeper.

bodyscape commented 5 months ago

try version 1.6.6-Pre6. Keep in mind you can't change the temperature with the default climate, ha don't support that mode with your appliance. I add two button in the detail of the device!

jgennari commented 5 months ago

It worked! I see the up and down temperature controls in the details and can confirm it works now. Thanks for working on it, I was in my office all day hearing you test against it. Thanks for getting the Lite working!

bodyscape commented 5 months ago

No problem, but the problem was not the Cielo Lite but a compatibility with my integration and your HVAC model. ;)