Abfrage Solarprognose

Ja, habe ich bei der Fehlersuche auch gelesen. Aber irgendwie wollte es nicht.

Hast Du nur einen Standort oder auch Anlage, Wechselrichter und Modulfeld angelegt?

Gruß Heiko

Ich hab von allem nur eines. Standort, Anlage, Wechselricher und Module.

Merkwürdig ich auch - genau so!

Naja, ist ja auch egal - mit ID ist man auf der sicheren Seite :smiley:

Gruß Heiko

Kann mir jemand sagen welcher Wert für den Leistungstemperatur Koeffizient richtig ist bzw. ich wählen soll? Wird gefragt bei den Modulfelder, wird zwar nicht zwingend benötigt aber…

Habe 3 Werte laut Datenblatt:

Temperaturkoeffizient von Voc Tk (Voc): -0,260 %/°C
Temperaturkoeffizient von Isc Tk (Isc): +0,046 %/°C
Temperaturkoeffizient von Pmpp Tk (Pmpp): -0,320 %/°C

Nach meiner Meinung müsste es der Pmpp Tk sein.

Mir ist auch noch nicht ganz klar das mit der Modulausrichtung:

Wenn ich in Modulfeld die 114° eingebe kommt bei mir in der Übersicht Nord-West.

Sollte man hier nicht anstatt zwei Anlagen dann zwei Modulfelder anlegen? Kommt jetzt drauf an was mit Modulfelder gemeint ist, ein einzelnes oder z.B. eine Seite der Dachfläche.

Bin da noch nicht ganz firm, aber bei 2 Modulfeldern hast Du einen Wechselrichter oder 2?

Wahrscheinlich 1 Standort, 1 Anlage, 1 oder 2 WR und auf jedenfall 2 Modulfelder!

Hallo,

ich bekomme beim Ausführen des Scripts immer folgende Fehler:


Notice: Trying to access array offset on value of type null in C:\ProgramData\Symcon\scripts\50724.ips.php on line 36

Notice: Trying to access array offset on value of type null in C:\ProgramData\Symcon\scripts\50724.ips.php on line 36

Notice: Trying to access array offset on value of type null in C:\ProgramData\Symcon\scripts\50724.ips.php on line 36

Notice: Trying to access array offset on value of type null in C:\ProgramData\Symcon\scripts\50724.ips.php on line 36

Notice: Trying to access array offset on value of type null in C:\ProgramData\Symcon\scripts\50724.ips.php on line 36

Notice: Trying to access array offset on value of type null in C:\ProgramData\Symcon\scripts\50724.ips.php on line 36

Notice: Trying to access array offset on value of type null in C:\ProgramData\Symcon\scripts\50724.ips.php on line 36

Notice: Trying to access array offset on value of type null in C:\ProgramData\Symcon\scripts\50724.ips.php on line 36

Notice: Trying to access array offset on value of type null in C:\ProgramData\Symcon\scripts\50724.ips.php on line 36

Notice: Trying to access array offset on value of type null in C:\ProgramData\Symcon\scripts\50724.ips.php on line 36
Abort Processing during exceed of maximal ErrorCount: Trying to access array offset on value of type null
   Error in Script C:\ProgramData\Symcon\scripts\50724.ips.php on Line 36

Mein Script sieht so aus:

