Seite 1 von 1

Problem mit Namensgebung Variablen

Verfasst: Do Mai 20, 2021 1:00 pm
von Piranha
Eine Frage, kann es sein das die Logik-Engine ein Problem mit der Namensgebung von Variablen hat?

Ich wollte folgende zwei Variablen in einer Logik verwenden:
  • "$I_Lux"
    "$I_Lux_Level"
Hier wirft die Engine einen Fehler. Ändere ich die zweite Variable in "$I_Level" funktioniert es. Ändere ich sie anstatt in "$I_LuxLevel" erhalte ich wieder einen Fehler. Der Fehler tritt erst auf, sobald die Variablen in Output Modulen verwendet werden.

Es macht den Eindruck, dass die Engine ein Problem damit hat, sobald zwei Variablen bestehen, im ersten Teil eine gleiche Bezeichnung haben und im gleichen Modul verwendet werden.

Anbei auch der Testcode der nicht funktioniert:

Code: Alles auswählen

{
  "_Meta": { // Optional
    "Description": "",
    "Version": "1.00",
    "Icon": "" // format: "data:image/svg+xml;base64,ENCODED_FILE"
  },
  "Input": [
	   ["Melder 1","Status Melder 1","$I_Melder_1","c"],
	   ["Melder 2","Status Melder 2","$I_Melder_2","c"],
	   ["Lux Melder","Helligkeit v. Melder","$I_Lux","c"],
	   ["Schwellwert","Lux Schwellwert","$I_LuxLevel","c"]		   
  ],
  "Output": [
       ["Treppe","Treppenbeleuchtung","$O_Treppe","c"],
       ["Lux","Hell genug?","$Lux_Comp","c"]       
  ],
  "Level": [
      ["$O_Treppe","bool",false],
      ["$O_Motion","bool",false],      
      ["$I_Melder_1","bool",false],
      ["$I_Melder_2","bool",false],
      ["$Lux_Comp","bool",false],      
      ["$I_Lux","float",1.0],
      ["$I_LuxLevel","float",400.0]      
  ],
  "Module": [
   ["And",["$I_Melder_1","$I_Melder_2"],"$O_Motion"],
   ["Comparator","$I_Lux","$Lux_Comp","$I_LuxLevel"]
  ]
}
Testcode der funktioniert:

Code: Alles auswählen

{
  "_Meta": { // Optional
    "Description": "",
    "Version": "1.00",
    "Icon": "" // format: "data:image/svg+xml;base64,ENCODED_FILE"
  },
  "Input": [
	   ["Melder 1","Status Melder 1","$I_Melder_1","c"],
	   ["Melder 2","Status Melder 2","$I_Melder_2","c"],
	   ["Lux Melder","Helligkeit v. Melder","$I_Lux","c"],
	   ["Schwellwert","Lux Schwellwert","$I_Level","c"]		   
  ],
  "Output": [
       ["Treppe","Treppenbeleuchtung","$O_Treppe","c"],
       ["Lux","Hell genug?","$Lux_Comp","c"]       
  ],
  "Level": [
      ["$O_Treppe","bool",false],
      ["$O_Motion","bool",false],      
      ["$I_Melder_1","bool",false],
      ["$I_Melder_2","bool",false],
      ["$Lux_Comp","bool",false],      
      ["$I_Lux","float",1.0],
      ["$I_Level","float",400.0]      
  ],
  "Module": [
   ["And",["$I_Melder_1","$I_Melder_2"],"$O_Motion"],
   ["Comparator","$I_Lux","$Lux_Comp","$I_Level"]
  ]
}

Re: Problem mit Namensgebung Variablen

Verfasst: Do Mai 20, 2021 1:14 pm
von Robert_Mini
Ja, das ist eine bekannte Einschränkung bei Variablen die in Ein- oder Ausgängen verwendet werden.

Robert

Re: Problem mit Namensgebung Variablen

Verfasst: Do Mai 20, 2021 1:19 pm
von Piranha
Danke Robert! Das ist gut zu wissen.

Konnte in der Knowledge-Base dazu nichts finden oder habe ich das übersehen?

Re: Problem mit Namensgebung Variablen

Verfasst: Do Mai 20, 2021 8:47 pm
von gbglace
Piranha hat geschrieben: Do Mai 20, 2021 1:00 pm
Es macht den Eindruck, dass die Engine ein Problem damit hat, sobald zwei Variablen bestehen, im ersten Teil eine gleiche Bezeichnung haben und im gleichen Modul verwendet werden.
Die Einschränkung ist wenn eine Variable in ihrer vollen Länge ein Substring einer / mehrerer anderer Variablen ist.

Mehrere Variablen mit dem gleich Anfang sind also pauschal kein Problem.