SystemExec durch CuxD ersetzen -> vorher / nachher
Moderator: Co-Administratoren
Re: SystemExec durch CuxD ersetzen -> vorher / nachher
Hallo,
leider ist die empfohlene Lösung mit CUxD sogar noch schlechter als die Verwendung des system.exec()-Befehls.
Jedenfalls hängt sich die CCU2 damit öfter auf.
leider ist die empfohlene Lösung mit CUxD sogar noch schlechter als die Verwendung des system.exec()-Befehls.
Jedenfalls hängt sich die CCU2 damit öfter auf.
-
- Beiträge: 10655
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 320 Mal
- Danksagung erhalten: 501 Mal
Re: SystemExec durch CuxD ersetzen -> vorher / nachher
Nur mal so. Bei mir wird pro Tag im Schnitt ca. 40 bis 50 Mal das CUxD-Gerät für den system.Exec-Befehl aufgerufen (insb. im Rahmen meines zentralen Push-Nachrichten-Programms). In den letzten drei Jahren führte das zu keinem einzigen Problem, geschweige denn Absturz der CCU2.
Bis dann,
Thorsten
Bis dann,
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
-
- Beiträge: 10752
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 672 Mal
Re: SystemExec durch CuxD ersetzen -> vorher / nachher
Ich habe das schon richtig verstanden, und auch die Antwort bleibt dieselbe.MickyMUC hat geschrieben: oh, entschuldige, ich glaube, das war eine Antwort auf einen falschen Eintrag.
Auch eine weitere Wiederholung derselben Aussage am 22.05.2017, 11:32 deinerseits ändert daran überhaupt nichts.alchy hat geschrieben:Das ist eine Aussage, welche du ein bisschen mehr mit Fakten untermauern solltest.
Wie benutzt du den cuxd.exec und wie stellt sich dein "Aufhängen" der CCU dar? Hängt die CCU am Netzwerkkabel oder am Kabel für die Stromversorgung?
Wie lautet z.B. das >> Fehlerprotokoll << zum Zeitpunkt des Aufrufs? usw.
Alchy
Fehlt nur noch, das du virtuell auf den Boden stampfst.
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.
Re: SystemExec durch CuxD ersetzen -> vorher / nachher
Hallo, Alchy,
ich werde es die Tage einmal zusammenschreiben; jetzt ist es deaktiviert.
Letztendlich habe ich es gemacht wie beschrieben:
CUxD aktualisiert (war schon vorher drauf) - Das Gerät eingerichtet - Das Skript erstellt.
Vorher hatte ich es so (das Skript in der ersten "Aktivität-Zeile" zählt einen Zähler hoch; ist im letzten Bild auch enthalten): mit: Dabei hängte sich die CCU hin und wieder auf.
Damit dieses Aufhängen nicht passiert, ist es nun so: mit Nun hängt sich die CCU beinahe täglich auf.
Habe ich etwas falsch gemacht?
Die CCU hängt am Strom-Netz und am Inter-Netz ( )
Unter "Aufhängen" verstehe ich, dass keine Programme ausgeführt werden und kein WebGUI-Zugriff möglich ist. Es hilft nur ein RESET.
Besten Dank!
ich werde es die Tage einmal zusammenschreiben; jetzt ist es deaktiviert.
Letztendlich habe ich es gemacht wie beschrieben:
CUxD aktualisiert (war schon vorher drauf) - Das Gerät eingerichtet - Das Skript erstellt.
Vorher hatte ich es so (das Skript in der ersten "Aktivität-Zeile" zählt einen Zähler hoch; ist im letzten Bild auch enthalten): mit: Dabei hängte sich die CCU hin und wieder auf.
Damit dieses Aufhängen nicht passiert, ist es nun so: mit Nun hängt sich die CCU beinahe täglich auf.
Habe ich etwas falsch gemacht?
Die CCU hängt am Strom-Netz und am Inter-Netz ( )
Unter "Aufhängen" verstehe ich, dass keine Programme ausgeführt werden und kein WebGUI-Zugriff möglich ist. Es hilft nur ein RESET.
Besten Dank!
-
- Beiträge: 10655
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 320 Mal
- Danksagung erhalten: 501 Mal
Re: SystemExec durch CuxD ersetzen -> vorher / nachher
Ich selbst nutze keine Mails auf der CCU, weil ich sie gegenüber Push-Nachrichten für zu nachteilig empfinde. Daher möge man mir ggf. meine nachfolgenden Fragen verzeihen.
1. Was ist "Mails"? Eine von Dir angelegte Systemvariable? Falls ja, welchen Typs? Ich denke mal, vom Typ Zahl, oder?
2. Was machst Du mit der lokalen Variablen "x"? Wird die irgendwie vom Email-Addon verarbeitet?
3. Die Skriptzeilen
muten mir etwas seltsam an. Ich hätte das, sofern "Mails" vom Typ Zahl ist, eher folgendermaßen geschrieben, wobei Du dann auf die erste Skriptzeile verzichten kannst:
Für Deine Probleme zeichnet sicherlich nicht CUxD verantwortlich. Fraglich ist auch, was Du in der Email-Vorlage 01 definiert hast.
Gruß,
Thorsten
1. Was ist "Mails"? Eine von Dir angelegte Systemvariable? Falls ja, welchen Typs? Ich denke mal, vom Typ Zahl, oder?
2. Was machst Du mit der lokalen Variablen "x"? Wird die irgendwie vom Email-Addon verarbeitet?
3. Die Skriptzeilen
Code: Alles auswählen
var anzahl = dom.GetObject("Mails");
var x = anzahl.State(anzahl.State() + 1);
Code: Alles auswählen
dom.GetObject("Mails").State(dom.GetObject("Mails").Value() + 1);
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
Re: SystemExec durch CuxD ersetzen -> vorher / nachher
Hallo,
ich bin auf diese Anleitung gestoßen, weswegen ich sie wieder ausgrabe.
Ich habe auf einen Raspi3 piVCCU3 laufen und möchte die Temperatur vom Raspi in eine Variable spechern.
Dazu nutze ich folgenden Code.
Laut Anleitung soll der system.Exec aufruf ersetzt werden, was ich gemacht habe. Allerding bekomme ich so eine Fehlermeldung.
Was muss ich noch anpassen?
Danke.
Lips
ich bin auf diese Anleitung gestoßen, weswegen ich sie wieder ausgrabe.
Ich habe auf einen Raspi3 piVCCU3 laufen und möchte die Temperatur vom Raspi in eine Variable spechern.
Dazu nutze ich folgenden Code.
Code: Alles auswählen
!- Temperatur von Raspberry3 unter piVCCU auslesen und in Systemvariable schreiben
string stdout;
string stderr;
!- Temperatur auslesen
!- system.Exec("cat /sys/class/thermal/thermal_zone0/temp", &stdout, &stderr);
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("cat /sys/class/thermal/thermal_zone0/temp", &stdout, &stderr);
!- Umrechnung in °C
var temp = stdout.ToFloat() / 1000;
!- Formatierung mit 1 Nachkommastelle
temp = temp.ToString(1);
!- Systemvariable schreiben
dom.GetObject("Temperatur_PiVCCU").State(temp);
Code: Alles auswählen
May 26 15:29:54 ccu3-webui local0.err ReGaHss: ERROR: ScriptRuntimeError: !- Temperatur von Raspberry3 unter piVCCU auslesen und in Systemvariable schreiben^M ^M string stdout;^M string stderr;^M ^M !- Temperatur auslesen^M !- system.Exec("cat /sys/class/thermal/thermal_zone0/temp", &stdout, &stderr);^M dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("cat /sys/class/thermal/thermal_zone0/temp", &stdout, &stderr);^M ^M !- Umrechnung in °C^M var temp = stdout.ToFloat() / 1000;^M ^M !- Formatierung mit 1 Nachkommastelle^M temp = temp.ToString(1);^M ^M !- Systemvariable schreiben^M dom.GetObject("Temperatur_PiVCCU").State(temp);^M [ExecError():iseESPexec.cpp:12798]
Danke.
Lips
Zuletzt geändert von alchy am 26.05.2020, 22:04, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
Grund: Code in Codetags posten
Rasp 3 mit piVCCU3, HM-Wired/Funk, 103 Geräte
- Baxxy
- Beiträge: 10644
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 596 Mal
- Danksagung erhalten: 2180 Mal
Re: SystemExec durch CuxD ersetzen -> vorher / nachher
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
Re: SystemExec durch CuxD ersetzen -> vorher / nachher
Danke
Rasp 3 mit piVCCU3, HM-Wired/Funk, 103 Geräte
-
- Beiträge: 10752
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 672 Mal
Re: SystemExec durch CuxD ersetzen -> vorher / nachher
Dein Script ist nur fehlerhaft bezüglich der CUxD Umschreibung.
So sollte es gehen:
Code: Alles auswählen
!- Temperatur von Raspberry3 unter piVCCU auslesen und in Systemvariable schreiben
string cmd = "cat /sys/class/thermal/thermal_zone0/temp";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(cmd);
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string stdout = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
!- Umrechnung in °C
var temp = stdout.ToFloat() / 1000;
!- Formatierung mit 1 Nachkommastelle
temp = temp.ToString(1);
!- Systemvariable schreiben
dom.GetObject(ID_SYSTEM_VARIABLES).Get("Temperatur_PiVCCU").State(temp);
Code: Alles auswählen
string cmd = "cat /sys/class/thermal/thermal_zone0/temp | sed 's/.\{3\}$/.&/'";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(cmd);
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string temp = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
dom.GetObject(ID_SYSTEM_VARIABLES).Get("Temperatur_PiVCCU").State(temp);
Früher definitiv ja, aber heutzutage ist system.exec schon viel stabiler.
Die Funktion ist aber in beiden Varianten gegeben.
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.
- Black
- Beiträge: 5463
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 418 Mal
- Danksagung erhalten: 1069 Mal
- Kontaktdaten:
Re: SystemExec durch CuxD ersetzen -> vorher / nachher
ob Cuxd oder system.exec ist eigentlich gleichwertig. Instabilitäten sind mir nicht mehr bekannt. früher war das schon anders.
cuxd exec setze ich nur noch bei 2 dingen ein.
1. um einen prozess wirklich sauber in den hintergrund zu bringen (genutzt in meinem tcl time Scheduler script) mit system exec wars mit seinerzeit nicht stabil gelungen
2. Um ein callback einer funktion auszuwerten (beispielsweite beim abfragen von geräten, webseiten via wget. hierbei wird durch programm ie anfrage abgeschickt, die rega wird dadurch nicht bis zur antwort oder dem timeout blockiert. bei eintreffen der antwort wird ein trigger ausgelöst, so das ein zweites programm die auswertung machen kann
Black
cuxd exec setze ich nur noch bei 2 dingen ein.
1. um einen prozess wirklich sauber in den hintergrund zu bringen (genutzt in meinem tcl time Scheduler script) mit system exec wars mit seinerzeit nicht stabil gelungen
2. Um ein callback einer funktion auszuwerten (beispielsweite beim abfragen von geräten, webseiten via wget. hierbei wird durch programm ie anfrage abgeschickt, die rega wird dadurch nicht bis zur antwort oder dem timeout blockiert. bei eintreffen der antwort wird ein trigger ausgelöst, so das ein zweites programm die auswertung machen kann
Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising