Hallo PifPof,PifPof hat geschrieben: ↑Fr 31. Jul 2026, 18:18Hi,PifPof hat geschrieben: ↑Do 30. Jul 2026, 22:04Hallo Uli,
vielen Dank für dein Patch - Script.
Ich habe auch eine Ost - West - Ausrichtung und bin Deiner Anleitung gefolgt.
Das Abfragen klappt ganz wunderbar, ich sehe URLs für beide Abfragen.
Habe die auch mal im Browser getestet und sehe unterschiedliche Werte für die beiden Felder.
Im Grafana wird mir jedoch nur der Oststrang grafisch angezeigt.
Ich habe ein eigenes Dashboard und hatte da die Wetterprognose vorher (von solarprognose) so drin:Werden jetzt meine zwei Stränge nicht addiert oder selektiere ich das falsche Feld in der falschen Tabelle?Code: Alles auswählen
SELECT mean("Prognose_W") FROM "autogen"."Wetterprognose" WHERE $timeFilter GROUP BY time($__interval) fill(null)
Könntest Du mir vielleicht einen Tipp geben, wo ich suchen kann?
Danke und viele Grüße,
PifPof
ich habe mal einen Tag gewartet, hier der Eintrag im Log:
31.07. 12:20:01 |------------------- Start wetterdaten.php --------------------
31.07. 12:20:01 WET-Prognosedaten 1 werden abgeholt
31.07. 12:20:01 |------- [Regler 27] ----- Start sma_wr.php ---- [28.01.2025] ------
31.07. 12:20:01 -SMA: 192.168.178.170 Port: 502 GeräteID: 03
31.07. 12:20:02 WET-Prognosedaten 2 werden abgeholt
31.07. 12:20:03 WET-URL: https://api.forecast.solar/estimate/wat ... 2/-90/6.97
31.07. 12:20:03 WET-Verbindung zum Wetterserver 'forecast.solar' erfolgreich.
31.07. 12:20:03 *- -Geräteklasse: 8009
31.07. 12:20:03 *- -Gerätetyp: 19051
31.07. 12:20:03 -Alle 10 Minuten werden die Statistikdaten übertragen.
31.07. 12:20:03 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
31.07. 12:20:03 |------------------- Stop wetterdaten.php ---------------------
Rufe ich die URLs im Browser auf (mit den echten Koordinaten erhalte ich für -90 und für +90 Werte:
Bildschirmfoto 2026-07-31 um 18.30.03.pngBildschirmfoto 2026-07-31 um 18.30.28.png
Wenn ich für 12:00 die Werte addiere erhalte ichGrafana zeigt mir 1.34 kW an, das passt nicht.Code: Alles auswählen
1343+968=2311
Insgesamt kommt mir das auch viel zu wenig vor, die tatsächliche Produktion lag bei 7.6 kW zu dem Zeitpunkt.
Meine User.config.php enthält diese Daten:
$Prognosedaten = true;
$Breitengrad = 47.11; //manipuliert, um meine Adresse nicht im Internet zu veröffentlichen,
$Laengengrad = 5.4321; // in Wirklichkeit habe ich natürlich meine echten Koordinaten
// 1. String (Ost)
$PV_Nennleistung = 6.97;
$Winkel = 42;
$Suedausrichtung = -90;
// 2. String (West)
$PV_Nennleistung2 = 6.97;
$Winkel2 = 42;
$Suedausrichtung2 = 90;
Bildschirmfoto 2026-07-31 um 18.16.05.png
Die Vorhersage ist die gestrichelte orange Linien, unten links ist ein Panel mit der Gesamttages-Arbeit.
Hat jemand eine Idee?
Danke und Gruß,
PifPof
deine Grafana-Abfrage ist völlig in Ordnung! Du suchst nicht am falschen Ort, sondern bist exakt in denselben Fehler gerannt wie ein anderer Kollege hier.
Das Problem liegt an der allerersten Version von meinem Patch-Skript. Da war ein Logikfehler bei der PHP-Array-Addition drin. Das Skript ruft zwar brav die Daten für deinen West-String ab, aber statt die Watt-Werte zusammenzurechnen, überschreibt PHP sie einfach. Deshalb siehst du in deinem Dashboard aktuell zu 100 % nur die Leistung deines Ost-Strings, also die exakte Hälfte.
Geh bitte auf deine Konsole, öffne dein angelegtes Patch-Skript (z.B. nano patch.sh), lösch den alten Inhalt komplett raus und ersetze ihn durch diese fehlerfreie V2-Version:
#!/bin/bash
FILE="/var/www/html/wetterdaten.php"
# Alten fehlerhaften Patch sauber entfernen
sed -i '/\/\/ --SUED-WEST PATCH--/,/\/\/ -------------------/d' "$FILE"
if grep -q "SUED-WEST PATCH V2" "$FILE"; then
echo "Patch V2 ist bereits installiert!"
else
# Temporäre Datei anlegen, um Copy-Paste-Fehler zu vermeiden
cat << 'EOF' > /tmp/wetter_patch.txt
// --SUED-WEST PATCH V2--
if (isset($PV_Nennleistung2) && $PV_Nennleistung2 > 0) {
$URL2 = str_replace("/".$Winkel."/".$Suedausrichtung."/".$PV_Nennleistung, "/".$Winkel2."/".$Suedausrichtung2."/".$PV_Nennleistung2, $URL);
$res2 = @file_get_contents($URL2);
$arr2 = json_decode($res2, true);
if(isset($arr2["result"])) {
foreach($arr2["result"] as $k => $v) {
if(is_array($v)) {
if(!isset($Einzelwerte["result"][$k])) $Einzelwerte["result"][$k] = array();
foreach($v as $zeit => $wert) {
if(isset($Einzelwerte["result"][$k][$zeit])) {
$Einzelwerte["result"][$k][$zeit] += $wert;
} else {
$Einzelwerte["result"][$k][$zeit] = $wert;
}
}
ksort($Einzelwerte["result"][$k]);
} else {
if(isset($Einzelwerte["result"][$k])) {
$Einzelwerte["result"][$k] += $v;
} else {
$Einzelwerte["result"][$k] = $v;
}
}
}
ksort($Einzelwerte["result"]);
}
}
// ----------------------
EOF
# Block sauber mit sed einfügen
sed -i -e '/$Einzelwerte = json_decode($result, true);/r /tmp/wetter_patch.txt' "$FILE"
rm /tmp/wetter_patch.txt
echo "Sued-West Patch V2 erfolgreich eingefuegt."
fi
Einfach abspeichern und mit sudo ./patch.sh einmal drüberbügeln. Das Skript putzt die alte, fehlerhafte Variante automatisch raus und fügt die V2 ein, die beide Arrays sauber addiert.
Warte dann einfach den nächsten regulären Forecast-Abruf ab (passiert automatisch immer 20 Minuten nach jeder 3. vollen Stunde). Danach summiert er beide Dächer und deine gestrichelte Kurve in Grafana schießt endlich nach oben!