- Notifications
You must be signed in to change notification settings - Fork64
MQTT Bridge for controlling Gree smart air conditioners, e.g. with Home Assistant or OpenHAB
License
arthurkrupa/gree-hvac-mqtt-bridge
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Bridge service for communicating with Gree air conditioners using MQTT broadcasts. It can also be used as aHass.io addon.
- NodeJS (>=11.0.0) with NPM
- An MQTT broker and Gree smart HVAC device on the same network
- Docker (for building Hass.io addon)
Make sure you have NodeJS (>=8.11.0) installed and run the following (adjust the arguments to match your setup):
npm installnode index.js \ --hvac-host="192.168.1.255" \ --mqtt-broker-url="mqtt://localhost" \ --mqtt-topic-prefix="home/greehvac" \ --mqtt-username="" \ --mqtt-password=""
MQTT topic scheme:
MQTT_TOPIC_PREFIX/COMMAND/get
Get valueMQTT_TOPIC_PREFIX/COMMAND/set
Set value
Note:boolean values are set using 0 or 1
Command | Values | Description |
---|---|---|
temperature | any integer | In degrees Celsius by default |
mode | off,auto,cool,heat,dry,fan_only | Operation mode |
fanspeed | auto,low,mediumLow,medium,mediumHigh,high | Fan speed |
swinghor | default,full,fixedLeft,fixedMidLeft,fixedMid,fixedMidRight,fixedRight | Horizontal Swing |
swingvert | default,full,fixedTop,fixedMidTop,fixedMid,fixedMidBottom,fixedBottom,swingBottom,swingMidBottom,swingMid,swingMidTop,swingTop | Vetical swing |
power | 0,1 | Turn device on/off |
health | 0,1 | Health ("Cold plasma") mode, only for devices equipped with "anion generator", which absorbs dust and kills bacteria |
powersave | 0,1 | Power Saving mode |
lights | 0,1 | Turn on/off device lights |
quiet | 0,1,2,3 | Quiet modes |
blow | 0,1 | Keeps the fan running for a while after shutting down (also called "X-Fan", only usable in Dry and Cool mode) |
air | off,inside,outside,mode3 | Fresh air valve |
sleep | 0,1 | Sleep mode |
turbo | 0,1 | Turbo mode |
The service can be used as a 3rd party addon for the Hass.ioMQTT climate platform, although not all commands are supported.
- Install the addon
- Customize addon options (HVAC host, MQTT broker URL, MQTT topic prefix)
- Add the following to your
configuration.yaml
climate: -platform:mqtt# Change to whatever you wantname:Gree HVAC# Change MQTT_TOPIC_PREFIX to what you've set in addon optionscurrent_temperature_topic:"MQTT_TOPIC_PREFIX/temperature/get"temperature_command_topic:"MQTT_TOPIC_PREFIX/temperature/set"temperature_state_topic:"MQTT_TOPIC_PREFIX/temperature/get"mode_state_topic:"MQTT_TOPIC_PREFIX/mode/get"mode_command_topic:"MQTT_TOPIC_PREFIX/mode/set"fan_mode_state_topic:"MQTT_TOPIC_PREFIX/fanspeed/get"fan_mode_command_topic:"MQTT_TOPIC_PREFIX/fanspeed/set"swing_mode_state_topic:"MQTT_TOPIC_PREFIX/swingvert/get"swing_mode_command_topic:"MQTT_TOPIC_PREFIX/swingvert/set"power_state_topic:"MQTT_TOPIC_PREFIX/power/get"power_command_topic:"MQTT_TOPIC_PREFIX/power/set"# Keep the following as ispayload_off:0payload_on:1modes: -"off" -"auto" -"cool" -"heat" -"dry" -"fan_only"swing_modes: -"default" -"full" -"fixedTop" -"fixedMidTop" -"fixedMid" -"fixedMidBottom" -"fixedBottom" -"swingBottom" -"swingMidBottom" -"swingMid" -"swingMidTop" -"swingTop"fan_modes: -"auto" -"low" -"mediumLow" -"medium" -"mediumHigh" -"high"
Hass.io doesn't supply separate on/off switch. Use the dedicated mode for that.
Create an./data/options.json
file inside the repo with persistent addon configuration.
docker build \ --build-arg BUILD_FROM="homeassistant/amd64-base:latest" \ -t gree-hvac-mqtt-bridge.docker run --rm -v"$PWD/data":/data gree-hvac-mqtt-bridge
To run it when the PC starts, a systemd service has to be created by following the following commands.
sudo cp /opt/gree-hvac-mqtt-bridge/gree-bridge.service /etc/systemd/system/gree-bridge.servicesudo chmod +x /etc/systemd/system/gree-bridge.servicesudo systemctlenable gree-bridgesudo systemctl start gree-bridge
As of 1.2.0 the Hassio addon supports multiple devices by running paralell NodeJS processes in PM2. Old configurations will work, but will run without PM2.
config example:
{"mqtt": {"broker_url":"mqtt://localhost","username":"user","password":"pass","retain":false },"devices": [ {"hvac_host":"192.168.0.255","mqtt_topic_prefix":"/home/hvac01" }, {"hvac_host":"192.168.0.254","mqtt_topic_prefix":"/home/hvac02" } ]}
- Make sure your HVAC is running in AP mode. You can reset the WiFi config by pressing MODE +WIFI (or MODE + TURBO) on the AC remote for 5s.
- Connect with the AP wifi network (the SSID name should be a 8-character alfanumeric, e.g. "u34k5l166").
- Run the following in your UNIX terminal:
echo -n"{\"psw\":\"YOUR_WIFI_PASSWORD\",\"ssid\":\"YOUR_WIFI_SSID\",\"t\":\"wlan\"}"| nc -cu 192.168.1.1 7000
Note: This command may vary depending on your OS (e.g. Linux, macOS, CygWin). If facing problems, please consult the appropriate netcat manual.
[1.2.4]
- Updated NPM dependency versions to more current (~2 years old!)
- Defined fsevents as optional for linux based platforms
- as of 4/26/2021 "found 0 vulnerabilities"
- UDP Datagram warning is fixed with later versions
[1.2.3]
- Fix run script for single device with same configuration
- Run single device as a systemd service
- Add option to MQTT for retain flag
[1.2.2]
- Fix incorrect state checks
[1.2.0]
- Add multiple device support
- Update config with supported architectures
- Fix state being published even if nothing changed
[1.1.2]
- Discovered codes added for Air and Quiet to avoid errors
- Added swingHor mode codes
[1.1.1]
- Add Turbo mode
[1.1.0]
- Add support for MQTT authentication
- BREAKING: Update MQTT mode state names to match Hass.io defaults
- Add support for new modes: Air, Power Save, Lights, Health, Quiet, Sleep, Blow
- Fix deprecated Buffer() use
[1.0.5]
- Add Hass.io API security role
[1.0.4]
- Bump NodeJS version to 8.11.2
[1.0.3]
- Fix power off command
[1.0.2]
- Bump NodeJS version to 8.9.3
[1.0.1]
- Update MQTT version
- Add UDP error handling
- Extend Readme
[1.0.0]First release
This project is licensed under the GNU GPLv3 - see theLICENSE.md file for details
- tomikaa87 for reverse-engineering the Gree protocol
- oroce for inspiration
- arthurkrupa for the actual service
- bkbilly for service improvements to MQTT
- aaronsb for sweeping the Node floor
About
MQTT Bridge for controlling Gree smart air conditioners, e.g. with Home Assistant or OpenHAB