wirestat is a compact gadget that bridges the gap between traditional wired household thermostats and ductless mini split systems. With wirestat, you can control your mini split using familiar thermostats, whether it's an old-school thermostat like Honeywell or a smart thermostat like Nest or Ecobee.
Why did I create wirestat?
- I wanted a consistent thermostat experience for my central AC and mini splits.
- I prefer traditional thermostats to smartphone apps and remote controls.
- I was frustrated by the lack of precise control over temperature swings and other settings.
- Ultimately, I wished I could use a regular household thermostat for my mini split.
wirestat is not another smart thermostat. It is actually pretty dumb:
- No buttons.
- No app.
- No internet.
At this point in time, wirestat is a DIY project: All parts have to be sourced and assembled yourself. I might create and sell a small batch at cost some time in the future. Please get in touch with me (see contact section below) if you are interested in a physical copy.
wirestat continuously monitors your thermostat. When it detects a call (e.g., a call for cooling), it relays the command to your mini split's indoor unit (IDU) via an infrared signal.
Examples:
- Thermostat calls for Stage 1 Cooling -> send "Cool / 70 Degree / Fan Low" to IDU
- Thermostat calls for Stage 2 Cooling -> send "Cool / 70 Degree / Fan Auto" to IDU
- Thermostat calls for Fan => send "Fan Auto" to IDU
wirestat supports the following inputs:
Symbol | Descr |
---|---|
G1 | Fan (stage 1) |
G2 | Fan (stage 2) |
G3 | Fan (stage 3) |
Y1 | Cooling (stage 1) |
Y2 | Cooling (stage 2) |
W1 | Heating (stage 1) |
W2 | Heating (stage 2) |
It's fine if you thermostat does not support all of the above inputs. If you thermostat only supports a single stage for fan, cooling and heating, you only need to wire G1, Y1 and W1.
Each relevant input scenario is mapped to an infrared signal for the IDU.
Example:
G1 | G2 | G3 | Y1 | Y2 | W1 | W2 | Infrared Signal for IDU |
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 | OFF |
1 | 0 | 0 | 0 | 0 | 0 | 0 | Fan (low) |
... | ... | ... | ... | ... | ... | ... | ... |
0/1 | 0/1 | 0/1 | 1 | 0 | 0 | 0 | Cool (72F) / Fan (low) |
0/1 | 0/1 | 0/1 | 0 | 1 | 0 | 0 | Cool (72F) / Fan (high) |
... | ... | ... | ... | ... | ... | ... | ... |
wirestat is an experimental hobby project. I've put it together without a background in electrical engineering - use the provided circuit, firmware and enclosure at your own risk.
The firmware was developed using the Arduino IDE.
Source: wirestat.ino
The schematics were drawn in KiCad.
Source: wirestat.kicad_sch
The enclosure was designed in Blender and printed on a Bambu Lab X1 Carbon 3D printer.
Blender file:
STL exports:
wirestat operates on a 24V AC input, making it fully compatible with the standard power supply used by regular household thermostats.
You have two options to power wirestat:
- Utilize the existing power supply of your thermostat, or
- Purchase an AC 24 Volt Transformer to power both wirestat and your thermostat.
I've sources some components (e.g., the transistor and infrared LED) from existing boards and Arduino starter kits. Accordingly, I do not have a datasheet for those components.
Symbol | Confirmed | Description | Count | Unit Price | Total |
---|---|---|---|---|---|
U1 | ✅ | ESP32 Development Board | 1 | $9.99 | $9.99 |
U2-U8 | ✅ | SFH620AGB Optoinsulator | 7 | n/a | $4.22 |
R1 | ✅ | 10 kΩ Resistor | 1 | $0.10 | $0.10 |
Q1 | ❔ | 2N3904 NPN Transistor | 1 | $0.13 | $0.13 |
D2 | ❔ | IR LED 940NM | 1 | $0.58 | $0.58 |
PS1 | ✅ | AC to DC Buck Step Down Converter | 1 | n/a | $8.99 |
PS1 | ✅ | 20x4 I2C LCD Module | 1 | $12.99 | $12.99 |
I used IRrecvDumpV2 to reverse engineer the infrared commands for my indoor unit.
Based on my little bit of research, it is required to include the following resistors:
- A ~220Ω resistor between GPIO 5 and the transistor's base.
- A ~22Ω resistor between +3.3V and the infrared LED's anode.
However, the circuit suggested in the IR Sending guide connects the transistor and infrared LED directly to the pins of the NodeMCU board:
The circuit operates effectively without resistors, and their absence notably extends the LED's range. I conducted a 24-hour stress test, during which the circuit continuously transmitted infrared signals. Both the transistor and the LED performed reliably throughout. Therefore, I've decided to proceed with the sub-circuit without resistors for now.
Contributions are always welcome! You can either
- submit a pull request,
- create an issue in GitHub's issue tracker or
- reach out via email at ${firstname}.${lastname}@gmail.com (replacement of placeholders left as exercise to the reader).
I would love to hear from you.