- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
I SWEAR it’s impossible to make fun of the selfhosting / hacking communities. I made a joke once that they should hack a toothbrush then I found they already did
Tape a raspberry pi to the wall with some relays and a temperature sensor dangling and call it a day. Anything else is spying on you.
As the other poster said, both Zigbee and Zwave devices do not talk to the Internet. They can’t even connect to your Wi-Fi anyway. They need to connect to a device that acts as a router but specifically for Zigbee or Zwave, usually called a Hub or Coordinator.
There’s many different hubs around. Many commercial ones do indeed connect directly to the WiFi and therefore internet. But nothing is stopping you from buying a USB Dongle Hub with open source firmware and plugging it into a Raspberry Pi, if you want to eliminate the potential spying.
The Zigbee and Zwave networks inherently cannot communicate with the Internet. So the only risk of spying is if you installed something in the Raspberry that spies on you.
Both Philips Hue and IKEA Trådfri and many other vendors simply use Zigbee, which means you can bring your own Hub and completely eliminate the risk of spying.
Do you trust every device you buy without question?
Nope, but I trust the ones that lack the hardware for dialing home.
But generally I don’t buy devices unless I have reason to trust them.
Well that’s not quite true.
I have some z-wave thermostats, which I know do not talk to the Internet, just a local system with a zwave dongle.
For a relative, recently set up a similar setup, but with a homekit thermostat. Similar deal, though it really really wanted to connect to a cloud server and you kind of had to trick it to a non apple homekit setup. The follow on model from that brand did drop homekit support, presumably because they wanted to force their cloud servers, which became required for any advanced functionally.
There are ways to get automation friendly devices without a cloud connected requirement, though admittedly you have to be paying pretty close attention. Generally offerings for business are more likely to be locally workable, but that’s hardly a given either
Most programmers (those doing fancy GUIs and C# programming on a PC) would be seriously out of their league if they ever actually tried to program such a thermostat. Or any other embedded system. You really need a special skillset and hardware knowledge to even get a simple embedded system running. This is what my trainee just learned the hard way in the last weeks…
Except thermostats. You literally could do it with a Raspberry Pi, some 24V relays and a temperature sensors. Thermostats are not that hard.
Raspi is overkill. Mine runs off an esp32 using code I wrote in Arduino. The web interface takes up more space than the code. Only reason it’s an esp32 instead of an Atmega 328p is the wifi support
Smart thermostats do way more than just set the temperature: that’s just table stakes and of course easy. Off the top of my head the ecobee will:
-
Set the temperature also taking the room’s humidity into account
-
Communicate with sensors throughout your house
-
Can change things via the Internet in case you accidentally forget to set it to a better temperature when you’ll be gone for a few days
-
Tweak your schedule based on demand
I’m probably missing things, but they’re actually pretty useful, and I’m someone who thinks most IoT is shit.
Which are all things you can easily do with an RPi and some simple python. My response was to OP stating that embedded systems are hard.
If you’re using a specific embedded system and want to make it pretty, sure that could pose some issues, but if you want to make something functional that matches what a smart thermostat can do, there’s not much behind it.
Programmers love to oversimplify things, like “do easily with an RPi and some simple Python” is kinda meaningless. Like, yes, an RPi is a general purpose computer and Python is turing complete, thanks.
For one, UI/UX is actually hugely important for a consumer device and definitely nontrivial, but on top of that, there is way more that goes into creating custom hardware than a bill of materials (which isn’t just saying “Raspberry Pi”) and choosing a programming language…
A thermostat is controlling a hugely expensive device that runs on a highly flammable gas that costs me real money to use. I want 0 serious bugs. I also want 100% uptime. A poorly made “smart thermostat” is way worse then the old school analog metallic ones imo. I also want my partner to be able to control the temperature in the house. These devices are actually not simple at all and I assume that’s the reason there isn’t a good open source/open hardware solution.
Embedded systems aren’t some mystical impossible thing - contrary to the previous commenter I actually find working with them easier then designing GUIs - but the commercially available devices are definitely nontrivial to recreate
Which are all things you can easily do with an RPi and some simple python.
Just like anyone can “easily” rebuild their transmission or patch a piece of leaky copper pipe or bake an apple pie from scratch or hit a bullese from 50 yards out.
What’s easy for you isn’t easy for everyone.
-
my high efficiency HVAC unit would like a word with you.
what you’re saying is basically you can replace anything with a RPI. yes, in theory, you are correct. but, unfortunately for you, there are nuances that you didn’t take into account. such as, startup/shutdown procedures, cool down cycles, heat pumps, dual compression ac units, etc.
All of that is handled by the HVAC (if there’s anything to handle) and not the thermostat
Thermostats can be (and most often are) a bimetallic strip that bends one way as it cools and bends the other way as it warms, and that flips some switches that you set for temperature ranges which then demands cool or hot from your hvac
That is the simplest possible thermostat and works great for setting a temperature, but that’s not the ideal thermostat. The temperature your house “feels like” also depends on humidity. You may also care about the temperature more in a spot further from the thermostat and getting accurate measurements in that location can save you money and waste less gas. There is also the decision of how long you should run a furnace and, in the case of multiple stages, which stage you should run, although some furnaces control the stages themselves. Then there is air flow. Controlling the fan separately is useful if the house doesn’t evenly heat. Sometimes you can just have the fan turn on more often and use the actual furnace less, saving gas again.
Also sometimes it makes sense to heat your house slightly more during high demand hours to save money. I dunno there is just a lot that could be done with an intelligent thermostat, it’s one of the few things that makes sense to make smart to me.
Inputs and outputs mapping sure is hard /s
Honestly, that’s how competent programmers look at just about everything these days, especially junky-ass websites that probably couldn’t violate more best practices if they tried.
Everything is laugh and giggles until the thermostat is turing complete.
Nah, just get one that can integrate with Home Assistant.
And deal with breaking updates happening on HA and the thermostat software itself while simultaneously maintaining api keys and policy changes every 2-6 months.
Its hard work.
You’re better off making your own thermostat relay controller
From my understanding, those days are in the past. I can’t speak to that from experience because I only recently got into HA.
Nah, protect your privacy and build your own. You just need an esp board, a 4x relay board, and a thermometer sensor.
This is the way.
If my choices are a z-wave/zigbee thermostat that connects to my HomeAssistant instance and a Raspberry Pi that I have to maintain, I’ll pick the z-wave one (and I did, 10 years ago. It’s been rock solid.)
For my smart devices I prefer devices that can’t send information over the internet no matter what. I don’t want to worry about my thermostat mining bitcoin for some dude in China.
A smart thermostat is the only “smart device” I have in my home (ecobee). I figure it actually is better than something I could design in a week so it seemed worth it. Do you know of an actually competitive open hardware/open source solution?
If we’re on this subject, do you happen to know any active esp Lemmy communities?
thanks and merry christmas
Noting ESP specific to my knowledge, but there is a home assistant community.
Alright I’ll check it out. Tnx:)
I have a heat pump as well as a furnace (for auxiliary heating). The thermostat frustrates the hell out of me! For one thing it loses its date and time (yes it has a full calendar date and time as well as time zone) if there’s even a single second power outage. How hard would it have been to put a CR2032 battery and a diode in there just to run the clock when the power fails?
For another thing, the thermostat itself runs extremely hot. Just putting my hand on it, it feels super warm to the touch. The LCD touchscreen on the other hand has molasses-slow response time. It’s almost impossible to set the temperature on the first try without overshooting by 2 degrees.
Lastly, it is designed to be able to run both the heat pump and the furnace when heating load exceeds the capacity of the heat pump. The thermostat also has a sophisticated time of day temperature set point schedule system (with separate schedules for every day of the week). However, the damn thing does not correctly reconcile these two facts!
I have the system set for cooler temperatures at night and warmer temperatures in the day. When the morning arrives and the schedule hits the higher day time set point, the thermostat suddenly sees a multiple degree deficit vs the set point and then calls for emergency furnace heating because it thinks the heat pump is failing to meet heating demand!
This is so maddening and stupid! Why can’t I have the temperature set point just continuously and cyclically vary throughout the day and night like a sine wave? No, the dumb thing runs the heating and cooling schedule as a square wave and therefore runs the furnace every single morning in order to slam the temperature up by a few degrees to the day time set point instead of gradually ramping it up over several hours with the heat pump…
Program it in increments?
My house has a lot of thermal mass. In the morning when the temperature comes up, it tends to overshoot and make the air temperature too hot after working hard to heat all that thermal mass. However I found it much more comfortable to add an increment: half an hour at a degree colder than I want. Now it can heat all that thermal mass while overheating the air is just playing into my hands
I’ve got it programmed in increments of a half a degree per hour. The thing still goes into panic mode.
Wow!
I think they might be computing the derivative of the temperature at time t in real time. When the schedule shifts to a higher set point the derivative goes to positive infinity and the system panics and calls for emergency maximum heat output.
They really ought to compute the temperature set point schedule for the whole day at once and then apply a low pass filter to that.
“Smartknob View”
Thermostats are Barney basic in function, touch the red to the hot to call heat, red to yellow for cool, and red to green for the fan, then open the circuit when the temp is where you want it. Kinda sounds like a fun project.
It’s actually surprising that we expect so much from a smart thermostat. Wouldn’t it be far smarter to sell a dumb thermostat on a local iot network and put the smarts in your automation hub? People who want the extra functionality would be good with that and people who don’t would appreciate saving the money
Is that the same for the ones with the C wire or any of the other crazy wires?
Yes, the C/blue wire is common, basically a neutral for the 24v system and necessary for more digital thermostats to keep the thermostat powered (some can work without the c wire, but it depends on the unit feeding power). The old mechanical ones work on the tilting mercury thing or copper coil for temp sensing, and only require the red wire to touch their respective wires to call whatever function, but the digital ones do the same thing on a switching level. I know there are additional wire sometimes for multistage heat and zoning, but as far as I know it’s the same principle. I’ll be honest I’m an electrician by trade and not an HVAC guy, and I know some of the more intricate systems can deviate from this, but your average residential system should be similar or damn near the same as my original comment (granted my experience is in Southern CA, so there are possibly regional differences with oil furnaces, radiator systems, etc).
I had no idea it was that simple! How do you control heat pumps? I know they have a setting where if outside is too cold it runs backup electric or gas.
Heat pumps are an entirely different story, and I don’t have too much experience with them, most of the splits I’ve seen come with their own remote controls. I was talking on more traditional wall heaters, central air/furnace/forced air, etc.
Heat pumps are not simple at all. They are extremely efficient but can’t produce a large temperature gradient so they need to run very long cycles (potentially remaining on 24 hours straight). Modern cold weather air source heat pumps also tend to have variable output (variable speed compressor, variable speed fan). This demands a more complicated thermostat that adjusts the heat pump up and down, possibly with PWM.
And then there’s the emergency/auxiliary heating from the furnace. The thermostat needs to have some intelligent logic to decide when the heating demand exceeds the capacity of the heat pump and call for the furnace.
They have their own microcontrollers usually to manage that stuff, including defrosting
If its a cheap crappy one, the compressor is on/off depending on temperature. Decent ones will have a VFD to manage the load of the compressor so it doesn’t have to turn on/off all the time but just regulates the compressor load to match heating/cooling requirement. Both have their own controls, and you generally shouldn’t mess with them.
I mean, as far as my mum is concerned, even setting up the TV channels correctly is “programming”…