Systemvariable via Telegram versenden / wie ?

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

thorkillar
Beiträge: 48
Registriert: 24.01.2017, 16:46

Systemvariable via Telegram versenden / wie ?

Beitrag von thorkillar » 16.10.2017, 07:28

Guten Morgen,

Ich habe mal eine Frage, die für die Experten hier im Team bestimmt einfach ist.

Ich versende derzeit infos per Telegramm.
Das funktioniert soweit auch super. Jedoch möchte ich jetzt, dass der Inhalt
Einer Systemvariable übertragen wird. Jedoch bekomme ich es nicht hin ☹️

Ich habe via Systemsteuerung und Variable eine neue angelegt mit dem Namen „Text1“


Bisheriges Skript (CharID und BotAPI geändert)

Code: Alles auswählen

string message = "Nachricht";
string chatid = "1111111"; ! chat_id des Empfängers
string botAPI = "4444444:_dhl gfkxkerj"; ! API des eingerichteten Bots
dom.GetObject("CUxD.CUX2801003:1.CMD_EXEC").State("extra/curl -s -k https://api.telegram.org/4444444:_hdk gfkxkerj/sendMessage -d text='"#message#"' -d chat_id="#chatid);

Wie kann ich nun sagen :

Code: Alles auswählen

string message = Text1;
???

Ich danke euch
Grüße
Zuletzt geändert von alchy am 16.10.2017, 13:58, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
Vielen DANK
Thorkillar

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: Systemvariable via Telegram versenden / wie ?

Beitrag von blackhole » 16.10.2017, 12:04

thorkillar hat geschrieben:... Ich habe via Systemsteuerung und Variable eine neue angelegt mit dem Namen „Text1“ ...
... Wie kann ich nun sagen: string message = Text1;? ...

Code: Alles auswählen

string message = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Text1").Value();
Falls die Sysvar "Text1" Sonderzeichen/Umlaute/viele Leerzeichen beinhaltet, müssen diese übersetzt werden.
Melde dich, falls Du hierbei Hilfe benötigen solltest.

Rick_G
Beiträge: 23
Registriert: 16.10.2017, 10:55

Re: Systemvariable via Telegram versenden / wie ?

Beitrag von Rick_G » 17.10.2017, 09:44

Ich hänge mich hier mal ran, weil mich das Thema auh interessiert. Wo in den Code muss ich den string message unterbringen? Bei text='.....?

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Systemvariable via Telegram versenden / wie ?

Beitrag von dtp » 17.10.2017, 09:58

Weil ihr es seid, hier dann mal der gesamte Code:

Code: Alles auswählen

string message = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Text1").Value();
string chatid = "1111111"; ! chat_id des Empfängers
string botAPI = "4444444:_dhl gfkxkerj"; ! API des eingerichteten Bots
(dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801003:1.CMD_EXEC")).State("extra/curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='"#message#"' -d chat_id="#chatid#" -d parse_mode=html");
Und hier dann noch ein weiteres Skript zum Befüllen der Systemvariablen "Text1":

Code: Alles auswählen

string message = "<font color='orange'>So</font>\n koennte es klappen.";
(dom.GetObject(ID_SYSTEM_VARIABLES).Get("Text1")).State(message);
Bis dann,

Thorsten
Zuletzt geändert von dtp am 17.10.2017, 10:19, insgesamt 1-mal geändert.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Systemvariable via Telegram versenden / wie ?

Beitrag von alchy » 17.10.2017, 10:14

Nur am Rand. Das Füllen der Systemvariablen mit dem Script von dtp wird so nicht funktionieren da message nicht deklariert wurde.
Wichtiger ist der Hinweis, das nach wie vor solche Variablen NICHT zur Startseite hinzugefügt werden dürfen ! (zumindest solange man versucht html Code usw. darin unterzubringen)

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Systemvariable via Telegram versenden / wie ?

Beitrag von dtp » 17.10.2017, 10:20

alchy hat geschrieben:Nur am Rand. Das Füllen der Systemvariablen mit dem Script von dtp wird so nicht funktionieren da message nicht deklariert wurde.
Arghh. Das passiert, wenn man Copy & Paste verwendet. Danke für den Hinweis, Alchy. Hab's editiert. Nun sollte es klappen.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

thorkillar
Beiträge: 48
Registriert: 24.01.2017, 16:46

Re: Systemvariable via Telegram versenden / wie ?

Beitrag von thorkillar » 18.10.2017, 13:58

Hallo,
sorry war ne Zeitlang nicht online.

Code: Alles auswählen

string message = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Text1").Value();
war genau dass, was ich brauchte.
VIELEN DANK
Zuletzt geändert von alchy am 18.10.2017, 17:55, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
Vielen DANK
Thorkillar

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: Systemvariable via Telegram versenden / wie ?

Beitrag von blackhole » 18.10.2017, 14:33

thorkillar hat geschrieben:war genau dass, was ich brauchte.
VIELEN DANK
Gerne geschehen.

thorkillar
Beiträge: 48
Registriert: 24.01.2017, 16:46

Re: Systemvariable via Telegram versenden / wie ?

Beitrag von thorkillar » 18.10.2017, 16:21

Hey nochmal,

ich habe eine weitergehende Frage dazu:

Code: Alles auswählen

string message = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Text1").Value();
Funktioniert super, solange Text1 ein Textfeld ist.
Nun möchte aber z.B. Listen- oder Logikfelder auslesen.
Wenn ich das mit

Code: Alles auswählen

string message = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Text1").Value(); 
mache, kommt als Antwort:

bei dem Logikfeld nur true oder false statt die hinterlegten Wert (true= "Ja") (False = "neeeee")
beim Listenfeld kommt nur die nummer der Antwort: z.B. 4 statt der Eintrag.

Was muss ich ändern?


Vielen DANK
Zuletzt geändert von alchy am 18.10.2017, 17:56, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
Vielen DANK
Thorkillar

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Systemvariable via Telegram versenden / wie ?

Beitrag von alchy » 18.10.2017, 18:10

Werteliste: (Achtung der name der Systemvariablen ist zwei mal zu ersetzen ! Im Testscript ist es SYSTEMVARIABLE_WERTELISTE)

Code: Alles auswählen

string message = (web.webGetValueFromList((dom.GetObject(ID_SYSTEM_VARIABLES).Get("SYSTEMVARIABLE_WERTELISTE")).ValueList(), (dom.GetObject(ID_SYSTEM_VARIABLES).Get("SYSTEMVARIABLE_WERTELISTE")).Value()));
Logik oder Alarmvariable:

Code: Alles auswählen

string message = (dom.GetObject(ID_SYSTEM_VARIABLES)).Get("Anwesenheit").ValueName();
Einen Teil davon, wenn nicht sogar alles kannst du in der Scriptdoku in meiner Signatur nachlesen.
Sicher alles davon findest du mittels >>Suche<<
Bild

Ich habe auch mal deine geposteten Codes in Codetags eingefügt, das sind die Buttons oberhalb deines Texteingabefensters. :wink:
Wäre schön, wenn du dies in Zukunft selber tun würdest. Wenn du magst. Danke.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“