FHEM Tutorial-Reihe - Part 18: Telegram-Nachrichten über FHEM senden und empfangen
Hier ist es nun, das vielversprochene Tutorial zum Thema Telegram und die Integration in FHEM. Ich nutze Telegram jetzt schon ein paar Monate, um die Zuverlässigkeit für Euch zu testen. Bisher hatte ich keinen einzigen Ausfall! Also ist diese Lösung wesentlich stabiler als die per WhatsApp, da sich das Protokoll nicht ständig ändert und wir eine offizielle Schnittstelle benutzen.
Unter WhatsApp hatten viele von Euch berichtet, dass die Rufnummer gesperrt wurde und plötzlich keine Nachrichten mehr verschickt werden konnten. Das ist natürlich sehr unbefriedigend und macht wenig Spaß - immerhin soll ein System einfach laufen und zuverlässig sein. Davon ist WhatsApp meiner Meinung nach noch weit entfernt.
Mit dem Smartphone einen neuen Chat öffnen @BotFather
Folgende Befehle braucht ihr:
/newbot
FHEMTest
FHEMTestBot
define teleBot TelegramBot 123456789:AAHcahwzfR4GKauH7g54qiZxeXXXXXXX
attr teleBot pollingTimeout 120
set teleBot reset
Hier noch mein Beispiel-Notify:
teleBot:msgText.* {
if ($EVTPART1 eq 'Licht') {
if ($EVENT =~ 'an') {
fhem("set WZ_Dekolicht on");
fhem("set WZ_Fensterlicht on");
fhem("set WZ_Fernsehlicht on");
}
elsif ($EVENT =~ 'aus') {
fhem("set WZ_Dekolicht off");
fhem("set WZ_Fensterlicht off");
fhem("set WZ_Fernsehlicht off");
}
}
elsif ($EVTPART1 eq 'Zocken') {
fhem("set WZ_Receiver on");
fhem("set WZ_TV power on");
fhem("sleep 15 quiet");
fhem("set WZ_TV input hdmi1");
fhem("set WZ_Receiver input GAME");
fhem("set WZ_Fernsehlicht on");
}
elsif ($EVTPART1 eq 'FireTV') {
fhem("set WZ_Receiver on");
fhem("set WZ_TV power on");
fhem("sleep 15 quiet");
fhem("set WZ_TV input hdmi1");
fhem("set WZ_Receiver input DVD");
fhem("set WZ_Fernsehlicht on");
}
elsif ($EVTPART1 eq 'Nacht') {
fhem("set WZ_Dekolicht off");
fhem("set WZ_Fensterlicht off");
fhem("set WZ_Fernsehlicht off");
fhem("set WZ_Receiver off");
fhem("set WZ_TV power off");
}
elsif ($EVTPART1 eq 'Status') {
my $temperature = ReadingsVal("WZ_Balkontuer", "temperature", "");
fhem("set $NAME send Temperatur: $temperature");
}
elsif ($EVTPART1 eq 'Spritpreis') {
my $spritPreis = ReadingsVal("OUT_Tankstelle", "SuperE5", "");
fhem("set $NAME send Preis: $spritPreis");
}
else {
}
}
Mehr Infos unter https://core.telegram.org/bots#botfather