Considering parent, myself and most people I talk to consider the point of Nest being the ability to control their thermostat when they are out of the house, I don't understand how any system in the 70s or 80s could even work at all like a Nest, let alone better.
No mobile phones, no widespread use of the internet and a hobbyist can make a thermostat you can control when out of the house? Would love to know how?
> I’m curious, what is the big draw of controlling your thermostat in real time that is significantly better than just (for example) a timer?
I don't use a smart thermostat, but what's told to me is this.
With a "timer" thermostat, you tell the system when to start heating; but what you really want to tell the system is when you want it warm. For example, we regularly give my son a bath between 7 and 7:30, so I want to make sure the bathroom "zone" of my house is reasonably warm at that time; and that his room is a comfortable "sleeping with a blanket on" temperature, ready for him to go to bed at 7:30. (Just about every room in our house has a separate thermostat.)
But if I set my thermostat to 19C at 7pm, then it won't be 19C at 7pm -- it will start heating at 7pm, and reach 19C at some indeterminate point in the future. So I manually add my own "static fudge-factor" in, and set the thermostat to 19C at 6:30pm.
However, this "static fudge factor" is almost certainly to be ineffective or inefficient: It may hit 19C at 6:40, in which case I'm paying for 20 minutes of unnecessary heating (inefficient); or it may hit 19C at 7:10, in which case the room will be cooler than I want it to be at 7:00 (ineffective).
The claim of the "smart thermostats" I've heard is that you can tell it, "I want it to be 19C at 7pm", and it will figure out how long your particular room will take to heat (possibly factoring in the current temperature), and start the heating at exactly the right time so that it hits 19C right at 7pm.
Is that something worth having? I think so. Is that worth the extra cost and risk? I don't really think so, which is why I haven't installed one; but I can see why someone else would like it.
Didn't this used to be solved by the simple and incredibly efficient method of having a bathroom heater?
One thing I don't understand about Nest et al is - virtually no houses have actual zone cooling or heating. So when we say "make bathroom 21c at 8pm" we are actually saying "heat up entire house until bathroom is 21c at 8pm". Turning on electric heater in bathroom for 30seconds seems incredibly more convenient and efficient.
> Didn't this used to be solved by the simple and incredibly efficient method of having a bathroom heater?
Bathroom heaters don't heat instantaneously; so you either have to remember to turn it on manually (introducing your own fudge factor, as described above), or start your bathing process with a colder-than-you-want room.
> One thing I don't understand about Nest et al is - virtually no houses have actual zone cooling or heating.
UK regulations require individual rooms' temperatures to be able to be set individually. For most people, this can be done with a valve on the radiator; these valves can be "smart" and integrated into the whole "smart heating" system. For underfloor heating, this typically requires an actual wall thermostat in every room -- which is what I've got. :-)
(Hence why I also want to let the temperature in my son's room drop during the day when he's not there, but come up to 17C in the evening so he's reasonably warm under a blanket.)
Right; I was born in Europe and per-room heating was the norm; but I've lived in North America for last 30 years, and this is apparently still not something we have figured out - in Canada, vast majority of houses have central furnace with central fan. I've had several HVAC professionals come and despite my "Shut up and take my money!!!" attitude, basically none of them wanted to even bother giving me a quote to install something smarter and more granular (and why would they, when they can make good honest living doing routine work swapping furnace and AC control boards etc).
Yeah, I don't think I've ever seen a place in the US where you could control individual rooms. With forced-air heating, it seems like all it would take would be a way for the room thermostat to open and close the vent.
The two elements of "smart" are often combined, but there's no need to have both.
There's remote control, which is one thing. My Honeywell system can do that, but even if I don't connect it to the WiFi (and earlier versions required extra hardware) it'll still do smart local control. I lose weather compensation in that case, though, as it uses a remote forecast to predict future demand and not bother turning the heating on if it's not actually going to be needed.
The more important aspect of "smart" heating is proportional control and predictive heating. As you say, regular thermostats will turn the heating on when the temperature is below the set point, then off when it's above, with some hysteresis to avoid flapping. And one function of the smart system is to predict how early it needs to turn the heating on to get up to temperature in time. The Honeywell will also switch the heating off early if it's confident the temperature will drop by less than 0.5°C before the end of the set time.
Beyond that, though, the controller will modulate the boiler to maintain the set point -- heating systems term this "TPI", I assume it's not a PID controller because it lacks the derivative component. Time Proportional and Integral either (in my old house) controls the boiler modulation directly or (in my new house) turns it on for a few minutes in every time slice in an attempt to get the right amount of heat into the system to maintain the set point.
Where a system like the Honeywell really shines though is that I'm not turning the whole house on or off -- I've smart TRVs on each radiator, so I can have heat in my office during the day and in the lounge in the evening and not have to keep rooms warm when I'm not using them. Having recently moved house and consequently had a few weeks without the smart system I can attest that it really does make a big difference.
> Beyond that, though, the controller will modulate the boiler to maintain the set point -- heating systems term this "TPI", I assume it's not a PID controller because it lacks the derivative component.
The term for this control theory operation is called "Bang bang". The basic logic is "Turn on if under set point, and turn off if at or above set point". Ovens and cheaper HVAC heating controllers use this extensively.
You do see a bit of hysteresis, since it's goal is not to be under the point, but overshoots are definitely a thing. And since it's a simple instantaneous decision (unlike PID), it's also pretty simple to make very cheaply.
That's the non-smart behaviour -- TPI stands for "Temperature Proportional and Integral" and is the basic behaviour to try to automatically modulate the heating output to maintain the set point without overshooting. While PID is "Proportional Integral Derivative" which is a step smarter again.
The Honeywell system I have seems to have gained extra derivative-based functionality recently too, which is nice :).
Because humans perceive temperature in terms of radiant heat, perceptual comfort is different from gauge temperature.
I'm not sure how, but our smart thermostat intuits this to adjust to our comfort, not just a temperature.
Because of our climate, it's also convenient to program our fans to run at certain intervals, control for a set point for humidity, or to base behaviors off of other sensors (air quality, etc). Conditioning air isn't just for maintaining a temperature, and most traditional thermostats, while not ineffective, are completely unable to account for these things.
I rigged up a homemade remote controllable thermostat thing years ago, with the single killer app: I don't know exactly when I'm coming back after 1-2 weeks at the parent's, and I'd like to turn on the air conditioning or turn up the heat, as applicable, before getting into the car to drive back.
If you get stuck in traffic on the way home from work, you might have your heating on for an extra 30+ minutes unnecessarily.
If you decide to have a lazy day and sleep in, you can turn it on when you wake up instead of potentially 2+ hours early.
If you have an unexpected overnight stop over somewhere (e.g. after a night out drinking), you can turn it off until when you're home again. Also works if you're taken to hospital.
There are many valid uses for it.
The people in that article you posted specifically signed up to an 'energy savers' scheme that explicitly allowed the energy companies to change their smart thermostat temperature. They agreed to it. There's no reason to think that energy companies would normally be able to take over your thermostat.
The second bullet point under the title of this article is
“Customers said they had unknowingly agreed to let companies raise the temperature to save energy.”
If your position is that you could never mistakenly click the wrong button or check the wrong box, how is it possible that you could ever be so careless as to not accurately predict your temperature needs?
I have a system with the capability. It's quite convenient for dynamic on/off. E.g. instead of having a timer I turn on the heating when I wake up from bed, and if I go home I put it on before leaving or while underway.
Being able to do things like change it based on certain conditions, like switching it off if I open a window and not activating it if I'm away from the house over the time it would normally turn on. I can also remotely turn the heating up when I'm heading home, so the place is warm when I arrive.
In my case though I'm using Home Assistant on a local server and Tailscale for remote access, so nothing is connected to some company's online service and the actual devices are all offline only.
I'm not sure how intentionally[1] opting into an agreement to have your thermostat remotely controlled is an argument against having it connected to the internet.
The best argument would be the hypothetical remote control by a bad actor without any consent.
[1] what's curious about this particular story is how "intentional" this was; the report is vague and hints that some people were unaware exactly what they were opting into.
>I'm not sure how intentionally[1] opting into an agreement to have your thermostat remotely controlled is an argument against having it connected to the internet.
???
I think you immediately followed that up with more than one answer to that?
Users being stupid and not reading what they are signing up for is not a argument against connecting the thermostat to the internet, and hypothetical bad actors are just that, "hypothetical". If you'd linked an article demonstrating concrete proof I'd accept it as an "argument against connecting one’s thermostat to the internet".
I've been a programmer for 20 years and you just described my daily struggle with my job so precisely. Is this kind of experience happening to neuro-typical people or is this a very ADHD thing?
I ask because I have often wondered if I am undiagnosed as something or other and this post hit me hard.
I think for neurotypical people it is easier to create some kind of system/framework for being more efficient in work. Every solved problem add some mental tools to this systems. But it is much harder for ADHD because of how our brain works. Working step-by-step is hard for me. It is easier for me to load as much info to my brain RAM and try to digest it. And it is not something that you can get better in because it's not really a systematic method.
I've seen coworkers that I'd describe as neuro-typical work in a similar way sometimes. But the tendency to alternate between periods of difficulty focusing and periods of hyperfocus is a recognized trait of ADHD. If you're interested in learning more I'd recommend Hallowell's book, the one I read was "Delivered from Distraction" but he might have a newer one. Just read the first couple chapters and if it resonates a lot then it might be worth getting tested.
>I'm not sure bars existed in the times of Black Death
depends what you mean by a bar?
In the UK, taverns certainly existed prior to the Black Death (1346 – 1353). For instance:
> Established in the 13th Century, The White Hart Inn on Drury Lane claims to be London’s oldest pub. Historical records show its first license was granted as early as 1216
> and in some scenarios transpile down to JavaScript
It always transpiles to JavaScript and always runs as JavaScript. There is no such thing as a TypeScript runtime engine.
TypeScript is a superset of JavaScript. Therefore the OP's point is still valid. Any "mistakes" JavaScript might have made about having null AND undefined are also issues for TypeScript.
I don't know what you mean here, but it is certainly possible for TypeScript code to use JavaScript libraries and vice versa, which is presumably what most people mean by "TypeScript interops with JavaScript".
> It always transpiles to JavaScript and always runs as JavaScript.
> TypeScript is a superset of JavaScript. Therefore the OP's point is still valid. Any "mistakes" JavaScript might have made about having null AND undefined are also issues for TypeScript.
TypeScript adds type checking to JavaScript. The Million Dollar Mistake is having unchecked nulls; TypeScript supports checked nulls so it's not an issue. TypeScript's nulls are much more similar to Maybe/Option than unchecked nulls.
> I don't know what you mean here, but it is certainly possible for TypeScript code to use JavaScript libraries and vice versa, which is presumably what most people mean by "TypeScript interops with JavaScript".
Ah, I can see what you/they mean by that. The point I was trying to get across was: TypeScript doesn't exist when code is actually executing (which is what I think of as interop - it's happening at execution time.) At execution time - it's all just JavaScript.
I have found (working in a TypeScript team currently) that this fact is ignored, primarily by people who "look down" on JavaScript, but it is a VERY important point to remember when you are writing TypeScript, mostly because it's important to remember there is only compile time type checking not run time.
Heh, yes - as soon as I posted I realised that was silly. The word "always" is almost "always" incorrect! I should have said: "It usually transpiles to JavaScript and usually runs as JavaScript"
> The Million Dollar Mistake is having unchecked nulls; TypeScript supports checked nulls so it's not an issue. TypeScript's nulls are much more similar to Maybe/Option than unchecked nulls
Good point in theory but my practical experience hasn't borne this out. That is because TypeScript is an "optionally typed" language and it hasn't been true in practice because of excessive use of explicit or implicit "any"s.
<i> > The Million Dollar Mistake is having unchecked nulls; TypeScript supports checked nulls so it's not an issue. TypeScript's nulls are much more similar to Maybe/Option than unchecked nulls</i>
<i>Good point in theory but my practical experience hasn't borne this out. That is because TypeScript is an "optionally typed" language and it hasn't been true in practice because of excessive use of explicit or implicit "any"s. </i>
I think that's a matter of your team's discipline. It's good practice, I think, to enable TypeScript's strict checks, including no-implicit-any, and, to the best of your ability, to keep people who don't understand types ignorant of explicit any and to fail any code that uses it. `any` is basically never necessary even in typing existing code - if you genuinely don't know what the type is at a certain point, you should probably write a type like `unknown`.
If you take any of Typescript's options to "ease the transition" you're taking Typescript's options to continue the difficulties. One moves to typescript because javascript's runtime errors are a problem; so it is natural that you will have novel compile time errors.
AssemblyScript is not TypeScript.
Especially so if you don't consider TypeScript to be JavaScript; I'd argue that the difference between TypeScript and AssemblyScript is bigger than TypeScript and JavaScript.
This does not necessarily invalidate your wider points, but just FYI:
> It does not interop with JavaScript.
Hm, this depends on your definition of "interop". My JavaScript and TypeScript are languages that exchange information. The execution model ultimately involves JavaScript when I use tsc, but ultimately it also includes an interpreter. My user-space syntax doesn't care.
> There is no such thing as a TypeScript runtime engine.
V8 is a JavaScript runtime that compiles JavaScript on the fly, so it seems reasonable to say that a runtime that compiles TypeScript on the fly is a TypeScript runtime.
>when you think in terms of defining a word, don't you picture how it's written down?
Interesting hypothesis.
I don't think I do, and my assumption is that most other people don't either?
I learnt to speak well before I learnt to read and write. The process of speaking without any knowledge of the letters was deeply embedded in my brain.
People that are unable as adults to read or write, or have severe impediments to reading/writing in the same way that I do (e.g. dyslexia) don't speak any differently.
If I try to, I can picture how my spoken word is written down, but I'm pretty sure when I'm talking in a more "autonomic" fashion I'm not really picturing the words?
That's actually a very good point. The way I see it, although I may be wrong, is that people that have difficulties in reading/writing are a minority, at least in developed countries. Thus, they are nevertheless exposed to a way of speaking that is mainly influenced by the majority, who are influenced somehow by the written word.
On the other hand, what strikes me as a contribution of Internet to the language is our capacity to communicate through videos and pictures. Which means that our vocabulary is narrower. I don't have to be so elaborate when describing my room; I can just take a picture, and tweet it.
No mobile phones, no widespread use of the internet and a hobbyist can make a thermostat you can control when out of the house? Would love to know how?