Ventoy: Multi-Boot USB with Correct Structure

Instead of reformatting USB for each new image, Ventoy lets you simply copy ISO files like regular files. At boot, you get a menu with all available images. Benefits: ✅ No need to rewrite USB for each image ✅ Support for Windows, Linux, utilities - all on one drive ✅ Regular files accessible from any OS ✅ Flexible configuration via JSON 🗂 Correct USB Structure [First USB partition - exFAT/NTFS] ├── /ventoy/ # ← Must be here! │ ├── ventoy.json # Main config │ ├── revi/ # Windows auto-install │ │ └── autounattend.xml │ └── theme/ # Custom theme │ └── distro/theme.txt │ ├── BACKUP/ # Working files ├── LINUX/ # Linux ISOs │ ├── Archlinux 2025.12.01.iso │ ├── Debian 13.2.0.iso │ └── NixOS 25.11.1734.iso ├── WINDOWS/ # Windows ISOs │ ├── Windows 10 22H2.iso │ ├── Windows 10 Enterprise LTSC 2021.iso │ └── Windows 11 25H2.iso ├── ReviSetup/ # Post-install scripts │ └── setup.cmd └── UTILS/ # Utilities ├── gparted-live.iso └── memtest86+.iso ⚠️ Critical: /ventoy/ must be on the first partition (where ISOs are), NOT in root! ...

06 May 2026 · 4 min · 643 words · Potato Energy Team, ponfertato

Heltec V4: Integrations. Home Assistant, Telegram, Monitoring. Part 3

📌 This is Part 3 of the series. Part 1: Theory, Part 2: Practice. 🔗 What We’re Integrating Component Purpose Difficulty ONEmesh MQTT Bridge between local mesh and global map + Telegram notifications 🟢 Low Home Assistant Node sensors, device_tracker, automations on mesh messages 🟡 Medium Notifications Alerts for new nodes, lost connection, mentions in chat 🟢 Low 💡 All examples tested on: HA 2026.4.2 (Docker) + Orange Pi 3B + built-in MQTT broker. ...

29 Apr 2026 · 5 min · 922 words · Potato Energy Team, ponfertato

Home Assistant + Docker: Bluetooth for Device Discovery

Home Assistant in Docker doesn’t see Bluetooth devices, even if everything works on the host. Causes: ❌ Container has no direct access to /dev/hci0 ❌ BlueZ inside container conflicts with host daemon ❌ Passive BLE scanning requires --experimental flag in BlueZ Solution: Don’t run Bluetooth stack inside container - passthrough D-Bus from host instead. ✅ Docker Compose Configuration Minimal Setup services: home-assistant: container_name: home-assistant image: ghcr.io/home-assistant/home-assistant:stable volumes: - config:/config - /run/dbus:/run/dbus:ro # ← Critical for Bluetooth cap_add: - NET_ADMIN - NET_RAW - SYS_ADMIN restart: unless-stopped networks: - traefik - prometheus volumes: config: driver: local networks: traefik: external: true name: traefik prometheus: external: true name: prometheus ⚠️ Don’t add devices: - /dev/hci0:/dev/hci0 - not needed with D-Bus passthrough and may cause conflicts. ...

29 Apr 2026 · 3 min · 446 words · Potato Energy Team, ponfertato

Orange Pi 3B: Enabling Bluetooth (Spreadtrum UWE5622)

On Orange Pi 3B, the built-in Bluetooth chip Spreadtrum UWE5622 is connected via UART (/dev/ttyBT0). Unlike USB adapters, it requires: Loading firmware and calibration data before initialization Running hciattach_opi with correct flags Correct startup order: chip initialization first, then BlueZ daemon Symptoms: bluetoothctl scan on → No default controller available btmgmt info → Index list with 0 items hciconfig -a shows hci0, but bluetoothctl doesn’t see it Error org.bluez.Error.Busy when trying to power on Cause: The service orangepi3b-sprd-bluetooth.service runs hciattach_opi with the -n flag (no-detach), which holds the device and prevents BlueZ from registering the controller. ...

29 Apr 2026 · 3 min · 502 words · Potato Energy Team, ponfertato

Home Assistant: Precise Home Location Setup

The home zone (zone.home) is the foundation for: ✅ Presence detection (automations for “arrived/left”) ✅ Sunrise/sunset calculation (lighting, blinds) ✅ Weather forecasting (coordinate-based) ✅ Geofencing for devices and users Inaccurate coordinates = false triggers, wrong forecasts, broken automations. 🎯 The Default Wizard Problem During initial setup, Home Assistant asks to pick a location on a map. But: ❌ No manual coordinate input in the wizard ❌ IP-based auto-detection often has 1–10 km error ❌ Elevation above sea level is not requested Solution: configure precise coordinates after installation, via UI or YAML. ...

29 Apr 2026 · 2 min · 401 words · Potato Energy Team, ponfertato

PostgreSQL in Docker: Major Version Migration Without Data Loss

PostgreSQL doesn’t support in-place upgrades between major versions (15 → 17, 17 → 18). Data must be migrated logically: via dump and restore. Why it’s important: ✅ New versions = security fixes, optimizations, new features ✅ Support for modern clients (Nextcloud, Mastodon, Authelia require recent versions) ✅ Predictability: same process for any project Docker complexity: ❌ Can’t just change image tag - data format is incompatible ❌ pg_upgrade requires simultaneous access to old/new binaries - breaks container isolation ✅ Solution: pg_dumpall → new container → psql < dump 📋 Prerequisites Before starting, ensure: ...

22 Apr 2026 · 3 min · 628 words · Potato Energy Team, ponfertato

steamscope.sh: Universal Steam Launcher for Linux

🎮 Why this matters Running games via Steam on Linux often feels like “dancing with a tambourine”: different engines need different flags, AMD and NVIDIA require different environment variables, and tools like Gamescope and MangoHud must be manually inserted into launch commands. Solution: steamscope.sh - a wrapper script that: ✅ Auto-detects GPU (AMD/NVIDIA) and applies appropriate optimizations ✅ Supports engine-specific flags: Source, Unreal, Unity ✅ Integrates Gamescope, Gamemode, MangoHud, FSR in one command ✅ Works as %command% in Steam launch options ✅ Doesn’t break standard launch - everything is optional 💡 The script doesn’t replace Proton or Steam - it makes their work predictable and configurable. ...

07 Apr 2026 · 5 min · 993 words · Potato Energy Team, ponfertato