Digitaler Zwilling

Digitaler Zwilling für Energie: Verbrauch in Echtzeit modellieren

So modellieren Sie die Energieflüsse eines Standorts als digitalen Zwilling, gespeist von Zählern, die per MQTT streamen, und nutzen ihn, um Verschwendung zu finden und Effizienzszenarien zu testen, bevor Sie Geld ausgeben.

Diagramm eines digitalen Zwillings für Energie mit Strom-, Gas- und Druckluftflüssen über einen Standort und Live-Zählerwerten
Probieren Sie es auf Ihrem eigenen MQTT-Broker ausHolen Sie sich im Free-Tarif einen privaten, verwalteten MQTT-Broker und starten Sie mit fertigen Codebeispielen.
Kostenlos testen Codebeispiele Keine Kreditkarte erforderlich

Ein digitaler Zwilling für Energie zeigt in Echtzeit, wohin jede Kilowattstunde an einem Standort fließt, und lässt Sie Was-wäre-wenn-Szenarien testen, bevor Sie in Effizienzprojekte investieren. Dieser Leitfaden erklärt, wie Sie Energieflüsse modellieren, Messdaten per MQTT streamen und den Zwilling nutzen, um Verschwendung zu finden und Änderungen zu bewerten.

Was ein digitaler Zwilling für Energie modelliert

Monatliche Energierechnungen sagen Ihnen, wie viel Sie ausgegeben haben, aber nicht, warum. Ein Energiezwilling modelliert den Standort als Netzwerk von Flüssen:

  • Quellen: Netzeinspeisung, Photovoltaik vor Ort, Generatoren, Gasversorgung
  • Umwandlungsanlagen: Transformatoren, Kompressoren (Strom zu Druckluft), Kessel (Gas zu Wärme), Kältemaschinen (Strom zu Kälte)
  • Verteilung: Hauptverteilungen, Unterverteilungen, Druckluft- und Dampfsammler
  • Verbraucher: Produktionslinien, HLK-Zonen, Beleuchtungskreise, einzelne große Maschinen

Jeder Knoten hat Live-Messwerte (Leistung, Energie, Durchfluss, Druck, Temperatur), und jede Kante transportiert eine Größe von einem Knoten zum nächsten. Wenn der gemessene Zufluss eines Knotens nicht der Summe seiner Abflüsse entspricht, ist die Differenz entweder eine ungemessene Last, ein Verlust oder eine Leckage. Diese einfache Bilanzprüfung gehört zu den nützlichsten Funktionen eines Energiezwillings.

Für das übergeordnete Konzept von Zwillingen ist der Leitfaden zur Digital-Twin-Technologie der richtige Einstieg.

Warum Energie als Zwilling statt als Dashboard modellieren

Ein Dashboard stellt Zählerwerte dar. Ein Zwilling ergänzt Struktur und Kontext:

Frage Dashboard Digitaler Zwilling für Energie
Wie viel hat Linie 2 gestern verbraucht? Ja Ja
Welcher Anteil der Haupteinspeisung ist nicht zugeordnet? Schwierig, erfordert manuelle Rechnung Laufend aus dem Flussmodell berechnet
Was verbraucht Linie 2 im Leerlauf? Nur wenn jemand manuell korreliert Ja, weil der Produktionszustand im Zwilling liegt
Was passiert, wenn wir den Kompressordruck um 0,5 bar senken? Nein Ja, mit einem Kompressormodell
Welche Anlagen dominieren die Grundlast in der Nacht? Teilweise Ja, nach Knoten sortiert

Die entscheidenden Unterschiede sind die Topologie (was versorgt was) und die Verbindung zum Betriebszustand. Energie pro produzierter Einheit, Leerlaufverbrauch und Grundlast sind nur aussagekräftig, wenn Energie- und Produktionsdaten ein gemeinsames Backbone nutzen. In der Industrie ist dieses Backbone idealerweise ein Unified Namespace (UNS), in dem Zählerwerte und Maschinenzustände an derselben Stelle der Anlagenhierarchie liegen. Für Unternehmen, die ein Energiemanagementsystem nach ISO 50001 betreiben, liefert ein solcher Zwilling zudem die Messgrundlage für Energiekennzahlen und deren Verbesserung.

Messdaten per MQTT streamen

Zähler und Gateways

Die meisten Industrie- und Gewerbezähler bieten Modbus TCP oder Modbus RTU. Ein Gateway liest Register nach Zeitplan aus und veröffentlicht die Werte per MQTT. Übliche Optionen:

  1. Node-RED mit Modbus-Nodes auf einem Industrie-PC oder Raspberry Pi
  2. Telegraf mit seinen Plugins für Modbus-Eingang und MQTT-Ausgang
  3. Zähler oder Datenlogger mit integrierter MQTT-Veröffentlichung

Veröffentlichen Sie sowohl die Momentanleistung (kW) als auch kumulierte Energiezählerstände (kWh). Zählerstände sind robuster: Gehen einige Nachrichten verloren, liefert der nächste Zählerstand trotzdem die korrekte Summe für den Zeitraum.

