Frequently asked questions

for HomeKit Accessory Architect


Q: What is HAA?

A: HomeKit Accessory Architect is a firmware for ESP8266 devices, which adds native HomeKit support.


Q: Do I have to pay to install the Homekit firmware? Where to find it?

A: The firmware is free and open source. If someone is trying to sell it to you, it is a scam.


Q: How to flash HAA on my device?

A: You can learn how to flash HomeKit Accessory Architect here - easy way or manual way


Q: How to put device in Flash mode?

A: To make it possible to flash firmware on the ESP8266 device, you need to enter Flash mode. To do that, you need to connect GND to GPIO0 before connecting your flashing adapter (and ESP device) to power. Then after you’ve powered the device, wait 3-5 seconds and disconnect the GND to GPIO0 wire. Now the device should be in Flash mode and ready for flashing.


Q: Can I control my HomeKit devices from outside of my home (network)?

A: Yes! Remote accessing your HomeKit devices requires that you have a HomeKit hub. This can be an Apple TV (4-th gen and newer), an iPad (iPad Air and newer), a HomePod or a JailBroken iPhone running iOS 10-12.4. HomeKit hub must be powered and connected to your home network at all times.


Q: I flashed the device successfully, but it does not appear to work?

A: When flashing the firmware on the device, make sure to erase the flash prior to flashing. Also for some devices, the power provided by the serial adapter and your pc might be insufficient, therefore you should try connecting it to power using 12-24V or whatever the device runs on.


Q: After initial setup and correct JSON, why is the device is unresponsive and not showing in Home app?

A: After flashing and initial setup - connecting to network and setting JSON, the device reboots by itself and begins downloading the latest version of HAA. This step takes about 4-6 minutes.


Q: After initial setup and correct JSON, why is the device is unresponsive?

A: After flashing and initial setup - connecting to network and setting JSON, the device reboots by itself and begins downloading the latest version of HAA.


Q: What to paste in the JSON Config field?

A: The firmware needs info about the device it is on and what where is connected. Therefore we supply it with a JSON string containing all this information.


Q: I made a mistake in the configuration file. How to access the device configuration page?

A: If you input a JSON configuration string that has errors, the device should enter Setup mode automatically and you should be able to access it at its IP address or Hostname.


Q: I want to change the device configuration. How to access the device config page?

A: To access the configuration page to change device JSON config, you need to put the device in Setup Mode. You can do that using any additional input for that (you can have a HomeKit/physical button for enabling setup mode) or by default by clicking the device button rapidly 7-10 times (in Home app or physically).

NOTE: If you make changes in your JSON that involve accessory types, number of used accessories or change the order of them, you must check Reset HomeKit ID from within setup mode and remove your device from HomeKit; and then you must pair it again.


Q: I can’t enter setup mode using button. How do I enter it to remove/restart WiFi information or change JSON?

A: An alternative way to enter (Emergency) Setup Mode is to turn off the device from power and then do: plug to power, plug off, plug to power. This should put the device in Setup mode, as turning off device within 3 seconds after boot puts it in Setup Mode.


Q: I can’t update the firmware. :(

A: GitHub servers, used to update firmware by OTA procedure, did some changes and now OTA updates are broken for older versions. New installations have been fixed and they will work. Ensure that you are using the last haaboot.bin or haa-single.bin.


Q: I am facing other problems that don’t seem to have a solution, how do I report them to the developer?

A: You can place an issue here in the HAA GitHub issues or you can also support the project by contributing.