Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,

 

as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.

 

As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!

 

Regards,

Smart Home Forum by FIBARO Team


Recommended Posts

Posted (edited)

🏠 HomeMap

Visual Floor Plan Interface for Fibaro Home Center 3 

Release MIT License
📝 

Please login or register to see this link.

 

Please login or register to see this image.

/monthly_2025_11/floor_small.png.c9d7f50d0fba34778893de144d064eea.png" />lamcontrol_small.png.fdad49137881b1b3db1370addc4c7356.png
settings_small.png.bd4a7c2064f80386cd48028ef9524f8b.pngimage.png.4224e1c5a69a8c9840d8ad7534f85d1f.png
editfloor_small.png.bcda486069d4dddadd35ad0871acfbc9.pngeditdevice_small.png.4284c6084f171dd2d7ecbfaeda786473.png


Overview

HomeMap is a desktop application for visualizing and controlling your Fibaro Home Center 3 (HC3) home automation system using interactive floor plans.


Features

  • 📍 Interactive Floor Plans - Display devices on custom floor plan images
  • 🔄 Real-time Updates - Live device status using HC3 event polling
  • 🎨 Flexible Widget System - JSON-based device definitions with built-in widgets
  • ✏️ Edit Mode - Drag-and-drop device positioning with auto-save
  • 🖼️ Floor Management - Add/edit/delete floors via UI with image preview
  • 📱 Device Management - Install/uninstall devices with visual side panel
  • ⚙️ Settings Dialog - Configure HC3, house name, floors - all from the UI
  • 🏷️ Multiple Device Types - Lights, dimmers, temperature sensors, motion sensors, and more
  • Fast Event Handling - Dispatch table architecture for O(1) event processing
  • 🔧 DevTools - Built-in developer tools (Cmd+Shift+I)
  • 🔄 Auto-Updates - Automatic update checking and installation
  • 🎯 Multi-Floor Support - Tab-based navigation between floors
  • 📁 Zero Configuration - Works out of the box, auto-creates needed folders

📥 Installation

Download

Download the latest release for your platform from the 

Please login or register to see this link.

 page:

macOS

  • Apple Silicon (M1/M2/M3): HomeMap_*_aarch64.dmg
  • Intel: HomeMap_*_x64.dmg

Windows: HomeMap_*_x64-setup.exe

Android: HomeMap_*_android.apk

iPad/iOS: Sign up for a TestFlight beta: link 

Please login or register to see this link.

First Run

macOS:

  1. Open the DMG and drag HomeMap to Applications
  2. Right-click the app and select "Open" (first time only)
  3. If blocked, go to System Preferences → Security & Privacy → "Open Anyway"

Windows:

  1. Run the installer
  2. If Windows Defender blocks it, click "More info" → "Run anyway"
  3. App is safe but not signed with a Microsoft certificate

Android:

  1. Download *.apk
  2. Scan and approve app to run
  3. App is safe but not signed with a Google certificate

iOS:

  1. Sign up for a TestFlight trial of the app : 

    Please login or register to see this link.

Quick Setup

HomeMap is designed to work out of the box! On first launch:

1. Automatic Setup

  • The app automatically creates a configuration folder
  • All required files and built-in widgets are installed automatically
  • No manual folder creation needed!

2. Configure HC3 Connection

  • Click the Settings button (⚙️) in the top-right corner
  • Enter your HC3 credentials:
    • IP Address or Hostname
    • Username
    • Password
    • Protocol (http or https)
  • Optionally: Set your house name and icon (emoji)

3. Set Up Your Floor Plans

  • Click the Settings button (⚙️) → Floors tab
  • Add floors by selecting floor plan images
  • The app automatically detects dimensions and maintains aspect ratios
  • Arrange floors with Move Up/Down buttons

4. Add Your Devices

  • Turn on Edit Mode (toggle in top bar)
  • Open the Device Management panel (☰ button)
  • Select devices from your HC3 system
  • Choose widget type and floor for each device
  • Click Install to add devices to your floor plan
  • Drag devices to position them on your floor plan

