Wettervorhersage für das Energiemanagement nutzen

Wie in meinem Blog-Beitrag beschrieben, nutze ich seit einiger Zeit die Wettervorhersage zur Planung der Heizungssteuerung. Die Grundhypothese lautet: Wenn es morgen kälter wird, dann muss bereits heute mehr geheizt werden vice versa…

Feedback gerne an mich!

Im Gegensatz zu IPS verwende ich allerdings die Wunderground-API für die Vorhersage.

energyforecast.ips.php.zip (1.13 KB)

Hallo Zoenert,
Sowas habe ich auch vor.
Ich habe mir die Vorhersage der Globalstrahlung von der Webseite www.agrarwetter.net für meinen Ort ausgelesen.

Damit will ich folgende Logik anwenden:

  • Wenn heute die Sonne intensiv scheint, dann lasse ich morgens die Heizung aus, da die Räume sowieso ab 9 Uhr von der Sonne beheizt werden.
  • Wenn die Sonne nicht so intensiv scheint muss ich heizen.

Einfache Logik aber damit auch einfach umzusetzen…

Ich schaue mir Dein Script mal an und gebe Rückmeldung…Danke schön !!!

Hi,

Meine Daten habe ich eingetragen (abgeändert)
$api_key_wunderground=„52072cxxxxxx“;
$zmw_location =„00000.9.xxxxx“;

Er meldet in Zeile 34 folgende Fehler:
Notice: Undefined property: stdClass::$forecast in C:\IP-Symcon\scripts\10810.ips.php on line 34
Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\10810.ips.php on line 34
Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\10810.ips.php on line 34
Warning: Invalid argument supplied for foreach() in C:\IP-Symcon\scripts\10810.ips.php on line 34

