Ankündigung

Einklappen
Keine Ankündigung bisher.

xxAPI v0.99 - erweiterte AJAX-Visu

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

    HS/FS xxAPI v0.99 - erweiterte AJAX-Visu

    NICHT MEHR AKTUELL HIER GEHTS WEITER
    https://knx-user-forum.de/xxapi/6009...ajax-visu.html



    *** Eine kleine Beschreibung der Befehle findet ihr hier ***
    *** xxAPI ***

    Installationsanleitung hier XXAPI - HS/FS - Lexikon - KNX-User-Forum

    Die Downloads sind in der Projektverwaltung KNX-User-Forum




    *** CHANGELOG ***
    **
    0.99
    +XXCLICK*
    +XXMODULCLICK*
    +XXMARK*
    +neue Aufrufvariante lässt die Klickbaren Funktionen wie die Standard Klicks aussehen
    +XXHTTP und XXLINK verwenden auch die neue Aufrufvariante
    +Erweiterte Kompatiblität mit APPid's (Elemente entfernen)

    **
    0.98
    + XXIMG*url*refresh in Sec
    + XXMODUL geht im IE
    + XXMODUL auch mit manuellem Login
    + keine Scrollbalken im XXMODUL
    + Loginmaske korrekte Grösse
    + Fehler beim laden der API werden abegefangen
    + Fehler beim laden von XXEEXECUTE werden abgefangen.
    + Texte der Schaltflächen lassen sich nicht mehr selektieren
    + Login mit Cookie speichern aus der Loginmaske geht
    + verkürzte Ausführungszeiten
    + Parameterübergabe für Widgets

    **
    0.97
    + XXLONGPRESS*
    BUG FIX: XXTRIGGER*

    **
    0.96
    + XXMODUL*
    + Diverse änderungen ajax.js für den hsav ist neu
    + secure.htm + geänderte start.htm aus anderem Thread müssen benutzt werden
    + Webabfragen und xxAPI-INIT Visuseite neu
    + xxAPI komprimiert mit Faktor 0.4

    **
    0.92
    + XXEHTML*
    + XXEEXECUTE*

    **
    0.91 - erste xxAPI version auf knx-user-forum
    + XXHTTP*
    + XXLINK*
    + XXIFRAME*
    + XXEXECUTE*
    + XXHTML*
    + XXIMG*
    + XXTRIGGER*
    + XXINACTIVE*


    Ich mach mal einen neuen Thread dazu auf.

    Die xxAPI ist eine zentral gepflegte Erweiterung für die HS-AjaxVisu mit der auch Web- und Multimediaobjekte eingebunden werden können.

    Ein vorheriger Versuch die ajax.js der Dacom HSAjaxVisu zu erweitern, führte immer dazu, dass bei jeder Erweiterung und jedem Bugfix, das Homeserver Projekt neu hochgeladen werden musste.

    Die xxAPI verwendet ein mit einer Webabfrage gefülltes 14-Byte iKO, dass durch einfaches ausführen der Webabfrage aktualisiert werden kann.

    Ausserdem wird die Versionsnummer des aktuellen xxAPI.js zurückgegeben.
    Die xxAPI ist in den Versionen stable,rc,beta,unstable verfügbar, zwischen denen auch im laufenden Betrieb einfach gewechselt werden kann.

    Es wird eine weitere Webabfrage für ein Demosystem geben, dass über ein dynamisches Textobjekt auf einer Visuseite, die Funktionen der xxAPI vorführen kann.

    Weitere Webabfragen auf so genannte Widgets werden die Möglichkeit geben, komplexe xxAPI Funktionen wie z.B. Analoguhr,Radio,Fernsehen... einfach einzubinden und auch dort die Vorteile einer zentral gepflegten Anwendung zu haben.

    Die Verbindung zum xxAPI Hostserver (Fehler 404) wird nur bei der Installation oder bei Updates aufgebaut. Es ist auch möglich einen eigenen xxAPI Server zu betreiben um Updates Kundenspezifisch einzubinden, die dazu benötigte xxAPI.php sowie alle anderen benötigten Dateien sind frei unter der GPLv3 verfügbar.

    EDIT:
    Ich habe gerade festgestellt das bei einem HS2 der Speicher des 14byte KO's nicht reicht um die xxAPI zu Speichern. Macht das iKo einfach erstmal nicht remanent und führt die Webabfrage xxAPI 1x nach Systemstart durch.

    Ich werde versuchen die API zu verkleinern und zu komprimieren.
    Die einzige Änderung die noch an der ajax.js vorgenommen werden muß sind folgende:

    Code:
    --- ajax-dacom.js Tue Apr 21 14:06:52 2009
    +++ ajax-xxAPI.js Fri Apr 24 00:43:07 2009
    @@ -42,6 +42,9 @@
     hs_connected = 0;
     isBusy=0;
     xmlhttp = null;
    +//xxAPI
    +xxAPI = new Object();
    +xxAPI.init = false;
     
     // Markierung
     markImg = null
    @@ -373,6 +376,43 @@
       this.aktion = "";
     }
     
    +//--------------------------------------------------------------------------------
    +//  xxAPI Base64 Decoder 
    +//--------------------------------------------------------------------------------
    +function decode64(input) {
    +   var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    +   var output = "";
    +   var chr1, chr2, chr3;
    +   var enc1, enc2, enc3, enc4;
    +   var i = 0;
    +
    +   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
    +   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
    +
    +   do {
    +      enc1 = keyStr.indexOf(input.charAt(i++));
    +      enc2 = keyStr.indexOf(input.charAt(i++));
    +      enc3 = keyStr.indexOf(input.charAt(i++));
    +      enc4 = keyStr.indexOf(input.charAt(i++));
    +
    +      chr1 = (enc1 << 2) | (enc2 >> 4);
    +      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
    +      chr3 = ((enc3 & 3) << 6) | enc4;
    +
    +      output = output + String.fromCharCode(chr1);
    +
    +      if (enc3 != 64) {
    +         output = output + String.fromCharCode(chr2);
    +      }
    +      if (enc4 != 64) {
    +         output = output + String.fromCharCode(chr3);
    +      }
    +   } while (i < input.length);
    +
    +   return output;
    +}
    +
    +
     // ----------------------------------------------------------------------------
     // Funktionen zur Handhabung von Masken und PopUps
     // ----------------------------------------------------------------------------
    @@ -1271,6 +1311,10 @@
               var item=aVisu[npos];
               item.txt=getXmlAttr(aRes[0],"txt");
               if (item.handle!=null) {
    +              // CHECK for XX Functions
    +              if(typeof xxAPI.check == "function") {
    +                item=xxAPI.check(item);
    +              }
                 item.handle.innerHTML=item.txt;
               }
             }
    @@ -1837,6 +1881,25 @@
           aVisuItem.txt=getXmlAttr(aRes[0],"txt");
           aVisuItem.hasCmd=getXmlAttr(aRes[0],"hcmd");
           aVisuItem.click=getXmlAttr(aRes[0],"click")*1;
    +      //check for XX Functions
    +      if(typeof xxAPI.check == "function") {
    +        aVisuItem=xxAPI.check(aVisuItem);
    +      }
    +      //load XXSCRIPT
    +      XXcode = "";
    +      if(aVisuItem.txt.indexOf("XXSCRIPT*") == 0) 
    +      {
    +        // code decodieren und ausführen dann Text löschen
    +        XXcode = decode64(aVisuItem.txt.substr(9,aVisuItem.txt.length));
    +        eval(XXcode);
    +        XXcode = "";
    +        aVisuItem.txt = "";
    +        if(xxAPI.init == false) {
    +          xxAPI.ItemHandle = aVisuItem;
    +          window.setTimeout("doCmd(xxAPI.ItemHandle);",500);
    +          xxAPI.init = true;
    +        }
    +      }
           aItems.push(aVisuItem);
         }
         else if (aRes[0].substr(0,3)=="BOX")
    UPDATE:
    zur Installation
    1. die Webabfrage importieren
    2. eine leere Visuseite erstellen (xxAPI-INIT)
    und darauf ein dynamisches Textfeld mit dem iKO xxAPI erstellen
    wie unten auf dem Bild. Als Aktion bitte Visu-Seite aufrufen
    die ehemalige Startseite der Visu eintragen.
    evtl. noch einen Button zum ausführen der Webabfrage "xxAPI" machen.
    3. Die Startseite der Benutzer ändern auf diese "xxAPI-INIT" Startseite
    4. XX Funktionen wie bereits im anderen Thread beschrieben einbauen
    5. die Datei unter hsupload/opt/hsav/js/ajax.js mit der aus dem zip ersetzen
    EDIT: oops hatte ich vergessen
    6. die Datei redirect.htm ins verzeichnis hsupload kopieren sodass sie nachher unter /opt/redirect.htm erreichbar ist.

    (Doku und Online-Demo folgen)

    vielen Dank an Alfred für die Bereitstellung des xxAPI Hostservers unter
    https://knx-user-forum.de/knx_xxAPI/xxAPI.php
    Angehängte Dateien
    Nils

    aktuelle Bausteine:
    BusAufsicht - ServiceCheck - Pushover - HS-Insight

    #2
    &quot;erweiterte AJAX-Visu&quot; bitte Erklären

    Hallo,
    ich mache mal ein neues Thema auf, denn ich habe einfach den Überblick verloren und weiß in diesem Bezug nicht mehr was zu machen ist.
    (Vielleicht ware ein Wiki ganz toll, wo alle Neuerungen ganz kurz erklart werden und man einen Überblick bekommt.)

    Ich fasse mal meinen Stand zusammen:
    1. Anfangs wurde die "ajax.js" modifiziert, womit zusatzliche Features dazu genommen wurden. [Modifizierung der ajax.js im Experten Verzeichnis]

    2. Dann gab es eine Modifikation der ajax.js, womit ich externe Links in einem PopUp aufrufen konnte(XXLINK). [Modifikation der ajax.js im Experten]

    3. Am 21.04. wurde auf der Dacom Site der Open Source zur verfügung gestellt.(Muss ich jetzt die Modifikationen aus diesem Forum da reinkopieren? Oder beinhaltet diese Version immer einen Snapshot der Modifikationen?)

    3. Dann kam die Funktion XXFunctions dazu. Hört sich genial an, doch was muss ich machen?

    4. Es soll einen xxAPI Hostserver geben!? Da lese ich ne menge Wörter, die dann in meinem Gehirn zu einem Fragezeichen verschmelzen.(Hier fallt mir das Sprichwort ein, wenn man keine Ahnung hat, einfach die Finger weglassen)

    4.1 Ich verstehe das so: Ich habe die Funktion XXFunction. Die holt sich zur Laufzeit von einem Webserver die aktuellen Erweiterungen für die ajax.js!!??


    Ich weiß Ihr habt genug mit dem neuen Highlight zu tun. Aber ich komme nicht mehr hinterher und ware glücklich, wenn einer eine kurze Zusammenfassung(HowTo) erstellen könnte.

    Gruß Jörg

    PS: Einen großen Schritt bin ich gerade vorran gekommen auf der Visu von "Vento66". Hier sehe ich mal, was welche Funktion macht.
    Gruß Jörg

    Kommentar


      #3
      Zitat von lochj Beitrag anzeigen
      1. Anfangs wurde die "ajax.js" modifiziert, womit zusätzliche Features dazu genommen wurden. [Modifizierung der ajax.js im Experten Verzeichnis]
      Grundvoraussetzung bis Dacom die xxAPI hinzufügt.
      2. Dann gab es eine Modifikation der ajax.js, womit ich externe Links in einem PopUp aufrufen konnte(XXLINK). [Modifikation der ajax.js im Experten]
      ist jene welche aus Punkt 1
      3. Am 21.04. wurde auf der Dacom Site der Open Source zur verfügung gestellt.
      Grundvoraussetung damit dere veränderte Code veröffentlicht werden darf
      (Muss ich jetzt die Modifikationen aus diesem Forum da reinkopieren? Oder beinhaltet diese Version immer einen Snapshot der Modifikationen?)
      Nein, es wird eine ajax.js mit der xxAPI hier im Downloadbereich verfügbar sein sobald der xxAPI Hostserver (den Alfred wohl stellen wird )
      verfügbar ist.
      3. Dann kam die Funktion XXFunctions dazu. Hört sich genial an, doch was muss ich machen?
      sind alle der oben genannten Funktionen
      4. Es soll einen xxAPI Hostserver geben!? Da lese ich ne menge Wörter, die dann in meinem Gehirn zu einem Fragezeichen verschmelzen.(Hier fällt mir das Sprichwort ein, wenn man keine Ahnung hat, einfach die Finger weglassen)
      Brauchst du auch nicht. ist nur der Server auf den du die Webabfrage machst. wie sich gerade herausgestellt hat.
      https://knx-user-forum.de/knx_xxAPI/xxAPI.php
      4.1 Ich verstehe das so: Ich habe die Funktion XXFunction. Die holt sich zur Laufzeit von einem Webserver die aktuellen Erweiterungen für die ajax.js!!??
      Na, wo ist dann noch die Frage.
      Genau so isses


      @mods: Bitte Thread zu und im eigentlichen Thread verschieben
      Nils

      aktuelle Bausteine:
      BusAufsicht - ServiceCheck - Pushover - HS-Insight

      Kommentar


        #4
        Zitat von lochj Beitrag anzeigen
        Einen großen Schritt bin ich gerade vorran gekommen auf der Visu von "Vento66". Hier sehe ich mal, was welche Funktion macht.
        @lochj
        Dafür ist diese "DEMOSEITE" gedacht. Ich habe auch den XXINACTIV im Einsatz also sollte nach 10min inaktivitat automatisch auf die Startseite gewechselt werden. 10min habe ich eingestellt weil die Klicks auf der Startseite ausgewertet werden, und man sonst bei kürzer eingestellten Zeiten mitten im lesen von http seiten automatisch auf die Startseite fliegt....

        Kommentar


          #5
          UPDATE
          siehe POST#1
          Nils

          aktuelle Bausteine:
          BusAufsicht - ServiceCheck - Pushover - HS-Insight

          Kommentar


            #6
            so, ich habe mal die serverseitigen Dinge überarbeitet:

            Grunddsatzlich gibt es zunachst folgenden Aufrufe:

            Über die bekannte URL-

            Code:
            xxAPI.php?load=api                           Ausgabe der API per XML
            xxAPI.php?load=version                       Ausgabe nur der Version per XML
            xxAPI.php?load=apiraw                        Ausgabe der JS
            xxAPI.php?load=widget                        Ausgabe der XML-Demo
            xxAPI.php?load=doku                          Ausgabe als Doku

            Kommentar


              #7
              Zitat von AScherff Beitrag anzeigen
              so, ich habe mal die serverseitigen Dinge überarbeitet:

              Grunddsätzlich gibt es zunächst folgenden Aufrufe:

              Über die bekannte URL-

              Code:
              xxAPI.php?load=api                           Ausgabe der API per XML
              xxAPI.php?load=version                       Ausgabe nur der Version per XML
              xxAPI.php?load=apiraw                        Ausgabe der JS
              xxAPI.php?load=widget                        Ausgabe der XML-Demo
              xxAPI.php?load=doku                          Ausgabe als Doku
              Vielen Dank Alfred
              sieht schon gleich viel besser aus das Script.

              ABER:
              Bitte nur die veröffentlichten webabfragen verwenden.
              Die webafragen für die Widgets senden folgendes.
              webver=1 die version der webabfrage
              ver=xxAPI.loadedVersion die Version der xxAPI
              app=1 die Nummer des Widgets zum Download

              Diese Infos sind vielleicht jetzt noch nicht so wichtig.
              aber später wird es dazu verwendet ob die verwendete webafrage und
              die geladene xxAPI version kompatibel mit dem Widget sind.
              Nils

              aktuelle Bausteine:
              BusAufsicht - ServiceCheck - Pushover - HS-Insight

              Kommentar


                #8
                so, da ist der Salat schon....


                Da gibt es einen Server, kommt von (adsl.highway.telekom.at), und ruft seit gestern fast im Sekundentakt das Script ab.

                Ich hab da erst mal ne Bremse rein gemacht... Der kürzeste Abstand für einen Aufruf von einer IP ist 60 Sekunden....

                Kommentar


                  #9
                  das war mein fehler, ich denke
                  jemand hat die hslib von vorgestern importiert
                  die ich dann wieder entfernt hab

                  ist ein bug in der logik im gle

                  bitte updaten


                  sorry für die caps, antwort vom
                  handy
                  Nils

                  aktuelle Bausteine:
                  BusAufsicht - ServiceCheck - Pushover - HS-Insight

                  Kommentar


                    #10
                    Analog Uhr App (Firefox und Safari only)

                    Ich hab im Online-Demo mal eine Analog-Uhr hinzugefügt. (Firefox und Safari only)

                    APPid 21

                    Das Widget kann verwendet werden, indem einfach die Webabfrage xxAPI-Demo kopiert wird und als xxAPI-APPid21 gespeichert wird.
                    Und das davon zruückgegebene Textobjekt als dynamisches Textelement eingebaut wird. ( !!! SORRY ICH BIN NICHT WIRKLICH GUT IM ERKLÄREN, wenn das jemand hinkriegt und weiß wie mans besser erklärt, bitte los, ich steh mit Doku's und erklären, so'n bisschen auf Kriegsfuss)

                    Man kann das aber auch ohne webafrage dann werden jedoch auch keine updates gemacht. Einfach den hier den Teil zwischen den tags code kopieren und in ein 14Byte iKO.https://knx-user-forum.de/knx_xxAPI/...=widget&app=21
                    (geht glaub ich auch mit HS-Monitor)
                    Angehängte Dateien
                    Nils

                    aktuelle Bausteine:
                    BusAufsicht - ServiceCheck - Pushover - HS-Insight

                    Kommentar


                      #11
                      Hallo Nils,

                      auch ich bin schlichtweg begeistert, in welcher Zeit Du das alles auf die Beine gestellt hast. Die Webabfrage und auch das Video funktionieren bei mir. Jetzt habe ich mal aus deinem Musterprojekt die XX-Seiten in mein Projekt eingefügt.Leider funktioniert der XXlink bzw xxframe nicht Es öffnet sich zwar ein Fenster (siehe Anhang) aber die Webseite (Googel) wird nicht angezeigt. Was mache ich da Falsch???
                      Vielen Dank für deine Hilfe
                      Angehängte Dateien

                      Kommentar


                        #12
                        hi,

                        du hast die redirect.htm nicht ins verzeichniss hsupload kopiert.
                        (ooops. hab ich in diesem thread glaub ich auch noch nicht erwähnt )
                        Angehängte Dateien
                        Nils

                        aktuelle Bausteine:
                        BusAufsicht - ServiceCheck - Pushover - HS-Insight

                        Kommentar


                          #13
                          muß die redirekt.htm in den hsupload Ordner ider eine Ebene tiefer in den hsupload/hsav Ordner? Denn bei mir sieht der Aufruf genauso aus wie bei ThorstenW, aber bei mir ist die Datei im hsupload Ordner vorhanden.
                          Grüße Manuel

                          Kommentar


                            #14
                            Zitat von DJGockel Beitrag anzeigen
                            muß die redirekt.htm in den hsupload Ordner ider eine Ebene tiefer in den hsupload/hsav Ordner? Denn bei mir sieht der Aufruf genauso aus wie bei ThorstenW, aber bei mir ist die Datei im hsupload Ordner vorhanden.
                            die redirekt.htm heisst "redirect.htm" und muss direkt unter hsupload liegen, sodass sie unter
                            Code:
                            http://kluge01.dyndns.org/opt/redirect.htm
                            erreichbar ist.

                            Du verwendest NICHT die xxAPI sondern das vorherige "Programm" XXFunction aus dem DL-Bereich. Bitte nimm das ZIP aus dem ersten POST
                            https://knx-user-forum.de/52727-post1.html
                            Nils

                            aktuelle Bausteine:
                            BusAufsicht - ServiceCheck - Pushover - HS-Insight

                            Kommentar


                              #15

                              EDIT: IST schon behoben
                              Achtung

                              Ich habe gerade festgestellt das bei einem HS2 der Speicher des 14byte KO's nicht reicht um die xxAPI zu Speichern. Macht das iKo einfach erstmal nicht remanent und führt die Webabfrage xxAPI 1x nach Systemstart durch.

                              Ich werde versuchen die API zu verkleinern und zu komprimieren.
                              Nils

                              aktuelle Bausteine:
                              BusAufsicht - ServiceCheck - Pushover - HS-Insight

                              Kommentar

                              Lädt...
                              X