[Gelöst] "Unerwarteter Fehler" bei Custom Logik (war falsche Variablendeklaration)

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Antworten

Ersteller
simon2k
Reactions:
Beiträge: 5
Registriert: Do Mär 07, 2019 9:16 am
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

"Unerwarteter Fehler" bei Custom Logik (war falsche Variablendeklaration)

#1

Beitrag von simon2k » Di Feb 11, 2020 9:53 pm

Hallo zusammen,

habe endlich ein wenig Zeit gefunden und mich ebenfalls an einer Custom Logik versucht.

Die Anforderung an die Logik ist eigentlich recht simpel:
Meine 3 Phasen des Kochfeldes sind an einem Strommessaktor angeschlossen. Wird nun an einer Phase Leistung gefordert, will ich ein Bit für "Kochfeld aktiv" generieren.

Hier meine Logik dazu:

Code: Alles auswählen

/**
 * New custom logic
 *
 * 
 */

{
  "_Meta": { // Optional
    "Description": "",
    "Version": "1.00",
    "Icon": "" // format: "data:image/svg+xml;base64,ENCODED_FILE"
  },
  "Input": [
   ["IA1","Analogwert 1","$IA1","c"],
   ["IA2","Analogwert 2", "$IA2","c"],
   ["IA3","Analogwert 3", "$IA3","c"]
  ],
  "Output": [
  ["Out","Schaltstatus","$Out","a"]
  ],
  "Level": [
   ["$IA1","float",0],
   ["$SW1","$float",20],
   ["$IA2","float",0],
   ["$SW2","$float",20],
   ["$IA3","float",0],
   ["$SW3","$float",20],
   ["$L1_eingeschaltet","$bool",false],
   ["$L2_eingeschaltet","$bool",false],
   ["$L3_eingeschaltet","$bool",false],
   ["$Out","bool",false]
  ],
  "Module": [
  ["Comparator","$IA1","$L1_eingeschaltet","$SW1"],
  ["Comparator","$IA2","$L2_eingeschaltet","$SW2"],
  ["Comparator","$IA3","$L3_eingeschaltet","$SW3"],
  ["Or",["$L1_eingeschaltet","$L2_eingeschaltet","$L3_eingeschaltet"],"$Out"]
  ]
}
Leider kommt beim Speichern der Logik immer ein "unerwarteter Fehler" aber ohne weitere Information! :roll:
Ist das korrekt, dass bei der Variablendeklaration unter "Level" bei Ein- und Ausgängen kein $ vor den Datentyp gestellt wird?
So stehts auf jeden Fall mal im Codebeispiel in der KB?
Könnt ihr mir vielleicht helfen das Problem zu finden?

Dankeschön!

Gruß,
Simon
Zuletzt geändert von StefanW am Mi Feb 12, 2020 12:24 pm, insgesamt 3-mal geändert.
TWS 950Q ID:286, VPN offen, Reboot erlaubt


Ersteller
simon2k
Reactions:
Beiträge: 5
Registriert: Do Mär 07, 2019 9:16 am
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

#2

Beitrag von simon2k » Di Feb 11, 2020 10:06 pm

Ich habs gefunden!
Es war die Variablendeklaration!
Der Datentyp muss immer ohne "$" angegeben werden! :doh:
EIne qualifizierte Fehlermeldung wäre an dieser Stelle natürlich auch nicht ganz schlecht gewesen! :lol:
Bitte korrigieren unter app.php/kb/viewarticle?a=115#Kopiervorlage

Gruß,
Simon
TWS 950Q ID:286, VPN offen, Reboot erlaubt


Robert_Mini
Reactions:
Beiträge: 2048
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 474 Mal
Danksagung erhalten: 888 Mal

#3

Beitrag von Robert_Mini » Di Feb 11, 2020 10:53 pm

Danke - korrigiert!

Lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / Wiregate-Fan


Robert_Mini
Reactions:
Beiträge: 2048
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 474 Mal
Danksagung erhalten: 888 Mal

#4

Beitrag von Robert_Mini » Mi Feb 12, 2020 12:03 am

Nachtrag: das ist generell ein giftiger Fehler mit den $-Zeichen.
Insbesondere Variablen-Name ohne $ in einem Module/Input/Output...

Was mit grad noch einfällt:
Für deinen Fall genügt eine OR-Logik + Eingangsmodifizierer Schwellwert Über - fertig!

Dennoch gut mal an so einem Bsp. an Custom Logiken heranzugehen!
Die Fehlersuche ist da noch überschaubar - im Problemfall ggf. zeilenweise auskommentieren, bis der Fehler weg ist.

Lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / Wiregate-Fan


gbglace
Reactions:
Beiträge: 1426
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 447 Mal
Danksagung erhalten: 489 Mal

#5

Beitrag von gbglace » Mi Feb 12, 2020 5:39 am

Nichts gegen den positiven Übungseffekt am TES-LE. Aber dennoch mal anders gefragt, warum dafür eine Logik im TWS? Die Strommessaktoren haben doch eigentlich alle auch Schwellwertschalter oder hast die schon für anderes in Verwendung? Einfach die drei Kanäle mit Schwellwert abfragen in ein einfaches ODER, welches womöglich auch noch im Aktor selbst abbildbar ist und schon ist die Sache KNX-only fertig.
Grüße
Göran

-- --Timberwolf 2600 Velvet Red-- -- TWS #225 / VPN aktiv / Reboot OK


Ersteller
simon2k
Reactions:
Beiträge: 5
Registriert: Do Mär 07, 2019 9:16 am
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

#6

Beitrag von simon2k » Mi Feb 12, 2020 9:24 am

Danke an alle!
KNX only ist natürlich immer die Lösung der Wahl wenn es möglich ist! Aufgrund meiner Interesse am Logik Editor habe ich darüber aber nicht einmal nachgedacht! Werde es deshalb umstellen und dieses Experiment als Übung abhaken. :-D
Der Tipp mit ODER und die Eingänge mit Schwellwert ist auch nicht schlecht und machts auch einfacher.

Gruß,
Simon
TWS 950Q ID:286, VPN offen, Reboot erlaubt


Robert_Mini
Reactions:
Beiträge: 2048
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 474 Mal
Danksagung erhalten: 888 Mal

#7

Beitrag von Robert_Mini » Mi Feb 12, 2020 12:08 pm

simon2k hat geschrieben:
Mi Feb 12, 2020 9:24 am
Der Tipp mit ODER und die Eingänge mit Schwellwert ist auch nicht schlecht und machts auch einfacher.
Das muss man ins Gefühl bekommen.
Vieles geht mit den richtigen Grundbausteinen sehr einfach.
Zb. Bettiebsstundenzähler + Schwellwert Helligkeit => Sonnenstunden pro Tag o.ä.

Lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / Wiregate-Fan

Antworten

Zurück zu „Logikengine & Logik-Editor“