Ausgabe des "Inhalts" einer Aktion

Hallo,
man kann ja in Modulen Aktionen per SelectAction konfigurierbar machen und mit IPS_RunAction ablaufen lassen.
Soweit so gut, funktioniert.

Im Ablaufplan bzw. auch im SelectAction wird das ja optisch auch dargestellt.

Meine Frage: gibt es eine interne Funktion, um das, was in Spalte Aktion steht, sich als String geben zu lassen? Spalte Ziel ist ja vermutlich mittels IPS_GetName() auf das Element TARGET erledigt.

Natürlich kann ich hergehen, und jede Aktion selbst dekodieren … aber da es keine feste Benennungen von Felder gibt und Aktionen auch beliebig komplex sein können, wäre das schon ziemlich auswendig.
Ich nehme an, das das mit der Angaben format in der actions.json zu tun hat (zu meiner Schande muss ich gestehen, das ich die noch nicht wirklich verstanden habe).

Die Spalte Ziel entspricht eher IPS_GetLocation, wobei die Notation ein bisschen anders ist und den Namen des Objekts nach vorne schiebt. Direkt gibt es das nur konsolenintern, aber das sollte sich leicht nachbauen lassen.

In der Spalte Aktion steht tatsächlich der interpretierte Inhalt von format aus der action.json. Das passiert allerdings auch konsolenseitig. Falls du es noch nicht entdeckt hast, hier ist das Format auch nochmal erklärt: Aktionen — IP-Symcon :: Automatisierungssoftware

Schade, denn das selbst zu interpretieren habe ich noch nicht geschafft, das hinzubekommen, was aber auch daran liegt, das ich das ICU-Format nicht verstehen.
So ein "format": "{TARGET, object, ident IDENT}: {ACTION, action, targetID TARGET ident IDENT}", kriege ich (intellektuell) nicht aufgedröselt und erst recht nicht, woher man die Werte dann bekommen würde.
Schade, da hatte ich gerade Aktionen in ein Modul eingebaut und wollte die in dieser Art als String zur Verfügung stellen … ich kann euch nicht motivieren, das als Funktion zur Verfügung zu stellen?

Ich vermute nicht, dass wir den ICU-Parser in den Core portieren werden. Aber du kannst die Aktion auch in deinem Modul als Teil einer Liste darstellen. Dafür nimmst du einfach SelectAction als edit und die Konsole übernimmt die Formatierung für dich. Falls du das nicht bearbeiten lassen möchtest, kannst du das ja deaktivieren.

Ich wollte gerne den erzeugten Text als String verwenden, um den als Log abzulegen :wink: Und dann könnte man alle Aktionen „ordnungsgemäß“ formatiert protokollieren