Ankündigung

Einklappen
Keine Ankündigung bisher.

Entwicklung: xxAPI² HTML5 Client

Einklappen
Das ist ein wichtiges Thema.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Wenn nichts angegeben wird die vorbelegung "xxapi" wie bei jeder Logik genutzt. Wenn du die Daten woanders abgelegt hast, dann musst du natürlich den Teil zwischen /opt/ und /start.htm dort angeben.
    Nils

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

    Kommentar


      Ich denke Hans meint, das Kreuz im Experten, mit dem man sagen kann, welche Verzeichnisse im hsupload überhaupt zum Homeserver übertragen werden müssen. Ja, mann muss hier das entpsrechende Verzeichnis (das auch der Baustein kennen muss) ankreuzen.

      Kommentar


        Zitat von Winni Beitrag anzeigen
        Ich denke Hans meint, das Kreuz im Experten, mit dem man sagen kann, welche Verzeichnisse im hsupload überhaupt zum Homeserver übertragen werden müssen. Ja, mann muss hier das entpsrechende Verzeichnis (das auch der Baustein kennen muss) ankreuzen.
        Winni. Danke, stimmt. Hab mein Posting präzisiert.

        Zitat von TirochH Beitrag anzeigen

        Wenn nicht angekreuzt -- wird custom.js nicht aufgerufen.

        ERGÄNZUNG: Im Gira Homeserver Experten unter "Stammdaten - Projekt - Oberfläche - Benutzerdefiniert, nur die markierten Bausteine"
        NilsS
        Zitat von NilsS Beitrag anzeigen
        Wenn nichts angegeben wird die vorbelegung "xxapi" wie bei jeder Logik genutzt. Wenn du die Daten woanders abgelegt hast, dann musst du natürlich den Teil zwischen /opt/ und /start.htm dort angeben.
        Wo ist bei Dir Nils - bei vorbelegter "xxapi" - die custom.js ?

        Gruss Hans
        Zuletzt geändert von TirochH; 18.03.2015, 09:34.
        Hans

        Kommentar


          Das mit dem Ankreuzen oder Nicht-Ankreuzen hat auch Seiteneffekte zum Quad-Client.

          Ich bekam folgende Fehlermeldung:

          Code:
          ---------- 17.03.2015 22:18:18
          Fehler beim Einlesen der project.xml [\\psf\Home\Documents\Gira\HS+FS Experte 4.2\Projekte\WOHNUNG170_012015\WOHNUNG170_052014\quadconfig\project.xml]: System.IO.IOException: Das Verzeichnis ist nicht leer.
          
             bei System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive)
             bei System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive)
             bei Quadconverter.OutputFiles.CClient.ClearHSUpload()
             bei Quadconverter.CReader.readProject(String _filename)
          Hab bei Quad-Client (im Experten) das Häckchen entfernt dann war Fehlermeldung weg. "Übertragen" Funktion (im Experten) war durch die Fehlermeldung gar nicht möglich.

          Habe jetzt - nachträglich - wieder Häckchen für Quad-Client (im Experten) gesetzt und bekomme - zu meiner Überraschung - beim "Übertragen" (im Experten) keine Fehlermeldung mehr.

          HANS
          Zuletzt geändert von TirochH; 18.03.2015, 09:53.
          Hans

          Kommentar


            Zitat von TirochH Beitrag anzeigen
            Wo ist bei Dir Nils - bei vorbelegter "xxapi" - die custom.js ?
            Projektordner\hsupload\xxapi\custom.js
            Bei Standardeintrag im Baustein Eingang 2 (vorbelegung "xxapi")
            Der Haken bei "xxapi" unter Projekt -> Oberfläche -> "Benutzerdefiniert, nur die markierten Verzeichnisse" ist natürlich gesetzt.

            Der Expertenfehler beim einlesen der project.xml hat des Quadclient hat definitiv rein gar nichts mit dem Baustein oder der xxAPI zu tun.
            Nils

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

            Kommentar


              Zitat von NilsS Beitrag anzeigen
              Projektordner\hsupload\xxapi\custom.js
              Bei Standardeintrag im Baustein Eingang 2 (vorbelegung "xxapi")
              Der Haken bei "xxapi" unter Projekt -> Oberfläche -> "Benutzerdefiniert, nur die markierten Verzeichnisse" ist natürlich gesetzt.
              NilsS Habs natürlich probiert. Das ganze funktioniert auch "ohne" Häckchen. Das Problem ist natürlich dann, daß die "lokalen" Einträge, wie custom.js, custom.css und eigenen Erweiterungen (wie Bahnhofsuhr oder eigene Start-Ikons) nicht zum Homeserver hochgeladen werden. Der Rest funktioniert auch ohne ein Häckchen - das war das Mißverständnis.
              Ich vermute, daß der QUAD-Seiteneffekt bei mir verursacht wurde, weil ich glaubte dass die "custom.* " Dateien ins "hsupload" Verzeichniis gehören.

              Hans
              Hans

              Kommentar


                Mein offizieller Vorschlag für das Logo:

                Für Apple: (76x76, 120x120, 152x152, 180x180)

                xxAPI.76x76.png xxAPI.120x120.png xxAPI.152x152.png xxAPI.180x180.png

                xxAPI.76x76.out.png xxAPI.120x120.out.png xxAPI.152x152.out.png xxAPI.180x180.out.png




                Für Microsoft & Adroid (128x128, 144x144, 192x192)


                xxAPI.128x128.png xxAPI.144x144.png xxAPI.192x192.png

                xxAPI.128x128.out.png xxAPI.144x144.out.png xxAPI.192x192.out.png








                Gruss HANS
                Angehängte Dateien
                Zuletzt geändert von TirochH; 20.03.2015, 00:22.
                Hans

                Kommentar


                  Zitat von Winni Beitrag anzeigen
                  Ich denke Hans meint, das Kreuz im Experten, mit dem man sagen kann, welche Verzeichnisse im hsupload überhaupt zum Homeserver übertragen werden müssen. Ja, mann muss hier das entpsrechende Verzeichnis (das auch der Baustein kennen muss) ankreuzen.
                  Nur wenn man custom.js/.css oder andere lokale Dinge nutzen möchte sonst nicht
                  Nils

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

                  Kommentar


                    Zitat von NilsS Beitrag anzeigen
                    TirochH weißt du ob man die ganzen Icons auch per Javascript setzen kann? Ich würde die .htm eigentlich möglichst selten anfassen wollen.

                    Das apple-touch-startup-image scheint auch irgendwie nicht zu funktionieren, ging das bei dir?
                    Die Zeit beim starten mit über Logikbaustein generiertem AppCache ist eh unter einer Sekunde aber würde mich schon interessieren ob da ein Fehler ist.
                    Ich hab via custom.js Deinen CODE verändert. Der Fehler "Display altes IKON nach Reboot des iPad" tritt auch nicht mehr auf.
                    Falls Du nichts verändert hat, würde ich vermuten daß IOS sensibel auf nicht richtig definierten "sizes"-Attributes reagiert.

                    @NilsS: Habe jetzt - wie von DIR vorgeschlagen - für Unterscheidung zwischen "Private" & "Public" Network mit unterschiedliche IKONs. Die Port-Abfrage gibt's nicht mehr.

                    Da jedenfalls meine "custom.js" Anpassungen:
                    Code:
                    /**
                     ** APPLE-TOUCH-ICON: unterschiedliches Icon für "PRIVATE" (Intranet) und "PUBLIC" (Internet)
                     **/
                    (function() {
                      /**
                       ** check if IP is in "Private IP" range:
                       **
                       ** CIDR: 10/8:        - Range:    10.0.0.0 -  10.255.255.255 - 16.777.214 Adressen (-2)  
                       ** CIDR: 172.16/12    - Range:  172.16.0.0 -  172.31.255.255 -     65.534 Adressen (-2)
                       ** CIDR: 192.168/16   - Range: 192.168.0.0 - 192.168.255.255 -        254 Adressen (-2)
                       ** CIDR: 127.0.0.1/32 - Range:   127.0.0.1                   - localhost              
                       **
                       ** CIDR: 100.64/10  - speziell für Internetdienstanbieter ist nicht berücksichtigt = Shared Address
                       ** CIDR: 169.254/16 - Automatic Private IP Addressing (APIPA) ist nicht berücksichtigt
                       **/
                      var ifPrivateIP = function(ip) {
                        var regexNumIP = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;  
                        if ( !( ip.match(regexNumIP) ) ) { // check if IPv4 regex (numerische IP)    
                          return false;                    // symbolische IP - dann Public        
                        }
                        // IPv4 check = OK
                        var parts = ip.split('.');
                        if (parts[0] === '10' || parts[0] === '010' ||
                           (parts[0] === '127' && (parseInt(parts[1], 10) == 0 && parseInt(parts[2], 10) == 0 && parseInt(parts[3], 10) == 1)) ||
                           (parts[0] === '172' && (parseInt(parts[1], 10) >= 16 && parseInt(parts[1], 10) <= 31)) ||
                           (parts[0] === '192' && parts[1] === '168')) {
                          return true;
                        }
                        return false;
                      }
                      $("link[rel|='apple-touch-icon'][sizes$='144']").attr("sizes","180x180"); // Korrektur auf IOS 8.x
                      $("link[rel|='apple-touch-icon'][sizes$='72']").attr("sizes","76x76");    // Korrektur auf IOS 8.x
                      if ( !( ifPrivateIP ( window.location.hostname ) ) ) { // access public via internet
                        ( window.location.href.split("/").pop().substr(0,1) == "x" ) ?
                          $("meta[name$='web-app-title']").attr("content","(x)HS 'Public'") : //xstart.htm
                          $("meta[name$='web-app-title']").attr("content","HS 'Public'");     //start.htm
                        $("link[rel|='apple-touch-icon'][sizes$='76']").attr("href","img/startup/xxAPI.76x76.out.png");
                        $("link[rel|='apple-touch-icon'][sizes$='120']").attr("href","img/startup/xxAPI.120x120.out.png");
                        $("link[rel|='apple-touch-icon'][sizes$='152']").attr("href","img/startup/xxAPI.152x152.out.png");
                        $("link[rel|='apple-touch-icon'][sizes$='180']").attr("href","img/startup/xxAPI.180x180.out.png");
                      } else {                             // access private via intranet (within own private network)
                        ( window.location.href.split("/").pop().substr(0,1) == "x" ) ?
                          $("meta[name$='web-app-title']").attr("content","(x)HS 'Private'") : //xstart.htm
                          $("meta[name$='web-app-title']").attr("content","HS 'Private'");     //start.htm
                        $("link[rel|='apple-touch-icon'][sizes$='76']").attr("href","img/startup/xxAPI.76x76.png");
                        $("link[rel|='apple-touch-icon'][sizes$='120']").attr("href","img/startup/xxAPI.120x120.png");
                        $("link[rel|='apple-touch-icon'][sizes$='152']").attr("href","img/startup/xxAPI.152x152.png");
                        $("link[rel|='apple-touch-icon'][sizes$='180']").attr("href","img/startup/xxAPI.180x180.png");
                      }  
                    })();
                    Gruss Hans

                    P.S.: Kannst Du Dich mit dem Logo-Vorschlag anfreunden ?
                    Zuletzt geändert von TirochH; 21.03.2015, 16:11.
                    Hans

                    Kommentar


                      Zitat von NilsS Beitrag anzeigen
                      Wie weit hast du die Werteingabe Templates denn schon eingebunden?

                      Ich hatte vergessen das ich das nur commited habe ohne was dazu zu schreiben xD


                      Also für das Werteingabe Popup mit Template poste ich einfach mal eben die Beispiele

                      Seite Popups -> (jeweils Tab:Titel 2.Zeile)
                      iDimmer Werteingabe 2.Reihe
                      Code:
                      XXOPTIONS*xxtemplate=DIMMER;top:MOUSE+0px;xxknob.fgcolor=red;
                      iDimmer Werteingabe 3.Reihe
                      Code:
                      XXOPTIONS*xxtemplate=DIMMER;top:MOUSE+0px;xxknob.fgcolor=orange;
                      Temperatur Werteingabe 3.Reihe
                      Code:
                      XXOPTIONS*top:MOUSE+0px;xxtemplate=TEMP;temp.low=10;temp.high=60
                      iDimmer Werteingabe 4.Reihe
                      Code:
                      XXOPTIONS*xxtemplate=DIMMER;top:MOUSE+0px;
                      Dimmer Werteingabe 4.Reihe
                      Code:
                      XXOPTIONS*xxtemplate=DIMMER;xxknob.fgcolor=red;
                      Speaker Werteingabe 4.Reihe
                      Code:
                      XXOPTIONS*xxtemplate=SPEAKER
                      Temperatur Werteingabe 4.Reihe
                      Code:
                      XXOPTIONS*xxtemplate=TEMP
                      Probiere gerade die XXKNOB Funktion aus.

                      Kann zwar den Standard-KNOB anzeigen und regeln. Im Experten/Oberfläche/Visualisierung: Via Einfügen 'Visu-Element - Text": Dyn. Text (Eintrag 'XXKNOB*' unter Optionaler Prefix) und Aufruf der Werteingabe. Auch die Vorder- und Hintergrundfarbe lassen sich im Visu-Element Text einstellen.

                      Was ich aber nicht kapiere ist, wo ich die XXOPTIONS einstelle. Wo und welchem Tool (Experte, custom.css, ...)? Habe auch im Forum gesucht, aber keinen Hinweis gefunden. Auf die verschiedenen Links von Nils zum Demoprojekt bekomme ich keine Verbindung.

                      Vielleicht hat wer einen Tipp? Ich hoffe auf Antwort - auch wenn Nils derzeit nicht zur Verfügung steht.

                      Hans

                      PS: Eine Doku wäre wirklich sehr hilfreich. Ich persönlich versuche für meinen Teil meine Postings "auch für andere" durch eher 'übergenaue' Beschreibungen für andere nachvollziehbar zu machen.

                      Kritische Bemerkung

                      Was ich in diesem Forum eher kritisch sehe, ist das fehlende Feedback. Zu meinen Vorschlägen, zB Ikons, UZSA, "Koordinationsvorschläge", Dokumentation "Custom"-Erweiterungen habe ich "Null" Feedback. Bin auch ansprechlich für negatives Feedback. Aber gar keines - das ist mir fast peinlich. Was ich aber beobachte ist, das auch keiner der anderen Teilnehmer dieses Forums ein Feedback bekommt. Falls Nils nicht da ist sinkt die Kommunikation auf den Level 0.

                      Bin schon gespannt auf eine Diskussion oder erwarte ich zuviel?
                      Zuletzt geändert von TirochH; 02.04.2015, 12:40.
                      Hans

                      Kommentar


                        Hallo Hans,

                        du musst eine Werteingabe als Aktion einstellen, dann hast du unter dem Tab "Titel" die 2.Zeile wo die XXOPTIONS rein kommen.

                        Zum Feedback muss ich dir recht geben, die Beteiligung außerhalb der eigenen Problemlösung ist erschreckend gering.

                        EDIT: Der Link zum Live-Demo Projekt geht nicht, da mein Demo-HS aus ist, das Projekt selber ist aber als Anhang downloadbar
                        https://knx-user-forum.de/forum/play...930#post674930
                        Zuletzt geändert von NilsS; 02.04.2015, 12:49.
                        Nils

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

                        Kommentar


                          Zitat von NilsS Beitrag anzeigen
                          Hallo Hans,

                          du musst eine Werteingabe als Aktion einstellen, dann hast du unter dem Tab "Titel" die 2.Zeile wo die XXOPTIONS rein kommen.
                          Das hab ich eh probiert.

                          Siehe mein Ergebnis



                          Hans

                          xxknob.jpg
                          Angehängte Dateien
                          Zuletzt geändert von TirochH; 02.04.2015, 15:36.
                          Hans

                          Kommentar


                            Das geht nicht beides zusammen. Entweder machst du mit XXKNOB* als dyn/statischer Text ein XXKNOB auf deiner eigenen Visuseite, oder du machst einfach NUR die Werteingabe mit den XXOPTIONS*xxtemplate=DIMMER....

                            Das Template DIMMER macht nichts anderes als statt der normalen Werteingabe halt einen XXKNOB dort zu platzieren.

                            Die anderen Optionen des KNOBs kannst du allerdings über die XXOPTIONS auch in deinem Beispiel durchreichen,
                            wie angleArc=250;angleOffset=-125;step=5

                            Du kannst auch ein eigenes Template bauen das du dann einfach, anstatt einzelner Visuseiten für jeden Dimmer, aufrufen kannst. Das geht dann über die custom.js und custom.css
                            Nils

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

                            Kommentar


                              Mit dem Switch auf die XXAPI2 warte ich halt noch bis diese auch Schaltuhren kann, und dann funktionieren halt auch meine Seitenumschaltungen in den Popups nicht.
                              Wenn dann alle Funktionen vorhanden sind werde ich sicher umstellen und mehr Feedback geben können.
                              Teilweise ist Feedback auch schwierig. Wenn ich sage zoomen funktioniert nicht wie früher, ist die Antwort, die Visu ist nicht zum zoomen da.
                              Leider wollte ich noch keine speziellen Seiten fürs Handy machen und meine Augen und die grobmotorischen Finger verlangen zeitweise nach Zoom, was ja bisher funktionierte.
                              Einen Slider für einen Dimmer hab ich bisher eingebaut und der funktioniert auch sehr gut.
                              Das Kameraarchiv verhält sich noch immer eigenartig, erst nach dem Wechsel auf Fullscreen mit F11 werden auch die letzten Bilder geladen und sind erreichbar.

                              Kommentar

                              Lädt...
                              X