Hi everyone,
A few months ago, my son broke my Logitech Harmony Elite. I looked around for alternatives, but nothing really fit my needs. My best workaround at the time involved using a SwitchBot remote to send a generic IR code, catching it with an ESPHome/ESP8285 setup, and then triggering the Harmony hub activity. However, my wife and son struggled a bit with it—there were occasional glitches, and we had to find workarounds to keep everything under control.
Looking for a better solution, I stumbled upon the Sanytron Astrion HA100 remote. Checking out their website, I thought, “Awesome, this is exactly what I need!” and ordered it right away. But while waiting for it to arrive, I dug deeper into how it worked and got some bad news: it relies entirely on Home Assistant out of the box, which wasn’t what I was looking for.
Then, by pure luck, I came across BAE’s project (baes-cloud/astrion-dashboard), which offered a standalone dashboard. That’s where the real adventure began for me!
I received the remote on August 1st, 2026, at 8:00 AM. I didn’t even test the stock firmware—I went straight to BAE’s version. Just a few hours later, I modified the code to suit my needs, and I managed to get my Logitech Harmony Hub communicating directly with the remote, completely bypassing Home Assistant.
Now, after 5 days of intense development, the project has really taken shape. I’m currently on v0.3.0, and v0.4.0 is dropping in just a few hours with tons of updates:
- Custom Dashboards: Personalize your dashboard with multiple cards.
- Direct Harmony Integration: Communicate directly with your Harmony hubs.
- Translations: While the core project is in English, I’ve added a translation system so you can contribute in your native language (being French myself, French and English are already fully supported).
- JSON Helper Tool: I’ve set up an online builder tool to make configuring your JSON dashboard layout much easier.
- Coming in v0.4.0: The ability to add custom activities combined with IR commands, just like a Logitech Hub does!
Links & Code
Feel free to test it, share your feedback, or contribute!
🚀 Release v0.4.0: Standalone Local IR Support, New FanCard, and Editor Overhaul! (Click to expand)
Hi everyone!
Version v0.4.0 is officially available! This update brings long-awaited features, particularly around fan management and native support for the remote’s built-in IR blaster.
Note regarding IR: The local IR activities engine and the Pronto Hex database editor are now live! However, the database (
docs/ir-database/) will need to be populated over time with device codes (TV, plug, etc.). This gives a clear preview of where the project is heading: 100% standalone and local operation for setups that don’t rely on a Harmony hub or Home Assistant.
Key Highlights
- Standalone IR Activities & Pronto Hex Database:
- Execute IR sequences directly through the remote’s built-in IR blaster (
ConsumerIrManager). - Built-in Pronto Hex decoder in the web editor: converts Pronto codes into frequencies/patterns during
dashboard.jsonexport for zero-latency execution on device.
- Execute IR sequences directly through the remote’s built-in IR blaster (
- New Full FanCard:
- Aligns with the
ClimateCarddesign introduced in v0.3.0: dedicated power button, oscillation toggle, preset/speed selection, and configuration overrides.
- Aligns with the
- Web Editor Overhaul (
docs/index.html):- Realistic Preview: The preview pane now renders your dashboard inside an image of the physical remote frame (real 480×800 screen resolution) with a mocked status bar. Tapping the screen expands it into a larger modal.
- In-Place Editing: Click any item in a grid to edit it directly instead of having to delete and recreate it.
- Unified Color Scheme: Power buttons across
ClimateCardandFanCardnow follow a consistent scheme (red = off, green = on). - Wi-Fi Startup Fix: Added a
BOOT_COMPLETEDreceiver to automatically reactivate Wi-Fi on boot if disabled by the system.
Detailed Changelog v0.4.0
Added
- FanCard:
- New
fullstyle (auto-picked when the entity reportspreset_modesand/oroscillating), featuring a dedicated power button, preset chips, and oscillation toggle. preset_modesoverride option to filter or reorder displayed chips (the"off"state is excluded as it’s handled by the main power button).- Oscillate toggle chip reusing existing translations.
styleconfig option ("auto","simple","full").
- New
- SceneGridCard:
- Optional PNG
iconrendering on scene tiles. show_labelsoption: allows displaying icons only without text underneath.- Uniform tile height calculation across grids mixing icon and non-icon scenes.
- Optional PNG
- ClimateCard / FanCard:
show_captionsoption: hides section header labels (“Mode”, “Fan”, “Oscillate”, etc.).
- IR Activities & Editor:
- Universal Pronto Hex support (protocol-agnostic).
- New “IR Activities” section in the web editor with cascading dropdowns (Category → Brand → Model → Command).
- Modularized editor codebase (
styles.css+js/*.js).
Changed
- ClimateCard / FanCard: Power buttons now share a consistent color scheme (red when off, green when on).
- In-Place Editing: Grid items in
button_grid/scene_gridcan now be clicked to edit directly. - Cleaner Preview: Small preview mode hides clutter (card type labels, hints, action icons) to show only actual on-device visuals.
Fixed
- Wi-Fi Stability: Added
WifiBootReceiverto ensure Wi-Fi stays enabled after device restart. - Grid Overflow: Fixed horizontal scrollbars on multi-column grid previews in the web editor.
🚀 Release: v0.5.0 (2026-08-10)(Click to expand)
ersion v0.5.0 is now available! This update introduces Multi-Hub Logitech Harmony support, automatic ID resolution via IP, and integrates the Dashboard Builder directly into the app itself.
Key Features & Improvements
Multi-Hub Harmony Support & Automatic ID Resolution
- Multi-Hub Management: You can now configure multiple Harmony hubs in the settings (
/). Each hub gets assigned a stablelocalId. - Automatic ID Retrieval via IP: No need to manually copy the numeric hub ID from Home Assistant’s
harmony_<id>.conffile. Simply enter the Hub’s IP address—as soon as the IP field loses focus (or when tapping “Auto-detect ID”), the app queries the hub and retrieves its numeric ID automatically. - Backward Compatibility: If no
hubis specified on a card or tile, the first configured hub is used as a fallback. Your existing single-hub setups will keep working without any changes. - Config Export & Offline Caching: Full hub configuration (paired devices, IR commands, activities) is fetched via
GET /harmony-configand cached locally toastrion/harmony_<hubId>.jsonnext todashboard.json, keeping things running smoothly even if a hub temporarily goes offline.
Embedded Dashboard Builder
- Hosted Locally: The dashboard builder (
docs/) is now bundled as app assets and served locally atGET /builder/—no internet access or separate computer required to edit yourdashboard.json. - Live Save & Reload: When opened directly on the device, the builder automatically loads your current
dashboard.jsonand adds a “Save to device” button for instant saving and live UI reloading. - Cascading Harmony Picker: When creating tiles or hotkeys in the builder, you now get live Hub → Device → Command and Hub → Activity dropdown pickers fed directly from your paired hubs.
Card & Shortcut Enhancements
- Added optional
hubparameter support toSceneGridCard,AppleTvRemoteCard, andHotkeyConfig. SceneGridCardtiles now support directharmonyDeviceandharmonyCommandactions alongside activities.
Breaking Changes & Removals
CustomIrCardRemoved: Replaced by IR Activities (introduced in v0.4.0). To send local IR without a hub, use ascene_gridtile with anirActivityaction (which offers a full Category → Brand → Model → Command picker in the builder).- Action required: Existing
custom_ircards should be migrated toscene_grid+irActivity.
- Action required: Existing
UI & Internal Refactoring
- Redesigned Config Page (
/): The Home Assistant and Dashboard panels are now displayed side-by-side in a 2-column layout on wider screens. - Streamlined Update Badge: The “Updates” block has been moved into a compact status badge at the top, showing the active version or an amber badge to install updates in 1 click.
- Code Modularization: Split
TileCards.ktinto dedicated per-card files (CoverCard.kt,FanCard.kt, andSwitchCard.kt) to allow each component’s UI to evolve independently.








