ich steh mal wieder vor einem Problem:
Eine Wetterstation sendet alle 60 Sekunden ihre Daten auf einen Webspace, die Daten kann man dort per API abrufen.
Nun würde ich gerne über 10 Minuten die Windböen, d.h. 10 Messwerte in einer TXT-Datei abspeichern und immer nur die höchste Böe aus dieser Datei ausgeben.
D.h. in die Datei sollen immer die 10 letzten Böen eingetragen werden und dann aus diesen 10 Böen die höchste ausgegeben werden.
Dazu habe ich ein Code, den mir ein netter Forumskollege mal in der Vergangenheit geschrieben hatte und dieser Code, funktioniert auch einwandfrei bei meiner anderen Station, doch nun wollte ich ihn bei dieser zweiten Station auch anwenden doch nun wird die TXT-Datei einfach nicht beschrieben.
Was mache ich falsch? Ich habe ihn 1:1 kopiert und will ihn bei der neuen Station anwenden, doch hier funktioniert er nicht mehr, ich weiß echt nicht warum.
zur Erklärung:
Dem Code ist noch ein weiterer Code vorgeschaltet, der die API der Wetterstation auf einem anderen Server abruft.
Dieser Abruf funktioniert einwandfrei.
Die Codes werden zusammen per Cronjob alle 60 Sekunden Sekunden gestartet und die Variablennamen habe ich natürlich an die neue Station angepasst, d.h. die txt-Datei bekam natürlich einen neuen Namen und auch die stationseigene Variable über die sie die aktuelle Böe überträgt bzw. unter der die Böe in der API zu erreichen ist wurde angepasst.
Die aktuelle Böe wird ja auch in das Script geschrieben und auch ausgegeben, doch in der txt-Datei wird sie nicht abgelegt und hier weiß ich nun einfach nicht weiter, wieso das so ist.
Der Cronjob stößt das Script an, daran kann es schon mal nicht liegen.
Code: Alles auswählen
//höchste Böe in 10 Minuten
$ld = 'boe.txt';
$a = explode( ';', file_get_contents($ld) );
$a[] = $windgust; //Böenvariable der Station
if ( count($a) > 10 ) //alle 10 böen innerhalb 10 Minuten speichern
array_shift( $a );
file_put_contents( $ld, implode(';', $a) );
$boe = max($a); //höchste der 10 gespeicherten böen ausgeben
echo $boe;
Kollege meinte, ich soll mal ein error log script oben einbauen, dies liefert folgendes Ergebnis:
- precip locked - uv locked - Transfer OKsuccess
Somit scheint mein Script zu funktionieren, doch wieso werden die Werte nicht in die TXT-datei geschrieben?
Was mache ich da nur falsch, denn wie gesagt, genau dieses Script läuft bei der anderen Station einwandfrei, doch wieso läuft es bei der neuen Station nun nicht?
Vielen Dank für die Hilfe.
LG Frank