Intelligent Connected Thermostat
This board is a response to the complete lack of intelligent connected thermostats on the market. Sure, there are plenty of devices that are called "smart", but they all have one thing in common, which is that their manufacturers are being "smart". They're pulling a fast one -- taking advantage of your lack of knowledge in order to charge you an absurdly high price for the privilege of having them install a data mining apparatus in your home. The one place where you should feel safe, and secure against surveillance.
We call this "Intelligent", because it respects YOUR intelligence. Open source firmware, standardized communications protocols, strong cryptographic security. You can self-host the services needed for secure remote access, rather than depending on an unknown black box. You are guaranteed that it will continue to operate for as long as you wish to use it, and not just until the service provider decides to pull the plug. You are assured that NOBODY can alter the features or conditions of your use of it behind your back. You have the freedom to alter its behavior in any way you wish.
There are no terms of service. No end user license agreement. No external account is required.
And nobody has access to your data besides YOU.
Photos
Complete unit, assembled by hand.
Specifications
- 50mm x 100mm
- Powered by 24 volt A/C from your furnace
- Espressif ESP32-WROVER-B module
- 240 MHz dual core microcontroller
- Bosch BME680 environmental sensor
- All solid state relays
- Multiple configurations possible
- Not just conventional single stage heating/cooling;
- Dual stage heating/cooling
- Heat by heatpump
- Emergency/Auxiliary heating
- 20 unused pins of the ESP32 are accessible on headers for expansion
- Because it is open source, any other configuration is possible as well.
Product Description
Please note that this is sold only as the assembled board. There is no fancy case, there is no display, and there are no buttons. It is recommended that the board be installed in an appropriately sized well ventilated project box. The interface is provided through an open source application to run on your smartphone, tablet, or television.
The board is programmed over a 3.3v UART.
The firmware and application we provide implement the Homie 4.0.0 specification for IoT. The user will be required to configure an MQTT server, such as Mosquitto, which is packaged with all major Linux distributions, including OpenWRT. Our recommended configuration for Mosquitto is SSL using self-signed certificates, with mandatory client certificates, and a password file. The reason for this, is that it causes both the client (Thermostat, smart phone application), and server, to authenticate each other cryptographically, and this dual authentication is only possible if both the server and client certificates are signed by the same certificate authority. With the certificate authority private key safely in your hands only, it makes unauthorized connections and eavesdropping as close to impossible as humanly possible.
Precise details for installing and configuring Mosquitto on OpenWRT will be provided in the Software and programming guide.
Software and Documentation
Software and programming guide -- Coming soon
Firmware source code -- Coming soon
Mobile application source code -- Coming soon
Questions and answers
How will this work if my internet connection goes down?
- If you configure your MQTT server at the same site as the thermostat, it will remain accessible on the local wifi network as long as it has power.
Since it has no battery, what happens if the power goes out while I'm on vacation and I don't know about it? Will my house freeze?
- The current settings are stored in the device's non-volatile memory every time the settings are adjusted. If the power goes out, it will resume the same state it was in as soon as it comes back online. Since your furnace can't operate without electric power anyway, there is no need to keep the thermostat powered during an outage.
I am interested in setting schedules based on the time of day. Is this possible?
- While there is no scheduling feature implemented in our firmware, schedules can easily be set through the use of standard Linux cron jobs to publish set messages to the MQTT server using commands such as "mosquitto_pub".
What happens if my wifi network crashes, or the MQTT server crashes? Will my thermostat stop working?
- The thermostat will continue to operate indefinitely, using the same settings that were last published to it. You will only lose the ability to monitor its status and publish changes to its settings until you correct the error.
What happens if the thermostat firmware crashes?
- The microcontroller includes a watchdog timer. If the thermostat firmware crashes, the watchdog timer will automatically reboot it, returning it to a functional state.
I would like to use this thermostat to manage a vacation rental property, but having renters set up an application on their phone is excessively complex. It would also provide them with too much access to my network and to the thermostat settings. I would like to make access easy for them, but also to restrict what they are able to control.
- The firmware we provide includes an HTTP server, as well as special rental property configurations. When connected to your wifi network, renters will be able to access the thermostat by entering the device name (such as "thermostat") into the address bar of any web browser on their phone, tablet, or laptop. They are able to see the current status of the thermostat, as well as change the set temperature within a configurable range.
I don't have a "C" wire (typically black or blue). Can I still use this thermostat?
- We recognize that a lot of older thermostat wiring installations will have been made without providing a "C" wire. In order to provide power to the microcontroller through the thermostat wiring, a "C" wire is required. If your installation doesn't include one, there are a number of options (first two options are preferred);
- If there is an unused wire in the bundle, it can be attached to the "C" terminal in your furnace and made into a "C" wire, regardless of its color. Be sure to inspect the wire carefully before concluding that it doesn't have a spare wire. Some furnace installers have been known to clip off extra wires, which you may be able to find by stripping the insulation back slightly, or by comparing the markings on the insulation with the number of visible wires.
- Install a new wire. We suggest 18 gauge with at least 8 conductors (commonly called "18/8").
- If the furnace control board can operate the fan independently of the signal, the fan wire (green) may be repurposed as a "C" wire. This option has a functional downside, which is the loss of independent fan control.
- This thermostat can also be powered by attaching a 3.3v DC power supply to the programming header.
I read something about controlling a gas fireplace. Wouldn't it be weird for a gas fireplace to be controlled by a thermostat? I like it for ambiance, so I just want it to switch on and off on demand.
- "Weird" is pretty subjective. Many people do control their fireplaces with a thermostat. Still, in our current implementation, the gas fireplace feature really works as an on-demand on/off switch, but with one thing extra; it will shut off automatically if the temperature reaches a maximum that you set (it won't automatically restart). This is a safety feature to prevent you from seriously overheating the room by accident.
I've heard that [brand g] "smart" thermostats have a reputation for damaging furnace control boards. How do I know that this thermostat won't do that?
- This damage is an unfortunate consequence of how they draw power from the furnace without using a "C" wire. The various facets of the furnace are switched on by attaching the "R" wire to the various outputs (A/C, heat, fan, etc.) This means that each of those outputs actually must connect to "C", although they only do so *through* whatever input they are triggering. So these "smart" thermostats draw a small current through several of the furnace's inputs in order to power themselves. The problem with this, is that furnaces are NOT designed to provide power in this manner. There is no specification that says how much current something can draw from one of the furnace's inputs before that input begins to trigger. If too much current is drawn through a furnace input (and this amount will differ from one furnace to the next), then that input may be partially or fully triggered. Being fully triggered is usually not a problem, since it will exhibit an obvious malfunction, however, being partially triggered will very likely cause damage, and you probably won't notice it happening until it actually fails.
- Our thermostat CANNOT draw power from furnace inputs. It will either trigger inputs fully (when that facet is demanded), or not at all.
I see the pictures of your thermostat, and I can't see any relays to output signals to the furnace? How does it work?
- You don't see any relays, because we don't use mechanical relays. There are 5 IC's labeled U30 through U34 in a row just above the wire terminals. These are solid state relays (SSR's) each capable of driving an output signal of up to 1.2A. SSR's have no mechanical parts to wear out, and operate without making an annoying "click" sound. You can expect many years of reliable service.
What about voltage surges? Your voltage regulator has an absolute maximum input of 45 volts. I've heard that furnace transformers can generate surges of nearly 100 volts!
- Our power input filter has two components; a (very large) 470 uF electrolytic capacitor, and a Transient Voltage Suppression (TVS) diode. In general, it takes many cycles of rectified AC power to charge the capacitor. The high voltage surges will be only for an extremely short duration while the transformer is being powered on, which means that the capacitor will be able to absorb the full surge before it is even charged. In addition, we include a TVS diode that has a job of essentially short circuiting excess voltage to ground. This guarantees that under no circumstances, will the voltage regulator be subjected to voltages in excess of its safe limit.
There are a couple of parts on the thermostat board that generate heat. I'm worried about false readings.
- We took extreme care to design the board so that the sensor would reliably measure the environment and not generate false readings from heat sources on the board.
- The sensor is located at a bottom corner of the board to maximize environmental exposure and minimize exposure to heat sources on the board itself.
- All heat producing components are located on the top edge of the board, so air will carry heat up away from the board instead of across it.
- The component that produces the greatest amount of heat, the voltage regulator, is located near the opposite side of the board from the sensor.
- There is a large gap in the copper on the board from the sensor area to the rest of the board, minimizing the amount of heat that can be conducted through copper to the sensor.
- A large heat dissipation pad, free from insulating solder mask, surrounds the sensor on both sides of the board.
- ENIG (gold plated) process is used to minimize corrosion and maximize heat dissipation from the heat dissipation pad.
Why did you use a small microcontroller for this board instead of a full blown SBC like ones named after a berry? I think that more power would be cool.
- There are several reasons for this choice...
- Contrary to the assertion that "more power would be cool", more power actually creates more heat, which can lead to false temperature readings.
- Size. Even as compared to certain "extremely small" SBCs, this choice allows us to make the board considerably smaller.
- Speed. What? Specifically time to boot. A low powered SBC can take minutes to boot up. With this microcontroller, it is fully operational in just a couple of seconds.
- Reliability. Certain events, like power failures, can lead to filesystem corruption on SBCs. If the filesystem becomes corrupt, the device will not boot. If the device will not boot, your furnace won't turn on, and if you live in a harsh wintery climate, your house could freeze, causing burst plumbing and potentially even foundation damage.
- We simply do not need any more "performance". By default, I actually underclock the CPU on this microcontroller to 80 MHz (240 MHz is the max). If further data logging, analysis, graphing, or other heavy processing loads are required, those can be performed by any device that is able to connect with the MQTT server, and they can do it without impacting the reliability of the thermostat.
If the performance needs are so low, why did you use the dual core ESP32 instead of the less expensive single core ESP8266?
- Because the ESP32 implements Bluetooth and Bluetooth LE. While not currently in use, I have some big ideas for it that involve battery powered devices.
I'm very interested in this thermostat, but the only thing keeping me from buying it right now is that I really need it to be able to do [feature X].
- I would love to hear what additional features you would like to have. Be sure to contact us about it. If its a good feature, we would love to implement it, and maybe have already. Note that we do not guarantee that we will implement all feature requests, for various reasons. If we can't implement your feature request, please don't forget that we do provide the source code.
Pricing and Availability
Small orders are available for $125 Canadian per unit. Shipping, import duties, taxes, are in addition.
Please contact us to place an order.
For large orders, please contact us regarding volume pricing and lead times.