Telegram

Dieser Teil des Beispiels umfasst eine GET-Anfrage an die REST-API des Telegram-Messengers (Erforderliche TwinCAT-Version: 3.1.4024.10). Mit Hilfe des sogenannten „Telegram-Bots“ kann ein TwinCAT-Benutzer Mitteilungen an einen bestimmten Telegram-Chat senden.

Telegram 1:
Schema Telegram

Der erste Schritt der Herstellung einer Verbindung ist die Erstellung des „Telegram-Bots“. Dafür benötigt der Benutzer ein Telegram-Konto, von dem aus er den Bot kontaktieren kann.

Telegram 2:
Telegram BotFather

Der Bot liefert ein API-Token zurück, das beim Senden von Anfragen aus TwinCAT an die Telegram-API verwendet werden muss. Mit Zugriff auf dieses Token kann ein HTTP-Client jede Funktion steuern, die der Bot bietet. Eine Beschreibung der BOT-API findet sich hier: https://core.telegram.org/bots/api

Das Senden von Mitteilungen aus einer TwinCAT SPS an einen Telegram-Bot kann wie im folgenden Bild dargestellt ablaufen. In diesem Beispiel wird für die Anforderung der Chat-ID eine Mitteilung von der Telegram-Browserversion an den Bot verwendet.

Telegram 3:
Telegram-Chat
PROGRAM MAIN
VAR
    // trigger command execution for Telegram samples
    bGetTelegram                    : BOOL;

    fbHttpClientTelegram            : FB_IotHttpClient :=(sHostName:='api.telegram.org',
                                    bKeepAlive:=FALSE, tConnectionTimeout:=T#10S);

    fbHttpGetTelegram               : FB_TestHTTP_Get_Telegram;
    sMessage                        : STRING(500);
END_VAR
//init client parameters at startup
IF NOT fbHttpClientTelegram.bConfigured THEN
    fbHttpClientTelegram.stTLS.sCA:='C:\TwinCAT\3.1\Config\Certificates\TelegramRoot.cer';
    fbHttpClientTelegram.nHostPort:=443;
    fbHttpClientTelegram.stTLS.bNoServerCertCheck:=FALSE;
END_IF

IF fbHttpClientTelegram.bConfigured THEN
    fbHttpGetTelegram(bSend:=bGetTelegram, fbClient:=fbHttpClientTelegram, sMessage:=sMessage);
END_IF

fbHttpClientTelegram.Execute();