Wartezeit bis zur erneuten Makroausführung

Programmierung der FHZ-Zentralen mit contronics homeputer Standard / homeputer Studio & WEB-Server

Moderator: Co-Administratoren

Antworten
Benutzeravatar
Mannilein
Beiträge: 158
Registriert: 27.03.2008, 20:24
Wohnort: Niedersachsen

Wartezeit bis zur erneuten Makroausführung

Beitrag von Mannilein » 05.02.2009, 00:52

Hallo

Folgendes Problem:

Ich habe ein Makro in einem Sensor hinterlegt, welches auch korrekt abgearbeitet wird.
Jetzt will ich aber, dass nach einem Durchlauf des Makros dieses innerhalb einer bestimmten Zeit nicht nochmals abgearbeitet wird, falls der Sensor noch Mal aktiviert wird.

Mit Pause geht irgendwie gar nichts. Ich habe auch schon versucht mir einen virtuellen Aktor zu setzen und diesen dann vor Beginn des Makros abzufragen; ähnlich einem Merker wie bei einer SPS. Funktioniert irgendwie nicht. Entweder bleibt das Makro stecken oder läuft trotzdem neu durch. :(

Ich verzweifel hier gleich. Das ist doch bestimmt ganz einfach möglich.

Help me :!: Gruß Mannilein
Kabel ist durch nichts zu ersetzen, ausser durch Kabel!
Wie verhält sich der WAF in der Schwerelosigkeit?
Und warum werden immer noch Toaster ohne USB-Anschluss gebaut?

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

Re: Wartezeit bis zur erneuten Makroausführung

Beitrag von buempi » 05.02.2009, 05:25

Hallo Mannilein

Kein Grund zum Verzweifeln; ist wirklich ganz einfach möglich. Du legst eine Zeitvariable "LetztesMal" an. Ganz am Schluss deines Makros weist du ihr die aktuelle Zeit zu. Und ganz am Anfang setzst du eine Abfrage:

Code: Alles auswählen

** Variable: LetztesMal Typ Zeit

wenn Stoppzeit(LetztesMal) < "00:01:00" dann
   verlassen
endewenn

** Deine Anweisungen

LetztesMal := Zeit
Viele Grüsse
Bümpi

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

Re: Wartezeit bis zur erneuten Makroausführung

Beitrag von buempi » 05.02.2009, 07:31

Hallo Mannilein

Hab ganz vergessen, dass du ja mit der Standard-Version arbeitest! Da geht's natürlich nicht, wie oben beschrieben. Ich überlege noch weiter und melde mich wieder, falls mir eine Idee kommt.

Viele Grüsse
Bümpi

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

Re: Wartezeit bis zur erneuten Makroausführung

Beitrag von buempi » 05.02.2009, 08:03

Hallo Mannilein

Mit der Standard geht's auch (auf Umwegen): Mit dem virtuellen Aktor-Modul warst du schon auf dem richtigen Weg. Im Makro des Sensor musst du nun deine Anweisungen mit dem folgenden Wenn-Block ergänzen:

Code: Alles auswählen

wenn Aktormodul ausgeschaltet dann
   ** Deine Anweisungen
   Aktormodul einschalten für 1 Minuten
Wenn-Block-Ende
Viele Grüsse
Bümpi

Benutzeravatar
Mannilein
Beiträge: 158
Registriert: 27.03.2008, 20:24
Wohnort: Niedersachsen

Re: Wartezeit bis zur erneuten Makroausführung

Beitrag von Mannilein » 05.02.2009, 08:44

Hallo buempi,

ja ich bin doch nur Standard :wink: .

Danke, ich werde Deine Lösung heute Abend gleich ausprobieren.
Deine Lösung ist ja auch eine Abfrage eines "Merkers".
So ähnlich hatte ich das auch schon versucht; funktionierte aber nicht.
So hatte ich das Makro beispielhaft im Sensor:

Code: Alles auswählen

wenn Aktormodul ausgeschaltet dann
    ** sende Email **
    ** starte Programm **
    ** warte 8 Sekunden **
    ** starte Programm **
    ** Aktormodul einschalten für 1 Minute
    Sensor ausschalten
wenn-Block-Ende
Hier bleibt das Makro aber stecken, der Sensor wird nicht mehr ausgeschaltet.
Setze ich den Befehl

Code: Alles auswählen

** Aktormodul einschalten für 1 Minute
noch früher im Makro bleibt das Programm ehr stecken.

Ich denke das ist mein Problem und Du umgehst das indem Du ein externes Makro ablaufen lässt?

Gruß Mannilein
Kabel ist durch nichts zu ersetzen, ausser durch Kabel!
Wie verhält sich der WAF in der Schwerelosigkeit?
Und warum werden immer noch Toaster ohne USB-Anschluss gebaut?

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

Re: Wartezeit bis zur erneuten Makroausführung

Beitrag von buempi » 05.02.2009, 09:16

Hallo Mannilein

Nein, das mit dem externen Makro habe ich (offenbar während du deine Antwort eingetragen hast) rausgenommen und durch die Variante, die du auch verwendest (einschalten FÜR), ersetzt.

Bei mir läuft es einwandfrei. Habe auch so was ähnliches wie dein Makro mit zwei Anweisungen und einem WARTE dazwischen ausprobiert. - Geht ebenfalls.

Bei dir blieb das Makro vermutlich nicht hängen. Sondern es kam ein zweites Signal vom Sensor während das Aktormodul eingeschaltet war. Weil die Anweisung "Sensor ausschalten" innerhalb des WENN-Blocks steht, wurde sie nicht ausgeführt. Sonst lief aber bestimmt alles richtig.

Wenn du diese Zeile ganz nach unten hinter das "Wenn-Block-Ende" verschiebst, läuft auch das richtig. Es sei denn, ein zweites Signal kommt bereits vor Ablauf der 8 Sekunden. Um welche Art Sensor handelt es sich? Bei Bewegungsmeldern z.B. beträgt der Mindest-Sendeabstand gerade 8 Sekunden (am Gerät einstellbar).

Sollte es sich um einen Sensor handeln, der mit Signalen "bombardiert", musst du den ganzen Ablauf tatsächlich in ein externes Makro packen und im Wenn-Block den Schaltaktor einschalten und das externe Makro starten. Das "Sensor ausschalten" bleibt ganz unten (nach WENN-Block-Ende) stehen.

Viele Grüsse
Bümpi

Benutzeravatar
Mannilein
Beiträge: 158
Registriert: 27.03.2008, 20:24
Wohnort: Niedersachsen

Re: Wartezeit bis zur erneuten Makroausführung

Beitrag von Mannilein » 05.02.2009, 10:07

Hallo buempi
buempi hat geschrieben:Bei dir blieb das Makro vermutlich nicht hängen. Sondern es kam ein zweites Signal vom Sensor während das Aktormodul eingeschaltet war. Weil die Anweisung "Sensor ausschalten" innerhalb des WENN-Blocks steht, wurde sie nicht ausgeführt. Sonst lief aber bestimmt alles richtig.
Ja, Du hast wohl Recht. Wenn ich so drüber nachdenke ist es nur die Visualisierung vom Sensor gewesen.
Mannilein hat geschrieben:Sollte es sich um einen Sensor handeln, der mit Signalen "bombardiert"
Genau so sieht das aus. Der Sensor ist die Haustürklingel und die beiden kleinen Ganoven (1 Jahr und 4 Jahre) schaffen zusammen bestimmt 6x Klingen in der Sekunde :wink: .

Dann versuche ich das auf jeden Fall mit dem extern ablaufenden Makro.

Gruß Mannilein
Kabel ist durch nichts zu ersetzen, ausser durch Kabel!
Wie verhält sich der WAF in der Schwerelosigkeit?
Und warum werden immer noch Toaster ohne USB-Anschluss gebaut?

Benutzeravatar
Mannilein
Beiträge: 158
Registriert: 27.03.2008, 20:24
Wohnort: Niedersachsen

Re: Wartezeit bis zur erneuten Makroausführung

Beitrag von Mannilein » 06.02.2009, 00:02

Hallo buempi,

so es funktioniert jetzt - wenn auch nicht gleich auf Anhieb :? .

Makro im Sensor "Haustuerrklingel"

Code: Alles auswählen

wenn Merker_Haustuerklingel ausgeschaltet dann
   wenn DaemmerungssensorK2 im Alarmzustand dann
   Aktor_500WFluter einschalten für 00:01:30
   wenn-Bock-Ende
   Makro starten Haustuerklingelmerker
wenn-Block-Ende
Marko "Haustuerklingelmerker"

Code: Alles auswählen

Merker_Haustuerklingel einschalten
Starte Windows-Programm ("C:\Sendemail\IPCamKlingel.bat")
warte 8 Sekunden
Starte Windows-Programm ("C:\Sendemail\IPCamKlingel.bat")
warte 1 Minute
Haustuerklingel ausschalten
Merker_Haustuerklingel ausschalten
Erst hatte ich die Sendemail-Befehle noch im Makro des Sensors Haustuerklingel stehen. Das funktionierte im Normalfall zwar auch, aber wenn innerhalb der 8 Sekunden noch Mal ein Befehl vom Sensor gekommen ist, wurde der 2`te Sendemail Befehl nicht mehr ausgeführt.

Aber mit deiner Hilfe löftet ja jetzt :D Wie immer :mrgreen:

Gruß Mannilein

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

Re: Wartezeit bis zur erneuten Makroausführung

Beitrag von buempi » 06.02.2009, 08:31

Hallo Mannilein

Nicht wahr: Toll, was man mit der Standard und etwas Phantasie alles machen kann?

Stört es dich, dass beim Starten dieser Batch-Datei jeweils eine DOS-Box angezeigt wird? Das liesse sich verhindern! Wenn du am Wochenende mal Zeit hast, kannst du es ja vielleicht ausprobieren:

Du musst den aktuellen Release von Homeputer Standard haben (81228). Den kannst du dir von der Contronics-Homepage runterladen. Vor der Installation solltest du dir eine Sicherheitskopie des ganzen Homeputer-Verzeichnisses mit Unterverzeichnissen anlegen.

Dann habe ich mal eine StartMin.exe geschrieben, die du hier findest: http://homematic-forum.de/forum/viewtop ... 9951#p9951

Kopiere diese EXE in dein Verzeichnis C:\Sendemail.

Bisher konnte man mit Homeputer-Standard einem Windows-Programm keine Parameter übergeben. Im aktuellen Release funktioniert es aber. Ersetzte deinen Befehl durch folgende Zeile:

Code: Alles auswählen

C:\Sendemail\StartMin.exe IPCamKlingel.bat
Die irreführende Meldung, dass die Datei nicht existiere, beachtest du nicht, bzw. quittierst du mit JA.

Und schon läuft's - ganz ohne DOS-Box! Nur in der Task-Leiste ist das Programm zu sehen.

Viele Grüsse
Bümpi

Benutzeravatar
Mannilein
Beiträge: 158
Registriert: 27.03.2008, 20:24
Wohnort: Niedersachsen

Re: Wartezeit bis zur erneuten Makroausführung

Beitrag von Mannilein » 06.02.2009, 23:25

Hallo buempi,

das mit der Startmin.exe werde ich auf jeden Fall mal ausprobieren.
Leider fehlt mir DER wirkliche Bedarf. Den Tochscreen-Monitor im Flur (eigentlich egal wo :wink: ) verbietet der WAF :twisted: .

Und da der Server derzeit ganz allein und unbeachtet vor sich hin mühlt sieht keiner die DOS-Fenster.
Vielleicht darf ich ja doch irgendwann ....... :?: so einen gaaaaaanz kleinen vielleicht.............. :?: Mini-Touchscreen............... :?: :cry:

Gruß Mannilein
(Operation WAF started!)
Kabel ist durch nichts zu ersetzen, ausser durch Kabel!
Wie verhält sich der WAF in der Schwerelosigkeit?
Und warum werden immer noch Toaster ohne USB-Anschluss gebaut?

Antworten

Zurück zu „homeputer Studio / Standard: Programmierbeispiele“