FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: Ralph am 22 März 2018, 17:11:01

Titel: [gelöst] telegram datei-inhalt versenden
Beitrag von: Ralph am 22 März 2018, 17:11:01
Ich suchte leider vergeblich, darum hier die Frage:

Ich möchte den Inhalt (nicht den dateinamen) mittels telegram versenden.

set mein_bot message @@meinziel /opt/fhem/log/status.txt

versendet den Dateinamen.

Wie versendet es den Inhalt der Datei idealstenfalls als reiner Text ?
Titel: Antw:telegram datei-inhalt versenden
Beitrag von: Wuehler am 22 März 2018, 18:05:55
Du könntest die Datei vorher in eine Variable einlesen und dann den String versenden oder evtl die Bot-Funktionen sendDocument und InlineQueryResultDocument nutzen. Dazu brauchst du aber ein pdf.
Habe beides bisher aber auch nicht gemacht. Ist also als Denkanstoß zu sehen ;)
Titel: Antw:telegram datei-inhalt versenden
Beitrag von: Ralph am 23 März 2018, 23:15:45
Nun antworte ich mal - nach langer Sucherei - mir selbst.

Das erste Problem war, dass das - bei mir noch vorhandene - Modul die zeilenweise Ausgabe noch nicht unterstützte.
Irgendwo fand ich, dass das noch nachgebaut werden musste.
Nach einem Update ging es dann.

Mit einem bloßen Fileread ging es dann immer noch nicht, bis ich das mit dem join dann fand.

meine sub sieht nun so aus:

sub readfile($) {
my ($dateiname) = @_;
my ($error, @content) = FileRead({FileName => $dateiname, ForceType => "file"});
my (@content) = join("\n",,@content);
fhem("set mein_bot message @content)");
return
}


Erzeugt wird meine zeilenweise Liste mit:

{schrdatei(("TH_Kueche ".ReadingsVal("TH_Kueche","state","0")."\r\n"),'>/opt/fhem/log/status.txt')}
{schrdatei(("TH_SchlaZi ".ReadingsVal("TH_SchlaZi","state","0")."\r\n"),'>>/opt/fhem/log/status.txt')}
{schrdatei(("TH_WoZi ".ReadingsVal("TH_Z_Z","state","0")."\r\n"),'>>/opt/fhem/log/status.txt')}
{schrdatei(("TH_Aussen ".ReadingsVal("TH_Aussen","state","0")."\r\n"),'>>/opt/fhem/log/status.txt')}
{schrdatei(("InternetSpeed ".ReadingsVal("FB_Link","state","0")."\r\n"),'>>/opt/fhem/log/status.txt')}
{schrdatei(("IP-Adresse ".ReadingsVal("FritzBox","box_ipExtern","0")."\r\n"),'>>/opt/fhem/log/status.txt')}
{readfile("/opt/fhem/log/status.txt")}


Möge es wem helfen