Zurück   KNX-User-Forum > Playground > xxAPI
knx-user-forum - International KNX Award Winner 2010


Links
Kalender
Spende

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 24.04.2009, 09:09
Erfahrener Benutzer
 
Registriert seit: 17.12.2007
Ort: Cuxhaven
Beiträge: 2.716
NilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle Atmosphäre
Client xxAPI v0.99 - erweiterte AJAX-Visu

NICHT MEHR AKTUELL HIER GEHTS WEITER
xxAPI v1.0 erweiterte Ajax-Visu



*** 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
http://knx-user-forum.de/knx_xxAPI/xxAPI.php
Angehängte Grafiken
Dateityp: png xxAPI-Init-Text.PNG (15,2 KB, 2017x aufgerufen)
__________________
Nils

Geändert von NilsS (03.09.2009 um 16:16 Uhr)
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #2  
Alt 24.04.2009, 10:16
Benutzer
 
Registriert seit: 11.06.2007
Ort: Braunschweig
Beiträge: 432
lochj ist zur Zeit noch ein unbeschriebenes Blatt
Standard "erweiterte AJAX-Visu" 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.

Geändert von lochj (24.04.2009 um 10:30 Uhr)
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #3  
Alt 24.04.2009, 10:32
Erfahrener Benutzer
 
Registriert seit: 17.12.2007
Ort: Cuxhaven
Beiträge: 2.716
NilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle Atmosphäre
Standard

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.
http://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
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #4  
Alt 24.04.2009, 11:53
Benutzerbild von vento66
Erfahrener Benutzer
 
Registriert seit: 01.12.2008
Ort: Wien
Beiträge: 3.740
vento66 sorgt für eine eindrucksvolle Atmosphärevento66 sorgt für eine eindrucksvolle Atmosphärevento66 sorgt für eine eindrucksvolle Atmosphärevento66 sorgt für eine eindrucksvolle Atmosphärevento66 sorgt für eine eindrucksvolle Atmosphäre
Standard

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....
__________________
MfG Micha
HS Visu
Fragen gehören ins Forum, und nicht in mein Postfach!
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #5  
Alt 24.04.2009, 12:48
Erfahrener Benutzer
 
Registriert seit: 17.12.2007
Ort: Cuxhaven
Beiträge: 2.716
NilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle Atmosphäre
Blinzeln

UPDATE
siehe POST#1
__________________
Nils
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #6  
Alt 24.04.2009, 15:43
Admin
 
Registriert seit: 28.05.2007
Beiträge: 1.616
AScherff sorgt für eine eindrucksvolle AtmosphäreAScherff sorgt für eine eindrucksvolle AtmosphäreAScherff sorgt für eine eindrucksvolle AtmosphäreAScherff sorgt für eine eindrucksvolle Atmosphäre
Standard

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
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #7  
Alt 24.04.2009, 21:21
Erfahrener Benutzer
 
Registriert seit: 17.12.2007
Ort: Cuxhaven
Beiträge: 2.716
NilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle Atmosphäre
Standard

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
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #8  
Alt 26.04.2009, 17:56
Admin
 
Registriert seit: 28.05.2007
Beiträge: 1.616
AScherff sorgt für eine eindrucksvolle AtmosphäreAScherff sorgt für eine eindrucksvolle AtmosphäreAScherff sorgt für eine eindrucksvolle AtmosphäreAScherff sorgt für eine eindrucksvolle Atmosphäre
Standard

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....
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #9  
Alt 26.04.2009, 18:04
Erfahrener Benutzer
 
Registriert seit: 17.12.2007
Ort: Cuxhaven
Beiträge: 2.716
NilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle Atmosphäre
Standard

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
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #10  
Alt 26.04.2009, 22:33
Erfahrener Benutzer
 
Registriert seit: 17.12.2007
Ort: Cuxhaven
Beiträge: 2.716
NilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle AtmosphäreNilsS sorgt für eine eindrucksvolle Atmosphäre
Standard 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.http://knx-user-forum.de/knx_xxAPI/x...=widget&app=21
(geht glaub ich auch mit HS-Monitor)
Angehängte Grafiken
Dateityp: jpg CoolClock.jpg (42,1 KB, 1543x aufgerufen)
__________________
Nils

Geändert von NilsS (26.04.2009 um 22:56 Uhr)
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort

Stichworte
ajax, hsav, visu, xxapi

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ajax Visu und Kamera jowag KNX EIB Forum 11 04.05.2009 20:52
[HS/FS] Falsche Anzeige in Ajax Visu EIBPAN KNX EIB Forum 4 18.03.2009 23:15
HS Ajax Visu ro_ewr KNX EIB Forum 1 26.07.2008 00:26
Ajax Visu object Error jowag KNX EIB Forum 2 15.07.2008 22:18
[HS/FS] Ajax Visu und Visu Alarm DJGockel KNX EIB Forum 15 29.06.2008 19:09


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:11 Uhr.



SEO by vBSEO