Message auf Receiver ausgeben.

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

sdreger
Beiträge: 22
Registriert: 01.04.2014, 15:52

Re: Message auf Receiver ausgeben.

Beitrag von sdreger » 24.02.2015, 14:14

Hi,

interessehalber; Hat einer von Euch einen WebOS-Fernseher von LG und könnte mal mit;

http://IP_DES_LCDS/web/message?text=Hallo\nTest&type=1&timeout=5";

Testen wie das WebOS damit umgeht?

Gruß,

Stefan

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

Re: Message auf Receiver ausgeben.

Beitrag von dtp » 24.02.2015, 15:22

Hallo,

zu Eurem UTF-8-Code-Problem. Das existiert bei Push-Nachrichten gleichermaßen. Ich hatte mir da mal ein kleines Übersetzungsskript gebastelt, dass mir als zentrales Push-Skript dient. Da müsste sich doch was für Euch draus machen lassen.

Code: Alles auswählen

! Variablendeklaration zu Beginn des Skripts
string message;
string newmessage;
string messageindex;

! --------------------------------------------------
! HIER HINEIN KOMMT EURE NACHRICHTENERZEUGUNG
message = "Bla Bla Bla";
! --------------------------------------------------

! Ab hier Umwandlung der Sonderzeichen

! Umwandlung Leerschritt in "%20"
foreach(messageindex,message.Split(" "))
{
  newmessage = newmessage+messageindex+"%20";
}
message = newmessage;
newmessage = "";

! Umwandlung "Ä" in "%C3%84"
foreach(messageindex,message.Split("Ä"))
{
  newmessage = newmessage+messageindex+"%C3%84";
}
message = newmessage;
newmessage = "";

! Umwandlung "Ö" in "%C3%96"
foreach(messageindex,message.Split("Ö"))
{
  newmessage = newmessage+messageindex+"%C3%96";
}
message = newmessage;
newmessage = "";

! Umwandlung "Ü" in "%C3%9C"
foreach(messageindex,message.Split("Ü"))
{
  newmessage = newmessage+messageindex+"%C3%9C";
}
message = newmessage;
newmessage = "";

! Umwandlung "ä" in "%C3%A4"
foreach(messageindex,message.Split("ä"))
{
  newmessage = newmessage+messageindex+"%C3%A4";
}
message = newmessage;
newmessage = "";

! Umwandlung "ö" in "%C3%B6"
foreach(messageindex,message.Split("ö"))
{
  newmessage = newmessage+messageindex+"%C3%B6";
}
message = newmessage;
newmessage = "";

! Umwandlung "ü" in "%C3%BC"
foreach(messageindex,message.Split("ü"))
{
  newmessage = newmessage+messageindex+"%C3%BC";
}
message = newmessage;
newmessage = "";

! Umwandlung "ß" in "%C3%9F"
foreach(messageindex,message.Split("ß"))
{
  newmessage = newmessage+messageindex+"%C3%9F";
}
message = newmessage;
newmessage = "";

! Umwandlung "°" in "%C2%B0"
foreach(messageindex,message.Split("°"))
{
  newmessage = newmessage+messageindex+"%C2%B0";
}
message = newmessage;
newmessage = "";

! Kürzen der Nachricht um die jeweils am Ende angefügten Umwandlungscodes.
message = message.Substr(0, message.Length()-51);

! ------------------------------------------------------
! Ab hier dann der Befehl zum Senden von message
Probiert's aus.

Aus dem Email-Addon 1.6.0 ist mir aber noch ein Hinweis in Erinnerung, der das Problem ebenfalls betrifft. Dort kann man die Textvariable "test" z.B. einfach mit der Programmzeile

Code: Alles auswählen

set test [encoding convertfrom utf-8 $values(test)]
konvertieren. Weiß jemand, ob das mit dem wget-Befehl auch irgendwie funktioniert?

Gruß,

Thorsten
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.

wuscheltuschel
Beiträge: 668
Registriert: 03.12.2012, 19:51
Hat sich bedankt: 7 Mal
Danksagung erhalten: 3 Mal

Re: Message auf Receiver ausgeben.

Beitrag von wuscheltuschel » 03.01.2016, 20:38

Danke, Ritter, kann mir bitte jemand das Script erklären?