5. Mobile version, Android/iPad

  • It's a general recommendation to add floorplans and devices on a desktop version. Then make a backup and restore in the mobile app. It makes is easier to edit and import images and custom widgets.
     

That's it! No manual file editing required. The app handles all configuration through its UI.

Advanced: Custom .env Configuration (Optional)

For development or if you prefer environment variables, create a .env file in your home directory:

  • macOS: ~/.env
  • Windows: C:\Users\YourUsername\.env

Content:

Please login or register to see this code.

Note: Settings configured in the app UI take priority over .env file values.


🔄 Updates

HomeMap includes automatic update support:

  • Check for Updates: Menu → HomeMap → Check for Updates
  • Automatic Notifications: App notifies you when new versions are available
  • One-Click Install: Download and install updates with a single click
  • Secure Updates: All updates are cryptographically signed

Updates are downloaded from the 

Please login or register to see this link.

 page and verified before installation.


🎨 Widget System

HomeMap uses a flexible JSON-based widget system. Built-in widgets are provided for common device types and automatically synced on startup.

For End Users: All built-in widgets work out of the box! Simply select a device in the Device Management panel, choose the appropriate widget type, and install it.

For Developers: Custom widgets and icons can be added to the homemapdata/widgets/packages/ and homemapdata/icons/packages/ folders. The built-in/ folders are automatically synced and should not be edited.

Each widget defines:

  • State: Device properties to track
  • Events: JSONPath patterns for HC3 event matching
  • Render: Icon sets, badges, and dynamic styling
  • Actions: HC3 API calls for device control
  • UI: Interactive dialogs for device control

Example widget structure:

Please login or register to see this code.

Advanced Features (v0.1.7+):

  • Expression evaluation in templates (${value * 1.8 - 90})
  • SVG manipulation for dynamic graphics
  • Conditional updates with OR logic
  • Composable UI with buttons, sliders, and color pickers
  • Dynamic styling for colored effects

See 

Please login or register to see this link.

 for complete specification and examples.


🛠️ Development

Built with:

  • Tauri 2.x - Modern desktop framework
  • Rust - Backend for HC3 API integration
  • JavaScript - Frontend with vanilla JS
  • Event-driven - Long-polling with dispatch tables

See 

Please login or register to see this link.

 for development setup.


📚 Documentation

For Users:

  • Please login or register to see this link.

     - Complete configuration guide
  • Please login or register to see this link.

     - Version history and changes

For Developers:

  • Please login or register to see this link.

     - Creating custom icons
  • Please login or register to see this link.

     - Widget JSON format specification
  • Please login or register to see this link.

     - Development setup guide
  • Please login or register to see this link.

     - Development patterns

🏗️ Architecture

Built on Tauri 2.x with:

  • Backend: Rust for HC3 API integration and file operations
  • Frontend: Vanilla JavaScript with Tauri APIs
  • Event System: Long-polling with dispatch table (30s timeout, 1s throttle)
  • Configuration: JSON-based with auto-save on edits
  • Based on: QuickAppManager architecture and learnings

🤝 Contributing

Contributions are welcome! Please feel free to:

  • Report bugs or request features via 

    Please login or register to see this link.

  • Submit pull requests
  • Share your widget definitions
  • Improve documentation

📄 License

MIT License - see 

Please login or register to see this link.

 file for details.


🔗 Related Projects

  • Please login or register to see this link.

     - HC3 event monitoring tool
  • Please login or register to see this link.

     - Lua programming environment for HC3

 

If you like the project:

  • Please login or register to see this link.

     
    image.png.4cee91821988fa361d3ad52b8751994d.png
  • Please login or register to see this link.

     

    Please login or register to see this attachment.

 

