Ablaufplan (6.0+)

Kurze Frage zum Ablaufplan: Ich habe 3 Tasten an einem Homematic-Schalter. Mit jeder PRESS-SHORT Taste führe ich einen eigenen Skript aus.
Jetzt dachte ich, ich lege die 3 PRESS-SHORT-Tasten in einen Ablaufplan und mit WENN…, DANN entscheide ich, welche Aktion ausgeführt werden soll.
Problem: die Taster stehen ja immer auf TRUE und ich löse ja nur mit einer Aktualisierung eine Aktion aus. Das geht doch mit WENN, …DANN im Ablaufplan gar nicht oder?

Du kannst in den anderen Aktionen das Event auswählen, also wenn Auslöser ist Taster 1 mach dies, Auslöser Taster 2 jenes usw …

image

Loerdy

@loerdy Danke, das funktioniert so, wie ich es haben will.

Ja, über IPS_AbortScript($id). Eine Aktion gibt es dafür (noch) nicht.

Nein. Du kannst nur von vorne beginnen.

paresy

1 „Gefällt mir“

@BommelPommel Du könntest natürlich in einer Hilfsvariable tracken, wo du gerade bist. Wird das Skript erneut gestartet, hast du Wenn… Dann… um die einzelnen Abschnitte und überspringst dabei die bereits ausgeführten.

Ein Beitrag wurde in ein neues Thema verschoben: Fehlender Datenpunkt für HM-CC-RT-DN (Homematic Thermostat)

Morgen Dr.Niels,
hat jetzt etwas gedauert aber so funktioniert es nun (mit Skripten wollte ich nichts machen, daher kann ich dir für die IPS_GetEvent nichts zeigen) :man_shrugging:
Ich wollte rein den Editor testen.
Der Fehler liegt im Aufrufen aus der Variablen aus der Webfront heraus.


Bei „EigeneAktion“ rufe ich nun nicht den Ablaufplan selbst auf, sondern eben zuerst einen „Zischenschritt“ über ein Skript.

<?php //Start writing your code here SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

Ich hab dazu nichts gefunden, wenn ich ein „Warte xx Minuten“ im Ablauf habe:

Kann ich dieses xx bzw herunterzählen nutzen für zB die Visualisierung, um die Restzeit anzuzeigen? (Ich würde zB die Bewässerung im Garten starten und hätte gerne die Info, wann die xx Minuten vorbei sind)

Aktuell gibt es dazu leider keine auslesbare/anzeigbare Information.

paresy

Könntet ihr euch vorstellen, evtl. eine Variable unterhalb des Scripts anzulegen, wenn man das im Ablaufplan explizit anhakt?
Das könnte man nämlich auch sehr gut benutzen, wenn man die Treppenhauslichtsteuerung damit nachbaut. :slight_smile:
Ich wollte die Sekunden auch des Öfteren schon mal anzeigen lassen. :slight_smile:

Grüße,
Kai

Ventilatornachlaufsteuerung mit Ablaufplan realisierbar?
Folgendes Problem:
Ich möchte, dass in meinem WC, wenn ich das Licht einschalte, auch gleichzeitig der Ventilator einschaltet - soweit ein Problem mit dem Ablaufplan.
Weiters hätte ich gerne folgendes gelöst:
Wenn das Licht nach einer Laufzeit < 80 Sekunden wieder ausgeschaltet wird, soll der Ventilator 60 Sekunden nachlaufen - dann aus.
Wenn das Licht nach einer Laufzeit > 80 Sekunden wieder ausgeschaltet wird, soll der Ventilator 300 Sekunden nachlaufen und dann aus.

Ist eine solche Anforderung mit einem Ablaufplan realisierbar, oder muss ich in solch einem Falle doch ein PHP-Script schreiben. (Habe das bis vor kurzer Zeit mit HM und einem Script mit einer Hilfsvariable, welche die Einschaltzeit speichert am laufen gehabt).
Der jetzige Aktor für Licht und Ventilator ist ein Shelly 2.5

Danke für die Hilfestellung, Werner

Mal wieder ein paar Wünsche für den Ablaufplan :slight_smile:

  • Alles einklappen / Ausklappen
  • Generell weitere Ansichten für die Auswahl von Variablen und anderen Dingen - vor allem bei größeren Strukturen oder langen Namen ist die Auswahl oft schwer.

@matheom Ok, soweit verstanden. Jetzt wäre das Ereignis "Bei Aktualisierung von „VarZentralAUS…“ spannend. Für die Infos wäre es super, wenn du kurz ein PHP-Skript erstellst und dort

<?php

var_dump(IPS_GetEvent(50588));

reinkopierst. Dann einmal ausführen und hier die Rückgabe posten.

