Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS (Logikbausteine): Updates und Changelogs

Einklappen
Das ist ein wichtiges Thema.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #31
    LBS19000120 v1.2 Fensterstatus erweitert auf zwei Flügel

    Kommentar


      #32
      19000153, Zeitformatierung/Addition, Version 0.4:
      -Möglichkeit zum Addieren/Subtrahieren von Werten
      -Umstellung auf Custom Logging (es wird eine Edomi Version >= 1.32 benötigt)

      https://service.knx-user-forum.de/?c...ad&id=19000153

      Kommentar


        #33
        LBS19000335 v0.1beta Codeschloss *NEU* (nur ab 1.32 wegen LOG-Files)
        LBS19000336 v0.1 DPT5.001 Hilfe 0...100% von 0...255 *NEU* für die, die nicht alles in der VISU umschlüsseln wollen
        LBS19000337 v0.1 Betriebsstundenzähler *NEU*

        Kommentar


          #34
          19000151, Sonnenstand, Version 0.4:
          -auf Custom-Logs umgestellt (daher wird eine Edomi Version >=1.32 benötigt)
          -Zeitzonen-Eingang entfernt
          -Log-Level Eingang zugefügt

          https://service.knx-user-forum.de/?c...ad&id=19000151

          Kommentar


            #35
            19000152, Zeitvergleich, Version 0.3:
            -auf Custom-Logs umgestellt (daher wird eine Edomi Version >=1.32 benötigt)
            -Zeitzonen-Eingang entfernt
            -Log-Level Eingang zugefügt

            https://service.knx-user-forum.de/?c...ad&id=19000152

            Kommentar


              #36
              19000153, Zeitformatierung/Addition, Version 0.5:
              -Locale und Zeitzonen Einstellungen entfernt
              -Log-Ausgaben eingedeutscht

              https://service.knx-user-forum.de/?c...ad&id=19000153

              Kommentar


                #37
                Passt hier zwar nicht so wirklich hin, aber ich habe einen "Schaltfolge"-LBS entwickelt. Dieser wird als 13000026 im nächsten Update verfügbar sein - wer ihn schon jetzt testen möchte...

                Anwendung z.B. zum Toggeln von 2 Szenen (per Tastsensor: Drücken=Szene "Ein", nochmal drücken=Szene "Aus").

                EDIT:
                E3 und E4 hinzugefügt

                PHP-Code:
                ###[DEF]###
                [name        =Schaltfolge 1..10-fach    ]

                [e#1        =Trigger ≠0     ]
                [e#2        =Ausgänge 1..10 #init=1      ]
                [e#3        =Wert Aus #init=0    ]
                [e#4        =Wert Ein #init=1    ]

                [a#1        =A1        ]
                [a#2        =A2        ]
                [a#3        =A3        ]
                [a#4        =A4        ]
                [a#5        =A5        ]
                [a#6        =A6        ]
                [a#7        =A7        ]
                [a#8        =A8        ]
                [a#9        =A9        ]
                [a#10        =A10    ]

                [v#1        =0        ]
                ###[/DEF]###


                ###[HELP]###
                Bei jedem Triggern des Bausteins wird ein Ausgang auf den Wert an E4 und der vorherige Ausgang auf den Wert an E3 gesetzt.

                Jedes neue Telegramm ≠0 an E1 triggert den Baustein. An E2 muss die Anzahl der gewünschten Ausgänge im Bereich von 1..10 angegeben werden.

                Beispiel:
                Die Anzahl der Ausgänge beträgt 3 (E2=3). E3 ist 0, E4 ist 1.
                Bei ersten Triggern des Bausteins (E1) wird A1=1 gesetzt. Bei nächsten Triggern wird A1=0 und A2=1 gesetzt. Beim nächsten Triggern wird A2=0 und A3=1 gesetzt.
                Erfolgt nun ein weiteres Triggern, wird A3=0 und A1=1 gesetzt - der Zyklus beginnt also von vorn.
                Die Schaltfolge ist demnach:
                1. Trigger: A1=1
                2. Trigger: A2=1, A1=0
                3. Trigger: A3=1, A2=0
                4. Trigger: A1=1, A3=0 (der Zyklus beginnt von vorn)
                ...

                Sonderfall: Die Anzahl der Ausgänge beträgt 1 (E2=1). E3 ist 0, E4 ist 1.
                In diesem Fall wird A1 "getoggelt", d.h. A1 wechselt bei jedem Triggern des Bausteins zwischen 1 und 0:
                1. Trigger: A1=1
                2. Trigger: A1=0
                3. Trigger: A1=1
                ...

                Wenn die Anzahl der Ausgänge (E2) mit einen ungültigen Wert definiert ist, ignoriert der Baustein jeden Trigger und belässt alle Ausgänge unverändert.

                E1: Trigger (jedes neue Telegramm ≠0 triggert den Baustein)
                E2: Anzahl der Ausgänge (1..10)
                E3: Wert für "Aus": Der vorherige Ausgang wird auf diesen Wert gesetzt. Ist E3=[leer] wird der Ausgang nicht verändert.
                E4: Wert für "Ein": Der aktuelle Ausgang wird auf diesen Wert gesetzt. Ist E4=[leer] wird der Ausgang nicht verändert.
                A1..A10: Ausgänge (wechseln zwischen Wert an E3 und Wert an E4)
                ###[/HELP]###


                ###[LBS]###
                <?
                function LB_LBSID($id) {
                    if ($E=getLogicEingangDataAll($id)) {

                        if ($E[1]['value']!=0 && $E[1]['refresh']==1 && $E[2]['value']>=1 && $E[2]['value']<=10) {
                            $V1=getLogicElementVar($id,1);

                            if ($E[2]['value']==1) {
                                //Sonderfall: Nur A1 toggeln
                                if ($V1==0) {
                                    $V1=1;
                                    if (!isEmpty($E[4]['value'])) {setLogicLinkAusgang($id,1,$E[4]['value']);}
                                } else {
                                    $V1=0;
                                    if (!isEmpty($E[3]['value'])) {setLogicLinkAusgang($id,1,$E[3]['value']);}
                                }
                            } else {
                                if ($V1>0 && !isEmpty($E[3]['value'])) {setLogicLinkAusgang($id,$V1,$E[3]['value']);}
                                if ($V1<$E[2]['value']) {$V1++;} else {$V1=1;}
                                if (!isEmpty($E[4]['value'])) {setLogicLinkAusgang($id,$V1,$E[4]['value']);}
                            }

                            setLogicElementVar($id,1,$V1);
                        }

                    }
                }
                ?>
                ###[/LBS]###


                ###[EXEC]###
                <?
                ?>
                ###[/EXEC]###
                Zuletzt geändert von gaert; 29.04.2016, 08:10.
                EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                Kommentar


                  #38
                  LBS19000122 v1.7 Steuerung von VLC
                  • Fehler bei Talk Over behoben, unter manchen (seltenen) Bedingungen wurde die Talk Over URL nicht wieder aus der Playlist entfernt.
                  • Wenn die Wiedergabe nicht läuft, wird bei Talk Over die Wiedergabe der URL erst nach 4s gestartet, damit eine Verstärker ggf. eingeschaltet werden kann.
                  • Es kann jetzt eine Default-Lautstärke für Talk Over Meldungen vorgegeben werden, dadurch verschieben sich die ersten Eingänge und müssen angepasst werden.
                  • Die Lautstärke wird mit 1s Verzögerung auf den Bus gegeben, vorher wurden alle Werte weitergegeben was eine kontrollierte Einstellung sehr schwierig machte, da VLC zu träge reagiert. Jetzt wird nur der letzte Wert nach 1s an VLC gesendet, die vorherigen werden verworfen.
                  • Log-Datei auf das neue CustomLog überführt, normalerweise aus (0).
                  • Beispiel Startscript (/etc/init.d/vlc) überarbeitet, aus der VLC-Konfigurationsdatei werden jetzt die Start-Playlist und PID-Datei ausgelesen und verwendet.

                  Kommentar


                    #39
                    LBS19000121 V1.1 Steuerung eines Rollladens in Abhängigkeit verschiedener Bedingungen
                    • Eine Ansteuerung des Rollladens/Jalousie bei Änderung der Fensterposition erfolgt erst nach 1s, da ein Wechsel von geschlossen, über gekippt nach drehgeöffnet zu kurzen Bewegungen des Behangs führte
                    • Sperrzeit bei manueller Bedienung der Rollläden/Jalousie kann jetzt angegeben werden, während der Sperre haben Automatik-Befehle keine Auswirkung, Alarm-Befehle werden aber immer ausgeführt
                    • Verschiedene weitere Optimierungen

                    Kommentar


                      #40
                      Und noch einer - wird als LBS 15000100 demnächst Einzug halten: Der LBS ermittelt quasi die "Unruhe" eines Signals, d.h. ähnlich einem Watchdog-Baustein wird ein (gewichteter) Wert aufaddiert und zyklisch reduziert. Das Ergebnis ist ein Maß der "Unruhe/Entropie" eines Ereignisses, z.B. eines BWMs.

                      EDIT: Neue Version

                      PHP-Code:
                      ###[DEF]###
                      [name        =Entropie (Unruhe)        ]

                      [e#1        =Signal &gt;0             ]
                      [e#2        =Intervall (s) #init=30    ]
                      [e#3        =Reduktion #init=1        ]
                      [e#4        =Reset                     ]

                      [a#1        =Entropie                ]

                      [v#1        =0                        ]    Timer
                      [v#2        =0                        ]    Zählerstand
                      [v#3        =0                        ]    SBC
                      ###[/DEF]###


                      ###[HELP]###
                      Dieser Baustein ermittelt ein Maß für die "Unruhe" (Entropie) eines Signals.

                      Jedes neues Telegramm &gt;0 an E1 startet den Baustein, bzw. triggert den Baustein erneut.
                      Der Wert an E1 gibt dabei die Gewichtung an: Je größer der Wert, desto "unruhiger" wird das Ergebnis sein.
                      Nach Ablauf des Intervalls an E2 wird die Summe aller bislang aufgelaufenen Werte um E3 reduziert, d.h. das Ergebnis (A1) wird im Laufe der Zeit immer kleiner ("ruhiger").

                      Erreicht das Ergebnis den Wert 0, wird der Baustein gestoppt (wird jedoch bei einem erneuten Trigger automatisch wieder gestartet).

                      Während der Baustein arbeitet, kann über E4 ein Reset ausgelöst werden: Der Baustein stoppt unmittelbar und setzt das Ergbnis auf 0.

                      Anwendungsbeispiel:
                      Ein (oder mehrere) Bewegungsmelder triggert E1 bei jeder Bewegung und erhöht somit das Maß der Unruhe. Wird für einen definierten Zeitraum keine Bewegung mehr registriert, erreicht die "Unruhe" den Wert 0. Dies kann z.B. als "Abwesenheit" interpretiert werden.

                      Hinweis:
                      Mehrere Trigger (z.B. Bewegungsmelder) mit unterschiedlichen Gewichtungen können z.B. mit einem Baustein "Multiplikation" (Gewichtung) über einen Baustein "Klemme" mit E1 verbunden werden.

                      E1: Jedes neue Telegramm &gt;0 triggert den LBS. Der Wert an E1 bestimmt zudem die Gewichtung.
                      E2: Intervall (s): Nach Ablauf dieses Intervalls wird das Ergebnis ("Unruhe") um 1 reduziert
                      E3: Dieser Wert wird zu jedem Intervall (E2) vom internen Zählerstand abgezogen
                      E4: Ein neues Telegramm &ne;0 setzt den (laufenden) Baustein zurück (A1=0)
                      A1: Ergebnis 0..oo als Maß der "Unruhe": Je größer der Wert, desto "unruhiger". Achtung: A1 wird nur bei Änderung gesetzt (SBC)!
                      ###[/HELP]###


                      ###[LBS]###
                      <?
                      function LB_LBSID($id) {
                          if (($E=getLogicEingangDataAll($id)) && ($V=getLogicElementVarAll($id))) {

                              if ($E[1]['value']>0 && $E[1]['refresh']==1) {
                                  $V[2]+=$E[1]['value'];
                                  if ($V[2]!=$V[3]) {setLogicLinkAusgang($id,1,$V[2]);}
                                  $V[3]=$V[2];

                                  if (getLogicElementStatus($id)==0) {
                                      $V[1]=getMicrotime()+$E[2]['value'];
                                      setLogicElementStatus($id,1,$E[2]['value']*1000);
                                  }
                              }

                              if (getLogicElementStatus($id)!=0) {

                                  if ($E[4]['value']!=0 && $E[4]['refresh']==1) {
                                      $V[1]=0;
                                      $V[2]=0;
                                  }

                                  if (getMicrotime()>=$V[1]) {
                                      $V[1]=getMicrotime()+$E[2]['value'];
                                      $V[2]-=$E[3]['value'];
                                      if ($V[2]>0) {
                                          setLogicElementStatus($id,1,$E[2]['value']*1000);
                                      } else {
                                          $V[2]=0;
                                          setLogicElementStatus($id,0);
                                      }
                                      if ($V[2]!=$V[3]) {setLogicLinkAusgang($id,1,$V[2]);}
                                      $V[3]=$V[2];
                                  }

                                  setLogicElementVar($id,1,$V[1]);
                                  setLogicElementVar($id,2,$V[2]);
                                  setLogicElementVar($id,3,$V[3]);
                                  
                              }
                              
                          }
                      }
                      ?>
                      ###[/LBS]###


                      ###[EXEC]###
                      <?

                      ?>
                      ###[/EXEC]###
                      Zuletzt geändert von gaert; 30.04.2016, 20:25.
                      EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                      Kommentar


                        #41
                        Update:
                        - LBS19000304 - Telegram Receiver v0.1.1: Neuer Eingang E6 zum Reset des Bausteins

                        New:
                        - LBS19000306 - SSH2 Baustein v0.1: Ausführen von Befehlen auf remote systemen via SSH2 public key authentication
                        - LBS19000307 - LG TV RS232C: Steuerung eines LG TV mit RS232C Schnittstelle via TCP/IP-RS232-Konverter


                        Kommentar


                          #42
                          Update:
                          - LBS19000300: Onkyo AVR: Unterstützt jetzt Start/Stop via E1 und Custom Logfile.

                          Kommentar


                            #43
                            Vier neue LBS die die Min- und Max-Funktion nachbilden:
                            - LBS19000125 - Max 4fach 0.1: Ermittelt aus vier Eingangswerten die größte Zahl und gibt diese aus
                            - LBS19000126 - Max 8fach 0.1: Ermittelt aus acht Eingangswerten die größte Zahl und gibt diese aus
                            - LBS19000127 - Min 4fach 0.1: Ermittelt aus vier Eingangswerten die kleinste Zahl und gibt diese aus
                            - LBS19000128 - Min 8fach 0.1: Ermittelt aus acht Eingangswerten die kleinste Zahl und gibt diese aus

                            Kommentar


                              #44
                              Neu:
                              LBS19000370: Asterisk Command
                              Zur Ausführung von Befehlen auf einem Asterisk Server (VOIP/SIP/ISDN/etc.) via Asterisk Call Manager API

                              Kommentar


                                #45
                                Vier neue LBS die grundlegende Berechnungen durchführen. Bei allen vier können einfache Bedingungen angegeben werden, z. B: ">=10", "!=1" oder "<4".
                                - LBS19000390 - Anzahl 4fach 0.1: Zählt die anliegenden Werte an vier Eingängen.
                                - LBS19000391 - Anzahl 8fach 0.1: Zählt die anliegenden Werte an acht Eingängen.
                                - LBS19000392 - Mittelwert 4fach 0.1: Berechnet den Mittelwert aus den anliegenden Werte an vier Eingängen.
                                - LBS19000393 - Mittelwert 8fach 0.1: Berechnet den Mittelwert aus den anliegenden Werten an acht Eingängen.

                                Kommentar

                                Lädt...
                                X