Ankündigung

Einklappen
Keine Ankündigung bisher.

Logikbausteine | EDOMI

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Du hast vermutlich vergessen das Array $E zu befüllen:

    Code:
    if ($E=getLogicEingangDataAll($id)) {...}
    Beachte auch, dass am Eingang max. 200 Zeichen "anliegen" können! Mit diversen Sonderzeichen könnte es zudem Probleme geben - muss aber nicht unbedingt sein.

    PS: Wenn Du eine URL einlesen willst in PHP, ist eigentlich dieser Befehl angebracht:
    Code:
    file_get_contents()
    EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

    Kommentar


      #17
      Edit: hab jetzt erst gesehen, dass es hier nur um selbst erstellte Bausteine gehen soll, ich poste nochmals in einem eigenen Thread.
      Zuletzt geändert von baumhaus123; 23.01.2016, 11:25.
      Gruß,
      Matthias

      Kommentar


        #18
        Edit: s.o.
        Zuletzt geändert von baumhaus123; 23.01.2016, 11:25.
        Gruß,
        Matthias

        Kommentar


          #19
          Hallo,

          dachte ich versuch mich mal an einem einfachen eigenen LBS, meine Programmierkenntnisse sind ehrlich gesagt bescheiden, aber so schwierig kanns ja nicht sein dachte ich mich, doch leider bin ich beim ersten Versuch gleich kläglich gescheitert. Vielleicht kann mir ja jemand der mehr Ahnung von php hat einen Tipp geben (schreibe absichtlich nicht gaert, der hat wichtigeres zu tun )

          Es soll ein Betriebsstundenzähler werden, sobald also an E1 ein 1 anliegt soll er die sek hochzählen und an A1 ausgeben

          PHP-Code:
          <?

          function LB_LBSID($id) {
              if ($E=getLogicEingangDataAll($id)) {
                  
                  if    (getLogicElementStatus($id)==0)    {
                     
                      if ($E[1]['value']==1 && $E[1]['refresh']==1) {
                          
                          setLogicElementVar($id,1,(getMicrotime());
                          setLogicElementStatus($id,1);
                      }
                      
                  } else {
                      
                      if ($E[1]['value']==0 && $E[1]['refresh']==1) {
                          
                          $ontime = getMicrotime()-getLogicElementVar($id,1);                
                          setLogicLinkAusgang($id,1,$ontime);
                          setLogicElementStatus($id,0);
                      }
                  }
              }
          }
          ?>
          beim Import erhalte ich aber immer einen Syntaxfehler, hat jemand eine Idee was ich Falsch gemacht hab?

          schon mal danke, Christian

          gaert, da du mit edomi ja jetzt bald alle Häuser übernimmst und bestimmt hunderte anfangen selbst LBS bausteine zu Programmieren wäre vielleicht ein einheitliches Nummerierungssystem schön damit man sich einfach einen LBS von jemand anderem kopieren kann ohne die Dateien dauern umbenennen zu müssen weil alle mit 000001 anfangen.

          z.B. IDxxxyyy (ID ist ja bereits vorgegeben, xxx = entwickler (vergibst du z.B. auf Anfrage), yyy = freie Nummer)

          Kommentar


            #20
            Danke Christian, funktioniert jetzt.
            Thema Müllabfuhr erledigt...
            Zuletzt geändert von timberland; 23.01.2016, 11:57.

            Kommentar


              #21
              Hallo zusammen,

              ich habe gerade meine erste LOGIK in EDOMI erstellt - das ist ein Versuch die HS4 Logik nachzubilden …
              In HS4 funktioniert es, in EDOMI nicht … bin mit dem Tool selbst noch nicht auf DU und DU ;-)

              Ich möchte alles Lichter abfragen und wenn zumindest eine Leuchte AN ist (Aktorkanal-Status=1), dann soll die Ausgangsbox mit der KO 4/3/1 eine 1 schicken…
              Wenn keine einzige Leuchte AN ist, dann eben eine 0

              Bildschirmfoto 2016-01-23 um 11.18.12.png
              Danke und LG, Dariusz
              GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

              Kommentar


                #22
                DANKE, wurde gelöst … Ausgangsbox anstatt E1 auf E2
                Danke und LG, Dariusz
                GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                Kommentar


                  #23
                  Zitat von Ferengi Beitrag anzeigen
                  PHP-Code:
                  setLogicElementVar($id,1,(getMicrotime()); 
                  Da fehlt zumindest schonmal 1 Klammer...
                  EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                  Kommentar


                    #24
                    verdammt

                    danke für die schnelle Hilfe, geladen hat er den LBS, mal schaun obs jetzt auch so funktioniert wie gedacht.

                    Christian

                    Kommentar


                      #25
                      Zitat von timberland Beitrag anzeigen
                      Danke Christian, funktioniert jetzt.
                      Thema Müllabfuhr erledigt...
                      Könntest Du bitte deine Erfahrung teilen ? -> Müllabfuhr
                      >>Smelly One<<
                      >> BURLI <<
                      Grüße Armin

                      Kommentar


                        #26
                        Mein Versuch einen eigenen Logikbaustein zu schreiben scheitert leider - er wird immer rot dargestellt.
                        Ich möchte per Modbus TCP einen Floatwert auslesen und dem Eingang E1 zuweisen. E1 soll dann den Wert an A1 weiterreichen.
                        Was mache ich falsch ?
                        Sorry, dies sind meine ersten PHP zeilen.

                        PHP-Code:
                        ###[DEF]###
                        [name        =Modbus Floatwert            ]

                        [e#1        =Wert                    ]

                        [a#1        =Ausgabewert                    ]
                        ###[/DEF]###


                        ###[HELP]###
                        ###[/HELP]###


                        ###[LBS]###
                        <?
                        function LB_LBSID($id) {
                            if ($E=getLogicEingangDataAll($id)) {
                                if ($E[1]['value']!=0 && $E[1]['refresh']==1) {
                                    setLogicLinkAusgang($id,1,$E[1]['value']);
                                }
                            }
                        }
                        ?>
                        ###[/LBS]###

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

                        $modbus = new ModbusMaster("192.168.2.45", "TCP");

                        try {
                            // FC 3 mehrere Register lesen
                            $recData = $modbus->readMultipleRegisters(0, 12772, 2);
                        }
                        catch (Exception $e) {
                            
                            $E[1]:= $modbus;

                            exit;
                        }

                        $E[1]:= $recData;

                        //...
                        sql_disconnect();
                        ?>
                        ###[/EXEC]###
                        >>Smelly One<<
                        >> BURLI <<
                        Grüße Armin

                        Kommentar


                          #27
                          Versuch mal anstatt
                          $E[1]:= $recData;

                          setLogicLinkAusgang($id,1,$recData);

                          Kommentar


                            #28
                            Danke. Leider immer noch rot.
                            >>Smelly One<<
                            >> BURLI <<
                            Grüße Armin

                            Kommentar


                              #29
                              Ok. Rot ist weg. Er mochte auch $E[1]:= $modbus; nicht. Jetzt muss ich noch testen...
                              >>Smelly One<<
                              >> BURLI <<
                              Grüße Armin

                              Kommentar


                                #30
                                Also Variable:=Wert gibt es in PHP nicht.

                                Ungeachtet dessen kann man keine Eingänge(!) auf einen Wert setzen - nur Ausgänge...
                                EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                                Kommentar

                                Lädt...
                                X