Changelog¶
All notable changes to the uniwire format and to the uniwire Python library are documented here.
The format and the library are versioned separately: the format follows 1.y.z (see
SPEC §9), the library follows its own semantic
version.
Unreleased¶
- Symbols redrawn to follow the international drawing conventions: socket outlet with protective contact, inverter with direct current top left, junction box as a circle with a dot, motor starter, variable-speed drive as a frequency converter, protective earthing on earth bars, "IΔ" on residual-current devices, "V" on voltmeters, photovoltaic generator, water heater. Converters draw direct current as a full line over a dashed one; UPS symbols carry the "UPS" label.
- The MCP server announces its website and icon to clients.
0.1.0 (format 1.0)¶
First release of the uniwire format and of the uniwire Python library (Apache-2.0; specification text under
CC BY 4.0).
- Format 1.0:
*.uniwire.jsondocuments describing an installation as a power tree (sources, devices, loads) pluslinksfor everything outside the tree; typed nodes (53 types), templates, views; published JSON Schema at https://uniwire.sh/schema/v1/uniwire.schema.json (specification). - Node types for utility supplies, MV/LV transformers, generators, UPS, PV, batteries, inverters, protective and switching devices, instrument transformers, protection relays, insulation monitors, busbars, boards, terminal blocks, loads, modular PLCs (ordered modules, roles, protocols, channel ports) and power supplies.
- Common node fields (
count,circuit,un_V,ib_A,normal_state,locks...), auxiliary devices outside the tree (devices[]), addressable enclosures (enclosures[]), key interlocks (interlocks[],locks[]on nodes and links). - Link kinds
transfer,tie,bypass,parallel,infeed,earth,control,interlock,trip,measure,dataandkey, with optional cable, device and terminal / channel ports. - Structured
productreferences on every node and PLC module; bill of materials as CSV (uniwire bom). - Validation with explicit messages (unknown fields, wrong units, broken references); any
1.y.zdocument is accepted. - Rule profiles:
core,nfc15100(French dwellings),iec60364(cable current-carrying capacity from the GUIA-BT-19 tables), PLC consistency checks, interlock check. - Single-line diagrams: automatic layout, automatic sheet splitting with cross-references, circuit schedule, enclosure frames, title block, revisions and notes, top-down or bottom-up drawings.
- Multi-line power diagrams derived from the same document: one line per conductor (L1, L2, L3, N, PE / PEN),
one contact per pole, RCD toroids, PEN split, transformer windings, motors, busbars as one rail per
conductor;
uniwire render --kind multi-linefor any document. - Colour modes per view: conductors (IEC 60445 or North-American colours), phase, source, status or voltage level, with palette overrides and a legend.
- Wire marking (the part of UEP-0001 that format 1.0
can carry): marking rules per view, manual marks in
cable.marks, cable tags on the drawings; CSV exportsuniwire wires,uniwire markers,uniwire cables, anduniwire marks [--write]. - SVG output with a documented structure contract (Python API); multi-sheet PDF with bookmarks and clickable cross-sheet references.
- English and French rendering (
meta.lang); CLI messages followUNIWIRE_LANG. - Code-first API
uniwire.build: installations as Python code (guide). - Command line
uniwire:validate,check,render,bom,wires,markers,cables,marks,graph,normalize,schema,symbols,card,describe,patch,link,--version. - Terminal / connectivity-node graph derived from the document, with CIM, IFC and IEC 61850 SCL mappings.
- Tolerant reading of unambiguous near-miss values (
poles: 2,cores: "3G2.5",range_A: [15, 45]...), each reported by the rulecore.normalized;installation.premisesscopes dwelling-only rules. - LLM tools (guide): reference card generated from the model (
uniwire card), text outline with stable ids (uniwire describe), id-based edits (uniwire patch), flat node table, links that open a document in the web editor (uniwire link,viewer_urlin the MCP tool results). - MCP server
uniwire-mcp(extrauniwire[mcp]): stdio and HTTP transports, tools to validate, check, describe, patch, render and export documents, bundled examples; a public mode with bounded inputs, worker processes and timeouts, short editor links (--store) and a usage log without caller addresses, used by the hosted endpoint https://mcp.uniwire.sh/mcp; every tool has a title and read-only annotations; check results state their scope (automatic checks, not a conformity certificate). Setup for ChatGPT, Claude, Cursor and VS Code: uniwire in your assistant. - LLM evaluation tasks with a runner that makes no network calls (evals/llm).
- Hardened parsing: bounded quantity and reference parsers, nesting limit, CSV formula neutralisation, XML-safe SVG, PDF and CSV output.
- 52 example documents (examples): dwellings, commercial and industrial boards, MV/LV substations, standby sources, PV, EV charging, UPS, PLCs.
- Optional IEC 81346-2 class table in the separate data package
uniwire-data-iec81346(CC BY-SA 4.0),pip install "uniwire[iec81346]". - Draft proposal UEP-0001 "Terminals, terminal strips and wires" for format 2.0.