NEWS
[gelöst] Dateiupload
-
Hi
ich möchte folgendes umsetzen:- Datei als CSV vom Mac mit Schnellaktion und scp an Iobroker senden (Benutzerdaten/CSV/)
- Dort Trigger entweder mit onfile oder über Triggerdatenpunkt via ssh auslösen
- Datei in ein JSON mit einem script umwandeln
Das müsste doch so funktionieren ... tut es aber nicht. Trigger wird ausgelöst, Datei aber nicht geändert
#!/bin/bash for f in "$@" do /usr/bin/scp "$f" pi@192.xxxx:/opt/iobroker/iobroker-data/files/0_userdata.0/CSV/AktuellePatienten.csv /usr/bin/ssh pi@192.xxxx " sleep 2; iobroker state set 0_meine_Daten.0.sevenio.Datei_Hochgeladen_Trigger true; " done
auch damit bin ich nicht weitergekommen:
#!/bin/bash for f in "$@" do /usr/bin/scp "$f" pi@192.xxxx:/tmp/AktuellePatienten.csv /usr/bin/ssh pi@192.xxxx " iobroker file write 0_userdata.0/CSV/AktuellePatienten.csv /tmp/AktuellePatienten.csv; sleep 2; iobroker state set 0_meine_Daten.0.sevenio.Datei_Hochgeladen_Trigger true; " done
Admin v 7.6.3
Hat jemand eine Idee? -
@peterk34 Habe keine Ahnung. ChatGPT sagt dazu:
#!/bin/bash for f in "$@" do echo "Sende Datei $f..." /usr/bin/scp "$f" pi@192.xxx.xxx.xxx:/tmp/AktuellePatienten.csv echo "Schreibe Datei in ioBroker Dateisystem..." /usr/bin/ssh pi@192.xxx.xxx.xxx " iobroker file del 0_userdata.0/CSV/AktuellePatienten.csv; # WICHTIG: alte Datei löschen iobroker file write 0_userdata.0/CSV/AktuellePatienten.csv /tmp/AktuellePatienten.csv; sleep 2; iobroker state set 0_meine_Daten.0.sevenio.Datei_Hochgeladen_Trigger true; " done
-
@peterk34 sagte in Dateiupload:
Hat jemand eine Idee?
Nicht direkt in das Verzeichnis schreiben, sondern mit
iobroker file write
. Dann werden auch die Events ausgelöst und die Meta-Datenbank aktuell gehalten. -
Danke Mathias, genau das wars ...
#!/bin/bash for DateiPfad in "$@" do DateiName=$(basename "$DateiPfad") if [ "$DateiName" = "AktuellePatienten.csv" ]; then /usr/bin/scp "$DateiPfad" pi@192.xxxx:/tmp/AktuellePatienten.csv /usr/bin/ssh pi@192.xxxx " iobroker file write /tmp/AktuellePatienten.csv 0_userdata.0/CSV/AktuellePatienten.csv && rm -f /tmp/AktuellePatienten.csv " rm -f "$DateiPfad" fi done
genauso flutscht es