stoepselinho hat geschrieben:wie kann man variablen (z.b. Temperatur) übersenden? Wie baut man das in das script ein?
Eine Temperatur per Telegram verschicken ist genau so möglich wie sie per mail, pushover oder sonstwas zu versenden.
Das Vorgehen ist immer gleich, du baust dir deine Nachricht in einem String zusammen.
Den String versendest du dann. Was in dem String der nachricht steht ist dir überlassen, wo der hingeht, ebenso.
Ein Beispielscript für Telegram mit Cuxd.exec und einer einfachen Temperaturabfrage wäre dann einfach dieses:
Natürlich musst du in den ersten Zeilen Anpassungen durchführen. 2 & 3 dürften ja klar sein, Zeile 4 gehört ein gültiger Datenpunkt rein für: BidCos-RF.IEQ012345678:1.TEMPERATURE
Um es sinnvoll zu machen ein Temperaturwert.
Wenn du nur die Serial IEQ012345678 nur änderst, geht das schon mal mit vielen Temperatursensoren. (z.B. HM-WDS10-TH-O, HM-WDS40-TH-I, oder auch Thermostate wie das HM-TC-IT-WM-W-EU usw.
Was das Abfragen von Datenpunkten angeht, siehe z.B. in der Signatur die ScriptDoku oder auch
>> H I E R <<
Code: Alles auswählen
!telegram mit cuxd.exec by alchy
string chatid = "+++++++++++";
string botAPI = "++++++++++++++++++++";
object dp = dom.GetObject(ID_DATAPOINTS).Get("BidCos-RF.IEQ012345678:1.TEMPERATURE");
if (dp) { string message = ("es sind JETZT "#dp.Value().ToString(1)#" Grad Celsius");}else{ string message = "Datenpunkt falsch";}
if ( (dom.GetObject(ID_DATAPOINTS)).Get("CUxD.CUX2801001:1.CMD_EXEC")) { dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC").State("/usr/local/addons/cuxd/extra/curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='"#message#"' -d chat_id="#chatid);}
Natürlich geht das auch mit system.exec statt cuxd.exec. (siehe signatur) Keine Info deinerseits, also auch nur allgemeines Zeug meisnerseits.
Natürlich auch mit pushover, mail, Ansage auf Home24Mediaplayer usw. usw.
Alchy