Zeile 34 ist bei mir:
foreach($content->forecast->simpleforecast->forecastday as $day) {

Gruß,
Michael

Dann ging bei Dir etwas mit dem JSON Aufruf schief.

Ruf mal im Browser die URL auf, die erzeugt wird:

Also mal ein echo einfügen wie:


echo "http://api.wunderground.com/api/".$api_key_wunderground."/forecast10day/q/".$zmw_location.".json";

Wahrscheinlich ist ein Fehler in der Location … und der JSON Code von wunderground damit ungültig.

Hallo,

das ist auch für mich ein interessantes Thema.
Den API-Zugriff von zoernert habe ich erfolgreich realisiert.

@woytkem:
Die Globalstrahlung würde ich auch gern auslesen. Aber dazu fehlen mir einige Kenntnisse.
Kannst du mir sagen, wie du die Daten ausgelesen hast?
bei http://www.proplanta.de/Agrar-Wetter/profi-wetter.php?SITEID=60 oder http://www.proplanta.de/Solar-Wetter/Solarwetter.html habe ich ja noch keine Daten.

Gruß, Peter

Hallo Peter,

deine Seiten finde ich sehr brauchbar für eine Vorhersage.

http://www.proplanta.de/Agrar-Wetter/profi-wetter.php?SITEID=60123&PLZ=89429&STADT=&WETTERaufrufen=postleitzahl&Wtp=&SUCHE=Wetter&wT=6

Bist du da schon weiter?

Grüße

Oli

Wie immer habe ich vergessen Rückmeldung zu geben…Sorry.

@Zoenert: Dein Script funktioniert einwandfrei, aber ich bleibe bei meiner einfachen Funktion.

Zu meinem Vorgehen:
1.WWW Reader Instanz hinzugefügt mit link zu:
http://www.proplanta.de/Agrar-Wetter/profi-wetter.php?SITEID=60&PLZ=61169&STADT=&WETTERaufrufen=postleitzahl&Wtp=&SUCHE=Wetter&wT=1
Die PLZ wahrscheinlich einfach mit Deiner ersetzen.
Der Timer ist auf 3 Stunden gesetzt (10800 Sekunden)

2.Textparser einfügen und als übergeornete Instanz den WWW Reader auswählen.
Die Regel besagt:

  • Text ausschneiden zwischen
  • Tag1 (steht bei mir alles in einer Zeile. Keine Ahnung warum er hier Zeilenumbrüche anlegt) :
    Globalstrahlung</span></td>
    <td valign=‚top‘ align=‚left‘ bgcolor=’#ffffff’ style=„padding:4px;“ width=‚20%‘><span class=‚SCHRIFT_FORMULAR_WERTE_MITTE‘ alt=‚Aktuelle-Wetter-Werte‘ title=‚Aktuelle-Wetter-Werte‘ >
  • Tag2 :
    <br>kWh/qm</span></td>
  • String Variable angeben die den ausgelesenen Wert übernehmen soll - Bei mir 10181.
  1. Script zum auswerten der vorhergesagten Globalstrahlung und somit setzen der Soll-Temperatur in den Räumen auf 18 Grad.

<?
$GS = GetValueString(10181 /*[Webfront\Energieverbrauchs-Zaehler\Energieverbrauch\Vorhersage Globalstrahlung (kWh/qm)]*/);
echo $GS;

if ($GS < 5) {
  echo " - GS ist kleiner als 5 - Temp nicht runter regeln";
} else {
  echo " - GS ist größer als 5 - Temp runter regeln";
  LCN_SetTargetValue(37981 /*[Webfront\Charts\webfront\Erdgeschoss\Wohnen Soll]*/, 0, 18); //Regler A setzen Wohnzimmer
  LCN_SetTargetValue(13764 /*[Webfront\Charts\webfront\Dachgeschoss\Tim Zimmer Soll]*/, 0, 18); //Regler A setzen Tim's Zimmer
  LCN_SetTargetValue(13476 /*[Webfront\Charts\webfront\Dachgeschoss\Tim Bad Soll]*/, 0, 18); //Regler A setzen Tim's Bad
}
echo " - done";
?>

Ich führe es täglich um 6 Uhr morgens aus.

Es hat sich bewehrt und ich spare doch einiges an Stadtgas ein.

Gruß
Michael

Hallo Oli,

deine Seiten finde ich sehr brauchbar für eine Vorhersage.

http://www.proplanta.de/Agrar-Wetter...HE=Wetter&wT=6

Bist du da schon weiter?

Ja.
Das Auslesen mache ich so (PLZ anpassen):

$url		= "http://www.proplanta.de/Agrar-Wetter/profi-wetter.php?SITEID=60&PLZ=12345";
$web		= file_get_contents($url);						// Webseite holen

Dann kommt die Fleissarbeit, die Werte aus $web zu selektieren.

Gruß, Peter

Hallo Peter,

danke für deine Antwort.

Hab es bereits nach Michael´s Vorschlag umgesetz.

Grüße

Oli

Kennt jemand eine Seite in der Ich mir Prognosen für Temp, Globalstrahlung, Sonnescheindauer einfacher holen kann?

Ich habe Globalstrahlung - Donnerwetter gefunden,
aber die schützen den Wert, oder ich weiß nicht wie ich den auslesen kann.

Bernd

Hallo Bernd,

so etwas brauche ich auch noch, aber noch keine Zeit dafür gefunden.
Und wichtig wär mir, eine Info, die sich dauerhaft in IPS einbinden lässt.
Im Moment verschenke ich noch Geld durch die „nur“ Aussentemperatursteuerung, mal sehen…

Hi

Ich versuche das schon seit langem umzusetzen. Für Heizung und das Akkumanagement der PV Inselanalage.
Technisch kein Problem aber leider ist hier die Vorhersage derart schlecht das oft sehr sehr falsch liegt.
Am besten funktioniert noch der Ansatz das sich die relevanten Daten nicht abrupt ändern. Also die Daten von heute nehmen, und als Vorhersage für Morgen nehmen.
Funktioniert hier besser als die ganzen Vorhersagen. :banghead:

gruß
bb

Am besten funktioniert noch der Ansatz das sich die relevanten Daten nicht abrupt ändern. Also die Daten von heute nehmen, und als Vorhersage für Morgen nehmen.

Das ist im Moment auch mein Gedanke, aber es müsste besser gehen.:confused:
Daher noch hier nicht angefasst, bin nur am beobachten.
Bei meiner Tochter habe ich Referenztemperaturen (2 Sensoren in der Wand), die im Moment der Therme den Gashahn zudrehen, mal sehen wie das sich entwickelt. Hier im Haus ( 4 Wohnungen) kann ich bis jetzt nur 2 Wohnungen grob sehen, und beide im OG. Im EG ist es deutlich anders. Da muss ich mal noch was verbauen.:confused:
Aber alles in allem, habe ich mit IPS da schon viel erreichen können, den Verbrauch im Haus zu senken.
Aber da muss jeder selber dran, da jedes Haus anders tickt.:smiley:

Eine sichere Quelle für Globalstrahlung und Sonnescheindauer hätte was, aber …

Ja, die Sonnenscheindauer oder meinetwegen auch verkehrtrum die Bewölkungsintensität wäre fürs Akkumanagement der PV Anlage echt interesannt. Nur leider ist die am unzuferlässigsten.
Hatte mir mal ein paar Plots gebaut um die Vorhersage mit den Istdaten übereinanderzulegen.
Fazit: Komplett unbrauchbar.

Temperatur und Wind (für die Heizung) geht noch, hier lassen sich wie schon geschrieben gut die Daten vom Vortag verwenden.
Was nicht schlecht funktioniert sind kurzfristige Vorhersagen (Sonneschein). Die verwende ich um am Morgen zu entscheiden ob die Heizung anlaufen soll oder besser auf die Sonne zu warten ist. Oder auch Nachmittags, wenn der Brauchwasserspeicher noch nicht warm genug ist, aber von der themischen Solaranlage noch Wärme zu erwarten wäre.

Wie tomgr schrieb: Am wichtigsten ist aber das man das Verhalten seines Hauses und der Bedürfnisse seiner Bewohner ganz genau kennt. Erst dann kann man sich passende Algorythmen überlegen.

gruß
bb

So ähnlich mache ich das momentan im alten System auch noch.
Die Sonnescheindauer zusammen mit der Durchschnittstemperatur der letzten 48 Stunden entscheidet wie voll der Stromspeicher und Heizungspuffer durch das BHKW gefahren wird um Platz zu lassen für die PV.
Erfolgsrate, so bei 50%, ähnlich wie beim Glückspiel…

Im neuen Testips 5, spiele ich grad mit Globalstrahlung, Sonnescheindauer etc.
Die Ertragsprognose der PV liegt sowas von daneben…

Die Prognosen für die Globalstrahlung sind auf vielen Seiten sehr ähnlich,
daher nutze ich aktl. Proplanta, weil es einfacher auszulesen ist.
Den Key für Wunderground krieg ich nicht bestellt.
Deren Seite zeigt mir keine Bestellseite mehr.

Bernd

Danke für den Tip mit Proplanta. Das ist ja noch eine klassiche HTML Seite und schön zu parsen.:smiley:
Hoffentlich bleiben die noch länger konservativ.
Hatte früher eine andere Agrarwetter Seite, da habens dann aber auf JS umgestellt, dann ging nix mehr mit parsen.
zzt. verwende ich Wonderground, aber wie schon geschrieben wegen schlechter Genauigkeit mit wenig Erfolg.

gruß
bb

Hallo zusammen.
Inzwischen passt die prognose der PVErtragsvorhersage recht gut.
Allerdings nur im Sommer, jetzt bei sinkendem Zenithstand und auch draus resultierenden verschattungen geht die Differenz wieder hoch.
Ich brauche mal Hilfe wie ich den Zenith überhaupt als Variable erhalte.
Bei https://www.php.net/manual/de/function.date-sunset.php verstehe ich nicht wie ich das in meinem Code einbauen kann.

<?
$latitude = 51.27;   // latitude for xxx (Werte eintragen)
$longitude = 7.14;     // longitude for xxx (Werte eintragen)
// Check if Summer- or Wintertime
if (date("I") == 1) $daylight = 2;  // Summertime
if (date("I") == 0) $daylight = 1;  // Wintertime
$sunrise = date(date_sunrise(time(), SUNFUNCS_RET_STRING, $latitude, $longitude, 92, $daylight));
$sunset = date(date_sunset(time(), SUNFUNCS_RET_STRING, $latitude, $longitude, 92, $daylight));
SetValueString(30772 /*[Wetter\Sonnauf- Untergang berechnen\Sonnenaufgang]*/,$sunrise);
SetValueString(43992 /*[Wetter\Sonnauf- Untergang berechnen\Sonnenuntergang]*/,$sunset);
?>

Jemand eine Idee, ich krieg das nicht hin.

Ja ich weiss das „Location“ in den Kern Instanzen mir auch die Werte liefert, allerdings setzt nach Sonnenaufgang der Wert für Sonnenaufgang auf den nächsten Tag, was ja auch logisch ist, aber mir bei eigenen anderen Scripten nicht hilft.

Wenn man in „Location“ auch den Zenith auslesen kann, nehme ich den gerne.

Bernd

Hallo zusammen,

funktioniert das Auslesen der Globalstrahlung von Proplanta noch? Ich habe die Tags angepasst, da sich die Strings ein bisschen geändert haben. Im Debug sehe ich die Globalstrahlung, aber es wird nichts in die String-Variable geschrieben. Habe es nach Michaels Anleitung umgesetzt…

Ohjeh… Legacy… Wir/ich verwenden mittlerweile ein eigenes Berechnungsmodel, welches nicht diret die Globalstrahlung benötigt und auf die Datenfeeds von DWD und DLR sich speist. Abrufbar im GrünstromIndex (gibt es auch einige Beispiele hier im Forum).

Hab ich fast befürchtet :slight_smile: Dann schaue ich mir das mal an. Danke!