Ankündigung

Einklappen
Keine Ankündigung bisher.

Diskussionsthread EDOMI-Releases/Updates

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

  • saegefisch
    antwortet
    Hi Christian, fein, ein wirklich hilfreiche Weiterentwicklung. Danke vorab! Gerade weil ich derzeit meine Archive alle überdenke und neu aufbaue.

    Werden die komprimierten Mittelwerte in ein anderes Archiv geschrieben? z.B. vollständig für 2Wochen in ein Stundemittel für 2 Jahre und das in ein Tagesmittel für unendlich, also drei Archive? Oder passiert das im selben Archiv und dann "nur" maxmimal 2-stufig? In dem Beispiel, also 2 Wochen alle Werte, danach für 2 Jahre Stundenmittel und für 3. Stufe müsste man selber ein weiteres Archiv machen (Was absolut problemlos wäre!)?

    Einen Kommentar schreiben:


  • gaert
    antwortet
    So, nach längerer Pause habe ich die Arbeit wieder aufgenommen - wenn auch nur gaaaaanz langsam

    Wie angekündigt gibbet bald eine automatische "Komprimierung" (d.h. Mittelwertbildung) für Datenarchive. Dadurch können ältere Werte automatisch zusammengefasst und die Archive dadurch deutlich geschrumpft werden.

    So in Etwa wird's dann aussehen:

    Bildschirmfoto 2019-02-02 um 09.43.33.png
    Zuletzt geändert von gaert; 02.02.2019, 10:44.

    Einen Kommentar schreiben:


  • hartwigm
    antwortet
    Erinnerungsflexibel ist da Gleiche? dann wäre Trump ja senil

    Einen Kommentar schreiben:


  • EPIX
    antwortet
    gute Idee, aber es heißt nicht "senil" sondern "erinnerungsflexibel"

    Einen Kommentar schreiben:


  • hartwigm
    antwortet
    Feature Request

    ich würde mir gerne bei Aktivieren des Projekt 2 zusätzliche Felder wünschen.

    A.) Versionsnummer idealerweise sollte die um einen einstellbaren Faktor bei jeder Aktivierung hochzählen, aber überschreibbar sein
    B.) Ein Textfeld um die gemachten Änderungen zu dokumentieren

    Ein Fenster um die Historie abzurufen

    Mir rutsch immer mal wieder ein Fehler rein, oftmals stellt sich ein Fehler auch erst unter veränderten Bedingungen heraus, und da würde mir ein solches Tool helfen.

    Einige werden sich noch ein besseres Gedächtnis haben, wie ich insofern könnte man in der Basis.conf ja ein Flag setzen, ob die Abfrage kommen soll.

    Feld könnte ja seniel Ja/Nein heißen!

    Einen Kommentar schreiben:


  • vento66
    antwortet
    Ja, ist natürlich aktuell!

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Du nutzt aber schon die neueste Version (1.62), oder? Denn davor war ggf. noch ein Bug in EDOMI... (habe diverse Parameter von file_getcontents() verwechselt).

    Einen Kommentar schreiben:


  • vento66
    antwortet
    Nö, das bringt keine Änderung, hab ich schon probiert.

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Hab's gerade nochmals getestet - funktioniert bei mir ohne Probleme, d.h. "Queue Running" geht sofort wieder auf 0:

    Bildschirmfoto 2019-01-12 um 11.02.20.png


    Das expliziete Abschalten des Wartens ist in der aktuellen Version nicht vorgesehen (früher gab's das mal). Ich glaub' wenn das Antwort-KO leer ist, wird nicht abgewartet (weiß ich aber nicht so genau aus'm Kopp).

    Einen Kommentar schreiben:


  • vento66
    antwortet
    Nö. einfacher http-get sobald ich den auslöse, geht Queue running auf 1 und bleibt dort. Wo kann ich denn das Warten auf Rückmeldung abstellen?

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Konnte ich bei mir noch nicht feststellen - vielleicht warten Deine Requests auf eine Antwort und bekommen keine?

    Einen Kommentar schreiben:


  • vento66
    antwortet
    gaert Kann es sein, das http requests die gesendet werden im Queue bleiben? Ich hab das Phänomän jetzt auf 2 Systemen, das die Requests zwar abgesetzt werden, aber in der Queue bleiben. Ich bekomme dann immer nach 600 Sekunden einen Fehler, das der Befehl aus der Queue gelöscht wurde. Ausserdem ist solange das senden weiterer Requests nicht möglich.

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Der LBS ist quasi auf der Bettkannte entstanden (funktioniert aber) - daher ist er nicht besonders ausgeklügelt. Aber für viele Aufgabenstellungen ist er recht gut geeignet, denn so spart man u.U. einige LBSe ein...

    Einen Kommentar schreiben:


  • KFlo
    antwortet
    Oh, Prima! Sowas hatte ich mir auch überlegt in nächster Zeit zu machen. Vielen Dank!

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Hier mal ein kleiner LBS zur Berechnung beliebiger mathematischer Ausdrücke - dieser wird demnächst als LBS 15000000 integriert sein:

    PHP-Code:
    ###[DEF]###
    [name        =Formel            ]

    [e#1 IMPORTANT    =Formel        ]
    [e#2 OPTION        =Modus    #init=1    ]
    [e#3 TRIGGER=$x                ]
    [e#4 TRIGGER=$a                ]
    [e#5 TRIGGER=$b                ]
    [e#6 TRIGGER=$c                ]
    [e#7 TRIGGER=$d                ]
    [e#8 TRIGGER=$e                ]

    [a#1        =Ergebnis        ]
    [a#2        =Fehler            ]
    ###[/DEF]###


    ###[HELP]###
    Dieser Baustein setzt Variablen bzw. Konstanten in eine beliebige mathematische Formel ein. Dabei ist eine gültige PHP-Syntax zu verwenden.

    An E1 wird eine gültige mathematische Formel (PHP) erwartet, z.B. "$a-$x+$b" (ohne ""). Sämtliche PHP-Funktionen stehen grundsätzlich zu Verfügung, daher ist mit größter Sorgfalt zu arbeiten (s.u.).
    Auch Bedingungen wie "(($x>=1)?1:0)" sind möglich.

    Der Baustein wird bei jeder Änderung an E1 bzw. E3..E8 getriggert und führt eine erneute Berechnung aus. Wird E1 [leer] belassen, wird keine Berechnung ausgeführt.
    Bei einem Fehler wie "$x/0" wird i.d.R. A1 auf [leer] gesetzt (A2 bleibt unverändert). Ein Fehler in der Formel an E1 führt i.d.R. dazu, dass A2 auf 1 gesetzt wird (z.B. E1=";").
    Ein syntaktischer Fehler an E1 wie z.B. "$x+blablabla()" führt je nach Modus (E2) zum Absturz(!) von EDOMI (s.u.).

    Wird E2 auf 0 gesetzt, arbeitet der Baustein direkt in der Logik-Engine. Eine fehlerhafte Formel an E1 kann daher EDOMI zu Absturz bringen!
    Wird E2 hingegen auf 1 gesetzt, wird der Baustein in einem eigenen PHP-Prozess (EXEC) ausgeführt. Eine fehlerhafte Formel an E1 führt daher nicht zum Absturz von EDOMI, jedoch arbeitet der Baustein weniger performant.

    Empfehlung:
    Um Abstürze während der Entwicklung einer Formel zu vermeiden, kann E2 zunächst auf 1 gesetzt werden. Erst wenn die Berechnung stabil ausgeführt wird, kann E2 auf 0 gesetzt werden.

    Wichtig:
    Die Berechnung wird mittels der PHP-Funktion "eval()" ausgeführt, daher sind sämtliche Parameter mit größter Sorgfalt anzugeben. Eine Überprüfung der Angaben findet nicht(!) statt!


    E1: Formel, z.B. "($x+($a*2))*pow($b,2)"
    E2: Modus: 0=LBS (performanter), 1=EXEC (sicherer)
    E3..E8: Variablen $x bzw. $a..$e

    A1: Ergebnis der Berechnung oder [leer]
    A2: wird bei einem Fehler auf 1 gesetzt (aber niemals wieder auf 0)
    ###[/HELP]###


    ###[LBS]###
    <?
    function LB_LBSID($id) {
        if ($E=logic_getInputs($id)) {
            if (!isEmpty($E[1]['value']) && ($E[1]['refresh']==1 || $E[3]['refresh']==1 || $E[4]['refresh']==1 || $E[5]['refresh']==1 || $E[6]['refresh']==1 || $E[7]['refresh']==1 || $E[8]['refresh']==1)) {

                if ($E[2]['value']==1) {
                    logic_callExec(LBSID,$id,true);

                } else {    
                    $f=$E[1]['value'];
                    $x=$E[3]['value'];
                    $a=$E[4]['value'];
                    $b=$E[5]['value'];
                    $c=$E[6]['value'];
                    $d=$E[7]['value'];
                    $e=$E[8]['value'];
                
                    if (!isEmpty($f)) {
                        $r='';
                        $rr=eval('$r='.$f.';return true;');            
                        if ($rr===true) {
                            logic_setOutput($id,1,$r);
                        } else {
                            logic_setOutput($id,2,1);
                        }
                    }
                }
            }
        }
    }
    ?>
    ###[/LBS]###


    ###[EXEC]###
    <?
    require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");

    sql_connect();

    if ($E=logic_getInputs($id)) {
        $f=$E[1]['value'];
        $x=$E[3]['value'];
        $a=$E[4]['value'];
        $b=$E[5]['value'];
        $c=$E[6]['value'];
        $d=$E[7]['value'];
        $e=$E[8]['value'];

        if (!isEmpty($f)) {
            $r='';
            $rr=eval('$r='.$f.';return true;');
            if ($rr===true) {
                logic_setOutput($id,1,$r);
            } else {
                logic_setOutput($id,2,1);
            }
        }
    }

    sql_disconnect();
    ?>
    ###[/EXEC]###

    Einen Kommentar schreiben:

Lädt...
X