It's... it's working... for real!

A project log for Let me control you: Hitachi air conditioner

An attempt to wirelessly control an old Hitachi air conditioner

FlorianFlorian 05/16/2021 at 08:280 Comments

I spent my Golden Week holidays looking in depth in this GUI tool and after a week of trial and error I managed to send but also receive data from Home Assistant.

How do you ask?

  1. first, in Home Assistant I switched from deCONZ to Zigbee2MQTT plus Mosquitto broker.
  2. using the GUI tool, I created a custom firware with OUTPUT1 set to P0.2 and to UART with a baudrate of 9600 and 0x0D as an end packet.
  3. I then flashed my ZIgbee module with that custom firware.
  4. in Home Assistant, from Zigbee2MQTT dashboard I allowed devices detection by clicking "Permit join (all)".
  5. I then connected my Zigbee module to my FTDI USB to TTL Serial Adapter, powered it up and opened Termite on my computer.
  6. After about 20 seconds, a new device appeared in Zigbee2MQTT dashboard. I renamed it "Proto" and added it to Home Assistant.
  7. Then, I went to Configuration > Integrations > Mosquitto broker > Configure and in "Publish a packet" I wrote the payload "test" to the topic zigbee2mqtt/Proto/set/action.
  8. Like magic, the text "test" appeared in my Termite window.
  9. I returned to Home Assistant and this time, in "Listen to a topic" I entered zigbee2mqtt/Proto/action and clicked "START LISTENING".
  10. Back to my Termite window I typed "test again" and... again like magic, the same text appeared in Home Assistant.

Following this small success, I read here and there about how air conditioners are normaly controled via Home Assistant and it's all about a "climate entity" and the "thermostat" card in Lovelace.

Hopefully, there is a way to create such a climate entity when using MQTT: MQTT HVAC
Perfect! This week I'm gonna look for more examples on how to create such an entity and try to make on. 

Now that I managed to transmit data to Home Assistant, the overall connection diagram should look something like that: