2vFiomba

Background

When I was little, I saved up my money ($300-ish), and bought a iRobot Create. I found out about it when I was playing in ScratchX, and I was hooked.

It's an old type of Roomba, but iRobot refurbishes them, and they published documentation on how to control it.

Some while later, I found out about Home Assistant. It's basically a home automation platform, and it supports all sorts of things. Given that the iRobot Create was an old Roomba and didn't have WiFi capability, I decided to code an adapter for it.

I called it Fiomba. It took a while, but eventually I made it.

What came next

After a while, I stopped using the Roomba. My Home Assistant config also became convoluted multiple times, so I reset my config.

But eventually, I decided I wanted to start working on it again. I had learned a fair bit about Python since then, and I wanted to make a more optimized version of Fiomba.

(FYI 2vFiomba just means Fiomba Version 2, except that it shows up first in the file manager.)

What went on during coding

Well first, I realized I needed to set up MQTT again (protocol for real-time data) in Home Assistant. I waited for HA to update, then I set up the plugin + integration.

Then I had to fix the outside lights, which took forever, given that they're made by Tuya.

Knowing that I wanted to make it more documented, I wanted to use constants for each opcode. However, you can't add documentation to a constant easily, but I eventually found this answer .

Next, I waited for sudo apt full-upgrade to finish. After that, I installed oh-my-posh on the pi (that was mounted to the Roomba) just because fancy prompts look nice.

I found out that those annotations didn't actually show in VS Code, so I made an issue . For the meantime, I'm just using a docstring after each line, which VS Code supports.

Then I started coding. I got an example that gets the sensors status, but apparently my version of Python was old. So I built Python 3.11 (for the sake of speed).

Then I messed everything up, so I took a backup of /home/pi (for the memories), and flashed the SD card with the latest Raspbian Lite image.

After that, I just speedran coding, and after some bug patching it worked. Check the source and feel free to look at the commits.