mir ist an mehreren Stellen aufgefallen, dass sich Custom-Logiken nicht speichern lassen (ohne konkrete Fehlermeldung im Editor) oder nicht fehlerfrei ausgeführt werden, wenn ich Regex-Ausdrücke im Level definieren.
Als Input (Parameter) funktioniert es dann einwandfrei.
Liegt das vielleicht an den Sonderzeichen, die in Regex-Ausdrücken oft enthalten sind?
Ein Beispiel ist diese Logik:

Code: Alles auswählen
{
"Level": [
[
"$InResponse",
"string,64",
""
],
[
"$Pre_Logeintrag",
"string",
"Heizung: Anlagenzeit synchronisiert ("
],
[
"$Post_Logeintrag",
"string",
")"
],
[
"$OutLogeintrag",
"string,128",
"Heizung: Anlagenzeit synchronisiert"
],
[
"$ReturnCode",
"string",
""
],
[
"$Address",
"string",
""
],
[
"$Value",
"string,32",
""
],
[
"$RegexExpression",
"string,32",
""
],
[
"$RegexHasMatch",
"bool",
false
],
[
"$VAR<Inhibit?>",
"bool",
false
]
],
"Module": [
[
"Break", [
"$VAR<Inhibit?>"
]
],
[
"Regex",
"$InResponse",
"$RegexExpression",
"$RegexHasMatch",
0,
"$ReturnCode",
"$Address",
"$Value",
0,
0
],
[
"Concat", [
"$Pre_Logeintrag",
"$Value",
"$Post_Logeintrag"
],
"$OutLogeintrag"
],
[
"SendExplicit",
"$RegexHasMatch",
"$OutLogeintrag",
0
]
],
"Input": [
[
"Rückmeldung",
"Rückmeldung vom Optolink-Splitter",
"$InResponse",
"a"
],
[
"Regex",
"Regulärer Ausdruck",
"$RegexExpression",
"u"
],
[
"Inhibitor",
"Ausführung der Logik sperren",
"$VAR<Inhibit?>",
"u"
]
],
"Output": [
[
"Logeintrag",
"Logeintrag",
"$OutLogeintrag",
"x"
]
]
}
Der Fehler lauten:

Dabei fehlt hier keine Klammer, den Ausdruck habe ich auf der Seite regex101.com getestet.
Wenn der gleiche Regex-Ausdruck als Parameter übergeben wird, dann erscheint die Fehlermeldung nicht.
Vielen Dank und viele Grüße
Falk