System.exec durch CuxD ersetzen

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Tom
Beiträge: 10
Registriert: 21.05.2010, 12:36

Re: Sytem.exc durch CuxD ersetzen

Beitrag von Tom » 21.02.2013, 08:26

Werde ich heute Abend versuchen, mal sehen, ob ich das hinbekomme.
Erst mal Danke für deine Info...

saho1
Beiträge: 75
Registriert: 11.11.2011, 10:13
Hat sich bedankt: 2 Mal

Re: Sytem.exc durch CuxD ersetzen

Beitrag von saho1 » 23.02.2013, 02:10

Für alle die ein Problem haben HTML-Mails über CUxD zu versenden wie z.B. hier
JPS hat geschrieben:
Wildshunter hat geschrieben:Hallo !

jetzt habe ich auch mal CuxD installiert und moechte meine Emails jetzt durch CuxD versenden, nicht mehr ueber system.exec. Es kommt eine Email zwar an und zwar so:
Betreff ist ok, in der Msg nur: Prüfung des Ladezustandes der Batterien vom 18.2.2013, der Rest fehlt leider....Habt Ihr eine Idee? Danke!
Das Problem kenne ich. Bei mir lassen sich auch keine HTML-Mails über CuxD und Meine-Homematic verschicken. "Normale" Mails funktionieren problemlos. Ich habe Scripts von Bekannten probiert, die dort liefen, bei mir - obwohl 1:1 übertragen - aber seltsamerweise nicht. Irgendwann war ich das Rumprobieren Leid und verschicke jetzt nur noch "normale" Mails über Meine-Homematic. Alles was HTML braucht mache ich mit Pushover... http://homematic-forum.de/forum/viewtop ... 31&t=11579. So komme ich jetzt endlich ohne SystemExec-Aufrufe aus.
einfach bitte mal folgendes probieren ;)

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/bin/sh /etc/config/addons/mh/htmlmail.sh '"# sendbetreff # "' '" # sendmail # "' '" # mailto # "'");
Gruß

Saho
Zuletzt geändert von saho1 am 23.02.2013, 13:37, insgesamt 1-mal geändert.
--------------------------------------------
107 Kanäle in 60 Geräten
--------------------------------------------

davidmuc
Beiträge: 105
Registriert: 15.08.2010, 00:27
Hat sich bedankt: 1 Mal

Re: Sytem.exc durch CuxD ersetzen

Beitrag von davidmuc » 23.02.2013, 11:20

...wo wir gerade dabei sind: auch ich bin für einen Tipp dankbar! Ich steuere mit meiner HM via Socat meinen Denon-Receiver (siehe http://homematic-forum.de/forum/viewtop ... =31&t=9278). Inzwischen läuft auch bei mir der CUxD und ich würde gerne die System.Exec's durch ein CUxD-Kommando ersetzen.

Ursprüngliches Script:

Code: Alles auswählen

string stderr;
string stdout;
system.Exec("sh -c 'echo PWSTANDBY | /usr/local/addons/socat/socat TCP:192.168.178.15:23,cr - ' ", &stdout, &stderr);
Mein folgender Versuch:

Code: Alles auswählen

string cmd = "sh -c 'echo PWSTANDBY | /usr/local/addons/socat/socat TCP:192.168.178.15:23,cr - ' ";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#cmd#"'");
...liefert leider einen Fehler im CUxD Syslog:
Feb 23 11:03:29 (none) daemon.err cuxd[17337]: system(wget -q -O /dev/null 'sh -c 'echo PWON | /usr/local/addons/socat/socat TCP:192.168.178.15:23,cr - ' '): No such file or directory
Mit den Anführungszeichen habe ich erfolglos rumgespielt. Eine Idee, wo der Fehler liegt?!

MaxWrestler
Beiträge: 237
Registriert: 11.12.2011, 12:19
Danksagung erhalten: 1 Mal

Re: Sytem.exc durch CuxD ersetzen

Beitrag von MaxWrestler » 23.02.2013, 11:37

Hallo davidmuc,
ich glaube du brauchst das

Code: Alles auswählen

wget -q -O /dev/null
nicht.

davidmuc
Beiträge: 105
Registriert: 15.08.2010, 00:27
Hat sich bedankt: 1 Mal

Re: Sytem.exc durch CuxD ersetzen

Beitrag von davidmuc » 23.02.2013, 12:21

MaxWrestler hat geschrieben:Hallo davidmuc,
ich glaube du brauchst das

Code: Alles auswählen

wget -q -O /dev/null
nicht.
Vielen Dank, Max - mit nur einer Zeile geht's:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("sh -c 'echo PWON | /usr/local/addons/socat/socat TCP:192.168.178.15:23,cr - ' ");
(...oder sollte man das eigentliche Kommando aus "ethischen" Gründen als String übergeben?!)

saho1
Beiträge: 75
Registriert: 11.11.2011, 10:13
Hat sich bedankt: 2 Mal

Re: Sytem.exc durch CuxD ersetzen

Beitrag von saho1 » 23.02.2013, 13:40

Ich habe den Post

http://homematic-forum.de/forum/viewtop ... 457#p91457

überarbeitet, da war noch ein Dreher drin. Der Fehler Fehler führte zwar zu keinem Problem, da er bei der Adresse war, ist aber jetzt behoben und sieht sauberer aus :)

