Ankündigung

Einklappen
Keine Ankündigung bisher.

Downloadbereich

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

    #16
    Und noch etwas:

    Die LBS sollte man vielleicht ggf. auch als "beta" markieren - wenn ich so manchen Quelltext betrachte....... Ich habe so ein wenig die Befürchtung, dass der ein oder andere LBS in Zukunft für einige Probleme sorgen könnte was die Stabilität von EDOMI betrifft. Bei allem Respekt vor den LBS-Entwicklern unter uns, aber gleich in die Vollen ohne vollständige Doku halte ich für etwas problematisch

    Daher vielleicht für den DL-Bereich: "Benutzung auf eigene Gefahr"

    Und bitte auch an den Hilfetext denken - ist teilweise noch sehr minimalistisch...
    EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

    Kommentar


      #17
      Hallo,

      habe angefangen, ein "Verwaltung-Portal" aufzusetzen. Zunächst müssen administrative Dinge hinein, wie Registrieren, Verwaltung der Registrierungen, Rollenvergabe, Freischaltung u.s.w. .

      Der Anfang ist gemacht. Das Entwicklungssystem kann unter https://edomi.knx-user-forum.de/ erreicht werden.

      Es ist auch schon möglich, sich zu registrieren. Folgeprozesse müssen noch implementiert werden.... für Heute soll das erst mal reichen...

      Kommentar


        #18
        ups... das ging aber schnell...

        Drei Registrierungen....

        Die weiteren Prozesse mach ich morgen, also bitte etwas Geduld.

        Kommentar


          #19
          Man möchte ja auch nicht der Letzte sein....


          Es wäre vielleicht wünschenswert wenn jeder Entwickler für einen neuen LBS einen neuen Beitrag aufmachen würde. Überschrift sollte dann "genormt" sein z.B. so

          LBS 19000007 Mondphasen

          dann könnte der Entwickler dort am Anfang seinen Baustein beschreiben, mit Bilder von der Logik im Logikeditor reinstellen.
          (Klar das man das auch noch teilweise in der Hilfedatei machen kann)
          Vorteil wäre das man einen Beitrag pro Baustein hat. Fehlermeldungen und auch Fragen sind so übersichtlicher. Mann muss dann nicht 65 Seiten durchlesen wenn alle Bausteine in einem Beitrag zusammengefasst sind.

          Am besten wäre noch ein eigener "Ordner" (oder wie man das nennen sollte) im Edomi-Forum im Hauptverzeichniss....denke aber das das wohl nicht geht
          Zuletzt geändert von Robby; 29.01.2016, 19:05.

          Kommentar


            #20
            Zitat von WagoKlemme Beitrag anzeigen
            Code:
            ###[DEF]###
            [name =Modbus 16-Bits → Word ]
            
            [e#1 =MW ]
            [e#2 =Abfragetrigger ]
            [e#3 =Bit 0 ]
            [e#4 =Bit 1 ]
            [e#5 =Bit 2 ]
            [e#6 =Bit 3 ]
            [e#7 =Bit 4 ]
            [e#8 =Bit 5 ]
            [e#9 =Bit 6 ]
            [e#10 =Bit 7 ]
            [e#11 =Bit 8 ]
            [e#12 =Bit 9 ]
            [e#13 =Bit 10 ]
            [e#14 =Bit 11 ]
            [e#15 =Bit 12 ]
            [e#16 =Bit 13 ]
            [e#17 =Bit 14 ]
            [e#18 =Bit 15 ]
            [a#1 =Integer ]
            [v#1 =0]
            [v#2 =0]
            [v#3 =0]
            [v#4 =0]
            [v#5 =0]
            [v#6 =0]
            [v#7 =0]
            [v#8 =0]
            [v#9 =0]
            [v#10 =0]
            [v#11 =0]
            [v#12 =0]
            [v#13 =0]
            [v#14 =0]
            [v#15 =0]
            [v#16 =0]
            [v#17 =0]
            [v_byte#1 =0]
            [v_byte#2 =0]
            [v_int#1 =0]
            ###[/DEF]###
            
            
            ###[HELP]###
            E1: Merkerwort das geschrieben werden soll
            E2: Abfragetrigger
            E3..E18: Bit0..Bit15 (Bit = Wert 0 oder 1) Eingänge z.B. Schalter
            A1 : gibt den geschriebenen Integerwert zurück
            ###[/HELP]###
            
            
            ###[LBS]###
            <?
            function LB_LBSID($id) {
            if ($E=getLogicEingangDataAll($id)) {
            if ($E[1]['value']!=0 && $E[1]['refresh']==1) {
            $v1=$E[1]['value'];
            setLogicElementVar($id,1,$v1);
            }
            if ($E[3]['refresh']==1) {
            $v2=$E[3]['value'];
            setLogicElementVar($id,2,$v2);
            }
            if ($E[4]['refresh']==1) {
            $v3=$E[4]['value'];
            setLogicElementVar($id,3,$v3);
            }
            if ($E[5]['refresh']==1) {
            $v4=$E[5]['value'];
            setLogicElementVar($id,4,$v4);
            }
            if ($E[6]['refresh']==1) {
            $v5=$E[6]['value'];
            setLogicElementVar($id,5,$v5);
            }
            if ($E[7]['refresh']==1) {
            $v6=$E[7]['value'];
            setLogicElementVar($id,6,$v6);
            }
            if ($E[8]['refresh']==1) {
            $v7=$E[8]['value'];
            setLogicElementVar($id,7,$v7);
            }
            if ($E[9]['refresh']==1) {
            $v8=$E[9]['value'];
            setLogicElementVar($id,8,$v8);
            }
            if ($E[10]['refresh']==1) {
            $v9=$E[10]['value'];
            setLogicElementVar($id,9,$v9);
            }
            if ($E[11]['refresh']==1) {
            $v10=$E[11]['value'];
            setLogicElementVar($id,10,$v10);
            }
            if ($E[12]['refresh']==1) {
            $v11=$E[12]['value'];
            setLogicElementVar($id,11,$v11);
            }
            if ($E[13]['refresh']==1) {
            $v12=$E[13]['value'];
            setLogicElementVar($id,12,$v12);
            }
            if ($E[14]['refresh']==1) {
            $v13=$E[14]['value'];
            setLogicElementVar($id,13,$v13);
            }
            if ($E[15]['refresh']==1) {
            $v14=$E[15]['value'];
            setLogicElementVar($id,14,$v14);
            }
            if ($E[16]['refresh']==1) {
            $v15=$E[16]['value'];
            setLogicElementVar($id,15,$v15);
            }
            if ($E[17]['refresh']==1) {
            $v16=$E[17]['value'];
            setLogicElementVar($id,16,$v16);
            }
            if ($E[18]['refresh']==1) {
            $v17=$E[18]['value'];
            setLogicElementVar($id,17,$v17);
            }
            if ($E[2]['value']=1 && $E[2]['refresh']==1) {
            callLogicFunctionExec(LBSID,$id); //EXEC-Script starten
            }
            }
            }
            
            ?>
            ###[/LBS]###
            
            
            ###[EXEC]###
            <?
            require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
            require_once(dirname(__FILE__)."/../../../../main/include/php/ModbusMaster.php");
            set_time_limit(1);
            sql_connect();
            $dataTypes = array("BYTE","BYTE");
            
            function setBit($byte, $significance) {
            return $byte | 1<<$significance;
            }
            
            $v1 = getLogicElementVar($id,1); //Merkerwort
            $v2 = getLogicElementVar($id,2); //Bit0
            $v3 = getLogicElementVar($id,3);
            $v4 = getLogicElementVar($id,4);
            $v5 = getLogicElementVar($id,5);
            $v6 = getLogicElementVar($id,6);
            $v7 = getLogicElementVar($id,7);
            $v8 = getLogicElementVar($id,8);
            $v9 = getLogicElementVar($id,9);
            $v10 = getLogicElementVar($id,10);
            $v11 = getLogicElementVar($id,11);
            $v12 = getLogicElementVar($id,12);
            $v13 = getLogicElementVar($id,13);
            $v14 = getLogicElementVar($id,14);
            $v15 = getLogicElementVar($id,15);
            $v16 = getLogicElementVar($id,16);
            $v17 = getLogicElementVar($id,17); //Bit15
            
            $v_byte1 = 0;
            If ($v2 == 1) {
            $v_byte1 = setBit($v_byte1,0);
            }
            If ($v3 == 1) {
            $v_byte1 = setBit($v_byte1,1);
            }
            If ($v4 == 1) {
            $v_byte1 = setBit($v_byte1,2);
            }
            If ($v5 == 1) {
            $v_byte1 = setBit($v_byte1,3);
            }
            If ($v6 == 1) {
            $v_byte1 = setBit($v_byte1,4);
            }
            If ($v7 == 1) {
            $v_byte1 = setBit($v_byte1,5);
            }
            If ($v8 == 1) {
            $v_byte1 = setBit($v_byte1,6);
            }
            If ($v9 == 1) {
            $v_byte1 = setBit($v_byte1,7);
            }
            $v_byte2 = 0;
            If ($v10 == 1) {
            $v_byte2 = setBit($v_byte2,0);
            }
            If ($v11 == 1) {
            $v_byte2 = setBit($v_byte2,1);
            }
            If ($v12 == 1) {
            $v_byte2 = setBit($v_byte2,2);
            }
            If ($v13 == 1) {
            $v_byte2 = setBit($v_byte2,3);
            }
            If ($v14 == 1) {
            $v_byte2 = setBit($v_byte2,4);
            }
            If ($v15 == 1) {
            $v_byte2 = setBit($v_byte2,5);
            }
            If ($v16 == 1) {
            $v_byte2 = setBit($v_byte2,6);
            }
            If ($v17 == 1) {
            $v_byte2 = setBit($v_byte2,7);
            }
            
            $v_int1 = 0;
            $v_int1 = array(($v_byte1+($v_byte2<<8) ), (0 ));
            
            
            $modbus = new ModbusMaster("192.168.2.45", "TCP");
            try {
            // FC 16 1x16-bit Integer
            $modbus->readWriteRegisters(0, $v1, 1, $v1, $v_int1, $dataTypes);
            }
            catch (Exception $e) {
            exit;
            }
            setLogicLinkAusgang($id,1,$v_int1[0]);
            sql_disconnect();
            ?>
            ###[/EXEC]###
            ​Was ist das hier? Diese Syntax gibt es nicht: (nur damit es keine Verwirrungen gibt bei anderen Usern)

            [v_byte#1 =0]
            [v_byte#2 =0]
            [v_int#1 =0]

            Und noch wichtiger: Bei einem LBS dieser Art sollte z.B. in der Hilfe darauf hingewiesen werden, dass eine Include-Datei benötigt wird (hier: ModbusMaster.php). Sonst wird der LBS natürlich nicht funktionieren...
            Zuletzt geändert von gaert; 29.01.2016, 21:38.
            EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

            Kommentar


              #21
              Zitat von gaert Beitrag anzeigen

              ​Was ist das hier? Diese Syntax gibt es nicht: (nur damit es keine Verwirrungen gibt bei anderen Usern)

              [v_byte#1 =0]
              [v_byte#2 =0]
              [v_int#1 =0]

              Und noch wichtiger: Bei einem LBS dieser Art sollte z.B. in der Hilfe darauf hingewiesen werden, dass eine Include-Datei benötigt wird (hier: ModbusMaster.php). Sonst wird der LBS natürlich nicht funktionieren...
              v_byte#1 ist die Variable v_byte1, die ich brauche um aus 2 Bytes eine Integerzahl (v_int1) zu machen. Ist einfach nur ein Variablenname.

              Beim zweiten Punkt hast Du Recht. Der Hinweis auf die LIB fehlt (eigentlich bewusst). Ich gehe davon aus, dass der, der diesem LBS nutzt auch das erkennt. Er muss im Grundsatz wissen was er tut. Damit kann er schliesslich eine SPS gehörig durcheinander bringen. Der Anspruch für jeden von der Strasse besteht nicht.
              Aber zur Erleichterung schlage ich vor diese Libs (es sind mehrere) an den Download des LBS zu hängen. Diese müssen dann nur noch in das Verzeichnis /usr/local/edomi/main/include/php/ kopiert werden. Gut aber, dass Du darauf hinweist die Libs musste ich modifizieren, da Fehler im Original waren.
              Aber, alles halb so wild schliesslich kann man mich auch fragen wenns Probleme gibt.





              Angehängte Dateien
              >>Smelly One<<
              >> BURLI <<
              Grüße Armin

              Kommentar


                #22
                Anderes Thema:
                Ich arbeite gerade an einem LBS fürs Wetter (Vorbild VDR skinflatplus Widget). Funktioniert auch schon super mit Netbeans, nur bei der Umsetzung in Edomi ist mir aufgefallen, dass eine ganz schöne Latte an Variablen zusammenkommen. Die Frage ist nun soll ich das so umsetzen oder von 7 tagen Vorhersage z.B. auf 3 Tage runterkürzen. Ich will hier kein Monster bauen was keiner nutzt.
                Ferner bin ich auf der Suche nach gescheiten Symbolen. Die, die mir gefallen sind kostenpflichtig. Ich bräuchte schöne Symbole für z.B. Regen, Sonne, bewölkt ...
                Der Baustein hat dann als Ausgang icon z.b. rain undschon ist das Symbol gesetzt.Edomi - 30_01.jpg
                >>Smelly One<<
                >> BURLI <<
                Grüße Armin

                Kommentar


                  #23
                  Ich denke 3 Tage reichen, 7 Tage sind eh immer ungenau (also 4Tage plus ist immer nur weschätzt)

                  Kommentar


                    #24
                    Zitat von WagoKlemme Beitrag anzeigen
                    Ferner bin ich auf der Suche nach gescheiten Symbolen. Die, die mir gefallen sind kostenpflichtig. Ich bräuchte schöne Symbole für z.B. Regen, Sonne, bewölkt ...
                    Auf http://www.flaticon.com/ hat es eine grosse Auswahl von kostenlosen Icons.

                    Kommentar


                      #25
                      Die Anzahl der Ausgänge ist prinzipiell egal (obgleich es Grenzen gibt - werde ich in der Doku später mal erläutern). Sieht halt komisch aus, aber hat sonst keine negativen Auswirkungen.
                      EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                      Kommentar


                        #26
                        Wo ich gerade den Wettervorhersagebaustein sehe:

                        Christian, mittelfristig wäre es schön, wenn Edomi von Haus Standards wie Geoinformationen (Längen-, Breitengrad, Höhe u. NN., Ortsname) "könnte", d.h. es wäre toll wenn man diese Daten einmalig im Projekt / .ini-File hinterlegen und dann in Edomi via internem KO drauf zugreifen könnte. Weil diese Daten ziehen sich durch X Berechnungen / Logiken (Mondphase, Sonnenstand, Beschattung, Wettervorhersage, irgendwann vielleicht mal Geolocation), da wäre es traumschön wenn man die zentral hinterlegen könnte.

                        Die Kür mit vierfachem Rittberger inkl. Zuckerguss und Kirsche wäre, wenn Edomi diese ganze Rechnerei gleich selbst erledigen würde, die Geokoordinaten ins Projekt und der ganze Astrokram steht intern bereit zum Zugriff ... Wenn ich mich nicht irre kann PHP den Sonnenstand inkl. Dämmerung quasi "automatisch" berechnen mit date_sun_info, der Mond erfordert je nach gewünschter Präzision etwas mehr oder weniger Handarbeit z.B. http://www.die-seite.eu/wm-mondphasen.php

                        Kommentar

                        Lädt...
                        X