Ankündigung

Einklappen
Keine Ankündigung bisher.

EDOMI - LBS - Diskussion

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

    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") ?
    Danke und LG, Dariusz
    GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

    Kommentar


      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)..."

      Kommentar


        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...
        EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

        Kommentar


          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 !!
          Danke und LG, Dariusz
          GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

          Kommentar


            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

            Kommentar


              Danke, dann werde ich mal mit return() beginnen :-)
              Sollte es sich herausstellen, dass der Code besser im EXEC-Teil aufgehoben ist, dann ….
              Danke und LG, Dariusz
              GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

              Kommentar


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

                Kommentar


                  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...).
                  EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                  Kommentar


                    Hi,

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


                    Gruß

                    Kommentar


                      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?

                      Kommentar


                        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ß

                        Kommentar


                          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}
                          EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                          Kommentar


                            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ß

                            Kommentar


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

                              Kommentar


                                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?

                                Kommentar

                                Lädt...
                                X