? Text aus Datei im DebianMailBody verschicken ?

Begonnen von Ralph, 26 Januar 2018, 16:41:00

Vorheriges Thema - Nächstes Thema

Ralph

Hallo allerseits, ich bitte um Hilfe,
habe mich soweit durchgekämpft, dass meine DSL-Unzuverlässigkeit protokolliert wird.


Internals:
.
.
.
Attributes:
   IODev      CUL_0
   room       U_DSL
   userReadings dsltxt { my ($error, @content) = FileRead({FileName => "/opt/fhem/log/dsl.txt", ForceType => "file"}); return join("\n", @content)}



Der Befehl ist in userReadings da und funktioniert auch.

Oder gibts womöglich eine bessere Lösung ?
Der Inhalt von "/opt/fhem/log/dsl.txt" soll im Body einer DebianMail verschickt werden, etwa wie:

DebianMail('meine@mail.adr',"DSL-Protokoll",ReadingsVal("DSLon", "dsltxt","") ,);
FHEM auf RaspberryPi3 mit Geekworm USV und SignalDUINO 433MHz und HM-MOD-RPI-PCB mit 3 HM-Sec-SD-2, 5 FHT, 2 RM 100-2 Uni S, 2 HMS100, 6 CUL_WS, 6 CUL_FHTTK, 11 FS20 und 7 FS20V Spannungsüberwachungen

KernSani

Hi Ralph,

mir ist unklar, wo dein Problem liegt... Kannst du das etwas genauer erläutern?

Grüße,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Ralph

Hi Oli,
danke für die Rückmeldung.

Nun ja, mir scheint der Weg etwas umständlich.
Daher die Frage, ob es auch etwas "direkter" geht ?

Die einzulesende Datei ist intern schon richtig als Text formatiert und könnte in einem Rutsch in das Bodytextfeld der Mail importiert werden.
Wenn ich nur wüsste, wie ?

Gruß Ralph
FHEM auf RaspberryPi3 mit Geekworm USV und SignalDUINO 433MHz und HM-MOD-RPI-PCB mit 3 HM-Sec-SD-2, 5 FHT, 2 RM 100-2 Uni S, 2 HMS100, 6 CUL_WS, 6 CUL_FHTTK, 11 FS20 und 7 FS20V Spannungsüberwachungen

KernSani

Sorry, ich verstehe es immernoch nicht... Du hast ja ein Coding angegeben, das grundsätzlich mal nicht schlecht aussieht
DebianMail('meine@mail.adr',"DSL-Protokoll",ReadingsVal("DSLon", "dsltxt","") ,);
wo hängt's denn jetzt?
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Ralph

Mein Wunsch wäre
nämliche Inhalt der Datei eben nicht in FHEM zuwischenzubunkern und dort abzurufen, sondern
diesen direkt in einem Aufruf einzuhängen, z. B. wie bei einen ,,cat dateiname".

Mein Problem ist nämlich der zeitliche Verlauf.
Unmittelbar vor dem Aufruf wird noch etwas in die Datei geschrieben.
Bei der jetzigen Methode kommt das oft nicht mit.
Würde ich es direkt aufrufen können, dann käme es mit.
FHEM auf RaspberryPi3 mit Geekworm USV und SignalDUINO 433MHz und HM-MOD-RPI-PCB mit 3 HM-Sec-SD-2, 5 FHT, 2 RM 100-2 Uni S, 2 HMS100, 6 CUL_WS, 6 CUL_FHTTK, 11 FS20 und 7 FS20V Spannungsüberwachungen

KernSani

Ahso, jetzt verstehe ich... ich würde in der myUtils sowas in der Art anlegen:


sub sendeDatei() {
my ($error, @content) = FileRead({FileName => "/opt/fhem/log/dsl.txt", ForceType => "file"});
DebianMail('meine@mail.adr',"DSL-Protokoll",join("\n", @content),);
}

(das ist jetzt ohne Prüfung aus deinem Code kopiert)
Die sub kannst du dann in einem notify (oder wie auch immer das Mail ausgelöst werden soll) aufrufen.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

JensS

qx(cat /opt/fhem/log/dsl.txt) sollte auch funktionieren.

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Ralph

Moin,
bitte verzeiht die späte Antwort, war auf Reisen.

Danke, die sub aus Antwort #5 funktioniert. Die muß ich noch aufbohren, so dass ich den subject-text und den Dateinamen der zu sendenden Datei an die sub übergeben kann.

Danke, mit qx aus Antwort #6 habe ich mal auf der Befehlszeile herumlaboriert.
Mich verwirrt, dass bei
{qx(cat /opt/fhem/log/dsl.txt)}
der Inhalt der Datei angezeigt wird, jedoch bei Einbau in den Aufruf

{DebianMail('meine@mail.adr',"DSL wieder ON mit ".ReadingsVal("FB_Link", "state", 0),{qx(cat /opt/fhem/log/dsl.txt)},"")}

nicht der Inhalt der Datei, sondern ein Hash-Code im Mail-Body steht.
Ich hätte da auch den Inhalt erwartet.

Oder ich kapiere wieder mal was nicht ?
FHEM auf RaspberryPi3 mit Geekworm USV und SignalDUINO 433MHz und HM-MOD-RPI-PCB mit 3 HM-Sec-SD-2, 5 FHT, 2 RM 100-2 Uni S, 2 HMS100, 6 CUL_WS, 6 CUL_FHTTK, 11 FS20 und 7 FS20V Spannungsüberwachungen