Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehlerhafter LBS: PHP-Anfängerfrage

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

    Fehlerhafter LBS: PHP-Anfängerfrage

    Hallo,

    ich habe einen LBS geschrieben (bzw. versucht, zu Schreiben), um die abs. Luftfeuchte in die relative Luftfeuchte (auf Meereshöhe) umzurechnen.
    mein 1. LBS-Versuch- bitte seid milde )

    Trotz pos. Test in der Sandbox kann ich den LBS wg. Fehlern nicht hochladen.



    PHP-Code:
    ###[DEF]###
    [name        =    Luftdruck abs -> rel. (0.1) ]

    [e#1  TRIGGER    = Temperatur        ]
    [e#2  TRIGGER    = Luftdruck    (abs.)  ]
    [e#3  TRIGGER    = Messhöhe    #init = 349   ]

    [a#1            = Luftdruck (rel.)    ]

    ###[/DEF]###

    ###[LBS]###

    <?
    function LB_LBSID($id) {
        if ($E=getlogicEingangDataAll($id)) {
            if ($E[2]['refresh']==1) {
                logic_setOutput($id,1,LBS_LBSID_DRUCK($E));
                }
        }
    }

    function LBS_LBSID_DAMPFDRUCK($E) {
        if ($E[1]['value']<9.1) {
            return (5.6402*(-0.0916 + exp(0.06*$E[1])));
        } else {
            return (18.2194*(1.0463 - exp(-0.0666*$E[1])));
        }
    }

    function LBS_LBSID_DRUCK ($E) {
        return ($E[2]*exp($E[3]*9.80665/(287.05*(273.15+$E[1]+0.12*$LBS_LBSID_DAMPFDRUCK($E)+0.0065*$E[3]/2))));
    }
    ?>
    ###[/LBS]###

    ###[EXEC]###
    <?
    ?>
    ###[/EXEC]###

    Wer kann mir helfen.-- sicherlich nur ein Anfängerproblem ?

    Danke
    Andreas
    Angehängte Dateien
    Zuletzt geändert von ak68; 11.07.2018, 06:01.

    #2
    Hi Andreas,

    da fehlt hinter den "$E[x]" an einigen Stellen das "['value']"... ich weiss nicht ob es daran liegt, ist mir nur beim "Ueberfliegen" aufgefallen.
    Eigentlich aber wichtiger: die Funktion "getlogicEingangDataAll" ist so vom Erschaffer nicht vorgesehen, da muss das erste "L" gross geschrieben werden. Oder noch besser: gleich logic_getInputs() verwenden - weil die andere "deprecated" ist!

    Generell waer das aber sinnvoller den LBS als Code und nicht als Bild zu posten, dann koennte man das naemlich einfach nachstellen ohne alles abtippen zu muessen

    Interessieren taet mich noch: wofuer brauchst du die Umrechnung von absolut nach relativ? Meist wird doch die Gegenrichtung gebraucht

    HTH :: Michael

    Kommentar


      #3
      Zitat von wintermute Beitrag anzeigen
      Hi Andreas,

      da fehlt hinter den "$E[x]" an einigen Stellen das "['value']"... ich weiss nicht ob es daran liegt, ist mir nur beim "Ueberfliegen" aufgefallen.
      Eigentlich aber wichtiger: die Funktion "getlogicEingangDataAll" ist so vom Erschaffer nicht vorgesehen, da muss das erste "L" gross geschrieben werden. Oder noch besser: gleich logic_getInputs() verwenden - weil die andere "deprecated" ist!
      Danke Michael, werde ich testen !


      Zitat von wintermute Beitrag anzeigen

      Interessieren taet mich noch: wofuer brauchst du die Umrechnung von absolut nach relativ? Meist wird doch die Gegenrichtung gebraucht

      HTH :: Michael
      Weil meine neue Wetterstation (Jung 2225) nur den abs. Luftdruck auswirft und NICHT den relativen (auf Meereshöhe berechneten) Luftdruck !

      Ich glaube, eine Umrechnung in einem eigenen LBS wäre flexibler als Deinen Wetterbaustein anzupassen, da die umgekehrte Umrechnung sicherlich häufiger ist !

      Danke
      Andreas


      Kommentar


        #4
        Habe jetzt den LBS entsprechend angepasst- ohne Erfolg: Fehler beim Hochladen, Sandbox erkennt keinen Syntax-Error.

        PHP-Code:
        ###[DEF]###
        [name        =    Luftdruck abs -> rel. (0.1) ]

        [e#1  TRIGGER    = Temperatur        ]
        [e#2  TRIGGER    = Luftdruck    (abs.)  ]
        [e#3  TRIGGER    = Messh&ouml;he    #init = 349   ]

        [a#1            = Luftdruck (rel.)    ]

        ###[/DEF]###

        ###[LBS]###

        <?
        function LB_LBSID($id) {
            if ($E=logic_getInputs($id)) {
                if ($E[2]['refresh']==1) {
                    logic_setOutput($id,1,LBS_LBSID_DRUCK($E));
                    }
            }
        }

        function LBS_LBSID_DAMPFDRUCK($E) {
            if ($E[1]['value']<9.1) {
                return (5.6402*(-0.0916 + exp(0.06*$E[1]['value'])));
            } else {
                return (18.2194*(1.0463 - exp(-0.0666*$E[1]['value'])));
            }
        }

        function LBS_LBSID_DRUCK ($E) {
            return ($E[2]['value']*exp($E[3]*9.80665/(287.05*(273.15+$E[1]+0.12*$LBS_LBSID_DAMPFDRUCK($E)+0.0065*$E[3]['value']/2))));
        }
        ?>
        ###[/LBS]###

        ###[EXEC]###
        <?
        ?>
        ###[/EXEC]###

        Funktioniert das Formelungetüm in PHP 5.3.3 überhaupt so ?

        Danke
        Andreas

        Kommentar


          #5
          Schuss ins Blaue: Da fehlt der gesamte Help-Teil!
          Kind regards,
          Yves

          Kommentar


            #6
            Einfach mal in EDOMI importieren - dann siehst Du das hier (wie starwarsfan schon sagte):

            Bildschirmfoto 2018-07-11 um 19.22.10.png
            EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

            Kommentar


              #7
              Zitat von starwarsfan Beitrag anzeigen
              Schuss ins Blaue: Da fehlt der gesamte Help-Teil!
              Na also.... jetzt ist immerhin der Import möglich (ausschließlich ### Help ### eingefügt !):

              2018_07_11_21_21_59_EDOMI_Administration_Opera.png

              ... jedoch bricht leider die Projektaktivierung ab:

              2018_07_11_21_16_52_10.10.1.35_data_log_ERRLOG_2018_07.htm_20180711211610_Opera.png

              Wie kann ich den Fehler weiter eingrenzen ?
              Zuletzt geändert von ak68; 11.07.2018, 22:06.

              Kommentar


                #8
                Da fehlt noch immer teilweise das "['value']" hinter den "$E[x]"...

                Kommentar


                  #9
                  Klappt, Werte werden korrekt berechnet und sind realistisch- der erste Primitiv-LBS ist geschafft !

                  2018_07_11_23_33_02_EDOMI_Administration_Opera.png

                  Vielen Dank an Euch Edomi-Jünger und "Gott-Vater"!
                  Zuletzt geändert von ak68; 11.07.2018, 22:55.

                  Kommentar

                  Lädt...
                  X