Discover, connect and control Gree based minisplit systems
Project description
Gree Climate
Discover, connect and control Gree based mini-split systems.
greenclimat is a fully async Python3 based package for controlling Gree based ACs and heat pumps. Gree is a common brand for mini-split systems and is licensed and resold under many product names. This module should work for any device that also works with the Gree+ app, but has been tested on
- Trane mini-split heat pump (4TXK38)
If you have tested and know of others systems that work, please fork and submit a PR with the make and model
Based on the following work
Getting the package
The easiest way to grab greeclimate is through PyPI
pip3 install greeclimate
Use Gree Climate
Finding and binding to devices
Scan the network for devices, select a device and immediately bind. See the notes below for caveats.
try:
if not self._device_key:
devices = await Discovery.search_devices()
if self._mac:
deviceinfo = next((d for d in devices if d.mac == self._mac), None)
else:
deviceinfo = next((d for d in devices if d.ip == self._ip), None)
else:
deviceinfo = DeviceInfo(self._ip, self._port, self._mac, self._name)
device = Device(deviceinfo)
await device.bind(key=self._device_key)
except Exception:
raise CannotConnect
Caveats
Devices have and use 2 encryption keys. 1 for discovery and setup which is the same on all gree devices, and a second which is negotiated during the binding process.
Binding is incredibly finnicky, if you do not have the device key you must first scan and re-bind. The device will only respond to binding requests immediately proceeding a scan.
Update device state
It's possible for devices to be updated from external sources, to update the Device
internal state with the physical device call Device.update_state()
Properties
There are several properties representing the state of the HVAC. Setting these properties will command the HVAC to change state.
Not all properties are supported on each device, in the event a property isn't supported commands to the HVAC will simply be ignored.
When setting a value it is cached but not pushed to the device until Device.push_state_update()
is called.
device = Device(...)
device.power = True
device.mode = Mode.Auto
device.target_temperature = 25
device.temperature_units = TemperatureUnits.C
device.fan_speed = FanSpeed.Auto
device.fresh_air = True
device.xfan = True
device.anion = True
device.sleep = True
device.light = True
device.horizontal_swing = HorizontalSwing.FullSwing
device.vertical_swing = VerticalSwing.FullSwing
device.quiet = True
device.turbo = True
device.steady_heat = True
device.power_save = True
# Send the state update to the HVAC
await device.push_state_update()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for greeclimate-0.9.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9758ff1c0a4e27dfb0604e8b863d8f7e08462169cfb6491a562de31eaa315a99 |
|
MD5 | 42c1babc11ed283442f3d11fe04230cf |
|
BLAKE2b-256 | 12cc5ad1510268ed3310bea5aad26b1166f60080cfd6681ed4e6230eb34f114c |