Obtain an initial assessment

Energy management system

A system that connects storage facilities, power plants, and markets.

/* Header beim Runterscrollen ausblenden, beim Hochscrollen wieder zeigen (nur auf dieser Seite) */ (function () { if (window.vfHeaderHide) return; window.vfHeaderHide = true; function init() { var h = document.querySelector('header.elementor-location-header'); if (!h) return; h.style.transition = 'transform .35s cubic-bezier(.2,.7,.2,1)'; var last = window.scrollY; window.addEventListener('scroll', function () { var y = window.scrollY; if (h.querySelector('[aria-expanded="true"]')) { last = y; return; } if (y > last && y > h.offsetHeight) { h.style.transform = 'translateY(-100%)'; } else if (y < last - 5) { h.style.transform = ''; } last = y; }, { passive: true }); } if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init(); })();

The Energy Management System (EMS) is at the heart of it all: It controls all energy flows to ensure safe and cost-effective operation.

24/7 monitoring

System monitoring every second for early detection of deviations and error conditions.

Continuous Development & Integration

Ongoing development of use cases, algorithms, and system components.

Central Control & Overview

Centralized coordination of energy flows across all system components—for a resilient system.

Open System Architecture

Modular EMS architecture based on OpenEMS for long-term future-proofing.

Integration

Compatible with any system at your location

The Voltfang Energy Management System (EMS) connects your storage system to your PV system, charging stations, heat pumps, or CHP units and controls them all together—including systems that are added later. Through the grid connection, the EMS connects your location to the grid and the electricity market.

Set up your location:

