Ablaufplan (6.0+)

Hol das nochmal hoch…

Hast du das mit der 6.1 mal getestet? Eigentlich hätte ich gedacht, dass SELF auch korrekt bei Ablaufplänen geht.

paresy

werds probieren und berichten…

Hi Michael,
es geht leider noch nicht. Ergebnis ist immer 0.

IP-Symcon 6.1, Raspberry Pi (armhf), 03.01.2022, bdfbb2708d22

Noch ein Problem:
Eine Aktion (Führe PHP-Code aus) wird nicht ausgeführt?

Es wird bei Änderung einer Präsenz (17 Auslösende Variablen) folgendes gemacht:
Wenn dann (mehrfach) …
Hier werden mit WENN (alle Bedingungen erfüllt) nochmal alle Präsenzvariablen überprüft und DANN ein PHP Skript ausgeführt (externes Skript ausgewählt). Skript funktioniert.
NUR das Skript wird NIE über den Ablaufplan ausgeführt (auch wenn alle Bedingungen zutreffen)

Wieso?


Ablaufplan


Analyse. Hier sollte das PHP Skript um 10:49 uhr ausgeführt werden (siehe unten)


Hier sieht man das es NICHT ausgeführt wird. Letzter Zeitpunkt wurde manuell ausgeführt.

@cbeham: Die Aktion muss „Führe Automation aus“ heißen. Wenn du „Führe PHP-Skript aus“ wählst, musst du den Code direkt direkt ins Feld tippen und bekommst die ZielID nur als Parameter geliefert.

paresy

1 „Gefällt mir“

Aloha paresy und danke für die schnelle Reaktion!
Aber WO ist „Führe Automation aus“ ?

Ich bin blind oder blöd :slight_smile:

Dachte eigentlich wenn man bei „Führe Code aus“ als ZIEL das PHP Skript auswählt, führt er anstatt des Codes das externe Skript aus?

Hi!

Ich habe nachgesehen und du müsstest $_IPS[‚TARGET‘] verwenden.

paresy

1 „Gefällt mir“

Du wählst erstmal oben als Ziel das Skript aus.

paresy

1 „Gefällt mir“

Jetzt kapiert!
Danke und Danke!

Ich versuche mich mehr und mehr daran zu gewöhnen, einfachere Abläufe in einem Ablaufplan statt in einem Skript abzubilden. Das geht zum Teil wirklich schneller und ist oft übersichtlicher. Allerdings vermisse ich in Punkto Übersichtlichkeit eine Funktion oder es gibt sie bereits und ich kenne sie nicht.

Und zwar würde ich gerne Ablaufpläne in der Form gliedern können, dass ich zusammenhängende Blöcke innerhalb des Ablaufplans ein- und ausklappen kann, so wie es bei Bedingungen auch der Fall ist und die einzelnen Aktionen der untergeordneten Ebene dann auch als Unterpunkte dargestellt werden (z.B. 10-1, 10-2).

Konkret würde ich mir eine erweiterte Kommentarfunktion wünschen, die dann Unterpunkte haben kann. Ich nutze die die Aktion Kommentar vielfach, um zusammenhängene Aktionen zu beschreiben. Leider geht dabei schnell die Übersichtlichkeit verloren, was ein Kommentar ist und was dazu gehört.

Wäre sowas denkbar bzw. gibt es das schon? Ich könnte zwar auch mit irgendwelchen Dummy-Bedingungen arbeiten, aber das finde ich als Dauerlösung irgendwie nicht so cool.

Gruß
Slummi

Es fehlt ja allgemein noch Funktionalität um (außerhalb der von uns dafür vorgesehenen Aktionen) in die Tiefe abzubiegen. Das möchten wir noch für alle Aktionen freischalten, das ist bisher aber noch nicht möglich. Ich denke aber, wenn das soweit ist, dann kann die Aktion von dir auch dazukommen. Ob wir die dann entwickeln oder du diese selbst bastelst, sehen wir dann.

Hallo zusammen,

ist es irgendwie möglich Schleifen innerhalb eines Ablaufplans zu bauen, bzw. ist das irgendwann geplant?

Mein Hintergrund ist der folgende: Ich würde gerne für kritsische Ereignisse (z.B. Stromausfall) einen einzigen Ablaufplan haben, in dem alles abläuft, um eine zentrale Übersicht zu haben (ähnlich eines Operational Runbooks).

