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

[Problem] [V1.6] Custom-Logik, die lange erfolgreich lief, ist auf einmal Fehlerhaft

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
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

[V1.6] Custom-Logik, die lange erfolgreich lief, ist auf einmal Fehlerhaft

#1

Beitrag von Robosoc »

Ich tappe noch etwas im Dunkeln und könnte Hilfe und Denkanstöße gebrauchen:

Aufgrund einer Fehlfunktion, die ich seit wenigen Wochen beobachte, habe ich mir eine Bestandslogik-Kette (mehrere verbundene Logikzellen) über Tags herausgefiltert, die ich analysieren wollte. Dann aber habe ich zunächst gesehen, dass ich im Feld Beschreibung in einer von mir als möglicher Ursprung des Übels vermuteten Customlogik einen Text stehen hatte, der mir nicht geholfen hat und den habe ich zunächst gelöscht (also auf den Logik-Namen geklickt, den Inhalt des zweiten Textfeldes "Beschreibung" entfernt, auf "Logik Aktualisieren" geklickt) und dann wollte die Logik gespeichert werden :think: . Das hat mich zwar gewundert, weil ich dachte beim Editieren von Namen und Beschreibungen muss nicht mehr gespeichert werden...aber da ich das Feld Beschreibungen eher selten nutze, habe ich es akzeptiert und die Logik gespeichert. Mit dem Ergebnis:

Error
Saved Logik - Logik wurde gespeichert. Logik ist fehlerhaft

Die Logik war, bevor ich sie geöffnet habe, definitiv nicht im Status "modified" sondern 100% sicher auf "ok".
Rein theoretisch kann es aber natürlich trotzdem sein, dass der Code von mir irgendwann vor langer Zeit geändert wurde, ich ihn nicht gespeichert hatte und der TWS es irgendwann bei Updates nicht mehr als Status geführt hat - das halte ich aber für unwahrscheinlich bei dieser speziellen Logik. Auch, weil ich den Error-Grund bisher nicht finden kann und mir das sehr merkwürdig vorkommt:

Code: Alles auswählen

{
  "Input": [
    ["Verzögerungszeit","Zeit in Sekunden bis Klappe offen und geschlossen","$t","u"],
    ["S Normal","Eingang Schließen Normal","$Input1","a"],
    ["Ö Normal","Eingang Öffnen Normal","$Input2","a"],
    ["S Zwang","Eingang Schließen Zwang","$Input3","a"],
    ["Entr. Treppenhaus","Eingang Entrauchung Treppenhaus","$Input4","a"],
    ["Entr. Aufzugsschacht","Eingang Entrauchung Aufzugsschacht","$Input5","a"],
    ["Entr. manuell","Eingang Entrauchung manuell","$Input6","a"]
  ],
  "Output": [
    ["Aktor zum Schließen","Ausgang zum Schalten des Schließaktor","$Close","c"],  
    ["Aktor zum Öffnen","Ausgang zum Schalten des Öffnenaktor","$Open","c"],
    ["Status der Öffnung","true = Offen, false = geschlossen","$Out","c"]
  ],
  "Level": [
    ["$t","integer", 5],
    ["$Input1","bool", false],
    ["$Input2","bool", false],
    ["$Input3","bool", false],
    ["$Input4","bool", false],
    ["$Input5","bool", false],
    ["$Input6","bool", false],
    ["$Close","bool", false],
    ["$Open","bool", false],
    ["$dummy","bool", false],
    ["$trigger","bool", false],
    ["$switch","bool", false],
    ["$constTrue","bool", true],
    ["$Out","bool", false]
  ],
  "Module": [
    ["Triggered", "$Input1", "$trigger"],
    ["Latch","$Input1","$switch","$trigger",0],
    ["Triggered", "$Input2", "$trigger"],
    ["Latch","$Input2","$switch","$trigger",0],
    ["Triggered", "$Input3", "$trigger"],
    ["Latch","$Input3","$switch","$trigger",0],
    ["Triggered", "$Input4", "$trigger"],
    ["Latch","$Input4","$switch","$trigger",0],
    ["Triggered", "$Input5", "$trigger"],
    ["Latch","$Input5","$switch","$trigger",0],
    ["Triggered", "$Input6", "$trigger"],
    ["Latch","$Input6","$switch","$trigger",0],
    ["Monoflop", "$constTrue", 0, "$dummy", "$t", 0],
    ["And", ["$switch","$dummy"], "$Open"],
    ["And", ["-$switch","$dummy"], "$Close"],
    ["Latch","$constTrue","$Out","$Open",1],
    ["Latch",0,"$Out","$Close",2]
  ]
}
Beim Debugging "durch Auskommentieren und Speichern" bin ich inzwischen so weit:
Wenn ich die 7. Zeile von unten

Code: Alles auswählen

["Monoflop", "$constTrue", 0, "$dummy", "$t", 0],
auskommentiere oder lösche, dann kann ich die Logik problemlos, also ohne Error, speichern. Daher vermute ich, dass es an der Monoflop-Zeile liegt.
Aber daran kann ich nichts Falsches erkennen oder habe ich Tomaten auf den Augen?!? Hat jemand einen Rat? :confusion-helpsign:


Es geht dabei um die Steuerung von Lüftungsklappen und Lamellen um eine innenliegendes Treppenhaus zu lüften. Diese Kette existiert aber bereits sehr lange in meinem Wolf, weil Sie recht essentiell für mein Haus ist und bereits früh eine eher schlecht funktionierende Logik (schlechte programmierung durch mich) im Wiregate-Server ersetzt hat. Seit vielen Monaten war ich mit der Funktion im TWS vollständig zufrieden und habe daran soweit ich mich errinnern kann mindestens 6 Monate - aber wahrschenlich schon viel länger - nichts geändert. Ich habe sie mehrfach getestet und auch regelmässig genutzt - eher im Sommer oder bei ausschließlich trockenem Wetter, diesen Winter aber lange überhaupt nicht, bis irgendwann im Januar.

Fall jemand von Elabnet auf den Server schauen will: Es ist die Logik 324.


Spätere Ergänzung:
Ich habe diese Customlogik übrigens zweimal im Einsatz. Die Zweite ist die ID 192.
Der Code war bis eben noch 1:1 der exakt Gleiche (verglichen mit einem ASCII- Zeichenvergleich für jede Zeile in Excel). Ich habe eben lediglich die Beschriftung der Eingänge geändert, daher ist er jetzt nicht mehr 1:! gleich und das folgende Bild zeigt andere Eingangsbeschriftungen.
Auffällig ist und war mir auch schon vor allen Änderungen und vor dem Vergleich in Excel, dass das eine Mal der Eingang "Verzögerungszeit" oben steht und das andere Mal unten.
Screenshot 2021-02-25 092501.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Robosoc am Do Feb 25, 2021 11:15 am, insgesamt 8-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

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

#2

Beitrag von Robosoc »

Wenn ich die Logik mit exakt dem gleichen Code neu erstelle, lässt sie sich auch mit der Monoflopzeile komplett wie gewünscht abspeichern.

@StefanW Bitte gebe das an Dein Entwicklerteam weiter. Ich ändere an der Logik 324 jetzt nichts weiter. Vielleicht habt Ihr eine Chance herauszufinden, warum die Logik nicht mehr ging. Ich gehe im Moment davon aus, dass durch irgendein Update V6RC1.8 oder V1.6 Hauptversion
der Konflikt entstanden oder hervorgehoben wurde.

Wichtige Ergänzung:
Mir scheint als könnte man das Phänomen mit der Logik ID-192 reproduzieren. Es gibt eventuell nur eine einzige Chance, daher mache ich auch hier zunächst nichts und suche daher auch nicht weiter nach dem eigentlich Fehler in meiner Logikkette.

