De SAX Power Manager verbindt alles wat stroom opwekt, opslaat en verbruikt – en stuurt het zo intelligent aan dat u aan het einde van de maand het verschil op de rekening ziet.
Meer eigenverbruik
Meer informatie
Meer eigenverbruik
De Power Manager detecteert automatisch wanneer er een overschot aan zonne-energie is – en leidt deze precies daarheen waar het nodig is.
Omvormers, wallboxen, warmtepompen, slimme stekkers – de Power Manager communiceert met alles.
Welk apparaat past bij u?
De SAX Power Manager is verkrijgbaar in twee varianten – beide worden geïnstalleerd door een elektricien, maar verschillen in installatie-inspanning en functionaliteitsbereik.
Power Manager Pro Montage op de DIN-rail in de verdeelkast – de volwaardige oplossing met het maximale functionaliteitsbereik. Ideaal voor nieuwe installaties of uitgebreide energiemanagementsystemen.
Power Manager Plug-In Compacter en sneller te installeren dan de Pro – de Power Manager Plug-In overtuigt door zijn ongecompliceerde installatie. Het functionaliteitsbereik is afhankelijk van de actuele compatibiliteitslijst.
Beide varianten kunnen eenvoudig via app of browser worden bediend en vormen de basis voor echt energiemanagement in uw eigen huis.
Verschillen Basic en Premium ABONNEMENT
Basic – gratis
Optimalisatie van eigenverbruik, handmatige schema’s, realtime monitoring, één smartplug/relais, conform §14a EnWG, dynamische tarieven (EPEX). Permanent gratis – geen abonnement, geen verborgen kosten.
Premium – Abonnement (€99 / jaar)
Alles van Basic, plus AI-modus met voorspellende regeling, weersvoorspelling, energieassistent, volledige wallbox-controle incl. SOC, warmtepomp-cockpit, dynamische tarieven, Peak-Shaving, bidirectioneel laden en onbeperkte software-updates – in het betaalde abonnement voor €99/jaar, beschikbaar vanaf september 2026.
Alle gateways SAX Power Manager Pro SAX Power Manager Plug-In
Apparaat
Fabrikant
Categorie
Interface
SAX Power Manager Pro
SAX Power Manager Plug-In
Compatibiliteitsgegevens laden ...
.sax-compat{
--sax-blue:#293481;
--sax-blue-light:#f0f1f8;
--sax-border:#e2e4ee;
--sax-text:#1f2333;
--sax-muted:#6b7080;
font-family:'Poppins', Arial, sans-serif;
color:var(--sax-text);
max-width:100%;
}
.sax-compat *{box-sizing:border-box;}
.sax-compat__toolbar{
display:flex; flex-wrap:wrap; gap:10px; margin-bottom:12px;
}
.sax-compat__search{
flex:1 1 240px; padding:10px 14px; border:1px solid var(--sax-border);
border-radius:6px; font-size:14px; font-family:inherit;
}
.sax-compat__select{
padding:10px 12px; border:1px solid var(--sax-border); border-radius:6px;
font-size:14px; font-family:inherit; background:#fff; min-width:170px;
}
.sax-compat__meta{ font-size:13px; color:var(--sax-muted); margin-bottom:8px; }
.sax-compat__table-wrap{
overflow-x:auto; border:1px solid var(--sax-border); border-radius:8px;
}
.sax-compat__table{
width:100%; border-collapse:collapse; font-size:14px; min-width:720px;
}
.sax-compat__table thead th{
background:var(--sax-blue); color:#fff; text-align:left; padding:12px 14px;
font-weight:600; white-space:nowrap; cursor:pointer; user-select:none;
}
.sax-compat__table thead th:hover{ background:#1f2766; }
.sax-compat__table thead th.sax-compat__center,
.sax-compat__table td.sax-compat__center{ text-align:center; }
.sax-compat__table tbody td{
padding:10px 14px; border-top:1px solid var(--sax-border); vertical-align:middle;
}
.sax-compat__table tbody tr:nth-child(even){ background:var(--sax-blue-light); }
.sax-compat__table tbody tr:hover{ background:#e6e9f7; }
.sax-compat__yes{ color:#1a8f4c; font-weight:700; }
.sax-compat__no{ color:#c7c9d3; }
.sax-compat__doc-link{ color:var(--sax-blue); text-decoration:none; font-weight:600; }
.sax-compat__doc-link:hover{ text-decoration:underline; }
.sax-compat__loading, .sax-compat__empty{
text-align:center; padding:24px; color:var(--sax-muted);
}
.sax-compat__pagination{
display:flex; justify-content:center; align-items:center; gap:6px;
margin-top:14px; flex-wrap:wrap;
}
.sax-compat__pagination button{
border:1px solid var(--sax-border); background:#fff; color:var(--sax-text);
padding:6px 12px; border-radius:6px; cursor:pointer; font-size:13px; font-family:inherit;
}
.sax-compat__pagination button.active{
background:var(--sax-blue); color:#fff; border-color:var(--sax-blue);
}
.sax-compat__pagination button:disabled{
opacity:.4; cursor:default;
}
@media (max-width: 600px){
.sax-compat__select{ min-width:140px; flex:1 1 45%; }
}
(function(){
// ---- Konfiguration ---------------------------------------------------
var JSON_URL = 'https://sax-power.net/wp-content/uploads/2026/07/solar-manager-komp.json'; // Pfad anpassen
var PAGE_SIZE = 25;
// ---- Sonderzeichen als reguaere Unicode-Escapes -----------------------
// (kein String.fromCharCode mehr - dies wird von WAFs wie Wordfence
// als JS-Obfuscation-Muster erkannt und kann zu HTTP 500 fuehren)
var AMP = '\u0026'; // Et-Zeichen
var CHK = '\u2713'; // Haekchen
var DASH = '\u2013'; // Gedankenstrich
var LAQ = '\u2039'; // Pfeil links (Pagination)
var RAQ = '\u203a'; // Pfeil rechts (Pagination)
var AE = '\u00e4'; // ae-Umlaut
var HELLIP = '\u2026'; // Auslassungspunkte
var ENT_AMP = AMP + 'amp;';
var ENT_LT = AMP + 'lt;';
var ENT_GT = AMP + 'gt;';
var ENT_QUOT = AMP + 'quot;';
var ENT_APOS = AMP + '#39;';
// ---- Statische Texte, die Umlaute/Sonderzeichen brauchen -------------
var TXT_GERAET_LABEL = 'Ger' + AE + 't';
var TXT_SEARCH_PLACEHOLDER = 'Ger' + AE + 't oder Hersteller suchen ' + HELLIP;
var TXT_LOADING = 'Lade Kompatibilit' + AE + 'tsdaten ' + HELLIP;
var TXT_NO_RESULTS = 'Keine Ger' + AE + 'te gefunden.';
// Statische Texte einmalig ins DOM schreiben (ersetzt HTML-Platzhalter)
document.getElementById('sax-compat-search').setAttribute('placeholder', TXT_SEARCH_PLACEHOLDER);
var labelHeader = document.querySelector('#sax-compat-widget th[data-sort="label"]');
if (labelHeader) labelHeader.textContent = TXT_GERAET_LABEL;
var loadingCell = document.querySelector('#sax-compat-widget .sax-compat__loading');
if (loadingCell) loadingCell.textContent = TXT_LOADING;
// ---- Sprache ermitteln (WPML setzt i.d.R. das html-lang-Attribut) ----
function detectLang(){
var htmlLang = (document.documentElement.lang || 'de').toLowerCase();
var map = { da:'dk' }; // WPML nutzt "da" fuer Daenisch, Datensatz nutzt "dk"
var code = htmlLang.split('-')[0];
code = map[code] || code;
var available = ['de','en','fr','it','dk','nl'];
return available.indexOf(code) !== -1 ? code : 'en';
}
var LANG = detectLang();
// ---- State -------------------------------------------------------------
var state = { data:null, typesByKey:{}, filtered:[], page:1,
sortKey:'label', sortDir:1, search:'', type:'', gateway:'' };
var el = {
search: document.getElementById('sax-compat-search'),
type: document.getElementById('sax-compat-type'),
gateway: document.getElementById('sax-compat-gateway'),
body: document.getElementById('sax-compat-body'),
count: document.getElementById('sax-compat-count'),
pagination: document.getElementById('sax-compat-pagination'),
headers: document.querySelectorAll('#sax-compat-widget th[data-sort]')
};
fetch(JSON_URL)
.then(function(r){
if(!r.ok) throw new Error('HTTP ' + r.status);
return r.json();
})
.then(init)
.catch(function(err){
el.body.innerHTML = '
' +
'Daten konnten nicht geladen werden (' + err.message + ').
';
});
function init(data){
state.data = data;
data.types.forEach(function(t){ state.typesByKey[t.type] = t.typeLabels; });
// Typ-Filter befuellen (alphabetisch nach Label in aktueller Sprache)
var typeOptions = data.types
.map(function(t){ return { value:t.type, label:t.typeLabels[LANG] || t.typeLabels.en }; })
.sort(function(a,b){ return a.label.localeCompare(b.label); });
el.type.innerHTML = 'Alle Kategorien' +
typeOptions.map(function(o){
return '' + o.label + '';
}).join('');
el.search.addEventListener('input', function(){ state.search = this.value.toLowerCase(); state.page = 1; render(); });
el.type.addEventListener('change', function(){ state.type = this.value; state.page = 1; render(); });
el.gateway.addEventListener('change', function(){ state.gateway = this.value; state.page = 1; render(); });
el.headers.forEach(function(th){
th.addEventListener('click', function(){
var key = th.getAttribute('data-sort');
if (state.sortKey === key) { state.sortDir *= -1; } else { state.sortKey = key; state.sortDir = 1; }
render();
});
});
render();
}
function getRows(){
var q = state.search;
return state.data.devices.filter(function(d){
if (state.type && d.type !== state.type) return false;
if (state.gateway && d.supportedGateways.indexOf(state.gateway) === -1) return false;
if (q){
var label = (d.labels[LANG] || d.labels.en || d.deviceKey || '').toLowerCase();
var manu = (d.manufacturer || '').toLowerCase();
if (label.indexOf(q) === -1 && manu.indexOf(q) === -1) return false;
}
return true;
});
}
function sortRows(rows){
var key = state.sortKey, dir = state.sortDir;
return rows.slice().sort(function(a,b){
var av, bv;
if (key === 'label'){ av = a.labels[LANG] || a.labels.en || ''; bv = b.labels[LANG] || b.labels.en || ''; }
else if (key === 'manufacturer'){ av = a.manufacturer || ''; bv = b.manufacturer || ''; }
else if (key === 'type'){ av = (state.typesByKey[a.type] || {})[LANG] || a.type; bv = (state.typesByKey[b.type] || {})[LANG] || b.type; }
else if (key === 'comm'){ av = a.commInterfaces.join(','); bv = b.commInterfaces.join(','); }
else { av = ''; bv = ''; }
return av.localeCompare(bv) * dir;
});
}
function render(){
var rows = sortRows(getRows());
state.filtered = rows;
el.count.textContent = rows.length + ' von ' + state.data.devices.length + ' Ger' + AE + 'ten';
var totalPages = Math.max(1, Math.ceil(rows.length / PAGE_SIZE));
if (state.page > totalPages) state.page = totalPages;
var start = (state.page - 1) * PAGE_SIZE;
var pageRows = rows.slice(start, start + PAGE_SIZE);
if (pageRows.length === 0){
el.body.innerHTML = '
';
el.body.querySelector('.sax-compat__empty').textContent = TXT_NO_RESULTS;
} else {
el.body.innerHTML = pageRows.map(rowHtml).join('');
}
renderPagination(totalPages);
}
function rowHtml(d){
var label = escapeHtml(d.labels[LANG] || d.labels.en || d.deviceKey);
var typeLabel = escapeHtml((state.typesByKey[d.type] || {})[LANG] || d.type);
var comm = escapeHtml(d.commInterfaces.join(', '));
var hasC2 = d.supportedGateways.indexOf('Connect 2') !== -1;
var hasFlux = d.supportedGateways.indexOf('Flux') !== -1;
var yesC2 = hasC2 ? ('' + CHK + '') : ('' + DASH + '');
var yesFlux = hasFlux ? ('' + CHK + '') : ('' + DASH + '');
return '
' +
'
' + label + '
' +
'
' + escapeHtml(d.manufacturer || DASH) + '
' +
'
' + typeLabel + '
' +
'
' + comm + '
' +
'
' + yesC2 + '
' +
'
' + yesFlux + '
' +
'
';
}
function renderPagination(totalPages){
if (totalPages <= 1){ el.pagination.innerHTML = ''; return; }
var html = '';
html += '';
var maxButtons = 7;
var startP = Math.max(1, state.page - 3);
var endP = Math.min(totalPages, startP + maxButtons - 1);
startP = Math.max(1, endP - maxButtons + 1);
for (var p = startP; p <= endP; p++){
html += '';
}
html += '';
el.pagination.innerHTML = html;
el.pagination.querySelectorAll('button[data-page]').forEach(function(btn){
btn.addEventListener('click', function(){
state.page = parseInt(this.getAttribute('data-page'), 10);
render();
document.getElementById('sax-compat-widget').scrollIntoView({ behavior:'smooth', block:'start' });
});
});
}
function escapeHtml(str){
return String(str)
.split(AMP).join(ENT_AMP)
.split('').join(ENT_GT)
.split('"').join(ENT_QUOT)
.split("'").join(ENT_APOS);
}
})();
Houd er rekening mee dat de lijst met compatibele apparaten voor de SAX Power Manager mogelijk niet volledig is en zonder garantie wordt verstrekt. De apparaten zijn getest, maar aanpassingen door de fabrikanten kunnen leiden tot incompatibiliteiten. Wij streven ernaar de lijst altijd actueel te houden.