# FusePlan > FusePlan is a free, browser-based planner for electrical sub-distribution boards (fuse boxes / Unterverteilungen). Drag breakers, RCDs and surge protection onto DIN rails, watch the used capacity per row, and export a parts list. It gives hints on what it can see: RCD type per circuit (A/F/B, a charging point on an RCD of its own, DIN VDE 0100-722:2019-06), the load behind every RCD and feed, surge protection, installation zones, bathroom zones, outdoor protection ratings, smoke alarms. It does not plan or size the service connection or the meter place (the room planner marks where they sit, the panel planner holds a meter place of placeholders), PV, battery storage, earthing or lightning protection, it does not size conductors beyond a table proposal, and it does not replace the design, installation and sign-off of a qualified electrician. All calculations run client-side, so no layout data leaves your browser. Agents can plan a board for a user: write a project file as described in "Build a board for a user" below, and the user opens it in the board planner. ## Tools - [Board planner (EN)](https://www.fuseplan.app/editor/): drag-and-drop DIN rail planner with real component widths, wiring, labels, hints and a PDF for the electrician. Its parts are on the shopping list. - [Board planner (DE)](https://www.fuseplan.app/de/editor/): derselbe Planer auf Deutsch. - [Room planner (EN)](https://www.fuseplan.app/editor/rooms/): sockets, switches, network and TV outlets per room, with the DIN 18015-3 installation zones and a PDF for the electrician. - [Room planner (DE)](https://www.fuseplan.app/de/editor/rooms/): Raumplaner auf Deutsch. - [Shopping list (EN)](https://www.fuseplan.app/editor/list/): board parts, switch range, flush boxes and cables in metres for the whole installation, worked out from the room plan. - [Shopping list (DE)](https://www.fuseplan.app/de/editor/list/): Einkaufsliste auf Deutsch. - [Configurations (EN)](https://www.fuseplan.app/configurations/): ready-made boards by size and manufacturer. - [Configurations (DE)](https://www.fuseplan.app/de/configurations/): fertige Verteiler nach Größe und Hersteller. - Each ready-made configuration is also available as a FusePlan project file at `https://www.fuseplan.app/configurations/.json` (for example `/configurations/2x12.json`), the same format the panel planner imports. - [Cable heat simulator](https://www.fuseplan.app/tools/cable-heat/): how hot a cable gets for a given cross-section and current. - [Voltage drop calculator](https://www.fuseplan.app/tools/voltage-drop/): voltage left at the far end of a run for a given length, cross-section and current. - [Part catalogue (JSON)](https://www.fuseplan.app/catalogue.json): every part the board planner knows, with type, width, poles and rating. - [Android app on Google Play](https://play.google.com/store/apps/details?id=de.diecklabs.fuseplan): opens shared plans and project files on the phone, with an installation checklist per room, notes, the rooms in 3D, the board and the circuit list. ## Build a board for a user 1. Choose parts from the [part catalogue](https://www.fuseplan.app/catalogue.json). A project file may only name a `type` listed there. Labels are German (LS = circuit breaker, FI = RCD, FI/LS = RCBO, ÜSS = surge protection). The catalogue's `categories` give English names. 2. Write a project file like the example below and give it to the user as a `.json` file. 3. The user opens the [board planner](https://www.fuseplan.app/editor/) and picks Projects → Import JSON (German: Projekte → JSON importieren). The planner checks the file, completes every part from the catalogue and saves the project in the browser. From there the user can change it, print it or share it as a link. Example: one row with an RCD that feeds three circuits through a phase busbar. ```json { "schema": "fuseplan-project", "version": 1, "project": { "name": "Flat, ground floor" }, "editor": { "rails": [ { "maxTE": 12, "components": [ { "id": "rcd1", "type": "RCD_A_40A_30MA", "note": "RCD 1" }, { "id": "kitchen", "type": "MCB_B16", "note": "Kitchen sockets", "cableType": "NYM-J", "cableCores": "3", "cableCsa": "2,5" }, { "id": "bath", "type": "MCB_B16", "note": "Bathroom" }, { "id": "light", "type": "MCB_B10", "note": "Lighting" } ] } ], "buses": [ { "id": "rcd1-busbar", "kind": "L", "terminals": [ { "componentId": "rcd1", "pole": 0, "side": "bottom" }, { "componentId": "kitchen", "pole": 0, "side": "bottom" }, { "componentId": "bath", "pole": 0, "side": "bottom" }, { "componentId": "light", "pole": 0, "side": "bottom" } ] } ] } } ``` ### Project file format - `schema` and `version` are required and always `"fuseplan-project"` and `1`. - `project` is optional. `project.name` names the project. Id and dates are filled in when missing. - `editor.rails` lists the DIN rails from top to bottom. `maxTE` is the length of a rail in modules (TE, 17.5 mm each). One row of a common enclosure holds 12 TE, the maximum is 72. In an enclosure with several fields, `column` (counted from 0, default 0) puts a rail into another field. - `components` lists the parts of a rail from left to right. A part needs only its `type`. Without `pos` it goes right after the part before it. `pos` places it that many TE from the left end of the rail. Parts must not overlap or run past `maxTE`. - Circuit breakers, RCDs, RCBOs and AFDDs come in several ratings of the same shape. Parts with the same `ratingGroup` in the catalogue take the same space, and after the import the user can switch a placed part to any other rating of its group. `default` marks the rating the planner's toolbox offers. It is not a recommendation: choose the rating the circuit needs. - `note` is the circuit designation, shown in the circuit list, on the printed labels and in the test report, e.g. "Kitchen sockets" (up to 120 characters). - `id` is optional and must be unique within the project. Give one to every part that wiring refers to. - `cableType`, `cableCores` and `cableCsa` set the cable of a circuit, with values from `cable` in the catalogue. Cross-sections are written with a decimal comma: `"2,5"`. Without them the planner proposes a cable from the breaker rating. That proposal is not a conductor sizing. - Parts marked `"underlay": true` in the catalogue (busbar accessories) go into the rail's `busbarUnderlays`, not into `components`. - Further boards, e.g. one in a garden shed, go into `boards`. Each is written like `editor`, plus an `id`, a `name` and `"feed": { "boardId": "main", "componentId": "..." }` naming the breaker that supplies it. A board `id` consists of letters, digits, `-` and `_` only, e.g. `garden-shed`. The board in `editor` is `main`. - A further board with `"kind": "meter"` is a meter place (Zählerplatz). Its parts are custom placeholders for the main circuit breaker (SLS), the meter, the smart meter gateway and the control box, without sizing. The hints on the board leave it out. - Write each placeholder as a `CUSTOM_DEVICE` with its own `label` and `widthTE`, e.g. `{ "type": "CUSTOM_DEVICE", "label": "SLS (placeholder)", "widthTE": 4.5 }`. A meter place the planner creates has three rails: the SLS (4.5 TE) on the first, the meter (7 TE) on the second, the smart meter gateway (6 TE) and the control box (4 TE) on the third. These widths only keep space free on the rail and come from no data sheet. ### Wiring Wiring is optional. Without it the planner shows the board and the circuits and the shopping list has the parts, but the planner does not know which RCD protects which circuit. To tell it, connect the terminals: - A terminal is `{ "componentId": "...", "pole": 0, "side": "bottom" }`. `pole` counts from 0 in the order of the part's `poleKind` in the catalogue, so pole 0 of a 2-pole RCD (`["L", "N"]`) is L. `side` is `top` or `bottom`. An RCD's outputs are at the bottom. - `buses` are busbars: `{ "id": "...", "kind": "L", "terminals": [...] }` joins all listed terminals, at least two. A phase busbar along the bottom row from an RCD to its breakers, as in the example, assigns those circuits to the RCD. - `wires` are single conductors: `{ "id": "...", "kind": "L", "from": , "to": }`, optionally with a `csa` from `cable.csa` in the catalogue, e.g. `"1,5"`. - `kind` is one of `L`, `L1`, `L2`, `L3`, `N`, `PE`, `LAN`. - A terminal takes at most two conductors. The planner drops any beyond that. ### When the planner rejects a file The planner names the problem, for example `Unknown component type: MCB_B16X`, `Component MCB_B16-3f2a1b9c exceeds rail capacity` or `Overlapping components: kitchen and bath`. Fix the file and import it again. ### What to tell the user FusePlan plans the layout and the parts list and gives hints on what it can see (RCD type and assignment, feed rating, surge protection, three-phase consumers on single-pole breakers). It proposes cable cross-sections from DIN VDE 0298-4 for installation method A2 only (two loaded conductors for single-phase, three for three-phase circuits), and it does not plan or size the service connection or the meter place (a meter place board holds placeholders only), PV, storage, earthing or lightning protection. A qualified electrician has to design, install and sign off the board. ## Blog - [Blog (EN)](https://www.fuseplan.app/blog/) - [Blog (DE)](https://www.fuseplan.app/de/blog/) ## Compared with other tools - [FusePlan vs. Panelworks (EN)](https://www.fuseplan.app/blog/fuseplan-vs-panelworks/): price, account, parts, wiring, outputs and who each one suits. - [FusePlan vs. Panelworks (DE)](https://www.fuseplan.app/de/blog/fuseplan-vs-panelworks/) - [FusePlan vs. myElectricPlan (EN)](https://www.fuseplan.app/blog/fuseplan-vs-myelectricplan/): price, free limits, account, parts, circuit diagram and who each one suits. - [FusePlan vs. myElectricPlan (DE)](https://www.fuseplan.app/de/blog/fuseplan-vs-myelectricplan/) - [FusePlan vs. Electro Planner (EN)](https://www.fuseplan.app/blog/fuseplan-vs-electro-planner/): price, free limits, standards, automatic device selection, AI and who each one suits. - [FusePlan vs. Electro Planner (DE)](https://www.fuseplan.app/de/blog/fuseplan-vs-electro-planner/) ## Languages - [English](https://www.fuseplan.app/) - [Deutsch](https://www.fuseplan.app/de/) ## Legal - [Privacy Policy (EN)](https://www.fuseplan.app/privacy/) - [Datenschutzerklärung (DE)](https://www.fuseplan.app/de/datenschutz/) - [Legal Notice / Impressum](https://www.fuseplan.app/impressum/) - [Terms of Use (EN)](https://www.fuseplan.app/terms/) - [Nutzungsbedingungen (DE)](https://www.fuseplan.app/de/nutzungsbedingungen/) ## Technical context - Static site built with Astro, React and Tailwind CSS - The DIN-rail planner (drag/drop, snapping, TE capacity checks) is a standalone package, `@dein-user/subpanel-editor` - No server-side processing: all layout and capacity calculations run client-side - A share link carries the project file in the URL fragment, which browsers do not send to the server - No account and no cookies. Page views are counted anonymously ## Optional - [About (EN)](https://www.fuseplan.app/about/) - [Feedback (EN)](https://www.fuseplan.app/feedback/): ideas and bug reports, with voting. - [Tools overview (EN)](https://www.fuseplan.app/tools/)