/* Powermieter — animated visuals A) EnergyFlowIllustration — "Stromfluss-Loop" (Energiehaus) B) ProcessSequence — "Vom Aushang zum Vertrag" Both export to window. */ const { useState: useAnState, useEffect: useAnEffect } = React; /* ============================================================ A) FLOW ==== */ function EnergyFlowIllustration() { const cols = [158, 210, 262]; // three riser columns const rowY = [138, 184, 230, 276]; // four apartment floors const solarDots = []; cols.forEach((x, ci) => { for (let k = 0; k < 3; k++) solarDots.push({ x, key: `s${ci}${k}`, begin: (ci * 0.55 + k * 1.0).toFixed(2) }); }); const windows = []; cols.forEach((cx, ci) => rowY.forEach((y, ri) => windows.push({ x: cx - 16, y, key: `w${ci}${ri}`, delay: ((ci + ri) % 5) * 0.6 }))); return ( ); } /* ======================================================= B) SEQUENCE ===== */ const SEQ_SCENES = [ { ic: 'note', t: 'Aushang im Treppenhaus', d: 'Im Hausflur hängt ein Aushang Ihrer Hausverwaltung mit einem QR-Code für Ihr Gebäude.' }, { ic: 'qr', t: 'QR-Code scannen', d: 'Sie scannen den Code mit dem Smartphone – ganz ohne App-Installation oder Anmeldung.' }, { ic: 'external', t: 'Ihre Seite öffnet sich', d: 'Die Powermieter-Seite für genau Ihre Adresse wird geladen – mit allen Infos zum Angebot.' }, { ic: 'user', t: 'Interesse anmelden', d: 'In wenigen Minuten tragen Sie Ihre Daten ein. Unverbindlich und jederzeit pausierbar.' }, { ic: 'signature', t: 'Vertrag digital bestätigen', d: 'Sie prüfen die Unterlagen in Ruhe und schließen den Vertrag rechtssicher digital ab.' }, { ic: 'chart', t: 'Portal & Abrechnung', d: 'Im Portal sehen Sie Verbrauch, Solaranteil und Ihre transparenten Abrechnungen.' }, ]; function SeqPhone({ scan, children }) { return (
{children}
{scan && }
); } function SeqVisual({ i }) { if (i === 0) return (
Solarstrom vom Dach nutzen
Musterstraße 12 · jetzt informieren
); if (i === 1) return (
); if (i === 2) return (
Interesse anmelden
); if (i === 3) return (
Weiter
); if (i === 4) return (
Vertrag bestätigt
); return (
Aktiv
73%
{[42, 64, 50, 78, 73, 60, 85].map((h, k) => )}
); } function ProcessSequence() { const [i, setI] = useAnState(0); const [paused, setPaused] = useAnState(false); useAnEffect(() => { if (paused) return; const t = setInterval(() => setI(p => (p + 1) % SEQ_SCENES.length), 2700); return () => clearInterval(t); }, [paused]); const sc = SEQ_SCENES[i]; return (
setPaused(true)} onMouseLeave={() => setPaused(false)}>
Schritt {i + 1} von {SEQ_SCENES.length}
{sc.t}

{sc.d}

{SEQ_SCENES.map((s, n) => { const Ic = I[s.ic]; const state = n < i ? 'done' : n === i ? 'active' : 'todo'; return ( {n < SEQ_SCENES.length - 1 && } ); })}
); } /* ============================== C) SAVINGS COMPARISON (animated bars) ===== */ function pmEur(n) { return n.toLocaleString('de-DE', { minimumFractionDigits: 0, maximumFractionDigits: 0 }); } function SavingsComparison({ gv, pm, ersparnis, verbrauch }) { const max = Math.max(gv, pm, 1); const w = v => (v / max * 100).toFixed(1) + '%'; return (

Ihr Kostenvergleich pro Jahr

≈ {ersparnis} € sparen
Klassische
Grundversorgung
{pmEur(gv)} €
Powermieter
Lokalstrom
{pmEur(pm)} €
Ihre mögliche
Ersparnis
≈ {ersparnis} €

Beispielrechnung bei {verbrauch.toLocaleString('de-DE')} kWh/Jahr. Die tatsächliche Ersparnis hängt von Ihrem Verbrauch, dem Tarif und dem Solaranteil im Gebäude ab.

); } /* ============================== D) METER-NUMBER HELP MODAL ================ */ function MeterNumberHelpModal({ onClose }) { return (
e.stopPropagation()}>
Wo finde ich meine Zählernummer?
Ihre Zählernummer

Die Zählernummer steht direkt auf Ihrem Stromzähler — meist als längere Zahl unter dem Strichcode. Sie beginnt häufig mit einem Buchstaben­kürzel (z. B. 1 ESY …).

  • Nicht zu verwechseln mit dem Zählerstand (die kWh-Anzeige oben).
  • Bei modernen Zählern oft zusätzlich als QR- oder Strichcode aufgedruckt.
  • Den Zähler finden Sie meist im Keller, Hausanschlussraum oder Flur.
Kein Zähler in der Nähe? Laden Sie einfach ein Foto hoch — wir übernehmen die Zuordnung.
); } Object.assign(window, { EnergyFlowIllustration, ProcessSequence, SavingsComparison, MeterNumberHelpModal });