Gree versati 3 integration

Hi everyoneđź‘‹

I created a custom Gree Versati 3 Local integration for Home Assistant.

It connects directly over Wi-Fi using the device UDP JSON protocol, so:

  • No RS485
  • No Modbus adapters
  • No cloud dependency
  • Fully local LAN control

You can install it via HACS (Custom Repository).

GitHub:


Current features

  • Local UDP communication
  • Auto-detects ECB / GCM encryption
  • Config Flow (UI setup)
  • Polling via DataUpdateCoordinator (default 30s, configurable)

Entities:

  • Number: HeWatOutTemSet (20–60°C)
  • Sensors:
    • HeWatOutTemSet
    • WatBoxTemSet
    • TemUn
    • AllErr
    • Mod
    • Pow

Services:

  • gree_versati.set_param
  • gree_versati.get_params

It does not expose everything yet, but it already allows basic control and monitoring.

1 Like

Hi, thank you for your work. Yesterday, I tried to get a 16-byte AES key string from Versati 3, but unfortunately without success. I tried many methods, even with the help of AI, where we listened in on traffic using Python. Still no success. Do you know of any guaranteed method that works?

Hi @MarekBrz108
Did you try this command? What result did you get?

...gree-remote$ python3 PythonCLI/gree.py search -b <gree versati ip>
Searching for devices using broadcast address: <gree versati ip>
Search finished, found 1 device(s)
Binding device: <gree versati ip> (, ID: yyyyyyy)
Bind to yyyyyyy succeeded, key = xxxxxxx

Hi, yes, I tried countless times. I also tried to unpair from the GREE+ application and log in to the local wifi Versati 3, I also tried during the process of new pairing in the application, whether the path to the key is erased. And many other attempts with the help of AI. Still unsuccessfully searching for the key. The IP address of the communicator, finds the ID, but not the key. I keep reading the message:

Search finished, found 1 device(s)
Binding device: XXX.XXX.XXX.XXX (, ID: xxxxxx, encryption: GCM)
Device XXX.XXX.XXX.XXX is not responding on bind request

I even managed to add a device via the GREE A/C integration, where this device was found under the name GREE XXXX, of course the entities are not correct, but I thought that this integration got the required key. But when I looked in .storage and core.config_entries, the field under this device was empty, or rather there was literally this:

encrypted key: “:”"

Actually, I also didn’t get this result on the first try. You can also try:
python3 PythonCLI/gree.py search -b <subnet broadcast address>
or
python3 PythonCLI/gree.py search -b <gree ip> -i <id>

You may also want to search through the issues in this repository:

I didn’t reset my Gree Versati Wi-Fi module. It is still connected to the Gree+ app.