A library for interfacing with Mitsubishi HVAC with the ECHONET-lite protocol over WiFi adaptors such as the MAC-568IF-E.
It is specifically designed for use with Home Assistant, and its functionality is limited to HVAC systems, but it could be potentially extended for other ECHONET-lite applications and become a more general purpose library.
Similar implementations seem to be Node JS middleware running on Docker containers to interface into the MQTT API however this is designed to be used as a straight up library, no middleware, Node JS or Docker containers needed!
It is designed to work with Python 3.7 out of the box as that was the environment I was working on.
Simplest way to install is to use pip:
pip install mitsubishi_echonet
aircons = mit.discover('Home air conditioner')
aircon = aircons[0]
aircon.on()
aircon.off()
aircon.getOperationalStatus()
{'status': 'off'}
aircon.setOperationalTemperature(25)
aircon.getOperationalTemperature()
{'set_temperature': 25}
supported modes = 'auto', 'cool', 'heat', 'dry', 'fan_only', 'other'
aircon.setMode('cool')
aircon.getMode()
{'mode': 'cool'}
Note - your HVAC may not support all fan speeds.
supported modes = 'auto', 'minimum', 'low', 'medium-Low', 'medium', 'medium-high', 'high', 'very high', 'max'
aircon.setFanSpeed('medium-high')
aircon.getFanSpeed()
{'fan_speed': 'medium-high'}
Useful for split systems Note - your HVAC may not support all swing modes.
supported modes = 'not-used', 'vert', 'horiz', 'vert-horiz'
aircon.setSwingMode('vert')
aircon.getSwingMode()
{'swing_mode': 'vert'}
Useful for split systems Note - your HVAC may not support all modes.
supported modes = 'auto', 'non-auto', 'auto-horiz', 'auto-vert'
aircon.setAutoDirection('auto')
aircon.getAutoDirection()
{'auto_direction': 'auto'}
Useful for split systems Note - your HVAC may not support all modes.
supported modes = 'upper', 'upper-central', 'central', 'lower-central', 'lower'
aircon.setAirflowVert('central')
aircon.getAirflowVert()
{'airflow_vert': 'central'}
### Get HVAC attributes at once:
```python
aircon.update()
{'status': 'On', 'set_temperature': 25, 'fan_speed': 'medium-high', 'room_temperature': 25, 'mode': 'cooling'}
NOTE: For Home Assistant users there is now a dedicated repo for the related Home Assistant 'Mitsubishi' custom component that makes use of this Python library: (https://github.com/scottyphillips/mitsubishi_hass)
'example.py' gives you an idea how to drive the HVAC directly from Python using this library.
Thanks to Masaki Tagawa, Paul, khcnz, and Kolodnerd for each contributing code updates to v0.5.
Thanks to Karl Chaffey, Dick Swart, and Alfie Gerner for contributing code updates for v0.4.
Thanks to Jeffro Carr who inspired me to write my own native Python ECHONET library for Home Assistant. I could not get his Node JS Docker container to work properly on Hass.io :-) Some ideas in his own repo got implemented in my own code. (https://github.com/jethrocarr/echonetlite-hvac-mqtt-service.git)
Also big thanks to Futomi Hatano for open sourcing a high quality and extremely well documented ECHONET Lite library in Node JS that formed the basis of my reverse engineering efforts. (https://github.com/futomi/node-echonet-lite)
This application is licensed under an MIT license, refer to LICENSE for details.