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 ?
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 ;)
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