NEU! UPGRADE IP 10 verfügbar!
Optimierte Darstellung von VISU Editor und VISU Client - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/8HzePCm3

Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074

Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117

NEU! Ausführliches Video Tutorial zur IP 10
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs

[Frage] Problem mit Namensgebung Variablen

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
Piranha
Reactions:
Beiträge: 50
Registriert: Sa Jan 04, 2020 10:23 pm
Danksagung erhalten: 5 Mal

Problem mit Namensgebung Variablen

#1

Beitrag 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"]
  ]
}
TWS 975 ID:433, VPN offen, Reboot auf nachfrage

Robert_Mini
Reactions:
Beiträge: 3744
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1168 Mal
Danksagung erhalten: 2076 Mal

#2

Beitrag von Robert_Mini »

Ja, das ist eine bekannte Einschränkung bei Variablen die in Ein- oder Ausgängen verwendet werden.

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

Ersteller
Piranha
Reactions:
Beiträge: 50
Registriert: Sa Jan 04, 2020 10:23 pm
Danksagung erhalten: 5 Mal

#3

Beitrag von Piranha »

Danke Robert! Das ist gut zu wissen.

Konnte in der Knowledge-Base dazu nichts finden oder habe ich das übersehen?
TWS 975 ID:433, VPN offen, Reboot auf nachfrage

gbglace
Reactions:
Beiträge: 3605
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1266 Mal
Danksagung erhalten: 1673 Mal

#4

Beitrag 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.
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
Antworten

Zurück zu „Logikengine & Logik-Editor“