string stderr;
string stdout;
string url="http://192.168.x.xx/web/message?text=Be ... timeout=18";
system.Exec("wget -q -O - "#url, &stdout, &stderr);


Was bedeutet "string stderr;" und "string stdout;" ?

habe gesucht, aber die Links hier im gesamten Thema

http://homematic-forum.de/forum/viewtop ... 3&start=16

sind mal wieder völlig veraltet, leider.

Benutzeravatar
robbi77
Beiträge: 13862
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 182 Mal
Danksagung erhalten: 739 Mal

Re: Message auf Receiver ausgeben.

Beitrag von robbi77 » 03.01.2016, 21:24

http://www.eq-3.de/downloads.html
Gib mal Script ein ...


Gruß
Roberto
Bei Risiken und Nebenwirkungen fragen Sie den Elektriker Ihres geringsten Mißtrauens!
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...

zobi
Beiträge: 8
Registriert: 26.02.2017, 17:06

Re: Message auf Receiver ausgeben.

Beitrag von zobi » 29.05.2018, 19:55

Hallo zusammen,
Arthy hat geschrieben:Hallo zusammen,

ich klinke mich hier in den Fred mal ein, weil ich ziemliche Probleme mit der Messagedarstellung auf einer Dreambox 800 habe. Und zwar schaffe ich es aus dem Browser heraus mittels dem unteren Text auf die Dream eine Nachricht zu schicken:

Code: Alles auswählen

http://192.168.1.XXX:YYYYY/web/message?text=Test&type=1&timeout=10
YYYYY ist hier ein anderer Port als der Standart 80.

Habe schon einiges hier aus dem Forum ausprobiert, wo mich auch Metaxa sehr freundlich unterstützt hatte. Jedoch bekomme ich es weder mit der System.Exec Methode:

Code: Alles auswählen

string stderr;
string stdout;
string url="'http://192.168.1.XXX:YYYYY/web/message?text=Test&type=1'";
system.Exec("wget -q -O - "#url, &stdout, &stderr);
noch mittels CuxD:

Code: Alles auswählen

!Meldung auf DB mit CuxD
string url="'http://192.168.1.XXX:YYYYY/web/message?text=Test&type=1&timeout=10'";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);


Vielleicht könnt ihr mir noch ein Tip geben, habe das immer auf der CCU1 unter Programmerstellung und "Skript testen" eingefügt und ausgeführt. Auf der Dream wurde jedoch nie etwas angezeigt. Habt ihr vielleicht eine Idee wie ich das noch genauer analysieren kann eventuell mithilfe irgendwelcher Logs oder Ähnlichem.
Wäre super.
Dankeschön

Arthy
habe das gleiche Problem mit system.Exec oder CUxD :( , über Explorer funktioniert es
CUxD Full Syslog zeigt:

Code: Alles auswählen

May 29 19:21:36 homematic-ccu2 local0.err ReGaHss: Error: IseESP::ScriptRuntimeError: string url="http://192.168.54.76/web/message?text=Hello_World&type=1&timeout=5"; dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC") .State("wget -q -O "#url); [iseESPexec.cpp:12487]
CCU2 FW v2.31.25
CUxD v2.0.0

Bin für jede Hilfe sehr Dankbar

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

Re: Message auf Receiver ausgeben.

Beitrag von alchy » 29.05.2018, 20:57

Code: Alles auswählen

string url="http://192.168.54.76/web/message?text=Hello_World&type=1&timeout=5"; 
if ( (dom.GetObject(ID_DATAPOINTS)).Get("CUxD.CUX2801001:1.CMD_EXEC")) { (dom.GetObject(ID_DATAPOINTS)).Get("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - '"#url#"'"); } else { WriteLine("CUxD Datenpunkt nicht vorhanden");}
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.

zobi
Beiträge: 8
Registriert: 26.02.2017, 17:06

Re: Message auf Receiver ausgeben.

Beitrag von zobi » 29.05.2018, 21:48

Supper!!! Funktioniert.
Dankeschön Alchy


Gibt es einen Grund warum bei einegen

Code: Alles auswählen

string url="'http://192.168.54.76/web/message?text=Test&type=1&timeout=10'";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);
funktioniert und bei mir nicht?

Antworten

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