Der Ablaufplan soll dabei zeitlich flexibel reagieren können, also z.B.:

  • Es wird eine Nachricht verschickt
  • Wiederhole all 1 Minuten bis der Strom wieder da ist:
    – Bei USV-Kapazität unter 90%: Server herunterfahren
    – Bei USV-Kapazität unter 25%: WLAN, Switches aus, …
    – Bei USV-Kapazität unter 5%: Raspi für IPS herunterfahren <hier hört dann der Ablaufplan auch auf :slight_smile: >>
    // Storm ist wieder da
  • Wenn WLAN, Switches aus: Wieder einschalten
  • Wenn Server aus: Wieder einschalten

In diesem Fall könnte ich natürlich einen Trigger definieren, der immer dann auslöst wenn sich der %-Wert der USV-Kapazität ändert, aber eventuell will man ja auch mal auf Boolean reagieren.

Schleifen sind für den Ablaufplan bisher nicht vorgesehen. Du könntest das aber via „Warte auf Wert“ umsetzen. Leider klappt das „unter 90%“ etc. noch nicht sondern aktuell auf exact 90%. Da kommt aber nochmal eine überarbeitete Version der Aktion.

Also könnte der Ablaufplan so aussehen:

  • Nachricht verschicken
  • Warte auf Kapazität = 90% (lange Wartezeit)
  • Fahre Server herunter
  • Warte auf Kapazität = 25% …

In einem separaten Ablaufplan reagierst du auf Strom wieder da. Zusätzlich zu deinen Schritten brichst du dort dann die Ausführung des ersten Plans ab.

Bedingungen wären noch besser, dann entfällt die Schleifenlogik und der Plan ist sogar noch übersichtlicher.

Solange noch keine größer / kleiner Vergleiche möglich sind würde ich mir dann Boolean-Hilfsvariablen bauen und diese per Skript updaten. Das Risiko ist mir dann doch zu groß, dass bei zwei aufeinanderfolgenden SNMP-Abfragen einmal 26% und einmal 24% rauskommt.

Aber zu diesem Thema: Ich finde kein Warte auf Wert im Editor. Nur Wartezeitfunktionen (Zeit im Ablaufplan definiert bzw. Zeit in einer Variable definiert). Auch in der IPS Dokumentation werden die Aktionen nicht explizit erklärt.

Wie konfiguriere ich das denn?

gibt es da ein Zeitfenster wann das kommt?

Was ich irgendwie gerne hätte wenn man eine Dauer und Abfrage hat.

Also wenn der Wert unter 30 für 2 Minuten… wenn der Wert über 30 geht innerhalb der 2 Minuten startet die Zeit von vorne. Auf SPS als IEC TON bekannt. Damit kann man einfach alles erschlagen :smiley:

Die Aktion findest du, wenn du die Variable als Ziel wählst unter „Andere Aktionen“.

Ein Zeitfenster habe ich aktuell noch nicht, momentan bin ich noch an anderen Projekten. Die zwei Minuten unter 30 könnte man jetzt auf verschiedene Arten und Weisen umsetzen. Du könntest beispielsweise ein weiteres Ereignis nehmen, welches bei mehr als 30 den Ablaufplan abbricht und dann einfach eine Wartezeit von 2 Minuten innerhalb des Ablaufplans verwenden.

Magst du mir ein paar Anwendungsfälle für die Aktion verraten? Ich komme nicht aus der SPS-Welt und habe wohl eine andere Denkweise :slight_smile: Dann können wir mal schauen, ob man die schön mit existierenden Mitteln lösen kann oder ob die uns überzeugen, dass wir die Aktion einbauen sollten.

1 „Gefällt mir“

Du könntest aus dem Ablaufplan den selben Ablaufplan wieder aufrufen. Das geht schon, mach ich auch.



Du wählst als Zielaktion den Ablaufplan aus und definierst „Führe Automation aus“

Die Einstellungen für den Ablaufplan
image

Mein Ablaufplan, von dem hab ich drei, wechseln die Farbe bei bestimmten LED-Beleuchtungen. Nach einer Wartezeit von x-Sekunden, wird eine neue Farbe und Helligkeit ermittelt.
Der Ablaufplan wird nur dann ausgeführt, wenn eine bestimmte Variable auf True ist. In deinem Fall, wenn der Strom aus ist.

Die Aktion findest du, wenn du die Variable als Ziel wählst unter „Andere Aktionen“.

Vielen lieben Dank, das habe ich nicht gefunden.

Wo hast du gesucht? Wir hatten tatsächlich eine Diskussion, wo man diese Aktion geschickt platziert. Ich empfand es als passend, diese direkt an der Variable zu platzieren. Das war für dich scheinbar nicht intuitiv. Können wir das also besser machen?