Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Sinclair Heapumps #68

Open
TheEris opened this issue Nov 19, 2023 · 9 comments
Open

Support for Sinclair Heapumps #68

TheEris opened this issue Nov 19, 2023 · 9 comments
Labels
enhancement New feature or request question Further information is requested

Comments

@TheEris
Copy link

TheEris commented Nov 19, 2023

this is pretty much copypaste of my other issue from gree-remote, link here

I've got myself a few months back a heat pump from Sinclair (model: smh-100irb and smh-60irb) and it didn't work out of the box, so I've started digging. Here is the complete flow I was able to dig out from the EWPE Smart app with Wireshark (the heat pump is there as "ATW HP").
For now I've created a flow in node-red that reads the states (in, out and room temp) and pushes it into HA.

All the pack data is decrypted for easier reading.

after inital discovery and binding:

{
    "pack":"{
        "t":"status",
        "mac":"<MAC>",
        "cols":[
            "AllInWatTemHi",
            "AllInWatTemLo",
            "AllOutWatTemHi",
            "AllOutWatTemLo",
            "HepOutWatTemHi",
            "HepOutWatTemLo",
            "WatBoxTemHi",
            "WatBoxTemLo",
            "RmoHomTemHi",
            "RmoHomTemLo",
            "WatBoxElcHeRunSta",
            "SyAnFroRunSta",
            "ElcHe1RunSta",
            "ElcHe2RunSta",
            "AnFrzzRunSta",
            "TemUn",
            "AllErr"
        ]
    }",
    "i":0,
    "cid":"app",
    "uid":0,
    "tcid":"<MAC>",
    "t":"pack"
}

with response

{
    "t":"pack",
    "i":0,
    "uid":0,
    "cid":"<MAC>",
    "tcid":"app",
    "pack":"{
        "t":"dat",
        "r":200,
        "mac":"<MAC>",
        "cols":[
            "AllInWatTemHi",
            "AllInWatTemLo",
            "AllOutWatTemHi",
            "AllOutWatTemLo",
            "HepOutWatTemHi",
            "HepOutWatTemLo",
            "WatBoxTemHi",
            "WatBoxTemLo",
            "RmoHomTemHi",
            "RmoHomTemLo",
            "WatBoxElcHeRunSta",
            "SyAnFroRunSta",
            "ElcHe1RunSta",
            "ElcHe2RunSta",
            "AnFrzzRunSta",
            "TemUn",
            "AllErr"
        ],
        "dat":[
            132,
            4,
            132,
            2,
            70,
            0,
            100,
            0,
            70,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0
        ]
    }"
}

input water temp: (dat[0]-100)+dat[1]*0.1 = 32.4
output water temp: (dat[2]-100)+dat[3]*0.1 = 32.2
same goes for other variables that have two parts wih Hi-Lo ending
(HepOutWatTem shows -30 because i dont have it configured)

{
    "pack":"{
        "t":"status",
        "mac":"<MAC>",
        "cols":[
            "Pow",
            "Mod",
            "CoWatOutTemSet",
            "HeWatOutTemSet",
            "WatBoxTemSet",
            "TemUn",
            "TemRec",
            "AllErr",
            "host",
            "name",
            "ColHtWter",
            "HetHtWter",
            "LefHom",
            "TemRecB",
            "RomHomTemExt",
            "CoHomTemSet",
            "HeHomTemSet"
            ]
    }"
    "i":0,
    "cid":"app",
    "uid":2179292,
    "tcid":"<MAC>",
    "t":"pack"
}

{
    "t":"pack",
    "i":0,
    "uid":2179292,
    "cid":"<MAC>",
    "tcid":"app",
    "pack":"{
        "t":"dat",
        "r":200,
        "mac":"<MAC>",
        "cols":[
            "Pow",
            "Mod",
            "CoWatOutTemSet",
            "HeWatOutTemSet",
            "WatBoxTemSet",
            "TemUn",
            "TemRec",
            "AllErr",
            "host",
            "name",
            "ColHtWter",
            "HetHtWter",
            "LefHom",
            "TemRecB",
            "RomHomTemExt",
            "CoHomTemSet",
            "HeHomTemSet"],
        "dat":[
            1,
            1,
            18,
            35,
            50,
            0,
            0,
            0,
            "eu.dis.gree.com",
            "",
            0,
            0,
            0,
            0,
            0,
            24,
            20
            ]
    }"
}

