Ankündigung

Einklappen
Keine Ankündigung bisher.

EibStudio 2.104 Patch 2.104 AUCH Problem mit Sektion InitGA

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    EibStudio 2.104 Patch 2.104 AUCH Problem mit Sektion InitGA

    Hallo zusammen,

    ich habe nach Installation des Patches ebenfalls ein Problem mit initga

    Folgender Code fährt abends meine Rolläden herunter:
    [highlight=epc]
    [InitGA]
    //Dämmerung
    "Eingang Dämmerung-4/3/0"

    [EibPC]
    RolladenZentralRunter=AUS
    Nachmittag=AUS

    if chtime(12,00,00) then Nachmittag=EIN else Nachmittag=AUS endif
    if ( "Eingang Dämmerung-4/3/0" < 30.0 and Nachmittag) then RolladenZentralRunter = EIN endif

    if RolladenZentralRunter then \\
    RolladenRunterFahren(FensterKueche, "Küche Fenster Position-5/1/24", EIN) endif
    if (RolladenZentralRunter and after(RolladenZentralRunter,010000u64)) then \\
    RolladenRunterFahren(Dummy, "Küche Terasse Position-5/1/29", AUS) endif
    [/highlight]

    Das funktionierte bisher problemlos und sollte gemäß der neuen Doku mit dem Patch eigentlich auch noch gehen, denke ich.

    Im Meldungsfenster ist allerdings zu erkennen, dass der EibPC offensichtlich VOR Abarbeitung der gesamten Initialisierung bereits Befehle auf den Bus schickt. Im Handbuch heißt es hierzu auf Seite 128 zwar "Nachdem für die letzte Gruppenadresse auf diese Weise eine Leseanforderung auf den
    Bus gesandt wurde (...), wird mit der Verarbeitung begonnen", allerdings kann ich bei mir ein anderes Verhalten beobachten. Ich kann im Meldungsfenster definitiv Schreibbefehle des EibPC sehen, bevor der erste Lesebefehl ausgegeben wird.

    Ich gehe dabei davon aus, dass die GA "Eingang Dämmerung-4/3/0" zu diesem Zeitpunkt (vor der Initialisierung) im 0.0 belegt ist. Daher trifft die Bedingung der if Anweisung in Zeile 10 zu und die Variable RolladenZentralRunter wir mit EIN belegt --> meine Rolläden fahren :-(

    Wenn ich der if Anweisung in Zeile 10 übrigens ein "and after(systemstart(),180000u64)" hinzufüge funktioniert alles, denn dann ist die Leseanforderung auf die GA "Eingang Dämmerung-4/3/0" durch [InitGA] erledigt und das Objekt trägt tagsüber den richtigen Wert (>30).

    Fällt dazu irgendwem etwas ein?

    VG,
    Boris.

    #2
    Zitat von kuczerek Beitrag anzeigen
    allerdings kann ich bei mir ein anderes Verhalten beobachten.
    Was man da sieht ist das Auslesen aus der Warteschlange, dies kann (beim Start der Übertragung) schon zu einigen ms Toleranzen führen, gerade beim Umschalten von Vor-Verarbeitung zu Normal-Verarbeitung. Ich denke, wenn Du mit der ETS3 oder mit einem 2-ten EibPC mitloggst wirst Du sehen, dass alles passt.
    Ich gehe dabei davon aus, dass die GA "Eingang Dämmerung-4/3/0" zu diesem Zeitpunkt (vor der Initialisierung) im 0.0 belegt ist. Daher trifft die Bedingung der if Anweisung in Zeile 10 zu und die Variable RolladenZentralRunter wir mit EIN belegt --> meine Rolläden fahren :-(
    Ja, das ist ja genau so gewollt. Ich denke es ist klar, warum. Oder was liefert denn der Aktor auf die Leseanforderung zurück?
    Wenn ich der if Anweisung in Zeile 10 übrigens ein "and after(systemstart(),180000u64)" hinzufüge funktioniert alles, denn dann ist die Leseanforderung auf die GA "Eingang Dämmerung-4/3/0" durch [InitGA] erledigt und das Objekt trägt tagsüber den richtigen Wert (>30).
    Das ist auch klar, oder einfach ein "and !systemstart()" einfügen.
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Zitat von enertegus Beitrag anzeigen
      Ja, das ist ja genau so gewollt. Ich denke es ist klar, warum. Oder was liefert denn der Aktor auf die Leseanforderung zurück?
      Der Sensor liefert (tagsüber) auf die Leseanforderungen einen Wert größer 0 zurück, z. B. 1000. Von daher sollte die Bedingung bei der ersten Verarbeitung nach dem Systemstart eigentlich nicht zutreffen (Mit "Initialisierung" meinte ich die Abarbeitung von initga, nicht den "Systemstart mit Variableninitialisierung").

      Wenn ich das Abarbeiten der Queue abwarte passt es auch, aber das in m. E. nicht der Sinn der [InitGA] Sektion, oder? Die erste Validierung der if-Anweisung dürfte erst nach dem Abarbeiten der Queue erfolgen.

      Vor dem Einspielen des Patches schien mir das jedenfalls so, denn dort konnte ich keine Schreibbefehle auf den Bus VOR Abarbeitung der Lese-Queue aus der [InitGA] Sektion erkennen.

      Kommentar


        #4
        Zitat von kuczerek Beitrag anzeigen
        Der Sensor liefert (tagsüber) auf die Leseanforderungen einen Wert größer 0 zurück, z. B. 1000. Von daher sollte die Bedingung bei der ersten Verarbeitung nach dem Systemstart eigentlich nicht zutreffen (Mit "Initialisierung" meinte ich die Abarbeitung von initga, nicht den "Systemstart mit Variableninitialisierung").
        Ja, dann sollte das eigentlich passen.
        Vor dem Einspielen des Patches schien mir das jedenfalls so, denn dort konnte ich keine Schreibbefehle auf den Bus VOR Abarbeitung der Lese-Queue aus der [InitGA] Sektion erkennen.
        Ja, so sollte das auch sein. Kannst Du mal Deine Daten an eibpc@enertex.de schicken und zwar so, wie es bei Dir ist (am besten in der minimalen reproduzierbaren Konfiguration).
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Zitat von enertegus Beitrag anzeigen
          Kannst Du mal Deine Daten an eibpc@enertex.de schicken und zwar so, wie es bei Dir ist (am besten in der minimalen reproduzierbaren Konfiguration).
          Ja, schicke ich heute abend raus:

          - Minimalprogramm
          - Log des Meldungsfensters
          - Debuginhalte der Variablen

          Kommentar

          Lädt...
          X