Seite 1 von 3

23.1: Ich verstehe die Logikengine nicht

Verfasst: Mo Jun 10, 2019 9:31 am
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

Re: 23.1: Ich verstehe die Logikengine nicht

Verfasst: Mo Jun 10, 2019 10:19 am
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

Re: 23.1: Ich verstehe die Logikengine nicht

Verfasst: Mo Jun 10, 2019 12:08 pm
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

Re: 23.1: Ich verstehe die Logikengine nicht

Verfasst: Mo Jun 10, 2019 12:22 pm
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.

Re: 23.1: Ich verstehe die Logikengine nicht

Verfasst: Mo Jun 10, 2019 12:32 pm
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

Re: 23.1: Ich verstehe die Logikengine nicht

Verfasst: Mo Jun 10, 2019 1:01 pm
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

Re: 23.1: Ich verstehe die Logikengine nicht

Verfasst: Mo Jun 10, 2019 1:25 pm
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

Re: 23.1: Ich verstehe die Logikengine nicht

Verfasst: Mo Jun 10, 2019 1:39 pm
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

Re: 23.1: Ich verstehe die Logikengine nicht

Verfasst: Mo Jun 10, 2019 1:49 pm
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

Re: 23.1: Ich verstehe die Logikengine nicht

Verfasst: Mo Jun 10, 2019 2:00 pm
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