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

[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: 47
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: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 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: 47
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: 3585
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1253 Mal
Danksagung erhalten: 1649 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“