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

    Hallo Nils,

    die Breite passt noch nicht!

    Im Anhang die Daten aus dem Experten und das Ergebnis.

    Ich muß das Textfeld deutlich breiter machen, dass es passt!

    You do not have permission to view this gallery.
    This gallery has 2 photos.
    Gruß Hartwig

    Kommentar


      so passt jetzt, hatte vorher den Handle abgezogen, aber der steht ja eh auf einer Seite über, nun ist Slider und Gauge auf Element Breite/Höhe und der Handle steht halt über.
      Nils

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

      Kommentar


        Zitat von TirochH Beitrag anzeigen
        Bahnhofsuhr: Ortszeit von Homeserver.

        Hi Nils,

        was mache ich - wenn ich zB mit meinen iPad mich in New York befinde - da wird jetzt bei meiner Gira/xxAPI App die Zeit von iOS (iPad) übernommen. Wie kann ich bei der Bahnhofsuhr die Zeit vom Homeserver übernehmen ?

        Hans
        Zitat von NilsS Beitrag anzeigen
        mit der derzeitigen station-clock.js nur mit Änderung dort drin.
        Du kannst Zeile 209 austauschen mit
        Code:
        [COLOR=#00008B]var[/COLOR][COLOR=#000000] offset [/COLOR][COLOR=#000000]=[/COLOR][COLOR=#800000]2[/COLOR][COLOR=#000000];[/COLOR]
        [COLOR=#00008B]var time = new[/COLOR][COLOR=#2B91AF]Date[/COLOR][COLOR=#000000]([/COLOR][COLOR=#00008B]new[/COLOR][COLOR=#2B91AF]Date[/COLOR][COLOR=#000000]().[/COLOR][COLOR=#000000]getTime[/COLOR][COLOR=#000000]()[/COLOR][COLOR=#000000]+[/COLOR][COLOR=#000000] offset [/COLOR][COLOR=#000000]*[/COLOR][COLOR=#800000]3600[/COLOR][COLOR=#000000]*[/COLOR][COLOR=#800000]1000[/COLOR][COLOR=#000000]).[/COLOR][COLOR=#000000]toUTCString[/COLOR][COLOR=#000000]().[/COLOR][COLOR=#000000]replace[/COLOR][COLOR=#000000]([/COLOR][COLOR=#800000]/ GMT$/[/COLOR][COLOR=#000000],[/COLOR][COLOR=#800000]""[/COLOR][COLOR=#000000]); [/COLOR]
        Das CET/CEST Problem müsstest du selbst noch irgendwie lösen. zum letzen, das wird nicht funktionieren da der Browser das nicht erlauben wird.
        Zitat von TirochH Beitrag anzeigen

        Hi Nils,

        ich hab ein bißchen recherchiert.

        Was hältst du von http://www.momentjs.com ?

        Hans
        Zitat von NilsS Beitrag anzeigen
        sieht sehr gut aus, vorallem ist dort auch ein guter LOCALE Support drin.

        Habe "moment.js" jetzt via "custom.js" eingebaut.

        Folgende Einträge (rot markiert) für moment.js in custom.js (mit den Dateien im lokalen Sub-Directory):
        Code:
        /*
         * in Visu HS Experte: Statischer Text: XXANALOGCLOCK*
         */
        [COLOR=#FF0000]hs.functions.element_loader("js/moment.min.js");
        hs.functions.element_loader("js/moment-timezone-with-data.min.js");[/COLOR]
        hs.functions.element_loader("js/station-clock.tz.js");
        
        xxAPI.functions.XXANALOGCLOCK = function( oarg ) {
          var _id = "id_bahnhofsuhr";  
          oarg.item.html = "<canvas id='id_bahnhofsuhr' width='128px' height='128px' style='width:64px; height:64px;'/>";
          oarg.item.xxapi.analogclock = new StationClock(_id);
          $.extend(oarg.item.xxapi.analogclock,{
            "body" : StationClock.SmallWhiteBody,
            "dial" : StationClock.SwissStrokeDial,
            "hourHand" : StationClock.PointedHourHand,
            "minuteHand" : StationClock.PointedMinuteHand,
            "secondHand" : StationClock.HoleShapedSecondHand,
            "boss" : StationClock.NoBoss,
            "minuteHandBehavoir" : StationClock.BouncingMinuteHand,
            "secondHandBehavoir" : StationClock.BouncingSecondHand
          });
          oarg.item.next_update = 1;
          oarg.item.update_code = function ( oarg ) {
            oarg.item.xxapi.analogclock.draw();
            oarg.item.next_update = $.now() + 500;
          }
        };
        Austausch CODE (rot markiert) in station-clock.tz.js;
        Code:
              // get current time [COLOR=#FF0000](in defined timezone)[/COLOR]
              var time    = [COLOR=#FF0000]moment().tz("Europe/Vienna")[/COLOR];
              var millis  = time.[COLOR=#FF0000]millisecond()[/COLOR] / 1000;
              var seconds = time.[COLOR=#FF0000]second()[/COLOR];
              var minutes = time.[COLOR=#FF0000]minute()[/COLOR];
              var hours   = time.[COLOR=#FF0000]hour()[/COLOR];
        Damit kann ich jetzt in anderen Zeitzonen mit dem iPad die richtige Zeit (= lokale Zeit des Homeservers) anzeigen. Gilt auch für die Sommerzeit (DST).

        Wäre wahrscheinlich gut, allgemein statt der "new Date()"-Funktion, die "moment().tz('Europe/Berlin')"-Funktion für im Browser ablaufende Scripte zu verwenden.

        Denn - wenn Du Dich in einer anderen Zeitzone mit dem Client (zB iPad) befindest - würdest Du falsche Ergebnisse bekommen.

        Oder Du arbeitest prinzipiell mit UTC-Zeit (das kann sowohl "moment.js " als auch die js-Standardfunktion "Date()", für "moment.js" kann ich die lokale Zeitzone definieren). Die Frage ist dann, welche Zeit welcher Zeitzone wird vom Browser verarbeitet/angezeigt und speicherst Du die Zeit intern in UTC-Notifikation ab.

        Bei mir funktioniert die Bahnhofsuhr jetzt überall (mit unterschiedlichen Zeitzonen am Browserstandort) mit der lokalen Zeitzone des Homeservers.

        HANS
        Zuletzt geändert von TirochH; 15.03.2015, 13:22.
        Hans

        Kommentar


          So für alle die bislang Probleme mit der Installation hatten oder aber einfach mal gerne den AppCache nutzen möchten, oder vielleicht auch mal auf eine vorherige Version zurückwechseln möchten um zu sehen ob das Verhalten gleich ist.

          Viel Spaß

          http://service.knx-user-forum.de/?co...nload&id=12280

          Eigentlich braucht der Baustein nichts weiter als ein Trigger auf Eingang 1 um den Download zu starten.

          custom.js custom.css und alle Dateien in dem selbst angelegten Ordner cache im hsupload, werden automatisch in den AppCache mit aufgenommen. Dort können eigene Bilder und Scripte abgelegt werden. (Evtl. füge ich den Ordner js im hsupload auch noch hinzu)

          Alle Dateien die Dort abgelegt werden, werden einmalig beim Start, bzw nach einen HS Projektupload oder änderung im GIT komplett vor Appstart geladen.

          EDIT: Details werden auf der Debugseite angezeigt, ebenso wie ein Link auf die start.htm im jeweiligen Verzeichnis.
          Es können mehrere Instanzen in Unterschiedliche Ordner geladen werden (Eingang 2 / 3)

          Das remanentspeichern ist Aufrgund der Größe nicht möglich, aber Internet sollte ja sowieso immer zur Verfügung stehen nach einem HS Neustart.

          EDIT2: Es werden keine vorhandenen Dateien überschrieben, also verwendet einen anderen Ordner oder löscht die Dateien im hsupload die nicht von euch geändert wurden.
          Zuletzt geändert von NilsS; 15.03.2015, 17:48.
          Nils

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

          Kommentar


            Zitat von NilsS Beitrag anzeigen
            So für alle die bislang Probleme mit der Installation hatten oder aber einfach mal gerne den AppCache nutzen möchten, oder vielleicht auch mal auf eine vorherige Version zurückwechseln möchten um zu sehen ob das Verhalten gleich ist.

            Viel Spaß

            http://service.knx-user-forum.de/?co...nload&id=12280

            Eigentlich braucht der Baustein nichts weiter als ein Trigger auf Eingang 1 um den Download zu starten.

            custom.js custom.css und alle Dateien in dem selbst angelegten Ordner cache im hsupload, werden automatisch in den AppCache mit aufgenommen. Dort können eigene Bilder und Scripte abgelegt werden. (Evtl. füge ich den Ordner js im hsupload auch noch hinzu)

            Alle Dateien die Dort abgelegt werden, werden einmalig beim Start, bzw nach einen HS Projektupload oder änderung im GIT komplett vor Appstart geladen.

            EDIT: Details werden auf der Debugseite angezeigt, ebenso wie ein Link auf die start.htm im jeweiligen Verzeichnis.
            Es können mehrere Instanzen in Unterschiedliche Ordner geladen werden (Eingang 2 / 3)

            Das remanentspeichern ist Aufrgund der Größe nicht möglich, aber Internet sollte ja sowieso immer zur Verfügung stehen nach einem HS Neustart.

            EDIT2: Es werden keine vorhandenen Dateien überschrieben, also verwendet einen anderen Ordner oder löscht die Dateien im hsupload die nicht von euch geändert wurden.
            Lieber Nils,

            hab das in meine App eingebaut.

            Habe folgenden Logikbaustein: xxAPI2.loader.png


            Beim Triggern deines Bausteins kommt zuerst die Statusmeldung "DOWNLOADING" dann "logikerror".

            Bin davon ausgegangen, dass bestehende xxAPI mit ihren "custum.js" & "custom.css" & js-Bibliotheken (zB Bahnhofsuhr) in hsupload geladen werden. start.html kommt von Dir?

            Annahme Kopierrichtung IP/opt/E2 auf IP/opt. Konkret:192.x.x.x/.../hsupload/xxapi2 auf 192.x.x.x/.../hsupload

            Aufruf = lokaleIP/opt/start.htm

            Alle ursprünglichen Aufrufpfade funktionieren wie vorher.

            Hans
            Zuletzt geändert von TirochH; 15.03.2015, 21:50.
            Hans

            Kommentar


              Zitat von TirochH Beitrag anzeigen
              Hi Nils,

              wie skaliere ich folgenden Schirm in einem Sub-Window (900x600):

              derzeit so codiert:

              Code:
              XXIFRAME*http://19x.xxx.xxx.xxx/MainZone/index.html
              [ATTACH]n819012[/ATTACH]


              Hans
              Nils

              Hätte gerne dazu eine Antwort. Wenns leicht geht.

              Hans
              Zuletzt geändert von TirochH; 15.03.2015, 21:33.
              Hans

              Kommentar


                AFAIK, geht nicht. Du kannst zwar das IFRAME Element skalieren aber nicht den Inhalt der von einem anderen Origin kommt
                Nils

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

                Kommentar


                  Zitat von NilsS Beitrag anzeigen
                  AFAIK, geht nicht. Du kannst zwar das IFRAME Element skalieren aber nicht den Inhalt der von einem anderen Origin kommt
                  geht variante 2 (rot markierten Teil mit regulären Ausdruck rausfiltern ?)

                  oder

                  größeres iFrame und dann iFrame skalieren ?

                  Hans
                  Zuletzt geändert von TirochH; 16.03.2015, 07:43.
                  Hans

                  Kommentar


                    Zitat von NilsS Beitrag anzeigen
                    Das remanentspeichern ist Aufrgund der Größe nicht möglich, aber Internet sollte ja sowieso immer zur Verfügung stehen nach einem HS Neustart.
                    Hallo NilsS,

                    das sehe ich nicht so, bei uns fällt bei Gewittern schon recht häufig der Strom aus. Der HS startet meiner Meinung nach schneller, als meine Fritzbox die DSL-Verbindung wieder herstellt. Es ist in den letzten Jahren auch leider immer wieder vorgekommen, dass ich 2-3 Tage ohne DSL-Verbindung dastand. Gibt's da keine Fallback-Lösung auf was lokales, wenn DSL nicht vorhanden? Natürlich könnte ich einen zweiten Ordner mit fixierten Files anlegen, das überfordert dann aber die anderen User im Haus, wenn die Links auf Handy usw. nicht mehr funktionieren... Ich hoffe dir fällt was ein.... Evtl. wäre auch ein umswitchen auf einen lokalen Server zum Download möglich, wenn du Standard-Adresse nicht zu erreichen ist.

                    P.S.: Eine Option die custom-Files auf diese Weise zu laden wäre auch toll. Zum Testen kann man zwar mit dem Proxy super arbeiten, aber so wäre man einfach noch flexibler...
                    Wenn man zwei additive Eingänge für Custom-Pfad (dateien werden überschrieben) und Standard-Pfad (Dateien werden nicht überschrieben) hätte, könnte man sich eine entsprechende Logik selber bauen, incl. Schleife zum Warten auf eine vorhandene Verbidnung.

                    Kommentar


                      Hi Nils,

                      einige neue Ideen:

                      ...schwebende Fenster,
                      ...MultiGestures,
                      ...dynamische Menu's,
                      ...Apple Watch-Support
                      1. Gibt es die Möglichkeit ein oder mehrere verschiebbare "schwebende" FENSTER zu plazieren. Die untere Oberfläche sollte voll bedienbar sein (außer wo halt das schwebende Fenster ist).

                        Oder ein oder mehrere "virtuelle Ebenen" - umschaltbar, wobei der Umschalter auch ein "schwebendes Fenster" sein könnte.
                        .
                      2. Ein-/Aus-/Umschaltbar mit "multiGestures", zB mehrere Finger, streichen vom linken Rand?
                        .
                      3. Mit dem Streichen vom linken Rand könnte man auch "Menüleisten", etc. dynamisch zur Verfügung stellen.
                        .
                      4. Apple Watch Unterstützung per Bluetooth (schwebende Fenster auf Apple Watch statt auf iPad/iPhone)
                      Gruss HANS
                      Zuletzt geändert von TirochH; 16.03.2015, 08:36.
                      Hans

                      Kommentar


                        Moin Winni,

                        FAKT: Ist derzeit mit der xstart.htm doch nicht anders. Wenn kein Internet mehr können die Clients auch nicht mehr.

                        Ich muss mal sehen ob wir irgendwo was hinschummeln können, aber die mir einzig bekannte Möglichkeit in den 14Byte iKOs so wie z.B. bei hsphone und systemlog bräuchte bei je 10KB je iKO dann ca. 80 iKOs am Baustein. Das kann's ja dann eher nicht sein.

                        Das mit dem lokalen Server wäre ne Möglichkeit. geht aber nicht einfach so, denn es wird ja die github api verwendet und die hast du lokal nicht, welche Files wo mit welcher checksumme etc. Evtl. eine ZIP Datei als Backup laden.

                        custom.* werden NICHT durch den Baustein geladen, sonst würden ja immer die Beispiele von github eure überschreiben.
                        Nils

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

                        Kommentar


                          übringends, bitte den Baustein auf 1.003 Updaten und den Cache leeren.
                          Der HS liefert seinen content immer mit max-age=2000000 aus

                          Das hab ich erstmal überschrieben, sonst aktualisiert sich nämlich der AppCache nicht und damit auch der Rest nicht mehr.
                          Nils

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

                          Kommentar


                            FAKT: Ist derzeit mit der xstart.htm doch nicht anders. Wenn kein Internet mehr können die Clients auch nicht mehr.
                            Ist mir soweit klar, aber noch läuft die VISU nicht für den Rest der Familie.... Wie kann start.htm funktionieren? Sobald ich Daten lokal habe, werden sie laut deiner Beschreibung nicht überschireben, d.h. sobald ich start.htm verwende krieg ich mit xstart.htm keine Updates mehr? Bzw. mit dem FB ist's doch dann eh egal mit was ich starte, oder? Bin etwas verwirrt.

                            Das mit dem lokalen Server wäre ne Möglichkeit. geht aber nicht einfach so, denn es wird ja die github api verwendet und die hast du lokal nicht, welche Files wo mit welcher checksumme etc. Evtl. eine ZIP Datei als Backup laden.
                            War mir nicht bewusst.....

                            custom.* werden NICHT durch den Baustein geladen, sonst würden ja immer die Beispiele von github eure überschreiben.
                            Ich hatte es so aufgefasst, das nichts überschireben wird, was direkt in den Verzeichnissen steht... Hatte die Funktion mit dem Überschreiben nur für lokal angedacht, dann müßte man nicht jedesmal neu Uploaden, wenn man was an seinen Templates geändert hat...

                            P.S.: Kannst du mir noch einen Tip geben, wie man z.B. die Templates wechseln kann, damit meine ich in der Visu umschalten zwischen Werteingabe mit Zehnertastatur / XKNOB, z.B. durch ein Feld in der Titelzeile. Toll wäre es, in den Optionen mehrere Templates angeben zu können, die man "irgendwie" durchschalten kann.... (bitte nur überlegen wenn nicht sehr aufwändig, ist zugegebenermassen eine Spielerrei, kann heute noch nicht einschätzen wie sinnvoll das wirklich wäre)

                            Kommentar


                              Wenn du nur xstart.htm und deine custom.* bzw libs/theme.css dort liegen hast, dann sollten Baustein und xstart sich nicht in die Quere kommen. Die xstart wird dann halt auch nicht aktualisiert.

                              Aber wenn kein Internet mehr da ist, hast du von der xstart auch nichts. Eher werden die bestehende Clients bei Verwendung von start.htm durch eine nicht aktuellere Version der xxapi.appcache, warscheinlich weiter funktionieren. (müsste man mal testen aber eigentlich Sinn eines Offline Cache)
                              Nils

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

                              Kommentar


                                Also das mit dem Offline geht, hatte das bei einem Fehler des Bausteins.
                                Definitiv kein Content auf dem HS, aber selbst F5 lässt die Visu sauber starten. Das sollte also eigentlich passen. Könnt ihr ja selbst testen indem ihr den Trigger manuel macht oder mit einer Sperre verseht. Dann geht es mit einem Browser der vorher schon verbunden war aber mit neuen/inkognito nicht.
                                Nils

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

                                Kommentar

                                Lädt...
                                X