Skip to content

Floorplan Getting Started

devin edited this page Oct 21, 2026 · 2 revisions

Floorplan — Getting Started

From zero to a live RAMSES floorplan on your dashboard.

Prerequisites

  1. ha-floorplan installed via HACS (provides custom:floorplan-card + floorplan.js)
  2. floorplan-studio installed via HACS — the editor where all per-marker work happens
  3. Floorplan Helper feature enabled: Settings → Devices & Services → ramses_extras → Configure → Features → Floorplan Helper

Step 1 — Get your building SVG

Three options:

  • Draw your own in Inkscape (or any SVG editor). Name room elements area.<slug> — e.g. area.woonkamer — since that's what zone highlighting and studio room matching target. Upload it with floorplan_upload_svg, or copy it to config/www/ramses_extras/floorplan/ manually.
  • Trace a raster image inside floorplan-studio — draw room polygons over a photo/scan of your plan. Studio exports the drawing as SVG.
  • Use the generated elements SVG — svg_mode: generated (default) needs no drawing at all; devices are laid out schematically per area. Good for a first look.

Step 2 — Seed the studio project

Placing every marker by hand is tedious — let the seeder pre-place them:

action: ramses_extras.floorplan_seed_studio
data:
  floors:
    begane grond: /local/ramses_extras/floorplan/plattegrond-bg.svg
    1e verdieping: /local/ramses_extras/floorplan/plattegrond-1e.svg

The response contains project_json — a complete studio project with your SVG's rooms as studio rooms and a marker per device, placed at its room's centroid (matched via the device's HA area). Devices without a matching room park in a staging strip below the canvas.

In studio: Projects → Import JSON → paste → done. Drag the staging-row stragglers into rooms.

Already have a project? Pass it as project_json — floors match by name, missing rooms are added, existing markers are skipped, your background and studio edits are preserved.

Tip: seeding also stamps each marker's gestures (elementId, zone-aware call-service actions, ramsesZone) so studio's right panel shows the real semantics — and studio's own YAML export produces working actions verbatim.

Step 3 — Store the project

After any studio session: Projects → Export JSON → call:

action: ramses_extras.floorplan_store_project
data:
  project_json: |
    <paste here>

This writes the canonical latest.json the export compiles from (plus a timestamped backup). Studio's browser storage is not the SSOT — the stored project is.

Step 4 — Export

action: ramses_extras.floorplan_export

(or press the button.floorplan_export entity, or the export button in the plan's toolbar)

The response contains the paste-ready card_yaml. Generated files land under /local/ramses_extras/floorplan/generated/ — stable URLs, re-exports never change them. A persistent notification summarizes what changed since last export (devices added/removed/renamed).

Step 5 — Add the card once

Paste the card_yaml into a dashboard view. It references the merged SVG + stylesheet by stable path — visual re-exports need no re-paste. Only a rules change (new devices, changed gestures) requires re-pasting the rules block.

Step 6 — Sync areas (optional, recommended)

Studio knows where markers sit; HA should know too:

action: ramses_extras.floorplan_sync_areas
data:
  create_areas: true
  dry_run: true   # check the report first

Each marker is point-in-polygon tested against studio rooms (smallest containing room wins), and the entity's area_id is written — studio rooms become real HA areas. Re-run floorplan_export afterwards.

Verify it works

  • FAN spins proportional to speed; state caption shows live values
  • Tap a zone parent → served rooms hatch, bound devices ring — on every open floorplan card
  • Hold → entity more-info; double-tap → device view popup
  • Ctrl+wheel / pinch zooms, drag pans while zoomed, double-click the drawing zooms in/resets

Back to: Home | Prev: Floorplan Helper | Next: Editing & Updating

Clone this wiki locally