// Control · Positionering — 5 varianten (de verbindende laag) const CtrlPos = {}; const PRODS = [ ["01","Battery","Core · Lite · Flex"], ["02","EV Charging","Grid 80–800"], ["03","Solar","Ray Fold · Flex"], ["04","Generator","Forge · Fusion"], ]; CtrlPos.PosV1 = function PosV1() { return (
08 · Positionering
// De verbindende laag

Geen software. Geen batterij.
Eén systeem.

WattIQ Control is de laag die alles verbindt — zonder Control zijn dit losse producten. Met Control werkt het als één geheel.

{PRODS.map(([n,t,s])=>(
{n}
{t}
{s}
))}
{[12.5,37.5,62.5,87.5].map(x=>(
))}
EMS PLATFORM · STUURT ALLES
WattIQ Control — de verbindende laag
↓ Eén gedrag · één dashboard · één verantwoordelijke partij
); }; CtrlPos.PosV2 = function PosV2() { return (
08 · Positionering · HUB & SPOKES

Control verbindt vier productlijnen.

Control EMS · v2 {[[200,100,"Battery","Core · Lite · Flex"],[900,100,"EV Charging","Grid 80–800"],[200,380,"Solar","Ray · Fold · Flex"],[900,380,"Generator","Forge · Fusion"]].map(([x,y,t,s],i)=>( {t} {s} ))}

↳ Alleen Control kan dit aansturen — losse hardware niet.

); }; CtrlPos.PosV3 = function PosV3() { // Stack tower return (
08 · Positionering · STACK

De stack van een gestuurde site.

Vier hardware-lagen, één coördinator. Zonder die laag werken de stukken niet samen — met die laag is het één machine.

    {["Hardware-agnostisch — werkt op andere merken","Open API voor SCADA en BMS koppelingen","Updates over-the-air, geen onderbreking"].map(x=>(
  • ↳ {x}
  • ))}
{[ ["L4","WattIQ Control","var(--power-orange)","var(--deep-black)","Beslist & stuurt"], ["L3","Battery · Solar","var(--steel-dark)","var(--off-white)","Energie-opslag & opwek"], ["L2","EV · Generator","var(--steel-dark)","var(--off-white)","Lasten & back-up"], ["L1","Aansluiting","var(--industrial-black)","var(--muted)","Net · capaciteit"], ].map(([lvl,t,bg,c,d],i)=>(
{lvl} {t}
{d}
))}
); }; CtrlPos.PosV4 = function PosV4() { // Periodic-table style tile return (
08 · Positionering · PERIODIC

Elke laag heeft een rol — Control is de katalysator.

{[ ["Bt","Battery","var(--steel-dark)","Core · Lite · Flex"], ["EV","EV Charging","var(--steel-dark)","Grid 80–800"], ["So","Solar","var(--steel-dark)","Ray · Fold · Flex"], ["Gn","Generator","var(--steel-dark)","Forge · Fusion"], ].map(([sym,name,bg,fam])=>(
HWL2-3
{sym}
{name}
{fam}
))}
Ct
EMS · L4 · CONTROL
WattIQ Control
Verbindende laag · stuurt alle 4 hardware-lagen, real-time, automatisch.
); }; CtrlPos.PosV5 = function PosV5() { // Flow manifest - giant orange band with logos around return (
08 · Positionering · MANIFEST

Vier producten. Eén systeem. Eén partij.

{PRODS.map(([n,t,s])=>(
{n}
{t}
{s}
))}
↑ HARDWAREEMS · CONTROL · L4↓ NETWERK

WattIQ Control

De verbindende laag — stuurt alle hardware als één systeem, met één dashboard en één verantwoordelijke partij.

● Eén gedrag
● Eén dashboard
● Eén verantwoordelijke
); }; CtrlPos.PosV6 = function PosV6() { // Without / With — contrast split return (
08 · Positionering · WITHOUT / WITH

Hetzelfde site. Twee uitkomsten.

↳ Zonder Control● losse stukken
{[[80,90],[300,80],[90,290],[300,300]].map(([x,y],i)=>( {["Battery","EV","Solar","Generator"][i]} ))} {[[80,90,300,80],[80,90,90,290],[300,80,300,300],[90,290,300,300],[80,90,300,300],[300,80,90,290]].map(([x1,y1,x2,y2],i)=>( ))} CONFLICT
↳ Apparaten beslissen los
↳ Pieken botsen, batterij leeg op verkeerd moment
↳ Vier dashboards, vier leveranciers
↳ Met Control● één systeem
CONTROL EMS · v2 {[[80,90],[300,80],[90,290],[300,300]].map(([x,y],i)=>( {["Battery","EV","Solar","Generator"][i]} ))}
↳ Eén beslisser, real-time
↳ Pieken voorspeld, capaciteit benut
↳ Eén dashboard, één partij
); }; CtrlPos.PosV7 = function PosV7() { // Org chart — Control as manager, products as reports return (
08 · Positionering · ORG

Wie beslist op een gestuurde site?

Hardware voert uit. Control beslist. Een organogram van een geautomatiseerde site.

EMS · L4 · BESLISSER
WattIQ Control
4 directs · real-time
{PRODS.map(([n,t,s],i)=>(
HW · {n}↳ direct
{t}
{s}
{["Slaat op, levert terug","Laadt slim, prioriteert","Wekt op, voorspelt","Vult aan, back-up"][i]}
))}
↳ rapporteert via één dashboard · één SLA · één telefoonnummer
); }; CtrlPos.PosV8 = function PosV8() { // Cabling / panel schematic const items = [ ["BAT","Battery","Core · Lite · Flex","#FF6B2B"], ["EVS","EV Charging","Grid 80–800","#FFD700"], ["SOL","Solar","Ray · Fold · Flex","#7AA37A"], ["GEN","Generator","Forge · Fusion","#D86060"], ]; return (
08 · Positionering · BUS BAR

De rail waarop alles aangesloten zit.

↳ PNL · WATTIQ-CTRL · 01 BUS · 24V · DC ● ENERGIZED
↳ EMS CONTROL · L4
{items.map(([code,t,s,c],i)=>(
{code} · {String(i+1).padStart(2,"0")}
{t}
{s}
))}
● Modbus TCP● OCPP 2.0.1● SunSpec● Dry contact

↳ Eén rail, één protocolstack, één partij voor alles.

); }; CtrlPos.PosV9 = function PosV9() { // Conductor metaphor — orchestra return (
08 · Positionering · DIRIGENT
↳ Metafoor

Vier secties.
Eén dirigent.

Een orkest zonder dirigent is vier groepen die hetzelfde stuk anders spelen. Met dirigent: één muziek. Control is die laag voor je site.

↳ Wat een dirigent doet
· Bepaalt tempo (cyclustijd)
· Bepaalt dynamiek (welke laag, hoe hard)
· Anticipeert (volgende maat)
· Houdt het samen (één geheel)
↳ Dirigent
Control
{[60,200,400,540].map((x,i)=>( ))}
{[ ["Battery","Strijkers","Core · Lite · Flex"], ["EV","Hout","Grid 80–800"], ["Solar","Koper","Ray · Fold · Flex"], ["Generator","Slag","Forge · Fusion"], ].map(([t,sec,fam],i)=>(
↳ {sec}
{t}
{fam}
))}
↳ Symphony in C · WattIQ Stack
); }; CtrlPos.PosV10 = function PosV10() { // Spec-sheet / product index const rows = [ ["01","Battery","Hardware","L2","Slaat op, levert terug","Core · Lite · Flex"], ["02","EV Charging","Hardware","L2","Laadt slim, prioriteert","Grid 80–800"], ["03","Solar","Hardware","L3","Wekt op, voorspelt","Ray · Fold · Flex"], ["04","Generator","Hardware","L2","Vult aan, back-up","Forge · Fusion"], ]; return (
08 · Positionering · INDEX
↳ INDEX 08 · POSITIONERING

Vier producten als regels.
Control als kop.

Een productindex laat de hiërarchie zwart-op-wit zien — vier hardware-rijen onder één coördinerende laag. Geen logo's, geen metaforen.
00
EMS · L4 · COORDINATOR
WattIQ Control
Software
L4
Beslist & stuurt — verbindt alle hardware-lagen tot één gedrag.
v2 · live
NRPRODUCTTYPELAAGROLFAMILIES
{rows.map(([nr,prod,typ,laag,rol,fam],i)=>(
{nr} {prod} {typ} {laag} {rol} {fam}
))}
); }; CtrlPos.PosV11 = function PosV11() { // Onderscheid — wat het wel/niet is return (
08 · Positionering · ONDERSCHEID
// Onderscheid

Niet dat. Niet dit. Maar dat.

{[ ["Niet","Een dashboard","Software die alleen meet, kijkt, rapporteert. Stuurt niets aan.","var(--steel-dark)","var(--muted)","#a85a3a"], ["Niet","Een batterij","Hardware die opslaat, maar niet weet wanneer, voor wie of waarom.","var(--steel-dark)","var(--muted)","#a85a3a"], ["Wel","Eén systeem","De laag die meet én beslist én stuurt — over alle hardware tegelijk.","var(--power-orange)","var(--deep-black)","var(--deep-black)"], ].map(([k,t,d,bg,c,tagC],i)=>(
↳ {k}
{t}
{d}
{i<2?"✕":"●"}
))}
); }; CtrlPos.PosV12 = function PosV12() { // Layered site map — Control als laag eroverheen return (
08 · Positionering · LAYER MAP
// Layer map

Eén laag bovenop de site.

SITE · PLAN {[ [120,140,"BAT","Battery"], [340,90,"EV","Charger"], [560,170,"SOL","Solar"], [760,120,"GEN","Genset"], [220,300,"BAT","Battery"], [480,330,"EV","Charger"], [700,290,"BAT","Battery"], ].map(([x,y,c,t],i)=>( {c} {t} ))} ↳ CONTROL · L4 verbindt deze 7 assets
● 7 assets ↑● 1 platform ↑● 1 dashboard ↑
); }; CtrlPos.PosV13 = function PosV13() { // Switchboard / cockpit panel return (
08 · Positionering · SWITCHBOARD
// Eén schakelpaneel

Eén paneel. Vier schakelaars.

↳ PNL · WATTIQ-CTRL · 01 ● MASTER · ON STATUS · NOMINAL
{PRODS.map(([n,t,s],i)=>{ const states = ["AUTO","AUTO","AUTO","STDBY"]; return (
CH · {n}
{t}
OFFON
● {states[i]}{s}
); })}
↳ MASTER · EMS
WattIQ Control beslist over alle 4 kanalen
v2 · LIVE
); }; CtrlPos.PosV14 = function PosV14() { // One vs Many — multi-vendor split const others = ["Battery vendor","EV vendor","Solar vendor","Genset vendor","Software vendor"]; return (
08 · Positionering · ONE VS MANY
// One vs many

Vijf leveranciers. Of één.

↳ Klassiek · 5 partijen
{others.map((v,i)=>(
{v} SLA · ? contract · {i+1}
))}
↳ 5 dashboards
↳ 5 telefoonnummers
↳ Bij storing: wie is verantwoordelijk?
↳ Met Control · 1 partij
EMS · L4 · ALLES
WattIQ Control
{["Battery","EV","Solar","Generator","Software"].map(t=>( {t} ))}
↳ 1 dashboard
↳ 1 telefoonnummer
↳ Bij storing: WattIQ.
); }; CtrlPos.PosV15 = function PosV15() { // Timeline — how site-management evolves with Control const lanes = [ ["Battery", "rgba(255,107,43,.85)", [["Idle",0,18],["Discharge",18,42],["Charge",42,68],["Standby",68,82],["Discharge",82,100]]], ["EV Charging","rgba(255,215,0,.85)", [["Off",0,12],["Slow",12,28],["Off",28,42],["Fast",42,72],["Slow",72,100]]], ["Solar","rgba(122,163,122,.85)", [["",0,8],["Ramp",8,30],["Peak",30,68],["Ramp",68,90],["",90,100]]], ["Generator","rgba(216,96,96,.85)", [["Off",0,40],["Standby",40,55],["Off",55,100]]], ]; return (
08 · Positionering · ORCHESTRATION
// Eén tijdlijn

Eén partituur. Vier lijnen.

↳ 24 uur · gecoördineerd door Control ● live
{lanes.map(([name,color,segs],i)=>(
{name}
{segs.map(([lab,a,b],j)=>(
{lab}
))}
))}
00:0006:0012:0018:0024:00
↳ DIRIGENT
WattIQ Control schrijft de partituur
elke 100ms
); }; window.CtrlPos = CtrlPos;