Ankündigung

Einklappen

Sammelbestellung ETS6 Vollversionen aktiv!

Sammelbestellung für ETS6 Vollversionen (Prof., Home, Lite) mit 40% Rabatt aktiv! Infos im Forum!
Mehr anzeigen
Weniger anzeigen

LBS (Logikbausteine): Updates und Changelogs

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

  • wintermute
    antwortet
    19000155, Behaglichkeitsfeld nach Frank, Version 0.4:
    -Hilfe neu formatiert
    -Ausgang zur direkten Ausgabe auf der Visu hinzugefügt
    -fehlerhafte Init-Werte an E4..6 korrigiert
    https://service.knx-user-forum.de/?c...ad&id=19000155


    19000360, Wert begrenzen, Version 0.1:
    -initiale Version
    https://service.knx-user-forum.de/?c...ad&id=19000360


    Und, weil ich entweder Tomaten auf den Augen habe oder es das wirklich noch nicht gegeben hat:
    19000361, Wert runden, Version 0.1:
    -initiale Version
    https://service.knx-user-forum.de/?c...ad&id=19000361
    Zuletzt geändert von wintermute; 16.05.2016, 16:57. Grund: falsche Version von 19000155 hochgeladen, Versionsnummer daher nochmals erhoeht

    Einen Kommentar schreiben:


  • panzaeron
    antwortet
    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.

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • panzaeron
    antwortet
    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

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Update:
    - LBS19000300: Onkyo AVR: Unterstützt jetzt Start/Stop via E1 und Custom Logfile.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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


    Einen Kommentar schreiben:


  • gaert
    antwortet
    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.

    Einen Kommentar schreiben:


  • panzaeron
    antwortet
    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

    Einen Kommentar schreiben:


  • panzaeron
    antwortet
    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.

    Einen Kommentar schreiben:


  • gaert
    antwortet
    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 &ne;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 &ne;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 &ne;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.

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    19000153, Zeitformatierung/Addition, Version 0.5:
    -Locale und Zeitzonen Einstellungen entfernt
    -Log-Ausgaben eingedeutscht

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

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    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

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    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

    Einen Kommentar schreiben:


  • Winni
    antwortet
    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*

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    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

    Einen Kommentar schreiben:

Lädt...
X