Topic-Design

Folgen Sie der Standorthierarchie, damit sich die Topologie des Zwillings natürlich auf Topics abbilden lässt. Im UNS ist das die ISA-95-Hierarchie Enterprise → Site → Area → Line → Cell; ein Energiewert der Linie 2 im Werk Stuttgart läge dann etwa unter acme/werk-stuttgart/produktion/linie-2/energy, direkt neben ihrem state. Das vereinfachte Schema unten nutzt dieselbe Logik:

connectmq/<site>/<area>/<asset>/energy

connectmq/site1/utilities/main-feeder/energy
connectmq/site1/utilities/compressor1/energy
connectmq/site1/production/line2/energy
connectmq/site1/production/line2/state
connectmq/site1/building/hvac-ahu1/energy

Eine Payload wie diese hält die Einheiten eindeutig:

{
  "powerKw": 42.7,
  "energyKwh": 183245.6,
  "voltageV": 400.2,
  "powerFactor": 0.93,
  "ts": 1792152000
}

Ein verwalteter MQTT-Broker bietet Zähler-Gateways in mehreren Gebäuden oder Standorten einen einzigen sicheren Endpunkt, und Zwillingsdienste abonnieren mit Wildcards wie connectmq/site1/+/+/energy.

Praxis: eine Live-Energiebilanz

Dieses Beispiel läuft auf dem kostenlosen öffentlichen MQTT-Broker unter broker.connectmq.com mit simulierten Zählern. Veröffentlichen Sie keine echten Standortdaten auf dem öffentlichen Broker, da er für alle lesbar ist.

Das folgende Skript simuliert eine Haupteinspeisung und drei Unterzähler, und ein zweiter Teil desselben Programms fungiert als Bilanzdienst des Zwillings, der den nicht zugeordneten Anteil veröffentlicht:

import json
import random
import threading
import time
import uuid

import paho.mqtt.client as mqtt

RUN = "energy-5c21"  # change to your own unique id
BASE = f"connectmq/demo/{RUN}/site1"
SUBMETERS = ["production/line2", "utilities/compressor1", "building/hvac-ahu1"]
latest = {}


def simulate(pub):
    while True:
        loads = {
            "production/line2": random.uniform(30, 45),
            "utilities/compressor1": random.uniform(18, 25),
            "building/hvac-ahu1": random.uniform(8, 12),
        }
        unmetered = random.uniform(6, 9)  # the waste the twin should find
        main = sum(loads.values()) + unmetered
        pub.publish(f"{BASE}/utilities/main-feeder/energy", json.dumps({"powerKw": round(main, 2)}))
        for path, kw in loads.items():
            pub.publish(f"{BASE}/{path}/energy", json.dumps({"powerKw": round(kw, 2)}))
        time.sleep(5)


def on_connect(client, userdata, flags, reason_code, properties):
    client.subscribe(f"{BASE}/+/+/energy")


def on_message(client, userdata, msg):
    node = msg.topic[len(BASE) + 1 : -len("/energy")]
    latest[node] = json.loads(msg.payload)["powerKw"]
    if "utilities/main-feeder" in latest and all(s in latest for s in SUBMETERS):
        main = latest["utilities/main-feeder"]
        gap = main - sum(latest[s] for s in SUBMETERS)
        result = {"mainKw": main, "unaccountedKw": round(gap, 2), "unaccountedPct": round(100 * gap / main, 1)}
        client.publish(f"{BASE}/twin/balance", json.dumps(result), qos=1, retain=True)
        print(result)


twin = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=f"energy-twin-{uuid.uuid4().hex[:6]}")
twin.on_connect = on_connect
twin.on_message = on_message
twin.connect("broker.connectmq.com", 1883, keepalive=30)

sim = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=f"meter-sim-{uuid.uuid4().hex[:6]}")
sim.connect("broker.connectmq.com", 1883, keepalive=30)
sim.loop_start()
threading.Thread(target=simulate, args=(sim,), daemon=True).start()

twin.loop_forever()

Der Bilanzdienst meldet einen gleichbleibenden nicht zugeordneten Anteil. An einem echten Standort weist diese Zahl auf einen fehlenden Unterzähler, eine unbekannte Last oder Verluste hin, die eine Untersuchung lohnen.

Effizienzszenarien testen

Sobald der Zwilling die Realität abbildet, können Sie Was-wäre-wenn-Fragen mit einfachen Modellen an den Knoten stellen:

  • Druckluft-Drucksenkung: Modellieren Sie die Kompressorleistung als Funktion von Enddruck und Bedarf. Eine verbreitete Faustregel besagt, dass ein niedrigerer Systemdruck die Kompressorenergie senkt; der Zwilling lässt Sie den Effekt anhand Ihres eigenen gemessenen Lastprofils statt mit pauschalen Werten abschätzen.
  • Leckagebeseitigung: Messen Sie die Kompressorleistung außerhalb der Produktionszeiten, wenn der Luftbedarf nahe null liegen sollte. Diese Grundlast entspricht näherungsweise der Leckage; der Zwilling zeigt die Energie, die eine Reparaturkampagne zurückgewinnen könnte.
  • Lastverschiebung: Spielen Sie eine Woche Messdaten erneut ab, mit flexiblen Lasten in Schwachlastzeiten verschoben, um den Effekt auf die Lastspitze zu sehen.
  • Abschaltregeln im Leerlauf: Kombinieren Sie Linienzustand und Linienenergie, um zu sehen, wie viel im Leerlauf verbraucht wird, und simulieren Sie einen automatischen Standby nach einer festgelegten Leerlaufzeit.

