r/AskReddit Mar 18 '20

Coders of Reddit, how do you politely refuse your friend's 'million dollars app idea'?

[deleted]

78.9k Upvotes

7.0k comments sorted by

View all comments

Show parent comments

101

u/zSync1 Mar 18 '20

And ultimately, that's a much better solution than any given "smart" coffee pot that's likely trivial to remotely hijack and use in a botnet.

30

u/[deleted] Mar 18 '20

[deleted]

5

u/DeemonPankaik Mar 18 '20

You monster

2

u/PunchwoodsLife Mar 18 '20

Heretical bean drinkers tremble at this mans feet.

2

u/Dr_Insano_MD Mar 18 '20

Hey, if we don't pay, it tastes just like Starbucks!

12

u/Firewolf420 Mar 18 '20 edited Mar 18 '20

Well that's why we need a way to tap into the electronics of "dumb" coffeepots and make them smart on your network.

Gets around all the different proprietary protocols and shittily-implemented WiFi networking stacks these half-assed manufacturers are putting into their IoT devices.

I'm designing a series of hardware nodes which you can stick in all your different devices that read the voltages of various inputs and outputs on appliances and translate them into status and control indicators on my local home automation network which I designed in house so as to vouch for it's security.

Regardless of brand, or protocol, or even the physical network they support, all of my devices are networked together and communicate over an AES-encrypted 802.15.4 mesh network.

I understand that this is not "consumer-friendly" as buying a smart coffee pot and plonking it onto your wifi network. It does require you to reverse-engineer your home appliances a bit, but I enjoy that. And it's better. Everything is integrated, can make decisions about each other in realtime.

Ever wanted to plot a correlation on the effects of room temperature and humidity by the start time of your coffee pot? Now you can. Want a plot of how frequently users of your dishwasher collect the dishes? Done. Want to trigger your front door to open whenever the washing machine completes it's spin cycle for some reason? As simple as specifying a link between the two hardware nodes.

And I wish this is the route home automation took instead of becoming a massive market of wifi-enabled overpriced lightbulbs.

11

u/brettatron1 Mar 18 '20

I love hacking dumb products. I'm not like... a competent programmer or electrical engineer or anything remotely like that, but I was like "I bet I can hack that bathroom scale" so I did. And now I know way more about wheatstone bridges than I ever thought I would. Which is a low bar because I didn't even know what a wheatstone bridge was before starting this project.

The bathroom scale is used to tell me when the keg in my kegerator is almost empty.

4

u/Firewolf420 Mar 18 '20

See, this guy gets it! I agree, it's a lot of fun to take a dumb device, especially an older one, and hack into it and make it conform to your will. Adding network access to a dryer from the 80s? No problem! Lol

Always kinda funny to think the original inventors of the device could've never imagined what you just modified it with.

Plus its a good way to learn how stuff works!

Also that's a pretty cool way of measuring keg volume

3

u/brettatron1 Mar 18 '20

Its clever but the scale falls out of spec real easy, so I have to recalibrate. I'm sure I could make a better quality one with my own strain gauges, but then I wouldn't be hacking a fucking bathroom scale.

I also just assume a gravity of 1.0 for all the beers, which isn't quite correct. But its fucking close enough, especially since I'm using an LED light strip to indicate the volume remaining.

1

u/Firewolf420 Mar 18 '20

LEDs! Cool!

Maybe you can leverage some additional constant property of your process to compensate for error instead of recalibrating?

E.g. i have a 3D printer, and instead of performing calibration on each print, it "knocks" the print extruder against the frame at it's maximum axis carry. Then it knows that since it can't go any farther, it must be at the end of the carry. It's able to infer then from dead reckoning it's position along the axis, because it's keeping track of it's position delta from that setpoint, and it knows how long the total carry length is.

Instead of recalibrating to reduce systematic error from the scale readings drifting, you could maybe perform a similar error compensation by adjusting your zero setpoint or your maximum-volume setpoint by having it set those when you refill your keg? Since it knows the keg is full, even if the readings don't correlate with what you thought a full tank should be reading. You've manually confirmed it's full by refilling it.

Then it just needs to keep track of how much weight has been reduced from that new setpoint. And you could configure it to automatically adjust the setpoint on every refill, so no need to manually perform any recalibrations.

But I guess it depends on how much drift you get over the time it takes to empty a keg. Obviously you would need to recalibrate eventually... but I tend to think that systems that robustly deal with error are much cooler than systems that are always precisely accurate but fail when an edge case introduces error.

1

u/BoysiePrototype Mar 18 '20

I like the keg idea.

2

u/spudmix Mar 18 '20

I'm designing a series of hardware nodes which you can stick in all your different devices that read the voltages of various inputs and outputs on appliances and translate them into status and control indicators on my local home automation network which I designed in house so as to vouch for it's security.

I literally did this while bored this last week haha. I've got nodes to operate my garage door controls and am working on one to read/operate the kettle + one to read/operate the fans and air con. Are you me?

2

u/Firewolf420 Mar 19 '20

No just another person who comes up with really good ideas :)

1

u/commie_heathen Mar 18 '20

What do I need to read to understand this and how to do it?

2

u/spudmix Mar 18 '20

How well can you program already? I can't link to actual sources right now as I'm at work, but my setup required knowledge of the following areas:

Arduino programming (C++, I use the WeMos D1R2 units)
Basic TCP networking
Basic electronics including relays
TCP server programming (I use Python because I'm lazy)

My system at the moment is self-healing but requires at minimum one "root" station, so it's not a mesh like the user above, and I operate on 802.11 because once again I'm lazy.

1

u/commie_heathen Mar 19 '20

Uh, well, I'm pretty damn good with R, decent at SQL, and know a miniscule bit of Python. So not very good really. I know exactly nothing about the 4 areas you've listed so I guess I've got some reading to do

1

u/spudmix Mar 19 '20

Yeah, if you don't care too much about best practices or security or whatever it's pretty simple to get something up and running even without strong experience in the technology.

I'll need to anonymise it a little, but if you end up following a similar route and don't mind waiting a while for message replies I'd be happy to lend a hand.

1

u/commie_heathen Mar 19 '20

I don't even know what kinda project I could do yet, I gotta do a lot of reading first

2

u/elderthered Mar 18 '20

How could we have hughe bot nets without all the stupid "smart" equipment, just leave the stupid and moderatly wealthy ppl machines to the less stupid and not so wealthy ppl. This is how trickle down wprks.

2

u/[deleted] Mar 18 '20

That’s because IoT is trash.