Evapotranspiration, ein Script als Anregung

So, jetzt hab ich mal ein Script gebastelt mit dem man die Evapotranspiration nach Haude berechnen kann. Vorerst beobachte ich nur die täglichen Werte. Später wird das in der Beregnung berücksichtigt.
Die besteht auf der „Feldebene“ im Wesentlichen aus einer Wago-SPS, die die Magnetventile ansteuert, über eine Mengenmessung, die die tatsächlich ausgebrachte Wassermenge und die Füllmenge in der Regenwasserzisterne misst und bei Unterschreiten eines Schwellenwertes die Beregnung sperrt, die Klospülung muss ja weiter funktionieren.:smiley: Zusätzlich sind pro Kreis (8 Stk.) Maximalmengen und -zeiten hinterlegt, bei denen es eine Zwangsabschaltung gibt. Das ganze wird sozusagen auf der „Leitebene“ von IPSWatering angesteuert und protokolliert und von der SPS ausgeführt.

Die Berechnung nach Haude hat natürlich ihre Einschränkung oder Schwächen "Das Haude-Verfahren eignet sich nur für die empirische Berechnung von Monatssummen der Verdunstung. Es hat sich in Deutschland (alte Bundesländer) bewährt."1 Mir geht es dabei nur darum Wasser gezielter einzusetzen bzw. zu sparen und die Beregnung etwas an den Bedarf anzupassen. Dafür tut es die Berechnung nach Haude vollkommen. Temperatur und Luftfeuchte kann z. B. aus der eigenen Wetterstation oder wie bei mir aus der 400 m entfernten Wunderground-Messstation kommen.

<?php
$myapikey="da steht dein apikey drinnen"; //wunderground api key
$station="pws:IOKATSDO2.json";

$haudefaktoren=array(
 /*Monat					Wiese	Rasen	Mais	Buche	Fichte*/
 /*Januar*/		array(0.20,	0.20,	0.11,	0.01,	 0.08),
 /*Februar*/	array(0.20,	0.20,	0.11,	0.00,	 0.04),
 /*März*/		array(0.25,	0.23,	0.11,	0.04,	 0.14),
 /*April*/		array(0.29,	0.24,	0.17,	0.10,	 0.35),
 /*Mai*/			array(0.29,	0.29,	0.21,	0.23,	 0.39),
 /*Juni*/		array(0.28,	0.29,	0.24,	0.28,	 0.34),
 /*Juli*/		array(0.26,	0.28,	0.25,	0.32,	 0.31),
 /*August*/		array(0.25,	0.26,	0.26,	0.26,	 0.25),
 /*September*/	array(0.23,	0.23,	0.21,	0.17,	 0.20),
 /*Oktober*/	array(0.22,	0.20,	0.18,	0.10,	 0.13),
 /*November*/	array(0.20,	0.20,	0.11,	0.01,	 0.07),
 /*Dezember*/	array(0.20,	0.20,	0.11,	0.00,	 0.05)
);

// main

$json_string = file_get_contents("http://api.wunderground.com/api/". $myapikey ."/geolookup/conditions/q/" . $station);

//print_r($json_string);

$parsed_json = json_decode($json_string);

$hum = $parsed_json->{'current_observation'}->{'relative_humidity'};
$temp= $parsed_json->{'current_observation'}->{'temp_c'};

$currenthaude=haudecalc($temp, $hum, $haudefaktoren[date("m")-1][0]);

SetValueFloat(38922 /*[myScripts\evapotranspiration\ETP]*/ , $currenthaude);

// end main



function haudecalc($temp, $rf, $haude)
{
	//temp  		= Temperatur in °C um 14 Uhr
	//rf   		= Relative Feuchte in % um 14 Uhr
	//haude 		= Haudefaktor, von Monat und Bodenbedeckung abhängig

	//satt 		= Sättigungsdampfdruck über Wasser, wird berechnet
	//sattdef 	= Sättigungsdefizit, wird berechnet
	//dampf 		= Dampfdruck in der Luft
	//verdunst 	= Potentielle Verdunstung nach HAUDE
	//z1, z2 	= Zwischenwerte

	$z1 = 7.5 * $temp;
	$z2 = 237.3 + $temp;
	$satt = 6.107 * pow(10, $z1/$z2);
	$dampf  = ($satt*$rf)/100;
	$sattdef = $satt-$dampf;
	$verdunst = $haude*$sattdef;

	return round($verdunst,1);
}

?>

Das Script läuft täglich um 14 Uhr. Da die Berechnung eine Menge in Liter/m² ergibt, lässt sich relativ einfach die auszubringende Menge ermitteln/einstellen. Nach meiner bisherigen Beobachtung deckt sich diese Menge in etwa mit dem was ich gefühlsmäßig mit der Gießkanne ausgebracht hätte.

[1] http://www.hydroskript.de/html/_index.html?page=/html/hykp0505.html

//Edit

Hi,
ich bastel gerade mit Deinem Script - wo stellst du den Haude Faktor ein, also z.B. „Wiese“ oder „Rasen“.

Bei mir wird nur ein Wert ausgegeben und ich bin nicht sicher wofür er ist?

Danke

=> $currenthaude=haudecalc($temp, $hum, $haudefaktoren[date(„m“)-1][0]); <=0 entspricht Wiese & 1 Gras, 2 Mais etc.