Meldungen per Telegram melden

Überwachung der Solaranlage per eMail oder Pushover und Steuerung von Geräten mit Smart Home Zentralen. PV-Monitoring und Sonoff Geräten mit Tasmota Firmware
dl8ny
Beiträge: 26
Registriert: Sa 14. Okt 2017, 19:57

Meldungen per Telegram melden

Beitrag von dl8ny » Mo 27. Mai 2019, 22:18

Hallo,

ich nutze Telegram und wollte die Meldungen per Telegram bekommen, damit ich nicht noch einen Messenger auf dem iPhone habe. Nach einigem Test und Experimentieren funktioniert es.

Die Einstellungen in der user.config.php werden die Einstellungen die für Pushover vorgesehen sind auch für Telegram benutzt, also $API_Token = bot Nr.,
$User_Key[1] = chatID. Wer das jetzt übernehmen möchte und keine Erfahrungen mit Telegram hat, bitte erst googlen wie man einen Bot erstellt und wie man an die chatID kommt.

Die Funktion "send Message" muss geändert werden, hier der Code (einige Zeilen bleiben erhalten):


function send_message($APP_ID, $UserToken, $Message) {
Global $funktionen;

$url = 'https://api.telegram.org/bot'.$APP_ID.'/sendMessage';
$fields = array(
'chat_id' => urlencode($UserToken),
'text' => urlencode($Message)
);

foreach ($fields as $key => $value) {
$fields_string .= $key . '=' . $value . '&';
}
rtrim($fields_string, '&');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);

$result = curl_exec($ch);

// Diese Zeilen sind von der alten Funktion!!

if (curl_errno($ch)) {
$funktionen->log_schreiben("Curl Fehler! Daten nicht zur entfernten InfluxDB gesendet! Curl ErrNo. ".curl_errno($ch)," ",5);
return false;
}
if ($rc_info["http_code"] == 200 or $rc_info["http_code"] == 204) {
$funktionen->log_schreiben("Daten zur InfluxDB gesendet. ","* ",9);
}
elseif ($rc_info["http_code"] == 401) {
$funktionen->log_schreiben("Influx UserID oder Kennwort ist falsch.","* ",5);
return false;
}
curl_close($ch);

return true;
}


Viel Spaß damit

Klaus