<?php
function datenholen($typ,$start,$end)
{
$SP_TOKEN   = "XXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$SP_ITEM    = 'location';
$SP_PROJECT = "XXX@XXX.de";
$SP_FORMAT  = 'json';
$SP_TYPE     = 'hourly';
$SP_ID      = 2452;
$SP_START   = 0;
$SP_END     = 5;

$url="https://www.solarprognose.de/web/solarprediction/api/v1?access-token=$SP_TOKEN&project=$SP_PROJECT&item=$SP_ITEM&id=$SP_ID&type=$SP_TYPE&_format=$SP_FORMAT&algorithm=own-v1&start_day=$SP_START&end_day=$SP_END";
}
$tageswerteid=37554; //Stringvariable mit dem Profil ~HTMLBox
$stundenwerteid=39286; //Stringvariable mit dem Profil ~HTMLBox
$starttag=0; //0 aktueller Tag
$endtag=5; //die nächsten Tage
//Tagesdaten aufbereiten
$daten=json_decode(datenholen("daily",$starttag,$endtag),true); //Start- und Endtag an den eigenen Tarif anpassen
//$daten=json_decode($daten_taeglich,true);
$Liste_HTML = "";
$Liste_HTML = $Liste_HTML."<table class=\"wwx\" border=\"1\" style=\"width:100%\">";    
$Liste_HTML = $Liste_HTML."<tr>";
$Liste_HTML = $Liste_HTML."<thead class=\"blue\">";
//Tageswerte Kopf
for ($i=$starttag; $i<=$endtag; $i++)
{
    $Liste_HTML=$Liste_HTML."<th><center>".date("d.m.Y",time()+(3600*24)*$i)."</center></th>";
}
$Liste_HTML=$Liste_HTML."</tr></thead>";
//Tageswerte Zeile
$Liste_HTML=$Liste_HTML."<tr>";
for ($i=$starttag; $i<=$endtag; $i++)
{
    $Liste_HTML=$Liste_HTML."<td><center>".$daten["data"][date("Ymd",time()+(3600*24)*$i)]." kWh</center></td>";
}
$Liste_HTML=$Liste_HTML."</tr></table";
setvalue($tageswerteid,$Liste_HTML);

//Stündliche Daten
$daten=json_decode(datenholen("hourly",$starttag,$endtag),true);
$i=0;
$Liste_HTML = "";
$Liste_HTML_erg="";
$Liste_HTML_ergs="";
$datum=0;
$zeit=0;
$Liste_HTML = $Liste_HTML."<table class=\"wwx\" border=\"1\" style=\"width:100%\">";    
//var_dump($daten["data"]);
foreach ($daten["data"] as $stunde)
{
    //Datum aus dem Array Index ermitteln
	$timestamp=array_keys($daten["data"])[$i];
    if ($datum!=date("d.m.Y",$timestamp))
    {
        //ab Zeile 2 die vorige Zeile anhängen und die Zeitenzeile schließen
        if ($i>0)
        {
            $Liste_HTML=$Liste_HTML."</tr></thead>";
            $Liste_HTML_erg=$Liste_HTML_erg."</tr>";
            $Liste_HTML_ergs=$Liste_HTML_ergs."</tr>";
            $Liste_HTML=$Liste_HTML.$Liste_HTML_erg.$Liste_HTML_ergs;
            $Liste_HTML_erg="";        
            $Liste_HTML_ergs="";
        }
        //Datumskopf
        $datum=date("d.m.Y",$timestamp);
        $Liste_HTML=$Liste_HTML."<tr><thead class=\"blue\"><th colspan=\"11\"><center>".date("d.m.Y",$timestamp)."</center></th></thead></tr>";
        //Beginn Kopf für Zeiten
        $Liste_HTML=$Liste_HTML."<tr><thead class=\"blue\">";

        $Liste_HTML_erg=$Liste_HTML_erg."<tr>";
        $Liste_HTML_ergs=$Liste_HTML_ergs."<tr>";
    }
    //Zeiten
    if ($zeit<strtotime(date("G:i:s",$timestamp)))
    {
        $zeit=strtotime(date("G:i:s",$timestamp));
        $Liste_HTML=$Liste_HTML."<th><center>".date("G:i",$timestamp)."</center></th>";
        $Liste_HTML_erg=$Liste_HTML_erg."<td>".$stunde[0]." kW</td>";
        $Liste_HTML_ergs=$Liste_HTML_ergs."<td>".$stunde[1]." kWh</td>";
    }
    else
    {
        $zeit=0;
        $Liste_HTML=$Liste_HTML."<tr><thead class=\"blue\">";
        $Liste_HTML=$Liste_HTML."<th><center>".date("G:i",$timestamp)."</center></th>";
        $Liste_HTML_erg=$Liste_HTML_erg."<tr>";    
        $Liste_HTML_ergs=$Liste_HTML_ergs."<tr>";    
        $Liste_HTML_erg=$Liste_HTML_erg."<td>".$stunde[0]." kW</td>";        
        $Liste_HTML_ergs=$Liste_HTML_ergs."<td>".$stunde[1]." kWh</td>";        
    }
	$i++;
}
//letzte Zeile anhängen
$Liste_HTML=$Liste_HTML."</tr></thead>";
$Liste_HTML_erg=$Liste_HTML_erg."</tr>";
$Liste_HTML_ergs=$Liste_HTML_ergs."</tr>";
$Liste_HTML=$Liste_HTML.$Liste_HTML_erg.$Liste_HTML_ergs;
$Liste_HTML = $Liste_HTML."</table>";
setvalue($stundenwerteid,$Liste_HTML);