Halten Sie Szenarioberechnungen in Ihren eigenen Diensten oder Notebooks, die die Historie aus einer Zeitreihendatenbank lesen. Die Aufgabe des Brokers ist es, Live-Daten zuverlässig zuzustellen; er speichert keine Historie und führt keine Modelle aus.

Checkliste für die Umsetzung

  1. Zeichnen Sie das Einliniendiagramm und die Energiefluss-Topologie des Standorts, bevor Sie Zähler kaufen.
  2. Identifizieren Sie die größten Verbraucher und messen Sie diese zuerst; den Rest können Sie schätzen.
  3. Wählen Sie ein Abfrageintervall passend zur Fragestellung: 1 bis 15 Sekunden für Prozesskorrelation, eine Minute für Gebäudelasten.
  4. Veröffentlichen Sie neben der Leistung auch kumulierte Zählerstände.
  5. Veröffentlichen Sie den Produktionszustand auf demselben Broker und im selben UNS-Ast, damit Energie pro Einheit und Leerlaufverbrauch berechnet werden können.
  6. Speichern Sie Daten mit einem Subscriber (Telegraf nach InfluxDB oder ein Python-Skript nach TimescaleDB).
  7. Ergänzen Sie für jeden Verteilknoten eine Bilanzprüfung und prüfen Sie Differenzen wöchentlich.
  8. Nutzen Sie die Schwellenwert-Alarmregeln von ConnectMQ für einfache Grenzwerte wie eine unerwartete nächtliche Grundlast.

Häufige Stolpersteine

  • Gemischte Einheiten und Skalierungsfaktoren. Modbus-Register müssen oft skaliert werden. Prüfen Sie die Gateway-Werte gegen die Anzeige des Zählers.
  • Nicht synchronisierte Abtastung. Vergleicht man einen Hauptzähler, der in Sekunde 0 gelesen wurde, mit Unterzählern aus Sekunde 40, entstehen scheinbare Differenzen. Mitteln Sie über abgestimmte Zeitfenster.
  • Nur Strom messen. Gas, Dampf und Druckluft verbergen oft die größten Einsparungen.
  • Keine Verantwortlichkeit. Ein Energiezwilling braucht jemanden, der ihn regelmäßig prüft und Erkenntnisse in Maßnahmen umsetzt.

Energiemodellierung lässt sich gut mit einem digitalen Zwilling für Gebäude für HLK-Lasten und einem digitalen Zwilling der Fabrik für Produktionslinien kombinieren.

Streamen Sie Ihre Energiedaten mit ConnectMQ

ConnectMQ bietet ein sicheres, verwaltetes MQTT-Backbone für Zähler-Gateways und Zwillingsdienste, mit TLS auf Port 8883 und WebSocket-Zugang für Browser-Dashboards. Registrieren Sie sich kostenlos unter app.connectmq.com, ohne Kreditkarte, erstellen Sie einen Serverless-Broker und binden Sie Ihr erstes Zähler-Gateway in wenigen Minuten an.

Häufig gestellte Fragen

Was ist ein digitaler Zwilling für Energie?

Ein lebendiges Modell der Energiequellen, Umwandlungsanlagen, Verteilung und Verbraucher eines Standorts, gespeist mit Zählerdaten, das zeigt, wohin die Energie fließt, und Effizienzänderungen testbar macht.

Wie oft sollten Energiezähler Daten veröffentlichen?

Das hängt von der Fragestellung ab. Alle paar Sekunden eignet sich für die Korrelation mit Prozessereignissen, während Intervalle von einer Minute für Gebäudelasten und Abrechnungsanalysen meist ausreichen.

Kann ich Modbus-Energiezähler an MQTT anbinden?

Ja. Ein Gateway wie Node-RED oder Telegraf liest die Modbus-Register und veröffentlicht die Werte auf MQTT-Topics, die der Zwilling abonniert.

Speichert der MQTT-Broker meine Energiehistorie?

Nein. Der Broker stellt Live-Nachrichten zu. Nutzen Sie einen separaten Subscriber, der die Daten für Historie und Szenarioanalyse in eine Zeitreihendatenbank schreibt.

Verwandte Artikel

Alle Artikel →

Ihr privater MQTT-Broker ist nur wenige Klicks entfernt

Konto anlegen, Broker-Zugangsdaten erhalten und das erste Gerät verbinden — ohne Server, die installiert, gepatcht oder skaliert werden müssen.