Semaphore

Ich habe eine Scriptfolge für meine Rollläden, jeweils am Ende eines Scriptes setze ich ein Timer, der das nächsten Scripts startet …( alle gleichzeitig schafft das 1-wire netz nicht )…soweit sogut.

die beiden „Startscripte“ werden über den Astrotimer gestartet … jetzt möchte ich die Kinderzimmer aber über Astrotimer ODER wenn es 19:15Uhr ist Starten ( also spätestens 19:15 ). Ich habe mir also ein 2tes Ereignis angelegt ( 19:15 ). Nun kann es aber sein, daß der Astrotimer das Script schon um 19:14 und 24sec gestartet hat . Ich suche also ein „Semaphore“, der über mehrere Scripte aktiv bleibt um am Ende wieder ausgeschaltet zu werden.

Was muß ich da machen ?? Wie schreib ich sowas ??

http://www.ip-symcon.de/service/dokumentation/befehlsreferenz/ablaufsteuerung/ips-semaphoreenter/?type=5

Hab ich auch gelesen … aber was ist in dem Beispiel das „KritischerPunkt“ ??
eine Variable ?? ein String ?? Das Script ??

das ist der Scriptname. Wenn dein Script nur eine ID hat, kannst Du auch diese einsetzen z.B. „12345“.

DANKE ! das ist es

Doch nicht :frowning:

wenn ich das richtig lese:

Der Befehl versucht das Semaphor mit dem Namen SemaphorName zu setzen. Existiert das Semaphor bereits, wird die Abarbeitung des Skripts für die Zeitdauer Wartezeit (in Millisekunden) ausgesetz. Danach wird noch ein weiterer Versuch unternommen.

ich will keinen weiteren Versuch !

Die Scriptfolge dauert mit den ganzen Timern ca. 45 Sekunden.

Warum setzt Du Dir keine Sperrvariable und fragst diese in Deinem Startscript ab. Wird das Script ein zweites mal getriggert ist diese true und Du machst ein return. Am Ende des letzten Script hebst Du diese Sperrvariable wieder auf (false). Damit ist ein Durchlauf erfolgt.
Ein Semaphor macht man eher wenn man gerade will das ein zweiter Versuch unternommen wird um keine Informationen zu verlieren.

Bei Timeout = 0 wird direkt abgebrochen.

paresy