Ankündigung

Einklappen
Keine Ankündigung bisher.

EnertexAnwesenheit.lib

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

    EnertexAnwesenheit.lib

    Hallo zusammen!
    Hat jemand hier die Anwesenheitssimu von Enertex (erfolgreich) am laufen?
    Ich habe sie schon eine Weile eingerichtet - nutze sie aber nicht wirklich häufig. Das einzige was mir bisher aufgefallen war ist, das scheinbar irgendwas passiert, nur nicht das was ich erwarte.

    Somit hab ich mit die lib jetzt mal angeschaut und verstehe nicht wirklich wie die überhaupt funktionieren soll:

    Laut Handbuch S. 109 "CodeTeil 1" wird nacheinander getestet ob die potentiell zu simulierende GA in der Liste ist.
    Dummerweise besteht aber jeder einzelne test aus einem IF-Else konstrukt, womit also in jedem Fall Sim_MyGA verändert wird - und somit überhaupt nur der letzte Makroaufruf überhaupt Wirkung hat.

    Vieleicht verstehe ich ja da irgendeine Funktionalität in der Makrosprache nicht,

    aber nach meinem Verständniss kann das Makro so gar nicht funktionieren:

    Was ich da sehe:

    Nach dem Ablauf des Schedulers entscheiden nacheinander die Rec_GA aufrufe (ja, ich weiß - es ist eigentlich kein Aufruf), ob die zuletzt empfangene GA einer zu loggenden entspricht ODER NICHT.
    Letzteres sorgt dafür das in jedem Fall alle zuvor getroffenen Entscheidungen diesbezüglich wieder verworfen werden, und somit immer das letzte Rec_GA entscheidend ist.


    Desweiteren sehe ich da ein noch eine Inkonsistenz im Ablauf:

    Die "Datenaufbereitung" zum Speichern (Dies geschieht später im InternalSchedulerW) passiert nur dann wenn ein event(readrawknx) erfolgt ist.

    Das passt so nicht, denn das Speichern geschieht so zwangsläufig immer in zwei Schedulerzyklen nach folgendem Ablauf:

    - 1. SchedulerZyklus: RawMessage wird empfangen, die GA extrahiert.
    - Abarbeitung der einzelnen Rec_GA fälle
    - 2. Scheduler Zyklus: Die Rohdaten werden aufgearbeitet und später in InternalSchedulerW gespeichert.

    ABER: Wie bereits gesagt erfolgt auch diese Aufbereitung nur nach dem receive-event, d.h. Nachdem Nachricht1 empfangen wurde - und festgestellt wurde das diese zu speichern ist wird zunächst auf den Empfang von Nachricht2 gewartet.
    Tja, dummerweise werden bei diesem Empfang allerdings die Empfangenen Daten von Nachricht2 überschrieben. Somit wird also jetzt der Inhalt von Nachricht 2 gespeichert .....


    DAS deckt sich durchaus mit meiner Beobachtung das die Anwesenheitssimulation beim Replay schon "irgendwas" macht, aber irgendwie nichts mit den GA's die eigentlich zu simulieren wären.
    Wenn obiges zutrifft wäre das auch kein Wunder, denn es wird ja das Telegram abgespielt das NACH der eigentlich interessanten GA empfangen wird.
    DAS kann dann wiederum alles mögliche sein ...

    Meiner Meinung nach muss zum Einen der ELSE-Zweig in Rec_GA weg,
    zum anderen gehört in Scheduler_2Wochen der "if Sim_MyGA then {" - zweig aus dem event-Zweig raus.

    Sehe ich da was falsch ?

    Meinungen?
    Zuletzt geändert von cds; 07.02.2018, 16:02.

    #2
    Ja, wir haben einige Kunden, wo die läuft. Das im Handbuch ist mehr so als Programmierhilfe gedacht.
    Es zählt das, was im Makro steht und sollte auch die aktuelle Lib sein.
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Naja, ich habe die letzte Version des Makros (gestern runtergeladen) - und im Makro selber steht auch nichts anderes als im Handbuch. Ich sehe halt nur das es bei mir definitiv nicht funktioniert, und habe versucht zu ergründen warum. Selbst wenn ich mich bei dem oben beschriebenen Ablauf in zwei Zyklen aus irgend einem Grund täuschen sollte bleibt das in Rec_GA die Variable Sim_MyGA zwangsweise auf false gesetzt wird wenn diese eine GA eben nicht zu simulieren ist. Dadurch wird bei jeder Benutzung zwangsläufig der vorhergehende Wert überschrieben - ohne das zwischenzeitlich eine Verarbeitung stattgefunden hätte ...

      So viel kann man beim Einsatz des Makros ja eigentlich nicht falsch machen .....
      Zuletzt geändert von cds; 07.02.2018, 16:28.

      Kommentar


        #4
        Hallo zusammen,

        bei mir läuft die "Anwesenheitssteuerung" nicht, d.h ich sehe keine durch den EibPC ausgelösten Schaltungen.
        Ist es richtig, dass der EibPC 14 Tage ohne Programmeinspielung/Änderung laufen muss, damit die Anwesenheitssteuerung überhaupt anlaufen kann ?
        Dies wäre nicht ideal, weil dann "am EibPC spielen und am nächsten Tag in Urlaub fahren" (sprich die Anwesenheitssteuerung aktivieren) nicht möglich wäre.

        viele Grüße.

        Kommentar


          #5
          ja, das liegt in der Natur der Sache. Es könnte aber wohl auch einfach so umgebaut werden, dass die Variablen im Flash abgelegt werden. Ich nehme dies mal als Anregung auf.
          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
          Enertex Produkte kaufen

          Kommentar

          Lädt...
          X