PageSourceSearch

https://www.varta-ag.com/typo3temp/assets/compressed/va_init-b95d35ecdc66c87ff72bdf4859512f2b.js?1757512625

js varta-ag.com collected 2026-10-01 10:41:14 UTC 24,450 bytes, 572 lines download raw bytes

1// Einsatzgebiet zum Start definieren
2var einsatzGebiet = 1; // 1: EFH, 2: MFH, 3: Gewerbe, 4: Landwirtschaft
3
4// Variable, die angibt, ob die Änderungen durch die Spinner-Manipulation zustande kommen sind.
5var spinner_manipulation = 0;
6
7// Manuelle Änderung der Speicherauslegung oder nicht
8var speicherauslegung_change = 0;
9
10// EFH (Einfamilienhaus)
11var app_efh_stromverbrauch = { value: 4000, initial: 4000, min: 1000, max: 8000, step: 500, unit: 'kWh/a', txtId: '#slider_value_efh_stromverbrauch', sliderId: '#slider_range_efh_stromverbrauch' };
12var app_efh_elektroauto = { value: 0, initial: 0, min: 0, max: 20000, step: 5000, unit: 'km/a', txtId: '#slider_value_efh_strecke_auto', sliderId: '#slider_range_efh_strecke_auto' };
13var app_efh_ladezeit_auto = { value: 1, initial: 1, min: 1, max: 2, step: 1, toggleId: '#toggle_efh_ladezeit_auto', checkId: '#check_ladezeit_auto', sliderId: '' }; // sliderId muss leer bleiben
14var app_efh_solares_laden_auto = { value: 1, initial: 1, min: 1, max: 2, step: 1, toggleId: '#toggle_efh_solares_laden_auto', checkId: '#check_solares_laden_auto', sliderId: '' }; // sliderId muss leer bleiben
15var app_efh_waermepumpe = { value: 0, initial: 0, min: 0, max: 6000, step: 1000, unit: 'kWh/a', txtId: '#slider_value_efh_stromverbrauch_waermepumpe', sliderId: '#slider_range_efh_stromverbrauch_waermepumpe' };
16var app_efh_pv = { value: 10, initial: 10, min: 2, max: 30, step: 1, unit: 'kW', txtId: '#slider_value_efh_pv_leistung', sliderId: '#slider_range_efh_pv_leistung' };
17
18// MGL (Mehrfamilienhaus, Gewerbe und Landwirtschaft)
19var app_mgl_stromverbrauch = { value: 50000, initial: 50000, min: 10000, max: 100000, step: 5000, unit: 'kWh/a', txtId: '#slider_value_mgl_stromverbrauch', sliderId: '#slider_range_mgl_stromverbrauch' };
20var app_mgl_elektroautoladepunkte = { value: 0, initial: 0, min: 0, max: 10, step: 1, unit: '', txtId: '#slider_value_mgl_elektroautoladepunkte', sliderId: '#slider_range_mgl_elektroautoladepunkte' };
21var app_mgl_pv = { value: 50, initial: 50, min: 10, max: 100, step: 5, unit: 'kW', txtId: '#slider_value_mgl_pv_leistung', sliderId: '#slider_range_mgl_pv_leistung' };
22
23// Alle Bereiche
24var app_all_dachausrichtung = { value: 0, initial: 0, min: -90, max: 90, step: 45, unit: '°', txtId: '#slider_value_all_dachausrichtung', sliderId: '#slider_range_all_dachausrichtung' };
25var app_all_dachneigung = { value: 30, initial: 30, min: 15, max: 45, step: 15, unit: '°', txtId: '#slider_value_all_dachneigung', sliderId: '#slider_range_all_dachneigung' };
26var app_all_produktempfehlung = { value: 0, initial: 0, min: 0, max: 5, step: 1, unit: 'kWh', txtId: '#slider_value_all_produktempfehlung', sliderId: '#slider_range_all_produktempfehlung' };
27
28// Maximalwert der Speicherkapazität der Produktempfehlung je nach einsatzGebiet
29var max_Anzeige_efh = 30; // kWh
30var max_Anzeige_mgl = 100; // kWh
31var max_Anzeige = (einsatzGebiet == 1) ? max_Anzeige_efh : max_Anzeige_mgl;
32
33// Schrittweite der Speicherkapazität je nach einsatzGebiet
34var E_bat_step_efh = 2; // kWh
35var E_bat_step_mgl = 5; // kWh
36
37var empfohleneKapazitaet = null;
38
39// MGL-Tabelle für den Stromverbrauch in Abhängigkeit von der Anzahl der Elektroautoladepunkte
40var E_ea_tab =
41    [
42        [0, 0],
43        [1, 1845.422],
44        [2, 3763.901],
45        [3, 6553.016],
46        [4, 9312.614],
47        [5, 11156.965],
48        [6, 13739.082],
49        [7, 16575.072],
50        [8, 19351.813],
51        [9, 22284.125],
52        [10, 24815.239]
53    ];
54
55// Tabelle für die PV-Erzeugung je nach Dachausrichtung und -neigung
56var E_pvs_tab =
57    [
58        [-90, 15, 886.721],
59        [-90, 30, 860.388],
60        [-90, 45, 820.268],
61        [-45, 15, 948.647],
62        [-45, 30, 967.287],
63        [-45, 45, 950.241],
64        [0, 15, 969.221],
65        [0, 30, 999.982],
66        [0, 45, 986.416],
67        [45, 15, 939.752],
68        [45, 30, 950.744],
69        [45, 45, 928.03],
70        [90, 15, 874.419],
71        [90, 30, 838.166],
72        [90, 45, 792.793]
73    ];
74
75// Tabelle mit Dimensionierungsempfehlungen je nach Einsatzgebiet
76var Dim_grenzen =
77    [
78        [1.5, 1, 0.5],   // EFH
79        [1.5, 1, 0.5],   // MFH
80        [1, 0.75, 0.6],  // Gewerbe
81        [1.25, 1, 0.5],  // Landwirtschaft
82    ];
83//    1. Spalte: Begrenzung durch Gesamtstromverbrauch in kWh pro 1000 kWh/a,
84//    2. Spalte: Begrenzung durch PV-Leistung in in kWh pro kWp,
85//    3. Spalte: Min. erforderliche PV-Leistung, damit Speicher empfohlen wird in kWp pro 1000 kWh/a
86
87
88// EFH-Vektoren
89vec_efh_stromverbrauch = [];
90for (let i = 0; i <= (app_efh_stromverbrauch.max - app_efh_stromverbrauch.min) / app_efh_stromverbrauch.step; i++) { vec_efh_stromverbrauch[i] = app_efh_stromverbrauch.min + i * app_efh_stromverbrauch.step; }
91vec_efh_elektroauto = [];
92for (let i = 0; i <= (app_efh_elektroauto.max - app_efh_elektroauto.min) / app_efh_elektroauto.step; i++) { vec_efh_elektroauto[i] = app_efh_elektroauto.min + i * app_efh_elektroauto.step; }
93vec_efh_ladezeit_auto = [];
94for (let i = 0; i <= (app_efh_ladezeit_auto.max - app_efh_ladezeit_auto.min) / app_efh_ladezeit_auto.step; i++) { vec_efh_ladezeit_auto[i] = app_efh_ladezeit_auto.min + i * app_efh_ladezeit_auto.step; }
95vec_efh_solares_laden_auto = [];
96for (let i = 0; i <= (app_efh_solares_laden_auto.max - app_efh_solares_laden_auto.min) / app_efh_solares_laden_auto.step; i++) { vec_efh_solares_laden_auto[i] = app_efh_solares_laden_auto.min + i * app_efh_solares_laden_auto.step; }
97vec_efh_waermepumpe = [];
98for (let i = 0; i <= (app_efh_waermepumpe.max - app_efh_waermepumpe.min) / app_efh_waermepumpe.step;
98 i++) { vec_efh_waermepumpe[i] = app_efh_waermepumpe.min + i * app_efh_waermepumpe.step; }
99vec_efh_pv = [];
100for (let i = 0; i <= (app_efh_pv.max - app_efh_pv.min) / app_efh_pv.step; i++) { vec_efh_pv[i] = app_efh_pv.min + i * app_efh_pv.step; }
101vec_efh_bat = []; // Vektor der Speicherkapazität ergibt sich aus der Parameter in der Ergebnistabelle
102for (let i = 0; i <= (max_Anzeige_efh - 0) / E_bat_step_efh; i++) { vec_efh_bat[i] = 0 + i * E_bat_step_efh; }
103
104// MGL-Vektoren
105vec_mgl_stromverbrauch = [];
106for (let i = 0; i <= (app_mgl_stromverbrauch.max - app_mgl_stromverbrauch.min) / app_mgl_stromverbrauch.step; i++) { vec_mgl_stromverbrauch[i] = app_mgl_stromverbrauch.min + i * app_mgl_stromverbrauch.step; }
107vec_mgl_elektroautoladepunkte = [];
108for (let i = 0; i <= (app_mgl_elektroautoladepunkte.max - app_mgl_elektroautoladepunkte.min) / app_mgl_elektroautoladepunkte.step; i++) { vec_mgl_elektroautoladepunkte[i] = app_mgl_elektroautoladepunkte.min + i * app_mgl_elektroautoladepunkte.step; }
109vec_mgl_pv = [];
110for (let i = 0; i <= (app_mgl_pv.max - app_mgl_pv.min) / app_mgl_pv.step;
110 i++) { vec_mgl_pv[i] = app_mgl_pv.min + i * app_mgl_pv.step; }
111vec_mgl_bat = []; // Vektor der Speicherkapazität ergibt sich aus der Parameter in der Ergebnistabelle
112for (let i = 0; i <= (max_Anzeige_mgl - 0) / E_bat_step_mgl; i++) { vec_mgl_bat[i] = 0 + i * E_bat_step_mgl; }
113vec_mgl_einsatzgebiet = []; // Vektor der MGL-Einsatzgebiete ergibt sich aus der Parameter in der Ergebnistabelle
114for (let i = 0; i <= (4 - 2) / 1; i++) { vec_mgl_einsatzgebiet[i] = 2 + i * 1; }
115
116// EFH- und MGL-Vektoren (alle Bereiche)
117vec_all_dachausrichtung = [];
118for (let i = 0; i <= (app_all_dachausrichtung.max - app_all_dachausrichtung.min) / app_all_dachausrichtung.step; i++) { vec_all_dachausrichtung[i] = app_all_dachausrichtung.min + i * app_all_dachausrichtung.step; }
119vec_all_dachneigung = [];
120for (let i = 0; i <= (app_all_dachneigung.max - app_all_dachneigung.min) / app_all_dachneigung.step; i++) { vec_all_dachneigung[i] = app_all_dachneigung.min + i * app_all_dachneigung.step; }
121vec_all_produktempfehlung = [];
122for (let i = 0; i <= (app_all_produktempfehlung.max - app_all_produktempfehlung.min) / app_all_produktempfehlung.step; i++) { vec_all_produktempfehlung[i] = app_all_produktempfehlung.min + i * app_all_produktempfehlung.step; }
123
124var kapazitaetProduktempfehlung = [];
125var kapazitaetProduktempfehlungExtended = [];
126
127function getKapazitaetProduktempfehlung() {
128
129        var s = 0;
130
131        max_Anzeige = (einsatzGebiet == 1) ? max_Anzeige_efh : max_Anzeige_mgl;
132
133        kapazitaetProduktempfehlung = [];
134
135        // Array Anzeigewerte (nutzbareBatteriekapazitaet)
136        for (i = 0; i < produktliste.length; i++) {
137                if (produktliste[i][6] <= max_Anzeige) {
138                        kapazitaetProduktempfehlung[s] = produktliste[i][6];
139                        if (i < produktliste.length - 1) {
140                                if (produktliste[i][6] == produktliste[i + 1][6]) {
141                                        i++;
142                                }
143                        }
144                        s++;
145                }
146        }
147
148        // console.log('getKapazitaetProduktempfehlung');
149        // console.log(kapazitaetProduktempfehlung);
150        //
151        // console.log('productlist');
152        // console.log(produktliste);
153
154}
155
156/**
157 * Empfohlene Kapazität setzen
158 * Hald: angepasst
159 * @param idx_kapazitaetProduktempfehlung
160 */
161function setKapazitaetProduktempfehlung(idx_kapazitaetProduktempfehlung){
162        empfohleneKapazitaet = kapazitaetProduktempfehlung[idx_kapazitaetProduktempfehlung]
163
164         // console.log('setKapazitaetProduktempfehlung');
165         // console.log(idx_kapazitaetProduktempfehlung);
166         // console.log(empfohleneKapazitaet);
167        //$('#slider_range_all_produktempfehlung').slider('value', idx_kapazitaetProduktempfehlung);
168}
169
170function loadData(znr_1, znr_2, einsatzGebiet) {
171
172        var data = null;
173        var params = {
174                index1: znr_1,
175                index2: znr_2,
176                einsatzGebiet: einsatzGebiet
177        };
178        $.ajax({
179                type: "POST",
180                url: dataUrl,
181                async: false,
182                data: params,
183
184                success: function (result) {
185                    data = result;
186
187                }
188        });
189        return data;
190}
191
192
193
194function formatNumber(val,round) {
195        if (val) {
196                var val2 = toFloat(val.toFixed(round));
197                //console.log(val2);
198                return val2.toLocaleString('de-DE');
199        }
200        return null;
201}
202function toFloat(string) {
203        if (string) {
204                string = string.replace(/,/, '.');
205                return parseFloat(string);
206        }
207        return null;
208}
209
210function berechneDatenSpeicherauslegung(speicherauslegung,input,stromPreis,eegVerguetung) {
211        //console.log('berechneDatenSpeicherauslegung');
212
213        // Einsatzgebiet, wird bei der Ermittlung der Kapazitäten verwendet
214        einsatzGebiet = parseInt(input[0]);
215
216        // Kapazitäten setzen
217        getKapazitaetProduktempfehlung();
218
219        // Der Regler Speicherauslegung wurde geändert
220        speicherauslegung_change = 1;
221        app_all_produktempfehlung.value = kapazitaetProduktempfehlung.indexOf(toFloat(speicherauslegung));
222        //app_all_produktempfehlung.value = 4;
223
224        //console.log('speicherauslegung');
225        //console.log(app_all_produktempfehlung.value);
226
227        var res =  berechneDatenIntern(input,stromPreis,eegVerguetung);
228        return res;
229}
230
231function berechneDaten(input,stromPreis,eegVerguetung) {
232        // Der Regler Speicherauslegung wurde nicht geändert
233        speicherauslegung_change = 0;
234
235        return berechneDatenIntern(input,stromPreis,eegVerguetung);
236}
237
238function berechneDatenIntern(input,stromPreis,eegVerguetung) {
239
240
241        // Einsatzgebiet, wird bei der Ermittlung der Kapazitäten verwendet
242        einsatzGebiet = parseInt(input[0]);
243
244        // Kapazitäten setzen
245        getKapazitaetProduktempfehlung();
246        //input = [ 1, 2, 0, 15, 4500, 0, 1, 1, 0 ];
247        //input = [ 1, 10, 0, 15, 4000, 0, 1, 1, 0 ];
248
249        // console.log('preis');
250        // console.log(stromPreis);
251        // console.log(eegVerguetung);
252
253        //p_ac2g = 0.08;
254        //p_g2ac = 0.3;
255
256
257        //console.log(input);
258        //console.log(eegVerguetung);
259
260        var numStromPreis = toFloat(stromPreis);
261        var numEeg = toFloat(eegVerguetung);
262        // console.log(numStromPreis);
263        // console.log(numEeg);
264
265        // EEG Vergütung in €/kWh
266        p_ac2g = numEeg/100;
267        // Strombezugspreis in €/kWh
268        p_g2ac = numStromPreis/100;
269
270        // console.log('strompreis');
271        // console.log(p_g2ac);
272        // console.log('vergütung');
273        // console.log(p_ac2g);
274        //
275        // console.log('input');
276
277
278
279        //console.log(input);
280        if (einsatzGebiet == 1) {
281                if (input[5] == null) {
282                        input[5] = 0;
283                }
284                if (input[6] == null) {
285                        input[6] = 1;
286                }
287                if (input[7] == null) {
288                        input[7] = 1;
289                }
290                if (input[8] == null) {
291                        input[8] = 0;
292                }
293
294                // EFH
295                /*
296                Aufbau Inputvalues aus dem Formular
297                var inputValues = [
298                    Typ (1),
299                    Photovoltaikleistung ,
300                    Dachausrichtung ,
301                    Dachneigung,
302                    Stromverbrauch,
303                    Zurückgelegte Strecke des Elektroautos,
304                    Ladezeit des Elektroautos (1-tagsüber,2-abends) ,
305                    Solares Laden des Elektroautos (1-nein,2-ja),
306                    Stromverbrauch der Wärmepumpe ];
307                */
308                // Objekte mit den Übergabewerten befüllen, werden für die Berechnung benötigt
309                app_efh_pv.value = parseInt(input[1]);
310                app_all_dachausrichtung.value = parseInt(input[2]);
311                app_all_dachneigung.value = parseInt(input[3]);
312                app_efh_stromverbrauch.value = parseInt(input[4]);
313                app_efh_elektroauto.value = parseInt(input[5]);
314                app_efh_ladezeit_auto.value = parseInt(input[6]);
315                app_efh_solares_laden_auto.value = parseInt(input[7]);
316                app_efh_waermepumpe.value = parseInt(input[8]);
317
318        }
319        else {
320                // MGL
321                /*
322                Aufbau Inputvalues aus dem Formular
323                var inputValues = [
324                    Typ (2-4),
325                    Photovoltaikleistung ,
326                    Dachausrichtung ,
327                    Dachneigung,
328                    Stromverbrauch,
329                    Anzahl der Elektroautoladepunkte
330                ];*/
331                app_mgl_pv.value = parseInt(input[1]);
332                app_all_dachausrichtung.value = parseInt(input[2]);
333                app_all_dachneigung.value = parseInt(input[3]);
334                app_mgl_stromverbrauch.value = parseInt(input[4]);
335                app_mgl_elektroautoladepunkte.value = parseInt(input[5]);
336        }
337
338        for (var i = 0;i<input.length;i++) {
339                input[i] = parseInt(input[i]);
340        }
341
342        //console.log(input);
343
344        //[E, idx_bat] = produktempfehlung(input, '');
345        var resultProduktempfehlung = produktempfehlung(input, '');
346
347        //console.log(resultProduktempfehlung);
348
349
350        E = resultProduktempfehlung[0];
351        idx_bat = resultProduktempfehlung[1];
352
353
354
355        // console.log('erg');
356        // console.log(app_mgl_pv);
357        // console.log('idx_bat');
358        // console.log(idx_bat);
359
360        // Speichertypen ermitteln
361
362        //console.log(produktliste);
363        //console.log(idx_bat);
364
365        row_bat = produktliste[idx_bat];
366
367        //console.log(row_bat);
368        // console.log(produktliste);
369        // console.log('produktliste');
370        // console.log(row_bat);
371
372
373        s1Kaskade = row_bat[12];
374        s2Kaskade = row_bat[13];
375        s3Kaskade = row_bat[14];
376        s4Kaskade = row_bat[15];
377        s5Kaskade = row_bat[16];
378        s7Kaskade = row_bat[18];
379        vartaLinkKaskade = row_bat[27];
380
381        //console.log('s1Kaskade ' + s1Kaskade);
382        // console.log('s2Kaskade ' + s2Kaskade);
383        // console.log('s3Kaskade ' +  s3Kaskade);
384        // console.log('s4Kaskade ' +  s4Kaskade);
385        // console.log('s5Kaskade ' +  s5Kaskade);
386        //
387
388
389
390
391        // Erklärung des Ergebnisses
392        /**
393         C_save: 2053.1988032639997 - Kosteneinsparung durch Netzeinspeisung und vermiedenen Netzbezug
394         EM_pvbsv: 6.2 - Vermiedene CO2-Emissionen
395         E_ac2bs: 2525.5545392 - Batterieladung
396         E_ac2g: 9164.2350408 - Netzeinspeisung
397         E_bs2ac: 2090.24158 - Batterieentladung
398         E_g2ac: 2599.8 - Netzbezug
399         E_g2ac_save: 4400.200000000001 - Vermiedener Strombezug aus dem Netz
400         E_l: 7000 - Energie elektrische Verbraucher ???
401         E_pvs: 13999.748 - Energie PV-System ???
402         E_pvs2l: 2309.95842 - Direktverbrauch/Direktversorgung
403         F_solar: 2993 - Solarelektrisch zurückgelegte Strecke des Elektroautos
404         a: 63 - Autarkiegrad
405         a_bs2ac: 30 - Batterieentladung
406         a_g2ac: 37 - Netzbezug
407         a_pvbs2ea: 59.86 - PV-Batteriesystem zu Elektroauto
408         a_pvs2l: 33 - Direktversorgung
409         e: 35 - Eigenverbrauchsanteil
410         e_ac2bs: 18 - Batterieladung
411         e_ac2g: 65 - Netzeinspeisung
412         e_pvs2l: 17 - Direktverbrauch
413
414         */
415
416        var kapView = empfohleneKapazitaet;
417        if (speicherauslegung_change == 1) {
418                kapView = null;
419        }
420
421        capacityNotSupported = 0;
422        // console.log('kapView');
423
424
425        if (storageSystemSet == 'pulseNeo6') {
426
427                var kapCheck = kapView;
428
429                if (!kapCheck )
430                        kapCheck = $('#storageLayout').val();
431
432                // console.log('hier');
433                // console.log(kapView);
434                // console.log(storageSystemSet);
435                // console.log(kapCheck);
436
437                if (kapCheck > 35.4) {
438                        s1Kaskade = 0;
439                        s2Kaskade = 0;
440                        s3Kaskade = 0;
441                        s4Kaskade = 0;
442                        s5Kaskade = 0;
443                        s7Kaskade = 0;
444                        vartaLinkKaskade = 0;
445                        capacityNotSupported = 1;
446                }
447        }
448
449        var monthValues =  {
450                M_pvs2l: E.M_pvs2l,
451                M_ac2bs: E.M_ac2bs,
452                M_bs2ac: E.M_bs2ac,
453                M_ac2g: E.M_ac2g,
454                M_g2ac: E.M_g2ac,
455                M_pvs: E.M_pvs,
456                M_l: E.M_l
457        };
458
459        var dataValues = [
460                {
461                        name: "DataValueSpeicherauslegung",
462                        value: formatNumber(kapView,1)
463                },
464                {
465                       name: "DataValueJährlicheErsparnis",
466                       value: formatNumber(E.C_save,0) + " €/" + lblyear
467                },
468                {
469                        name: "DataValueErsparnisNetzbezug",
470                        value: formatNumber(E.E_g2ac_save,0) + " kWh/" + lblyear
471                },
472                {
473                        name: "DataValueCO2Ersparnis",
474                        value: formatNumber(E.EM_pvbsv,1) + " t/" + lblyear
475                },
476                {
477                        name: "DataValueGrueneKm",
478                        value: formatNumber(E.F_solar,0) + " km/" + lblyear
479                }
480        ];
481
482        var result = {
483                monthData: monthValues,
484                productData: [
485
486                        {
487                                name: "ProductVartaPulse3",
488                                value: s1Kaskade
489                        },
490                        {
491                                name: "ProductVartaPulse6",
492                                value: s2Kaskade
493                        },
494                        {
495                                name: "ProductVartaElement6",
496                                value: s3Kaskade
497                        },
498                        {
499                                name: "ProductVartaElement9",
500                                value: s4Kaskade
501                        },
502                        {
503                                name: "ProductVartaElement12",
504                                value: s5Kaskade
505                        },
506                        {
507                                name: "ProductVartaElement18",
508                                value: s7Kaskade
509                        },
510                        {
511                                name: "ProductVartaLink",
512                                value: vartaLinkKaskade
513                        },
514                        {
515                                name: "CapacityNotSupported",
516                                value: capacityNotSupported
517                        }
518                ],
519                dataValues: dataValues,
520                chartData: [
521                        {
522                                chart: "ChartEigenverbrauchsanteil",
523                                total: "" + formatNumber(E.e,0) + "%",
524                                data: {
525                                        labels: [lbl_direct_consumption + " " + formatNumber(E.e_pvs2l,0) + " % (" + formatNumber(E.E_pvs2l,0) + " kWh/"+ lblyear + ")", lbl_battery_charge + " " + formatNumber(E.e_ac2bs,0) + " % (" + formatNumber(E.E_ac2bs,0) + " kWh/"+ lblyear + ")", lbl_grid_feed + " " + formatNumber(E.e_ac2g,0) + " % (" + formatNumber(E.E_ac2g,0) + " kWh/"+ lblyear + ")"],
526                                        datasets: [
527                                                {
528                                                        label: "Dataset",
529                                                        data: [formatNumber(E.e_pvs2l,0), formatNumber(E.e_ac2bs,0), formatNumber(E.e_ac2g,0) ],
530                                                        backgroundColor: [ "rgba(255, 235, 153, 1)", "rgba(255, 204, 1, 1)", "rgba(186, 186, 186, 1)" ]
531                                                }
532                                        ]
533                                }
534                        },
535                        {
536                                chart: "ChartAutarkiegrad",
537                                total: "" + formatNumber(E.a,0) + "%",
538                                data: {
539                                        labels: [lbl_direct_supply + " " + formatNumber(E.a_pvs2l,0) + " % (" + formatNumber(E.E_pvs2l,0) + " kWh/"+ lblyear + ")", lbl_battery_discharge + " " + formatNumber(E.a_bs2ac,0) + " % (" + formatNumber(E.E_bs2ac,0) + " kWh/"+ lblyear + ")", lbl_grid_consumption + " " + formatNumber(E.a_g2ac,0) + " % (" + formatNumber(E.E_g2ac,0) + " kWh/"+ lblyear + ")"],
540                                        datasets: [
541                                                {
542                                                        label: "Dataset",
543                                                        data: [formatNumber(E.a_pvs2l,0), formatNumber(E.a_bs2ac,0), formatNumber(E.a_g2ac,0) ],
544                                                        backgroundColor: [ "rgba(127, 160, 197, 1)", "rgba(0, 66, 139, 1)", "rgba(186, 186, 186, 1)" ]
545                                                }
546                                        ]
547                                }
548                        }
549                ]
550        }
551
552        var res = {
553                success: true,
554                message: '',
555                result: result
556        }
557
558        //console.log(E);
559        //console.log(res);
560
561        return res;
562}
563
564
565function createPdf() {
566        document.getElementById('calculator').action = createPdfUrl;
567        document.getElementById('calculator').submit();
568}
569function sendForm() {
570        document.getElementById('calculator').action = sendUrl;
571        //document.getElementById('calculator').submit();
572}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.