monats-export-datei

Fragen, Anregungen zur PC-Wetterstations-Software

Moderatoren: Werner, Tex, weneu

Antworten
Harry120566
Beiträge: 74
Registriert: 11 Jun 2008 16:49
Wohnort: Hiltenfingen
Kontaktdaten:

monats-export-datei

Beitrag von Harry120566 »

hallo gemeinde gibt es eine Möglichkeit, das die Monats-Exportdatei (EXP**_**.csv) automatisch jede stunde neu exportiert wird, wäre für mich wichtig.

Danke schon mal im voraus

Gruß
Harry
Benutzeravatar
weneu
Site Admin
Beiträge: 11572
Registriert: 22 Feb 2002 01:00
Wohnort: Donauwörth
Danksagung erhalten: 18 mal
Kontaktdaten:

Beitrag von weneu »

Hallo Harry,
nein, aber das ist auch gar nicht nötig. Du kannst nämlich die Erzeugung der ws_newdata.csv aktivieren und dann hast du fortlaufend die Daten in einer csv-Datei
"Datei - Exportieren - auto. Datensatz exportieren"
Harry120566
Beiträge: 74
Registriert: 11 Jun 2008 16:49
Wohnort: Hiltenfingen
Kontaktdaten:

Beitrag von Harry120566 »

ja schon, aber dann muss ich sie ja per hand umbenennen, da ich ein PHP-Script habe das auf die Datei "Exp**_**.csv" zugreift oder versteh ich da jetzt was falsch.....


Gruß´Harry
Benutzeravatar
weneu
Site Admin
Beiträge: 11572
Registriert: 22 Feb 2002 01:00
Wohnort: Donauwörth
Danksagung erhalten: 18 mal
Kontaktdaten:

Beitrag von weneu »

Hallo,
nein, ich glaube, Du verstehst nichts falsch, Du hast nur zu wenig Informationen gegeben.
Trotzdem: ein automatischer Export der Monatsdatei ist nicht möglich.
Da müsstest Du schon per benutzerdefinierter Datei eben die Exportdatei "nachbilden", was ich aber nicht unbedingt empfehlen würde.
Es sollte sich ja ein PHP-Script entsprechend anpassen lassen.
Harry120566
Beiträge: 74
Registriert: 11 Jun 2008 16:49
Wohnort: Hiltenfingen
Kontaktdaten:

Beitrag von Harry120566 »

schau doch mal auf "http://www.wetter-hilfe.de/, vorbei unten rechts in der Auswahlliste: "Temperatur-Diagramme", genauso würde ich es auch haben wollen
Benutzeravatar
weneu
Site Admin
Beiträge: 11572
Registriert: 22 Feb 2002 01:00
Wohnort: Donauwörth
Danksagung erhalten: 18 mal
Kontaktdaten:

Beitrag von weneu »

Hallo Harry,
das hilft mir nichts, das Diagramm anzusehen. Dein PHP-Script, das es erzeugt, müsste bearbeitet (angepasst) werden. Aber das ist keine WSWIN-Sache, sondern ein PHP-Problem.
Harry120566
Beiträge: 74
Registriert: 11 Jun 2008 16:49
Wohnort: Hiltenfingen
Kontaktdaten:

Beitrag von Harry120566 »

Sorry werner, aber in PHP habe ich keine Ahnung, habe es so übernommen wie ich es bekommen habe, leider kann ich hier im forum keine Datei anhängen sonst hätte ich sie angehängt, kann ja mal den Code einfügen wenn es was hilft:

