thermIQ/docs/HARDWARE.md
Adrian Bretsch 0513248d7f Update Pflichtenheft v2.0 → v2.1 based on Adrian's feedback
- Netzwerk aus 2.3 raus, neue Anforderungssektion 3.6 (NW-001..008)
  mit VPN, Firewall, Router, SSH/VPN Remote-Zugriff
- Physische Installation klar als Out-of-Scope mit Verweis auf
  separates Pflichtenheft Inbetriebnahme
- 2.2.2 präzisiert: vollautomatischer Modus-Wechsel = Wunsch,
  FA-014 Hinweis ergänzt (kein Widerspruch mehr)
- NFA-006: Begründung für Python vs CodeSys ergänzt
- SA-001: FLOW OK entfernt, Temperaturüberwachung als Ersatz
- SA-002: Remote Safety-Reset per VPN erlaubt (Software-Zustand)
- SA-006: bei Safety-Trip aktiv gRPC-Leistung auf 0 setzen
- SA-007: Remote-Quittierung via VPN ergänzt
- SA-008: Ventil-Verriegelung verständlicher erklärt
- 6.1: Miner-Topics korrigiert (Miner 2 ohne hashrate), P3 als
  relay-only, erweiterte Inverter-Variablen, aussen+miner-Temps,
  power_setpoints als schreibbar in setpoints/
- 6.2: Publisher/Subscriber-Tabelle aktualisiert
- 6.3: Nomenklatur (QoS 0/1, retained) mit Erklärungstabelle
- Alle Hauptsektionen mit erklärendem Einleitungsabsatz
- HARDWARE.md: FLOW OK entfernt, Sensor-Sektion strukturiert
- Offene Punkte 11-13 ergänzt (Router, IP-Plan, Miner-2-Hashrate)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 12:35:21 +02:00

130 lines
4.6 KiB
Markdown
Raw Permalink 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.

