Package: mitsubishi-echonet
Mitsubishi EchonetA 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.InstructionsSimplest way to install is to use pip:pip install mitsubishi_echonetBasic usageDiscover a list of HVAC using:aircons=mit.discover('Home air conditioner')aircon=aircons[0]Turn HVAC on or off:aircon.on()aircon.off()aircon.getOperationalStatus(){'status':'off'}Set or Get a HVACs target temperatureaircon.setOperationalTemperature(25)aircon.getOperationalTemperature(){'set_temperature':25}Set or Get a HVACs mode of operation:supportedmodes='auto','cool','heat','dry','fan_only','other'aircon.setMode('cool')aircon.getMode(){'mode':'cool'}Set or Get a HVACs fan speed:Note - your HVAC may not support all fan speeds.supportedmodes='auto','minimum','low','medium-Low','medium','medium-high','high','very high','max'aircon.setFanSpeed('medium-high')aircon.getFanSpeed(){'fan_speed':'medium-high'}Set or Get a HVACs swing mode:Useful for split systems
Note - your HVAC may not support all swing modes.supportedmodes='not-used','vert','horiz','vert-horiz'aircon.setSwingMode('vert')aircon.getSwingMode(){'swing_mode':'vert'}Set or Get a HVACs automatic direction mode:Useful for split systems
Note - your HVAC may not support all modes.supportedmodes='auto','non-auto','auto-horiz','auto-vert'aircon.setAutoDirection('auto')aircon.getAutoDirection(){'auto_direction':'auto'}Set or Get a HVACs vertical airflow direction:Useful for split systems
Note - your HVAC may not support all modes.supportedmodes='upper','upper-central','central','lower-central','lower'aircon.setAirflowVert('central')aircon.getAirflowVert(){'airflow_vert':'central'}### Get HVAC attributes at once:```pythonaircon.update(){'status':'On','set_temperature':25,'fan_speed':'medium-high','room_temperature':25,'mode':'cooling'}Using this library with Home AssistantNOTE: 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.ThanksThanks to Karl Chaffey for contributing code updates for v0.4Thanks 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)LicenseThis application is licensed under an MIT license, refer to LICENSE for details.