TelegramBot Nachrichten automatisch löschen

Begonnen von dietzi, 25 Januar 2023, 06:48:21

Vorheriges Thema - Nächstes Thema

dietzi

Hallo zusammen,

ich habe mir einen Dialog mit meinem TelegramBot zusammen gebaut. Gerne möchte ich, dass nach einer bestimmten Zeit die Nachrichten automatisch gelöscht werden. Aktuell löse ich das so:

Auszug aus dem notify:
if(ReadingsVal("TelegramBot","msgText","") eq "Testbefehl") {
my $empf=ReadingsVal("TelegramBot","msgPeer","");
fhem("set TelegramBot msg \@$empf Das ist ein Test");
fhem("sleep 2; {TeleDel()}");
}


Auszug aus 99_myUtils.pm
sub TeleDel() {
        my $msgID = ReadingsVal("TelegramBot","sentMsgId","");
        my $msgIDD = ReadingsVal("TelegramBot","msgId","");
        my $empf = ReadingsVal("TelegramBot","msgPeer","");
        fhem("define tmp_delete".rand()." at +00:04:56 set TelegramBot msgDelete ".$msgID." \@".$empf);
        fhem("define tmp_delete".rand()." at +00:04:56 set TelegramBot msgDelete ".$msgIDD." \@".$empf);
}


Jetzt ist es aber so, dass bei gleichzeitigen Nachrichten innerhalb der 2 Sekunden die falsche msgId "gespeichert" wird. Gibt es einen eleganteren Weg die msgId direkt nach dem Senden zu bekommen?

Ich stelle mir das in etwa so vor:
my $replyId = fhem("set TelegramBot msg \@$empf Das ist ein Test");

GunterB

Ich habe keinen Weg gefunden, um die ID der versendeten Nachrichten zweifelsfrei festzustellen.

Du könntest dir aber den versendeten Text merken (erste 5 Zeichen, oder Prüfsumme, o.ä.), und dir in einer Tablle die Nachricht merken, damit du dir die sentMsgId anhand des sentMsgText zuordnen kannst.

So habe ich das in meinen Menüs gelöst.

jhohmann

Hallo, wenn man immer genau einen Empfänger für eine Nachricht hat, werden über meinen hier beschriebenen Weg die meisten Nachrichten auch wieder gelöscht. Zumindest so um die 90%. Einige bleiben trotzdem stehen.
Und die Nachricht sollte nach unter 48 Stunden zum Löschen anstehen. Ältere lassen sich gar nicht löschen.
https://forum.fhem.de/index.php/topic,83589.msg1094055.html#msg1094055
Raspberry Pi 4 - bookworm / EnOcean - Rollo+Licht, deCONZ - Licht+Sensoren, ZWave - CO Messung, HMCCU mit piVCCU - Heizung+Rollo
plus dovecot, minidlna