die Implementierung der Attribute "as_suspend_watch_*" ist wesentlich komplexer als das Aufbauen eines separaten Suspend-Zustands zumal man mit dem separaten Suspend bzw. Lock-Zustand noch flexibler ist, als mit zusätzlichen "as_suspend_watch_*" Attributen. Ich habe mich daher entschieden, dass diese Attribute nicht in den Develop-Zweig aufgenommen werden. Ich bin ehrlich gesagt auch am überlegen, die Lock- und Suspend-Funktionalität komplett aus dem Plugin rauszunehmen, so dass diese Funktionen grundsätzlich über entsprechende Zustände gebaut werden müssen. In den nächsten Tagen werde ich die Doku mal auf den aktuellsten Stand bringen und das Vorgehen zum Aufbau von eingenen Lock/Suspend-Zuständen dort einbauen. Es gibt da auch noch einige weitere "Zustandskonstruktionen" die ich in den letzten Tagen gebaut habe und die allgemein Interessant sein könnten.
Für deine eigene Bedingung kannst du dich eigentlich recht eng an mein Beispiel halten.
- Das Item "Manuell" musst du anpassen, bei eval_trigger müssen alle Items aufgeführt werden, die den Suspend Auslösen sollen.
- Statt "not_changed_by" verwendest du "is_changed_by" und gibst nach caller und source noch
mitCode:
["Visu:*"]
Damit wird das Suspend nur ausgelöst, wenn ein Item über die Visu geändert wird.
Grüße
offline

Das sieht alles sehr mächtig aus.. Was mir noch nicht ganz klar ist.. warum lässt sich die suspend_time nicht durch ein item:autoblind.settings.suspendXYZ setzen? das mit dem get_variable scheint mir etwas inkonsequent..?
). Ich bin ja in vielen Fällen mit Hilfsitems um Probleme "drumrum" gekommen, aber wenn ich es kompakter und übersichtlicher formulieren kann, dann bin ich immer dabei. Es ist schon so, dass ich mit autoblind derzeit fast alle meine Abläufe löse. Und viel wichtiger: Meist funktioniert das, was man als Regelwerk ausdrückt, auch auf Anhieb - wenn es Probleme gibt, liegen die im unerwarteten sh.py-Verhlaten (wie z.B. die Tatsache, dass enforce_updates keine Auswirkung auf age() etc. hat).
Einen Kommentar schreiben: