NEU! UPGRADE IP 11 verfügbar!
NEU! LICHTWIDGET - DPT 7.600 - Logik Manager Update - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/B9MUEJj2

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 VISU
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs

[Gelöst] Version 1.6 RC8 - Logik Subsystem startet nicht / stürzt sofort ab (WD-1838)

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

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

#11

Beitrag von Robert_Mini »

Würde mich auch interessieren!
Danke
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 559 Mal

#12

Beitrag von S. Kolbinger »

Hallo Dennis (@colder2017),
die Ursache war ein echt hinterhältiger Fehler :character-bowser:
Er tritt nur auf, wenn man denselben String für zwei (oder mehr) Cron-Module innerhalb einer Logik-Zelle verwendet.

Beispiel (bitte nicht ausprobieren, kann zu Absturz führen :angry-nono: ):

Code: Alles auswählen

{
  "nicht ausprobieren, kann zu Absturz führen" //das steht hier absichtlich zur Sicherheit
  "Level": [
       ["$Out1","bool",false],
       ["$Out2","bool",false],
       ["$OutAnd","bool",false],
       ["$CronString","string","0/5 * * * * *"],  // wird in beiden Cron-Modulen verwendet
       ["$bTrue","bool",true]
  ],
  "Input": [
  ],
  "Output": [
      ["Out1","Ausgang Cron 1","$Out1","a"],
      ["Out2","Ausgang Cron 2","$Out2","a"],
      ["OutAnd","Ausgang And verknüpft","$OutAnd","a"]
  ],
  "Module": [
      ["Cron","$bTrue","$Out1",0,"$CronString"],
      ["Cron","$bTrue","$Out2",0,"$CronString"],
      ["And",["$Out1","-$Out2"],"$OutAnd"]
  ]
}
Hier habe ich noch einen Fehler in der Auswertung des zweiten Cron-Moduls bei der Auswertung des Cron-Strings.
Der wird natülich in der nächsten Release gefixt. :roll:

Die sichere Alternative: Den String duplizieren:

Code: Alles auswählen

{
  "Level": [
       ["$Out1","bool",false],
       ["$Out2","bool",false],
       ["$OutAnd","bool",false],
       ["$CronString1","string","0/5 * * * * *"],
       ["$CronString2","string","0/5 * * * * *"],
       ["$bTrue","bool",true]
  ],
  "Input": [
  ],
  "Output": [
      ["Out1","Ausgang Cron 1","$Out1","a"],
      ["Out2","Ausgang Cron 2","$Out2","a"],
      ["OutAnd","Ausgang And verknüpft","$OutAnd","a"]
  ],
  "Module": [
      ["Cron","$bTrue","$Out1",0,"$CronString1"],
      ["Cron","$bTrue","$Out2",0,"$CronString2"],
      ["And",["$Out1","-$Out2"],"$OutAnd"]
  ]
}
Aber Achtung, die sichere Variante stürzt zwar nicht ab, hat aber ein nicht vorhersehbares Verhalten.
Da die beiden Cron-Trigger (quasi) gleichzeitig ablaufen, ist es rein zufällig (Race condition), welche Timer tatsächlich zuerst triggert.
Das ist vor allem dann von Bedeutung, wenn die Ausgänge (Timer getriggert/abgelaufen) weiter ausgewertet werden.
Siehe den Signalverlauf in Grafana:
Bildschirmfoto zu 2020-12-28 18-26-29.png
Von der Verwendung mehreren synchron triggernden Cron-Timern in einer Logik-Zelle, würde ich daher dringend abraten.
Meist lässt sich das anders einfacher lösen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Gruß,
Stefan K.

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

#13

Beitrag von Robert_Mini »

Das ist sehr spannend!
Ich wüsste aber jetzt nicht, wozu ich 2x Cron mit dem gleichen Zeitpunkt brauchen würde ...

Aber mit copy/Paste passieren eben solche Dinge.

Lg
Robert
Zuletzt geändert von Robert_Mini am Mo Dez 28, 2020 7:17 pm, insgesamt 1-mal geändert.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Sun1453
Reactions:
Beiträge: 1873
Registriert: Do Feb 07, 2019 8:08 am
Hat sich bedankt: 1579 Mal
Danksagung erhalten: 810 Mal

#14

Beitrag von Sun1453 »

Gut das der Fehler gefunden wurde und nach dem Fix nicht mehr auftreten kann. Copy Paste kann schon mal passieren.
Gruß Michael

Timberwolf 950 QL #344 | Mit Internetanbindung | VPN Offen | Reboot nach Absprache | PROD Server
Timberwolf 2500 #602 | VPN offen | TEST Server | Reboot nach Absprache |

S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 559 Mal

#15

Beitrag von S. Kolbinger »

Hallo Dennis (@colder2017),

noch ein kurzer Nachtrag.

