MQTT-AC-Controller
                                
                                 MQTT-AC-Controller copied to clipboard
                                
                                    MQTT-AC-Controller copied to clipboard
                            
                            
                            
                        Wi-Fi enabled AC Controller that works with HomeBridge
ESP8266 Wifi AC Controller

Code for ESP8266 Microcontrollers that control my DIY Air-Conditioner remote. Code in this repo is intentionaly to use with Homebridge MQTT plugin on raspberry Pi. I made a circuit and enclosure by myself. I know that my circuit might need to add some resistors, feel free to edit it in your design.
Features
- Display NTP Clock when standby.
- Simple button control. Power, Temp up/down.
- Can control temperature, swing, fan speed and mode with HomeKit.
- Auto brightness according to ambient light.
- OTA Firmware upgrade.
- Control via HomeKit using HeaterCooler Service (iOS 11+)
- Control via HomeKit(Below iOS 11), Amazon Alexa using Fan service because it does not support AC control.
Hardware
- ESP8266 NodeMCU
- OLED 256×64 SSD1332
- LDR(Light Dependent Resistor)
- Push Button
- IR LED and LED (normal led for indicate when IR is emitting)
- NPN Transistor BC338 - for increse voltage level for IR LED

Add this devices to Homebridge-MQTT
You can use program like MQTTLENS to send this command
Topic
homebridge/to/add
Payload
{
  "name": "Smart AC",
  "service_name": "smart_ac",
  "service": "HeaterCooler",
  "manufacturer": "ESP8266",
  "firmwarerevision": "1.0.0",
  "SwingMode": 1,
  "RotationSpeed": {"maxValue":3, "minValue": 0, "minStep": 3},
 "CoolingThresholdTemperature": {"maxValue":28, "minValue": 18, "minStep": 1}
}
Instruction
- I didn't made this project to supports all AC. It requires some modification to works with your AC. Please take a look at IRremoteESP8266 library which supports variety of AC brand.
- I developed this program with VSCode with PlatformIO plugin. Please install all missing libraries with PlaformIO
- Don't forget to change MQTT server ip address to match yours.
- For the first time, use Wifi setup to connect to your router.
Dependencies
- PubSubClient
- IRremoteESP8266
- U8g2
- WifiManager
- ArduinoJson
Known issues
- Schematics can be improved.
- Interrupt can cause system crash.