uniwire について
uniwireは、電気設備をデータで記述するオープン形式とPythonライブラリで、規則の検証や単線図・複線図の生成を行います。差分を確認しやすい設計を必要とする電気設計者向けに、コマンドライン、Python、Webビューアー、アシスタント用ツールを備えています。
主な機能
- 01JSONまたはPythonで設備を記述
- 02スキーマと電気規則の検証
- 03単線図と複線図の生成
- 04SVG、PDF、部品表、配線表の出力
- 05NF C 15-100やIEC 60364などの規則プロファイル
- 06安定したIDによるモデル編集
活用シーン
- 01選択した規則に基づく設備の確認
- 02テキスト記述から電気図面を生成
- 03部品表や配線スケジュールの作成
- 04テキスト差分による設計変更の確認
MCP 対応
stdioのMCPサーバー`uniwire-mcp`とホスト型MCPエンドポイントを備えています。アシスタント用ツールでは、モデルのリファレンスカードや概要の生成、ID指定の編集も行えます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.uniwire.sh/mcpclaude mcp add --transport http uniwire-dev-uniwire https://mcp.uniwire.sh/mcp{"mcpServers":{"uniwire-dev-uniwire":{"type":"http","url":"https://mcp.uniwire.sh/mcp"}}}Cursor で開く{"servers":{"uniwire-dev-uniwire":{"type":"http","url":"https://mcp.uniwire.sh/mcp"}}}VS Code で開く{"mcpServers":{"uniwire-dev-uniwire":{"type":"http","url":"https://mcp.uniwire.sh/mcp"}}}{"mcpServers":{"uniwire-dev-uniwire":{"serverUrl":"https://mcp.uniwire.sh/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
14| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| lang | string | いいえ | |
| level | string | いいえ |
詳細
uniwire
電気図面をコードで。
電気設備を記述するオープン標準と、設備の検証、ルールとの照合、単線結線図および複線結線図の作成を行うリファレンス Python ライブラリです。
*.uniwire.json ファイルまたは Python で設備(電源、保護装置、ケーブル、負荷、PLC)を記述すると、uniwire が図面を作成します。座標も CAD ファイルも不要です。テキストファイルなので、内容を確認して差分を比較できます。
- フォーマット:
*.uniwire.json、フォーマット 1.0。仕様で定義され、公開済みの JSON Schema で検証されます:https://uniwire.sh/schema/v1/uniwire.schema.json。 - ライブラリ:
pip install uniwire:Python API、コードファーストのビルダー、uniwireコマンドライン。 - ドキュメント:https://uniwire.sh/docs/
- Web ビューアー:https://uniwire.sh/viewer/。ドキュメントを貼り付けると、ブラウザー上で検証、ルールチェック、図面作成ができます。
特長
- 単線図と複線図を同じドキュメントから作成できます。複線図では、単線図のデータから各導体(L1、L2、L3、N、PE、PEN)が導出されるため、追加の入力は不要です。
- 53種類のノードタイプ:電力網、変圧器、発電機、UPS、PV、バッテリー、インバーター、遮断器、RCD、RCBO、ヒューズ、断路器、接触器、モータースターター、切替スイッチ、SPD、保護リレー、計器用変成器、絶縁監視装置、母線、分電盤、端子台、照明、コンセント、暖房、モーター、EV充電器、モジュラーPLCなど。
- ツリーとリンク:電力ツリーが基盤となり、切替、母線連結、引込、接地、制御、インターロック、トリップ、計測、データバスはリンクとして表します。端子/接続ノードのグラフが自動的に導出され、CIM、IFC、IEC 61850 SCLのマッピングにも対応します。
- 型を厳密に定めたフィールドと単位接尾辞付きフィールド:
in_A、idn_mA、section_mm2、p_kW。未知のフィールドはエラーになります(in_Aの代わりにcalibreを指定すると検出されます)。拡張項目はextに記述します。テンプレートではデバイスを一度だけ宣言します。 - ルールプロファイル:
core(常に適用)、nfc15100(フランスの住宅)、iec60364(ケーブルの電流容量)、enedis(フランスの公共電力網への接続)に加え、PLCの整合性チェックにも対応します。 - 部品表:任意のノードまたはPLCモジュールに構造化された
product参照(メーカー、品番、シリーズ、アクセサリー)を設定でき、CSVに集約できます(uniwire bom)。 - 電線とケーブルのマーキング:ビューごとのマーキングルール(手動、連番、電位別、パターン)、複線図上のマーク表示、CSV出力に対応します。電線リスト(
uniwire wires)、電線マーカーリスト(uniwire markers)、ケーブル一覧(uniwire cables)を出力でき、uniwire marks --writeでマークを固定できます。 - 色のモード:導体をIEC 60445または北米の色で表示するほか、相、電源、状態、電圧レベルごとに色分けできます。
- 図面シート:用紙サイズ、サブツリー表示、自動シート分割と相互参照、回路一覧、盤枠、タイトルブロック、改訂履歴、注記に対応します。SVG出力は決定的で差分を確認しやすく、複数シートのPDFではシート間のリンクをクリックできます。
- 英語とフランス語のレンダリングに対応し、各ドキュメントの
meta.langで選択できます。 - LLM向けツール:モデルから生成するリファレンスカード(
uniwire card)、安定したID付きのテキスト概要(uniwire describe)、IDベースの編集(uniwire patch)、MCP サーバー(uniwire-mcp、stdio)、ホスト型MCPエンドポイント(https://mcp.uniwire.sh/mcp)に対応します。また、アシスタント向けのllms.txt(リファレンスカード全文を含む)も利用できます。ChatGPT、Claude、Cursor、VS Codeのセットアップ方法: アシスタントでのuniwireの使用。詳細はLLM向けツールをご覧ください。
ギャラリー
![]() フランスの住宅、TT方式(NF C 15-100)、単線結線図 | ![]() ドイツの住宅、TN-C-S方式、導体の色分けによる複線結線図 |
![]() オフィスビル、主低圧配電盤 | ![]() 中圧/低圧変電所、1000 kVA |
![]() 非常用発電機、ATS、負荷遮断 | ![]() モーター制御センター、電線記号付き複線結線図 |
全52件の例はexamples/にあり、 ドキュメントにも一覧が掲載されています。どれでも ウェブビューアーで開けます。
インストール
pip install uniwire # validation, rules, SVG rendering, bill of materials, exports
pip install "uniwire[pdf]" # + PDF output (reportlab)
pip install "uniwire[mcp]" # + MCP server (uniwire-mcp)
pip install "uniwire[iec81346]" # + optional IEC 81346-2 class table (separate CC BY-SA 4.0 data package)
Python 3.10以降が必要です。必須の依存関係はpydanticのみです。
クイックスタート
JSON形式のドキュメント:
{
"$schema": "https://uniwire.sh/schema/v1/uniwire.schema.json",
"uniwire": "1.0.0",
"profiles": ["nfc15100"],
"meta": { "title": "Small house", "lang": "en" },
"installation": { "earthing": "TT", "system": "1P+N", "un_V": 230 },
"templates": { "C16": { "type": "breaker", "in_A": 16, "curve": "C" } },
"sources": [
{ "type": "grid", "label": "Utility", "children": [
{ "type": "main_breaker", "ref": "-Q0", "range_A": "15-45", "in_A": 45, "idn_mA": 500, "selective": true,
"children": [
{ "type": "rcd", "ref": "-Q1", "in_A": 40, "idn_mA": 30, "rcd_type": "A", "children": [
{ "type": "breaker", "ref": "-Q11", "use": "C16", "cable": { "cores": "3G", "section_mm2": 1.5 },
"children": [ { "type": "lighting", "label": "Lighting", "points": 6 } ] },
{ "type": "breaker", "ref": "-Q12", "in_A": 20, "curve": "C", "cable": { "cores": "3G", "section_mm2": 2.5 },
"children": [ { "type": "socket", "label": "Sockets", "points": 8 } ] }
] }
] }
] }
]
}
ツリーは電力の流れ(電源、保護装置、負荷)を表します。ツリーの外にあるもの(切替スイッチ、バスバー連結、制御接続、データ接続)はlinksに記述します。
uniwire validate house.uniwire.json # schema + integrity
uniwire check house.uniwire.json # rule profiles (exit code 1 on errors)
uniwire render house.uniwire.json # SVG sheets in out/house/
uniwire render house.uniwire.json -f pdf -o house.pdf
uniwire render house.uniwire.json --kind multi-line # multi-line power diagram
uniwire bom house.uniwire.json -o house.bom.csv # bill of materials
uniwire wires house.uniwire.json # wire list (also: markers, cables, marks)
uniwire card # reference card for assistants
同じ設備をPythonで記述する場合:
from uniwire.build import *
with Installation("Small house", earthing="TT", system="1P+N", un="230 V", profiles=["nfc15100"]) as inst:
with Grid("Utility"), MainBreaker("-Q0", "15-45 A", idn="500 mA", selective=True):
with RCD("-Q1", "40 A", "30 mA", type="A"):
Breaker("-Q11", "C16", cable="3G1,5") >> Lighting("Lighting", points=6)
Breaker("-Q12", "C20", cable="3G2,5 18 m") >> Socket("Sockets", points=8)
for finding in inst.check():
print(finding)
inst.save("house.uniwire.json")
inst.render("house.pdf")
withを使うと、その中で作成したすべての要素の親要素になります。>>で要素を連結できます。定格やケーブルは、図面での表記どおりに記述します("C16"、"3G2,5 18 m")。コードファーストAPIとPython APIおよびCLIを参照してください。
ロードマップ
- 端子、端子台、電線:UEP-0001は、フォーマット2.0の草案です(名前付きポート、オブジェクトとしての端子台・電線・ケーブル、電位)。
- 制御回路図:名前付きポートを基盤とした、コイル、相互参照付き補助接点、端子図、電線番号。
- エクスポート:DXF図面、潮流計算および短絡解析用のpandapowerネットワーク。
アイデアやフォーマットの提案を歓迎します。CONTRIBUTING.mdをご覧ください。
貢献
バグ報告、例、ルール、シンボル、翻訳を歓迎します。CONTRIBUTING.md(開発環境のセットアップ、テスト、uniwire Enhancement Proposals)と 行動規範をお読みください。セキュリティ上の問題は非公開で報告してください。詳しくはSECURITY.mdをご覧ください。
ライセンス
- コード、CLI、JSON Schema:Apache License 2.0。
- 仕様テキスト:CC BY 4.0: あらゆるソフトウェアで自由に実装できます。
- オプションのデータパッケージ
uniwire-data-iec81346(IEC 81346-2 クラステーブル):CC BY-SA 4.0。別途配布しています (pip install "uniwire[iec81346]")。
第三者に関する通知については、NOTICEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。