Wenn ich die beiden Logiken (#2 und #6, die ich löschen musste) richtig interpretiere,
handelt es sich dabei um die Erkennung für Tag/Nacht anhand der Uhrzeit.

Ich hätte hier einen Vorschlag, das ganze in einer einzigen Logik umzusetzen:

Code: Alles auswählen

{
  "Level": [
       ["$Tag","bool",false],
       ["$CronMorgen","string","0 49 05 * * *"],
       ["$CronAbend","string","0 0 18 * * *"],
       ["$NextMorgen","int",0],     // nächster Triggerzeitpunkt für Start-Morgen
       ["$NextAbend","int",0],      // nächster Triggerzeitpunkt für Start-Abend
       ["$True","bool",true],
       ["$DelayAfterSave","float",0.01],
       ["$JustSaved","bool",true]
  ],
  "Input": [
  ],
  "Output": [
      ["Tag/Nacht","True=Tag False=Nacht","$Tag","a"]
  ],
  "Module": [
      ["Cron","$True",0,"$NextMorgen","$CronMorgen"],
      ["Cron","$True",0,"$NextAbend","$CronAbend"],
      ["Comparator","$NextMorgen","$Tag","$NextAbend"],
      ["Monoflop","$JustSaved",0,"$JustSaved","$DelayAfterSave",0]  // triggert nur einmalig gleich nach dem Speichern, damit der Ausgang sofort richtig ist
  ]
}
Zuletzt geändert von S. Kolbinger am Mo Dez 28, 2020 7:56 pm, insgesamt 1-mal geändert.
Gruß,
Stefan K.

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

#16

Beitrag von Robert_Mini »

Muss ich auch probieren.
Meines Wissens wird ein Monoflop beim Speichern nicht getriggert, daher verwende ich dafür ein Clocksignal.

Generell würde eine Option Triggern beim Speichern dem LE 2.0 gut tun. Denn auch wenn man Startwerte mit True angibt, bleibt der Ausgang einer zb AND Logik auf falsch.
Gerade bei Triggeroption „c“ ist das mühsam (generell sollten Ein/Ausgänge analog dem KNX-Stack mit undef initialisiert werden, damit der erste empfangene Wert false auch als change erkannt wird).

Lg
Robert
Zuletzt geändert von Robert_Mini am Mo Dez 28, 2020 8:21 pm, insgesamt 1-mal geändert.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Ersteller
colder2017
Reactions:
Beiträge: 8
Registriert: Sa Nov 16, 2019 9:42 pm
Hat sich bedankt: 4 Mal
Danksagung erhalten: 4 Mal

#17

Beitrag von colder2017 »

Hallo zusammen,

ok spannend und sehr gut, dass der Fehler eingegrenzt werden konnte. Da ich selber aus der IT komme ist mir klar, dass man nie alle guten Ideen der User im Vorhinein abfangen kann :)

Meiner Erinnerung nach hatte ich den Zeit String nicht doppelt genutzt, sondern das next doppelt genutzt, kann das? Sollte ich dennoch die selbe Zeit für die beiden Cron Trigger genutzt haben, dann lag es an der Uhrzeit zu der Ich das gebaut habe.

Ich wollte auf jeden Fall mit zwei Uhrzeiten zwei Unterschiedliche Einstellungen der Heizung und meiner Glastaster fahren. ;)

So der ursprüngliche Gedanke.

Danke für deine weiteren Verbesserungshinweise, werde das morgen mal in Ruhe einbauen.

DANKE
Dennis
TWS 950 ID:242, Wartungs-VPN offen, Reboot erlaubt

Sun1453
Reactions:
Beiträge: 1873
Registriert: Do Feb 07, 2019 8:08 am
Hat sich bedankt: 1579 Mal
Danksagung erhalten: 810 Mal

#18

Beitrag von Sun1453 »

@colder2017 was hast du mit den glastaster denn gemacht? Vielleicht hilft mir das. Danke schon mal fürs erklären.
Gruß Michael

Timberwolf 950 QL #344 | Mit Internetanbindung | VPN Offen | Reboot nach Absprache | PROD Server
Timberwolf 2500 #602 | VPN offen | TEST Server | Reboot nach Absprache |

Ersteller
colder2017
Reactions:
Beiträge: 8
Registriert: Sa Nov 16, 2019 9:42 pm
Hat sich bedankt: 4 Mal
Danksagung erhalten: 4 Mal

#19

Beitrag von colder2017 »

@Sun1453 am mdt Glastaster sollen parallel zu den Heizmodi für die Kinderzimmer die Tag/Nacht Einstellungen umgeschaltet werden, damit die dunkel sind wenn Schlafenszeit ist ;)

Also nichts wildes
Dennis
TWS 950 ID:242, Wartungs-VPN offen, Reboot erlaubt

Sun1453
Reactions:
Beiträge: 1873
Registriert: Do Feb 07, 2019 8:08 am
Hat sich bedankt: 1579 Mal
Danksagung erhalten: 810 Mal

#20

Beitrag von Sun1453 »

@colder2017 wie hast du das umgesetzt? Bin da noch am bauen. Schalte die in den Tagmodus und in den Nacht Modus sollen die geschalten werden wenn sie noch auf Tag sind. Also mit Überprüfung ob im Tag Modus oder nicht.
Zuletzt geändert von Sun1453 am Mi Dez 30, 2020 9:59 pm, insgesamt 1-mal geändert.
Gruß Michael

Timberwolf 950 QL #344 | Mit Internetanbindung | VPN Offen | Reboot nach Absprache | PROD Server
Timberwolf 2500 #602 | VPN offen | TEST Server | Reboot nach Absprache |
Antworten

Zurück zu „Logikengine & Logik-Editor“