[Script] solcast.com

Puh, immer diese Fragen :rofl:

Systems.Local. und Systems.Functions. kommen in die __autoload, aber nur wenn man nicht schon über die Community die ganzen CreateVariableXyZ im System hat :slight_smile:

QuickChart einfach anlegen und wird dann per include reingezogen!

WWX_Functions kommt automatisch wenn vorher alles korrekt installiert wurde!

Gru0 Heiko

1 „Gefällt mir“

Hey @pitti unfassbar was Du alles raushaust, auf Deine Solardinger kam ich heute erst!
(Bist im Jan auch in Lübeck, Heiko? Da treffen sich dann die Münchner :wink: )

Ich kenne auch Deine Skriptbibliothek noch gar nicht, aber das wird sich nun ändern.

Meine eigentliche Frage:
Du schreibst Dein Skript nutzt Deinen WwxSkin, jetzt bin ich aber nur noch auf der Tile und IPSview unterwegs. Das ist vermutlich nur ein Hinweis für die Webfront User, oder?

Danke und Gruss Seppm

Weiß ich noch nicht - würde aber schon gern :slight_smile:

Ja, hauptsächlich wegen der Tabellen-Sachen! Sonst sieht es wohl etwas verschoben aus. Der Rest funzt auch ohne meinem Skin!

Danke & Ciao
Heiko

Danke Dir,
Werde es probieren, vermute mal dass es die Werte die in die Tabelle fließen auch als Variablen gibt und ich das ggf. mit Symcon eigenen Tabellen machen kann.
In jedem Fall eine sehr hilfreiche Sache.

Cheers Seppm

PS: Dann hoffe ich mal auf Lübeck, aber vlt. bekommt man im Münchner Osten auch so mal wieder was hin. Sind halt alle viel eingespannt.

1 „Gefällt mir“

Moin pitti, gestern nach deiner Anleitung den solcast-Script installiert, hat alles funktioniert . danke nochmal dafür.
Kleine Anmerkung im „Graphischen Verlauf“ ist die Leistung mit kW skaliert, sollte wohl eher W sein ?
Der „Tabellarische Verlauf“ wird auch mit den SolCast-Werten dargestellt, das Säulendiagramm hab ich bisher noch nicht gesehen, gibts dabei was besonderes zu beachten oder -braucht das halt ein paar Tage oder -muss ich das selbst erstellen?
Gruß Gerd

Danke, da hast Du wohl Recht :slight_smile:

Ja, der Tagesverlauf ist ein Diagramm welches man selber anlegen muss aus den entsprechenden Variablen. Hier wie ich es gemacht habe …

Gruß Heiko

jo, hab ich auch so gemacht , dann kann ich meinen echten PV-Ertrag dazulegen

1 „Gefällt mir“

Ich erhalte seit einiger Zeit bei jeder stündlichen Abfrage diese Warnung, obwohl die 10 möglichen Abfragen pro Tag nicht überzogen habe und die Variablen durch das Script einwandfrei befüllt werden.

27.12.2023, 13:54:18 | ScriptEngine         | Result for Event 43372

Warning: Undefined array key "forecasts" in C:\ProgramData\Symcon\scripts\AMOUNT.SOLCAST.ips.php on line 186

Warning: foreach() argument must be of type array|object, null given in C:\ProgramData\Symcon\scripts\AMOUNT.SOLCAST.ips.php on line 186

Line 186 ist diese

