System.exec durch CuxD ersetzen
Moderator: Co-Administratoren
Re: Sytem.exc durch CuxD ersetzen
Verstehe. Die $-Zeichen sind für das lcd_msg notwendig und schließen die Parameter ein. Kann man sie ersetzen? Durch %24 ?
150 Kanäle in 75 Geräten und 103 CUxD-Kanäle in 25 CUxD-Geräten (HomeMatic, FS20), CCU1 FW1.519, AddOns: CUxD 1.0, dropbear, E-Mail 1.2, ftp_server und regaWatchdog.
Logik und Visualisierung mit ioBroker auf Mac OS X Node.js. Eingebundene Systeme: Sonos, Rademacher Homepilot, Roomba, Network-OWL. Danke für das Homematic-Inventur-Skript von EnergyStar
Logik und Visualisierung mit ioBroker auf Mac OS X Node.js. Eingebundene Systeme: Sonos, Rademacher Homepilot, Roomba, Network-OWL. Danke für das Homematic-Inventur-Skript von EnergyStar
-
- Beiträge: 287
- Registriert: 27.04.2009, 13:46
Re: Sytem.exc durch CuxD ersetzen
Hast Du's mal so versucht:
Das sollte die shell davon abhalten den Parameter zu parsen.
Evtl. tun's auch backslashs vor den $-Zeichen.
Code: Alles auswählen
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/lcd_msg/display_msg.sh '$m20s b22s i1$WM_fertig' ");
Evtl. tun's auch backslashs vor den $-Zeichen.
Re: Sytem.exc durch CuxD ersetzen
Hallo matheversum,
das war der entscheidende Tipp. Jetzt funktioniert es. Jetzt muss ich nur noch die Variable einbauen.
Danke.
das war der entscheidende Tipp. Jetzt funktioniert es. Jetzt muss ich nur noch die Variable einbauen.
Danke.
150 Kanäle in 75 Geräten und 103 CUxD-Kanäle in 25 CUxD-Geräten (HomeMatic, FS20), CCU1 FW1.519, AddOns: CUxD 1.0, dropbear, E-Mail 1.2, ftp_server und regaWatchdog.
Logik und Visualisierung mit ioBroker auf Mac OS X Node.js. Eingebundene Systeme: Sonos, Rademacher Homepilot, Roomba, Network-OWL. Danke für das Homematic-Inventur-Skript von EnergyStar
Logik und Visualisierung mit ioBroker auf Mac OS X Node.js. Eingebundene Systeme: Sonos, Rademacher Homepilot, Roomba, Network-OWL. Danke für das Homematic-Inventur-Skript von EnergyStar
Re: Sytem.exc durch CuxD ersetzen
Hallo pix
kannst du die definitive Version denn hier noch posten?
Vielen Dank!
Gruess rtlplus
kannst du die definitive Version denn hier noch posten?
Vielen Dank!
Gruess rtlplus
Re: Sytem.exc durch CuxD ersetzen
Hier die zwei Varianten, die bei mi funktionieren:
1. Einfach einen Text anzeigen (Beispiel "Alarmanlage unscharf" für 5s und 6s Hintergrundlicht)
2. Einen Text mit Variablen anzeigen (Beispiel "Balkon Temperatur")
ID muss natürlich durch die des eigenen Temperatursensors ersetzt werden. Text nicht als Code formatiert, wegen der Farben:
! CCU-Display Mitteilung Balkontemperatur
string temp_anzeige = dom.GetObject("BidCos-RF.HEQ87654321:1.TEMPERATURE");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/lcd_msg/display_msg.sh '$m18s b20s i100 gEreignisse p1000 $Balkon Temp<br/> "#temp_anzeige.Value()#"°C' ");
Die roten Häkchen schließen den State ein,
die grünen Häkchen schließen die lcd_msg Parameter ein,
die blauen Häkchen schließen die Variable ein
Leider hat die Formatierung des Temperaturwertes auf weniger Nachkommastellen nicht geklappt. Aber es passt dennoch in das Display (11 Zeichen, zwei Zeilen, <br/> für Zeilenumbruch)
Jetzt kann ich ohne schlechtes Gewissen wegen der vielen System.Exec-Aufruhe viel mehr Mitteilungen, Alarme und Zustände auf dem Display anzeigen. Vielen Dank für die Hinweise. Mein persönlicher WAF steigt jetzt wieder, da mehr Zeit für Familie und weniger Zeit für HM
1. Einfach einen Text anzeigen (Beispiel "Alarmanlage unscharf" für 5s und 6s Hintergrundlicht)
Code: Alles auswählen
! CCU-Display Alarmanlage unscharf, wenn Anwesenheit hergestellt wird.
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/lcd_msg/display_msg.sh '$m5s b6s i100 gEreignisse p100 $Alarmanlage<br/>unscharf' ");
ID muss natürlich durch die des eigenen Temperatursensors ersetzt werden. Text nicht als Code formatiert, wegen der Farben:
! CCU-Display Mitteilung Balkontemperatur
string temp_anzeige = dom.GetObject("BidCos-RF.HEQ87654321:1.TEMPERATURE");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/lcd_msg/display_msg.sh '$m18s b20s i100 gEreignisse p1000 $Balkon Temp<br/> "#temp_anzeige.Value()#"°C' ");
Die roten Häkchen schließen den State ein,
die grünen Häkchen schließen die lcd_msg Parameter ein,
die blauen Häkchen schließen die Variable ein
Leider hat die Formatierung des Temperaturwertes auf weniger Nachkommastellen nicht geklappt. Aber es passt dennoch in das Display (11 Zeichen, zwei Zeilen, <br/> für Zeilenumbruch)
Jetzt kann ich ohne schlechtes Gewissen wegen der vielen System.Exec-Aufruhe viel mehr Mitteilungen, Alarme und Zustände auf dem Display anzeigen. Vielen Dank für die Hinweise. Mein persönlicher WAF steigt jetzt wieder, da mehr Zeit für Familie und weniger Zeit für HM
150 Kanäle in 75 Geräten und 103 CUxD-Kanäle in 25 CUxD-Geräten (HomeMatic, FS20), CCU1 FW1.519, AddOns: CUxD 1.0, dropbear, E-Mail 1.2, ftp_server und regaWatchdog.
Logik und Visualisierung mit ioBroker auf Mac OS X Node.js. Eingebundene Systeme: Sonos, Rademacher Homepilot, Roomba, Network-OWL. Danke für das Homematic-Inventur-Skript von EnergyStar
Logik und Visualisierung mit ioBroker auf Mac OS X Node.js. Eingebundene Systeme: Sonos, Rademacher Homepilot, Roomba, Network-OWL. Danke für das Homematic-Inventur-Skript von EnergyStar
Re: Sytem.exc durch CuxD ersetzen
Hallo HomeMatic Gemeinde
bei mir im Display der CCU tut sich überhaupt nichts.
Mit:
string stderr;
string stdout;
system.Exec("sh /etc/config/addons/lcd_msg/display_msg.sh Hallo", &stdout, &stderr);
wird im Display schön: Hallo
angezeigt aber mit
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/lcd_msg/display_msg.sh Hallo");
regt sich im Display nichts.
Was mache ich falsch? Kann mir jemand weiter helfen?
Folgende Software habe ich installiert:
-CCU-Firmware: V_1.507
-Lcd_msg_ccu V_1.21
-CUx-Daemon V_0.568b
Die Software CUx-Daemon habe ich nur installiert aber nichts daran geändert oder konfiguriert oder parametriert.
Muss ich dort noch was machen?
CUx-Daemon läuft aber laut Statusmeldungen problemlos.
Vielen Dank, rtlplus
bei mir im Display der CCU tut sich überhaupt nichts.
Mit:
string stderr;
string stdout;
system.Exec("sh /etc/config/addons/lcd_msg/display_msg.sh Hallo", &stdout, &stderr);
wird im Display schön: Hallo
angezeigt aber mit
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/lcd_msg/display_msg.sh Hallo");
regt sich im Display nichts.
Was mache ich falsch? Kann mir jemand weiter helfen?
Folgende Software habe ich installiert:
-CCU-Firmware: V_1.507
-Lcd_msg_ccu V_1.21
-CUx-Daemon V_0.568b
Die Software CUx-Daemon habe ich nur installiert aber nichts daran geändert oder konfiguriert oder parametriert.
Muss ich dort noch was machen?
CUx-Daemon läuft aber laut Statusmeldungen problemlos.
Vielen Dank, rtlplus
Re: Sytem.exc durch CuxD ersetzen
Hallo rtlplus,
du musst natürlich das System.Exec Gerät auf dem CuxD installieren.
Bedienungsanleitung CuxD, Seite 71 (bei version 0.567), Punkt 5.8.1 System.Exec
http://www.homematic-inside.de/software ... cuxd-addon
Im Reiter "Geräte" kannst du dann ein neues Gerät erzeugen. anschließend noch im CCU-WeebUI das Gerät im Postfach finden und dann gehts los.
Grüße
pix
du musst natürlich das System.Exec Gerät auf dem CuxD installieren.
Bedienungsanleitung CuxD, Seite 71 (bei version 0.567), Punkt 5.8.1 System.Exec
http://www.homematic-inside.de/software ... cuxd-addon
Im Reiter "Geräte" kannst du dann ein neues Gerät erzeugen. anschließend noch im CCU-WeebUI das Gerät im Postfach finden und dann gehts los.
Grüße
pix
150 Kanäle in 75 Geräten und 103 CUxD-Kanäle in 25 CUxD-Geräten (HomeMatic, FS20), CCU1 FW1.519, AddOns: CUxD 1.0, dropbear, E-Mail 1.2, ftp_server und regaWatchdog.
Logik und Visualisierung mit ioBroker auf Mac OS X Node.js. Eingebundene Systeme: Sonos, Rademacher Homepilot, Roomba, Network-OWL. Danke für das Homematic-Inventur-Skript von EnergyStar
Logik und Visualisierung mit ioBroker auf Mac OS X Node.js. Eingebundene Systeme: Sonos, Rademacher Homepilot, Roomba, Network-OWL. Danke für das Homematic-Inventur-Skript von EnergyStar
Re: Sytem.exc durch CuxD ersetzen
Hallo pix
super! Vielen Dank! Jetzt klappt es!
Ich musste zwar noch ein paar Versuche machen bis ich merkte, dass ich den RPC-Server neu starten musste damit er die Änderungen übernahm. Aber jetzt klappt es super!
Nun kann ich meine ganzen Programme auf den neuen Befehl umschreiben und hoffen, dass die CCU dann nie mehr abstürzt.
Gruess, rtlplus
super! Vielen Dank! Jetzt klappt es!
Ich musste zwar noch ein paar Versuche machen bis ich merkte, dass ich den RPC-Server neu starten musste damit er die Änderungen übernahm. Aber jetzt klappt es super!
Nun kann ich meine ganzen Programme auf den neuen Befehl umschreiben und hoffen, dass die CCU dann nie mehr abstürzt.
Gruess, rtlplus
Re: Sytem.exc durch CuxD ersetzen
Hallo pix
du kannst übrigens die Nachkommastellen des Temperaturwertes reduzieren mit:
Value().ToString(1)
Ein Beispiel von mir zeigt Aussen- und Innentemperatur auf dem Display der CCU mit einer Nachkommastelle:
object tmp1=dom.GetObject("BidCos-RF.IEQ0201260:1.TEMPERATURE");
object tmp2=dom.GetObject("BidCos-RF.GEQ0173783:1.TEMPERATURE");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/lcd_msg/display_msg.sh 'OUT "#tmp1.Value().ToString(1)#"°C<br/>IN "#tmp2.Value().ToString(1)#"°C'");
Gruess rtlplus
du kannst übrigens die Nachkommastellen des Temperaturwertes reduzieren mit:
Value().ToString(1)
Ein Beispiel von mir zeigt Aussen- und Innentemperatur auf dem Display der CCU mit einer Nachkommastelle:
object tmp1=dom.GetObject("BidCos-RF.IEQ0201260:1.TEMPERATURE");
object tmp2=dom.GetObject("BidCos-RF.GEQ0173783:1.TEMPERATURE");
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/lcd_msg/display_msg.sh 'OUT "#tmp1.Value().ToString(1)#"°C<br/>IN "#tmp2.Value().ToString(1)#"°C'");
Gruess rtlplus
-
- Beiträge: 2268
- Registriert: 22.06.2012, 17:46
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Tirol/Austria
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 2 Mal
Re: Sytem.exc durch CuxD ersetzen
Hi,
wie kann ich den folgendes übersetzen (ist ein Teil eines Scripts):
Passt das so?:
Da ich gerade von der Arbeit aus alles ändere, kann ich es nicht testen. Bin mir nämlich nicht sicher, ob das mit den " passt, oder ich ' nehmen muss oder sogar beide wie beim system.Exec?!
Viele Grüße
Chris
wie kann ich den folgendes übersetzen (ist ein Teil eines Scripts):
Code: Alles auswählen
string stdout;
string stderr;
system.Exec("/etc/config/addons/email/email 01 '"+list+"'",&stdout,&stderr);
Code: Alles auswählen
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 01 "+list+"");
Viele Grüße
Chris
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3