SystemExec durch CuxD ersetzen -> vorher / nachher

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Matthi140
Beiträge: 379
Registriert: 04.09.2009, 22:46
Wohnort: bei Erfurt
Kontaktdaten:

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von Matthi140 » 03.11.2013, 00:37

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???
48 Geräte: 1xCCU1; 1xYAHM+HMW-LGW-O-DR-GS-EU(Testsystem)
Wired (33): 4xHMW-IO-12-Sw7-DR; 5xHMW-LC-Dim1L-DR; 9xHMW-LC-Bl1-DR; 4xHMW-IO-4-FM; 4xHMW-IO-12-FM;
4xHMW-Sen-SC-12-FM; 1xHBW-LC-Sw8; 1xHBW-Sen-Key-12
RF (5): 1xHM-Sec-SD; 1xHM-WDS100-C6-O; 1xHM-WDS30-OT2-SM-2; 1xHM-TC-IT-WM-W-EU; 1xHM-LC-Sw4-WM
Kaputt (7): 2xHM-RC-4-B; 2xHM-Sen-Wa-Od; 1xHM-RC-4-2; 1xHM-WDS100-C6-O; 1xHM-Sec-SD
ausgebaut (1): 1xHM-Sec-RHS

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: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von anli » 03.11.2013, 15:31

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 # "'");
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

Matthi140
Beiträge: 379
Registriert: 04.09.2009, 22:46
Wohnort: bei Erfurt
Kontaktdaten:

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von Matthi140 » 03.11.2013, 17:46

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.
48 Geräte: 1xCCU1; 1xYAHM+HMW-LGW-O-DR-GS-EU(Testsystem)
Wired (33): 4xHMW-IO-12-Sw7-DR; 5xHMW-LC-Dim1L-DR; 9xHMW-LC-Bl1-DR; 4xHMW-IO-4-FM; 4xHMW-IO-12-FM;
4xHMW-Sen-SC-12-FM; 1xHBW-LC-Sw8; 1xHBW-Sen-Key-12
RF (5): 1xHM-Sec-SD; 1xHM-WDS100-C6-O; 1xHM-WDS30-OT2-SM-2; 1xHM-TC-IT-WM-W-EU; 1xHM-LC-Sw4-WM
Kaputt (7): 2xHM-RC-4-B; 2xHM-Sen-Wa-Od; 1xHM-RC-4-2; 1xHM-WDS100-C6-O; 1xHM-Sec-SD
ausgebaut (1): 1xHM-Sec-RHS

newbie2007
Beiträge: 433
Registriert: 17.11.2012, 06:12

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von newbie2007 » 18.11.2013, 15:18

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);

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

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von alchy » 18.11.2013, 16:53

: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

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.

newbie2007
Beiträge: 433
Registriert: 17.11.2012, 06:12

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von newbie2007 » 19.11.2013, 07:15

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");

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

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von alchy » 19.11.2013, 19:56

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

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.

john92648
Beiträge: 22
Registriert: 05.06.2014, 17:07

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von john92648 » 05.06.2014, 17:35

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

Milusz
Beiträge: 17
Registriert: 26.01.2013, 08:01

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von Milusz » 01.07.2014, 00:53

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

PaulG4H
Beiträge: 1184
Registriert: 11.08.2011, 10:09

Re: SystemExec durch CuxD ersetzen -> vorher / nachher

Beitrag von PaulG4H » 01.07.2014, 08:24

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
Apache Reverse Proxy fuer sicheren Zugriff auf die CCU von Unterwegs
Zeitgesteuertes LXCCU / CCU2 Backup damit es immer eine Aktuelle Sicherung gibt!
Diverse weitere Anleitungen für CCU / LXCCU / Raspberry PI

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“