Programme ausführen - warten bis fertig bei erneuter Taste
Moderator: Co-Administratoren
- NilsG
- Beiträge: 1692
- Registriert: 09.08.2013, 23:44
- System: CCU
- Hat sich bedankt: 383 Mal
- Danksagung erhalten: 30 Mal
- Kontaktdaten:
Programme ausführen - warten bis fertig bei erneuter Taste
Hallo zusammen!
Folgende Problematik:
Starte ich ein Programm, z.B. mein umfangreichstes Programm für ALARM-Anlage, in dem mehrere Dinge nacheinander abgearbeitet werden
(Zustände prüfen, Keymatics verriegeln, Anzeigen umstellen etc.) wenn man z.b. einen Handsender drückt;
kommt es vor, dass sich einige Geräte "verabschieden" , wenn man NOCHMAL den Handsender drückt, z.B. wenn man merkt "halt stop, ich muss nochmal rein ins Haus", BEVOR das Programm komplett abgearbeitet ist!
Da man ja immer sagt, das meiste zeitversetzt mit 1 Sekunde einzustellen, dauert das schonmal 10-15 Sekunden ...
Soweit verstanden, was ich meine?!?
Und nun zur Frage:
Wie kann ich z.B. die Eingabe desjenigen/der Handsender so lange blockieren, bis das Programm durchgelaufen ist?!?
Geht sowas mit einfachen Bordmitteln, oder bedarf das einer (umfangreichen) Programmierung?!
DANKE!
Nils
Folgende Problematik:
Starte ich ein Programm, z.B. mein umfangreichstes Programm für ALARM-Anlage, in dem mehrere Dinge nacheinander abgearbeitet werden
(Zustände prüfen, Keymatics verriegeln, Anzeigen umstellen etc.) wenn man z.b. einen Handsender drückt;
kommt es vor, dass sich einige Geräte "verabschieden" , wenn man NOCHMAL den Handsender drückt, z.B. wenn man merkt "halt stop, ich muss nochmal rein ins Haus", BEVOR das Programm komplett abgearbeitet ist!
Da man ja immer sagt, das meiste zeitversetzt mit 1 Sekunde einzustellen, dauert das schonmal 10-15 Sekunden ...
Soweit verstanden, was ich meine?!?
Und nun zur Frage:
Wie kann ich z.B. die Eingabe desjenigen/der Handsender so lange blockieren, bis das Programm durchgelaufen ist?!?
Geht sowas mit einfachen Bordmitteln, oder bedarf das einer (umfangreichen) Programmierung?!
DANKE!
Nils
Grüße und DANKE!
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
Re: Programme ausführen - warten bis fertig bei erneuter Tas
Nicht wirklich.NilsG hat geschrieben:Soweit verstanden, was ich meine?!?
Warum passiert das wenn die Taste gedrückt wird? Bzw. was genau meinst Du damit?NilsG hat geschrieben:kommt es vor, dass sich einige Geräte "verabschieden"
Den Handsender selbst kann man nicht sperren. Ein erneutes auslösen eines Programms kann man per Variable unterbinden.NilsG hat geschrieben:Wie kann ich z.B. die Eingabe desjenigen/der Handsender so lange blockieren, bis das Programm durchgelaufen ist?!?
>>> siehe hier <<<
Um aber genaueres zu sagen müsste man wissen was die Taste für Aufgaben hat.
Evtl. ist die einfachste Lösung das Programm komplett zeitverzögert abzuarbeiten.
Wenn ich das Haus verlasse wird lediglich die KeyMatic angesteuert, alle anderen Dinge passieren einige Minuten später. So kommt es nicht zum Chaos wenn man doch kurz wieder ins Haus möchte.
Viele Grüße!
Jörg
Jörg
-
- Beiträge: 4155
- Registriert: 26.01.2016, 08:14
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Renningen
- Hat sich bedankt: 348 Mal
- Danksagung erhalten: 284 Mal
Re: Programme ausführen - warten bis fertig bei erneuter Tas
Mit einer Systemvariable "SV_Prog_Laueft" vom Typ Bool.
Die kommt mit in die "Wenn" Bedingung und wird "nur prüfen" gesetzt auf falsch.
Im Programm wird die als erstes auf "wahr" gesetzt, und als letztes mit der größten Verzögerung wieder auf "falsch".
Fertig.
Die kommt mit in die "Wenn" Bedingung und wird "nur prüfen" gesetzt auf falsch.
Im Programm wird die als erstes auf "wahr" gesetzt, und als letztes mit der größten Verzögerung wieder auf "falsch".
Fertig.
- NilsG
- Beiträge: 1692
- Registriert: 09.08.2013, 23:44
- System: CCU
- Hat sich bedankt: 383 Mal
- Danksagung erhalten: 30 Mal
- Kontaktdaten:
Re: Programme ausführen - warten bis fertig bei erneuter Tas
Das mit lange zeitverzögert, ändert ja aber im Prinzip nix, an der Sache, denn das Programm läuft dann ja noch immer bzw. länger.
Der Handsender startet das Programm; in dem Programm wird dann alles abgearbeitet:
KeyMatic(s)
Anzeigen
Systemvariablen usw
Naja, und wenn ein Programm noch am Abarbeiten ist, ein neues aber gestartet wird, dass die gleichen Geräte etc. ansteuern soll (eben nur andersgerum, also öffnen); dann gibts Chaos
Grüße und DANKE!
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
-
- Beiträge: 4155
- Registriert: 26.01.2016, 08:14
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Renningen
- Hat sich bedankt: 348 Mal
- Danksagung erhalten: 284 Mal
Re: Programme ausführen - warten bis fertig bei erneuter Tas
Das Neue wird aber nciht gestartet weil die SV das verhindert.
Re: Programme ausführen - warten bis fertig bei erneuter Tas
Naja, es kommt darauf an was alles abgearbeitet wird und wie lange das dauert.NilsG hat geschrieben:Das mit lange zeitverzögert, ändert ja aber im Prinzip nix, an der Sache, denn das Programm läuft dann ja noch immer bzw. länger.
Aber im Prinzip kommt Dein Problem daher das Du den Fehler machst das Programm direkt über die Taste auszulösen.
Bei solchen Dingen ist es immer besser über Variablen zu schalten.
Die Keymatic sollte so oder so per Direktverknüpfung geschaltet werden. Zusammen mit der KM setzt Du im Programm verzögert eine Variable.
Diese Variable triggert dann anstelle der FB das Alarmprogramm. Und schon ist Dein Wunsch erfüllt.
Wenn ich z.B. die FB betätige schließt die KM per DV und in einem Programm wird dann eine Variable nach 5 Min auf abwesend gesetzt. Erst wenn diese Variable nach 5 Min geändert wird laufen alle anderen Programme an die verschiedene Aktionen ausführen. Betätige ich nun vor Ablauf der 5 Min die FB zum aufschließen, dann wird die laufende Verzögerung abgebrochen und alle "Abwesend-Programme" werden nicht ausgelöst.
Viele Grüße!
Jörg
Jörg
-
- Beiträge: 14148
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 583 Mal
- Danksagung erhalten: 1497 Mal
Re: Programme ausführen - warten bis fertig bei erneuter Tas
Einfach im ersten Schritt eine Systemvariable (z.B. "Programmsperre"), die mit der Taste verUNDet (Bedingung: "Programmsperre ist FALSCH") ist auf WAHR setzen und nach Ablauf der Laufzeit der Aktionen auf FALSCH setzen. Somit ist ein erneutes Triggern gesperrt, solange das Programm oder die Geräte brauchen.
Gruß Xel66
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
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
- NilsG
- Beiträge: 1692
- Registriert: 09.08.2013, 23:44
- System: CCU
- Hat sich bedankt: 383 Mal
- Danksagung erhalten: 30 Mal
- Kontaktdaten:
Re: Programme ausführen - warten bis fertig bei erneuter Tas
Ah ok, cool
Werde dahingehend mal testen und berichten
Direktverknüpfung zur Keymatic ist ja ok
In dem Programm frage ich aber ALLE 4 Keymatics ab und verriegele die ggf
dann
Somit würde eine Direktverknüpfung nur bedingt Sinn machen
Außerdem möchte ich aus jeder Tür gehen können und dann schalten/anschließen können
Nils
Werde dahingehend mal testen und berichten
Direktverknüpfung zur Keymatic ist ja ok
In dem Programm frage ich aber ALLE 4 Keymatics ab und verriegele die ggf
dann
Somit würde eine Direktverknüpfung nur bedingt Sinn machen
Außerdem möchte ich aus jeder Tür gehen können und dann schalten/anschließen können
Nils
Grüße und DANKE!
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
- NilsG
- Beiträge: 1692
- Registriert: 09.08.2013, 23:44
- System: CCU
- Hat sich bedankt: 383 Mal
- Danksagung erhalten: 30 Mal
- Kontaktdaten:
Re: Programme ausführen - warten bis fertig bei erneuter Tas
Ich habe mit in Programm die KeyMatics und in dem anderen alle anderen Anzeigen/Dinge.JRiemann hat geschrieben:Naja, es kommt darauf an was alles abgearbeitet wird und wie lange das dauert.NilsG hat geschrieben:Das mit lange zeitverzögert, ändert ja aber im Prinzip nix, an der Sache, denn das Programm läuft dann ja noch immer bzw. länger.
Aber im Prinzip kommt Dein Problem daher das Du den Fehler machst das Programm direkt über die Taste auszulösen.
Bei solchen Dingen ist es immer besser über Variablen zu schalten.
Hier kann ich zusätzlich noch über über eine "Retro"-Anzeige aus der Garage schalten, wenn ich das Haus mit dem auto über die Garage verlasse:
Wie sollten/könnte ich hier denn dann die Variablen einbauen?!
Ich habe gerade selbst gemerkt, dass ggf. die Abstände der Sendebefehle nicht ganz zueinander passen ...
Also KeyMatics schliessen UND Anzeigen schalten etc.!
DANKE!!!
Nils
Grüße und DANKE!
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
Re: Programme ausführen - warten bis fertig bei erneuter Tas
Ich würde die Variable in jedem Programm in dem die Taste als Auslöser dient in jedem WENN-Block und wenn vorhanden auch in jedem SONST-WENN als zu prüfende Bedingung einfügen. Das liegt aber ganz bei Dir in welchem Programm Du verhindern möchtest das innerhalb der Sperrzeit auf die Taste reagiert wird.
Zum setzen der Sperre reicht es aus die Variable in einem der Programme im DANN einzufügen.
Allerdings finde ich den gesamten Ablauf etwas ungünstig weil Du gleich mehrere Programme "gleichzeitig" mit der Taste auslöst. Da weiß man ja nie welches als erstes ausgeführt wird.
Zum setzen der Sperre reicht es aus die Variable in einem der Programme im DANN einzufügen.
Allerdings finde ich den gesamten Ablauf etwas ungünstig weil Du gleich mehrere Programme "gleichzeitig" mit der Taste auslöst. Da weiß man ja nie welches als erstes ausgeführt wird.
Code: Alles auswählen
WENN - Taste kurz
UND - NEUE VARIABLE - Zustand Tastensperre nicht aktiv - nur prüfen
UND - Türkontakt Hof - geschlossen - nur prüfen
UND - xyz - ...
DANN - NEUE VARIABLE - sofort Zustand Tastensperre aktiv
DANN - verzögert um 1 Sek - mache was weiß ich
DANN - verzögert um 2 Sek - noch mehr Aktion
DANN - NEUE VARIABLE - verzögert um 10 Minuten - Zustand Tastensperre deaktiviert
Viele Grüße!
Jörg
Jörg