Ankündigung

Einklappen
Keine Ankündigung bisher.

Diskussionsthread EDOMI-Releases/Updates

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

    Zitat von jonofe Beitrag anzeigen
    Aufgrund der o.g. Komplexität habe ich jetzt erstmal eine einfache Variante gemacht, die den Trigger des Archivs nimmst und man zusätzlich x,y, Breite, Höhe und eine Vergrößerung in % über LBS Eingänge angibt. Damit lässt sich dann recht einfach der Bildausschnitt generieren.
    Andrè jonofe danke für den LBS 19001577, damit passt jetzt die 1.59 wieder zur 1.58

    Kommentar


      Gute Nachrichten für EXEC-LBS-Entwickler: Ich bastel gerade eine Funktion zum Prüfen des Status (logic_getStateExec) - dadurch kann man abfragen, ob das EXEC-Script gestartet wurde, läuft oder beendet wurde.

      Ausserdem kommt wahrscheinlich noch eine Art Queue dazu für die Eingänge, so dass auch das EXEC-Script keine Eingangswerte mehr verpassen kann (die Logic-Engine arbeitet ja quasi asynchron am EXEC-Script vorbei).

      Dies dürfte die LBS-Entwicklung nicht unerheblich eleganter machen
      EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

      Kommentar


        Toll, kann ich alle meine LBS endlich mal neu basteln

        Kommentar


          Nein, Du musst die Funktionen ja nicht nutzen

          Für logic_callExec() wird's noch einen weiteren Parameter geben, der festlegt ob das EXEC-Script mehrfach gestartet werden darf. Per Default ist der Parameter "false", d.h. es ist nur 1 Start erlaubt. Hier muss ggf. der ein oder andere LBS dann angepasst werden...
          EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

          Kommentar


            Doch, mach ich gerne! Wird mal Zeit, das alles ein wenig aufzuraeumen

            Kommentar


              Schonmal vorab der vorläufige Endstand...
              Funktionen für Logikbausteine mit EXEC-Script
              Wichtig: Einige der folgenden Funktionen sind ausschließlich für die Verwendung innerhalb eines EXEC-Scripts geeignet.
              logic_callExec(LBSID,$id[,$multitasking])
              Alias: callLogicFunctionExec
              Startet ggf. das EXEC-Script der LBS-Instanz $id.

              LBSID: Platzhalter für die LBS-ID (nicht verändern!)

              $multitasking (optional):
              • true: das EXEC-Script darf ggf. mehrfach gestartet werden
              • false: das EXEC-Script wird nur einmal gestartet (alle Aufrufe der Funktion werden ignoriert, solange das EXEC-Script ausgeführt wird)
              • Hinweis: Wird dieser Parameter nicht angegeben, entspricht dies dem Wert "false".

              Hinweis:
              Der LBS wartet nicht auf die Ausführung des EXEC-Scripts: Das EXEC-Script wird im Hintergrund gestartet und die Abarbeitung des LBS-Abschnitts wird unmittelbar fortgesetzt.
              logic_getStateExec($id) Liefert den aktuellen Status des EXEC-Scripts der LBS-Instanz $id zurück.

              Rückgabe:
              INTEGER (im Fehlerfall wird NULL zurückgegeben)
              • 0=EXEC-Script wird nicht ausgeführt (bzw. wurde beendet)
              • 1=EXEC-Script wird gerade gestartet (i.d.R. nur für wenige Millisekunden)
              • 2=EXEC-Script wird ausgeführt

              Hinweis:
              Wird ein EXEC-Script mehrfach gestartet (s.o.), wird stets der Zustand des zuletzt gestarteten (oder beendeten) EXEC-Scripts zurückgegeben.
              Bei einem fehlerhaften EXEC-Script wird der Status zunächst 1 sein, anschließend 2 und unmittelbar danach 0 (da das Script aufgrund eines Fehlers beendet wurde).
              logic_setInputsQueued($id,$E) Speichert alle aktuellen Eingangsdaten der LBS-Instanz $id in einer Queue, um eine asynchrone Verarbeitung der Eingangsdaten in einem EXEC-Script zu ermöglichen.

              $E: Array der Eingangsdaten, i.d.R. das zurückgegebene Array der Funktion logic_getInputs()

              Hinweis:
              Die Funktion generiert die Eingangsdaten nicht selbst, sondern erwartet das von der Funktion logic_getInputs() zurückgegebene Array als Parameter $E.

              Achtung:
              Bei der Verwendung dieser Funktion ist darauf zu achten, dass die Queue regelmäßig abgefragt bzw. geleert wird (s.u.).

              Wichtig:
              Diese Funktion sollte ausschließlich im LBS-Abschnitt verwendet werden.
              logic_getInputsQueued($id[,$fallback]) Gibt alle Eingangsdaten der LBS-Instanz $id aus der Queue zurück und entfernt diese Eingangsdaten aus der Queue.
              Es werden stets die "ältesten" Eingangsdaten aus der Queue zurückgegeben. Die aktuellsten verfügbaren Daten werden zuletzt zurückgegeben.

              $fallback (optional):
              • true: Sind keine Eingangsdaten in der Queue verfügbar, verhält sich die Funktion wie logic_getInputs() - d.h. es werden die aktuellen Eingangsdaten (asynchron) zurückgegeben.
              • false: Sind keine Eingangsdaten in der Queue verfügbar, gibt die Funktion "false" zurück.
              • Hinweis: Wird dieser Parameter nicht angegeben, entspricht dies dem Wert "false".

              Rückgabe:
              ARRAY[Eingang]['value';'refresh'] (im Fehlerfall wird FALSE zurückgegeben)
              • Eingang: Nr. des Eingangs (1..∞)
              • 'value': aktueller Wert am Eingang
              • 'refresh':
                • 1=Eingang wurde aktualisiert
                • 0=Eingang wurde nicht aktualisiert

              Achtung:
              Nach der Rückgabe der Eingangsdaten aus der Queue werden die entsprechenden Daten aus der Queue entfernt. Ein erneuter Aufruf liefert bereits die nächsten verfügbaren Eingangsdaten aus der Queue zurück. Diese Funktion sollte daher i.d.R. nur einmal pro Schleifenzyklus im EXEC-Script aufgerufen werden.

              Wichtig:
              Diese Funktion sollte ausschließlich in einem EXEC-Script verwendet werden.
              logic_deleteInputsQueued($id) Leert die Queue der LBS-Instanz $id, sämtliche Eingangsdaten werden aus der Queue entfernt.

              Hinweis:
              Beim Beenden des EXEC-Scripts wird die Queue automatisch geleert.
              logic_setOutputQueued($id,$ausgang,$value) Wie logic_setOutput(), jedoch wird das Setzen des Ausgangswertes in einer Queue zwischengespeichert.

              Wenn ein Ausgang sehr häufig in kurzer Zeit auf einen Wert gesetzt werden soll, kann diese Funktion in einem EXEC-Script verwendet werden.
              Der Aufruf dieser Funktion ist zwar weniger performant, jedoch wird jeder Aufruf garantiert wirksam umgesetzt.

              Hinweis:
              Diese Funktion verwendet die selbe Queue wie z.B. Telegramme, Visuelemente, etc. - d.h. bei einer sehr "hochfrequenten" Nutzung dieser Funktion, wird die Abarbeitung von Telegrammen etc. entsprechend verzögert erfolgen!

              Wichtig:
              Diese Funktion darf ausschließlich in einem EXEC-Script verwendet werden.
              logic_dbKeepalive() Diese Funktion dient ggf. zur Aufrechterhaltung der Datenbank-Verbindung (u.U. wichtig für EXEC-Scripte).
              Einige der o.g. Funktionen greifen intern auf eine Datenbank zu. Die Datenbank-Engine trennt jedoch die Verbindung, sobald länger als 8 Stunden keinerlei Zugriff erfolgt - der Aufruf der o.g. Funktionen innerhalb eines EXEC-Scripts(!) wird dann u.U. scheitern!
              Es ist daher ggf. dafür zu sorgen, dass z.B. stündlich ein Datenbank-Zugriff erfolgt, um die Verbindung aufrecht zu erhalten. Die kann z.B. durch einen zyklischen Aufruf (z.B. alle 60 Minuten) dieser Funktion erfolgen.

              Hinweis:
              In der Regel ist die Verwendung dieser Funktion nicht erforderlich: Eine (Endlos-)Schleife im EXEC-Script sollte stets in der Form "while (getSysInfo(1)>=1)" implementiert werden (siehe Beispiel "EXEC-Script als Dämon" ⇗), damit der Prozess beim Beenden von EDOMI kontrolliert beendet wird. Die Funktion "getSysInfo(1)" sorgt dabei bereits für eine Aufrechterhaltung der Datenbank-Verbindung.

              Wichtig:
              Diese Funktion darf ausschließlich in einem EXEC-Script verwendet werden.

              EDIT: $fallback in logic_getInputsQueued() ergänzt.
              Zuletzt geändert von gaert; 08.08.2018, 07:41.
              EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

              Kommentar


                Zitat von gaert Beitrag anzeigen
                Schonmal vorab der vorläufige Endstand...

                Kommentar


                  1.60... läuft.. endlich wieder der grüne Kreis... (ist mir wirklich abgegangen!)
                  Rest zeigt sich mit der Zeit !

                  Vielen Dank

                  Gruß Martin
                  Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                  Kommentar


                    Hi,

                    ich hab 1.60 auf einem EDOMI installiert wo derzeit noch ein Loxone dabei hängt. Dort gab es richtig Probleme mit Fehlern beim KNX. Läuft bisher jetzt ohne Fehler durch, sieht also klasse aus.

                    Zuhause gab es nur alle 2 Tage einen Fehler, dort muss ich dann abwarten.

                    Gruß

                    Kommentar


                      Hi, bei mir funktionier das Monitor Log nicht mehr. Ich habe das gefühl, das dies seit v 1.59 der Fall ist. Hat das sonst noch jemand festgestellt? Oder muss ich das Problem bei mir suchen?

                      Gruess Tom

                      Kommentar


                        Wow, das ging aber schnell. Vielen Dank für das neue Update!
                        Wird direkt installiert und getestet.

                        Gruß
                        Patrick

                        Kommentar


                          Es wäre sehr hilfreich, wenn einige MDT-Router-Nutzer mal auf 1.60 updaten und dann berichten würden - vielleicht sind die Probleme ja dadurch bereits indirekt gelöst.

                          Ich habe das neue KNX-Gateway regelrecht gequält, um Fehler zu provozieren - "leider" ohne Erfolg... Kein einziger Fehler! Und ich habe wirklich mein Bestes gegeben: VM künstlich ausgelastet, im Millisekunden-Takt per Oszi zehntausende Telegramme auf den Bus geschickt, gleichzeitig zig Backups erstellt (Last) usw... Klar, verzögert wurde das Ganze dadurch natürlich schon, aber es traten keine Fehler auf.
                          Zuletzt geändert von gaert; 12.08.2018, 16:35.
                          EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                          Kommentar


                            Ich hab bei mir ein MDT Router verbaut, kann denke ich in paar Tagen eine Rückmeldung dazu geben.

                            Kommentar


                              Hi, ich hab ein MDT IP Interface verbaut. Heute um 15:00 hatte ich mit 1.60 wieder folgenden Fehler im Log. 15:00 wird mein Backup erstellt.

                              Code:
                               
                               2018-08-12 15:00:54	902964	KNX	2038	DE < | TUNNELING_REQUEST / Hinweis: SequenceCounter abweichend (ACK): Ist-Wert=79, Soll-Wert=80 / Raw: 06100420001904614f002900bce0112720150500800000055c	ERROR

                              Kommentar


                                Das ist kein Fehler, sondern ein Hinweis... Und wird immer mal wieder vorkommen, denn dafür ist der SeqCounter ja da (als "Absicherung"). Das Telegramm wird dann ggf. wiederholt.
                                EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                                Kommentar

                                Lädt...
                                X