foreach ($data['forecasts'] as $o) {

Habe ich auch immer wieder. Vielleicht schaut pitti ja die Tage noch mal drauf. Ansonsten funktioniert es gut und auch die Vorhersagen sind recht nah im wirklichen Geschehen.

Gruß Michael

Also bei mir läuft das exakt gleiche Script wie auf Github absolut problemlos!

Habt ihr was verändern?

Nö, habe nichts verändert. Habe auch das originale GitHub Script installiert.

Gruß Michael

Dann die Frage warum der Fehler in Zeile 186 wenn die Foreach bei mir in 184 ist?

Hier auch in 184… und trotzdem kommt der Fehler, allerdings sporadisch aber immer wieder.

Gruß Michael

Und kommt wirklich wohl stündlich.

…bei mir kommt der Fehler auch stündlich, die Ausgabe scheint aber zu passen.

1 „Gefällt mir“

Hallo Pitti,

ich Finderin Script und SolCast echt gut. Die Vorhersagen sind echt gut. Blöd sind allerdings die Fehlermeldungen und Warnungen. (s.o.) Die nerven echt. Hast die (bitte) Zeit das mal zu prüfen und abzustellen. Daaaanke!
Gruß Michael

Wie schon geschrieben habe ich keine Fehlermeldungen :frowning:

Könnt Ihr mal ein Screen vom Objektbaum schicken - so wie meiner hier …

Danke

Klaro…

Die Benachrichtigungen darüber, das die Variablen im Archiv regeneriert wurden, lässt sich doch sicherlich unterdrücken oder abschalten.

Bei der „foreach()“ Warnung musste mal googlen, möglicherweise hat das was mit php zutun. Oder die schreiben man solle/müsse prüfen ob die Variable iterierbar ist. Keine Ahnung, bin leider kein php Spezi. Nur so isses echt blöd. Bin ja auch scheinbar nicht der einzige. Ansonsten liefert das Sript echt gutes Ergebnis bei mir.

Ich hoffe du kriegst es hin und danke schon jetzt!

Gruß Michael

Leider kenne ich dafür keine Lösung :frowning: Könnte vielleicht über einen Spezialschalter gehen, aber das müsste das IPS-Team (@paresy ) mal beantworten.

Willste mal Beta-Tester spielen?

Ändere doch mal die folgende Funktion im Script ab …

// Von SolCast gelieferten Daten auf Tages- und stundenbasis Normalisieren
function ForecastData($data)
{
    $fd = [];
    foreach ($data['forecasts'] as $o) {
        $hour = date('H', strtotime($o['period_end']));
        $day = date('z', strtotime($o['period_end'])) - date('z');
        if (isset($fd[$day][$hour])) {
            // echo "Add " . $day . ' - ' . $hour . PHP_EOL;
            $fd[$day][$hour]['norm'] = ($fd[$day][$hour]['norm'] + $o['pv_estimate']) / 2;
            $fd[$day][$hour]['poor'] = ($fd[$day][$hour]['poor'] + $o['pv_estimate10']) / 2;
            $fd[$day][$hour]['more'] = ($fd[$day][$hour]['more'] + $o['pv_estimate90']) / 2;
        } else {
            // echo "New " . $day . ' - ' . $hour . PHP_EOL;
            $fd[$day][$hour] = [
                'norm'  => $o['pv_estimate'],
                'poor'  => $o['pv_estimate10'],
                'more'  => $o['pv_estimate90'],
            ];
        }
    }
    return $fd;
}

… in …

// Von SolCast gelieferten Daten auf Tages- und stundenbasis Normalisieren
function ForecastData($data)
{
    $fd = [];
    if(isset($data['forecasts'])) {
      foreach ($data['forecasts'] as $o) {
          $hour = date('H', strtotime($o['period_end']));
          $day = date('z', strtotime($o['period_end'])) - date('z');
          if (isset($fd[$day][$hour])) {
              // echo "Add " . $day . ' - ' . $hour . PHP_EOL;
              $fd[$day][$hour]['norm'] = ($fd[$day][$hour]['norm'] + $o['pv_estimate']) / 2;
              $fd[$day][$hour]['poor'] = ($fd[$day][$hour]['poor'] + $o['pv_estimate10']) / 2;
              $fd[$day][$hour]['more'] = ($fd[$day][$hour]['more'] + $o['pv_estimate90']) / 2;
          } else {
              // echo "New " . $day . ' - ' . $hour . PHP_EOL;
              $fd[$day][$hour] = [
                  'norm'  => $o['pv_estimate'],
                  'poor'  => $o['pv_estimate10'],
                  'more'  => $o['pv_estimate90'],
              ];
          }
      }
    }
    return $fd;
}

Und dann schauen wir mal :slight_smile:

Gruß Heiko

@pitti Danke für das cool Script.
Frage, ich habe zwei Anlagen die ich in Solcast angelegt habe. Somit rufe ich die Daten mit zwei GUID ab.
Gibt es die Möglichkeit das ich mir aus den zwei Anlagen eine Gesamtansicht erstellen kann. Die Floatvariablen addieren ist jetzt nicht schwer aber ich hätte gerne noch den graphischen Verlauf der Gesamtanlage.

Wie meinst Du das? Das Script liefert doch keine graphische Anzeige der Anlage, sondern den möglichen Ertrag!?! Und ja, man kann natürlich die Daten der Anlagen addieren und dann anzeigen lassen, wenn Du das schon machst - wo hapert es?