/Rotel-A12MKII-Homekit

Adding Rotel A12MKII Amplifier naively to HomeKit using an ESP32 and Homespan

Primary LanguageCMIT LicenseMIT

Rotel-A12MKII-Homekit 📻

Technologies Getting Started

This project is used to add the Rotel A12MKII Amplifier to HomeKit using an ESP32 and Homespan over RS232. Works also for Rotel A14, A14MKII, and A12.

🎨 Layout

Home App Main Page showing the Amp and the Amp Settings accessories Input Selection Input Selection settings Additional control accessories Control accessory with top controls Control accessory with bottom controls

💻 Technologies

It is based on the Homespan library only to make as simple as possible You will also require an ESP32

🚀 Getting started

Download the 4 files located inside the Rotel-Homespan folder and open it inside the Arduino IDE.

Connect the ESP32 to you computer and load it in !

There are 2 optional variables in the code at the top.

  • The first is used to determine how often the ESP32 is asking the current state of the amp. Default is 5 minutes as for each actions, the amp is already sending this information
  • the second information is to disable the second accessory used for the additional controls of the amp (volume, speakers, etc...)

Prerequisites

  • An ESP32 is of course required. You can get one on amazon for less then 20€.

  • Follow the instructions install the Homespan library on the Arduino IDE (if you are new to ESP32, the instructions include already everything you need)

  • It requires to connect a MAX3232 to pins used for TTL2 (typically 16 & 17 for RX & TX respectively), and use a crossed RS232 cable to connect to the amp.

ESP32 and MAX3232 soldered on prototype board

Starting

Once the ESP32 is booted, follow the instructions to add a new Homespan device to HomeKit. Two Accessories will show up in your Home app under the TV section. The first one is the Rotel Amplifier, the second one will be a supplemental accessory with multiple switches allowing you to control other elements via HomeKit and it's automations (which speaker is turned on, volume, etc...)

📫 Contribute

This is probably my first and biggest code in C++. It is very ugly, so if you have other propositions, feel free to contribute !

Documentations that might help