Laufendes Programm beenden

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
moddix
Beiträge: 20
Registriert: 15.04.2007, 18:44

Laufendes Programm beenden

Beitrag von moddix » 06.08.2015, 17:32

Hallo zusammen,

wie kann ich ein laufendes Programm beenden?

Nicht ein Skript ein Programm das evtl. Skripte enthält.

:-* danke
:-**************

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Laufendes Programm beenden

Beitrag von buempi » 06.08.2015, 17:40

Hallo

Ein einzelnes Programm läuft in Sekundenbruchteilen ab. Da gibt es nichts zu stoppen. Wahrscheinlich meinst du verzögert ausgelöste Aktionen? Die kann man stoppen, indem man eine gegenteilige Aktion ausführen lässt und dabei das Häkchen bei "retriggern" verwendet.

Das gilt allerdings nicht für verzögert gestartete Skripts. Da muss man einen Umweg über eine Systemvariable machen, die man verzögert aktiviert und - falls die Aktion nicht ausgeführt werden soll - deaktiviert und dabei das bewusste Häkchen setzt. Die eigentliche Auslösung der Aktion erfolgt dann beim Wechsel der Systemvariable auf "aktiv".

Wenn du weniger allgemein fragen würdest und einen Screenshot deines Programms einstellen würdest, könnte man dir wohl auch konkreter antworten.

Viele Grüsse
Bümpi

moddix
Beiträge: 20
Registriert: 15.04.2007, 18:44

Re: Laufendes Programm beenden

Beitrag von moddix » 06.08.2015, 18:22

Hiiiiiii bümpi,

ja genau, ein programm das sequenziell verzögert APIs anspricht.

wie ist das mit retriggern gemeint? Habe das noch nicht so gecheckt^^^^^^

glg
:-**************

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Laufendes Programm beenden

Beitrag von buempi » 06.08.2015, 18:25

moddix hat geschrieben:wie ist das mit retriggern gemeint? Habe das noch nicht so gecheckt^^^^^^
... Teddy hat das hier mit "Zetteln" sehr gut bildlich dargestellt: http://homematic-forum.de/forum/viewtop ... =31&t=4251

Viele Grüsse
Bümpi

moddix
Beiträge: 20
Registriert: 15.04.2007, 18:44

Re: Laufendes Programm beenden

Beitrag von moddix » 06.08.2015, 18:31

:-)

soweit habe ich verstanden. Wie checkt die CCU wenn es um eine API Schnittstelle geht. Kein Endgerät von Homematic? Es sind POST URLs.

landen die auch auf Zetteln?
:-**************

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Laufendes Programm beenden

Beitrag von buempi » 06.08.2015, 18:35

moddix hat geschrieben:soweit habe ich verstanden. Wie checkt die CCU wenn es um eine API Schnittstelle geht. Kein Endgerät von Homematic? Es sind POST URLs.
... das geht dann eben nicht! Da musst du verzögert eine Systemvariable aktiv schalten und - wenn die Aktion nicht erfolgen soll - sofort inaktiv (mit Häkchen bei Retriggern). Erst in einem weiteren Programm erfolgt dann die Skriptausführung in dem Moment, wo die Variable "aktiv" wird.

Viele Grüsse
Bümpi

moddix
Beiträge: 20
Registriert: 15.04.2007, 18:44

Re: Laufendes Programm beenden

Beitrag von moddix » 06.08.2015, 18:37

oke, danke für deine Hilfe.

ui ui aufwendig für alles var's zu setzen.

glg
:-**************

terny
Beiträge: 76
Registriert: 23.10.2015, 09:08
Hat sich bedankt: 6 Mal

Re: Laufendes Programm beenden

Beitrag von terny » 08.09.2018, 18:35

Hallo zusammen,

gibt es mittlerweile eine "einfachere" Methode, ein Programm mit diversen Verzögerungen zu stoppen?

Das Programm im Anhang stellt einen "Tageslichtwecker" dar, bei welchem zur "Weckzeit" die Rollos zusätzlich hochgehen.
(Bestimmt kann man es schöner und effizienter schreiben, was hier aber nicht Mittelpunkt werden soll)

Nachdem das Programm erstmal angestoßen wurde, habe ich bisher keine Möglichkeit den "Lauf der Dinge" zu stoppen.
Das Licht geht an und die Rollos gehen nach 20 Minuten hoch. Ziel ist es, die Verzögerungen einfach auszuschalten.

Wie würde die Lösung für meine konkreten Fall aussehen?

Schon mal Danke!
Dateianhänge
Zwischenablage01.jpg

Benutzeravatar
JRiemann
Beiträge: 3903
Registriert: 12.11.2015, 21:05
Wohnort: Aurich
Danksagung erhalten: 3 Mal

Re: Laufendes Programm beenden

Beitrag von JRiemann » 08.09.2018, 18:51

Programme kann man nicht stoppen weil sie in den meisten Fällen höchstens einen Augenblick arbeiten. Nach dem auslösen werden die Bedingungen geprüft, ggf. eine Aktion ausgeführt und der Durchlauf beendet.
Die im DANN gestzten Verzögerungen laufen außerhalb des Programms in der CCU oder in den Aktoren selbst.
Um laufende Verzögerung abzubrechen muss für das Objekt ein neuer Befehl erteilt werden und der Haken bei „retriggern“ muss gestzt sein.

Bei Objekten bei denen dies nicht funktioniert (z.B. Skripte) muss eine Variable zwischengeschaltet werden. Man setzt die Variable mit einer Verzögerung und später wird durch die Änderung der Variable sofort das Skript ausgelöst. Die Verzögerung der Variable lässt sich nun einfach abbrechen und das Skript wird nicht ausgeführt.
Viele Grüße!
Jörg

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

Re: Laufendes Programm beenden

Beitrag von Xel66 » 08.09.2018, 22:17

Und bei Geräten könnte man wenn das Abbruchkriterium WAHR wird, denn aktuellen Staus auslesen und wieder setzen (natürlich mit gesetztem Haken beim Retriggern).

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

Antworten

Zurück zu „HomeMatic allgemein“