23.1: Ich verstehe die Logikengine nicht

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
fechter65
Reactions:
Beiträge: 240
Registriert: Mo Aug 13, 2018 10:44 am
Hat sich bedankt: 224 Mal
Danksagung erhalten: 171 Mal

23.1: Ich verstehe die Logikengine nicht

#1

Beitrag von fechter65 »

Dank Stefans grosszügiger Arbeit ( viewtopic.php?f=61&t=787&start=20#p8221 ) habe ich auf dem TWS-171 eine Logik eingerichtet, die grundsätzlich auch funktioniert, manchmal aber auch nicht, so auch im hier dargestellten Beispiel.

Weil der erste Eingangswert (Präsenzmelder) "wahr" ist, dieser nicht gesperrt ist (zweiter Eingagswert "falsch") und der aktuelle Lux-Wert unter 135 liegt, müsste der Ausgangswert eigentlich "wahr" sein. Das ist er - wie das Bild zeigt - jedoch nicht.

Bild


Der Code lautet wie folgt:

Code: Alles auswählen

{
  "Input": [
    [
      "Praesenz",
      "Praesenz",
      "$VAR<Praesenz!>",
      "c"
    ],
    [
      "Sperrung",
      "Sperre",
      "$Sperrung",
      "c"
    ],
    [
      "Helligkeit",
      "Helligkeitswert",
      "$Helligkeit",
      "c"
    ],
    [
      "Lux_dunkel",
      "Unterer Schwellwert",
      "$LichtUntergrenze",
      "c"
    ],
    [
      "Lux_hell",
      "Oberer Schwellwert",
      "$LichtObergrenze",
      "c"
    ],
    [
      "Inhibit",
      "INHIBIT",
      "$VAR<Inhibit?>",
      "u"
    ]
  ],
  "Module": [
    [
      "Break",
      [
        "$VAR<Inhibit?>"
      ]
    ],
    [
      "Or",
      [
        "$VAR<Praesenz!>"
      ],
      "$Praesenz_Out"
    ],
    [
      "And",
      [
        "$Praesenz_Out",
        "-$Sperrung",
        "-$Hell_Out"
      ],
      "$Schalten"
    ],
    [
      "Comparator",
      "$Helligkeit",
      "$Hell_Out",
      [
        "$LichtUntergrenze",
        "$LichtObergrenze"
      ]
    ]
  ],
  "Output": [
    [
      "Schalten",
      "Schalten Licht",
      "$Schalten",
      "c"
    ]
  ],
  "Level": [
    [
      "$VAR<Praesenz!>",
      "bool",
      false
    ],
    [
      "$Praesenz_Out",
      "bool",
      false
    ],
    [
      "$Sperrung",
      "bool",
      false
    ],
    [
      "$Helligkeit",
      "float",
      0
    ],
    [
      "$Hell_Out",
      "bool",
      false
    ],
    [
      "$LichtUntergrenze",
      "float",
      0
    ],
    [
      "$LichtObergrenze",
      "float",
      0
    ],
    [
      "$Schalten",
      "bool",
      false
    ],
    [
      "$VAR<Inhibit?>",
      "bool",
      false
    ]
  ]
}
Irgendwie fehlt es an einem Trigger, der die Logik zum Ausführen bringt, wenn sich später die Stati der Eingäge ändert.

Kennt jemand die Lösung? In der ETS sind die beiden Objekt-Attribute "A" und "S" gesetzt, das habe ich überprüft.

Vielen Dank und beste Grüsse
Diego
TW2600 / TW-ID: 87/ VPN offen, booten jederzeit erlaubt
TW2600 / TW-ID: 173/ VPN offen, booten nach Rücksprache
TWS3500 / TW-ID: 1170/ VPN offen, booten jederzeit erlaubt

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

#2

Beitrag von StefanW »

Hallo Diego,

hast Du Dir die Aufzeichnung der ganzen Signale mal in Grafana angesehen? Einfach rechts unten auf "Grafana" klicken und dieses Bild dann auch Posten, dann sieht man alle Abläufe genau.

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
fechter65
Reactions:
Beiträge: 240
Registriert: Mo Aug 13, 2018 10:44 am
Hat sich bedankt: 224 Mal
Danksagung erhalten: 171 Mal

#3

Beitrag von fechter65 »

Hallo Stefan,

Vielen Dank für Deine Rückmeldung.
Ja, diese Aufzeichnungen hatte ich gesehen, das ist ein tolles Tool. Allerdings verstand und verstehe ich die dortigen Ausgaben nicht. Zur Erklärung meines Unverständnis lade ich verschiedene Bilder hoch:

Bild1:
Bild
Bild2:
Bild
Bild3:
Bild
Bild4:
Bild



Für mich ist bspw. Folgendes nicht nachvollziehbar:
a) Um 0940 Uhr schaltete der Präsenzmelder auf "Off" (vgl. Busmonitor, Bild4); in der Grafana Darstellung (Bild1) zeigt der Eingang "L1" durchgängig einen Wert von "1". In Bild 3 bleibt L1 (Output)" durchgängig auf "1.0" und "L8 (Schalten) durchgängig auf "0"; das Licht im Raum selbst war ausgeschaltet.
b) Um 1140 lasse ich die Storen herunter; dementsprechend fällt im Bild1 der Wert "L3 (Helligkeit)" herunter. Ich würde erwarten, dass die Logik nun reagiert; dies ist nicht der Fall: In Bild 3 bleibt L1 (Output)" durchgängig auf "1.0" und "L8 (Schalten) durchgängig auf "0"; das Licht im Raum selbst bleibt ausgeschaltet.

