Ankündigung

Einklappen
Keine Ankündigung bisher.

EDOMI - LBS - Diskussion

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

  • nno
    antwortet
    Hallo zusammen,

    kurze Frage zum EXEC Teil eines LBS. Wenn man einen neuen LBS mit Vorlage "LBS mit EXEC-Script" erstellt, findet sich im EXEC Teil folgendes Code Template:

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

    //bei Bedarf kann hier die maximale Ausführungszeit des Scripts angepasst werden (Default: 30 Sekunden)
    //Beispiele:
    //set_time_limit(0);    //Script soll unendlich laufen (kein Timeout)
    //set_time_limit(60);    //Script soll maximal 60 Sekunden laufen

    sql_connect();


    //eigener Code...


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

    Sind sql_connect(); und sql_disconnect(); zwingend notwendig? Wenn ja warum? Oder kann ich den Teil rausnehmen wenn ich keine eigenen Daten in die Datenbank schreiben / lesen möchte?

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    PHP-Code:
    If (...) then {...} else {....} 

    Einen Kommentar schreiben:


  • benji
    antwortet
    Hi,


    gibt es eine Möglichkeit im EXEC Abschnitt zu springen in Abhängigkeit von einem Eingang?? Also sagen wir E3=1 ---> Teil1 im Exec abarbeiten, E3=2--->Teil2 im Exec abarbeiten.

    Gruß

    Einen Kommentar schreiben:


  • gaert
    antwortet
    OT: Übrigens gibt's im nächsten Update einen LBS, der KO-Werte in einem String "interpretiert":

    Aus "IP-Adresse ist {3} - und das um {5} Uhr!" wird dann "IP-Adresse ist 1.2.3.4 - und das um 12:00:59 Uhr!". Das Ganze funktioniert wie an anderer Stelle üblich mit {KO-ID} bzw. mit der Angabe einer GA {x/y/z}

    Einen Kommentar schreiben:


  • benji
    antwortet
    Ja stimmt kann man damit machen, dachte nur an einen kompakten Baustein. ZSU muss ich ja zwei anlegen, Tagesimpuls hab ich ja in System KO'S

    Danke

    Gruß

    Einen Kommentar schreiben:


  • KNXFan1970
    antwortet
    Zitat von benji Beitrag anzeigen
    Hi,

    ich bräuchte einen LBS welcher mir einen Tages, Monats und Jahresimpuls sendet. Hat jemand sowas am start???


    Gruß
    Warum nutzt Du nicht die ZSU?

    Einen Kommentar schreiben:


  • benji
    antwortet
    Hi,

    ich bräuchte einen LBS welcher mir einen Tages, Monats und Jahresimpuls sendet. Hat jemand sowas am start???


    Gruß

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Richtig... curl & Co. sind böse im LBS-Abschnitt Die Logik-Engine funktioniert in Etwa wie eine SPS, d.h. alles zeitkritische muss ausgelagert werden. Natürlich ist im Grunde alles irgendwie zeitkritisch - aber Netzwerkkram ist natürlich um Größenordnungen zeitkritischer, als z.B. ein paar IFs Vor allem wenn noch "Unzulänglichkeiten" hinzukommen (Server nicht erreichbar, oder er antwortet nicht sofort...).

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Ich bin da stillschweigend von ausgegangen... wegen curl und Netzwerkaktivitaet und boese im LBS-Teil und so...

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Danke, dann werde ich mal mit return() beginnen :-)
    Sollte es sich herausstellen, dass der Code besser im EXEC-Teil aufgehoben ist, dann ….

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von coliflower Beitrag anzeigen
    OK, dass heißt, wenn ich den den cURL, get_header() und file_get_contents() in den EXEC-Teil verbanne, dann ist exit() kein Problem ?
    „return“ werde ich auf php.net nachlesen (deren PROSA ist aber schrecklich ;-)
    exit() beendet das laufende Programm, für den EXEC-Teil bedeutet das, dass der LBS beendet wird (der ist in dem Fall ja ein eigenstaendiger Prozess). Im LBS-Teil bedeutet das, dass die Logik-Engine beendet wird, da der LBS-Teil eine Funktion der Logik-Engine ist.
    return() beendet eine Funktion, also sollte damit im LBS-Teil ebenfalls der Baustein beendet werden.

    Zitat von coliflower Beitrag anzeigen
    Gäbe es eine „bessere“ Lösung als cURL um den WebServer abzufragen ob dieser überhaupt online ist ?
    Bestimmt... gibt ja 1000 moegliche Loesungen
    Ich glaube André hatte mal was gepostet... ich selber benutze kein cURL weil es nicht auf allen Installationen vorhanden ist. Ich mache sowas nach Moeglichkeit immer gernen mit den minimalsten Voraussetzungen - was aber nicht immer komfortabel ist. Drum ist meine Loesung auch sicher nicht so rund wie die von André (falls das André war, ich bin nicht sicher).

    Zitat von coliflower Beitrag anzeigen
    Hättest du einen Vorschlag wie es das besser zu lösen wäre oder ist das eh unwichtig wenn ich den Teil des Codes in den EXEXC-Teil verschieben sollte (weil eleganter) ?
    exit() im EXEC-Teil beendet den LBS... tut also was es soll

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Zitat von wintermute Beitrag anzeigen
    Ja... wenn man mehrere Sachen parallel macht (oder machen will)
    exit ist vllt wirklich keine gute Idee (zumindest wenn es nicht im EXEC-Teil ist), dann vllt stattdessen return oder so.
    OK, dass heißt, wenn ich den den cURL, get_header() und file_get_contents() in den EXEC-Teil verbanne, dann ist exit() kein Problem ?
    „return“ werde ich auf php.net nachlesen (deren PROSA ist aber schrecklich ;-)

    Zitat von wintermute Beitrag anzeigen
    Was curl angeht, damit arbeite ich fuer gewoehnlich nicht, hab die Syntax nicht im Kopf. Aber aus dem Bauch raus wuerde ich sagen, das kommt unkommentiert vor das "if (!$re)..."
    Gäbe es eine „bessere“ Lösung als cURL um den WebServer abzufragen ob dieser überhaupt online ist ?

    Zitat von gaert Beitrag anzeigen
    exit() ist in der Tat keine gute Idee im LBS-Abschnitt - dann wird der gesamte Logik-Prozess beendet Das prüft EDOMI natürlich und startet dann neu…
    Hättest du einen Vorschlag wie es das besser zu lösen wäre oder ist das eh unwichtig wenn ich den Teil des Codes in den EXEXC-Teil verschieben sollte (weil eleganter) ?


    Wie immer, danke vorab !!

    Einen Kommentar schreiben:


  • gaert
    antwortet
    exit() ist in der Tat keine gute Idee im LBS-Abschnitt - dann wird der gesamte Logik-Prozess beendet Das prüft EDOMI natürlich und startet dann neu...

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Ja... wenn man mehrere Sachen parallel macht (oder machen will)
    exit ist vllt wirklich keine gute Idee (zumindest wenn es nicht im EXEC-Teil ist), dann vllt stattdessen return oder so.

    Was curl angeht, damit arbeite ich fuer gewoehnlich nicht, hab die Syntax nicht im Kopf. Aber aus dem Bauch raus wuerde ich sagen, das kommt unkommentiert vor das "if (!$re)..."

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Vielleicht bilde ich mir das nur ein aber ich hatte mal mit EXIT in einem LBS "gearbeitet" und Edomi ständig rebootet bis ich das EXIT rausnahn ... hmmmm, werde es nochmal versuchen - DANKE.

    Ach ja, ich habe das curl_close($ch) auskommentiert ... Wäre es so und an dieser Stelle richitg (vor "catch") ?

    Einen Kommentar schreiben:

Lädt...
X