Iroh is probably one of the best shots we have at making IoT finally secure with the built-in endpoint-to-endpoint encryption. The only thing that is missing is an embedded QUIC stack, the setup described in this article sees a little bit too hacky (4 MiB of PSRAM, really?).
While this is neat, it strikes me as the software developer's idea of a "smart fan". The engineer in me says that an actual "smart fan" would be one whose blades are designed to produce maximum airflow with minimum noise (variable pitch? avoiding turbulence?)
I think you're describing a "great" fan. A "smart" fan is one that thinks. e.g. smart TVs are worse (and therefore cheaper) than dumb TVs, but they do a lot more thinking.
Yes, iroh here. We are looking into projects who want to use iroh with matter or thread. If you have a project you want to collaborate with our engineers on, please get in touch! Send an email to support@iroh.conputer
Edit: actually, that's a Node.js-specific API. For browsers, it seems like they should have a platform-independent JavaScript/TypeScript API that includes a WebAssembly file (if needed) instead of expecting you to compile WebAssembly yourself.
Does C also have a compiler that turns C code into assembly before the real runtime does its work? Never done much C development in the past, didn't get the impression it worked like that.
> Does C also have a compiler that turns C code into assembly
Yes, that's 'a C compiler', like gcc.
> before the real runtime does its work
Sort of, the program is 'the runtime', but this is backwards, languages that have 'a runtime' get the name from it running at runtime to compile/interpret source or byte code. In C what runs at runtime is just your program, whatever you compiled. (Maybe it's an interpreter though!)
I mean, once you split that sentence into pieces and answer them individually, of course it stops making sense. It's the whole "+ chuck the results into a runtime" that makes it make sense (or not) as a comparison against "TS > JS > V8/SpiderMonkey"
iroh is a peer to peer networking technology so the project example of controlling a fan isn't so much about the fan but rather that it's controllable from anywhere through an esp32 microcontroller that can maintain a resilient connection endpoint even through power cycles and so on. I think iroh was posted about on HN a few weeks ago and I had a similar reaction of like...what in the world is this blog post even saying haha. But I found their docs page and found it pretty fascinating learning!
https://docs.iroh.computer/what-is-iroh
Works on Android too when developing Dart applications and making use of flutter_rust_bridge though it's a bit of an involved setup to be honest.
I really hope more people will play around with iroh and build stuff especially because in the last year some things have been renamed in the API to be more clear and other stuff has been simplified e.g. see this blog post https://www.iroh.computer/blog/iroh-0-94-0-the-endpoint-take...
I think it's great someone is working on a fun little project such as a smart fan but let's not kid ourselves, it's not supposed to be practical! I don't think anyone would claim that.
It's a demo of how easy it is to make even an ESP32 device available globally with iroh.
I have an automation that automatically regulates the level down when I do something where I want to minimize noise (like watching a movie or when I go to sleep)
Sure you can do everything manually, but I like networked things, especially those using open standards (matter over openthread) so I can connect them all together easily.
For example, every time I watch a movie the roller blinds automatically come down, the lights turn off and the fan turns down, I think thats just cool.
90% of smart devices are for novelty, or for you to spend more time setting up and maintaining their automations than they save you in being automated.
But that 10% is magic. A fan that switches on when air quality falls below a threshold? Not that useful in a living room, but in a workshop setting - especially a shared workshop setting? Awesome. Just awesome.
A well defined use case, in the right setting, and smart stuff can be genuinely very useful. Usually that’s not how they’re used - i know, because of the 15-20 smart things i have only one or two are genuinely useful.
> A fan that switches on when air quality falls below a threshold? Not that useful in a living room,
Why wouldn't that be useful? People be surprised how poor their air quality generally are inside, unless they already measure it, making it better sounds useful in oh so many ways.
> i know, because of the 15-20 smart things i have only one or two are genuinely useful.
What are those things? I have about 70-80 "smart things" by now, but every single one is genuinely useful, otherwise I wouldn't install them in the first place. Lots of open/closed sensors, soil moisture, temperature+pm2.5 sensors, water taps and so on.
> Why wouldn't that be useful? People be surprised how poor their air quality generally are inside
First because it’s the wrong solution to the problem. As I understand it bad air quality in a home is created by specific activities like cooking, vacuuming, or lighting candles/incense/smoking. So you solve the problem by turning on the fan when you cook, opening the windows when you vacuum, and by not using incense or smoking.
Second because you can have a dumb sensor and switch the fan on with your hand when it goes turns orange or red.
> I have about 70-80 "smart things" by now, but every single one is genuinely useful
We have different definitions of genuinely useful. I’m glad you find you setups useful tho - you do you!
Having the option to say “hey siri turn on the fan” while you’re in bed is pretty nice. This kind of thing works pretty reliably these days with the right setup. The fan still has a physical switch.
There's only a limited number of features that you can pack into a few buttons and a 7-segment display. If you want to sell outside the US and need to support the long-tail of non-English languages, preferably without per-country product variants, you can't even label the buttons any more, you have to rely on simple pictograms and icons.
If there's a $1 microcontroller in your device (and there often is), you're very tempted to implement lots of features which cost you almost nothing, but that kind of UI just doesn't really let you do so. Sure, you could add a proper touch screen with a localizable UI stack, with reflowable text and support for displaying Kanji and RTL languages, but that's often more expensive (and less practical) than slapping on a BLE or WiFi chip.
I have lots of smart gadgets that also have physical switches. It's convenient to be able to control them in more than one way, from more than one location.
Anyway, why are you commenting here if you're not into this sort of thing? Feels like you're just trying to stir up an argument.
Pff, assuming that everyone have arms and hands much?
Also I don't see the point of a fan, I live right next to the ocean, if you want moving air, why don't you just open a window?! Talk about useless invention
The simple way to do this is a dumb thermostat wired through a relay coil that enables a fan. It doesn’t give you remote access to change the setpoint but that’s all this setup does. Something like this has a setpoint you change once and then leave it.
Fans increase the efficiency at which your body's own cooling system (sweating) works by increasing the amount of air that flows by your skin, be it hot or cold.
Anything helps, when you don't have AC. Moving slightly colder air to where you sit, or moving away generated from your body, does make a ever so slight difference. Helps to get rid of some sweat too, if you're sitting and sweating, which also helps a tiny bit.
But a fan is nice in not-heatwave but still warm temperatures. I have a usb desk fan from a PC cooler manufacturer (Arctic I believe) and it's one of the best accessories.
Iroh is probably one of the best shots we have at making IoT finally secure with the built-in endpoint-to-endpoint encryption. The only thing that is missing is an embedded QUIC stack, the setup described in this article sees a little bit too hacky (4 MiB of PSRAM, really?).
While this is neat, it strikes me as the software developer's idea of a "smart fan". The engineer in me says that an actual "smart fan" would be one whose blades are designed to produce maximum airflow with minimum noise (variable pitch? avoiding turbulence?)
He’s using a noctua fan which are pretty much the quietest pc fans you can buy while still moving large amounts of air
I think you're describing a "great" fan. A "smart" fan is one that thinks. e.g. smart TVs are worse (and therefore cheaper) than dumb TVs, but they do a lot more thinking.
Related to https://news.ycombinator.com/item?id=48872120
Any plans to standardize Iroh IoT protocols, e.g. Matter over Iroh / Some other standard that would be plug-able to things like Home Assistant?
Yes, iroh here. We are looking into projects who want to use iroh with matter or thread. If you have a project you want to collaborate with our engineers on, please get in touch! Send an email to support@iroh.conputer
I use a inexpensive 36 AUD Tapo infrared hub to control my fan reliably.
It links to my Google Home installation and responds to voice commands.
https://us.store.tapo.com/products/tapo-h110-smart-ir-iot-hu...
Someone with too much time on their hands might benefit from the iroh solution....
It's unclear to me why they needed to compile Rust to WebAssembly to write a website. It looks like iroh has a JavaScript API:
https://docs.iroh.computer/languages/javascript
Edit: actually, that's a Node.js-specific API. For browsers, it seems like they should have a platform-independent JavaScript/TypeScript API that includes a WebAssembly file (if needed) instead of expecting you to compile WebAssembly yourself.
Not touching JavaScript might be a reason enough. (Though I bet it has a Typescript API, and Typescript is great.)
Typescript is nothing without JavaScript
With that logic, C is nothing without assembly.
Does C also have a compiler that turns C code into assembly before the real runtime does its work? Never done much C development in the past, didn't get the impression it worked like that.
> Does C also have a compiler that turns C code into assembly
Yes, that's 'a C compiler', like gcc.
> before the real runtime does its work
Sort of, the program is 'the runtime', but this is backwards, languages that have 'a runtime' get the name from it running at runtime to compile/interpret source or byte code. In C what runs at runtime is just your program, whatever you compiled. (Maybe it's an interpreter though!)
I mean, once you split that sentence into pieces and answer them individually, of course it stops making sense. It's the whole "+ chuck the results into a runtime" that makes it make sense (or not) as a comparison against "TS > JS > V8/SpiderMonkey"
> Does C also have a compiler that turns C code into assembly before the real runtime does its work?
What do you think ahead of time compilation is?
a c compiler turns c code into assembly which is then consumed by an assembler(?)
You can output assembly with any toolchain, yes. But there's no runtime, at least if you mean in the sense that the code is executed by a runtime.
Typescripts add another layer on top of that
iroh is very interesting and in many way it could get traction for IoT.
Now I am not sure it is feasible but it would be interesting to have it available in esphome. I feel this is really where real adoption happens.
Why.
In hacker culture, the correct question is "Why not?"
Somebody wanted to do something, and they did it; it doesn't have to be any more complicated than that :-)
> Don't be curmudgeonly. Thoughtful criticism is fine, but please don't be rigidly or generically negative.
Sincerely, HN Guidelines Police :-)
https://news.ycombinator.com/newsguidelines.html
To demonstrate the potential of iroh to enable accessing stuff across complex network structures for iot type use cases
Because Uncle Iroh needs more fans maybe? (should have been a tea kettle)
This is interesting as an example of just how complicated and elaborate a toolchain you can use to build something dead simple.
There’s a lot that comes for free by adding all these libraries and crates and steps. But from what I can tell it comes down to:
let _ = if fan_on { fan.set_high() } else { fan.set_low() };
iroh is a peer to peer networking technology so the project example of controlling a fan isn't so much about the fan but rather that it's controllable from anywhere through an esp32 microcontroller that can maintain a resilient connection endpoint even through power cycles and so on. I think iroh was posted about on HN a few weeks ago and I had a similar reaction of like...what in the world is this blog post even saying haha. But I found their docs page and found it pretty fascinating learning! https://docs.iroh.computer/what-is-iroh
Works on Android too when developing Dart applications and making use of flutter_rust_bridge though it's a bit of an involved setup to be honest.
I really hope more people will play around with iroh and build stuff especially because in the last year some things have been renamed in the API to be more clear and other stuff has been simplified e.g. see this blog post https://www.iroh.computer/blog/iroh-0-94-0-the-endpoint-take...
I use a fan with an on/off button.
I think it's great someone is working on a fun little project such as a smart fan but let's not kid ourselves, it's not supposed to be practical! I don't think anyone would claim that.
It's a demo of how easy it is to make even an ESP32 device available globally with iroh.
That's very much not a smart fan. Not really relevant.
Pretty relevant because I've never seen the reason for "smart" gadgets at all. Physical switches are simply better.
I have an automation that automatically regulates the level down when I do something where I want to minimize noise (like watching a movie or when I go to sleep)
Sure you can do everything manually, but I like networked things, especially those using open standards (matter over openthread) so I can connect them all together easily.
For example, every time I watch a movie the roller blinds automatically come down, the lights turn off and the fan turns down, I think thats just cool.
90% of smart devices are for novelty, or for you to spend more time setting up and maintaining their automations than they save you in being automated.
But that 10% is magic. A fan that switches on when air quality falls below a threshold? Not that useful in a living room, but in a workshop setting - especially a shared workshop setting? Awesome. Just awesome.
A well defined use case, in the right setting, and smart stuff can be genuinely very useful. Usually that’s not how they’re used - i know, because of the 15-20 smart things i have only one or two are genuinely useful.
> A fan that switches on when air quality falls below a threshold? Not that useful in a living room,
Why wouldn't that be useful? People be surprised how poor their air quality generally are inside, unless they already measure it, making it better sounds useful in oh so many ways.
> i know, because of the 15-20 smart things i have only one or two are genuinely useful.
What are those things? I have about 70-80 "smart things" by now, but every single one is genuinely useful, otherwise I wouldn't install them in the first place. Lots of open/closed sensors, soil moisture, temperature+pm2.5 sensors, water taps and so on.
> Why wouldn't that be useful? People be surprised how poor their air quality generally are inside
First because it’s the wrong solution to the problem. As I understand it bad air quality in a home is created by specific activities like cooking, vacuuming, or lighting candles/incense/smoking. So you solve the problem by turning on the fan when you cook, opening the windows when you vacuum, and by not using incense or smoking.
Second because you can have a dumb sensor and switch the fan on with your hand when it goes turns orange or red.
> I have about 70-80 "smart things" by now, but every single one is genuinely useful
We have different definitions of genuinely useful. I’m glad you find you setups useful tho - you do you!
Having the option to say “hey siri turn on the fan” while you’re in bed is pretty nice. This kind of thing works pretty reliably these days with the right setup. The fan still has a physical switch.
The reason is UI.
There's only a limited number of features that you can pack into a few buttons and a 7-segment display. If you want to sell outside the US and need to support the long-tail of non-English languages, preferably without per-country product variants, you can't even label the buttons any more, you have to rely on simple pictograms and icons.
If there's a $1 microcontroller in your device (and there often is), you're very tempted to implement lots of features which cost you almost nothing, but that kind of UI just doesn't really let you do so. Sure, you could add a proper touch screen with a localizable UI stack, with reflowable text and support for displaying Kanji and RTL languages, but that's often more expensive (and less practical) than slapping on a BLE or WiFi chip.
I have lots of smart gadgets that also have physical switches. It's convenient to be able to control them in more than one way, from more than one location.
Anyway, why are you commenting here if you're not into this sort of thing? Feels like you're just trying to stir up an argument.
If your fan isn't Byzantine fault tolerant, you're irrelevant
And some people don’t see any reason for the internet and just wanna use phones and physical mail. To each their own.
You can have the best of both worlds with a hand-off-auto switch.
> Physical switches are simply better
Pff, assuming that everyone have arms and hands much?
Also I don't see the point of a fan, I live right next to the ocean, if you want moving air, why don't you just open a window?! Talk about useless invention
I do have working arms and hands, so for the lights and fans in my house I don't need to assume otherwise.
Can't help but read this in the voice of Homer Simpson.
The hard part isn't controlling the fan, it's controlling the fan from anywhere, without a central server in the way.
Sure, you could probably make this much smaller if you invented a specialized p2p fan control protocol, but that's a lot of work.
The simple way to do this is a dumb thermostat wired through a relay coil that enables a fan. It doesn’t give you remote access to change the setpoint but that’s all this setup does. Something like this has a setpoint you change once and then leave it.
For specific applications like transfer fans for a server room with a small amount of heat to react, you can buy an all-in-one thermostatically controlled fan: https://acinfinity.com/room-to-room-fan-8-with-temperature-c...
In a heatwave, you need AC, not a fan. Moving hot air around without cooling it is pretty much useless.
Fans increase the efficiency at which your body's own cooling system (sweating) works by increasing the amount of air that flows by your skin, be it hot or cold.
Anything helps, when you don't have AC. Moving slightly colder air to where you sit, or moving away generated from your body, does make a ever so slight difference. Helps to get rid of some sweat too, if you're sitting and sweating, which also helps a tiny bit.
Lived in the California desert with no AC as a kid, fans definitely help. Especially if you are sweating or spritz yourself with some water
But a fan is nice in not-heatwave but still warm temperatures. I have a usb desk fan from a PC cooler manufacturer (Arctic I believe) and it's one of the best accessories.
A fan is better than nothing, even in a heatwave.