<?
/*
// Version 0.2.1

Zweck des Programms:
Erstellen einer HTML Temperatur-Monatsübersicht aus Wetterdaten, die in
einem Textformat als Datei vorliegen.

Aufrufbeispiel:
http://www.meinedomain.de/pfad/thermoiso.php?m=200710
"200710" steht dabei für Oktober 2007, Codierung Jahr/Monat im Format yyyymm

Unterstützte Datenformate:
- Exportiertes Textdatenformat der HeavyWeather-Software für WS-2300
- Historylog-Format der Open2300 Software
- Exportiertes Textdatenformat der HeavyWeather-Pro-Software für WS-3600
- Textformat des Temperatur-Feuchte-Klimaloggers TFD128
- Exportierte Monatsdateien der WsWIN-Software im CSV-Format

Copyright © 2007 Juergen Schlottke, Elmshorn (Germany).
Contact: http://www.wetter-hilfe.de



///////////////////////////////////////////////////////////////
// Beginn des Variablenbereichs, bitte anpassen nach Bedarf! //
///////////////////////////////////////////////////////////////

$stationname="86856 Hiltenfingen ('-' = kein Wert verfügbar)"; // Angezeigter Stationsname

// Dateiname der Text-Wetterdaten, bitte in der richtigen Zeile eintragen!
// Nicht benötigte Dateinamen auf Leerstring "" setzen oder auskommentieren!
// Automatische Bildung von Dateinamen mit Hilfe der Platzhalter [mm] und [jj]
// Beispiel: Dateiname "EXP[mm]_[jj].CSV" steht z.B. für Datei "EXP11_07.CSV"
$ws2300file=""; // HeavyWeather WS-2300, exportierte Textdatei
$open2300file=""; // OPEN2300 Software, Historylog WS-2300
$ws3600file=""; // HeavyWeather Pro WS-3600 exportierte Textdatei
$tfd128file=""; // TFD128 exportierte Datenlogger Textdatei
$wswinfile="EXP[mm]_[jj].CSV"; // WsWIN exportierte Monatsdatei, Beispiel: EXP[mm]_[jj].CSV
$wswt=4; // Feldnummer mit den Temperaturdaten
$wswf=13; // Feldnummer mit den Luftfeuchtedaten (Aussen)
$wswfi=12; // Feldnummer mit den Luftfeuchtedaten (Innen)
$wswr=22; // Feldnummer mit den Luftfeuchtedaten (Innen)

/////////////////////////////////////////////////////////////////////////////////////
// Ende des Variablenbereichs, Änderungen nach dieser Zeile nur auf eigene Gefahr! //
/////////////////////////////////////////////////////////////////////////////////////


$timeframe=$_GET["m"]; // Jahr und Monat der Auswertung als Parameter auslesen
$timeframe=substr($timeframe."000000",0,6);
$timemonth=substr($timeframe,4,2);
$timeyear=substr($timeframe,0,4);

// Vorbesetzung aller 24*31 Datenfelder mit "-" für den Fall,
// daß keine Stundenwerte gefunden werden
$values=array();
for ($i=0;$i<24;$i++)
{
for ($j=1;$j<=31;$j++)
{
$values[$i][$j]='-';
}
}

ab hier wurde vom Admin der restliche Code entfernt
hier der Restcode bezüglich WSWIN

function read_wswinfile($historyfile)
// Einlesen der Datenwerte aus exportierten Monatsdaten von WsWIN
// Automatische Trennzeichenerkennung entweder Semikolon oder Komma
{
global $values,$timeframe,$wswt,$wswf;
// Dateiname automatisch bilden
$historyfile=str_replace("[mm]",substr($timeframe,4,2),$historyfile);
$historyfile=str_replace("[jj]",substr($timeframe,2,2),$historyfile);
if (!(file_exists($historyfile)))
{ echo "<H1><br>Fehler</h1>Datei nicht gefunden ($historyfile)";exit;}
$wswt--;
$wswf--;
// Einlesen der Daten aus Textdatei
$fil=fopen($historyfile,"r");
if ($fil=== FALSE){ die("Fehler beim Lesen der Datei $historyfile!");};
// Zuerst: Automatische Erkennung des Feldtrenners
$streng = fgets($fil, 1000);
$komma=strtok($streng,",");
$semikolon=strtok($streng,";");
if (strlen($komma)<strlen($semikolon)) $ftren=","; else $ftren=";";
// Dann in einer Schleife alle Datensätze verarbeiten
$i=0;
while (!feof($fil))
{
$streng = fgets($fil, 1000);
$components = explode($ftren, $streng);
if (strcmp(substr($components[0],6,4).substr($components[0],3,2),$timeframe)==0)
{ // Ja, Daten liegen im gewünschten Zeitfenster
$i=intval(substr( $components[1],0,2)); // Stunde
$j=intval(substr( $components[0],0,2)); // Tag
if (strcmp($_GET["t"],"f")!=0)
{
$curvalue=round(str_replace(",",".",$components[$wswt]),0);
// Temperaturen über 70 Grad ignorieren (Meßfehler)
if ($curvalue<70) $values[$i][$j]=$curvalue;
}
else
{
$curvalue=round(str_replace(",",".",$components[$wswf]),0);
// Feuchtewerte über 100% ignorieren (Meßfehler)
if ($curvalue<=100) $values[$i][$j]=$curvalue;
}
}
}
fclose($fil);
}



if (strcmp($ws2300file,"")!=0) read_ws2300file($ws2300file);
if (strcmp($open2300file,"")!=0) read_open2300file($open2300file);
if (strcmp($ws3600file,"")!=0) read_ws3600file($ws3600file);
if (strcmp($tfd128file,"")!=0) read_tfd128file($tfd128file);
if (strcmp($wswinfile,"")!=0) read_wswinfile($wswinfile);

// Datei ist jetzt fertig eingelesen, das $values-Array mit vorhandenen Daten gefüllt

if (strcmp($_GET["t"],"f")!=0) $artderuebersicht="Temperatur-Index"; else $artderuebersicht="Luftfeuchte-Index";

// Ab hier: Ausgabe einer HTML-Tabelle

entfernt
Benutzeravatar
weneu
Site Admin
Beiträge: 11572
Registriert: 22 Feb 2002 01:00
Wohnort: Donauwörth
Danksagung erhalten: 18 mal
Kontaktdaten:

Beitrag von weneu »

Hallo Harry,

zunächst: ich erlaube mir, dein script zu kürzen und den entscheidenden Punkt hervorzuheben, denn das Wesentliche steht ziemlich oben.
Es sieht aber so aus, als ob Du tatsächlich auf die Monats-Exportdatei angewiesen bist, denn das script ist "monatsweise" orientiert.
So gesehen hilft Dir dann auch die von mir genannte ws_newdata.csv nichts, denn die wird ja nicht monatsweise, sondern fortlaufend erzeugt.
Du hast also nur 2 Möglichkeiten:
- die Monatsdatei manuell zu exportieren
oder, wie von mir schon gesagt,
- die Exportdatei in Form einer benutzerdefinierten Datei nachzubilden.
Nachtrag:
Vielleicht kann ja ein PHP-Fachmann, der viel Zeit hat, noch eine andere Möglichkeit finden, wenn ihm das komplette Script zugesandt wird.
Antworten