Gadgeterweiterung für Kostal Piko Wechselrichter

hallo neobox

Grünschnabel
Liebe Forengemeinde,
ich habe für meinen Wechselrichter ( Kostal Piko ) dieses Gadget gefunden. Es liest die Weboberfläche des Wechselrichters aus und schreibt die Daten dann auf den Desktop. Es funktioniert super und ich würde es gerne um eine Funktion erweitern. Ich bin selber kein Programmierer sondern nur ein Googler der dann die codestücke hineinkopiert. Nur dieses mal stosse ich und google an die Grenzen******

Hier das Gadget:
Code:
//Initialisiert das Gadget
function initPIKO() {
    //Seite für die Einstellungen
    System.Gadget.settingsUI = "settings.html";
    //gespeicherte Einstellungen laden
    loadSettings();
    //Daten des Wechselrichters abfragen
    requestData();
}
 
//Daten des Wechselrichters mithilfe der Service-Prozeduren abholen
function requestData() {
    try {        
    new Ajax.Request('http://' + System.Gadget.Settings.readString("address"), {
      method: 'post',
      requestHeaders: {Authorization: 'Basic ' + Base64.encode( System.Gadget.Settings.readString("username") + ':' + System.Gadget.Settings.readString("password") )},
            onSuccess: function(response) {
        var ipos1 = response.responseText.search( 'Gesamtenergie</td>' );
        var teil1 = response.responseText.substr( ipos1 + 18 );
        var start1 = teil1.search( '>' );
        var wert1 = teil1.substring( start1 + 1, teil1.search( '</td>') );
 
        var ipos2 = response.responseText.search( 'Tagesenergie</td>' );
        var teil2 = response.responseText.substr( ipos2 + 17 );
        var start2 = teil2.search( '>' );
        var wert2 = teil2.substring( start2 + 1, teil2.search( '</td>') );
 
        var ipos3 = response.responseText.search( 'aktuell</td>' );
        var teil3 = response.responseText.substr( ipos3 + 12 );
        var start3 = teil3.search( '>' );
        var wert3 = teil3.substring( start3 + 1, teil3.search( '</td>') );
        
              document.getElementById("name").innerHTML = System.Gadget.Settings.readString("name");
              document.getElementById("power").innerHTML = "Current: " + wert3 + " W";
              document.getElementById("dailyYield").innerHTML = "Daily: " + wert2 + " kWh";
              document.getElementById("totalYield").innerHTML = "Total: " + wert1 + " kWh";
            },
            onFailure: function(response) {
              document.getElementById("power").innerHTML = response.status;
            }
    });
    }
    catch(e) {
        failure(); 
    }
    
    
    
    //Methode nach bestimmter Zeitspanne erneut aufrufen
    setTimeout("requestData()", System.Gadget.Settings.readString("interval") * 1000);
}
 
function failure() {
  document.getElementById("totalYield").innerHTML = "Total: Fehler!";
  document.getElementById("dailyYield").innerHTML = "Tag: Fehler!";
  document.getElementById("power").innerHTML = "Aktuell: Fehler!";
}


was ich gerne hätte wäre das einige daten die im script als variablen vorhanden sind dann alle 5 min in eine Datei abgelegt werden.

Die Datei soll min_days_.js heissen und braucht so einen Inhalt :


m[mi++]="21.11.07 13:20:00|258;307;896;239"
m[mi++]="21.11.07 13:15:00|180;214;875;228"
m[mi++]="21.11.07 13:10:00|196;233;860;235"
m[mi++]="21.11.07 13:05:00|187;223;843;235"


Die Angaben sind folgende
m[mi++]= fester Bestandteil
"21.11.07 13:05:00| aktuelles Datum Uhrzeit in Std Min Sek und ein Trennstrich
258;307;896;239" die Variablen Pac Pdc Tagesleistung in Wh (im Script unter Daily).

Diese Daten sollen alle 5 min hinzugefügt werden.
In der Nacht um 23:50 Uhr sollte die Datei dann wieder geleer werden, damit am nächsten Tag wieder neu Begonnen werden kann.

Ich und alle anderen Kostalbenutzer hoffen auf eure Hilfe. Es erspart und einen Logger für mehrerer Hundert Euro. Es Versteht sich natürlich von selber, das das Gadget freeare bleibt!

Danke euch. ;)

hallo neobox
 

Neue Beiträge

Zurück