Seite 2 von 9

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 03.11.2013, 00:37
von Matthi140
Hallo, seit Stunden beschäftige ich mich nun mit der Skriptsprache, mit System Exec funktioniert das:

Code: Alles auswählen


var stdout;
var stderr;
string HalleTemp = "(HTEMP " + dom.GetObject("BidCos-RF.IEQ0XXXXXX:1.TEMPERATURE").Value().ToString(1) + ")\n";
string HalleLuftfeu = "(HFEUCHT " + dom.GetObject("BidCos-RF.IEQ0XXXXXX:1.HUMIDITY").Value().ToString(1) + ")\n";
string Hauptschalter = "(HSCHALT " + dom.GetObject("Hauptschalter Werkstatt").Value().ToString(1) + ")\n";

var status = HalleTemp + HalleLuftfeu + Hauptschalter;

system.Exec("tclsh /etc/config/writefile_status1.tcl " # status , &stdout , &stderr);

Wenn ich es aber meiner MEinung nach richtig auf CuxD umstelle geht nichts mehr. es wird in der zu schreibenden Datei nur ein Punkt am anfang gesetzt, das wars.

Code: Alles auswählen

string HalleTemp = "(HTEMP " + dom.GetObject("BidCos-RF.IEQ0XXXXXX:1.TEMPERATURE").Value().ToString(1) + ")\n";
string HalleLuftfeu = "(HFEUCHT " + dom.GetObject("BidCos-RF.IEQ0XXXXXX:1.HUMIDITY").Value().ToString(1) + ")\n";
string Hauptschalter = "(HSCHALT " + dom.GetObject("Hauptschalter Werkstatt").Value().ToString(1) + ")\n";

var status = HalleTemp + HalleLuftfeu + Hauptschalter;

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("tclsh /etc/config/writefile_status1.tcl" # status );
wo liegt der Fehler? ich denke mir, der versteht mit dem CuxD dieses # (Raute) einfach nicht, das er die Variable übernehmen soll. Ich habe auch schon alle möglichen varianten probiert, die Anführungsstriche zu ändern, das Raute weglassen, Raute auch dahinter setzen usw. nix hilft!

das TCL mit der ich die Datei erzeuge ist übgrigens diese hier, aus dem wetterpool Fred:

Code: Alles auswählen

#!/bin/tclsh
set filename "/usr/local/speicher/upload/statusAPE.txt"
set args [join $argv " "]
set fileId [open $filename "w"]
puts $fileId $args
close $fileId
habe mir diese nur etwas angepasst. (Ordner)

Wer kann mir beim ummodeln auf CuxD helfen???

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 03.11.2013, 15:31
von anli
und wenn Du es so probierst:

Code: Alles auswählen

string HalleTemp = "(HTEMP " + dom.GetObject("BidCos-RF.IEQ0XXXXXX:1.TEMPERATURE").Value().ToString(1) + ")\n";
string HalleLuftfeu = "(HFEUCHT " + dom.GetObject("BidCos-RF.IEQ0XXXXXX:1.HUMIDITY").Value().ToString(1) + ")\n";
string Hauptschalter = "(HSCHALT " + dom.GetObject("Hauptschalter Werkstatt").Value().ToString(1) + ")\n";

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("tclsh /etc/config/writefile_status1.tcl '" # HalleTemp # "' '" #  HalleLuftfeu # "' '" #  Hauptschalter # "'");
oder

Code: Alles auswählen

string HalleTemp = "(HTEMP " + dom.GetObject("BidCos-RF.IEQ0XXXXXX:1.TEMPERATURE").Value().ToString(1) + ")\n";
string HalleLuftfeu = "(HFEUCHT " + dom.GetObject("BidCos-RF.IEQ0XXXXXX:1.HUMIDITY").Value().ToString(1) + ")\n";
string Hauptschalter = "(HSCHALT " + dom.GetObject("Hauptschalter Werkstatt").Value().ToString(1) + ")\n";

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("tclsh /etc/config/writefile_status1.tcl '" # HalleTemp # HalleLuftfeu Hauptschalter # "'");

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 03.11.2013, 17:46
von Matthi140
Hey Anli, besten dank,

funktioniert beides, nur bei deinem Code hast du noch eine # zwischen HalleLuftfeu und Hauptschalter vergessen. so ein ähnliches Problem habe ich auch die ganze zeit schon bei dislpaymsg der ccu. das sehe ich mir aber später mal an.

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 18.11.2013, 15:18
von newbie2007
Hallo ich möchte gerne den Home24-Mediplayer benutzen.
Wie ersetze ich das folgende Script, um es mit CuxD aufzurufen?

string stdout;
string stderr;
string url="http://192.168.1.1:50000/track=Alarm.mp3";
system.Exec ("wget -q -O /dev/null " # url, &stdout, &stderr);

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 18.11.2013, 16:53
von alchy
:oops: Bitteschön:

Code: Alles auswählen

string url="'http://192.168.1.1:50000/track=Alarm.mp3'";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);
Alchy

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 19.11.2013, 07:15
von newbie2007
So gehts nicht, aber so:

string url="'http://192.168.1.35:50000/track=Blumen_Giessen-2.ogg'";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O /dev/null " # url);
dom.GetObject("CUxD.CUX2801001:1.CMD_RUNS").State("1");

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 19.11.2013, 19:56
von alchy
newbie2007 hat geschrieben:So gehts nicht
Und ob es so geht. :P
IP und Tracknamen anpassen, und los gehts. Gerade noch mal gecheckt.

Alchy

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 05.06.2014, 17:35
von john92648
Hallo an das Forum,
hat hier evtl. jemand auch ein Beispiel um den MPC Player mit den Commands Play, Stop, Play 1 etc. über den CuxD zu starten.
Vielen Dank im Voraus.
Gruss John92648...

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 01.07.2014, 00:53
von Milusz
Hallo,

bin zwar noch recht neu, trozdem schon ziemlich verzweifelt.
Ich versuche mich seit Stunden am Wechsel von SystemExec auf CuXD. die Installation klappt. Auch die "Fernbedienung" lässt sich anlegen wie beschrieben, aber dann tut sich nichts mehr.
Alle Befehle laufen anscheinend ins Leere.
Was mich allerdings wundert ist, wenn ich in die Kanäle reinschaue, ist da nichts eingetragen. Ich kann auch nur eine 19-Tasten Fernbedienung anlegen, was aber glaube ich egal sein wird.
In der Anleitung ist in der neuesten Version ab Seite 114 was beschrieben, was ich aber leider nicht verstehe und in den Kanälen steht ein Pfad zu einer Datei, aber anscheinend nicht komplett.
Wäre für Hilfe sehr sehr dankbar.

Gruß

Milusz

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Verfasst: 01.07.2014, 08:24
von PaulG4H
Hallo,

was du beim CUxD nicht vergesen darfst:
  • CUxD Installieren
  • CUxD Gerät anlegen (28 Exec)
  • Im CCU Posteingang dieses Gerät Übernehmen
  • In den Geräte Einstellungen den Namen : Kanal des CUxD System Exec Gerätes suchen
und dieses dann so verwenden:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("<komando>");
Paul