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

[Problem] [v1.6 IP1] Custom-Logik zeigt kein Error, kann aber nicht gespeichert werden

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
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

[v1.6 IP1] Custom-Logik zeigt kein Error, kann aber nicht gespeichert werden

#1

Beitrag von Robosoc »

Wenn ich folgenden Code als nagelneue Customlogik anlege, kann ich das Modul nicht speichern. Beim Klick auf die Diskette passiert einfach nichts...Aber andere Logikzellen kann ich problemlos bedienen (Löschen, Aktivieren/Deaktivierien,...). Die Seite ist also nicht abgestürzt.

Ich schließe nicht aus, dass ich noch einen Fehler im Code habe, aber dann müsste ja zumindest ein Error entstehen.

Code: Alles auswählen

{
    "Level": [
        ["$Manuell", "bool", false],
		["$Sonne", "bool", false],
		["$t_Kollektor", "float", 56.0],
		["$t_VL_pr", "float", 50.0],
		["$t_RL_pr", "float", 50.0],
		["$t_VL_se", "float", 50.0],
		["$t_RL_se", "float", 50.0],
        ["$Solar_Freigabe", "bool", false],
        ["$Grenze_Kollektor_aus", "float", 48],
        ["$Grenze_Kollektor_ein", "float", 53],
        ["$Pufferspeicher_oben", "float", 50.0],
		["$Pufferspeicher_unten", "float", 50.0],
		["$Temperaturkoeffizient_VLpr_Puffer_oben", "float", 1.0],
		["$Temperaturkoeffizient_VLpr_Puffer_unten", "float", 1.0],
        ["$Koeff_VLpr", "float", 1.15],
		["$VLpr_gt_oben", "bool", false],
        ["$VLpr_gt_unten", "bool", false],
        ["$Solarpumpe", "bool", false],
        ["$Pufferpumpe", "bool", false],
		["$Energie_Ertrag", "float", 0.0],
		["$Betriebsstunden_Solarpumpe", "float", 0.0],
		["$Betriebsstunden_Pufferpumpe", "float", 0.0],
		["$AnstelleNull", "float", 0.1]
	],
	"Input": [
	    ["Manuelle Steuerung","Manuelle Steuerung beider Pumpen (Zwangssteuerung)","$Manuell","c"],
		["Sonne","Wird Sonnenschein erkannt","$Sonne","u"],
		["Temp Kollektor","Temperatur des Kollektors","$t_Kollektor","u"],
		["Untere Grenze Kollektor","Ausschalttemperator Kollektor","$Grenze_Kollektor_aus","u"],
		["Obere Grenze Kollektor","Einschaltgrenze Kollektor","$Grenze_Kollektor_ein","u"],
		["VL Primär","VL der Solaranlage primär","$t_VL_pr","u"],
		["RL Primär","RL der Solaranlage primär","$t_RL_pr","u"],
		["VL Sekundär","VL der Solaranlage sekundär","$t_VL_se","u"],
		["RL Sekundär","RL der Solaranlage sekundär","$t_RL_se","u"],
		["Speicher oben","","$Pufferspeicher_oben","u"],
		["Speicher unten","","$Pufferspeicher_unten","u"],
		["Koeff VLpr","Koeffizient für Dach Temp","$Koeff_VLpr","u"]
    ],
	"Output": [
	    ["Solarfreigabe","Freigabe der Solaranlage","$Solar_Freigabe","c"],
		["Solarpumpe","","$Solarpumpe","c"],
		["Pufferpumpe","","$Pufferpumpe","c"],
		["Energie Ertrag","","$Energie_Ertrag","c"],
		["Beitriebsstunden Solarpumpe","","$Betriebsstunden_Solarpumpe","c"],
		["Beitriebsstunden Pufferpumpe","","$Betriebsstunden_Pufferpumpe","c"],
		["pufferspeicher-oben", "","$Pufferspeicher_oben","c"]
    ],
    "Module": [
        ["Comparator" , "$t_Kollektor" , "$Solar_Freigabe" , ["$Grenze_Kollektor_aus" , "$Grenze_Kollektor_ein"] ],
		["Or" , ["$Sonne" , "$Solar_Freigabe"] , "$Solarpumpe"],
		["Latch","$Manuell","$Solarpumpe","$Manuell",3],
		["Multiplexer",["$AnstelleNull"],"$Pufferspeicher_oben","$Pufferspeicher_oben"],
        ["Ratio" , "$t_VL_pr" , "$Temperaturkoeffizient_VLpr_Puffer_oben" , "$Pufferspeicher_oben"],
        ["Comparator" , "$Temperaturkoeffizient_VLpr_Puffer_oben" , "$VLpr_gt_oben" , "$Koeff_VLpr"],
        ["Ratio" , "$t_VL_pr" , "$Temperaturkoeffizient_VLpr_Puffer_unten" , "$Pufferspeicher_unten"],
        ["Comparator" , "$Temperaturkoeffizient_VLpr_Puffer_unten" , "$VLpr_gt_unten" , "$Koeff_VLpr"],
		["Or" , ["$VLpr_gt_oben" , "$VLpr_gt_unten"] , "$Pufferpumpe"],
		["Latch","$Manuell","$Pufferpumpe","$Manuell",3]
    ]
}
Vielleicht kann jemand den Code mal eben in der 1.6 RC2 reinschubsen und prüfen ob das Problem da dann auch existiert.
Zuletzt geändert von Robosoc am Mi Jul 29, 2020 10:30 am, insgesamt 3-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#2

