Tell me your most exotic selfhosted solution

  • I went there today accidentally. My personal favorite one:

    I have an automation that is triggered by a door open/close sensor that I have attached to the flushing arm in my toilet with a custom made 3d printed mount for the sensor, which triggers a script on the server which connects to the chromecast speaker in the bathroom and plays the final fantasy 7 battle victory theme whenever someone flushes the toilet. It is perhaps my favorite part of my home.

  • I have a few dozen such things at home. My absolute favorite one though is a bit wild. I am a bit of a security freak. I do however on occasion need to access something on my home network and I also need some redundancy(it wouldn't be the first time my only solution fails and I need a backup). So I use an old raspberry pi as an ssh server with port forwarding with all gimmicks in place(no root, private key only and all that). Whenever I(or hypothetically someone else logs in) I get a notification on my phone so I can react quickly if needed. I can immediately kick them out by simply replying to the notification. BUT... Redundancy is a good thing, so I also have a kill switch:

    I have an ESP32 with a sim card and a relay which is controlling the plug to my router. Should I end up being locked out, while someone else has managed to get in, I can send a specific text to a specific number and the esp will kill the power to the router.

    Overkill? Considering no one has ever managed to get in, probably. But it's better to have the option than not.

  • Was hungry for money installing CCTV cameras back in the day via 4CH PCI NTSC Capture Cards.

    Restaurant customer was really impressed with the tech and kept making new demands:

    Q: Can we listen to this cool pandora.com thing over the restaurant speakers?

    A: Yes, I we'll use the CCTV cables to run audio from your DVR PC (Pentium 4 I think) to the restaurant AMP. I had the bits and bobs in my car to go from BNC to RCA / 3.5mm.

    Q: That's awesome, now can I talk to the customers to make announcements?

    A: Sure, see this little speaker icon in the system tray? talk into this mic when you uncheck "mute". Don't forget to mute pandora first.

    Q: That's awesome, but I want to make the annoucement from the host station.

    A: Let me grab my laptop... Google: VB6 LPT Port. Google: VB6 Volume Mixer. Copy Copy Paste Paste.

    Alright, I'm going to mount this old mouse on your wall and solder 2 wires to the clicker (Then to LPT on the DVR PC), it will automatically enable this wall mic when you click the button...

  • I have gigabit copper to the house, but the Ethernet cable coming into the house kept negotiating at 100mbit connection randomly. ISP just kept blaming my equipment. Especially since rebooting the router fixed it. Although unplugging and plugging in the Ethernet from the ISP is really what fixed it.

    I wrote a script that ran fast.com's speed test every hour. If it detected <105mbit results it would test every 5 minutes for 30 minutes. If it didn't see >105mbits it would do two things, if it was during the day, it'd turn one of the Phillips hue lights in my office to red and turn it on if it wasn't. That let me decide if I could take the downtime during work to fix the Internet or if I'd just live with it. If my partner spotted it, he'd tell me we had a "red light special"

    If it was at night, I found there was an undocumented soap protocol for my router and I could reboot it. I didn't care about downtime at night so the script would do it and not deal with the light.

    The system worked wonderfully, my partner has asked me to expand the light thing to other situations in the house and other lights. He wants something hooked to his aquarium.

    Eventually after about 6 months of this script we took it upon ourselves to replace the ISP Ethernet and made the script unnecessary, but it was a fascinating exercise in stringing together all kinds of random systems, would do it again in a heartbeat, though I might swap the cable first.

  • > Future project: I have chickens. They lay eggs. I have cameras. I want to know which hen lays how many eggs. Solution? AI image recognition of the hens (who is who) and if they have laid an egg. Any inputs welcome.

    What happens to the ones that don't lay enough?

  • I acquired a tactical LTE base station on eBay that had a fairly clean copy of Druid Raemis in a VM on it. After some wrangling and reverse engineering, that VM is now the core of my home CBRS LTE network with a license-free band 48 radio in my house.

    Why? Cordless phones with a second SIM card. ;)

  • I run bunch of servers on my Android phone using Termux: FreshRSS, Syncthing gateway, ftp, backups, downloads...

    I travel a lot, unlimited data, it serves as a hotspot anyway, so it kind of makes a sense. It has 12GB RAM and 1.2 TB storage. More power intensive servers (Syncthing) shutdown if battery is low.

  • My first home automation circa 2006 was ejecting CD tray pushing a garage opener button. The server hosted a WAP page accessible via my pre-smartphone cellphone to close and open the garage.

  • Let's set the clock back to 1989, I'm a student at an agricultural university in the Netherlands who just got himself his first CD-player. The thing had an RCA connector on the back marked RC-5 which turned out to be a remote control protocol [1]. Of course there was no Wikipedia back then but we did have a working postal system. I wrote a letter to Philips asking them to provide me some details on this RC-5 protocol and that connector on my new drive so I could create something to interface with it.

    A week or so later I got a big envelope containing the electrical characteristics of the connection as well as the timing and coding details for RC-5. Using that data I created an RC-5 interface for the user port on my Commodore-64 which I controlled through an RC-5 driver I created in assembler. Using the C-64, the driver and the adapter I made myself a musical alarm which did wonders for my house mates' early morning rest when I happened to leave the volume on the amplifier a tad too high. I'm pretty sure I was the only one using a 70W hifi alarm clock back then, at least at my university.

    Now I just set my phone. Boring.

    [1] https://en.wikipedia.org/wiki/RC-5

  • Wow. My most permanent temporary solution is a doorbell extender I hacked out of an ESP-01 and a buzzer. Whenever the doorbell rings, a door sensor (with a magnetic reed switch) _inserted into the doorbell_ closes, sends a Zigbee packet to my coordinator, which then turns it into an MQTT message, which then gets picked up by Node-RED and re-mapped to the buzzer, which gets it via Wi-Fi.

    But some of the solutions on that thread actually make me comfortable with the way this works...

  • I don’t think this is too gnarly but I ingest 433MHz/MHz RF blasts from the neighborhood using a software-defined radio.

    I primarily use this to track my 30+ plants using cheaper, lower power, pairing-free and more reliable RF ping-based soil sensors.

    I dooo get pager alerts about my potted plants tho.

  • I have an online browser-based card game, but I can only play it while connected, which isn’t doable on my twice-a-year 15h journey on the airplane. So I managed to host this game in a Raspberry Pi Zero W, so I can play it while travelling.

    https://www.kassner.com.br/en/2023/10/06/canastra-on-the-go/

  • https://blog.plzat.me/2023-05-23-android-in-wireguardland-pu...

    I am super excited about Firefox extensions, especially on Android. Until recently, you could add them, but then when the browser was killed for OOM, you needed to reload them and that required using ADB on a laptop. So, when I was out and about, I was stuck.

    But, then I figured out that if I connected my Android device to my wireguard connection, then I could script my desktop machine to connect to my Android phone using ADB and install the extension remotely, even from thousands of miles away. The trick was that to turn on Wireless debugging in Android, you have to be on the screen with wireless debugging enabled and cannot leave it until the connection is made (so you cannot manually turn on the ADB push). I figured out a hack that involved taking a screenshot with the dynamic port and syncing that screenshot using syncthing and then a bit of OCR.

  • BTW if you're looking for even more things to self host, I've got a little site for that: https://awsmfoss.com

    There's no categorization (well... there is, but it's in my large behind-the-scenes Baserow[1] list), but there is a LOT of self hosted software in there. It's just a bit annoying to get to right now without search/categorization.

  • my elderly father lives alone and tends to fall asleep on the toilet. I have developed a solution with Arduino that, after an initial measurement, monitors the appearance of obstacles in front of him. after 15 minutes of the obstacle remaining, it emits a sound for 10 seconds and starts monitoring again.

    https://youtu.be/uuRDD-5Vv9k

  • I kinda went down autonomous home rabbit hole, so I self-host everything in a way that can work without Internet.

    I use my router to host my house's DNS zone (it's set up as a secondary), along with the TLD zone NS records. I still haven't solved how to do that with DNSSEC, but it's on my TODO list.

    Next, I have a SIP-based intercom system built on Cisco videophone, with a self-made doorbell on a RPi with a camera and a microphone. It can call my cellphone via a SIP gateway, but so far I haven't solved how to make video SIP calls to cell phones. I don't think it's even possible, so I'll probably switch to Telegram or WhatsApp API instead (I have both on my phone anyway).

    Of course, I have a local video security that mirrors in real time to the cloud, and two redundant Internet connections (a fiber to my ISP and Starlink). Everything automation-related is POE-powered, with a battery backup (and I'm working on adding remote monitoring to a Jackery power bank).

    It's a pretty fun way to spend some time tinkering with technology.

  • I wired up my deployment GitHub action to trigger a relay switch in an esphome device, whenever it finds that one of my SBCs might be offline prior to deployment.

    I also setup an esphome automation on another plug that my space heater is plugged into. The obvious next step is a GitHub Action that fires 30 minutes before I wake up and turns on the heater plug.

  • I've got one on my backlog that I already have the parts for, just need to set it up.

    We leave the radio on for our dog when we're not home. I have a z-wave button that triggers Home Assistant to turn on the AVR to radio and set the volume to a decent level. But on rare occasion the Shield Android TV plugged into the same AVR sees it turning on as an invitation for it to also turn on(which it should if we were actually setting the AVR to it's input source). And when it turns on, the TV also turns on.

    I could detect the AVR is on the wrong source and switch it back to radio, but the TV would stay on because the AVR outputs info about the radio channel to the TV.

    I don't keep my TV on the network so my plan is to setup a WiFi controlled IR blaster that will turn off the TV when I detect the AVR is on the wrong input.

  • A friend and I run an in-person LAN party with about ~20 seats. We play generally older games that existed in a time before Steam. I wasn't happy with manually loading GOG installs onto a machine and often times duplicating or imaging Windows installs would break games.

    I ended up writing my own game digital distribution "platform": https://lancommander.app

    The client is an addon for Playnite. The backend is a Blazor application. It's been in development for a little over a year, but I'm insanely proud of how far it's come.

  • I don't "do" reddit, so I'll post mine here.

    Back when I was a prof., there was a monitor mounted on the wall outside my office whose display I had control of (it was from the previous prof and I inherited it).

    I connected it to a RPi and set it to display a website. The website was one that I wrote that did 2 things. First, it displayed a random XKCD comic, rotating every 30 seconds, as well as a scrolling message at the bottom (usually just a disclaimer that the images were chosen at random). Second, it was an endpoint for Twilio.

    The end result was that I could send a text message from my phone and it would display that message on the monitor on the wall outside my office. It rejected any message that was not from my number. I used it to display things like: "Had to run across campus. Be back at 1:30." or "Left for the day." And, since people would often stop and read the comics, they would definitely see the message.

  • I've built (now improving) a fully automated real-time ML stock trader in Rust. It's hosted on-prem via 6 Raspberry Pis using Kubernetes.

  • I connected a raspberry Pi with a photodiode based sensor to my solar generation meter so it could read the LED that flashes once per watt-hour, and made a graph: https://flatline.org.uk/daystats.html

    If you click about you can see just how seasonal/weather sensitive it is.

  • I self-host my garage door opener. Instead of having a remote, I have a VPN and password protected webpage that I hit to open my garage. It's come in handy when other people have to access it, I can open it from anywhere I have Internet, and I can give other people access with their own password.

  • "Selfhosted" solutions:

    Retro chores: A chores list mounted to the wall. It has a 4K OLED touchscreen that is 20" tall but only 4" wide. Physical toggle switches controlled by electro magnets so that the Raspberry Pi inside can physically toggle the switches. Complete a chore? You toggle the switch. Then the Raspberry Pi, at the end of the day, resets the toggle switch and clears the chore from the list. It's made with 21st century technology looks like it came straight from Atari in the 1970's. All walnut, and teak and brush metal.

    Retro Jukebox: Two vertical 4K OLED touch screens, two curved 2K AMOLED touch screens, lots of physical jukebox style radio buttons that can be programmatically reset, all controlled by a Raspberry Pi, brushed metal and wood case, and now wired into ChatGPT so I can say things like "whatever happened to these guys?"

    Time-synchronized wall clocks: Eight separate analogue timezone aware clocks controlled with dual axis stepper motors, and a sizable amount of VFD displays, all run from a single Raspberry Pi. The controller changes the VFD under each clock to show the name, the offset from local time, weather in the time zone, and a few headlines. It's motion and IR sensitive so the VFDs shut down when nobody is around to watch them.

    Daily Guk: It's a newspaper running on an old 21" android tablet that shows good news for the day, our calendar, comics, local weather.

    Memories: It's 18 x 9" OLED displays artfully arranged on the wall and driven by a Raspberry Pi that pulls images from our stash of digital photos. Motion sensing so they turn-off when nobody is around.

    Arcade Cabinet Rack: I have two 4U workstations and a 3U UPS, plus a 1U network switch I installed in a custom built cabinet that is about 30" tall, and then I built another cabinet on top of that which is an arcade machine that plays a bunch of retro games on a Skull Canyon NUC.

    The Wall: I salvaged a bunch of 55" 4K TVs, stripped them down to their components and then built them in to a fake wall, with sliding rice paper shoji screens in front of them, and the screens show peaceful calming nature scenes. Display can run in 2D or 3D mode. Driven by an old i7 and a quadro card.

    CNC Controller: An android tablet that talks to a Raspberry Pi that controls my two CNCs littleboy and fatman because I got tired of the CNC cuts failing due to network connectivity issues.

    CNC Dove tailer: It's an aluminium jig that I cut on the CNC that lets me vertically mount a board at the end of the CNC to cut dove tails nice and clean.

    Walking timer: It's a simple stop watch Windows app with some big buttons to start and stop the timer and add laps that my wife and I use to track our neighbourhood walks. I added some computer vision smarts to it so it can pull the video from the front door camera and automatically start the timer and track our laps around the block using gait analysis and image recognition.

    Home health: It's a custom made home dashboard that tracks calendars, emails, locates the cell phones, locates our wallets, tracks the cats, shows our meal plan for the week, local weather and so on.

    Cat toy robot arm (no longer available to play): I built a robot arm with different attachment options; a laser pointer and a feather on a bendy stick. You could control this robot arm over the internet, through a web browser, and there were live camera feeds to the web browser window. And you could donate money to play with the cats in the shelter for a period of time. Like an arcade game. And all the cats got adopted.

    Cat toy touch screen: I salvaged a 50" LCD and installed an infrared touch screen and turned it into a large cat that sits on the floor that lets the cat chase a virtual mouse around the screen.

    RTS sand box: A couple of high res overhead projectors and a few kinects and some sand in a box and we have an RTS game you can fight little war games on. I don't think the installation is at the science museum anymore.

    Litter box cleaner: A kinect, a digital weight scale, a couple of cameras, a robot arm, a litter box, an internet connection and I would pay 25c for people using Amazon's Mechanical Turk to manipulate the robot arm and clean the litter box for me. And people would wait in line to take the job.

    Waterfall Ring toss: I salvaged a 55" 4K TV and made a physics based retro game where you try and get rings onto pylons, that was then installed in the door of an art gallery, which was closed due to the pandemic. Big mashable button on the front of the machine so you could play the game.

  • I set up a raspberry pi + SDR antenna to publish a streaming audio feed just so I could listen to Red Sox games on my Sonos.

  • Self hosting for ~20 years on the exotic platform of a computer under my desk...

  • I import lots of crap and need to declare the HS codes and everything.

    Wrote a whole app that lets me search through all the HS codes and sub-categories and then check the best tariff/levy/anti-dumping fees based on the search terms and country of origin.

  • Feeling the frustration of owning a Victron EVC300400300 "integrated" with my p.v. (WFH, so I can recharge my car during many days) I've used a ShellyPro 2 to power on a small 2kW resistive heater for few minutes, drop the load and power cycle the EVC.

    VERY often this device in "auto mode" (charge from p.v. varying charging current following maximum p.v. production) in a zero-injection to the grid setup decide there is not enough p.v. power available even if it's totally false. Since Victron have not added a "force start" option I have done mine. When the EVC see the extra power available just after restarting it star charging...

    A very good example of the crappiness level and logic of actual IoT... Another simpler automation is for my VMC (AirWell AirFlow 250-N91, witch I discover that's also Clivet ElfoFresh and other names, since it's a Chinese machine rebranded by some integrators in various country) that in auto mode when there is a very sunny winter day with mild temperature and the home due to the southern large windows start to heat way too much it keep running the compressor injecting absurdly hot air instead of passive cooling. The automation is simply ModBUS via HA to switch from auto to "ventilation only" and switch back if the outside temp goes lower than 7℃ since the VMC refuse to ventilate below 7... Even if I have 25 inside.

    Another of the same kind for my domestic hot water heater, Daikin/Rotex M2O EKHHP "a machine for the future in the present, ready for renewables" etc etc etc that's so ready that the sole automation available are 2 dry contacts that allow to

    - run full power till the water reach a certain threshold (that I can't set, 62℃ hard-coded)

    - run the compressor (heat pump only) for an hour than the resistive heater + the compressor

    - do not run

    - decide autonomously what to do

    Daikin engineers have essentially not counted p.v. in their design but just different grid tariffs during a day. There is no way to tell something like

    - do not run

    - run ONLY the resistive heater (following water temperature, of course)

    - run ONLY the heat pump

    - run both

    Way too simple apparently for their mind... As a result when I have enough spare p.v. HA flip between the "do not run" and "run the heat pump than also the resistive heater" every 15' to keep just the heat pump. Run full power if there is more spare power, but no way to tell, run just the resistive heater (2kW instead of 2.6-2.8kW). It's nothing special in economical terms, just my desire to optimize self-consumption, but the design of ALL current IoT appliance are obscene and demand obscene hacks to use then rationally simply because their designer never though nor about integration, nor about a vast set of real world scenarios.