Production
Storage
Consumers
Electricity MarketDay-Ahead, Intraday, Balancing Power, Your Direct Supplier
Voltfang EMS Hardware
Voltfang EMS
PowerGrid connection point
Production
Not selected
Storage
Not selected
Consumers
Not selected
Energy FlowControl & Market Data
.vfi{font-family:Poppins,'Helvetica Neue',Arial,sans-serif;color:#fff} .vfi p{margin:0} .vfi-pick{display:grid;grid-template-columns:minmax(170px,.85fr) 1fr 1fr 1fr;column-gap:20px;row-gap:16px;align-items:start;margin-bottom:64px} .vfi-q{font-size:16px;line-height:1.5;color:#D5DDE9;padding-top:28px} .vfi-cat{display:block;font-size:14px;font-weight:500;color:#89B2AA;margin-bottom:10px} .vfi-chips{display:flex;flex-wrap:wrap;gap:8px} .vf-chip{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;border:1px solid #646E7D;background:transparent;color:#D5DDE9;font:500 15px/1.2 Poppins,'Helvetica Neue',Arial,sans-serif;cursor:pointer;transition:background .15s ease-out,border-color .15s ease-out,color .15s ease-out} .vf-chip:hover{border-color:#89B2AA;color:#fff} .vf-chip:focus-visible{outline:2px solid #89B2AA;outline-offset:2px} .vf-chip[aria-pressed="true"]{background:#89B2AA;border-color:#89B2AA;color:#121212} .vf-chip__plus{position:relative;width:10px;height:10px} .vf-chip__plus::before,.vf-chip__plus::after{content:'';position:absolute;left:4px;top:0;width:1.5px;height:10px;background:currentColor;transition:transform .15s ease-out} .vf-chip__plus::after{transform:rotate(90deg)} .vf-chip[aria-pressed="true"] .vf-chip__plus::before{transform:rotate(45deg)}.vf-chip[aria-pressed="true"] .vf-chip__plus::after{transform:rotate(135deg)} .vfi-stage{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-areas:"markt ems ems ." "netz erz sp vb";column-gap:20px;row-gap:96px;align-items:stretch;padding-bottom:72px} .vfi-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0} .vfi-markt{grid-area:markt;align-self:center}.vfi-netz{grid-area:netz} .vfi-hub{grid-area:ems;justify-self:center;align-self:center;position:relative;z-index:1;display:flex;align-items:center;background:none!important;padding:0!important;border-radius:0!important;min-width:0!important;gap:0!important} .vfi-hub__box{position:relative;z-index:1;background:#0544BB;border-radius:8px;padding:24px 28px 24px 52px;min-width:0} .vfi-hub .vfi-tx strong{font-size:16px;font-weight:500;color:#fff} .vfi-hw{position:relative;z-index:2;flex:none;display:block;width:96px;height:auto;border-radius:6px;margin-right:-24px} .vfi-hub .vfi-tx em{font-style:normal;font-size:13px;color:#fff;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.25)} .vfi-card,.vfi-grp{position:relative;z-index:1;border-radius:8px;background:#30333C!important;border:0!important} .vfi-card{display:flex;align-items:center;gap:12px;padding:16px} .vfi-ic{flex:none;display:inline-flex} .vfi-tx{display:flex;flex-direction:column;line-height:1.3} .vfi-tx strong{font-size:16px;font-weight:500} .vfi-tx small{font-size:13px;color:#AFBFD6;margin-top:2px} .vfi-netz{flex-direction:column;align-items:flex-start;justify-content:flex-start} .vfi-tx small{hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word} .vfi-grp{padding:16px;display:flex;flex-direction:column;gap:12px;min-height:150px;transition:border-color .15s ease-out} .vfi-grp__h{font-size:14px;font-weight:500;color:#89B2AA} .vfi-items{display:flex;flex-wrap:wrap;gap:8px} .vfi-t{display:inline-flex;align-items:center;gap:10px;padding:10px 14px 10px 10px;border-radius:8px;background:#3D414C!important;font-size:14px;font-weight:500;animation:vfiIn .15s ease-out both} .vfi-t svg{flex:none} .vfi-t{max-width:100%;min-width:0;box-sizing:border-box}.vfi-t__l{min-width:0;overflow-wrap:anywhere;hyphens:auto;-webkit-hyphens:auto} .vfi-grp,.vfi-card{min-width:0;box-sizing:border-box} .vfi-empty{display:none;font-size:14px;color:#8C96A6} .vfi-grp.is-empty{background:transparent!important;border:1px dashed #5A6272!important} .vfi-grp.is-empty .vfi-empty{display:block} .vfi-legend{display:flex;flex-wrap:wrap;gap:8px 32px;margin-top:8px;font-size:13px;color:#AFBFD6} .vfi-legend span{display:inline-flex;align-items:center;gap:10px} .vfi-lg{display:inline-block;width:28px;border-top:2px solid #89B2AA}.vfi-lg--d{border-top:1px dashed #82A2DD} .vfi-lines path{fill:none;transition:opacity .15s ease-out} .vfi-lines .e{stroke:#89B2AA;stroke-width:2} .vfi-lines .d{stroke:#82A2DD;stroke-width:1;stroke-dasharray:4 5} .vfi-lines .off{opacity:.25} .vfi-lines .new{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:vfiLine .3s ease-out forwards} @keyframes vfiLine{to{stroke-dashoffset:0}}@keyframes vfiIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}} @media (max-width:1024px){.vfi-pick{grid-template-columns:150px 1fr 1fr 1fr;column-gap:14px}.vfi-stage{column-gap:14px}.vfi-stage{row-gap:80px}.vfi-card{flex-direction:column;align-items:flex-start}.vfi-q{font-size:15px}.vfi-t{padding:8px 10px 8px 8px;font-size:13px;gap:8px}.vfi-t svg{width:20px;height:20px}.vfi-grp{padding:14px}} @media (max-width:899px){ .vfi-pick{display:flex;flex-direction:column;gap:16px}.vfi-q{padding-top:0} .vfi-stage{grid-template-columns:1fr;grid-template-areas:"ems" "markt" "netz" "erz" "sp" "vb";row-gap:16px;padding:0 0 24px 44px} .vfi-card,.vfi-netz{flex-direction:row;align-items:center} .vfi-hub{justify-self:stretch;min-width:0}.vfi-hub__box{flex:1;min-width:0;padding:18px 20px 18px 36px}.vfi-hw{width:68px;margin-right:-20px}.vfi-stage{padding-top:12px} .vfi-grp{min-height:0} } @media (prefers-reduced-motion:reduce){.vfi-t,.vfi-lines .new{animation:none!important;stroke-dashoffset:0!important}.vf-chip,.vf-chip__plus::before,.vf-chip__plus::after,.vfi-grp{transition:none}.vfi-lines .dot{display:none}} (function(){ var DATA=[{"id": "pv", "label": "PV-Anlage", "g": "erz", "icon": "", "on": true}, {"id": "wind", "label": "Windpark", "g": "erz", "icon": "", "on": false}, {"id": "solarpark", "label": "Solarpark", "g": "erz", "icon": "", "on": false}, {"id": "bhkw", "label": "BHKW", "g": "erz", "icon": "", "on": false}, {"id": "gewerbe", "label": "Gewerbe­speicher", "g": "sp", "icon": "\n\n\n\n\n\n", "on": true}, {"id": "gross", "label": "Groß­speicher", "g": "sp", "icon": "\n\n\n\n\n\n", "on": false}, {"id": "lade", "label": "Lade­säulen", "g": "vb", "icon": "", "on": true}, {"id": "wp", "label": "Wärme­pumpen", "g": "vb", "icon": "", "on": false}, {"id": "prozess", "label": "Betriebs­prozesse", "g": "vb", "icon": "", "on": false}]; function init(){ document.querySelectorAll('[data-vfi]').forEach(function(root){ if(root.dataset.ready)return;root.dataset.ready=1; var reduce=window.matchMedia&&matchMedia('(prefers-reduced-motion: reduce)').matches; var stage=root.querySelector('.vfi-stage'),svg=root.querySelector('.vfi-lines'),NS='http://www.w3.org/2000/svg',fresh={}; var ems=root.querySelector('.vfi-hub__box'),markt=root.querySelector('.vfi-markt'),netz=root.querySelector('.vfi-netz'); var grp={erz:root.querySelector('[data-g="erz"]'),sp:root.querySelector('[data-g="sp"]'),vb:root.querySelector('[data-g="vb"]')}; function render(){ ['erz','sp','vb'].forEach(function(g){ var box=grp[g],items=box.querySelector('.vfi-items');items.innerHTML=''; DATA.forEach(function(d){if(d.g===g&&d.on){var t=document.createElement('span');t.className='vfi-t';t.innerHTML=d.icon+''+d.label+'';items.appendChild(t);}}); box.classList.toggle('is-empty',!items.children.length); }); draw(); } function bx(el){var s=stage.getBoundingClientRect(),r=el.getBoundingClientRect(); return{l:r.left-s.left,r:r.right-s.left,t:r.top-s.top,b:r.bottom-s.top,cx:(r.left+r.right)/2-s.left,cy:(r.top+r.bottom)/2-s.top,w:r.width};} function line(d,cls,anim){var p=document.createElementNS(NS,'path');p.setAttribute('d',d);p.setAttribute('class',cls);svg.appendChild(p); if(anim&&!reduce){var L=p.getTotalLength();p.style.setProperty('--len',L);p.classList.add('new');}return p;} function dot(d,dur,begin){if(reduce)return;var c=document.createElementNS(NS,'circle');c.setAttribute('r','3.5');c.setAttribute('fill','#89B2AA');c.setAttribute('class','dot'); var m=document.createElementNS(NS,'animateMotion');m.setAttribute('dur',dur+'s');m.setAttribute('begin',(-(begin||0))+'s');m.setAttribute('repeatCount','indefinite');m.setAttribute('path',d); c.appendChild(m);svg.appendChild(c);} function draw(){ while(svg.firstChild)svg.removeChild(svg.firstChild); var mobile=window.innerWidth<900,E=bx(ems),M=bx(markt),N=bx(netz); var order=[['netz',netz],['erz',grp.erz],['sp',grp.sp],['vb',grp.vb]]; if(!mobile){ /* Steuerung: EMS fächert zu Netz und den drei Boxen, Strommarkt seitlich an das EMS */ line('M'+M.r+' '+M.cy+' H'+E.l,'d'); order.forEach(function(o,i){var b=bx(o[1]),off=o[1].classList.contains('is-empty'); var ox=E.l+E.w*(.18+.64*i/3); line('M'+ox+' '+E.b+' L'+b.cx+' '+b.t,'d'+(off?' off':''),fresh[o[0]]);}); /* Energie: Schiene unter allen Boxen, Abgänge nach oben */ var bus=Math.max.apply(null,order.map(function(o){return bx(o[1]).b;}))+40,last=bx(grp.vb); line('M'+N.cx+' '+bus+' H'+last.cx,'e'); order.forEach(function(o,i){var b=bx(o[1]),off=o[1].classList.contains('is-empty'); var down='M'+b.cx+' '+b.b+' V'+bus,up='M'+b.cx+' '+bus+' V'+b.b; line(down,'e'+(off?' off':''),fresh[o[0]]); if(!off){ if(o[0]==='erz'||o[0]==='netz')dot(down,1.6,i*.3); else dot(up,1.6,i*.3); }}); if(!reduce){dot('M'+N.cx+' '+bus+' H'+last.cx,3.2,0);dot('M'+last.cx+' '+bus+' H'+N.cx,3.2,1.6);} } else { var cx=26,ex=10,all=[['markt',markt]].concat(order); /* Steuerung: gestrichelte Leitung links, Stich zu jeder Box oben */ var lastB=bx(grp.vb); line('M'+E.l+' '+E.cy+' H'+cx+' V'+(lastB.t+22),'d'); all.forEach(function(o){var b=bx(o[1]),off=o[1].classList&&o[1].classList.contains('is-empty');line('M'+cx+' '+(b.t+22)+' H'+b.l,'d'+(off?' off':''));}); /* Energie: grüne Schiene ganz links, Stich zu jeder Box unten */ line('M'+ex+' '+(N.b-22)+' V'+(lastB.b-22),'e'); order.forEach(function(o){var b=bx(o[1]),off=o[1].classList.contains('is-empty');var d='M'+ex+' '+(b.b-22)+' H'+b.l; line(d,'e'+(off?' off':''),fresh[o[0]]);}); if(!reduce)dot('M'+ex+' '+(N.b-22)+' V'+(lastB.b-22),2.6,0); } fresh={}; } root.querySelectorAll('.vf-chip').forEach(function(btn){btn.addEventListener('click',function(){ var d=DATA.filter(function(x){return x.id===btn.dataset.id;})[0]; var wasEmpty=grp[d.g].classList.contains('is-empty'); d.on=!d.on;btn.setAttribute('aria-pressed',d.on?'true':'false'); if(d.on&&wasEmpty)fresh[d.g]=1; render();});}); var t;window.addEventListener('resize',function(){clearTimeout(t);t=setTimeout(draw,120);}); render();if(document.fonts&&document.fonts.ready)document.fonts.ready.then(draw); }); } if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init);else init(); })();

Security

Cybersecurity to prevent unauthorized access to the EMS.

The Voltfang EMS is protected against unauthorized access from the ground up—on three levels.

Air-Gap Principle

Storage and all system components are physically disconnected from the Internet—unauthorized access is structurally impossible.

Controlled Access

Communication exclusively via Voltfang’s proprietary EMS hardware and software: developed in-house and manufactured at our own facility.

Minimal Communication

Only control commands and sensor data are transmitted over the internal connection—this keeps the attack surface to a minimum.

How the EMS Works

From Measurement Data to the Best Schedule

Around the clock, the EMS monitors what’s happening at your site, anticipates future needs, and plans the use of your storage system so that multiple use cases together yield the highest return.

VerbrauchPV-ErzeugungStrompreisPrognoseLadenEntladen
.vf-fp{font-family:Poppins,'Helvetica Neue',Arial,sans-serif;color:#D5DDE9;position:relative} .vf-fp-stage{position:relative;width:100%} .vf-fp-stage svg{display:block;overflow:visible;max-width:none!important} .vf-fp-stage text{font-family:inherit;font-weight:500;fill:#D5DDE9} .vf-fp-stage .ax,.vf-fp-stage .sm{fill:#8C96A6;font-weight:400} .vf-fp-stage .now{fill:#fff} .vf-fp-lg{display:flex;flex-wrap:wrap;gap:8px 32px;margin-top:24px;font-size:13px;line-height:1.3;color:#AFBFD6} .vf-fp-lg span{display:inline-flex;align-items:center;gap:10px} .vf-fp-lg i{display:inline-block;width:28px}.vf-fp-lg b{display:inline-block;width:10px;height:10px;border-radius:2px} .vf-fp-l{opacity:0;visibility:hidden;transition:opacity .15s ease-out,visibility 0s linear .15s} .vf-fp[data-state="1"] .vf-fp-l1, .vf-fp[data-state="2"] .vf-fp-l1,.vf-fp[data-state="2"] .vf-fp-l2, .vf-fp[data-state="3"] .vf-fp-l1,.vf-fp[data-state="3"] .vf-fp-l2,.vf-fp[data-state="3"] .vf-fp-l3,.vf-fp[data-state="3"] .vf-fp-l4{opacity:1;visibility:visible;transition:opacity .15s ease-out} .vf-fp[data-state="3"] .vf-fp-l2{animation:vfFpDim .3s ease-out 0.9s both} .vf-fp[data-state="2"] .vf-fp-wipe{animation:vfFpWipe .9s ease-out both} .vf-fp[data-state="3"] .vf-fp-l3 .pop{animation:vfFpPop .3s ease-out both} .vf-fp[data-state="3"] .fill{animation-name:vfFpFill;animation-timing-function:linear;animation-fill-mode:both} .vf-fp[data-state="3"] .cur{animation:vfFpCur 4.2s linear 0.9s both} .vf-fp[data-state="3"] .toast{animation:vfFpPop .3s ease-out both} .vf-fp .live{display:none}.vf-fp[data-state="1"] .live{display:inline} .vf-fp-wipe,.vf-fp .fill{transform-box:fill-box;transform-origin:left center} .vf-fp .pop,.vf-fp .toast{transform-box:fill-box;transform-origin:center} @keyframes vfFpDim{from{opacity:1}to{opacity:.45}} @keyframes vfFpWipe{from{transform:scaleX(0)}to{transform:scaleX(1)}} @keyframes vfFpPop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}} @keyframes vfFpFill{from{transform:scaleX(0)}to{transform:scaleX(1)}} @keyframes vfFpCur{from{transform:translateX(0)}to{transform:translateX(var(--d))}} /* Schrittkarten (Elementor-Container mit CSS-Klasse vf-step vf-step-1 … 3) */ .vf-step{position:relative!important;cursor:pointer;border:1px solid transparent!important;transition:border-color .15s ease-out,opacity .15s ease-out,background-color .15s ease-out;overflow:hidden} .vf-step:hover{border-color:#464E5B!important} .vf-step:focus-visible{outline:2px solid #89B2AA;outline-offset:2px} .vf-step.is-active{border-color:#507CCF!important;background-color:#323C55!important} .vf-steps-live .vf-step:not(.is-active){opacity:.72} .vf-step::after{content:'';position:absolute;left:0;bottom:0;height:2px;width:100%;background:#507CCF;transform:scaleX(0);transform-origin:left} .vf-step.is-active.is-playing::after{animation:vfFpProg var(--vf-dur,5.5s) linear forwards} @keyframes vfFpProg{to{transform:scaleX(1)}} @media (max-width:767px){.vf-fp-lg{font-size:12px;gap:6px 18px}} @media (prefers-reduced-motion:reduce){ .vf-fp *,.vf-step,.vf-step::after{animation:none!important;transition:none!important} .vf-fp[data-state="3"] .cur{transform:translateX(var(--d))} } (function(){ var NOW=9,END=22,RUN=4.2,OFF=0.9,ADJ=14; var PLAN=[[1.5,4.5,.55,'Günstig laden'],[7,9.5,-.6,'Lastspitze kappen'],[11,15.5,.9,'Eigenverbrauch'],[17.5,21,-.95,'Intraday-Handel']]; function last(h){return .36+.16*Math.exp(-Math.pow((h-8)/1.5,2))+.30*Math.exp(-Math.pow((h-18.5)/1.8,2));} function pv(h){return (h>6&&h<20)?Math.max(0,.88*Math.sin(Math.PI*(h-6)/14)):0;} function preis(h){return Math.min(.95,Math.max(.08,.50+.22*Math.exp(-Math.pow((h-8)/1.5,2))+.38*Math.exp(-Math.pow((h-19)/1.9,2))-.30*Math.exp(-Math.pow((h-13.5)/2.6,2))-.18*Math.exp(-Math.pow((h-3)/2.2,2))));} function tAt(h){return OFF+Math.max(0,(h-NOW)/(END-NOW)*RUN);} function f1(n){return Math.round(n*10)/10;} function build(W,uid){ var m=W<600, H=m?300:(W<900?360:400), FS=m?11:14, FA=m?11:13; var X0=m?14:24, X1=W-(m?14:24), BH=m?24:32, AXY=H-8, MID=AXY-22-(BH+30), YB=MID-BH-46, YT=40; function x(h){return X0+(X1-X0)*h/24;} function y(v){return YB-(YB-YT)*v;} function P(f,a,b){var s=[],h=a;while(h'); o.push(''+h+' Uhr');}); o.push(''); o.push(''); if(!m)o.push('Fahrplan Speicher'); /* 2 Prognose */ o.push(''); o.push('' +'' +'' +'' +''); /* 1 Erfassen */ var ly=f1(y(last(NOW))); o.push('' +'' +'' +'' +'Jetzt' +'' +''); /* 3 Fahrplan + 4 Ausführung */ var s3=[],s4=[]; PLAN.forEach(function(p,i){ var a=p[0],b=p[1],v=p[2],t=p[3],xx=f1(x(a)),w=f1(x(b)-x(a)),hg=f1(Math.abs(v)*BH),yy=v>0?f1(MID-hg):MID,c=v>0?'#89B2AA':'#507CCF'; s3.push(''); var tw=Math.round(t.length*FS*.6+(m?18:26)),ch=m?20:26,cx=Math.min(Math.max(xx+w/2,X0+tw/2),X1-tw/2),cy=v>0?MID-hg-8-ch/2:MID+hg+8+ch/2; s3.push('' +''+t+''); s4.push(''); }); var d=f1(x(END)-x(NOW)),ax=f1(x(ADJ)),tt='Fahrplan angepasst',tw2=Math.round(tt.length*FS*.6+32),th=m?22:28; s4.push(''); var tx=Math.min(Math.max(ax,X0+tw2/2),X1-tw2/2); s4.push('' +''+tt+''); o.push(''+s3.join('')+''+s4.join('')+''); return ''+o.join('')+''; } var DURS=[5000,5000,7000],uidN=0; function init(){ document.querySelectorAll('[data-vf-fp]').forEach(function(root){ if(root.dataset.ready)return; root.dataset.ready='1'; var uid=++uidN,stage=root.querySelector('.vf-fp-stage'),lastW=0; var reduce=window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches; function render(){var W=Math.round(stage.getBoundingClientRect().width);if(!W||Math.abs(W-lastW)<2)return;lastW=W; stage.innerHTML=build(W,uid);if(reduce)stage.querySelectorAll('animate').forEach(function(a){a.remove();});} render(); if('ResizeObserver' in window)new ResizeObserver(function(){render();}).observe(stage); else window.addEventListener('resize',render); var steps=[1,2,3].map(function(n){return document.querySelector('.vf-step-'+n);}); var has=steps.every(Boolean),state=1,timer=null,visible=false; if(has){ steps[0].parentNode.classList.add('vf-steps-live'); steps.forEach(function(el,i){ el.setAttribute('tabindex','0');el.setAttribute('role','button');el.style.setProperty('--vf-dur',DURS[i]+'ms'); el.addEventListener('click',function(){set(i+1,true);}); el.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();set(i+1,true);}}); }); } function set(n,restart){ state=n;root.dataset.state='0';void root.offsetWidth;root.dataset.state=String(n); if(has)steps.forEach(function(el,i){var on=i===n-1;el.classList.toggle('is-active',on);el.setAttribute('aria-pressed',on?'true':'false'); el.classList.remove('is-playing');if(on&&!reduce&&visible){void el.offsetWidth;el.classList.add('is-playing');}}); if(restart)schedule(); } function schedule(){clearTimeout(timer);if(reduce||!visible)return;timer=setTimeout(function(){set(state%3+1,true);},DURS[state-1]);} set(1,false); if('IntersectionObserver' in window){ new IntersectionObserver(function(es){es.forEach(function(e){var was=visible;visible=e.isIntersecting;if(visible&&!was)set(state,true);if(!visible)clearTimeout(timer);});},{threshold:.35}).observe(root); }else{visible=true;set(1,true);} }); } if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init);else init(); })();

01

Record

The EMS measures generation, consumption, state of charge, and grid draw every second—around the clock. Deviations and errors are immediately detected.

02

Forecast

Forecasts for generation, consumption, and electricity prices are derived from weather, market, and plant data.

03

Optimize and Control

Based on this, the EMS calculates the most economically optimal schedule, combines multiple use cases to maximize savings or revenue, and implements it in real time. If actual conditions deviate from the forecast, it continuously adjusts the schedule.

Web app

Your storage. Your energy management. Everything at a glance.

Our web app is the central platform for managing your energy management—with a real-time overview, smart analysis, and greater control over your storage solution.

Overview of Storage & EMS

System status and control all in one place.

Integrated Devices & Energy Flows

A comprehensive view of all connected producers and consumers.

History

Open, expandable platform—future-proof.

24/7 Monitoring

Access your system anytime—from anywhere.

Frequently Asked Questions About the Energy Management System

An energy management system (EMS) is the central control unit for a battery storage system. It monitors generation, consumption, and market prices and continuously determines when the storage system should charge or discharge. The Voltfang EMS coordinates storage systems, generation facilities, consumers, and the grid connection, and combines multiple use cases to maximize yield.

The Power Plant Integrator is the on-site hardware component of the Voltfang EMS. It connects storage systems, generation facilities, and grid connections to the energy management system, which then controls the facilities as a single system.

Solar power systems, wind farms, solar farms, combined heat and power (CHP) plants, charging stations, and heat pumps, as well as grid connection and the electricity market. The Voltfang-EMS has a modular architecture, allowing additional systems to be integrated at a later date.

For commercial storage systems, this includes, among other things, optimizing self-consumption, peak load shaving, dynamic electricity rates, and intraday trading; for large-scale storage systems, it includes balancing power and trading on the day-ahead and intraday markets. The Voltfang EMS continuously prioritizes use cases based on yield.

Yes. Voltfang’s EMS has open interfaces to popular marketing platforms. Your existing direct marketing partner can be integrated; if you don’t have a partner yet, we can connect you with leading marketing platforms.

Yes. Voltfang is continuously developing the EMS and adapting it to new regulatory requirements. The updates are included in the scope of services.

Yes. The Voltfang EMS adjusts charge and discharge cycles to protect the battery and extend its service life.

Through our web app. There, you can view your charge level, consumption, generation, and active use cases in real time, compare historical data, and download data.