Gruß

Saho
--------------------------------------------
107 Kanäle in 60 Geräten
--------------------------------------------

onzauli
Beiträge: 7
Registriert: 31.08.2012, 13:12
Wohnort: Elsass/Frankreich

Re: Sytem.exc durch CuxD ersetzen

Beitrag von onzauli » 04.04.2013, 21:24

Hallo,
ich möchte bei folgendem Script den system.Exec durch durch CuxD ersetzen, schaffe das aber leider nicht.
Hier dei Ausgangssituation:

Code: Alles auswählen

        loggingtext = vDatum + ";" + vUhrzeit + ";" + Temperatur1 + ";°C;" + Humidity + ";%;" + Wind_Speed + ";m/s;" + Wind_Direction + ";°;" + Heute_Regen + ";mm;" + Gestern_Regen + ";mm;" + Temperatur2 + ";°C;" + Temperatur3 + ";°C;" + Humidity2 + ";%;" + Humidity3 + ";%;" + Wind_Speed1 + ";m/s;" + Temperatur4 + ";°C;" + Temperatur5 + ";°C;" + Humidity4 + ";%;" + Humidity5 + ";%;" + Wind_Speed2 + ";m/s;";
        }
    system.Exec("tclsh /etc/config/writefile_wetterpool.tcl " + loggingtext ,&out, &err);
Hier mein Versuch:

Code: Alles auswählen

 loggingtext = vDatum + ";" + vUhrzeit + ";" + Temperatur1 + ";°C;" + Humidity + ";%;" + Wind_Speed + ";m/s;" + Wind_Direction + ";°;" + Heute_Regen + ";mm;" + Gestern_Regen + ";mm;" + Temperatur2 + ";°C;" + Temperatur3 + ";°C;" + Humidity2 + ";%;" + Humidity3 + ";%;" + Wind_Speed1 + ";m/s;" + Temperatur4 + ";°C;" + Temperatur5 + ";°C;" + Humidity4 + ";%;" + Humidity5 + ";%;" + Wind_Speed2 + ";m/s;";
        }
    dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("tclsh /etc/config/writefile_wetterpool.tcl " + loggingtext);
Die "writefile_wetterpool.tcl" (stammt hier aus dem Forum) erstell aus den Wetterdaten eine fertige csv-Datei, was soweit auch klappt, leider fehlt alles bis auf das Datum.

Herzlichen Dank
Uli

ChrisL
Beiträge: 344
Registriert: 25.05.2011, 08:31

Re: Sytem.exc durch CuxD ersetzen

Beitrag von ChrisL » 14.04.2013, 18:58

Hallo Gemeinde,

ich bekomme es einfach nicht hin. Seht ihr einen Fehler im Script?
Danke euch.

Code: Alles auswählen

string mailto "test@test.det";
string sendmail = "test@test.de";
string sendbetreff = "Test";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/bin/sh /etc/config/addons/mh/htmlmail.sh '"# sendbetreff # "' '" # sendmail # "' '" # mailto # "'");
WriteLine("Hallo Welt!");

Benutzeravatar
anli
Beiträge: 4326
Registriert: 10.06.2009, 14:01
Wohnort: 20 Min. nördlich von Hannover und bei Bremen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: Sytem.exc durch CuxD ersetzen

Beitrag von anli » 14.04.2013, 23:38

Ja, fehlendes Gleichheitszeichen zwischen string mailto und dem Anführungszeichen.
Herzliche Grüße, anli

Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.

Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)

Einsteiger-Hilfeerweiterter Skript-Parser

sambasamba
Beiträge: 1602
Registriert: 16.08.2009, 23:18
Wohnort: Landau/Südpfalz
Hat sich bedankt: 21 Mal
Danksagung erhalten: 4 Mal

Re: Sytem.exc durch CuxD ersetzen

Beitrag von sambasamba » 23.04.2013, 17:19

ich frage mich was passiert wenn man den üblichen Aufruf:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("....");
direkt hintereinander 8x ausführt.
CMD_EXEC wartet ja lt. CuxD-Doku nicht, sondern kommt sofort zurück.
Gibt das keine Probleme?

Volkmar

2xRaspimatic+wired, Garagentor, Hoflicht, Keymatic, Rolladen, 30 Raumthermostate, Raumüberwachung, Zweipunktregelung von Heizgeräten, Ventilator- / Klima-Anlagensteuerungen. Toiletten-Besetztanzeige m/w im Gewerbeobjekt.

Antworten

Zurück zu „CUxD“