FOSHKplugin - Erzeugung von WSWin-/Import von Ecowitt-Daten

Für Geräte von froggit
exxes
Offline
Beiträge: 80
Registriert: 02 Dez 2022, 22:24
Wohnort: Kreuzau
Hat sich bedankt: 8 mal
Kontaktdaten:

Re: FOSHKplugin - Erzeugung von WSWin-/Import von Ecowitt-Daten

#21

Beitrag von exxes »

Hallo zusammen,

habe da ein kleines Problem. Verwende die neueste version FOSHKplugin auf einem RASPI 4 und läuft auch alles einwandrei.
Nun möchte ich ebenfalls WSWin mit den Daten der Ecowitt versorgen. Habe folgenden FWD in Foshkplugin eingetragen:

[Forward-4]
FWD_CMT = WSWIN Forward
FWD_TYPE = WSWIN
FWD_URL = http://192.168.1.64:80/wswin/import/sendfile.php
FWD_SID = user
FWD_PWD = password
FWD_INTERVAL = 60
FWD_ENABLE = True

erhalte dann im snd-Logfile folgenden Eintrag.

07.09.2025 13:28:36.997 <ERROR> FWD-04: post http://192.168.1.64:80/wswin/import/wswin.csv : 404

hat da jemand eine Idee wie ich weiter komme ?
Mit lieben Grüßen aus der wunderschönen Eifel, Thomas https://www.Kreuzau24.de
Ecowitt WittBoy GW2001 / Davis Vantage Pro2 aktiv Plus / Raspberry Pi 4 Modell B 8GB / Personal Weather Tablet / CumulusMX v4.6.1 build 4121
Benutzeravatar
olicat
Offline
Beiträge: 2460
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 44 mal
Danksagung erhalten: 495 mal
Kontaktdaten:

Re: FOSHKplugin - Erzeugung von WSWin-/Import von Ecowitt-Daten

#22

Beitrag von olicat »

Hi!
hat da jemand eine Idee wie ich weiter komme ?
Warum willst Du die CSV auf einem Webserver ablegen?
Aktuell fehlt dazu offenbar die entsprechende sendfile.php - daher auch der 404-Fehler (siehe auch hier).

Im lokalen Netz ist es normalerweise sinnvoller, die Datei auch lokal im Dateisystem anzulegen, daher waere als Ziel etwas wie
FWD_URL = /data/FOSHKplugin/
oder
FWD_URL = /srv/oli-ubuntu2/loxberry-last/own-wswin.csv
sinnvoller.
Also ein lokal erreichbares Verzeichnis, das sich ggf. sogar als Samba-Freigabe nutzen laesst.

Wenn es die Loesung ueber http sein muss, solltest Du fuer eine passende sendfile.php sorgen:

Code: Alles auswählen

<?php
  # sendfile.php - you may name this script as you like
  # demo script for receiving files from FOSHKplugin via http/POST
  # Oliver Engel, 26.10.2022

  # for debug
  $debug = False;

  # set user & password to allow upload
  $known_user = "username1";
  $known_password = "secret!";
  
  # set another user & password to allow upload
  $known_user2 = "username2";
  $known_password2 = "secret!";

  # process incoming http/POST message
  # parameters passed by FOSHKplugin:
  # user, password, filename, append, fwd_type, prgname, prgver
  if (isset($_POST['user'])) { $user = $_POST['user']; } else { $user = ""; }
  if (isset($_POST['password'])) { $password = $_POST['password']; } else { $password = ""; }
  if (isset($_POST['filename'])) { $filename = $_POST['filename']; } else { $filename = ""; }
  if (isset($_POST['append'])) { $append = $_POST['append']; } else { $append = False; }
  if (isset($_POST['fwd_type'])) { $fwd_type = $_POST['fwd_type']; } else { $fwd_type = ""; }
  if (isset($_POST['prgname'])) { $prgname = $_POST['prgname']; } else { $prgname = ""; }
  if (isset($_POST['prgver'])) { $prgver = $_POST['prgver']; } else { $prgver = ""; }
  if (isset($_POST['content'])) { $content = $_POST['content']; } else { $content = ""; }

  # debug
  if ($debug) {
    $Debug_File = fopen("debug.log", 'a');
    fwrite($Debug_File, date("d.m.y H:i:s",time()).";".$user.";".$filename.";".$append.";".$fwd_type.";".$prgname.";".$prgver.";".rtrim($content)."\r\n");
    fclose($Debug_File);
  }

  # WSWin header for CSV files
  $WSWinCSVHeader = ";;1;17;133;2;18;35;36;45;134;42;41;3;19;4;20;5;21;6;22;7;23;8;24;29;30;31;32;25;26;27;28;37;13;14;15;16\r\n";

  # only process with known credentials
  if (($known_user == $user and $known_password == $password) or ($known_user2 == $user and $known_password2 == $password)) {
    if ($fwd_type == "SAVE" || $fwd_type == "BANNER") {
      if (move_uploaded_file($_FILES['image']['tmp_name'], $filename)) {
        echo "file ".$filename." saved";
        $rcode = 200;
      } else {
        echo "error while saving ".$filename;
        $rcode = 500;
      }
    } else {
      if ($append == "True") { $Saved_File = fopen($filename, 'a'); } else { $Saved_File = fopen($filename, 'w'); }
      if ($fwd_type = "WSWIN" && !(file_exists($filename))) { fwrite($Saved_File, $WSWinCSVHeader); }
      fwrite($Saved_File, $content);
      fclose($Saved_File);
      echo "ok";
      $rcode = 200;
    }
    http_response_code($rcode);
  } else {
    echo "unauthorized access!";
    http_response_code(401);
  }
?>
Oliver
exxes
Offline
Beiträge: 80
Registriert: 02 Dez 2022, 22:24
Wohnort: Kreuzau
Hat sich bedankt: 8 mal
Kontaktdaten:

Re: FOSHKplugin - Erzeugung von WSWin-/Import von Ecowitt-Daten

#23

Beitrag von exxes »

Hallo Oliver,

ich möchte die Datei auf dem Webserver ablegen damit WSWIn mittels Dateiüberwachung die Daten auslesen kann.

Ich probiere es mal so umzusetzen wie Du beschrieben hast, Danke Dir
Mit lieben Grüßen aus der wunderschönen Eifel, Thomas https://www.Kreuzau24.de
Ecowitt WittBoy GW2001 / Davis Vantage Pro2 aktiv Plus / Raspberry Pi 4 Modell B 8GB / Personal Weather Tablet / CumulusMX v4.6.1 build 4121
Antworten