Was mache ich falsch … oder Ihr anders ?

Grüße
Proxima

Stell mal $SP_End auf den richtigen Wert. 5 bedeutet 6 Tage Prognose. Ich denke du wirst weniger haben.

Hallo Heiko,
meine Anlage hat einen WR. Ich denke auch 1 Standort, 1 Wechselrichter, 2 Modulfelder.

Blicke nur noch nicht ganz bei der Modulausrichtung durch, da es ja nur bis max. 180° geht.

Bei dem kostenlosen Tarif hat man da nur zwei Tage oder sehe ich das falsch. Bei mir wird in der Prognose der heutige und der morgige Tag angezeigt.

1 „Gefällt mir“

Wie ist den Deine Anlage im 360° Bezug ausgerichtet, hier ist Bezug (Süden = 0 (sonst 180)) . Richtung Ost wird es dann minus (z.B. bei mir -30°) oder West dann plus!

Boah keine Ahnung, sollen das eventuell die Werte in der Ertragsprognose sein zum 360° Bezug. Von den Zahlen 294° konnte das ja hin hauen.

Ich habe bei SolarPrognose den Tarif PREMIUM gewählt (kostet aktuell trotzdem nix, es sollen aber min. 5€/Jahr gespendet werden) und dies eingestellt:

Ich habe dann bei $SP_End 1 bzw. 2 eingegeben → gleicher Fehler.

Wenn ich in Zeile 21 ein

var_dump($daten);

eingebe, erhalte ich:

NULL

Bei mir steht bei Premium 2,99€/Monat.

Bei mir auch, aber wenn Du PREMIUM als Tarif wählst kommt der Hinweis (roter Kasten):

Ich habe auch nirgends irgendwelche Bezahldaten hinterlegt.

Ok, Danke für die Info.

Meine Modulausrichtungen scheinen wohl von einem Bezug von 360° auszugehen laut meinem Anlagenbauer, 180° sind Süden.

Dann wären ja meine Werte einmal -66° und einmal +114°, korrekt?

das kommt auf den Wechselrichter an, ich habe 2 Strings (ost & west) die laufen auf einem WR (max. 4 Strings mögl.)

Das wollte ich ja mit der Frage verdeutlichen, es liegt an jedem seiner Anlage und kann nicht pauschal beantwortet werden. Manche, wie Du haben Ost & West auf dem Dach und ein WR. Ich plane gerade meine Anlage mit Hausdach und Garagendach und 2 WR. Demensprechend muss/kann man die Daten eben hinterlegen :slight_smile:

Gruß Heiko

Bei der ID kommt ja die ID des Standortes rein.

Ich bekomme auch folgende Meldungen beim ausführen des Skriptes:

Notice: Trying to access array offset on value of type null in /var/lib/symcon/scripts/55414.ips.php on line 37

Notice: Trying to access array offset on value of type null in /var/lib/symcon/scripts/55414.ips.php on line 37

Notice: Trying to access array offset on value of type null in /var/lib/symcon/scripts/55414.ips.php on line 37

Notice: Trying to access array offset on value of type null in /var/lib/symcon/scripts/55414.ips.php on line 37

Notice: Trying to access array offset on value of type null in /var/lib/symcon/scripts/55414.ips.php on line 52

Warning: Invalid argument supplied for foreach() in /var/lib/symcon/scripts/55414.ips.php on line 52

Zeile 52 ist bei mir:

foreach ($daten["data"] as $stunde)

Zeile 37:

    $Liste_HTML=$Liste_HTML."<td><center>".$daten["data"][date("Ymd",time()+(3600*24)*$i)]." kWh</center></td>";