everything else works fine, i can even controll the unit if i change the fields.

@cmroche
Copy link
Owner

cmroche commented Jun 26, 2024

Can you describe what all of these new fields are please? @TheEris

I understand the Hi/Lo relation, but not really what the fields are reporting.

@cmroche cmroche added the question Further information is requested label Jun 27, 2024
@TheEris
Copy link
Author

TheEris commented Jun 27, 2024

@cmroche I've figured out only the most basic info as i wanted to just tract the water temperature. In the end i dont even control it from this. Here is what I know:

AllInWatTemHi/Lo - Water temperature returning to the pump
AllOutWatTemHi/Lo - Water temperature from the pump
RmoHomTemHi/Lo - temperature in the room (if you have room sensor)

as for the AnFrzzRunSta that should be anti freeze cycle, it newer changed from 0
rest are sensors that i dont have installed, so i cannot say what it is for sure.

Ill try to dig up some old notes when i was figuring it out the first time, or ill just try to reverse-engineer it again this weekend as now i have nodered setup for easy control of the packets.

@cmroche
Copy link
Owner

cmroche commented Jun 27, 2024

@TheEris Which sensor replaces TemSet then as the "Current Temperature" reported on the Climate device in HASS?

@cmroche
Copy link
Owner

cmroche commented Jun 27, 2024

Also, could you tell me what the HID value is? Usually dumped to logs, or you can query it.

@TheEris
Copy link
Author

TheEris commented Jun 27, 2024

That would be HeWatOutTemSet for heating and CoWatOutTemSet for cooling (as the temperature you want the water to be), you switch modes with Mod, I'll come back with values for Mod probably later this weekend

as for the HID value, im not sure what is that ?

@cmroche
Copy link
Owner

cmroche commented Jun 27, 2024

Send:

2024-06-27 17:08:28.325 DEBUG (MainThread) [greeclimate.network] Sending packet: {"cid": "app", "i": 0, "t": "pack", "uid": 0, "tcid": "f4911e7aca59", "pack": {"mac": "f4911e7aca59", "t": "status", "cols": ["hid"]}}

Will report

2024-06-27 17:08:28.601 DEBUG (MainThread) [greeclimate.network] Received packet: {"t": "pack", "i": 0, "uid": 0, "cid": "f4911e7aca59", "tcid": "", "pack": {"t": "dat", "mac": "f4911e7aca59", "r": 200, "cols": ["hid"], "dat": ["362001000762+U-CS532AE(LT)V3.31.bin"]}}

If you enable debug logs for greeclimate in hass this will dump out to the logs.

Or, just read back the value of HID like you would any other property on the device.

@cmroche cmroche added the enhancement New feature or request label Jun 27, 2024
@TheEris
Copy link
Author

TheEris commented Jun 29, 2024

ok, just got the HID value,

362001066763+U-W06A(P3)V6.04.bin

its same for both pumps (models smh-100irb and smh-60irb)

@cmroche
Copy link
Owner

cmroche commented Jun 30, 2024

@TheEris One more please, when binding, the devices will respond with a "bindok" message, could you paste the whole message (for both) please.

@TheEris
Copy link
Author

TheEris commented Jul 1, 2024

@cmroche sure

its the same response for both models, just different key and mac, pack is decoded in this snipped for easier reading (original is encoded with the default key a3K8Bx%2r8Y7#xDh)

{
    "t":"pack",
    "i":1,
    "uid":0,
    "cid":"<MAC>",
    "tcid":"app",
    "pack":"{
        "t":"bindok",
        "mac":"<MAC>",
        "key":"<KEY>",
        "r":200
    }"
}

btw, the whole discovery and values ive managed to find is in my older post here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants