Hallo Leute,
seit einiger Zeit treibt mich folgender Gedanke an. Ich möchte meiner Wärmepumpe beibringen, dass sie sich mit der Wettervorhersage zusammentut und wirklich „smart“ die Fußbodenheizung steuert. Nun habe ich folgenden Beitrag gefunden der mir aus der Seele spricht Wettervorhersage und Heizungssteuerrung koppeln mit IP-Symconblog.stromhaltig
Da ich allerdings immer noch Programmierneuling bin brauche ich „etwas“ Hilfestellung von euch.
So sieht momentan das Skript aus.
<?
/**
EnergyForecast hilft die Energiesteuerung mit Hilfe einer Wettervorhersage zu optimieren.
*/
// Ändern
$api_key_wunderground="ccf17a647c97l08b5785"; // Erhältlich unter http://www.wunderground.com/?apiref=71977f1e65815792
$zmw_location ="zmw:00000.33.10982"; // Ortsagangabe - findet sich bei Wunderground - oder nach Aufruf von
// Keine Änderungen nach dieser Zeile notwendig...
function savetoIPS($day,$name,$value) {
global $IPS_SELF;
$id=@IPS_GetObjectIDByName("day_".$day."_".$name,$IPS_SELF);
if($id===FALSE) {
$dg_id=IPS_CreateVariable(2);
IPS_SetName($dg_id,"day_".$day."_".$name);
IPS_SetParent($dg_id,$IPS_SELF);
if(($name=="low")||($name=="high")||($name=="hgt")||($name=="avg")) {
IPS_SetVariableProfileValues("Temperatur", -30, 50, 0.5);
}
$id=$dg_id;
}
SetValue($id,$value);
}
function updateForecast() {
global $api_key_wunderground,$zmw_location;
$content=json_decode(Sys_GetURLContent("http://api.wunderground.com/api/".$api_key_wunderground."/forecast10day/q/".$zmw_location.".json"));
$i=0;
foreach($content->forecast->simpleforecast->forecastday as $day) {
$high=$day->high->celsius;
$low=$day->low->celsius;
$avg=round(($high+$low)/2,1);
$hgt=15-$avg; // Heizgrenze von 15 Tag zur Berechnung der Gradtagzahl!
$skyc=$day->skyicon;
$sky=0;
switch($skyc) {
case "sunny":
$sky=1;
break;
case "mostlysunny":
$sky=7/8;
break;
case "partlycloudy":
$sky=6/8;
break;
case "mostlycloudy":
$sky=2/8;
break;
}
if($hgt<0) $hgt=0;
// Speichern der Werte als IPS Variablen
savetoIPS($i,"low",$low);
savetoIPS($i,"high",$high);
savetoIPS($i,"hgt",$hgt);
savetoIPS($i,"avg",$avg);
savetoIPS($i,"sky",$sky);
if($i>0) {
$change_t=$old_hgt-$hgt;
$change_s=$old_sky-$sky;
savetoIPS($i,"trend_temp",$change_t);
savetoIPS($i,"trend_solar",$change_s);
}
$old_hgt=$hgt;
$old_sky=$sky;
$i++;
}
}
updateForecast();
?>
und so die Fehlermeldung
[i]Warning: Variablenprofil #Temperatur existiert nicht in C:\IP-Symcon\scripts\18436.ips.php on line 22
Warning: Variablenprofil #Temperatur existiert nicht in C:\IP-Symcon\scripts\18436.ips.php on line 22
Warning: Variablenprofil #Temperatur existiert nicht in C:\IP-Symcon\scripts\18436.ips.php on line 22
Warning: Variablenprofil #Temperatur existiert nicht in C:\IP-Symcon\scripts\18436.ips.php on line 22
Warning: Variablenprofil #Temperatur existiert nicht in C:\IP-Symcon\scripts\18436.ips.php on line 22
Warning: Variablenprofil #Temperatur existiert nicht in C:\IP-Symcon\scripts\18436.ips.php on line 22
Warning: Variablenprofil #Temperatur existiert nicht in C:\IP-Symcon\scripts\18436.ips.php on line 22
Warning: Variablenprofil #Temperatur existiert nicht in C:\IP-Symcon\scripts\18436.ips.php on line 22
Warning: Variablenprofil #Temperatur existiert nicht in C:\IP-Symcon\scripts\18436.ips.php on line 22
Warning: Variablenprofil #Temperatur existiert nicht in C:\IP-Symcon\scripts\18436.ips.php on line 22
Abort Processing during exceed of maximal ErrorCount: Variablenprofil #Temperatur existiert nicht
Error in Script C:\IP-Symcon\scripts\18436.ips.php on Line 22[/i]
Nun denke ich mir, dass ich wohl Variable(n) erstellen muß, oder? Bitte seid so nett und schreibt nicht nur Ja, oder Nein, sondern auch etwas für Dummies dazu (wie ich eine Variable anlege kann ich natürlich nachlesen).
Der nächste Schritt ist dann natürlich die Wärmepumpe über die Vorhersagewerte zu steuern. Hier wäre ich sehr dankbar für mögliche Wege wie das zu realisieren wäre. Ich kann über IP auf die WP zugreifen und viele Werte ansehen. Brauche ich da noch irgendwelche ?Codes? vom Hersteller zur Steuerung über IPS?
Ich denke das ist wohl eher ein Großprojekt, jedoch st es mir sehr wichtig, da hier einfach viele Geld zum Fenster rausgeheitzt wird und ich das optimieren möchte.
Bitte versteht mich nicht so, dass ich etwas vorgekaut haben möchte, mir fehlen nur die Ansatzpunkte in welche Richtung es geht.
Vielen Dank
Bruno