KS300+MySQL

Hallo,

ich würde gerne die Daten meines KS300 in eine MySQL DB loggen.
Hat jemand so etwas schon aufgesetzt und kann mir vielleicht mit ein paar Scriptschnipseln einen kleinen Anstoß geben? :wink:

Ich habe zwar ein paar KS300 Scripte gefunden, jedoch keines mit DB Anbindung.

Vielen Dank & Grüße
Tho

MySQLData sollte das passende Stichwort sein :slight_smile:

paresy

Hallo,

bei mir habe ich es (quick&dirty) folgendermaßen implementiert. Auf jeden Fall kommen erst einmal Werte in MySQL an:

(XXX durch eigene Werte ersetzen, Boolean Regen habe ich momentan deaktiviert (=NULL))

<?

//$dbh=mysql_connect("$SQLHOST", "$db_user", "$db_pass");

$Date= date("Y-m-d");
$Time= date("H:i:s");

$KS300_Temp=GetValue(XXX);
$KS300_Wind_Speed=GetValue(XXX);
$KS300_Moisture=GetValue(XXX);
$KS300_Is_Raining=GetValue(XXX);
$KS300_Rain_Amount=GetValueInteger(XXX);
$Liter_heute=GetValue(XXX);

//$dbh=mysql_connect("$server", "$user", "$passw", "ips_meg");
$dbh=mysql_connect('XXX', 'XXX', 'XXX');
if (!$dbh) {
   echo "Connect error!";
   exit;
}
echo mysql_error();
// benutze Datenbank XXX

$db_selected = mysql_select_db('XXX', $dbh);
if (!$db_selected) {
    die ('Kann $db nicht benutzen : ' . mysql_error());
}

$result = mysql_query("INSERT INTO ks300 (`Index`, `Datum`, `Uhrzeit`, `Temperatur`, `Windgeschwindigkeit`, `Luftfeuchte`, `Regen`, `Regenmenge`, `Liter_heute`) VALUES (NULL, '$Date', '$Time', $KS300_Temp, $KS300_Wind_Speed, $KS300_Moisture, NULL, $KS300_Rain_Amount, $Liter_heute)");
if (!$result) {
   echo "Insert Error! " . mysql_error();
}

mysql_close($dbh);

?>

Edit:

Habe nun einmal kurz geschaut, MySQLData sieht natürlich als Komplettpaket super aus. Werde dies wohl demnächst auch einmal ausprobieren.

Super, Danke. Hab mir jetzt mal was zusammengebastelt.

Allerdings besteht noch ein kleines Problem:
Ich habe auf das Script ein Zyklisches Event gesetzt für alle 15min, es läuft jedoch ab und zu mal doppelt, sodass ich 19:45, 20:00, 20:01, 20:16 in der DB habe.
Jemand einen Tipp wie das zu Stande kommt?

Grüße
Tho

Jetzt hat er in einer Stunde 00:00-01:00 garkein Event ausgelöst, obwohl es ja alle 15min laufen sollte…
Jemand einen Tipp? :confused:

triggere es doch gar nicht zyklisch, sondern durch die reinkommenden Daten, dann schreibt es genau nur dann Daten weg wenn aktuell welche anliegen. Zu anderen Zeiten etwas zu speichern ist ohnehin nur potenziell fehlerträchtig.

Die zeitlichen „Zwischenräume“ zwischen den ankommenden Datenpaketen muß man ohnehin als „konstant“ mit dem letzten vorher eintreffenden Wert annehmen, denn andere hat man ja nicht. Aber das ist eine Frage der Abfrage der Daten, nicht von deren Speicherung.

Wichtig: Nicht bei Datenänderung triggern, sondern bei Aktualisierung. Ein zum vorherigen Messwert identischer Wert ist immerhin auch eine gesicherte Aussage, nämlich das unsere Annahme, dass seit dem alles konstant ist, zumindest nicht ganz abwegig ist.

Die KS300 sendet so ca. alle 6-10 Minuten daten, leider nicht öfter. Was das für die Sicherheit z.B. von Aussagen zu Windspitzen (Sturmalarm usw) bedeutet, dürfte klar sein. Es ist also höchst zufällig, dass etwas selbst wiederum sehr kurzlebiges wie eine Böe auch noch kurz vor Sende-Event aufgetreten ist.

Insofern sollte man dann schon diese wertvoll-weil-seltenen Werte direkt triggern und wegschreiben, und nicht noch wiederum im zyklischen Polling-Intervall der Gefahr des Übersehens aussetzen.

Gruß Gerd

Moin Gerd,

Die KS300 sendet so ca. alle 6-10 Minuten daten, leider nicht öfter.

Einspruch: Deine Aussage trifft nicht zu.

Messwagen stand bei mir im Hof.

Auswertung ist dann was anderes.

Mir persönlich reicht es eigentlich alle 15min in die DB zu loggen, sonst habe ich nach ein paar Jahren Millionen Datensätze drin, die ich für meine Auswertungen nicht wirklich benötige. Ich will nur ein paar Tages / Wochen / Monatsgraphen auf die Homepage und ins IPSHomecontrol setzen.
Außerdem sendet die Station noch zusätzlich an ein paar private Wetternetzwerke (awekas.at, wetterarchiv.wetter.com).

Warum läuft das Event manchmal doppelt, wenn allec 15,min eingestellt ist? Ist das eine Wine Auswirkung / Bug?

Grüße
Tho

Moin,
bei mir trifft sie zu. Ich schreibe alle Werte onUpdate getriggert in eine Datenbank und sehe es da. Aber auch ohne DB, wenn ich z.B. Log ausgebe, sehe ich derartige Zykluszeiten.

Vielleicht andere Geräte-Serie? Wie sind bei Dir denn die Zeiten?

Was anderes ist es, kurz nach Batterie einlegen, da sendet die Station alle paar Sekunden (30?), ich glaube 10 oder 15 min lang. Das steht aber auch im „Waschzettel“ und dient der Synchronisation bzw. Anmeldung mit/an den Empfängern, konnte ich auch nachvollziehen.

Edit:

Ich sehe das natürlich aus Sicht der im IPS, aber auch an der WS300 eintrudelnden Daten. Was ansonsten an „Funkmüll“ von der Kiste kommt, kann wirklich nur ein Messwagen bzw. -empfänger zeigen. Da gebe ich dir Recht.

Hallo Gerd,

eventuell solltest Du ja noch mal den (Waschzettel(deine Worte) der KS300) studieren.

In der Regel sendet sie alle 155sec. Was sie auch Zweifels ohne macht.

Das Problem sind Störungen.

Meine Daten schwanken im Moment zwischen 12 und 22 Meldungen in der Stunde. der ganze Firlefanz ist nicht ohne.
Der Messwagen war ja da, ist ganz interessant. :slight_smile:

durchaus möglich. wie gesagt, ich sehe das aus „netto“-Sicht, also wenn im IPS wirklich was als ankommend (onUpdate) gewertet wird.

Störungen, sicher, ich habe da z.B. mein Telefon in Verdacht. Gigaset-ISDN-Anlage mit mehreren Mobilteilen. Zentrale liegt ziemlich in der Strecke KS300-FHZ, wenn auch gut eine Etage tiefer.

Ok, ich plädiere so langsam für die Wiedereinführung der Signalübertragung per Trommel. Wozu gibts das Morsealphabet. Das war wenigstens schön fehlertolerant, selbst gegen andere CW-Stationen :smiley: