I gave my coffee table feelings. Mostly bad ones. Meet Greg

This is Greg. He's my coffee table. He's also an open-source Home Assistant integration now, which wasn't the plan when I bought a vibration sensor a couple of years back.

Because that's where it actually started. A vibration sensor I bought thinking "this'll come in handy one day," for triggering some lights by sitting somewhere specific or banging on a desk. Never useful enough for my place, so it sat in a drawer collecting dust for months.

Found it again while tidying. I wasn't about to bin a basically-new sensor and call it e-waste, but every practical use I looked at just didn't fit. Some of them were clever, too. Still no good for me. So there I was, stuck with a sensor and no purpose for it. Again.

Then I thought, if practical won't work, how about funny? Still useless, just fun. I do love a good laugh.

Now, weeks before any of this, I'd been talking my friends' ears off about Marvin. The film first, then Douglas Adams, then pretty much everything he wrote. I'd never heard anything like that voice and I've loved it ever since. So I'm stood there staring at the sensor sitting on our coffee table, next to the smart speaker we only ever ask for the weather, and it clicked. The automatic doors. That dripping, hopeless voice. I didn't want to copy Marvin himself, that character's already perfect and it isn't mine to take. I wanted something that came off the same production line. Same factory, different unit.

Off I went. Started as a pile of automations and helpers, fragile and fiddly, about 25 lines total. I'm stubborn enough not to quit on something silly though, so I kept going. I didn't even know I needed GitHub at that point. Didn't matter. Three weeks of evenings deep into something stupid and I was determined to make it good. Well at least funny.. No other reason for Greg to exist otherwise tbh.

And while I'm being honest.. I'm 46, and the learning curve was near-vertical. On my own I'd have spent years just learning the skills before I could even start. I didn't have years. Arc, my AI pair-programmer for the whole build, is the only reason it happened in the time it did. And while I'm being honest about that, Greg's mood faces are AI-generated too, because I genuinely can't draw. I'd rather just tell you than have you find out. If anyone fancies giving him a proper hand-drawn set, that's the dream, and fully credited.

Greg's his own character. He was clearly built by the same company that made Marvin, though, and nobody knows why they did it twice.

What Greg actually does

Stick the sensor under or on any surface, point him at any TTS speaker, and he reacts to how busy the room gets. A brush of the table, he notices, Greg always notices. A bit of activity, he's unimpressed. Full household chaos, he has opinions about all of it. And roughly every 42 minutes, if the room's been busy, he has an unprompted existential crisis about being a table. Twenty minutes of silence and he exhales. Metaphorically. He is a table after all.

He's got 125 lines now, 25 for each reaction, all in the spirit of Douglas Adams, no direct quotes. One of the existential ones: "I have supported a great many cups of tea. None of them asked how I was doing."

He brings his own sidebar panel so there's no dashboard faffing, and he works with any vibration sensor and any TTS engine. Run him through Piper with the en_GB-alan voice slowed right down and he sounds properly defeated.

He's free and he's staying free. MIT licensed. You can install him through HACS as a custom repo today, and he's in the queue to become a default HACS integration. That would be hilarious, being the one thing on there that is properly useless. Because it is. :crossed_fingers:t4:

Repo, full install steps, and every one of Greg's lines are here:

That's it. He's a table, he has feelings, the feelings are bad. If you build him, come tell me what he should say to you. I'll bundle all the good ones and add them to his lists of things he can say.

(I also tend to ramble. Sorry. Arc did try to stop me.)

Just a little update;
Noticed during testing that the standard HA delete integration function leaves parts of greg behind. This is not very-Greg like.

If you remove Greg, it should be like he was never there. So he needs a simple Uninstall button that starts a separate cleaning script. Will look something like this:

Let me know your thoughts.

This is an amazing idea. Gonna get it going as soon as my vibe sensor arrives.

Appreciate the enthousiasm! Setup should be pretty smooth, but do let me know if it isn't and I will walk you through it.

Uninstall is in the final design stage and after that easy to implement.

Also open to any new lines you may have. Even with 125 lines it can get repetitive, so that might need more attention first.

Had to put this on the backburner for a bit as most of my time, at least for the next couple of weeks, is taken up by a fullon enterprise ai rollout. Turns out that's quite tricky. Who knew right lol

Crap.. Greg died today. At least prototype Greg v1.0 and only partly. What likely happened was a couple of weeks back, an early uninstall test removed a bit too much. Something came up and had to put a pin in it until now. I still have helpers and stuff but the manual ui automations for the moods, randomization and stuff, lines… His first words essentially. Poof.

First testing session was hilarious. I sat there on the couch, sensor on the table & speaker vol up, touching the table. No sound. Dammit. Changing some settings on the phone. A poke, silence, tweak, tap, imire silence, etc.. I see my wife in the corner of m my eye come in and stop. I figured she knew what I was doing and kept going. At this point slapping and and practically punching our coffe table trying to generate increasing levels of vibration. Getting quite frustrated by the silence of the speaker, I finally turn to look at my wife, presumably looking quite angry and saw her expression.. One I hadn’t seen before.

Then I realized: She walked out of the room for a few. min, i decided to try Greg in the mean time. and sees the man she has know (or probably though thought she new) for 26yrs suddenly get mad at the coffee table for no apparent reason. Priceless. :rofl:

I am thoroughly enjoying Greg, in as much as one should enjoy a depressed coffee table :slight_smile:

I would love the option to have Greg to fire an HA event with a specific name with the mood, message etc., so, if desirable, I could run the message against the normal pipeline, or alternatively pass the message through a local AI for a more elaborated take on the message.

I might fork and give that a try

Fantastic work

Wow appreciate that, means a lot.. Also, you are not the first to mention this to me and it again sounds like a great idea!

iDefinitely give that a go if you want, I’d consider it an honor in fact. Couple things though:

Promise to keep having fun with it/Greg. Oh and credit me I guess. :sweat_smile: