Releases: SimoneB79/ha-linux-companion
Releases · SimoneB79/ha-linux-companion
v3.0.1 — Topbar scroll fix + login keyboard i18n
Fix
- Topbar:
touchmoveora usacapture:trueper intercettare lo scroll prima dei listener di Home Assistant - Topbar: corretta direzione scroll — scroll giù (dito su) nasconde, scroll su (dito giù) mostra
- Login: fix spazio nella tastiera che mostrava il template literal raw invece del testo tradotto
v3.0.0 — i18n Support (IT/EN)
What's New
🌐 Internationalization (i18n)
- Full language support: Italian (default) and English
- Language selector in settings overlay
- Persistent language preference (
localStorage) - 54 translation keys covering all UI strings
- Dual support: local injection + IPC fallback
🐛 Bug Fixes (from v2.4.0)
- WS reconnect storm fix (guard flag + cleanup)
- Stale token on dashboard reload
- Auto-recover from HA login page after restart
- HA 2026.6.x sensor payload compatibility
- Touchscreen topbar reveal improvement
🐳 Docker Support
- Dockerfile with noVNC access
- docker-compose.yml included
Full Changelog: v2.4.0...v3.0.0
v2.5.0
Bug Fixes
- WS reconnect storm — guard against parallel WebSocket connections when HA returns 502
- Dashboard shows login after HA restart — reload config from disk, use fresh access token for localStorage injection
- WebView stuck on HA login page — auto-detect navigation to /auth/* URLs and reload dashboard
- HA 2026.6.x sensor payload — strip registration-only fields from update_sensor_states
Compatibility
- Home Assistant 2026.6.x required
v2.4.0
What's New
🔄 Auto-reconnect
Health check monitor detects when HA restarts and automatically reconnects (token refresh, WS, dashboard reload).
📊 Kiosk Status Bar
Auto-hiding status bar with swipe-up gesture, integrated settings gear.
🐛 Bug Fixes
- WS auth loop fixed — WebSocket now reloads fresh token from disk on reconnect, preventing infinite connect/disconnect loops after token refresh.
📝 Docs
- README: AI agent attribution (OpenClaw + Z.AI) + architecture section
Built by OpenClaw AI Agent (Z.AI model) with human supervision by SimoneB79
v2.2.0 — Auto-Reconnect + Kiosk Status Bar
🆕 Features
🔄 Auto-Reconnect (Health Monitor)
- Companion automatically reconnects when HA or the server restarts
- Pings HA every 60s (normal) or 10s (when offline)
- On reconnect: refreshes token, reloads dashboard, restarts sensors, reconnects WebSocket
📊 Kiosk Status Bar
- Professional top bar replaces the floating ⚙ gear button
- Shows: clock, date, CPU temp, device name, settings gear
- Auto-hides after 5 seconds — reappears on top-edge touch/mouse
- Settings panel opens via gear tap or right-edge swipe
- 50px height with 40×40 touch-friendly gear button
🐛 Bug Fixes
- Companion no longer gets stuck on error page after HA restart
- WebSocket reconnects properly with token refresh
v2.3.0 — Notification System, Hardware Integration & Remote Commands
🎉 v2.3.0 — Major Feature Release
🔔 Notification System
- Custom HTML/CSS toast overlay injected into Lovelace dashboard
- 5 priority levels: urgent (persistent + action button), high, default, low, min
- Color-coded borders with animated slide-in/out and progress bar
- Up to 3 stacked toasts with auto-dismiss
- Notification settings menu: enable, sound, DND, duration, melody
- Custom sounds: .wav/.ogg/.mp3/.flac from
~/.config/ha-linux-companion/sounds/ - Channels: auto-created from
data.channel, per-channel enable/sound/priority - Notification history with clear
🖥️ Hardware Integration
- System clock with date and CPU temperature in settings menu
- Hardware info panel: board model, CPU temp/freq, RAM, disk, OS, kernel, serial
- Color-coded progress bars for CPU, RAM, disk usage
- CPU governor selector: performance / powersave / ondemand / conservative / schedutil
- Display ON/OFF control
- Night scheduling: auto display off/on at configurable times
- Network info: WiFi SSID, signal strength, IP, gateway, DNS
- Audio output selector: switch between HDMI, jack, Bluetooth
- System reboot/shutdown with confirmation
- Update checker: shows latest stable and dev releases from GitHub
📡 Notification Commands
Control the panel remotely from any HA automation:
| Command | Description | Data |
|---|---|---|
command_screen_on |
Turn display on | — |
command_screen_off |
Turn display off | — |
command_screen_brightness_level |
Set brightness | brightness: 0-100 |
command_volume_level |
Set volume | volume_level: 0.0-1.0 |
command_dnd |
Toggle DND | dnd: true/false |
command_bluetooth |
BT on/off | bluetooth: turn_on/turn_off |
command_update_sensors |
Force sensor update | — |
command_open_url |
Navigate to URL | url: "https://..." |
command_navigate |
Navigate HA path | navigate: "/lovelace/0" |
command_restart_app |
Restart Electron | — |
command_reload_dashboard |
Reload dashboard | — |
command_set_wallpaper |
Set background | url: "https://..." |
command_set_theme |
Set HA theme | theme: "name" |
Example Automation
automation:
- alias: "Panel night mode"
trigger:
- platform: time
at: "23:00:00"
action:
- service: notify.mobile_app_pannello
data:
message: command_screen_off
- alias: "Panel morning"
trigger:
- platform: time
at: "07:00:00"
action:
- service: notify.mobile_app_pannello
data:
message: command_screen_on
- delay: 5
- service: notify.mobile_app_pannello
data:
message: command_screen_brightness_level
data:
brightness: 80Full Changelog
v2.0.0 → v2.3.0 — 10 commits on dev/notifications, now merged to main
- Toast notification overlay with priority levels
- Notification settings in overlay menu
- Custom notification sounds support
- Notification channels with auto-creation
- Hardware integration (clock, display, CPU, network, audio)
- Display night scheduling
- Notification commands for remote panel control
- Comprehensive README documentation
Assets
Source code available in the repository. Install via:
git clone https://github.com/SimoneB79/ha-linux-companion.git
cd ha-linux-companion
npm install
npm startv2.3.0-dev — Hardware Integration & Notification Commands
🖥️ Hardware Integration & 📡 Notification Commands
System Clock
- Time, date, CPU temperature displayed in settings menu header
- Updates every second (clock) and 30s (temperature)
Display Controls
- Monitor ON/OFF via
vcgencmd/xset dpms - Night scheduling: auto display off/on at configurable times
- Settings persisted in
~/.config/ha-linux-companion/schedule.json
Hardware Info Panel
- Board model, CPU temp (color-coded bar), frequency
- RAM usage with progress bar
- Disk usage with progress bar
- Uptime, serial number, OS, kernel, arch
- Electron and Node.js versions
CPU Governor
- Selectable:
performance,powersave,ondemand,conservative,schedutil
Network Info
- WiFi SSID, signal strength (% and dBm)
- IP address, gateway, DNS, interface name
Audio Output Selector
- Switch between HDMI, jack 3.5mm, Bluetooth via PulseAudio
- Shows current default with ✓
System Power
- Reboot and Shutdown buttons (with confirmation dialog)
Update Channel
- Checks GitHub releases API for stable and dev versions
- Shows current version badge with update notification
Notification Commands
Control the panel remotely from HA automations:
| Command | Description |
|---|---|
command_screen_on |
Turn display on |
command_screen_off |
Turn display off |
command_screen_brightness_level |
Set brightness (data.brightness 0-100) |
command_volume_level |
Set volume (data.volume_level 0.0-1.0) |
command_dnd |
Toggle DND (data.dnd true/false) |
command_bluetooth |
BT on/off (data.bluetooth turn_on/turn_off) |
command_update_sensors |
Force sensor update |
command_open_url |
Navigate to URL |
command_navigate |
Navigate HA path |
command_restart_app |
Restart Electron |
command_reload_dashboard |
Reload dashboard |
command_set_wallpaper |
Set background (data.url) |
command_set_theme |
Set HA theme (data.theme) |
Commands work via both WebSocket push and HTTP push.
Commits since v2.1.0-dev
1d005f9v2.2.0-dev — Hardware integration, system clock, display scheduling, network infoe3d59d4Move clock inside settings menu panel3a58ed3v2.3.0-dev — Notification commands (HA-remotable panel control)830d63edocs: update README
v2.1.0-dev — Notification System
🔔 Notification System
Toast Overlay
- Custom HTML/CSS toast notifications injected into the Lovelace dashboard
- Animated slide-in/out with progress bar for auto-dismiss
- Up to 3 stacked toasts simultaneously
- 5 priority levels:
urgent(persistent + action button),high,default,low,min - Color-coded borders: 🔴 urgent, 🟡 high, 🔵 default, ⚪ low, ⚫ min
- Action buttons support (primary/secondary)
Notification Settings (⚙ menu)
- Enable/disable notifications
- Sound on/off
- Do Not Disturb mode
- Popup duration: 4s / 6s / 10s / Never
- Melody selection: Default / Success / Warning / Error
- Recent notification history with clear
Custom Sounds
- Place
.wav,.ogg,.mp3, or.flacfiles in~/.config/ha-linux-companion/sounds/ - Selectable from the overlay menu
- Preview on selection change
Channels
- Auto-created when HA sends a notification with
data.channel - Per-channel settings: enabled, sound, priority
- Disabled channel = notification suppressed
- Configurable from the overlay menu
- Persisted in
~/.config/ha-linux-companion/channels.json
Sending Notifications
service: notify.mobile_app_pannello
data:
title: "🚨 Alert"
message: "Front door opened!"
data:
priority: high
push_sound: warning
channel: alarm
channel_name: AllarmiCommits
534c722v2.1.0-dev — Toast notification overlayf6b31cdNotification settings in overlay menu7c06925Custom notification sounds supportd2b2030Notification channels — auto-create from HA, per-channel config8354837docs: update README with notification system docs
v2.0.0 — Persistent Auth Sessions
What's Changed
🔐 New Auth System
- New
src/auth.jsmodule — OAuth2 token management with persistent sessions - Uses
home-assistant-js-websocketlibrary for auth handling - Login with username/password now persists across reboots — no more re-login every restart!
- Proactive token refresh: 5 minutes before expiry
- If refresh fails: retries every 30s, NEVER wipes config
- Long-lived token support for stable installations
🧹 Cleanup
- Removed old inline auth methods from
HAClientclass - Cleaned up legacy Python app remnants
📋 Tested On
- Raspberry Pi 5 (Debian Trixie, Wayland, 7" touch)
- Raspberry Pi 4 (Debian Trixie, Wayland, DSI touch)
Full Changelog
v1.5.1 — Stable Release
HA Linux Companion v1.5.1
Bug Fixes
- Token refresh: Fixed missing client_id in OAuth refresh request — tokens now auto-renew correctly
- Audio EFAULT: Fixed execSync crash on Electron ARM/Wayland with proper encoding and stdio options
Notifications
- Longer, more distinctive notification sounds (multi-tone presets)
- Audio playback via pw-play for PipeWire backends
- Fallback chain: pw-play > paplay > aplay
Assets
- Added official app icon (SVG + PNG 512x512)
Tested On
- Raspberry Pi 5 + 7in DSI touchscreen (HDMI audio)
- Raspberry Pi 4 + 7in DSI touchscreen (headphone jack)
- PipeWire audio mixing (squeezelite + notifications coexist)
Requirements
- Node.js 20+
- Electron 35+
- PipeWire recommended (ALSA fallback supported)
- Wayland or X11 display server
Full Changelog: https://github.com/SimoneB79/ha-linux-companion/commits/v1.5.1