--- Meine Antwort bezieht sich auf V4.1 IP1 ---
Hallo,
ich habe ein ähnliches Problem, nur leider funktioniert bei mir der Workaround mit dem Kopieren in eine neue Logik nicht.
Da ich mir auf Grund dieses und ähnlicher Probleme mit dem Logikeditor angewöhnt habe, eine Logik nach der Veränderung
jeder einzelnen Komponente zu speichern, kann ich ziemlich genau nachvollziehen wo der Fehler auftritt, und ich kann ihn gezielt reproduzieren.
Allerdings gibt das Auftreten des Fehlers große Rätsel auf.
Ich möchte eine Logik erstellen, um Pushover-Nachrichten mittels HTTP-API zu erstellen.
Die fertige Logik soll so aussehen:
Code: Alles auswählen
{
"Level": [
[
"$Trigger",
"bool",
false
],
[
"$MessageOn",
"string,1024",
""
],
[
"$MessageOff",
"string,1024",
""
],
[
"$Token",
"string,64",
"ad1cjyoos81yfoevk5i6dqfcq5mcay"
],
[
"$User",
"string,64",
"udrt6qqircmkr748qegvbctextr99h"
],
[
"$Device",
"string,64",
"falk-phone"
],
[
"$Priority",
"string,64",
"0"
],
[
"$Title",
"string,64",
"System"
],
[
"$Message",
"string,64",
""
],
[
"$VAR<Inhibit?>",
"bool",
false
]
],
"Module": [
[
"Break",
[
"$VAR<Inhibit?>"
]
],
[
"Multiplexer",
[
"$MessageOff",
"$MessageOn"
],
"$Message",
"$Trigger"
// ],
// [
// "SendExplicit",
// "$Trigger",
// "$Message",
// 0
]
],
"Input": [
[
"Ereignis",
"Auslöser für die Pushover-Nachricht",
"$Trigger",
"c"
],
[
"Titel",
"Titel der Pushover-Nachricht",
"$Title",
"c"
],
[
"Nachricht EIN",
"Text der Pushover-Nachricht bei Eintritt des Ereignisses (Wechsel von FALSE auf TRUE)",
"$MessageOn",
"c"
],
[
"Nachricht AUS",
"Text der Pushover-Nachricht bei Wegfall des Ereignisses (Wechsel von TRUE auf FALSE)",
"$MessageOff",
"c"
],
[
"Inhibitor",
"Inhibitor",
"$VAR<Inhibit?>",
"u"
]
],
"Output": [
[
"Token",
"Token",
"$Token",
"c"
],
[
"User",
"User",
"$User",
"c"
],
[
"Device",
"Device",
"$Device",
"c"
],
[
"Priority",
"Priority",
"$Priority",
"c"
],
[
"Title",
"Title",
"$Title",
"c"
],
[
"Message",
"Message",
"$Message",
"a"
]
]
}
Das Speichern der Logik funktioniert einwandfrei mit dieser Version:
Code: Alles auswählen
{
"Level": [
[
"$Trigger",
"bool",
false
],
[
"$MessageOn",
"string,1024",
""
],
[
"$MessageOff",
"string,1024",
""
],
[
"$Token",
"string,64",
"ad1cjyoos81yfoevk5i6dqfcq5mcay"
],
[
"$User",
"string,64",
"udrt6qqircmkr748qegvbctextr99h"
],
[
"$Device",
"string,64",
"falk-phone"
],
[
"$Priority",
"string,64",
"0"
],
[
"$Title",
"string,64",
"System"
],
[
"$Message",
"string,64",
""
],
[
"$VAR<Inhibit?>",
"bool",
false
]
],
"Module": [
[
"Break",
[
"$VAR<Inhibit?>"
]
],
[
"Multiplexer",
[
"$MessageOff",
"$MessageOn"
],
"$Message",
"$Trigger"
// ],
// [
// "SendExplicit",
// "$Trigger",
// "$Message",
// 0
]
],
"Input": [
[
"Ereignis",
"Auslöser für die Pushover-Nachricht",
"$Trigger",
"c"
],
[
"Titel",
"Titel der Pushover-Nachricht",
"$Title",
"c"
],
[
"Nachricht EIN",
"Text der Pushover-Nachricht bei Eintritt des Ereignisses (Wechsel von FALSE auf TRUE)",
"$MessageOn",
"c"
],
[
"Nachricht AUS",
"Text der Pushover-Nachricht bei Wegfall des Ereignisses (Wechsel von TRUE auf FALSE)",
"$MessageOff",
"c"
],
[
"Inhibitor",
"Inhibitor",
"$VAR<Inhibit?>",
"u"
]
],
"Output": [
[
"Token",
"Token",
"$Token",
"c"
],
[
"User",
"User",
"$User",
"c"
],
[
"Device",
"Device",
"$Device",
"c"
],
[
"Priority",
"Priority",
"$Priority",
"c"
],
[
"Message",
"Message",
"$Message",
"a"
]
]
}
So lässt sich die Logik speichern und ausführen.
Wenn ich nun, quasi als letzen Schritt, einen weiteren Output einfüge
dann lässt sich die Logik nicht mehr speichern.
Detaillierte Fehlermeldung:
Das Rätsel dabei ist, dass die Fehlermeldung "Parsing error in "Input"" lautet, während ich den Input an dieser Stelle überhaupt nicht geändert habe.
Auch habe ich keine Variable hinzugefügt oder benutzt, die mit ähnlichem Namen schon mal aufgetreten ist.
An der mehrfachen Verwendung von $Message... hat sich der Logigeditor ja vorher nicht gestört.
Das Problem lässt sich exakt reproduzieren: ich kann entweder eine neue Custom-Logik erstellen und den Code ohne den Output "Title" einfügen, die Logik speichern und ausführen.
Oder ich kann die vorhandene Logik bereinigen (indem ich den Code einer funktionierenden Logik einfüge und diese dann speichere - es funktioniert allerdings
nicht, nur den Output "Title" wieder zu entfernen

).
Hat jemand eine Idee?
Vielen Dank und viele Grüße
Falk