[Improvement] [V4.0.1] Keine Variablen mit Ziffern im Name möglich? (Logik lässt sich nicht speichern) (WD-2574)

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Benutzeravatar

Ersteller
starwarsfan
Reactions:
Beiträge: 1399
Registriert: Mi Okt 10, 2018 2:39 pm
Hat sich bedankt: 868 Mal
Danksagung erhalten: 1206 Mal

[V4.0.1] Keine Variablen mit Ziffern im Name möglich? (Logik lässt sich nicht speichern) (WD-2574)

#1

Beitrag von starwarsfan »

Hallo miteinander,

kann es sein, dass es nicht möglich ist, in einer Logik Variablen mit Ziffern im Name zu verwenden? :confusion-scratchheadyellow:

Sobald ich etwas wie bspw.

Code: Alles auswählen

  "Level":[
  ...
    ["$Input_value01", "bool", false],
...
mache, lässt sich die Logik nicht mehr speichern und ich erhalte eine Fehlermeldung:
Level index has wrong type 5
Nehme ich die "01" weg, funktioniert es. :think:
Zuletzt geändert von bondt am Mo Sep 16, 2024 2:48 pm, insgesamt 3-mal geändert.
Kind regards,
Yves

TWS 2500 ID:159 / TWS 3500 ID:618 / TWS 3500 ID:1653 + PBM ID:401 / ProxMox / 1-Wire / iButtons / Edomi (LXC / Docker) / evcc / ControlPro
(TW-VPN jeweils offen, Reboot nach Rücksprache)

gbglace
Reactions:
Beiträge: 4103
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1434 Mal
Danksagung erhalten: 1923 Mal

#2

Beitrag von gbglace »

Zahlen selbst wäre neu, was definitiv nicht geht ist einen Substring bzw. den Beginn davon als eigenständige Variable noch parallel dazu zu haben.
Grüße Göran
#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#PV 43,2 kWh Akku; 3x VE MP2 5000; 6,7 kWp > 18 Panele an 4x HM1500 + 1 HM800 WR; Open-DTU
Benutzeravatar

Ersteller
starwarsfan
Reactions:
Beiträge: 1399
Registriert: Mi Okt 10, 2018 2:39 pm
Hat sich bedankt: 868 Mal
Danksagung erhalten: 1206 Mal

#3

Beitrag von starwarsfan »

Hoi Göran
gbglace hat geschrieben: Di Aug 13, 2024 12:14 pm was definitiv nicht geht ist einen Substring bzw. den Beginn davon als eigenständige Variable noch parallel dazu zu haben.
Dann frage ich mich aber, wieso das hier funktioniert:

Code: Alles auswählen

  "Level":[
    ["$Run","bool",true],
    ["$Select","integer",0],
    ["$Val","bool",false],
    ["$Clk","bool",false],
    ["$Clk_Val","bool",false],
    ["$Period","float",300],
    ["$VAR<Inhibit?>","bool",false]
  ],
Das ist aus dem Baustein von Jens, man beachte die Variablen $Clk und $Clk_Val. Nach obiger Aussage dürfte das nicht funktionieren!?

Aber wie auch immer, wenn ich aus obigem Block

Code: Alles auswählen

  "Level":[
    ["$Run","bool",true],
    ["$Select","integer",0],
    ["$Val01","bool",false],
    ["$Clk","bool",false],
    ["$Clk_Val","bool",false],
    ["$Period","float",300],
    ["$VAR<Inhibit?>","bool",false]
  ],
mache, natürlich auch mit Anpassung von $Val in $Val01 überall dort, wo die Variable verwendet wird, lässt sich die Logik nicht mehr speichern. :think:

Weitere Ideen dazu?
Kind regards,
Yves

TWS 2500 ID:159 / TWS 3500 ID:618 / TWS 3500 ID:1653 + PBM ID:401 / ProxMox / 1-Wire / iButtons / Edomi (LXC / Docker) / evcc / ControlPro
(TW-VPN jeweils offen, Reboot nach Rücksprache)
Benutzeravatar

Ersteller
starwarsfan
Reactions:
Beiträge: 1399
Registriert: Mi Okt 10, 2018 2:39 pm
Hat sich bedankt: 868 Mal
Danksagung erhalten: 1206 Mal

#4

Beitrag von starwarsfan »

Hm, jetzt wird's ganz verrückt: Es ist egal wie ich die Variable nenne, selbst wenn ich

Code: Alles auswählen

$Val
ändere in

Code: Alles auswählen

$Valfoo
lässt sich die Logik nicht speichern. Sobald ich wieder

Code: Alles auswählen

$Val
draus mache, funktioniert es wieder. Kann es sein, dass hier soetwas wie eine "interne" Variable verwendet wird?
Kind regards,
Yves

TWS 2500 ID:159 / TWS 3500 ID:618 / TWS 3500 ID:1653 + PBM ID:401 / ProxMox / 1-Wire / iButtons / Edomi (LXC / Docker) / evcc / ControlPro
(TW-VPN jeweils offen, Reboot nach Rücksprache)

gbglace
Reactions:
Beiträge: 4103
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1434 Mal
Danksagung erhalten: 1923 Mal

#5

Beitrag von gbglace »

Hui Yves ist wohl wieder auf Forschungsreise ins Bug-Country.
Grüße Göran
#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#PV 43,2 kWh Akku; 3x VE MP2 5000; 6,7 kWp > 18 Panele an 4x HM1500 + 1 HM800 WR; Open-DTU
Benutzeravatar

Ersteller
starwarsfan
Reactions:
Beiträge: 1399
Registriert: Mi Okt 10, 2018 2:39 pm
Hat sich bedankt: 868 Mal
Danksagung erhalten: 1206 Mal

#6

Beitrag von starwarsfan »

Hallo miteinander
gbglace hat geschrieben: Di Aug 13, 2024 4:34 pm Yves ist wohl wieder auf Forschungsreise ins Bug-Country.
So siehts wohl aus.

Nächstes Finding: Nachdem die Fehlermeldung erschienen ist, lässt sich die Logik gar nicht mehr bearbeiten. Das heisst, der Editor geht zwar auf aber nach einer Änderung bleibt das Speichern-Symbol disabled. :think:

Nochmal zum Vergleich:

Ich habe diesen Code (nicht funktional):

Code: Alles auswählen

/**
 * New custom logic
 *
 * 
 */

{
  "_Meta": { // Optional
    "Description": "",
    "Version": "1.02",
    "Icon": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPg0KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik01IDkuNzc3NDZWMTYuMkM1IDE3Ljg4MDIgNSAxOC43MjAzIDUuMzI2OTggMTkuMzYyQzUuNjE0NiAxOS45MjY1IDYuMDczNTQgMjAuMzg1NCA2LjYzODAzIDIwLjY3M0M2Ljc4ODk0IDIwLjc0OTkgNi45NTA4MiAyMC44MDg3IDcuMTMyMDIgMjAuODUzN00yMSAxMkwxNS41NjY4IDUuOTYzOTlDMTQuMzMxMSA0LjU5MTIyIDEzLjcxMzMgMy45MDQ4NCAxMi45ODU2IDMuNjUxNDRDMTIuMzQ2NiAzLjQyODg4IDExLjY1MSAzLjQyODkzIDExLjAxMTkgMy42NTE1OUMxMC4yODQzIDMuOTA1MDkgOS42NjY2MSA0LjU5MTU3IDguNDMxMTQgNS45NjQ1MkwzIDEyTTE5IDUuMDAwMDJWMTYuMkMxOSAxNy44ODAyIDE5IDE4LjcyMDMgMTguNjczIDE5LjM2MkMxOC4zODU0IDE5LjkyNjUgMTcuOTI2NSAyMC4zODU0IDE3LjM2MiAyMC42NzNDMTcuMjExMSAyMC43NDk5IDE3LjA0OTIgMjAuODA4NyAxNi44NjggMjAuODUzN003LjEzMjAyIDIwLjg1MzdDNy42NTAxNyAxOC42NDQ4IDkuNjMzMDEgMTcgMTIgMTdDMTQuMzY3IDE3IDE2LjM0OTggMTguNjQ0OCAxNi44NjggMjAuODUzN003LjEzMjAyIDIwLjg1MzdDNy43MjEzMyAyMSA4LjUxNDk1IDIxIDkuOCAyMUgxNC4yQzE1LjQ4NSAyMSAxNi4yNzg3IDIxIDE2Ljg2OCAyMC44NTM3TTE0IDEyQzE0IDEzLjEwNDYgMTMuMTA0NiAxNCAxMiAxNEMxMC44OTU0IDE0IDEwIDEzLjEwNDYgMTAgMTJDMTAgMTAuODk1NCAxMC44OTU0IDEwIDEyIDEwQzEzLjEwNDYgMTAgMTQgMTAuODk1NCAxNCAxMloiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4NCjwvc3ZnPg=="
  },
  "Level":[
    ["$Run","bool",true],
    ["$Select","integer",0],
    ["$Foo","bool",false],
    ["$Clk_Val","bool",false],
    ["$Period","float",300],
    ["$VAR<Inhibit?>","bool",false]
  ],
  "Module": [
    ["Break",["$VAR<Inhibit?>"]],
    ["Multiplexer",["$Foo","$Foo"],"$Clk_Val","$Select"]
  ],
  "Input": [
    ["Eingang","Eingangswert","$Foo","a"],
    ["Intervall in Sekunden","Zeit [s] zwischen Senden (standard 300 Sekunden, 5 Minuten)","$Period","c"],
    ["Inhibit","INHIBIT","$VAR<Inhibit?>","u"]
  ],
  "Output": [
    ["Ausgang","Per Intervall gesendeter Ausgangswert","$Clk_Val","ct"]
  ]
}
Wenn ich dort drin aus "$Foo" "$Fooo" mache, so:

Code: Alles auswählen

/**
 * New custom logic
 *
 * 
 */

{
  "_Meta": { // Optional
    "Description": "",
    "Version": "1.02",
    "Icon": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPg0KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik01IDkuNzc3NDZWMTYuMkM1IDE3Ljg4MDIgNSAxOC43MjAzIDUuMzI2OTggMTkuMzYyQzUuNjE0NiAxOS45MjY1IDYuMDczNTQgMjAuMzg1NCA2LjYzODAzIDIwLjY3M0M2Ljc4ODk0IDIwLjc0OTkgNi45NTA4MiAyMC44MDg3IDcuMTMyMDIgMjAuODUzN00yMSAxMkwxNS41NjY4IDUuOTYzOTlDMTQuMzMxMSA0LjU5MTIyIDEzLjcxMzMgMy45MDQ4NCAxMi45ODU2IDMuNjUxNDRDMTIuMzQ2NiAzLjQyODg4IDExLjY1MSAzLjQyODkzIDExLjAxMTkgMy42NTE1OUMxMC4yODQzIDMuOTA1MDkgOS42NjY2MSA0LjU5MTU3IDguNDMxMTQgNS45NjQ1MkwzIDEyTTE5IDUuMDAwMDJWMTYuMkMxOSAxNy44ODAyIDE5IDE4LjcyMDMgMTguNjczIDE5LjM2MkMxOC4zODU0IDE5LjkyNjUgMTcuOTI2NSAyMC4zODU0IDE3LjM2MiAyMC42NzNDMTcuMjExMSAyMC43NDk5IDE3LjA0OTIgMjAuODA4NyAxNi44NjggMjAuODUzN003LjEzMjAyIDIwLjg1MzdDNy42NTAxNyAxOC42NDQ4IDkuNjMzMDEgMTcgMTIgMTdDMTQuMzY3IDE3IDE2LjM0OTggMTguNjQ0OCAxNi44NjggMjAuODUzN003LjEzMjAyIDIwLjg1MzdDNy43MjEzMyAyMSA4LjUxNDk1IDIxIDkuOCAyMUgxNC4yQzE1LjQ4NSAyMSAxNi4yNzg3IDIxIDE2Ljg2OCAyMC44NTM3TTE0IDEyQzE0IDEzLjEwNDYgMTMuMTA0NiAxNCAxMiAxNEMxMC44OTU0IDE0IDEwIDEzLjEwNDYgMTAgMTJDMTAgMTAuODk1NCAxMC44OTU0IDEwIDEyIDEwQzEzLjEwNDYgMTAgMTQgMTAuODk1NCAxNCAxMloiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4NCjwvc3ZnPg=="
  },
  "Level":[
    ["$Run","bool",true],
    ["$Select","integer",0],
    ["$Fooo","bool",false],
    ["$Clk_Val","bool",false],
    ["$Period","float",300],
    ["$VAR<Inhibit?>","bool",false]
  ],
  "Module": [
    ["Break",["$VAR<Inhibit?>"]],
    ["Multiplexer",["$Fooo","$Fooo"],"$Clk_Val","$Select"]
  ],
  "Input": [
    ["Eingang","Eingangswert","$Fooo","a"],
    ["Intervall in Sekunden","Zeit [s] zwischen Senden (standard 300 Sekunden, 5 Minuten)","$Period","c"],
    ["Inhibit","INHIBIT","$VAR<Inhibit?>","u"]
  ],
  "Output": [
    ["Ausgang","Per Intervall gesendeter Ausgangswert","$Clk_Val","ct"]
  ]
}

Dann lässt sich's nicht mehr speichern. WTF!? :confusion-scratchheadyellow: :confusion-scratchheadyellow: :confusion-scratchheadyellow:
Zuletzt geändert von starwarsfan am Di Aug 13, 2024 6:36 pm, insgesamt 1-mal geändert.
Kind regards,
Yves

TWS 2500 ID:159 / TWS 3500 ID:618 / TWS 3500 ID:1653 + PBM ID:401 / ProxMox / 1-Wire / iButtons / Edomi (LXC / Docker) / evcc / ControlPro
(TW-VPN jeweils offen, Reboot nach Rücksprache)

Robert_Mini
Reactions:
Beiträge: 3907
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1275 Mal
Danksagung erhalten: 2220 Mal

#7

Beitrag von Robert_Mini »

Passiert manchmal und ich konnte es nie reproduzieren, außer der genannte Fall, dass ein Substring als Ein/Ausgang vorkommt zB $var und $var01, was oft beim Erweitern passiert.

Wenn es passiert und auch der Speichern Button ausgegraut ist => Code kopieren und in neue Custom Logik einfügen.

Schön wäre es aber, das reproduzierbar zu machen und dann zu fixen.


Lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
Benutzeravatar

Ersteller
starwarsfan
Reactions:
Beiträge: 1399
Registriert: Mi Okt 10, 2018 2:39 pm
Hat sich bedankt: 868 Mal
Danksagung erhalten: 1206 Mal

#8

Beitrag von starwarsfan »

Hallo Robert
Robert_Mini hat geschrieben: Di Aug 13, 2024 10:09 pm Wenn es passiert und auch der Speichern Button ausgegraut ist => Code kopieren und in neue Custom Logik einfügen.
Tatsache! Den nicht speicherbaren Code in eine neue Logik kopiert und et voila, speichern funktioniert. :doh:

Robert_Mini hat geschrieben: Di Aug 13, 2024 10:09 pm Schön wäre es aber, das reproduzierbar zu machen und dann zu fixen.
Ack!
Kind regards,
Yves

TWS 2500 ID:159 / TWS 3500 ID:618 / TWS 3500 ID:1653 + PBM ID:401 / ProxMox / 1-Wire / iButtons / Edomi (LXC / Docker) / evcc / ControlPro
(TW-VPN jeweils offen, Reboot nach Rücksprache)
Benutzeravatar

Ersteller
starwarsfan
Reactions:
Beiträge: 1399
Registriert: Mi Okt 10, 2018 2:39 pm
Hat sich bedankt: 868 Mal
Danksagung erhalten: 1206 Mal

#9

Beitrag von starwarsfan »

Hallo miteinander,

um das hier abzuschliessen, hier der finale Stand.

Ich habe jetzt den Code von Jens so wie ich ihn initial erweitert hatte in eine neue Custom-Logik kopiert. Dort lässt er sich ohne Probleme speichern und die Logik funktioniert wie gewünscht. Der Baustein hat damit 26 Eingänge und 24 Ausgänge.

Damit kann ich bestätigen, dass soetwas problemlos funktioniert:

Code: Alles auswählen

  "Level":[
    ["$Run", "bool", true],
    ["$Select", "integer", 0],

    ["$Val01", "bool", false],
    ["$Val02", "bool", false],
    ["$Val03", "bool", false],
...
    ["$Val22", "bool", false],
    ["$Val23", "bool", false],
    ["$Val24", "bool", false],

    ["$Clk", "bool", false],

    ["$Clk_Val01", "bool", false],
    ["$Clk_Val02", "bool", false],
    ["$Clk_Val03", "bool", false],
...
    ["$Clk_Val22", "bool", false],
    ["$Clk_Val23", "bool", false],
    ["$Clk_Val24", "bool", false],

    ["$Period", "float", 300.0],
    ["$VAR<Inhibit?>", "bool", false]
  ],
...
Somit gibt es das Problem mit den überlappenden Variablennamen offensichtlich nicht (mehr) und auch die Ziffern im Variablenname sind kein Problem. :handgestures-thumbupright:

Allerdings hinterlässt das initiale Problem schon noch ein Fragezeichen, da es irgendeine Situation gibt, welche zum beschriebenen Verhalten führt, dass sich die Logik nicht mehr speichern lässt. Robert hat das ja auch bestätigt, dass dann das Kopieren in eine neue Logik hilft. An dieser Stelle hört sich dieses Problem irgendwie sehr ähnlich an...
Kind regards,
Yves

TWS 2500 ID:159 / TWS 3500 ID:618 / TWS 3500 ID:1653 + PBM ID:401 / ProxMox / 1-Wire / iButtons / Edomi (LXC / Docker) / evcc / ControlPro
(TW-VPN jeweils offen, Reboot nach Rücksprache)
Benutzeravatar

speckenbuettel
Reactions:
Beiträge: 396
Registriert: Mo Jun 27, 2022 9:30 am
Hat sich bedankt: 314 Mal
Danksagung erhalten: 242 Mal

#10

Beitrag von speckenbuettel »

--- 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

Code: Alles auswählen

        [
            "Title",
            "Title",
            "$Title",
            "c"
        ],
dann lässt sich die Logik nicht mehr speichern.

Bild

Detaillierte Fehlermeldung:
Bild
Bild

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 :confusion-scratchheadyellow: ).

Hat jemand eine Idee?

Vielen Dank und viele Grüße
Falk
Zuletzt geändert von speckenbuettel am Do Aug 22, 2024 6:02 am, insgesamt 1-mal geändert.
Vielen Dank und viele Grüße
Falk

TWS 3500M ID:810 - VPN aktiv - Reboot nach Absprache
1-Wire, KNX (MDT u. a.), EnOcean (Eltako u. a.), Gira TKS, ekey multi
Gesperrt

Zurück zu „Logikengine & Logik-Editor“