NEWS
Status vom Kostal Wechselrichter auslesen?
-
@Homoran Hast DU noch einen Tipp, wie ich möglichst schnell als Neuling eine ansehende WIS zum SMA.en und den einzelnen WR Daten bekomme, so ähnlich wie Du eine hast oder wie SIe damals der vater des SMA Adapters erstellt hatte...
@Atlantis Importiere mal diesen View:
Die Grafik unten ist mit Grafana gemacht. Im Original von MArco damals mit dem Flot Adapter. Das Widget kannst du entfernen. Wie auch alle anderen die du nicht benötigst.
Du musst natürlich die Datenpunkte alle anpassen.
-
@Atlantis Das hatten wir doch schon!
https://forum.iobroker.net/topic/8690/status-vom-kostal-wechselrichter-auslesen/205Was fehlt dir denn an Infos?
-
@Atlantis Importiere mal diesen View:
Die Grafik unten ist mit Grafana gemacht. Im Original von MArco damals mit dem Flot Adapter. Das Widget kannst du entfernen. Wie auch alle anderen die du nicht benötigst.
Du musst natürlich die Datenpunkte alle anpassen.
@wendy2702
Danke Dir für die VIS. Werde morgen mal in Ruhe versuichen die Datenpunkte zuzuordnen und zu verstehen, was da wie gemacht wurde. -
@Atlantis sagte in Status vom Kostal Wechselrichter auslesen?:
der blaue markierte Trefferbereich im Fenster links daneben bzw im (full match) ist mein Treffer
das ist auch Korrekt, der blaue Bereich wird durch das RegEx gefunden.
Aber das gewünschte Ergebnis ist nur das, was innerhalb der runden Klammern ist!
und das ist nur ein deil des full matches, nämlich die Group. Davon kann man auch mehrere auf einmal suchen lassen, die du dann mit Nummer =0, 1, 2.... aus dem Ergebnis filtern kannstMoin,
ich habe es nach Wochen erstmals geschafft meinen KOSTAL Piko 4.2 BA erfolgreich mit dem Portal zu verbinden. (Ging nur über den Webserver und nicht direkt am WR)Jetzt habe ich alle Daten im IOB sowie im KOSTAL Portal.
-
Leider bekomme ich keine Daten bei Dunkelheit, da sich der WR Ausschaltet und keine Daten mehr ausspuckt.
Kann ich das irgendwie ändern? -
Es steht im Log in Dauerschleife „verifiziere IP“ / Keine API vorhanden.
Hab schon die Beiträge in diesem Thread gelesen, jedoch verstehe ich die Lösung nicht.
Der Piko ist von ~2015/2016 und hat noch kein Update bekommen.
Wäre schön wenn mir jemand helfen könnte
-
-
Moin,
ich habe es nach Wochen erstmals geschafft meinen KOSTAL Piko 4.2 BA erfolgreich mit dem Portal zu verbinden. (Ging nur über den Webserver und nicht direkt am WR)Jetzt habe ich alle Daten im IOB sowie im KOSTAL Portal.
-
Leider bekomme ich keine Daten bei Dunkelheit, da sich der WR Ausschaltet und keine Daten mehr ausspuckt.
Kann ich das irgendwie ändern? -
Es steht im Log in Dauerschleife „verifiziere IP“ / Keine API vorhanden.
Hab schon die Beiträge in diesem Thread gelesen, jedoch verstehe ich die Lösung nicht.
Der Piko ist von ~2015/2016 und hat noch kein Update bekommen.
Wäre schön wenn mir jemand helfen könnte
@Maas-Meister Hi,
Hast Du eine Batterie am WR? -
-
@Maas-Meister Hi,
Hast Du eine Batterie am WR?Nein.
Laut support von Kostal ist ein auslesen wenn der WR AUS ist nicht möglich. Sehr sehr schade. -
Ich benutze folgendes Script:
/* Photovoltaik: Piko 5.5 Anlage Diese Script stammt aus dem Homematic Forum. Von wem weiß ich nicht mehr. Lief bei mir als ccu.io.Script einwandfrei. Dieses Script habe ich nun auf iobroker umgeschrieben. @bahnuhr 02.01.2017 Dieter Müller */ //Variaben var idaktuell = 'javascript.0.Status.Photovoltaik.Leistung_aktuell'; var idTag = 'javascript.0.Status.Photovoltaik.Tagesleistung'; var idall = 'javascript.0.Status.Photovoltaik.Leistung_gesamt'; var idP1 = 'javascript.0.Status.Photovoltaik.Leistung_Strang1'; var idP2 = 'javascript.0.Status.Photovoltaik.Leistung_Strang2'; var NameAnlage = 'xxx'; // Nutzername der Photovoltaik-Anlage var PassAnlage = 'x'; // Password der Photovoltaik-Anlage var IPAnlage = '192.168.xxx.xx'; // IP der Photovoltaik-Anlage var logging = false; function Piko() { var cheerio = require('cheerio'); var request = require('request'); if (logging) log("Piko 5.5 auslesen"); //http://SN-Login:WGrZMkb@192.168.243.75 request('http://' + NameAnlage + ':' + PassAnlage +'@' + IPAnlage, function (error, response, body) { $ = cheerio.load(body); var d = $("td"); var pwr = parseFloat(d.eq(14).text().trim()); // Energie aktuell in W var day = parseFloat(d.eq(26).text().trim()); // Tagesenergie in kWh var all = parseFloat(d.eq(17).text().trim()); // Gesamtenergie in kWh var v1 = d.eq(56).text().trim(); // PV Generator Nr. 1 - Spannung in V var i1 = d.eq(65).text().trim(); // PV Generator Nr. 1 - Strom in A var p1 = parseInt(v1 * i1); var v2 = d.eq(82).text().trim(); // PV Generator Nr. 1 - Spannung in V var i2 = d.eq(91).text().trim(); // PV Generator Nr. 1 - Strom in A var p2 = parseInt(v2 * i2); if (isNaN(pwr)) pwr = 0; if (isNaN(p1)) p1 = 0; if (isNaN(p2)) p2 = 0; if (logging) log("Leistung aktuell= " + pwr); if (logging) log("Tagesleistung= " + day); if (logging) log("Leistung gesamt= " + all); if (logging) log("Leistung Strang 1= " + p1); if (logging) log("Leistung Strang 2= " + p2); setState(idaktuell, pwr); setState(idTag, day); setState(idall, all); setState(idP1, p1); setState(idP2, p2); }); } schedule("2,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () { log ("Auslöser: Schedule"); Piko(); }); schedule("3 0 * * *", function () { // Variablen löschen um 00:03 Uhr setState('javascript.0.Status.Photovoltaik.Tagesleistung', 0); });-
Variablen manuell anlegen
-
benutzernamen, password, ip anpassen
-
cheerio unter js eintragen.
dann klappts.
mfg
Dieter
@bahnuhr Hallo! Gibt es eventuell ein neues Skript für die Piko mit älterem Bios? Ich bekommen hier die Fehlermeldung "javascript.0 2021-07-04 19:52:00.090 error (863) Error in request callback: TypeError: d.eq is not a function"
Über eine Hilfe würde ich mich wirklich sehr freuen.
-
-
@erwin890 bitte ganze Fehlermeldung in code tags posten.
da Fehlen noch Infos
-
@homoran Hallo - eigentlich ist das alles, was der IO Broker im LOG anzeigt.... was soll ich machen ?
@erwin890 sagte in Status vom Kostal Wechselrichter auslesen?:
@homoran Hallo - eigentlich ist das alles, was der IO Broker im LOG anzeigt.... was soll ich machen ?
da müsste noch ein Hinweis auf die codestelle sein.
bist du sicher dass das Script für den alten piko ist?
da war doch der Parser besser geeignet.ist schon soooo lange her
die Variablen hast du aber angepasst?
-
@bahnuhr Hallo! Gibt es eventuell ein neues Skript für die Piko mit älterem Bios? Ich bekommen hier die Fehlermeldung "javascript.0 2021-07-04 19:52:00.090 error (863) Error in request callback: TypeError: d.eq is not a function"
Über eine Hilfe würde ich mich wirklich sehr freuen.
@erwin890 sagte in Status vom Kostal Wechselrichter auslesen?:
@bahnuhr Hallo! Gibt es eventuell ein neues Skript für die Piko mit älterem Bios? Ich bekommen hier die Fehlermeldung "javascript.0 2021-07-04 19:52:00.090 error (863) Error in request callback: TypeError: d.eq is not a function"
Über eine Hilfe würde ich mich wirklich sehr freuen.
Das ist das Script was momentan bei mir läuft.
// Photovoltaik: Piko 5.5 Anlage (alte Firmware) // Danke an homoran für den regex // @bahnuhr; 03/2019 Dieter Müller //Variaben var idaktuell = 'javascript.0.Geräte.Photovoltaik.Leistung_aktuell'; var idTag = 'javascript.0.Geräte.Photovoltaik.Tagesleistung'; var idall = 'javascript.0.Geräte.Photovoltaik.Leistung_gesamt'; var idP1 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang1'; var idP2 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang2'; var NameAnlage = 'xxx'; // Nutzername der Photovoltaik-Anlage var PassAnlage = 'xxx'; // Password der Photovoltaik-Anlage var IPAnlage = '192.168.xxx.xxx'; // IP der Photovoltaik-Anlage var logging = false; var request = require('request'); function Piko() { log("Piko 5.5 auslesen"); var results = []; request('http://' + NameAnlage + ':' + PassAnlage +'@' + IPAnlage, function (error, response, body) { var d = body.toString(); if (logging) log (d); var reg = /#FFFFFF">[^\d]+([^<]+)/g var z = reg.exec(d); while(z != null) { if (isNaN(z[1])) { if (logging) log("keine Zahl= "+ z[1]); z[1] = 0; } else { if (logging) log("Zahl= "+ z[1]); parseFloat(z[1]); } results[results.length] = z[1]; z = reg.exec(d); } if (logging) log("results= "+ results); // Werte zuordnen var pwr = results[0]; // Energie aktuell in W var day = results[2]; // Tagesenergie in kWh var all = results[1]; // Gesamtenergie in kWh var v1 = results[3]; // PV Generator Nr. 1 - Spannung in V var i1 = results[5]; // PV Generator Nr. 1 - Strom in A var p1 = parseInt(v1 * i1); var v2 = results[7]; // PV Generator Nr. 2 - Spannung in V var i2 = results[9]; // PV Generator Nr. 2 - Strom in A var p2 = parseInt(v2 * i2); if (logging) log("Leistung aktuell= " + pwr + " W"); if (logging) log("Tagesleistung= " + day + " kWh"); if (logging) log("Leistung gesamt= " + all + " kWh"); if (logging) log("Leistung Strang 1= " + p1 + " W"); if (logging) log("Leistung Strang 2= " + p2 + " W"); setState(idaktuell, parseFloat(pwr)); setState(idTag, parseFloat(day)); setState(idall, parseFloat(all)); setState(idP1, parseFloat(p1)); setState(idP2, parseFloat(p2)); }); } schedule("2,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () { log ("Auslöser: Schedule"); Piko(); }); schedule("3 0 * * *", function () { // Variablen löschen um 00:03 Uhr setState('javascript.0.Geräte.Photovoltaik.Tagesleistung', 0); });Variablen manuell anlegen.
mfg
Dieter -
@erwin890 sagte in Status vom Kostal Wechselrichter auslesen?:
@bahnuhr Hallo! Gibt es eventuell ein neues Skript für die Piko mit älterem Bios? Ich bekommen hier die Fehlermeldung "javascript.0 2021-07-04 19:52:00.090 error (863) Error in request callback: TypeError: d.eq is not a function"
Über eine Hilfe würde ich mich wirklich sehr freuen.
Das ist das Script was momentan bei mir läuft.
// Photovoltaik: Piko 5.5 Anlage (alte Firmware) // Danke an homoran für den regex // @bahnuhr; 03/2019 Dieter Müller //Variaben var idaktuell = 'javascript.0.Geräte.Photovoltaik.Leistung_aktuell'; var idTag = 'javascript.0.Geräte.Photovoltaik.Tagesleistung'; var idall = 'javascript.0.Geräte.Photovoltaik.Leistung_gesamt'; var idP1 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang1'; var idP2 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang2'; var NameAnlage = 'xxx'; // Nutzername der Photovoltaik-Anlage var PassAnlage = 'xxx'; // Password der Photovoltaik-Anlage var IPAnlage = '192.168.xxx.xxx'; // IP der Photovoltaik-Anlage var logging = false; var request = require('request'); function Piko() { log("Piko 5.5 auslesen"); var results = []; request('http://' + NameAnlage + ':' + PassAnlage +'@' + IPAnlage, function (error, response, body) { var d = body.toString(); if (logging) log (d); var reg = /#FFFFFF">[^\d]+([^<]+)/g var z = reg.exec(d); while(z != null) { if (isNaN(z[1])) { if (logging) log("keine Zahl= "+ z[1]); z[1] = 0; } else { if (logging) log("Zahl= "+ z[1]); parseFloat(z[1]); } results[results.length] = z[1]; z = reg.exec(d); } if (logging) log("results= "+ results); // Werte zuordnen var pwr = results[0]; // Energie aktuell in W var day = results[2]; // Tagesenergie in kWh var all = results[1]; // Gesamtenergie in kWh var v1 = results[3]; // PV Generator Nr. 1 - Spannung in V var i1 = results[5]; // PV Generator Nr. 1 - Strom in A var p1 = parseInt(v1 * i1); var v2 = results[7]; // PV Generator Nr. 2 - Spannung in V var i2 = results[9]; // PV Generator Nr. 2 - Strom in A var p2 = parseInt(v2 * i2); if (logging) log("Leistung aktuell= " + pwr + " W"); if (logging) log("Tagesleistung= " + day + " kWh"); if (logging) log("Leistung gesamt= " + all + " kWh"); if (logging) log("Leistung Strang 1= " + p1 + " W"); if (logging) log("Leistung Strang 2= " + p2 + " W"); setState(idaktuell, parseFloat(pwr)); setState(idTag, parseFloat(day)); setState(idall, parseFloat(all)); setState(idP1, parseFloat(p1)); setState(idP2, parseFloat(p2)); }); } schedule("2,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () { log ("Auslöser: Schedule"); Piko(); }); schedule("3 0 * * *", function () { // Variablen löschen um 00:03 Uhr setState('javascript.0.Geräte.Photovoltaik.Tagesleistung', 0); });Variablen manuell anlegen.
mfg
Dieter -
@erwin890 sagte in Status vom Kostal Wechselrichter auslesen?:
Die müsste auch "Result[2]" sein,
@bahnuhr sagte in Status vom Kostal Wechselrichter auslesen?:
var day = results[2]; // Tagesenergie in kWh
hast du den dp auch genau so angelegt?
@bahnuhr sagte in Status vom Kostal Wechselrichter auslesen?:
var idTag = 'javascript.0.Geräte.Photovoltaik.Tagesleistung';
wenn ja, was steht im log?
-
@erwin890 sagte in Status vom Kostal Wechselrichter auslesen?:
Die müsste auch "Result[2]" sein,
@bahnuhr sagte in Status vom Kostal Wechselrichter auslesen?:
var day = results[2]; // Tagesenergie in kWh
hast du den dp auch genau so angelegt?
@bahnuhr sagte in Status vom Kostal Wechselrichter auslesen?:
var idTag = 'javascript.0.Geräte.Photovoltaik.Tagesleistung';
wenn ja, was steht im log?
-
Hab's gefunden, da war noch eine geschweifte Klammer und ein Semikolon zu viel.
Dann gab es noch den ein oder anderen kleinen Fehler.
Habe jetzt alles korrigiert. Bei mir läuft es jetzt so:
PS auch bei mir lief ein Skript noch, das gar nicht mehr existierte.
restart der js-Instanz hat geholfen@homoran
Hallo, ich habe einen Piko 20 mit dem KSEM in Einsatz. Die Firmware vom Piko ist die 6.11. Dein Script läuft einwandfrei. Leider fehlt dort der String 3. Kannst du diese Datenpunkte noch Nachpflegen? Ich verzweifele so langsam an dem Kostal. Die Kombination KSEM und Piko verhindert das saubere Auslesen vom Piko. Alleine dein Script liest die Daten aus. -
@homoran
Hallo, ich habe einen Piko 20 mit dem KSEM in Einsatz. Die Firmware vom Piko ist die 6.11. Dein Script läuft einwandfrei. Leider fehlt dort der String 3. Kannst du diese Datenpunkte noch Nachpflegen? Ich verzweifele so langsam an dem Kostal. Die Kombination KSEM und Piko verhindert das saubere Auslesen vom Piko. Alleine dein Script liest die Daten aus.@martybr sagte in Status vom Kostal Wechselrichter auslesen?:
ich habe einen Piko 20 mit dem KSEM in Einsatz
ich leider nicht ;-)
@martybr sagte in Status vom Kostal Wechselrichter auslesen?:
Leider fehlt dort der String 3. Kannst du diese Datenpunkte noch Nachpflegen?
dann bräuchte ich aber die Daten, die dein Piko liefert
-
@martybr sagte in Status vom Kostal Wechselrichter auslesen?:
ich habe einen Piko 20 mit dem KSEM in Einsatz
ich leider nicht ;-)
@martybr sagte in Status vom Kostal Wechselrichter auslesen?:
Leider fehlt dort der String 3. Kannst du diese Datenpunkte noch Nachpflegen?
dann bräuchte ich aber die Daten, die dein Piko liefert
-
@martybr hier in code tags posten
-
@homoran
Sorry, die Webseite? Ich habe mal die Webseite gespeichert, vermute aber dass das nicht gemeint war. Kannst du mir noch einen Tipp geben?[PIKO 20 __ Piko_20.html](/assets/uploads/files/1633352539531-piko-20-__-piko_20.html) [kbApp-1.1.6.js](/assets/uploads/files/1633352574322-kbapp-1.1.6.js) [kbApp-1.1.6.css](/assets/uploads/files/1633352587592-kbapp-1.1.6.css)<!DOCTYPE html> <html ng-app="kbApp" ng-controller="kbAppCtrl"> <head> <link rel="icon" href="/assets/favicon.ico"> <title ng-bind="inverterTypeName + ' <> ' + inverterName"></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <!--Deaktivate Chaching to avoid problems--> <meta http-equiv="cache-control: private, max-age=0, no-cache" content="no-store" /> <meta http-equiv="expires" content="0" /> <meta http-equiv="pragma" content="no-cache" /> <!-- compiled CSS --> <link rel="stylesheet" type="text/css" href="assets/kbApp-1.1.6.css"/> </head> <body> <!-- Loading --> <div kb-Hide-After-Init class = "loader" style="z-index: 3000"> <div class="loader-inner-big"> <i class="icon-spinner animate-spin"></i> <div id="errorMsg"></div> </div> </div> <!-- Page --> <div class="kbContainer"> <div class="kbBanner"> <div class="kbLogoPrim"></div> <div class="kbLogoSec"></div> <div class="kbLanguageSelectBar" ng-controller="languageSelCtrl"> <div ng-repeat="language in languages"> <div kb-language-select-item></div> </div> </div> </div> <div class="kbPage"> <div class="kbDivider"></div> <div class="kbNav" ng-controller="navigationCtrl"> <kb-navigation nodes="menu"></kb-navigation> <div class="kbLogoSlogan"></div> </div> <div class="kbContent"> <div class="kbContentHeading"> <div class="kbInfo"> <div class="kbInverter"> <span class="inverterType"> {{inverterTypeName}}</span> <span class="inverterName"> ({{inverterName}})</span> </div> <div class="kbUserAndDate"> <div><i class="icon-calendar"><span>{{appDate | date:'short'}}</span></i></div> <div><i class="icon-user"><span>{{appUserTranslationId | translate}}</span></i></div> </div> </div> <div class="kbNavTitle" ng-controller="navigationCtrl"> <kb-navigation-breadcrumb breadcrumbs="breadcrumbs"></kb-navigation-breadcrumb> </div> </div> <div class="kbContentView"> <div ng-show="appPageInfo.loadingInProgress" ng-cloak class = "loader" style="z-index: 2000"> <div class="loader-inner"> <i class="icon-spinner animate-spin"></i> </div> </div> <div ng-show="appPageInfo.loadingFailed" ng-cloak class = "loader" style="z-index: 2000"> <div class="loader-inner"> <i class="icon-error"></i> </div> </div> <div ng-show="appPageInfo.submitInProgress" ng-cloak class = "loader-transparent" style="z-index: 2000"> <div class="loader-inner"> <i class="icon-spinner animate-spin"></i> </div> </div> <div class="kbView" ng-view></div> <div class="kbViewInfo" ng-show="appPageInfo.submitSuccessful || appPageInfo.submitFailed"> <div ng-show="appPageInfo.submitSuccessful"> <i class="icon-ok info-ok">{{appPageInfo.displayMsgId | translate}}</i> </div> <div ng-show="appPageInfo.submitFailed"> <i class="icon-error info-error">{{appPageInfo.displayMsgId | translate}}</i> </div> </div> </div> </div> </div> <div class="kbFooter"> <div class="kbWebversion">v1.1.6</div> </div> </div> <!-- compiled JavaScript --> <script type="text/javascript" src="assets/kbApp-1.1.6.js"></script> </body> </html> -
@homoran
Sorry, die Webseite? Ich habe mal die Webseite gespeichert, vermute aber dass das nicht gemeint war. Kannst du mir noch einen Tipp geben?[PIKO 20 __ Piko_20.html](/assets/uploads/files/1633352539531-piko-20-__-piko_20.html) [kbApp-1.1.6.js](/assets/uploads/files/1633352574322-kbapp-1.1.6.js) [kbApp-1.1.6.css](/assets/uploads/files/1633352587592-kbapp-1.1.6.css)<!DOCTYPE html> <html ng-app="kbApp" ng-controller="kbAppCtrl"> <head> <link rel="icon" href="/assets/favicon.ico"> <title ng-bind="inverterTypeName + ' <> ' + inverterName"></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <!--Deaktivate Chaching to avoid problems--> <meta http-equiv="cache-control: private, max-age=0, no-cache" content="no-store" /> <meta http-equiv="expires" content="0" /> <meta http-equiv="pragma" content="no-cache" /> <!-- compiled CSS --> <link rel="stylesheet" type="text/css" href="assets/kbApp-1.1.6.css"/> </head> <body> <!-- Loading --> <div kb-Hide-After-Init class = "loader" style="z-index: 3000"> <div class="loader-inner-big"> <i class="icon-spinner animate-spin"></i> <div id="errorMsg"></div> </div> </div> <!-- Page --> <div class="kbContainer"> <div class="kbBanner"> <div class="kbLogoPrim"></div> <div class="kbLogoSec"></div> <div class="kbLanguageSelectBar" ng-controller="languageSelCtrl"> <div ng-repeat="language in languages"> <div kb-language-select-item></div> </div> </div> </div> <div class="kbPage"> <div class="kbDivider"></div> <div class="kbNav" ng-controller="navigationCtrl"> <kb-navigation nodes="menu"></kb-navigation> <div class="kbLogoSlogan"></div> </div> <div class="kbContent"> <div class="kbContentHeading"> <div class="kbInfo"> <div class="kbInverter"> <span class="inverterType"> {{inverterTypeName}}</span> <span class="inverterName"> ({{inverterName}})</span> </div> <div class="kbUserAndDate"> <div><i class="icon-calendar"><span>{{appDate | date:'short'}}</span></i></div> <div><i class="icon-user"><span>{{appUserTranslationId | translate}}</span></i></div> </div> </div> <div class="kbNavTitle" ng-controller="navigationCtrl"> <kb-navigation-breadcrumb breadcrumbs="breadcrumbs"></kb-navigation-breadcrumb> </div> </div> <div class="kbContentView"> <div ng-show="appPageInfo.loadingInProgress" ng-cloak class = "loader" style="z-index: 2000"> <div class="loader-inner"> <i class="icon-spinner animate-spin"></i> </div> </div> <div ng-show="appPageInfo.loadingFailed" ng-cloak class = "loader" style="z-index: 2000"> <div class="loader-inner"> <i class="icon-error"></i> </div> </div> <div ng-show="appPageInfo.submitInProgress" ng-cloak class = "loader-transparent" style="z-index: 2000"> <div class="loader-inner"> <i class="icon-spinner animate-spin"></i> </div> </div> <div class="kbView" ng-view></div> <div class="kbViewInfo" ng-show="appPageInfo.submitSuccessful || appPageInfo.submitFailed"> <div ng-show="appPageInfo.submitSuccessful"> <i class="icon-ok info-ok">{{appPageInfo.displayMsgId | translate}}</i> </div> <div ng-show="appPageInfo.submitFailed"> <i class="icon-error info-error">{{appPageInfo.displayMsgId | translate}}</i> </div> </div> </div> </div> </div> <div class="kbFooter"> <div class="kbWebversion">v1.1.6</div> </div> </div> <!-- compiled JavaScript --> <script type="text/javascript" src="assets/kbApp-1.1.6.js"></script> </body> </html>@Homoran
Hier mal die Seite mit den Strings:<!DOCTYPE html> <html ng-app="kbApp" ng-controller="kbAppCtrl"> <head> <link rel="icon" href="/assets/favicon.ico"> <title ng-bind="inverterTypeName + ' <> ' + inverterName"></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <!--Deaktivate Chaching to avoid problems--> <meta http-equiv="cache-control: private, max-age=0, no-cache" content="no-store" /> <meta http-equiv="expires" content="0" /> <meta http-equiv="pragma" content="no-cache" /> <!-- compiled CSS --> <link rel="stylesheet" type="text/css" href="assets/kbApp-1.1.6.css"/> </head> <body> <!-- Loading --> <div kb-Hide-After-Init class = "loader" style="z-index: 3000"> <div class="loader-inner-big"> <i class="icon-spinner animate-spin"></i> <div id="errorMsg"></div> </div> </div> <!-- Page --> <div class="kbContainer"> <div class="kbBanner"> <div class="kbLogoPrim"></div> <div class="kbLogoSec"></div> <div class="kbLanguageSelectBar" ng-controller="languageSelCtrl"> <div ng-repeat="language in languages"> <div kb-language-select-item></div> </div> </div> </div> <div class="kbPage"> <div class="kbDivider"></div> <div class="kbNav" ng-controller="navigationCtrl"> <kb-navigation nodes="menu"></kb-navigation> <div class="kbLogoSlogan"></div> </div> <div class="kbContent"> <div class="kbContentHeading"> <div class="kbInfo"> <div class="kbInverter"> <span class="inverterType"> {{inverterTypeName}}</span> <span class="inverterName"> ({{inverterName}})</span> </div> <div class="kbUserAndDate"> <div><i class="icon-calendar"><span>{{appDate | date:'short'}}</span></i></div> <div><i class="icon-user"><span>{{appUserTranslationId | translate}}</span></i></div> </div> </div> <div class="kbNavTitle" ng-controller="navigationCtrl"> <kb-navigation-breadcrumb breadcrumbs="breadcrumbs"></kb-navigation-breadcrumb> </div> </div> <div class="kbContentView"> <div ng-show="appPageInfo.loadingInProgress" ng-cloak class = "loader" style="z-index: 2000"> <div class="loader-inner"> <i class="icon-spinner animate-spin"></i> </div> </div> <div ng-show="appPageInfo.loadingFailed" ng-cloak class = "loader" style="z-index: 2000"> <div class="loader-inner"> <i class="icon-error"></i> </div> </div> <div ng-show="appPageInfo.submitInProgress" ng-cloak class = "loader-transparent" style="z-index: 2000"> <div class="loader-inner"> <i class="icon-spinner animate-spin"></i> </div> </div> <div class="kbView" ng-view></div> <div class="kbViewInfo" ng-show="appPageInfo.submitSuccessful || appPageInfo.submitFailed"> <div ng-show="appPageInfo.submitSuccessful"> <i class="icon-ok info-ok">{{appPageInfo.displayMsgId | translate}}</i> </div> <div ng-show="appPageInfo.submitFailed"> <i class="icon-error info-error">{{appPageInfo.displayMsgId | translate}}</i> </div> </div> </div> </div> </div> <div class="kbFooter"> <div class="kbWebversion">v1.1.6</div> </div> </div> <!-- compiled JavaScript --> <script type="text/javascript" src="assets/kbApp-1.1.6.js"></script> </body> </html>