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

[Problem] Logik wird nicht wie erwartet getriggert

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

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

Logik wird nicht wie erwartet getriggert

#1

Beitrag von Robert_Mini »

Hallo zusammen!

Ich komme gerade mit dem Start- Triggerverhalten der Logik nicht klar.
Hintergrund: Ich möchte eine Logic erstellen, die nach dem Reboot einmalig einen Trigger sendet.
Idee: Der Eingang steht auf False und wird nach dem ersten Ausführen vom Ausgang mit True überschrieben und kann danach kein false mehr annehmen, außer beim Reboot o.ä. wo der Wert wieder mit false initialisiert wird (keine Persistenz!!)

Die Option "Startverhalten" beim Eingang habe ich auf Startwert: False gesetzt.

Damit würde ich erwarten, dass die Logik beim Speichern und bei einem Neustart des Logic-Services bzw. Reboot mit diesem Wert "False" getriggert wird. Der Eingang steht zur Sicherheit auf Triggerverhalten "a" (always).

Die Logik wird aber weder nach dem Speichern noch nach einem Restart des Services getriggert.

Testfall 1:

Code: Alles auswählen

{
  "Input": [
        ["State","Status 0 nach Reboot","$State","a"]
  ],
  "Output": [
		["State Out","Wird nach Reboot auf 1 gesetzt","$State_Out","c"]
  ],
  "Level": [
		["$State","bool",false],
		["$State_Out","bool",false],
		["$KonstTrue","bool",true]
  ],
  "Module": [
		["Multiplexer",["$KonstTrue","$State_Out"],"$State_Out","$State"]
  ]
}

Da ich an dieser Stelle nicht aufgeben wollte, habe ich testweise einen Timer eingebaut, der nach einer einstellbaren Zeit zB 5sec. abläuft.
Die Sendeoption habe ich auf CT gestellt. Damit wollte ich sichergehen, dass ich nicht am Senden scheitere.

Testfall 2:

Code: Alles auswählen

/**===========================================================
Trigger nach Reboot
============================================================*/
{
  "Input": [
        	["State","Status 0 nach Reboot","$State","c"],
		["Verzögerungszeit","Verzögerung bis Trigger gesendet wird","$I_Dauer","c"]
  ],
  "Output": [
		["State Out","Wird nach Reboot auf 1 gesetzt","$State_Out","ct"]
  ],
  "Level": [
		["$State","bool",false],
		["$State1","bool",false],
		["$State_Out","bool",false],
		["$I_Dauer","float",5.0],
		["$KonstTrue","bool",true]
  ],
  "Module": [
		["Monoflop","-$State","$State","$State1","$I_Dauer",0],
		["Multiplexer",["$State_Out","$KonstTrue"],"$State_Out","$State1"]
  ]
}
Ergebnis ist aber das gleiche: Logik wird weder beim Speichern noch nach Restart des Services getriggert.

Ein manuelles Umsetzen am Eingang bzw. via Telegramm triggert aber korrekt.

Ich habe zwar eine funktionierende Lösung mit "Clocksignal", würde aber gerne verstehen, was beim Startverhalten anders läuft, als ich erwarten würde.

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

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

#2

Beitrag von Robosoc »

Robert, existiert das Problem noch?
Zuletzt geändert von Robosoc am Mi Jul 15, 2020 4:18 pm, insgesamt 1-mal geändert.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK

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

#3

Beitrag von Robert_Mini »

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

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

#4

Beitrag von Robert_Mini »

Hallo @StefanW, Sven!

Das Verhalten ist bei aktuell noch das gleiche.
Ich bin aber nicht sicher, ob ich da was nicht falsch verstanden habe. Mein Verständnis wäre, das mit dem hinterlegen eines Startwerts die Logik beim Speichern auch ausgeführt wird, bei Startoption "inhibit" erst nach dem Empfang eines Wertes.

Das ist aber im Test nicht so! ==> Beispiel 1

Ich verstehe auch nicht, dass bei Logik 2 das Monoflop beim Speichern nicht startet wird, obwohl die Startwerte der Variablen so gesetzt sind, dass das Monoflop starten sollte.

Bitte prüfen ob das ein Bug ist.

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

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

#5

Beitrag von Robosoc »

Ich hatte das Topic noch nicht ausführlich gelesen...

Ich verstehe es auch noch nicht so richtig.... Warum sollte die Logik nach einem Speichern oder Reboot triggern? Die Logik triggert erst, wenn sich einer der beiden Eingänge ändert, aber beim reinen Speichern oder Reboot sind diese Werte lediglich Initial auf dem defaultwert und wurden nicht geändert.

Selbst wenn Du den Eingang auf a stellst, triggert der Eingang nicht, wenn Du neu speicherst... Aber irgendwie habe ich das Gefühl, dass ich Dich falsch verstehe, weil Du mega fit in den custom logiken bist. Ich schreibe das hier lediglich, damit Du es vielleicht noch einmal mit anderen Augen siehst und es eventuell nochmal anders beschreibst.
Zuletzt geändert von Robosoc am Do Jul 16, 2020 9:43 pm, insgesamt 1-mal geändert.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK

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

#6

Beitrag von Robosoc »