# ThermIQ — Hardware Reference
## Crypto Miners
| Item | Spec |
|------|------|
| Model | Antminer S19J (x2) |
| Power supply | 2x Schuko per miner |
| Power isolation | Individual LS breaker + contactor per miner |
| Contactors | K10 (Miner 1), K11 (Miner 2) |
| Feedback | Hilfskontakt per Schütz → RevPi DI |
| API | Braiins OS gRPC, port 50051 (`PerformanceService`) |
| Auth | Bearer token (`aWzKUJcmbyBMiTbo` — replace in production) |
| Network | Fixed IP, wired Ethernet only |
## Pumps
| ID | Model | Supply | Control | Notes |
|----|-------|--------|---------|-------|
| P3 | noname pump (miner cooling loop) | 230 V AC | **Relay on/off** via RevPi DO | No speed control — simple contactor |
| P4 | Wilo Stratos PICO plus Art.-No. 4244373 | 230 V AC | **010 V via RevPi AIO AO1** | Shielded cable |
| P5 | Wilo Stratos PICO plus Art.-No. 4244373 (Glykol) | 230 V AC | **010 V via RevPi AIO AO2** | Shielded cable; ⚠️ missing dotted line in Funktionsschema_Vorlage_Hydraulik.pdf |
**BMS Connect Module** (Wilo Art.-Nr. 4257834): retrofit module for BMS integration.
- 010 V analog input for setpoint
- SSM/SBM relay outputs (potential-free)
- Digital input (configurable: extern AUS / MIN / MAX)
- Max ambient: 60°C, SELV galvanically isolated
## Valves
| ID | Model | Actuator | Supply | Control |
|----|-------|----------|--------|---------|
| RV1 | Belimo C320Q-J | CQ230A | 230 V AC | Relay K3/K4 (AUF/ZU) |
| RV2 | Belimo C320Q-J | CQ230A | 230 V AC | Relay K5/K6 (AUF/ZU) |
Note: If only one control input per valve is used, relay block can be reduced.
Hand/0/Auto switches recommended for commissioning.
## Dry Cooler (Rückkühler)
| Item | Spec |
|------|------|
| Fan | 230 V AC |
| Relay | K2 (24 V DC coil, switches 230 V) |
| Control | RevPi DIO DO_RK |
| Feedback | Optional fault signal → RevPi DI |
| Interlock | Enable only when oil and pumps OK |
## Heat Pump
| Item | Spec |
|------|------|
| Model | Buderus WLW186i |
| EVU Input | I1 — dry contact ONLY |
| Relay | K7 (potential-free, 24 V DC coil) |
| Control | RevPi DIO DO_EVU_SPERRE |
| CRITICAL | Never inject voltage into EVU I1 — contact only |
## PLC: RevolutionPi
| Module | Function |
|--------|----------|
| Core | CPU, Ethernet, Linux |
| DIO | Digital I/O (relays, contactors, safety feedback) |
| AIO | Analog I/O (010 V pump setpoints, sensors) |
RevPi runs Linux, MQTT client, connects via LAN to industrial switch.
If RevPi crashes → miners must shut down (hardware safety ensures this).
## Inverters
| Item | Spec |
|------|------|
| Model | Deye hybrid inverter(s) |
| Interface | RS485 Modbus (NOT Modbus TCP over LAN — unreliable) |
| Library | [sunsynk](https://github.com/kellerza/sunsynk) for Raspberry Pi |
| Ref | YouTube: https://www.youtube.com/watch?v=u9df0YHfNtM |
## Energy Meters
- RS485 Modbus
- Connected via USB RS485 gateway on Raspberry Pi or RevPi
## Network Hardware
| Item | Spec |
|------|------|
| Switch | Industrial, wired Ethernet only |
| Site Server | Intel N100 Mini PC (e.g. Beelink EQ12) — Node-RED + Mosquitto + Home Assistant (Phase 1); DIN rail via adapter |
| RevPi | Fixed IP, MQTT client |
| NTP | Required for timestamps |
| WiFi | NOT used for any critical energy component |
## Power Distribution (Schaltschrank)
| Component | Notes |
|-----------|-------|
| Q0 | FI/LS (RCD + circuit breaker) for whole cabinet |
| 230 V AC bus | From Q0 |
| 24 V DC PSU | Fed from AC bus, supplies RevPi, relay coils, safety circuit |
| LS Miner 1/2 | Individual breakers before K10/K11 |
| LS Pumpen | Breaker for P3, P4, P5 |
| LS Ventile | Breaker for RV1, RV2 |
| LS RK | Breaker for Rückkühler fan |
## Storage Components
- **Pufferspeicher**: buffer tank for thermal energy
- **Warmwasserspeicher**: domestic hot water tank
- **Batteries**: coupled to Deye inverter for energy storage
- **Smartmeter**: grid metering
## Sensors
### Hardware-Sicherheitssensoren (direkt in Safety-Kette)
- Temperature sensor (TEMP MAX — NC contact to safety relay)
- Emergency stop buttons (E-Stop 1, E-Stop 2 — NC)
- Reset button (NO)
> **Hinweis:** Ein physischer Durchflusssensor (FLOW OK) wird nicht verbaut. Die Überwachung des Miner-Kühlkreisdurchflusses erfolgt softwareseitig über Temperaturauswertung (PFLICHTENHEFT_SOFTWARE.md, SA-001).
### Analoge Temperatursensoren (RevPi AI)
- AI1 — Pufferspeicher-Temperatur (PT1000 oder 4-20 mA, TBD)
- AI2 — Warmwasserspeicher-Temperatur (PT1000 oder 4-20 mA, TBD)
- AI3 — Außentemperatur (optional, für Übergangs-Modus)
### Miner-Temperaturen (via gRPC)
- Miner 1 Chip-Temperatur — ausgelesen via Braiins OS gRPC API
- Miner 2 Chip-Temperatur — ausgelesen via Braiins OS gRPC API