Ablaufplan (6.0+)

Ich komme noch nicht wirklich mit den Wartezeiten klar, die unbeirrbar und nicht abbrechbar weiterlaufen (Langzeittimer)

Dann fehlt mir eine Bedingungsebene zwischen den Auslösern und den Aktionen, um auch mehrere Auslöser miteinander zu verknüpfen.

Klar, logische Operationen kann ich gerne analog zu den bereits vorhandenen mathematischen Operationen einbauen. Der Abbruch der Langzeittimer kommt noch, ich glaube das hat @paresy auch schon an einigen Stellen geschrieben.

Wie meinst du das mit der zusätzlichen Bedingungsebene? Diese kannst du ja bauen, sobald du die Wenn-dann-Operationen hast (Wenn Temperatur < 14, breche Ablaufplan ab, …). Oder meinst du da noch was anderes?

Eine neue Version ist raus, darin haben wir das Dropdown für die Aktionsauswahl durch einen verschachtelten Baum mit Kategorien und Beschreibungen ersetzt. Auch wenn noch keine Beschreibungen und Kategorien eingepflegt sind und somit nur die generierten Kategorien „Vorschläge“ und „Zuletzt verwendet“ zur Anwendung kommen, kann man sicherlich schon gut sehen in welche Richtung wir uns das vorstellen. Was haltet ihr davon? Und welche Kategorien würdet ihr euch wünschen?

Ich habe gerade gelesen, dass das Setzen einer Variable die schaltbar ist, nicht mehr möglich ist. Das finde ich sehr schade, da ich das bei meiner Heizungssteuerung verwende, weil es anders nicht möglich ist. Wenn ich die schaltbare Variable jetzt dann schalte statt setzen zu können, laufe ich Gefahr in eine Endlosschleife zu geraten oder im besten Fall zu viele API Aufrufe zu haben.
Finde ich eher nicht optimal. Der Unterschied zwischen Schalten und Setzen ist doch relativ klar, oder sehe ich das anders.
Was hält die Allgemeinheit davon?

Schaltbare Variablen kann man idr nie setzen, wenn es eine Statusvariable (einer Symcon Instanz) ist, gibt das sogar passende Fehlermeldungen.
Wenn es allerdings eine Variable mit Aktions-Skript ist, was ich hier vermute:

Dann ist deine Umsetzung nicht gut. Warum sollte eine Aktion die Variable setzten? Du willst doch etwas ansteuern.
Michael

Wenn ich mehrere Auslöser habe, die einen Ablaufplan auslösen, können diese eigene Bedingungen habe aber ggf. auch gegenseitig abhängige Bedingungen.
Das könnte ich natürlich bei jedem Auslöser in die Bedingungen einbauen aber ich fände hier eine Ebene zwischen Auslöser und Aktion deutlich lesbarer.

Mein Vorschlag wäre da, dass man solche „Globalen Bedingungen“ mit Wenn-Bedingungen abfängt. Die erste Aktion im Ablaufplan könnte also beispielsweise „Wenn Variable != 5, breche Ausführung ab“ sein. Damit hast du unabhängig vom Auslöser festgelegt, dass für den Ablaufplan die Bedingung gelten muss. Vielleicht könnte man auch eine „Bedingung“ als weitere Aktion einbauen, dann müsste man seine Anforderungen nicht „umdrehen“. Was hältst du davon?

Einen separaten Bereich für Bedingungen, der nochmal circa ein Drittel des Bildschirms einnimmt, wirkt auf mich recht intensiv, aber lass uns gerne darüber reden, deswegen machen wir ja eine Beta :wink:

Natürlich kann ich mir auch einen Ablaufplan wie ein Flussdiagramm aufgebaut vorstellen.
Solche Prozesse muss ich auch oft außerhalb der IT kreieren.

Vielleicht hat mich einfach nur der Begriff Aktionen an der Stelle verwirrt. Entscheidungen stehen für mich nicht zwingend für Aktionen.

Nein, ist es nicht.
In einem Event wird eine Variable die ich selbst angelegt habe und schaltbar ist (Solltemperatur vom Boiler) geändert, wenn sich die Solltemperatur des Boilers aus der Vitodens Instanz ändert. Diese kann auf drei Arten geändert werden. Entweder in der App von Viessmann, auf der Weboberfäche und direkt an der Therme. Damit ich diese Änderungen auch in IPS in dieser Variable hab, wird sie „gesetzt“ und nicht „geschaltet“, damit das Actionskript nicht ausgeführt wird, das dahinter liegt. Weil dieses ändert mir die Solltemperatur auf der Therme über eine andere API, weil das Modul von IPS (Ich glaub es ist von paresy) das nicht kann. Daher hab ich das selber gemacht.
Wenn aber jetzt nur mehr „schalten“ geht, dann läuft mir das womöglich in eine Endlosschleife oder erzeugt bestenfalls unnötige API-Aufrufe.

Das solltest du eventuell dann im Thema vom Modul weiter ausführen.
Korrekt wäre es diese, über die Instanz aktuell nicht steuerbare, Variable mit ein Aktions-Skript zu versehen. Das Aktions-Skript benutzt dann deinen eigenen API Aufruf.
Damit braucht es weder eine zweite Variable, noch irgendein Ereignis um die zweite Variable zu synchronisieren.
Michael