Mir scheinen beide Themen (dieses Topic und jenes viewtopic.php?f=31&t=1954) keine Bugs zu sein aber legen vielleicht ein FR nahe...

Zusätzliche zu der optionalen Starteinstellung
I = Inhibit Logic bis der Eingang gesetzt ist, wäre z. B. ein
S = Trigger Logic nach dem Speichern und Reboot
ein Gedanke wert.
Denn solche Probleme hatte ich auch schon, dass einige Module lange nicht laufen, weil der erste Trigger nach einem Update des Logik odes oder des TWS (Reboot) fehlen...
Zuletzt geändert von Robert_Mini am Fr Jul 17, 2020 8:55 am, insgesamt 4-mal geändert.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK

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

#7

Beitrag von Robert_Mini »

Hallo zusammen!

Mir ist einerseits schon klar, dass eine Logik nicht beim Speichern getriggert wird, andererseits verstehe ich dann denn Sinn der Startoptionen nicht wirklich.
    Startverhalten.png

    1) Logik sperren bis Input verfügbar - ist klar, funktioniert aber nicht wirklich, da diese Option über mehrere Eingänge nicht UND verknüpft ist.
    Das heißt wenn diese Option mehrfach verwendet wird, wird die Logik dann trotzdem getriggert, obwohl noch Eingänge keinen Wert erhalten haben.

    2) Startwert: Damit kann man wohl bei Standard-Logiken Startwerte mitgeben (was sonst bei der Variablendeklaration erfolgt).

    Für mich suggeriert Startwert sowohl ein Triggern beim Speichern!!!

    Wenn das so gewollt ist, dann setze ich das gerne auf gelöst, bitte um kurze Bestätigung durch die Stefans.

    lg
    Robert
    Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
    Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

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

    #8

    Beitrag von Robert_Mini »

    Hallo Sven!

    Dein Hinweis auf den FR finde ich sehr gut, wäre das genau mein Verständnis der Startoption Wert=xxx.

    Ich habe deine Antwort in diesen Thread verschoben, da es so besser zusammenpasst.

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

    StefanW
    Elaborated Networks
    Reactions:
    Beiträge: 9773
    Registriert: So Aug 12, 2018 9:27 am
    Wohnort: Frauenneuharting
    Hat sich bedankt: 4879 Mal
    Danksagung erhalten: 7816 Mal
    Kontaktdaten:

    #9

    Beitrag von StefanW »

    Hallo Robert,

    danke für die bessere Definition, weil ich hatte es anfangs nicht verstanden.

    Ich werde das nochmal als Topic in die nächste Entwicklerkonferenz eingeben und auch Stefan K. nochmal gezielt darauf ansprechen.

    Der Vorgang des Speicherns ist ein Sonderfall des Startes einer Logikzelle, weil es auch davon abhängen mag, ob es eine ganz neue Logik ist oder eine (teilweise) geänderte Logik. Wir hatten zuletzt intern auch darüber gesprochen, dem Nutzer separate Startoptionen beim Speichern anzubieten, weil die Bedürfnisse unterschiedlich sein könnten.

    ich habe das bereits weitergegeben.

    lg

    Stefan
    Stefan Werner
    Product Owner für Timberwolf Server, 1-Wire und BlitzART
    Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
    Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

    Link zu Impressum und Datenschutzerklärung oben.

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

    #10

    Beitrag von Robosoc »

    Ich würde jetzt nach meinem Verständnis sagen, dass Du die Einstellung Startverhalten falsch interpretierst... Zumindest anders als ich bisher und einer muss dann falsch liegen ;)

    Meines Erachtens sagt die Starteinstellung lediglich, ob die Logik überhaupt ausgeführt wird, wenn dieser Eingang seit dem letzten Logikstart (Speichern, oder Reboot).
    I = nein
    X = ja und es wird der eingestellte default Wert verwendet.

    Beispiel.
    And mit zwei Eingängen, beide sind auf I gestellt.
    Es ist 23 UHR, draußen ist dunkel und ich Speicher die Logik neu.
    Der Eingang 1 ist mit einem Bewegungsmelder verknüpft, der Eingang 2 mit einem Tag Nacht Schalter, der dämmerungsgefuhrt ist.

    Ich tanze ab und an noch am Bewegungsmelder vorbei, bevor ich zu Bett gehe. Die Logik wird aber nie ausgeführt, weil Eingang zwei noch nie, seit dem Speichern, einen Wert bekommen hat.

    Morgens um 6:43 sendet der Dämmerungsschalter erstmalig und zwar Z. B. mit einem False (in meinem Beispiel ist der Eingang true bei unterschreiten einer helligkeit Grenze) und damit wird die logik aktiv, weil beide Eingänge seit dem Speichern nun auch mal einen Wert empfangen haben...

    Das I aus der Starteinstellung führt quasi zu einem Inhibit oder Break, solange der Eingang noch nie beschrieben wurde.

    Aber zu meinem Beispiel. Nur weil die Logik jetzt aktiv ist, heißt es nicht, dass sie getriggert wurde... Das hängt ausschließlich vom TRIGGERVERHALTEN A, C oder U und nicht vom Startverhalten I oder X.

    So mein Verständnis, aber ich lag ja auch schon öfter mal falsch :laughing-rolling:
    VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK
    Antworten

    Zurück zu „Logikengine & Logik-Editor“