Edited by jgab
  • Like 9
  • Topic Author
  • Posted (edited)

    ToDo list (& possible future improvements)
     

    • Search in Device Management dialogue
    • Custom floorplan buttons (not associated to devices)
      • Ex. Click to start scene on HC3.
      • Click to switch floorplan, ...
    • Import/export widget sets with UI
    • Import/export icon sets with UI
    • iPad and Android Tablet versions?
      • requires unified UI to support touch/tablets
    • Widgets for thermostats and roller shutters 
    • Widgets that are updated by other means then just QA properties. Would allow a QA to send other custom values to widgets.
    • A QA could be "HomeMap compatible" by storing its widget definition in a quickAppVar, and HomeMap could fetch that and render the QA in the way the QA wants to be visualized.
    Edited by jgab
    • Like 1
    Posted (edited)

    I already got an Ide for a "Meter/multilevel" just to display a value :D 
    For energy, power etc :D
    And I am curently working to make a fine Floorplane to use :D

    THIS IS AWESOME @jgab ! :D

    But I also have some questions :D is it possible to control the lights from the Homemap? :D 

     

    Edited by Brors94
  • Topic Author
  • Posted
    15 minutes ago, Brors94 said:

    I already got an Ide for a "Meter/multilevel" just to display a value :D 
    For energy, power etc :D
    And I am curently working to make a fine Floorplane to use :D

    THIS IS AWESOME @jgab ! :D

    But I also have some questions :D is it possible to control the lights from the Homemap? :D 

     

    Yes, the light and lightdim widgets have actions defined. 

    Would need an action for color lights too...

     

    I'm about to change the widget format, but the main idea remains. 

    Would be nice to package widget.json and its icons in a distributable file format.

     

    Currently we have just icons to show, I think if we want something like a meter/multilevel

    we need to allow the widgets to dynamically create svgs, or allow "stackable" icons, i.e. 

    a round meter icon and separate overlay icons with the hands in different position. Or a parameterisized 

    svg with the hand and its angle...

     

    Anyway, I'm open for good ideas.

     

    • Like 1
    Posted (edited)
    21 minutes ago, jgab said:

    Yes, the light and lightdim widgets have actions defined. 

    Would need an action for color lights too...

     

    I'm about to change the widget format, but the main idea remains. 

    Would be nice to package widget.json and its icons in a distributable file format.

     

    Currently we have just icons to show, I think if we want something like a meter/multilevel

    we need to allow the widgets to dynamically create svgs, or allow "stackable" icons, i.e. 

    a round meter icon and separate overlay icons with the hands in different position. Or a parameterisized 

    svg with the hand and its angle...

     

    Anyway, I'm open for good ideas.

     

     

    Found out why I couldnt control the lights :D had to change to type: lightdim instead of just light :D 

    Please login or register to see this attachment.

     

    But I also se the temperature is just showing the whole number and not the decimale? :D 

    Edit: the temperature is actually showing decimals xD Just thus termostat that dosent xD 
     

    And to get energy shown isnt it just to use something like the temperature widget? :D 

     

     

    Ui to change the light for people to see :D 

    Please login or register to see this attachment.

     

    Edited by Brors94
    • Like 1
  • Topic Author
  • Posted (edited)

    Very nice map.

    My idea with the widget definition is that there will be

    - a render part that tells how the widget should render given its widget state
    - events that it reacts to and updates the widget state

    - gets, that get that values of the widget state

    - actions to control it

    - an UI part that defines what is shown when you click on it (buttons, sliders, switches etc) connected to actions

     

    Now the actions are not so complete, the dim misses on/off etc.

     

    - we should be able to control colors and sizes/scale of widgets too...

    Edited by jgab
    • Like 1
    Posted
    4 minutes ago, jgab said:

    Very nice map.

    My idea with the widget definition is that there will be

    - a render part that tells how the widget should render given its widget state
    - events that it reacts to and updates the widget state

    - gets, that get that values of the widget state

    - actions to control it

    - an UI part that defines what is shown when you click on it (buttons, sliders, switches etc) connected to actions

     

    Now the actions are not so complete, the dim misses on/off etc.

     

    - we should be able to control colors and sizes/scale of widgets too...


    Yea, I was actually thinking of scale on the Icons/widgets right now xD  :D 

    and maybe a Dual temperature sensor? 
    As you see I got 2 Temperatures on the room (floor and Rom temp) 
    Just to give you an Idea :D 

     

    And your toughts about, somehow make it available to a tablet would be awesome to! :D 

    Posted

    @jgab I am just wondering if I want the same device to apper on 2 "floors"/maps? 
    Now I have to add the device twice right? 
    Example want an own room view and and whole floor view :D 

    Please login or register to see this attachment.

    Posted (edited)

    Jan I seem to have some difficulties.

    If installed the app, privacy en security, gave permission to install.

    The app opens, with error no homedata, I check updates>> have the latest version.

    Create configuration >> pointed to desktop>> open >> enter >> error

    Create configuration >> pointed to desktop>> enter >> error

    HomeMap_0.1.3_x64_darwin.dmg Macbook with Intel processor

     

    What is going wrong?

    Please login or register to see this attachment.

    Edited by Sjakie
    Intel
    Posted (edited)
    4 minutes ago, Sjakie said:

    Jan I seem to have some difficulties.

    If installed the app, privacy en security, gave permission to install.

    The app opens, with error no homedata, I check updates>> have the latest version.

    Create configuration >> pointed to desktop>> open >> enter >> error

    Create configuration >> pointed to desktop>> enter >> error

    What is going wrong?

    Please login or register to see this attachment.



    copy this folder and rename to only homemapdata inn the main folder :D 
    image.png.c12221dbddc32f115ce5008b65e3608d.png

    Edited by Brors94
    Posted

    @jgab

    One more Idea :D
    Buttons to trigger Scenes is needed! :D
    I guess I could work around it with a Qa switch that trigger a scene :D 
    But I guess you could see the use of just a "scene trigger button" to? :)

  • Topic Author
  • Posted
    31 minutes ago, Brors94 said:

    @jgab I am just wondering if I want the same device to apper on 2 "floors"/maps? 
    Now I have to add the device twice right? 
    Example want an own room view and and whole floor view :D 

    Please login or register to see this attachment.

    That's a good idea. Planning that edit mode will have a popup to move a widget between floors, but it could be a multiselect.

    12 minutes ago, Sjakie said:

    Jan I seem to have some difficulties.

    If installed the app, privacy en security, gave permission to install.

    The app opens, with error no homedata, I check updates>> have the latest version.

    Create configuration >> pointed to desktop>> open >> enter >> error

    Create configuration >> pointed to desktop>> enter >> error

    HomeMap_0.1.3_x64_darwin.dmg Macbook with Intel processor

     

    What is going wrong?

    Please login or register to see this attachment.

    Don't have an intel, but will try see if I can find the bug.

    Posted

    One more thing :D 

    This in the config gives this error :D 
    Just to make it easy for me to seperate floors devices I was thinking :D 


    image.png.9288b860da40a2b8ab8c10443989c545.png
    image.png.6670d0b38c444f4def89a0541c5a3dc8.png

    Posted
    4 minutes ago, jgab said:

    Jan I seem to have some difficulties.

    If installed the app, privacy en security, gave permission to install.

    The app opens, with error no homedata, I check updates>> have the latest version

    Hi @jgab I have the same issue (Windows10)

    Posted
    3 minutes ago, Christb said:

    Hi @jgab I have the same issue (Windows10)

     

    Just trying to help by telling how I did it :D

    Downloaded all the files from jgabs repo and stored it in a folder 
    then run the .exe file and select the same folder

    go into the "_up_" and copy the "homemapdata.example" file and paste it in the main folder


    then go into the "homemapdata" folder and add images and adjust config.json 
     

    and the .env file with the creds, but it seems like you have that okey. 

     

    image.png.1e1368b1d99a2c99b681ac9aa4d4ee22.png

     

     

     

     

     

    Posted
    • A homemapdata folder will be created with templates >> is not created
  • Topic Author
  • Posted (edited)
    2 hours ago, Brors94 said:

    One more thing :D 

    This in the config gives this error :D 
    Just to make it easy for me to seperate floors devices I was thinking :D 


    Please login or register to see this link.


    Please login or register to see this link.

    Yes, json don't allow comments in the file. I may do a special hack to allow it in the future.

    2 hours ago, Sjakie said:
    • A homemapdata folder will be created with templates >> is not created

     

    Ok, there was a bug in the production apps with the config files. 
    I have pushed 0.1.4 and it should be available in 15min (it's building on github).

    Do an upgrade and the "Create Configuration" should work.

     

    Edit: Ok, it's built now and will hopefully fit Create Configuration both for MacOS and Windows. There should be no need to download any of the files from the repo. Just download the app for your platform.

    Edited by jgab
    • Like 1
    Posted

    Jan, after download and install the .14 version.

    This is the first screen after creation configuration still same error.

    The /homemapdata is located in /users/myname

    I created the .env file stored in /users/myname

     

     

    Please login or register to see this attachment.

  • Topic Author
  • Posted

    Yes, the setup instructions says that you need to set HC3_HOMEMAP to point where you put the homemapdata folder

  • Topic Author
  • Posted (edited)

    Please login or register to see this link.

     - 2025-10-30

    Added

    • Settings Panel: Cogwheel button for configuration management
      • HC3 credentials management (host, username, password)
      • HomeMap data directory configuration
      • Save credentials to .env file
      • Visual settings UI (no more manual .env editing!)
    • Widget System v0.1.5: Complete refactoring of widget architecture
      • Version compatibility checking with semantic versioning
      • Icon sets with auto-detection of file extensions (.svg, .png, .jpg, .jpeg)
      • New widget structure: state, getters, events, render, actions, ui
      • Composable UI system with rows and multiple element types (buttons, sliders, labels)
      • Conditional icon rendering based on device state
      • Template-based text rendering with property interpolation
      • Event-driven state management with property filtering
    • Device Management UI: Complete visual device management (no more manual JSON editing!)
      • Add Device dialog (right-click empty floor space in edit mode)
      • Edit Device dialog (change name, type, floor assignments)
      • Delete Device dialog with confirmation
      • Multi-floor device support with visual floor selection
    • Widget Interaction System:
      • Button UI type - execute actions immediately on click
      • Slider UI type - execute actions on release (mouseup/touchend), dialog stays open
      • Multi-row composable UI - mix buttons, sliders, and labels in flexible layouts
      • No Apply/Cancel needed - all actions are immediate
    • 8 Complete Widget Definitions:
      • lightdim - On/Off buttons + dim slider (0-99%)
      • light - On/Off buttons
      • binarySwitch - Toggle button
      • doorLock - Lock/Unlock buttons
      • temperature - Read-only with temperature display
      • doorSensor - Read-only with conditional icons
      • motion - Read-only with conditional icons
      • windowSensor - Read-only with conditional icons

    Changed

    • API Optimization: Widgets now use property-specific endpoints (/api/devices/{id}/properties/{property}) instead of fetching entire device objects
    • Event Filtering: Events now filtered by property name to prevent icon updates from affecting value properties
    • Context Menu: Simplified to Edit/Delete only (floor management moved to Edit dialog)
    • Action Execution: Fixed body handling for actions without value parameters

    Fixed

    • HC3 value object unwrapping (handles nested {value: X, path: "...", source: "HC"} responses)
    • Event property filtering to prevent cross-property contamination
    • Condition evaluation with proper property substitution
    • Action body always sent when defined, even without value parameter

    Technical Details

    • Widget version checking prevents incompatible widgets from loading
    • Icon sets loaded once and cached in Map
    • State management separated from HC3 API responses
    • Composable UI allows flexible dialog layouts
    • Multi-floor device format: {id, name, type, floors: [{floor_id, position}]}

    Documentation

    • Complete widget format specification in docs/WIDGET_FORMAT.md
    • Examples for all widget types
    • Migration guide from v0.1.4 to v0.1.5

     

    Note! v0.1.5 has new widget format so I recommend creating a new config homedatamap somewhere with the new format and copy over the widget an icon folder to your old homemapdata folder.

    the config.json should be backward compatible.

    Edited by jgab
    • Like 1

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Reply to this topic...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

    ×
    ×
    • Create New...