Wenn ich irgendwas in der Logik 192 ändere, z.B. nur einen Buchstaben im Namen ergänze, dann wird die Logik auf modified geschaltet und der Eingang "Verzögerungszeit" springt von oben nach unten! Lade ich die Webseite jedoch neu, ist die Zelle wieder in okay und die Änderung im Namen verloren. Gleiches gilt bei Änderung im Code (z.B. irgendein Leerzeichen entfernen). Ich habe jetzt bewusst nichts gespeichert, damit Ihr das reproduzieren könnt.

Wenn ich das in einer anderen Logik mache (z.B. die gerade angelegte Custom-Logik 406 mit dem 1:1 identischen Code, die die 324 ersetzen wird), dann führt eine Änderung im Namen dort nicht zu "modified" und ist nach einem Neuladen der Seite weiterhin übernommen - die Änderung wurde also tatsächlich durchgeführt!

Bei inzwischen 136 Logiken würde ich mich wirklich sehr freuen, wenn ihr den Grund für dieses merkwürdige Verhalten finden könnt und auch einen Weg findet, wie man solche "nicht ganz vertrauenswürdigen" Logiken aufspürt. Eventuell habe ich ja noch weitere solche Logiken. Ich kann im Moment aber nicht sagen, ob die Logik 192 in diem jetzigen Zustand läuft oder nicht...ich glaube aber nicht. Ich versuche es zu testen
Zuletzt geändert von Robosoc am Do Feb 25, 2021 11:15 am, insgesamt 3-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

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

#3

Beitrag von StefanW »

Hallo Sven,

wurde eben an die Entwickler 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.

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

#4

Beitrag von Robosoc »

Für Mitleser oder spätere Suchende: In der folgend verlinkten Diskussion findet ab Beitrag #9 eine Überlegung statt, ob mein Problem mit dem dortigen (eigentlich gelösten)
Problem in Verbindung gestellt werden kann. viewtopic.php?p=30715#p30715
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Sun1453
Reactions:
Beiträge: 1849
Registriert: Do Feb 07, 2019 8:08 am
Hat sich bedankt: 1541 Mal
Danksagung erhalten: 788 Mal

#5

Beitrag von Sun1453 »

Hallo Sven,

dieses Forum was du hier verlinkt hast ist für niemand lesbar. Daher kann man auch keine Verbindung oder ähnliches herstellen. Besser wäre diesen Sachverhalt kurz hier darzulegen.
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 |

markusrohr
Reactions:
Beiträge: 192
Registriert: Sa Dez 08, 2018 7:33 pm
Wohnort: Lostorf
Hat sich bedankt: 173 Mal
Danksagung erhalten: 94 Mal
Kontaktdaten:

#6

Beitrag von markusrohr »

v1.6 RC6

Hallo Sven,
meine Logiken, zum grossen Teil basierend auf hier im Forum publizierten Bausteinen, senden nach einem Neustart keine Informationen mehr auf den KNX Bus. Ich kann dies

Wenn ich die Logiken, die lange Zeit erfolgreich liefen, nur anklicke, muss ich sie neu speichern. Damit gehen dooferweise natürlich die persistenten Informationen verloren. Ich kann Deine Beobachtung also wieder einmal mehr bestätigen.
Gruss
Markus
TWS 950 ID 238 mit PBM ID: 10008, 3 Kanäle, Wartungs-VPN aktiviert, Neustart bitte nur nach Nachfrage, markus.rohr@bluewin.ch

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

#7

Beitrag von Robosoc »