Solange ich die Grundregeln der Logik auf dem TWS nicht verstehe, kann ich mit meinen Logiken nicht vom Wiregate auf den TWS wechseln.

Gruss
Diego

Hinzugefügt nach 5 Minuten 20 Sekunden:
P.S./ Ergänzung:
Der Logikeditor sendet die ganze Zeit, was für mich nachvollziehbar ist, weil ich den Ausgang auf "A" gesetzt habe:
Bild
Geändert: letztes Bild ausgewechselt
Zuletzt geändert von fechter65 am Mo Jun 10, 2019 12:20 pm, insgesamt 1-mal geändert.
TW2600 / TW-ID: 87/ VPN offen, booten jederzeit erlaubt
TW2600 / TW-ID: 173/ VPN offen, booten nach Rücksprache
TWS3500 / TW-ID: 1170/ VPN offen, booten jederzeit erlaubt

blaubaerli
Reactions:
Beiträge: 2695
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 1016 Mal
Danksagung erhalten: 808 Mal

#4

Beitrag von blaubaerli »

Hallo Diego (@fechter65),

ist die von dir oben gelistete Logik auf Anhieb so entstanden, oder hast du sie durch den mittlerweile integrierten Editor einmal geändert?

Was ich aktuell festgestellt habe ist, dass zumindest Änderungen die Auswirkungen auf die Oberfäche haben sollten, dort noch nicht ankommen. Daher kann es womöglich sein, dass das was da im Moment zu sehen ist noch nicht ganz verlässlich ist.

Gruß
Jens

PS: Ich mache zu dem Effekt mal noch einen Thread auf.
Zuletzt geändert von blaubaerli am Mo Jun 10, 2019 2:55 pm, insgesamt 3-mal geändert.
timberwolf168(2600er)VPN offenReboot nach Vereinbarung
timberwolf1699(3500XL)VPN offenReboot jederzeit
wiregate1250
Bitte WIKI lesen.

Ersteller
fechter65
Reactions:
Beiträge: 240
Registriert: Mo Aug 13, 2018 10:44 am
Hat sich bedankt: 224 Mal
Danksagung erhalten: 171 Mal

#5

Beitrag von fechter65 »

Hallo Jens

Besten Dank, dass Du Dich involvierst. Im Editor habe ich keine Änderungen vorgenommen, alle Anpassungen erfolgten über die grafische Oberfläche.
Nach meinem Laien-Verständnis sieht es so aus, dass der "Präsenz"-Wert vergessen geht: Frage ich diese GA über den Busmonitor der ETS ab, schaltet die Logik wieder korrekt.

Gruss
Diego
TW2600 / TW-ID: 87/ VPN offen, booten jederzeit erlaubt
TW2600 / TW-ID: 173/ VPN offen, booten nach Rücksprache
TWS3500 / TW-ID: 1170/ VPN offen, booten jederzeit erlaubt

blaubaerli
Reactions:
Beiträge: 2695
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 1016 Mal
Danksagung erhalten: 808 Mal

#6

Beitrag von blaubaerli »

Hallo Diego,

was ich in der Tat noch nicht ganz nachvollziehen kann, warum in den Grafanadiagrammen ab 09:30 Uhr generelle Sendepause dokumentiert ist. Die nächsten Datenpunkte sehe ich dort auch erst wieder um 11:30. Und der Busmonitor hat aber ein Signal detektiert. In der Tat noch etwas dubios.

Hast du ggf. in der Phase mittels Doktormodus manuell Werte überschrieben oder war der relevante Logikeingang ggf. entkoppelt? Hol dir mal das Grafana-Diagramm zu der GA 5/4/55 aus der KNX-Timeserie. Wenn das auseinanderläuft, kann das schon so gewesen sein.

Gruß
Jens
Zuletzt geändert von blaubaerli am Mo Jun 10, 2019 1:02 pm, insgesamt 1-mal geändert.
timberwolf168(2600er)VPN offenReboot nach Vereinbarung
timberwolf1699(3500XL)VPN offenReboot jederzeit
wiregate1250
Bitte WIKI lesen.

Ersteller
fechter65
Reactions:
Beiträge: 240
Registriert: Mo Aug 13, 2018 10:44 am
Hat sich bedankt: 224 Mal
Danksagung erhalten: 171 Mal

#7

Beitrag von fechter65 »

Besten Dank, Jens. Ich habe im Doktormodus Werte überschrieben, ich glaube aber nicht, dass sich die Probleme daraus ergeben. Zwischen 0930 und 1130 Uhr (ungefähr bloss) war ich nicht im Büro, somit ist es nicht erstaunlich, dass ich während dieser Phase an der Präsenz nichts geändert hatte. Anbei der KNX-GA-Graph.
Bild

Beste Grüsse
Diego
TW2600 / TW-ID: 87/ VPN offen, booten jederzeit erlaubt
TW2600 / TW-ID: 173/ VPN offen, booten nach Rücksprache
TWS3500 / TW-ID: 1170/ VPN offen, booten jederzeit erlaubt

blaubaerli
Reactions:
Beiträge: 2695
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 1016 Mal
Danksagung erhalten: 808 Mal

#8

Beitrag von blaubaerli »

Hi Diego,

aber da scheint noch irgendwo der Hund begraben zu sein. In der Grafik oben ist das über den Bus gelaufene Off um 09:40 zu sehen. Wenn du deinen überschriebenen Wert aus dem Doktormodus jetzt einfach nur löscht, aber dann nicht den letzten realen Zustand in die Logik gesendet hast, kam die damit nicht zur Ausführung und der Ausgang steht sachlich falsch. Das lässt sich im Prizip nur dann gesichert heilen, wenn der PM den jeweils aktuellen Zustand zyklisch senden würde, oder du eben daran denkst das manuelle "Fummeln" mit dem Senden des dann tatsächlich aktuellen Wertes zu beenden.

Stellt sich abschließend die Frage, wann genau du da manuell konkret mit welchen Werten eingegriffen hast.

Komplexere forensische Analyse :confusion-scratchheadyellow:

Gruß
Jens
timberwolf168(2600er)VPN offenReboot nach Vereinbarung
timberwolf1699(3500XL)VPN offenReboot jederzeit
wiregate1250
Bitte WIKI lesen.

Ersteller
fechter65
Reactions:
Beiträge: 240
Registriert: Mo Aug 13, 2018 10:44 am
Hat sich bedankt: 224 Mal
Danksagung erhalten: 171 Mal

#9

Beitrag von fechter65 »

Lieber Jens,

Vor forensischen Analysen scheue ich mich nicht, ich bin Rechtsanwalt von Beruf. Für heute bin ich zu faul, den Beweis zu erbringen. Ich bin mir jedoch ziemlich sicher, dass die händischen Anpassungen keine Auswirkungen hatten. Schliesslich war ich - was durch die Grafana-Aufzeichnungen "bewiesen" ist - ab 0940 Uhr nicht mehr im Büro.
Bild

Herzliche Grüsse
Diego
TW2600 / TW-ID: 87/ VPN offen, booten jederzeit erlaubt
TW2600 / TW-ID: 173/ VPN offen, booten nach Rücksprache
TWS3500 / TW-ID: 1170/ VPN offen, booten jederzeit erlaubt

blaubaerli
Reactions:
Beiträge: 2695
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 1016 Mal
Danksagung erhalten: 808 Mal

#10

Beitrag von blaubaerli »

Hallo Diego,

das zerlegt dir die Gegenseite innerhalb 2 Sekunden..... Laptop mit Wlan ausserhalb der Reichweite des PM und beliebiges Ändern. :laughing-rolling:

Aber ich habe die "" sehr wohl wahrgenommen.

Gruß
Jens
timberwolf168(2600er)VPN offenReboot nach Vereinbarung
timberwolf1699(3500XL)VPN offenReboot jederzeit
wiregate1250
Bitte WIKI lesen.
Antworten

Zurück zu „Logikengine & Logik-Editor“