Beitrag von Robosoc »

Nur noch ein Hinweis: Meine Vermutung zur Ursache geht in die Richtung, dass der Multiplexer als Selektor einen float-Wert bekommt. Mir war bewusst, dass dies problematisch sein könnte, ich wollte es lediglich test.

Ein zweiter Grund könnte sein, dass ich im Multiplexer lediglich einen Rückgabewert angelegt habe, was ja keinen Sinn macht, weil der dann immer verwendet wird...

Ich teste das selber noch weiter, aber für ElabNet soll das hier lediglich ein Hinweis sein, dass das was ich hier erzeugt habe zu einem scheinbar undefinierten Zustand führt.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#3

Beitrag von Robosoc »

Okay am Multiplexer liegt es nicht, wenn ich den ändere oder gar auskommentiere, speichert die Logik noch immer nicht.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#4

Beitrag von Robosoc »

Neue Vermutung: Wahrscheinlich liegt es daran, dass ich eine Variable in Level sowohl in Input, als auch als Output genutzt habe. Seit ich das entdeckt und geändert habe, kann ich die Logik speichern.

Der Multiplexer funktioniert dann auch, trotz des float auf dem Integer-Eingang. Da ich ja lediglich die 0 ausschließen will und mein Prozess in der Regel mit Werten deutlich über 30 arbeiten soll, reicht mir die interne Umsetzung von Float auf Integer (es könnte ja sonst bei Werten nahe 0 zu Problemen kommen).
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#5

Beitrag von Robosoc »

Ich habe hier einiges an Zeit investiert und würde mich freuen, wenn das nicht verloren geht. Wollt oder könnt Ihr dem Thema eine WD-Nummer verpassen? Dann findet man es auch in einem halben Jahr oder wann auch immer ihr das Error-Handling im KNX-Editor angeht auch wieder.

Zussamenfassung:
Wenn der Anwender den Fehler macht ein Level sowohl als Input als auch als Output zu verwenden, dann führt das scheinbar dazu, dass die Logikzelle oder Error oder oder Hinweis einfach nicht speichert. Bei mir wirkte es so, als würde der Speicher-Button einfach funktionsfrei sein.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Dragonos2000
Reactions:
Beiträge: 2181
Registriert: So Aug 12, 2018 1:38 pm
Wohnort: Karlsruher Raum
Hat sich bedankt: 481 Mal
Danksagung erhalten: 889 Mal

#6

Beitrag von Dragonos2000 »

Zumindest aus der jüngeren Vergangenheit kenne ich ein Problem, dass Du denselben Level nicht sowohl als Input, als auch als Output definieren darfst. Ist wohl immer noch so und deine gelb hinterlegte Vermutung richtig.
Lg
Jochen
____________________________________________________________
TW 2600 #188
VPN offen, Zugriff jederzeit, Experimente jederzeit, Reboot jederzeit
Antworten

Zurück zu „Logikengine & Logik-Editor“