Wenn das so geht, wäre das natürlich eine bessere Lösung. Ich machte es so, weil ich nicht wollte, dass bei einem etwaigen Update das Actionskript gelöscht wird. Darum dieser Ansatz.

Benutzer Einstellungen, wozu auch ein Aktions-Skript gehört, dürfen von Modulen nicht verändert werden.
Michael

…mag sie immer mehr, die neuen Ablaugpläne :slight_smile: … aber ich seh grad den Wald vor lauter Bäumen nicht: Möchte auf einen Variablenwert (kleiner oder größer) vergleichen… sehe die Möglichkeit auf einen exakten Wert zu vergleichen …aber mein Helligkeitssensor zählt nun mal nicht kontinuierlich runter… Idee wie das geht?

Gruß, Michael

Aktuell sind Bedingungen ja nur in den Ereignissen zu finden, primär via „Erweiterte Bedingung“, dort kannst du für den Vergleich auch den Vergleichsoperator auswählen. Aktuell arbeite ich auch an der Wenn-Bedingung, damit könnt ihr das dann direkt in den Ablaufplan integrieren. Ich hoffe ich habe da im Laufe der Woche noch was schönes für euch :slight_smile:

Das sieht sehr gut aus. Kannst du noch erläutern, wie „Vorschläge“ und „Zuletzt verwendet“ gefüllt bzw. verwaltet werden?
Zu weiteren Kategorien fällt mir noch „Experte“ ein. Da könnten Instanzfunktionen und PHP Code landen.

Wird es zum Wenn auch ein Sonst geben? Und vielleicht auch eine Verschachtelungsmöglichkeit?
Und dann bräuchte man noch eine Beenden Aktion :slight_smile:

Vorschläge werden auf Basis der Priorität von Aktionen gesetzt. Hier landen die drei höchstpriorisierten Aktionen zum gewählten Ziel. Die Aktionen müssen allerdings eine Priorität > 0 haben, daher sind es manchmal auch weniger als 3.

Immer wenn du die Auswahl einer Aktion bestätigst (Aktion im Ablaufplan hinzufügen oder bearbeiten, ein Ereignis im Objektbaum erstellen oder bearbeiten, …), merkt sich die Konsole die Aktion in einer „Warteschlange“. Bei Zuletzt verwendet landen dann die Aktionen, die als letztes der Schlange hinzugefügt wurden (und natürlich passen).

Beim Sonst bin ich tatsächlich noch unsicher. Dafür müsste eine Aktion in zwei Richtungen verschachtelt werden. Das könnte ich mir prinzipiell vorstellen, wenn die Aktion über mehrere Zeilen verteilt wird, weiß aber nicht, wie gut das wirklich ist, also in dem Falle

  1. Zeile: „Wenn (Bedingung)“
  2. Zeile+: Die Wenn-Aktionen
  3. Zeile: „Sonst“
  4. Zeile+: Die Sonst-Aktionen

Verschachtelung wird wiederum von Anfang an möglich sein.

Was wäre die Alternative? Die komplette Wenn-Bedingung in einer Zeile? Das wird in der Übersicht dann bestimmt sehr schwer zu lesen. Da fände ich die Darstellung in mehreren Zeilen übersichtlicher. Auch ein Einfügen/Verschieben/Löschen stellt sich dann vermutlich einfacher dar.

Für die aktuelle Wenn-Aktion gibt es eine Zeile für die Bedingung und dann auf aufklappbaren Baum mit den dazugehörigen Aktionen (jeweils untereinander). Da hat dann aber die Aktion „Wenn“ selbst eine Zeile und die darunterliegenden Aktionen halt auch jeweils eine.

Keine Sorge, es kommen nicht alle 10 Aktionen, die du in einer Wenn-Bedingung schalten möchtest mit in die eine Zeile! Vielleicht lohnt es sich, die Diskussion über das „Sonst“ zu vertagen, wenn es erst einmal das „Wenn“ gibt :wink:

Hallo,

erlaubt mir eine Einsteigerfrage :wink:
Ist der Ablaufplan eher für die „Profis“ gedacht, für die „Anfänger“ oder sollen beide Welten mit dem Ablaufplan zurechtkommen und ihn benutzen können?

Ich bin gerne bereit die „Anfängersicht“ zu testen, sobald die öffentliche Beta verfügbar wird. Ich könnte mir vorstellen, dass ich andere Anforderungen / Probleme habe wie die Profis / erfahrenen User unter uns :slight_smile:

Grüße
Simon

Hallo Simon,

der Ablaufplan ist eigentlich für beide gedacht.

„Anfänger“ können mit dem Ablaufplan deutlich einfacher kleine oder große Abfolgen definieren, da die meisten Aktionen recht selbsterklärend sind.

„Profis“ können das ganze mit Expertenaktionen (wie PHP-Code oder Instanzfunktionen) noch einmal erweitern, haben deutlich präzisere Analysemöglichkeiten im Vergleich zum Skript und können verschiedene Strategien für Ausführung und Fehler definieren.

Insgesamt sind wir auf jeden Fall sehr interessiert an deiner „Einsteigerperspektive“ und sehr gespannt auf dein Feedback!