[gelöst] Skript nicht automatisch starten

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

ZTHawk
Beiträge: 5
Registriert: 21.09.2023, 21:34
System: Alternative CCU (auf Basis OCCU)

[gelöst] Skript nicht automatisch starten

Beitrag von ZTHawk » 01.12.2023, 22:23

Ich möchte gern ein Skript erstellen, und dieses nur on demand laufen lassen. Um genau zu sein via XMLRPC aus Home Assistant heraus.
Dies funktioniert auch soweit gut.
Mein Problem ist, dass die Skripte bei einem Neustart auch ausgeführt werden.

Gibt es eine Möglichkeit, damit bestimmte Skripte nicht bei Systemstart ausgeführt werden?

Als Alternative habe ich mir überlegt, eine Systemvariable (CanExecuteScript) zu erstellen, und diese nach einem Systemstart und einem Delay zu setzen.
Die Skripte würden dann Prüfen ob diese Systemvariable (CanExecuteScript) wahr ist und nur dann ausgeführt wird.
Die Variable müsste dann aber bei jedem Neustart wieder resetet werden. Hier weiß ich aber nicht, wie dies gewährleistet werden kann.
Hat jemand eine Idee?
Zuletzt geändert von ZTHawk am 02.12.2023, 13:39, insgesamt 1-mal geändert.

Benutzeravatar
shartelt
Beiträge: 7421
Registriert: 14.01.2015, 14:59
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 524 Mal
Danksagung erhalten: 754 Mal

Re: Skript nicht automatisch starten

Beitrag von shartelt » 01.12.2023, 22:26

die tipps und tricks für anfänger haben keinen link auf einen thread der irgendwie so heißt: programme bei zentralen neustart nicht starten lassen?

Tante Edit(h) sagt: oh doch…D37

ach und ich gehe davon aus, dass Du von programmen redest und nicht von skripten, oder?

MichaelN
Beiträge: 9807
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 711 Mal
Danksagung erhalten: 1656 Mal

Re: Skript nicht automatisch starten

Beitrag von MichaelN » 01.12.2023, 22:32

Tastendruck startet nicht bei Reboot
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Benutzeravatar
robbi77
Beiträge: 13904
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 182 Mal
Danksagung erhalten: 747 Mal

Re: Skript nicht automatisch starten

Beitrag von robbi77 » 01.12.2023, 22:44

Scripte werden bei Systemstart nicht von selbst ausgeführt!
Nur wenn das Script in einem Programm im DANN steht und beim Systemstart das WENN wahr ergibt.

Screenshots sind immer noch von Vorteil …

ZTHawk
Beiträge: 5
Registriert: 21.09.2023, 21:34
System: Alternative CCU (auf Basis OCCU)

Re: Skript nicht automatisch starten

Beitrag von ZTHawk » 02.12.2023, 13:38

Moin,
Der Verweis von shartelt hat geholfen. Um genau zu sein viewtopic.php?f=31&t=26278 (gefunden in beim Punkt D37 - Link 1)
Mir war nicht bekannt, dass es eine Variable gibt, die immer zurückgesetzt wird (Presence; habe diese aber umbennant wie im Thread vorgeschlagen).

@robbi77
Skripte kann man ja nur in Programmen definieren, oder?
Standardmäßig ist der WENN Teil leer, und somit wird es automatisch ausgeführt.
Dies ist aber Auslegungssache. Habe nun die Prüf-Variable.

Benutzeravatar
robbi77
Beiträge: 13904
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 182 Mal
Danksagung erhalten: 747 Mal

Re: [gelöst] Skript nicht automatisch starten

Beitrag von robbi77 » 02.12.2023, 13:52

Standardmäßig ist das WENN, DANN, SONST leer …
Pack ins WENN eine virtuelle Taste und schon wird kein DANN ausgeführt.

Matsch
Beiträge: 5557
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 120 Mal
Danksagung erhalten: 763 Mal

Re: Skript nicht automatisch starten

Beitrag von Matsch » 02.12.2023, 13:56

ZTHawk hat geschrieben:
02.12.2023, 13:38
Standardmäßig ist der WENN Teil leer, und somit wird es automatisch ausgeführt.
Standardmäßig enthält der WENN-Teil die Auslösebedingung für das Script. Nur wenn man ein Script auf andere Weise starten will, braucht man kein WENN.
Ich behaupte mal, dass dieser Fall eben genau nicht Standard ist, weil nicht wirklich vorgesehen und auch nicht dokumentiert.

Xel66
Beiträge: 14263
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 597 Mal
Danksagung erhalten: 1525 Mal

Re: Skript nicht automatisch starten

Beitrag von Xel66 » 02.12.2023, 13:57

ZTHawk hat geschrieben:
02.12.2023, 13:38
Standardmäßig ist der WENN Teil leer, und somit wird es automatisch ausgeführt.
Dies ist aber Auslegungssache. Habe nun die Prüf-Variable.
Ja und was bewirkt die Variable? Da hättest Du auch irgendeine andere Variable definieren können, wenn Du die Ausführung unterbinden willst. Oder eine eigentlich für die Bedienung per WebUI vorgesehene virtuelle Taste. Oder wenn Du die Ausführung grundsätzlich verhindern willst, irgendeine Bedingungskombination, die nie wahr sein kann und die dann noch auf "nur prüfen". Die direkte Ausführung von Programmen als Sammler für durchzuführende Aktionen ist eher schlechter Programmierstil und kann Dir auf die Füße fallen. Ein Beispiel hattest Du ja schon.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Matsch
Beiträge: 5557
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 120 Mal
Danksagung erhalten: 763 Mal

Re: Skript nicht automatisch starten

Beitrag von Matsch » 02.12.2023, 14:09

Xel66 hat geschrieben:
02.12.2023, 13:57
Die direkte Ausführung von Programmen als Sammler für durchzuführende Aktionen ist eher schlechter Programmierstil
:idea: :idea: :idea: :!: :!: :!:

ZTHawk
Beiträge: 5
Registriert: 21.09.2023, 21:34
System: Alternative CCU (auf Basis OCCU)

Re: [gelöst] Skript nicht automatisch starten

Beitrag von ZTHawk » 02.12.2023, 14:12

@Xel66
Nein, jede andere kann ich nicht nehmen. Diese spezielle Variable wird vom System immer auf "true" (von mir definiert als Neustart) besetzt, wenn es gestartet wird (bevor andere Variablen).
Nach einem kurzem Delay setze ich sie auf "false" (von mir definiert als Normalbetrieb).
Es wird somit garantiert, dass wenn RM neustartet, diese Variable (ohne zutun) den Wert "true"/"Neustart" hat und korrekt darauf geprüft werden kann.

Mir ging es darum bei Systemstart zuverläßig zu unterbinden, dass ein Programm (und das enthaltene Skript) nicht ausgeführt werden soll. Nur bei bedarf.
Und das klappt jetzt mit der speziellen Variable + Hilfsprogramm.

Antworten

Zurück zu „HomeMatic allgemein“