ProgramExecute - Zeitpunkt der Ausführung?
Moderator: Co-Administratoren
-
- Beiträge: 5449
- Registriert: 30.05.2019, 11:37
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Chemnitz
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 739 Mal
ProgramExecute - Zeitpunkt der Ausführung?
Wenn aus einem Script heraus ein Programm mit ProgramExecute() aufgerufen wird, wann wird dann dieses Programm ausgeführt?
- Sofort innerhalb der Befehlszeile, also wird der Script danach weiter fortgesetzt wie bei einem Unterprogramm oder
- erfolgt wie bei Triggerereignissen die Ausführung des Programms erst nach Verlassen des WebUI-Programms, aus dem heraus der Aufruf erfolgte?
- Sofort innerhalb der Befehlszeile, also wird der Script danach weiter fortgesetzt wie bei einem Unterprogramm oder
- erfolgt wie bei Triggerereignissen die Ausführung des Programms erst nach Verlassen des WebUI-Programms, aus dem heraus der Aufruf erfolgte?
- Black
- Beiträge: 5480
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: ProgramExecute - Zeitpunkt der Ausführung?
Interessante Fragegestellung, die sich durch folgenden Versuch darlegen lässt:
anlegen von 2 programmen, test1 und test2, bedingung irgendwas, völlig egal,
im dann teil dann folgendes:
das schreibt direkt ins richtige systemprotokoll
dann ein startprogramm:
Dieses STartprogramm wird dann gestartet.
und die Ausgabe ist: (Achtung, der SDV logger schreibt dan letzten EIntrag ganz oben !!!!)
heisst, es wird nur ein Vermerk eingetragen, dass jeniges Script gestartet werden soll:
die reihenfolge wird wohl beigehalten, änder ich das script , dass zuerst test2, dann test1 aufgerufen wird, so kommen auch die logs in der Reihenfolge: test2 und test1. ZUerst wird das Hauptscript zuende abgearbeitet, zu erkennen an Startscript anfang und danach StartScript ende, dann kommt das erste getriggerte Script, Program Test1, danach das zweite getriggerte Script Program test2
kommt noch eine Gemeinheit:
schreibe ich das so, dass z.B. 2 mal Test2 gestartet werden soll:
so habe ich im Log trotzdem nur:
heisst, mann kann also nur einmal das STartflag setzen in einem Script
ich hoffe, deine Fragen sind damit beantwortet,#
Gruss, Black
anlegen von 2 programmen, test1 und test2, bedingung irgendwas, völlig egal,
im dann teil dann folgendes:
Code: Alles auswählen
system.Exec ("logger -t LOGGERNAME -p user.debug [Program test1]");
dann ein startprogramm:
Code: Alles auswählen
system.Exec ("logger -t LOGGERNAME -p user.debug [StartScript anfang]");
dom.GetObject(ID_PROGRAMS).Get("test1").ProgramExecute();
dom.GetObject(ID_PROGRAMS).Get("test2").ProgramExecute();
system.Exec ("logger -t LOGGERNAME -p user.debug [StartScript ende]");
und die Ausgabe ist: (Achtung, der SDV logger schreibt dan letzten EIntrag ganz oben !!!!)
Code: Alles auswählen
Apr 2 10:54:50 SpieleSystem user.debug LOGGERNAME: [Program test2]
Apr 2 10:54:50 SpieleSystem user.debug LOGGERNAME: [Program test1]
Apr 2 10:54:50 SpieleSystem user.debug LOGGERNAME: [StartScript ende]
Apr 2 10:54:50 SpieleSystem user.debug LOGGERNAME: [StartScript anfang]
die reihenfolge wird wohl beigehalten, änder ich das script , dass zuerst test2, dann test1 aufgerufen wird, so kommen auch die logs in der Reihenfolge: test2 und test1. ZUerst wird das Hauptscript zuende abgearbeitet, zu erkennen an Startscript anfang und danach StartScript ende, dann kommt das erste getriggerte Script, Program Test1, danach das zweite getriggerte Script Program test2
kommt noch eine Gemeinheit:
schreibe ich das so, dass z.B. 2 mal Test2 gestartet werden soll:
Code: Alles auswählen
system.Exec ("logger -t LOGGERNAME -p user.debug [StartScript anfang]");
dom.GetObject(ID_PROGRAMS).Get("test1").ProgramExecute();
dom.GetObject(ID_PROGRAMS).Get("test2").ProgramExecute();
dom.GetObject(ID_PROGRAMS).Get("test2").ProgramExecute();
system.Exec ("logger -t LOGGERNAME -p user.debug [StartScript ende]");
Code: Alles auswählen
Apr 2 10:56:20 SpieleSystem user.debug LOGGERNAME: [Program test2]
Apr 2 10:56:20 SpieleSystem user.debug LOGGERNAME: [Program test1]
Apr 2 10:56:20 SpieleSystem user.debug LOGGERNAME: [StartScript ende]
Apr 2 10:56:20 SpieleSystem user.debug LOGGERNAME: [StartScript anfang]
ich hoffe, deine Fragen sind damit beantwortet,#
Gruss, 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
-
- Beiträge: 5449
- Registriert: 30.05.2019, 11:37
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Chemnitz
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 739 Mal
Re: ProgramExecute - Zeitpunkt der Ausführung?
Wow, da hast du dich ja in der kurzen Zeit erheblich ins Zeug gelegt!
So wie das hier aussieht, werden die Programme mit ProgramExecute sogar noch vor den übrigen script-Zeilen ausgeführt, also nicht erst nach Ende des Startprogramms - und die erste Zeile sogar noch als letztes.
Und die Reihenfolge der Programmaufrufe hängt nicht von der Reihenfolge im Script ab, wenn ich das richtig interpretiere (wohl eher von der ID des Programms, wenn es mehrere sind?).
Ich hätte erwartet, dass zuerst die system.Exec-Zeilen abgearbeitet werden und danach die Programme.
Ja, ja, wenn man nicht richtig hinguckt!!!
Dann also doch in der aufgerufenen Reihenfolge, aber erst nach Ende des aufrufenden Programms.
Jetzt muß ich sehen, was ich aus dieser Erkenntnis machen kann.
Danke nochmal.
So wie das hier aussieht, werden die Programme mit ProgramExecute sogar noch vor den übrigen script-Zeilen ausgeführt, also nicht erst nach Ende des Startprogramms - und die erste Zeile sogar noch als letztes.
Und die Reihenfolge der Programmaufrufe hängt nicht von der Reihenfolge im Script ab, wenn ich das richtig interpretiere (wohl eher von der ID des Programms, wenn es mehrere sind?).
Ich hätte erwartet, dass zuerst die system.Exec-Zeilen abgearbeitet werden und danach die Programme.
Ja, ja, wenn man nicht richtig hinguckt!!!
Dann also doch in der aufgerufenen Reihenfolge, aber erst nach Ende des aufrufenden Programms.
Jetzt muß ich sehen, was ich aus dieser Erkenntnis machen kann.
Danke nochmal.
Zuletzt geändert von Matsch am 02.04.2021, 11:34, insgesamt 1-mal geändert.
- Black
- Beiträge: 5480
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: ProgramExecute - Zeitpunkt der Ausführung?
ne, vertue dich da nicht, der SDV logger schreibt von oben nach unten, so dass der letzte eintrag immer ganz oben steht und der erste eintrag ganz unten. hat den vorteil, man braucht nicht zu scollen. musst aber, bei der zeitlichen reihenfolge wissen, das das oberste der letzte war, das zweitoberste as vorletzte etc. und das unterste das erste.
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
-
- Beiträge: 5449
- Registriert: 30.05.2019, 11:37
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Chemnitz
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 739 Mal
Re: ProgramExecute - Zeitpunkt der Ausführung?
Hatte es gerade selbst gemerkt!!!! Hattest ja schon darauf hingewiesen.
-
- Beiträge: 336
- Registriert: 05.10.2020, 18:37
- System: CCU
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 25 Mal
Re: ProgramExecute - Zeitpunkt der Ausführung?
Hi
Sieht bei mir so aus
Thomas
Is nich richtig wo Black und du schreiben tun.
Sieht bei mir so aus
Code: Alles auswählen
Apr 2 13:38:38 ccu2 user.debug LOGGERNAME: [StartScript anfang]
Apr 2 13:38:38 ccu2 user.debug LOGGERNAME: [Program test1]
Apr 2 13:38:39 ccu2 user.debug LOGGERNAME: [StartScript ende]
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.
Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.
Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.
-
- Beiträge: 77
- Registriert: 24.07.2020, 10:48
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 36 Mal
- Danksagung erhalten: 41 Mal
Re: ProgramExecute - Zeitpunkt der Ausführung?
Wenn du machen tun, was Match und Black schreiben tun, dann wird das bei dir auch funktionieren tun.
wenn du aber Startscript in Scripteditor ausführen tun und nicht als separates Programm anlegen und starten tun, dann wird der Logger zufällig auch solche ausgaben tun
das tut aber daran liegen tun, das Scripteditor Script über Homatic Script Api starten in anderer Ablaufebene tun als regahass die programme starten tun. Das kann dann ergeben tun auch deine Ausgabe. Genau Grund kannst du nachlesen tun in den entsprechenden Dokus.
gruss, Roland
wenn du aber Startscript in Scripteditor ausführen tun und nicht als separates Programm anlegen und starten tun, dann wird der Logger zufällig auch solche ausgaben tun
Code: Alles auswählen
Apr 2 15:15:15 Trollsys user.debug LOGGERNAME: [StartScript anfang]
Apr 2 15:15:15 Trollsys user.debug LOGGERNAME: [Script test1]
Apr 2 15:15:15 Trollsys user.debug LOGGERNAME: [StartScript ende]
Apr 2 15:15:15 Trollsys user.debug LOGGERNAME: [Script test2]
gruss, Roland
-
- Beiträge: 336
- Registriert: 05.10.2020, 18:37
- System: CCU
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 25 Mal
Re: ProgramExecute - Zeitpunkt der Ausführung?
Hi
Is Mobbing pur und voll beleidigend.
Dafür noch danke drücken is auch widerlich.
Kann man auch normal erklären das es nen Unterschied macht wo das script läuft
Thomas
Finds nich witzig.RolandT hat geschrieben: ↑02.04.2021, 15:35Wenn du machen tun, was Match und Black schreiben tun, dann wird das bei dir auch funktionieren tun.
wenn du aber Startscript in Scripteditor ausführen tun und nicht als separates Programm anlegen und starten tun, dann wird der Logger zufällig auch solche ausgaben tun
das tut aber daran liegen tun, das Scripteditor Script über Homatic Script Api starten in anderer Ablaufebene tun als regahass die programme starten tun. Das kann dann ergeben tun auch deine Ausgabe. Genau Grund kannst du nachlesen tun in den entsprechenden Dokus.Code: Alles auswählen
Apr 2 15:15:15 Trollsys user.debug LOGGERNAME: [StartScript anfang] Apr 2 15:15:15 Trollsys user.debug LOGGERNAME: [Script test1] Apr 2 15:15:15 Trollsys user.debug LOGGERNAME: [StartScript ende] Apr 2 15:15:15 Trollsys user.debug LOGGERNAME: [Script test2]
gruss, Roland
Is Mobbing pur und voll beleidigend.
Dafür noch danke drücken is auch widerlich.
Kann man auch normal erklären das es nen Unterschied macht wo das script läuft
Thomas
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.
Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.
Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.
-
- Beiträge: 5449
- Registriert: 30.05.2019, 11:37
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Chemnitz
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 739 Mal
Re: ProgramExecute - Zeitpunkt der Ausführung?
Das verstehe ich.
Aber war denn dein Beitrag trotz des Stils wirklich ernst gemeint? Das war durchaus mißverständlich.
-
- Beiträge: 336
- Registriert: 05.10.2020, 18:37
- System: CCU
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 25 Mal
Re: ProgramExecute - Zeitpunkt der Ausführung?
Hi
der Output vom Test wo ich gemacht habe war anders.
Also hab ich das mal gepostet.
Hab dann noch in nem andren Forum gefragt wieso das anderst ist.
Thomas
der Output vom Test wo ich gemacht habe war anders.
Also hab ich das mal gepostet.
Hab dann noch in nem andren Forum gefragt wieso das anderst ist.
Thomas
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.
Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.
Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.