Seite 3 von 3

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

Verfasst: 07 Sep 2025, 13:38
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 ?

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

Verfasst: 07 Sep 2025, 14:26
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

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

Verfasst: 07 Sep 2025, 15:06
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