markusrohr hat geschrieben: So Feb 28, 2021 12:07 pm Wenn ich die Logiken, die lange Zeit erfolgreich liefen, nur anklicke, muss ich sie neu speichern. Damit gehen dooferweise natürlich die persistenten Informationen verloren. Ich kann Deine Beobachtung also wieder einmal mehr bestätigen.
Ich bin mir nicht sicher, aber ich glaube, dass es noch nicht das gleiche Problem wie bei mir ist. Denn Du kannst die Logiken - so interpretiere ich Deinen Beitrag - erfolgreich abspeichern. Bis zum Speichern, scheint es gleich zu sein, bei mir aber folgte nach dem Speichern der Error!
Robosoc hat geschrieben: Do Feb 25, 2021 10:19 pm In der folgend verlinkten Diskussion findet ab Beitrag #9 eine Überlegung statt, ob mein Problem mit dem dortigen (eigentlich gelösten)
Problem in Verbindung gestellt werden kann. viewtopic.php?p=30715#p30715
Sorry, der Link liegt tatsächlich im Beta-Tester-Bereich, was ich übersehen habe...Es geht dort um einen Fehler in einer Nicht-Haupt-Version, der eigentlich aber auch bereits gefixt sein sollte und daher vermutlich nicht die Ursache meines Problems zu sein scheint. Dort war in einer fürheren Version als 1.6 Hells Bells ein Problem aufgetaucht, wenn ein Eingangsvariablenname teil eines anderen Eingangsveriablennamens ist. Und das ist bei mir ja der Fall ... das "t" aus meiner Variable $t ist ja auch in jedem $Input_x-Namen enthalten. Aber ob es daran oder an etwas völlig anderen liegt ist noch nicht bekannt.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

markusrohr
Reactions:
Beiträge: 192
Registriert: Sa Dez 08, 2018 7:33 pm
Wohnort: Lostorf
Hat sich bedankt: 173 Mal
Danksagung erhalten: 94 Mal
Kontaktdaten:

#8

Beitrag von markusrohr »

Hallo Sven,

es kann sein oder es kann nicht sein, dass es sich um ein anderes Problem handelt. Ich hatte denselben Effekt mit dem Error. Der Workaroud war den Code der Logik in Notepad++ zu kopieren und als neue Logik abzzuspeichern. Hat dann wieder funktioniert. Der Kommentar von Elabnet war, dass dies daran liegen könnte, dass die Logiken mit einer frühen Version des Betriebssystems kreiert wurden.

Bin sehr gespannt darauf zu erfahren, was bei Dir schlussendlich herauskommt.
Gruss Markus
TWS 950 ID 238 mit PBM ID: 10008, 3 Kanäle, Wartungs-VPN aktiviert, Neustart bitte nur nach Nachfrage, markus.rohr@bluewin.ch

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

#9

Beitrag von Robosoc »

So, wie Du es jetzt dargestellt hast, würde ich auch wieder sagen, dass es das gleiche Problem ist.

Kurz gefasst:
  • Nur vereinzelte Logiken (wohl eher Ältere) sind betroffen.
  • Logikzelle öffnen und mitndestens 1x auf den Namen klicken (so dass der Logikcode angezeigt wird) führt zum Status "Modifikation", ein direktes Speichern der Logik in der gleichen Logikzelle führt zum Error.
  • Kopieren des Codes in eine neue Logikzelle führt nach dem Speichern dieser neuen Zelle nicht zum Error, sondern zu einer funktionierenden Logik.
Markus, weißt Du noch welche Deiner Logiken betroffen war und kannst Du davon ggf. mal den Code posten (aber nur, wenn Du Dir absolut sicher bist, dass Du den Code nicht verändert hast, damit wir keine Fehlinformationen geben)?
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

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

#10

Beitrag von Robosoc »

@StefanW
Aufgrund meines hier beschriebenen Problems habe ich mir nach einen Systemneustart die Zeitserien angeschaut (insbesondere die von mir experimentell-manual angelegten ). Ich bin aber bisher aufnichts auffälliges gestoßen. Ins Auge gefallen ist mir lediglich Folgendes:
Screenshot 2021-03-04 071645.jpg
Die Konsistenzprobleme kommen daher, dass ich ja noch die zwei "alten" Logikmodule aus diesem Topic inaktiv aber unverändert für Euch liegen gelassen habe. Und gleichzeitig die Logiken mit gleichem Code und gleicher Verschaltung neu angelegt habe. Wenn ich die alten Objekt-Verbindungen lösche oder die ganzen Module befürchte ich, dass ich Euch die Ursachenanalyse erschwere. Was meinst Du, kann ich alten Objekt-Verknüfungen löschen oder soll noch jemand aus dem Team vorher auf die Ursache schauen?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK
Antworten

Zurück zu „Logikengine & Logik-Editor“