UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

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

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
Antworten

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

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

#1

Beitrag von simon2k »

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: 7
Registriert: Do Mär 07, 2019 9:16 am
Hat sich bedankt: 2 Mal
Danksagung erhalten: 3 Mal

#2

Beitrag von simon2k »

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: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

#3

Beitrag von Robert_Mini »

Danke - korrigiert!

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

Robert_Mini
Reactions:
Beiträge: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

#4

Beitrag von Robert_Mini »

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) / zusätzlich: 3500M/#935, 3500L/#1297

gbglace
Reactions:
Beiträge: 3585
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1253 Mal
Danksagung erhalten: 1649 Mal

#5

Beitrag von gbglace »

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

#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#3 PBM 3 Kanäle, #4 Modbus-Extension

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

#6

Beitrag von simon2k »

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: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

#7

Beitrag von Robert_Mini »

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) / zusätzlich: 3500M/#935, 3500L/#1297
Antworten

Zurück zu „Logikengine & Logik-Editor“