thermIQ/docs/diagrams/02_Stromlaufplan.drawio
Adrian Bretsch df53a2c6a2 feat: Add Schrankbelegungsplan diagram and gRPC client for BOS-Miner
- Created a new Draw.io diagram for the cabinet layout (03_Schrankbelegung.drawio) detailing the components and their arrangement.
- Implemented a gRPC client in client.js to interact with the BOS-Miner, including a function to retrieve the tuner state with authorization.
2026-05-08 12:54:14 +02:00

407 lines
32 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<mxfile host="app.diagrams.net" agent="ThermIQ/PAI" version="21.0.0">
<!-- ===================================================== -->
<!-- PAGE 1: STROMLAUFPLAN — 230V AC HAUPTSTROMKREISE -->
<!-- ===================================================== -->
<diagram name="01 Hauptstromkreise 230V AC" id="slp_ac001">
<mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="1200" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<!-- TITLE -->
<mxCell id="tt" value="ThermIQ ASP1 — Stromlaufplan: Hauptstromkreise 230V AC" style="text;html=1;strokeColor=none;fillColor=none;fontSize=18;fontStyle=1;align=left;" vertex="1" parent="1">
<mxGeometry x="30" y="12" width="1200" height="30" as="geometry"/>
</mxCell>
<mxCell id="tt2" value="TIQ-ASP1-SLP-AC-001 | Alle NC-Kontakte der Sicherheitsabschaltung sind in Reihe geschaltet" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;align=left;fontColor=#666666;" vertex="1" parent="1">
<mxGeometry x="30" y="42" width="1400" height="16" as="geometry"/>
</mxCell>
<!-- ===== BUSBARS ===== -->
<!-- L1 busbar (left, vertical, red) -->
<mxCell id="bus_l1" value="L1&#xa;230V" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FF0000;strokeColor=#990000;fontColor=#FFFFFF;fontStyle=1;fontSize=12;rotation=-90;" vertex="1" parent="1">
<mxGeometry x="30" y="80" width="22" height="1070" as="geometry"/>
</mxCell>
<!-- N busbar (right, vertical, blue) -->
<mxCell id="bus_n" value="N&#xa;(Blau)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#0055AA;strokeColor=#003377;fontColor=#FFFFFF;fontStyle=1;fontSize=12;rotation=-90;" vertex="1" parent="1">
<mxGeometry x="2548" y="80" width="22" height="1070" as="geometry"/>
</mxCell>
<!-- PE busbar (bottom, horizontal, green) -->
<mxCell id="bus_pe" value="PE (Schutzleiter Grün/Gelb)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#007700;strokeColor=#005500;fontColor=#FFFFFF;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="30" y="1140" width="2540" height="20" as="geometry"/>
</mxCell>
<!-- Circuit labels (left margin) -->
<mxCell id="cl0" value="Zuleitung&#xa;Hauptschutz" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;align=right;fontColor=#444444;" vertex="1" parent="1">
<mxGeometry x="60" y="80" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="cl1" value="Stromkr. 1&#xa;Miner 1" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;align=right;fontColor=#444444;" vertex="1" parent="1">
<mxGeometry x="60" y="200" width="120" height="45" as="geometry"/>
</mxCell>
<mxCell id="cl2" value="Stromkr. 2&#xa;Miner 2" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;align=right;fontColor=#444444;" vertex="1" parent="1">
<mxGeometry x="60" y="290" width="120" height="45" as="geometry"/>
</mxCell>
<mxCell id="cl3" value="Stromkr. 3&#xa;Pumpe P3" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;align=right;fontColor=#444444;" vertex="1" parent="1">
<mxGeometry x="60" y="385" width="120" height="45" as="geometry"/>
</mxCell>
<mxCell id="cl4" value="Stromkr. 4&#xa;Pumpe P4" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;align=right;fontColor=#444444;" vertex="1" parent="1">
<mxGeometry x="60" y="475" width="120" height="45" as="geometry"/>
</mxCell>
<mxCell id="cl5" value="Stromkr. 5&#xa;Pumpe P5" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;align=right;fontColor=#444444;" vertex="1" parent="1">
<mxGeometry x="60" y="565" width="120" height="45" as="geometry"/>
</mxCell>
<mxCell id="cl6" value="Stromkr. 6&#xa;Ventil RV1 AUF" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;align=right;fontColor=#444444;" vertex="1" parent="1">
<mxGeometry x="60" y="655" width="120" height="45" as="geometry"/>
</mxCell>
<mxCell id="cl7" value="Stromkr. 7&#xa;Ventil RV1 ZU" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;align=right;fontColor=#444444;" vertex="1" parent="1">
<mxGeometry x="60" y="720" width="120" height="45" as="geometry"/>
</mxCell>
<mxCell id="cl8" value="Stromkr. 8&#xa;Ventil RV2 AUF" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;align=right;fontColor=#444444;" vertex="1" parent="1">
<mxGeometry x="60" y="785" width="120" height="45" as="geometry"/>
</mxCell>
<mxCell id="cl9" value="Stromkr. 9&#xa;Ventil RV2 ZU" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;align=right;fontColor=#444444;" vertex="1" parent="1">
<mxGeometry x="60" y="850" width="120" height="45" as="geometry"/>
</mxCell>
<mxCell id="cl10" value="Stromkr. 10&#xa;Rückkühler" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;align=right;fontColor=#444444;" vertex="1" parent="1">
<mxGeometry x="60" y="920" width="120" height="45" as="geometry"/>
</mxCell>
<mxCell id="cl11" value="Stromkr. 11&#xa;Netzteil 24V DC" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;align=right;fontColor=#444444;" vertex="1" parent="1">
<mxGeometry x="60" y="1010" width="120" height="45" as="geometry"/>
</mxCell>
<!-- ===== CIRCUIT 0: Q0 MAIN BREAKER (y=80-160) ===== -->
<!-- Horizontal line from L1 to Q0 -->
<mxCell id="c0_l1" value="" style="endArrow=none;html=1;strokeWidth=3;strokeColor=#FF0000;" edge="1" parent="1">
<mxGeometry x="52" y="100" width="200" height="40" as="geometry"><Array as="points"><mxPoint x="200" y="100"/></Array></mxGeometry>
</mxCell>
<mxCell id="c0_q0" value="Q0&#xa;FI/LS 40A&#xa;30mA" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="200" y="80" width="120" height="70" as="geometry"/>
</mxCell>
<!-- AC Sammelschiene nach Q0 -->
<mxCell id="c0_bus_out" value="L1 Sammelschiene (nach Q0)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FF0000;strokeColor=#990000;fontColor=#FFFFFF;fontStyle=1;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="340" y="88" width="2180" height="18" as="geometry"/>
</mxCell>
<mxCell id="c0_n1" value="N Sammelschiene" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#0055AA;strokeColor=#003377;fontColor=#FFFFFF;fontStyle=1;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="340" y="130" width="2180" height="18" as="geometry"/>
</mxCell>
<!-- ===== CIRCUIT 1: MINER 1 (y=200-280) ===== -->
<!-- L1 → F10 → K10 (main contacts) → Miner1 Schuko 1+2 → N -->
<mxCell id="c1_f10" value="F10&#xa;LS-B16A&#xa;16A" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="340" y="200" width="90" height="65" as="geometry"/>
</mxCell>
<mxCell id="c1_k10" value="K10 / 1-2&#xa;Schütz Miner 1&#xa;(Hauptkontakt)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="460" y="200" width="160" height="65" as="geometry"/>
</mxCell>
<mxCell id="c1_m1" value="Miner 1&#xa;Antminer S19J&#xa;Schuko-1 (~1600W)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="660" y="200" width="180" height="65" as="geometry"/>
</mxCell>
<mxCell id="c1_m1b" value="Miner 1&#xa;Antminer S19J&#xa;Schuko-2 (~1600W)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="660" y="280" width="180" height="65" as="geometry"/>
</mxCell>
<!-- Auxiliary contact K10 for feedback -->
<mxCell id="c1_k10hk" value="K10 / 13-14&#xa;Hilfskontakt&#xa;→ RevPi DI_K10_FB" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="870" y="200" width="180" height="65" as="geometry"/>
</mxCell>
<!-- Note about both Schukos on same contactor -->
<mxCell id="c1_note" value="HINWEIS: Beide Schuko-Stecker von Miner 1 durch K10 führen!" style="text;html=1;strokeColor=#CC0000;fillColor=#FFE0E0;fontSize=10;align=left;fontStyle=2;" vertex="1" parent="1">
<mxGeometry x="340" y="360" width="500" height="22" as="geometry"/>
</mxCell>
<!-- ===== CIRCUIT 2: MINER 2 (y=395-460) ===== -->
<mxCell id="c2_f11" value="F11&#xa;LS-B16A&#xa;16A" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="340" y="400" width="90" height="65" as="geometry"/>
</mxCell>
<mxCell id="c2_k11" value="K11 / 1-2&#xa;Schütz Miner 2&#xa;(Hauptkontakt)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="460" y="400" width="160" height="65" as="geometry"/>
</mxCell>
<mxCell id="c2_m2" value="Miner 2&#xa;Antminer S19J&#xa;Schuko-1 (~1600W)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="660" y="400" width="180" height="65" as="geometry"/>
</mxCell>
<mxCell id="c2_m2b" value="Miner 2&#xa;Antminer S19J&#xa;Schuko-2 (~1600W)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="660" y="480" width="180" height="65" as="geometry"/>
</mxCell>
<mxCell id="c2_k11hk" value="K11 / 13-14&#xa;Hilfskontakt&#xa;→ RevPi DI_K11_FB" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="870" y="400" width="180" height="65" as="geometry"/>
</mxCell>
<!-- ===== CIRCUIT 3-5: PUMPS (y=560-680) ===== -->
<mxCell id="c3_f12" value="F12&#xa;LS-B6A" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="340" y="570" width="90" height="55" as="geometry"/>
</mxCell>
<mxCell id="c3_p3" value="P3 Wilo Stratos PICO+&#xa;230V / max. 45W" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="460" y="555" width="210" height="55" as="geometry"/>
</mxCell>
<mxCell id="c3_p4" value="P4 Wilo Stratos PICO+&#xa;230V / max. 45W" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="460" y="625" width="210" height="55" as="geometry"/>
</mxCell>
<mxCell id="c3_p5" value="P5 Wilo Stratos PICO+ (Glykol)&#xa;230V / max. 45W" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="460" y="695" width="210" height="55" as="geometry"/>
</mxCell>
<mxCell id="c3_note" value="0-10V Steuerleitung (geschirmt) vom RevPi AIO getrennt verlegen!" style="text;html=1;strokeColor=#0000CC;fillColor=#E0E0FF;fontSize=10;fontStyle=2;" vertex="1" parent="1">
<mxGeometry x="680" y="635" width="440" height="22" as="geometry"/>
</mxCell>
<!-- ===== CIRCUIT 6-9: VALVES (y=760-920) ===== -->
<mxCell id="c6_f13" value="F13&#xa;LS-B6A" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="340" y="765" width="90" height="55" as="geometry"/>
</mxCell>
<mxCell id="c6_k3" value="K3 / 11-14&#xa;Relais RV1 AUF&#xa;230V Spule" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="460" y="760" width="165" height="55" as="geometry"/>
</mxCell>
<mxCell id="c6_k4" value="K4 / 11-14&#xa;Relais RV1 ZU&#xa;230V Spule" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="460" y="830" width="165" height="55" as="geometry"/>
</mxCell>
<mxCell id="c6_k5" value="K5 / 11-14&#xa;Relais RV2 AUF&#xa;230V Spule" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="460" y="900" width="165" height="55" as="geometry"/>
</mxCell>
<mxCell id="c6_k6" value="K6 / 11-14&#xa;Relais RV2 ZU&#xa;230V Spule" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="460" y="970" width="165" height="55" as="geometry"/>
</mxCell>
<mxCell id="c6_rv1" value="RV1 Belimo CQ230A&#xa;Antrieb 230V" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="660" y="780" width="185" height="55" as="geometry"/>
</mxCell>
<mxCell id="c6_rv2" value="RV2 Belimo CQ230A&#xa;Antrieb 230V" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="660" y="900" width="185" height="55" as="geometry"/>
</mxCell>
<!-- ===== CIRCUIT 10: COOLER (y=1040-1100) ===== -->
<mxCell id="c10_f14" value="F14&#xa;LS-B6A" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="340" y="1050" width="90" height="55" as="geometry"/>
</mxCell>
<mxCell id="c10_k2" value="K2 / 11-14&#xa;Relais Rückkühler&#xa;230V Spule" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="460" y="1050" width="165" height="55" as="geometry"/>
</mxCell>
<mxCell id="c10_rk" value="Rückkühler&#xa;Ventilator 230V" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="660" y="1050" width="175" height="55" as="geometry"/>
</mxCell>
<!-- ===== NOTE: PSU shown on DC page ===== -->
<mxCell id="c11_note" value="Netzteil 24V DC: Versorgung über gesonderte F-PSU LS-B6A (siehe Stromlaufplan DC/Steuerung)" style="text;html=1;strokeColor=#996600;fillColor=#FFF8CC;fontSize=10;fontStyle=2;" vertex="1" parent="1">
<mxGeometry x="340" y="1115" width="800" height="20" as="geometry"/>
</mxCell>
<!-- ===== WIRE LINES connecting from L1 busbar to components ===== -->
<!-- These are the horizontal "rungs" of the ladder diagram -->
<mxCell id="w1a" value="" style="endArrow=none;html=1;strokeWidth=2;strokeColor=#FF0000;" edge="1" parent="1">
<mxGeometry x="52" y="97" width="150" height="10" as="geometry"><Array as="points"><mxPoint x="340" y="97"/></Array></mxGeometry>
</mxCell>
<mxCell id="w1b" value="" style="endArrow=none;html=1;strokeWidth=2;strokeColor=#FF0000;" edge="1" parent="1">
<mxGeometry x="52" y="220" width="150" height="10" as="geometry"><Array as="points"><mxPoint x="340" y="220"/></Array></mxGeometry>
</mxCell>
<mxCell id="w2b" value="" style="endArrow=none;html=1;strokeWidth=2;strokeColor=#FF0000;" edge="1" parent="1">
<mxGeometry x="52" y="420" width="150" height="10" as="geometry"><Array as="points"><mxPoint x="340" y="420"/></Array></mxGeometry>
</mxCell>
<mxCell id="w3b" value="" style="endArrow=none;html=1;strokeWidth=2;strokeColor=#FF0000;" edge="1" parent="1">
<mxGeometry x="52" y="590" width="150" height="10" as="geometry"><Array as="points"><mxPoint x="340" y="590"/></Array></mxGeometry>
</mxCell>
<mxCell id="w6b" value="" style="endArrow=none;html=1;strokeWidth=2;strokeColor=#FF0000;" edge="1" parent="1">
<mxGeometry x="52" y="785" width="150" height="10" as="geometry"><Array as="points"><mxPoint x="340" y="785"/></Array></mxGeometry>
</mxCell>
<mxCell id="w10b" value="" style="endArrow=none;html=1;strokeWidth=2;strokeColor=#FF0000;" edge="1" parent="1">
<mxGeometry x="52" y="1070" width="150" height="10" as="geometry"><Array as="points"><mxPoint x="340" y="1070"/></Array></mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
<!-- ===================================================== -->
<!-- PAGE 2: STROMLAUFPLAN — 24V DC STEUER + SICHERHEITSKREIS -->
<!-- ===================================================== -->
<diagram name="02 Steuerkreise 24V DC + Safety" id="slp_dc001">
<mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<!-- TITLE -->
<mxCell id="tt" value="ThermIQ ASP1 — Stromlaufplan: 24V DC Steuerkreise &amp; Sicherheitsabschaltung" style="text;html=1;strokeColor=none;fillColor=none;fontSize=18;fontStyle=1;align=left;" vertex="1" parent="1">
<mxGeometry x="30" y="12" width="1600" height="30" as="geometry"/>
</mxCell>
<mxCell id="tt2" value="TIQ-ASP1-SLP-DC-001 | Alle Sicherheitseingaenge NC-verschaltet — Oeffner = Fehler = Miner AUS" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;align=left;fontColor=#666666;" vertex="1" parent="1">
<mxGeometry x="30" y="42" width="1600" height="16" as="geometry"/>
</mxCell>
<!-- ===== DC BUSBARS ===== -->
<!-- L+ busbar (orange, left) -->
<mxCell id="bus_lp" value="L+&#xa;24V" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FF8000;strokeColor=#CC5500;fontColor=#FFFFFF;fontStyle=1;fontSize=12;rotation=-90;" vertex="1" parent="1">
<mxGeometry x="30" y="80" width="22" height="970" as="geometry"/>
</mxCell>
<!-- L- busbar (dark, right) -->
<mxCell id="bus_lm" value="L-&#xa;0V" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#333333;strokeColor=#111111;fontColor=#FFFFFF;fontStyle=1;fontSize=12;rotation=-90;" vertex="1" parent="1">
<mxGeometry x="2548" y="80" width="22" height="970" as="geometry"/>
</mxCell>
<!-- ===== SAFETY RELAY CIRCUIT (y=80-310) ===== -->
<mxCell id="sl" value="SICHERHEITSKREIS" style="text;html=1;strokeColor=none;fillColor=none;fontSize=12;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1">
<mxGeometry x="190" y="62" width="300" height="22" as="geometry"/>
</mxCell>
<!-- Safety relay power supply -->
<mxCell id="sr_psu" value="Spannungsversorgung&#xa;Sicherheitsrelais&#xa;(24V DC)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="190" y="82" width="180" height="65" as="geometry"/>
</mxCell>
<!-- Safety inputs in series -->
<mxCell id="sr_es1" value="S1-ES1&#xa;Not-Aus 1&#xa;NC / Oeffner" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FF0000;strokeColor=#AE4132;fontColor=#FFFFFF;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="420" y="82" width="140" height="65" as="geometry"/>
</mxCell>
<mxCell id="sr_es2" value="S2-ES2&#xa;Not-Aus 2&#xa;NC / Oeffner" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FF0000;strokeColor=#AE4132;fontColor=#FFFFFF;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="580" y="82" width="140" height="65" as="geometry"/>
</mxCell>
<mxCell id="sr_flow" value="B1-FLOW&#xa;Durchfluss OK&#xa;NC / Oeffner" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="740" y="82" width="140" height="65" as="geometry"/>
</mxCell>
<mxCell id="sr_temp" value="B2-TEMP&#xa;Max-Thermostat&#xa;NC / Oeffner" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="900" y="82" width="140" height="65" as="geometry"/>
</mxCell>
<mxCell id="sr_relay" value="SR1&#xa;Sicherheitsrelais&#xa;2-kanalig&#xa;(z.B. Pilz PNOZ X3)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="1060" y="75" width="180" height="80" as="geometry"/>
</mxCell>
<mxCell id="sr_rst" value="S3-RESET&#xa;Reset-Taster&#xa;NO / Schließer" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="1060" y="178" width="140" height="65" as="geometry"/>
</mxCell>
<!-- Feedback from K10/K11 into safety relay (Rückführkreis) -->
<mxCell id="sr_rfk" value="Rückführkreis&#xa;K10/13-14 + K11/13-14&#xa;in Reihe → SR1-Y3/Y4" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="1260" y="82" width="200" height="65" as="geometry"/>
</mxCell>
<!-- Safety relay output contacts -->
<mxCell id="sr_out_header" value="SR1 Ausgangskreise (Safety OK → K10 + K11 Spulenfreigabe)" style="text;html=1;strokeColor=none;fillColor=none;fontSize=11;fontStyle=1;fontColor=#CC0000;" vertex="1" parent="1">
<mxGeometry x="190" y="268" width="600" height="20" as="geometry"/>
</mxCell>
<!-- SR1 → K10 coil -->
<mxCell id="sr_k10c" value="SR1 / 13-14&#xa;Sicherheitsausgang 1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="190" y="298" width="175" height="60" as="geometry"/>
</mxCell>
<mxCell id="k10_coil" value="K10 Spule&#xa;24V DC&#xa;Miner 1 Schütz" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="420" y="298" width="175" height="60" as="geometry"/>
</mxCell>
<!-- SR1 → K11 coil -->
<mxCell id="sr_k11c" value="SR1 / 23-24&#xa;Sicherheitsausgang 2" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="190" y="378" width="175" height="60" as="geometry"/>
</mxCell>
<mxCell id="k11_coil" value="K11 Spule&#xa;24V DC&#xa;Miner 2 Schütz" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="420" y="378" width="175" height="60" as="geometry"/>
</mxCell>
<!-- SR1 → RevPi DI Safety OK -->
<mxCell id="sr_revpi_di" value="SR1 / 33-34&#xa;Safety OK Signal" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="190" y="458" width="175" height="60" as="geometry"/>
</mxCell>
<mxCell id="revpi_di_sf" value="RevPi DI_SAFETY_OK&#xa;(nur Meldung,&#xa;nicht sicherheitsrelevant)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="420" y="458" width="200" height="60" as="geometry"/>
</mxCell>
<!-- ===== REVPI DO CIRCUITS (y=560 onwards) ===== -->
<mxCell id="do_header" value="REVPI DIGITALE AUSGAENGE (DO) — Relaistreiber 24V DC" style="text;html=1;strokeColor=none;fillColor=none;fontSize=12;fontStyle=1;fontColor=#000099;" vertex="1" parent="1">
<mxGeometry x="190" y="545" width="700" height="20" as="geometry"/>
</mxCell>
<!-- RevPi block -->
<mxCell id="revpi_do" value="RevolutionPi&#xa;DIO Modul&#xa;DO Ausgänge" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="190" y="575" width="175" height="385" as="geometry"/>
</mxCell>
<!-- DO_K2 → K2 coil → Rückkühler fan -->
<mxCell id="do_k2l" value="DO_K2" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="375" y="583" width="60" height="20" as="geometry"/>
</mxCell>
<mxCell id="k2_coil" value="K2 Spule&#xa;24V DC&#xa;Rückkühler" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="450" y="575" width="155" height="55" as="geometry"/>
</mxCell>
<!-- DO_K3 → K3 coil → RV1 AUF -->
<mxCell id="do_k3l" value="DO_K3" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="375" y="648" width="60" height="20" as="geometry"/>
</mxCell>
<mxCell id="k3_coil" value="K3 Spule&#xa;24V DC&#xa;RV1 AUF" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="450" y="643" width="155" height="55" as="geometry"/>
</mxCell>
<!-- DO_K4 → K4 coil → RV1 ZU -->
<mxCell id="do_k4l" value="DO_K4" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="375" y="718" width="60" height="20" as="geometry"/>
</mxCell>
<mxCell id="k4_coil" value="K4 Spule&#xa;24V DC&#xa;RV1 ZU" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="450" y="713" width="155" height="55" as="geometry"/>
</mxCell>
<!-- DO_K5 → K5 coil → RV2 AUF -->
<mxCell id="do_k5l" value="DO_K5" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="375" y="788" width="60" height="20" as="geometry"/>
</mxCell>
<mxCell id="k5_coil" value="K5 Spule&#xa;24V DC&#xa;RV2 AUF" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="450" y="783" width="155" height="55" as="geometry"/>
</mxCell>
<!-- DO_K6 → K6 coil → RV2 ZU -->
<mxCell id="do_k6l" value="DO_K6" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="375" y="858" width="60" height="20" as="geometry"/>
</mxCell>
<mxCell id="k6_coil" value="K6 Spule&#xa;24V DC&#xa;RV2 ZU" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="450" y="853" width="155" height="55" as="geometry"/>
</mxCell>
<!-- DO_K7 → K7 coil → Heat pump EVU -->
<mxCell id="do_k7l" value="DO_K7&#xa;(EVU Sperre)" style="text;html=1;strokeColor=none;fillColor=none;fontSize=10;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="375" y="928" width="70" height="30" as="geometry"/>
</mxCell>
<mxCell id="k7_coil" value="K7 Spule&#xa;24V DC&#xa;(pot.-frei)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="450" y="923" width="155" height="55" as="geometry"/>
</mxCell>
<mxCell id="k7_out" value="K7 / 11-14&#xa;Trockenkontakt&#xa;→ Buderus I1&#xa;KEIN Spannungseingang!" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="630" y="916" width="195" height="70" as="geometry"/>
</mxCell>
<!-- ANALOG OUTPUTS note -->
<mxCell id="ao_header" value="REVPI ANALOGE AUSGAENGE (AO) — 0-10V Pumpenregelung" style="text;html=1;strokeColor=none;fillColor=none;fontSize=12;fontStyle=1;fontColor=#660099;" vertex="1" parent="1">
<mxGeometry x="900" y="545" width="700" height="20" as="geometry"/>
</mxCell>
<mxCell id="revpi_ao" value="RevolutionPi&#xa;AIO Modul&#xa;AO Ausgänge" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontStyle=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="900" y="575" width="175" height="175" as="geometry"/>
</mxCell>
<mxCell id="ao1_p3" value="AO1 010V → P3 BMS-Modul&#xa;(Schirm → PE Schrank, nur eine Seite!)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="1100" y="578" width="340" height="48" as="geometry"/>
</mxCell>
<mxCell id="ao2_p4" value="AO2 010V → P4 BMS-Modul&#xa;(Schirm → PE Schrank)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="1100" y="640" width="340" height="48" as="geometry"/>
</mxCell>
<mxCell id="ao3_p5" value="AO3 010V → P5 BMS-Modul&#xa;(Schirm → PE Schrank)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="1100" y="702" width="340" height="48" as="geometry"/>
</mxCell>
<!-- DIGITAL INPUTS summary table -->
<mxCell id="di_header" value="REVPI DIGITALE EINGAENGE (DI) — Übersicht" style="text;html=1;strokeColor=none;fillColor=none;fontSize=12;fontStyle=1;fontColor=#006600;" vertex="1" parent="1">
<mxGeometry x="900" y="780" width="700" height="20" as="geometry"/>
</mxCell>
<mxCell id="di_table" value="DI_SAFETY_OK ← SR1 / 33-34 (Safety relay output — Meldekontakt)&#xa;DI_K10_FB ← K10 / 13-14 Hilfskontakt (Miner 1 Schütz Rückmeldung)&#xa;DI_K11_FB ← K11 / 13-14 Hilfskontakt (Miner 2 Schütz Rückmeldung)&#xa;DI_RK_FAULT ← Rückkühler Störmeldung (optional)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e8f5e9;strokeColor=#82b366;align=left;fontSize=11;fontFamily=Courier New;" vertex="1" parent="1">
<mxGeometry x="900" y="808" width="700" height="90" as="geometry"/>
</mxCell>
<!-- Wire connectors (L+ to first component in each row) -->
<mxCell id="w_sr" value="" style="endArrow=none;html=1;strokeWidth=2;strokeColor=#FF8000;" edge="1" parent="1">
<mxGeometry x="52" y="113" width="0" height="0" as="geometry"><Array as="points"><mxPoint x="190" y="113"/></Array></mxGeometry>
</mxCell>
<mxCell id="w_k10" value="" style="endArrow=none;html=1;strokeWidth=2;strokeColor=#FF8000;" edge="1" parent="1">
<mxGeometry x="52" y="325" width="0" height="0" as="geometry"><Array as="points"><mxPoint x="190" y="325"/></Array></mxGeometry>
</mxCell>
<mxCell id="w_k11" value="" style="endArrow=none;html=1;strokeWidth=2;strokeColor=#FF8000;" edge="1" parent="1">
<mxGeometry x="52" y="405" width="0" height="0" as="geometry"><Array as="points"><mxPoint x="190" y="405"/></Array></mxGeometry>
</mxCell>
<mxCell id="w_do" value="" style="endArrow=none;html=1;strokeWidth=2;strokeColor=#FF8000;" edge="1" parent="1">
<mxGeometry x="52" y="595" width="0" height="0" as="geometry"><Array as="points"><mxPoint x="190" y="595"/></Array></mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>