@Galaktika Das bekommt man hin, es gibt aber keine direkte Aktion dafür. Mit zwei Integer-Hilfsvariablen kannst du das aber umsetzen. Direkt nach dem Einschalten des Ventilators schreibst du die aktuelle Zeit per Aktion „Auf aktuellen Zeitpunkt setzen“ in die erste Hilfsvariable „Startzeit“. Danach wartest du per „Auf bestimmten Wert warten“ auf „Aus“ der Statusvariable der Lampe. Danach schreibst du wieder per „Auf aktuellen Zeitpunkt setzen“ in die zweite Hilfsvariable „Endzeit“ die aktuelle Zeit. Dann ziehst du die Startzeit von der Endzeit per „Subtrahiere Wert einer anderen Variablen“ ab. Danach hast du die Laufzeit in „Endzeit“ stehen und kannst die via „Wenn… dann…“ prüfen.

@BommelPommel Fürs globale Klappen könnte ich mir ein Tastaturkürzel vorstellen. Was für „generelle weitere Ansichten“ schweben dir da vor?

weitere Ansichten = breitere … sorry - nicht sauber formuliert und war mir auch in den Ereignissen aufgefallen. Also hier ein Beispiel.

b1

Es wäre auch super, wenn man bei der Auswahl über den Objektbaum nicht nur sieht, wann die Variable das letzte mal aktualisiert wurde, sondern auch deren Wert. Bei größeren Umgebungen wäre die hilfreich.

1 „Gefällt mir“

array(26) {
[„EventID“]=>
int(50588)
[„EventType“]=>
int(0)
[„EventActive“]=>
bool(true)
[„EventLimit“]=>
int(0)
[„EventConditions“]=>
array(0) {
}
[„TriggerType“]=>
int(0)
[„TriggerVariableID“]=>
int(46053)
[„TriggerValue“]=>
int(0)
[„TriggerSubsequentExecution“]=>
bool(false)
[„CyclicDateType“]=>
int(0)
[„CyclicDateValue“]=>
int(0)
[„CyclicDateDay“]=>
int(0)
[„CyclicDateDayValue“]=>
int(0)
[„CyclicDateFrom“]=>
array(3) {
[„Day“]=>
int(0)
[„Month“]=>
int(0)
[„Year“]=>
int(0)
}
[„CyclicDateTo“]=>
array(3) {
[„Day“]=>
int(0)
[„Month“]=>
int(0)
[„Year“]=>
int(0)
}
[„CyclicTimeType“]=>
int(0)
[„CyclicTimeValue“]=>
int(0)
[„CyclicTimeFrom“]=>
array(3) {
[„Hour“]=>
int(0)
[„Minute“]=>
int(0)
[„Second“]=>
int(0)
}
[„CyclicTimeTo“]=>
array(3) {
[„Hour“]=>
int(0)
[„Minute“]=>
int(0)
[„Second“]=>
int(0)
}
[„ScheduleActions“]=>
array(0) {
}
[„ScheduleGroups“]=>
array(0) {
}
[„EventScript“]=>
string(0) „“
[„EventActionID“]=>
string(38) „{7938A5A2-0981-5FE0-BE6C-8AA610D654EB}“
[„EventActionParameters“]=>
array(0) {
}
[„LastRun“]=>
int(1631215928)
[„NextRun“]=>
int(0)
}

@BommelPommel Das Verbreitern von Dialogen haben wir noch im Backlog. Das kommt auch noch, das ist aber ein bisschen aufwendiger und kommt leider nicht soo schnell.

@matheom Das Ereignis sieht gut aus. Ich konnte deinen Fehler bei mir nachstellen, indem ich der Variable einen Ablaufplan als Eigene Aktion zugewiesen habe. Überprüfe doch bitte mal, ob da noch ein Ablaufplan drinhängt und die Änderung auf dein Aktionsskript irgendwie nicht übernommen wurde.

1 „Gefällt mir“

Danke Dr.Niels für die Hilfestellung mit dem Ablaufplan meiner Ventilatorsteuerung - funktioniert super. Als Einstellung benötigt man logischerweise „Bei neuer Ausführung laufende Ausführung abbrechen“.
Ich habe mich jetzt das erste Mal mit den Ablaufplänen auseinandergesetzt und muss sagen: ich bin begeistert - das ist eine super Sache!

Was mir nicht ganz klar ist: Bei „warte auf Wert“ muss man auch eine Zeit angegeben werden. Was kann ich da als höchste Zeit angeben - es kann ja auch sein, dass man 24 Stunden auf einen Wert warten möchte?

LG. Werner

Ich habe das jetzt alles nochmal neu erstellt. Es sollte also kein Ablaufplan mehr drinhängen oder etwas nicht übernommen worden sein. Danke für die gute Hilfe.

@Galaktika Es gibt nicht wirklich ein Limit bei der Wartezeit. Das Warten blockiert auch keinen Thread oder dergleichen. 24 Stunden kannst du da also gerne eingeben.

@matheom Schön, dass es wieder funktioniert :slight_smile:

Hallo zusammen, hätte da auch noch 2 Wünsche.
Eine laufende Wartezeit sollte per PHP Befehl in Zukunft auch aus einem anderen Script heraus abbrechbar sein.
Hab dazu bisher keine „schöne“ Lösung gefunden.
Außerdem wäre es schön die Restlaufzeit der Warten Funktion in einer Variable ausgeben zu können.

Ansonsten ist der Ablaufplan schon eine richtig feine Sache! :slight_smile: