Ankündigung

Einklappen
Keine Ankündigung bisher.

UZSU Widget

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

    Zitat von Hochpass Beitrag anzeigen

    DOM Daten für UZSU nicht vorhanden in uzsuDomClick!
    So Fehlermeldung ist nun auch behoben. Scheinbar kommt diese, wenn das Item nicht gefunden wird. Ich hatte mal wieder in [[] Problem. Nun geht auch die Liste.

    Noch mal danke fürs Widget.
    Zapft ihr Narren der König hat Durst

    Kommentar


      Hallo zusammen,
      das Plugin und das Widget laufen soweit, allerdings ist mir etwas unklar. Wenn ich über das Widget Zeiten konfiguriere, erscheinen diese nach dem Speichern nicht direkt in der interaktiven Smarthome.py Konsole. Erst nach einem Restart des Smarthome.py Dienstes, werden die neuen Werte im interaktiven Modus angezeigt.

      Hat mir jemand einen Tipp?

      Besten Dank!

      Matthias

      Kommentar


        Hallo Matthias, habe da keine Idee dazu. Michel

        Kommentar


          Zitat von Orion Beitrag anzeigen
          Hallo Matthias, habe da keine Idee dazu. Michel
          Hallo Michel,
          okay, das bedeutet aber das es nicht normal ist?
          Dann schau ich mal weiter.. Danke Dir!

          Grüße
          Matthias

          Kommentar


            Nachtrag: Man muss lediglich die interaktive Konsole neu starten, nicht den ganzen Dienst.

            Kommentar


              Hallo Michel,

              wie bekomme ich ein sunset-6 sprich -6 Grad Winkel mit der aktuellen Version des Widgets eingetragen?
              Wenn ich als event "sunset" wähle und dann im Feld daneben "-6" eintrage, wird das immer als "-6m" sprich Minuten und nicht Winkel übernommen.

              Hast du eine Idee dazu?

              Danke und Gruß,
              Henning

              Kommentar


                Hallo Henning,
                ja habe ich. Es gibt nur die Zeiteinteilung, die andere Variante habe ich nicht implementiert. Du kannst aber in die profiansicht wählen type=1 und dort kannst du der String wie im Plugin beschrieben auch mit grad eingeben.

                michel

                Kommentar


                  Hallo zusammen,
                  ich habe gerade versucht, dass UZSU widget für die Umstellung auf SVG Icons anzupassen. Leider hakt es noch irgendwo, eventuell liegt es am .css. Kennt sich jemand besser damit aus?

                  Viele Grüße
                  Alex

                  Meine Anpassung:
                  Widget_uzsu.html:
                  HTML-Code:
                  /**
                  * Widget for usage of uzsu plugin
                  * (c) Michael Würtenberger 2014, 2015
                  *
                  * develop v3 RC1
                  *
                  * läuft zusammen mit dem visu.js ab v2.8
                  *
                  * @param unique id for this widget
                  * @param a gad/item
                  * @param headline for popup (optional), default UZSZ
                  * @param designType for popup design (optional), default = '0',
                  *                                                 expert mode = '1'  (value, time, rrule direct input)
                  * @param pic on (optional), default = clock
                  * @param pic off (optional), default = clock
                  * @param valueType (optional), default = bool, supported types are 'bool', 'num', 'text', 'list'
                  * @param valueParameterList (optional), default set in js depending on valueType
                  * @param optional color
                  */
                  
                  {% macro uzsu_icon(id, gad_uzsu, gad_headline, gad_designType, pic_on, pic_off, gad_valueType, gad_valueParameterList, color) %}
                  
                      <span
                          id="{{ uid(page, id) }}"
                          data-widget="uzsu.uzsu_icon"
                          data-item="{{ gad_uzsu }}"
                          data-headline="{{ gad_headline|default('UZSU') }}"
                          data-designType="{{ gad_designType | default('0') }}"
                          data-pic-on="{{ pic_on|deficon('time_timer_switch.svg') }}"
                          data-pic-off="{{ pic_off|deficon('time_timer_switch.svg') }}"
                          data-valueType="{{ gad_valueType|default('bool') }}"
                          data-valueParameterList="{{ implode(gad_valueParameterList) }}"
                          class="switch">
                                  <a>
                                      <img id="{{ uid }}-off" class="icon" src="{{ pic_off|deficon('time_timer_switch.svg') }}" />
                                      {% if color is empty  %}
                                          <img id="{{ uid }}-on" class="icon icon1 hide" src="{{ pic_on|deficon('time_timer_switch.svg') }}" />
                                      {% elseif color == 'icon1' %}
                                      <img id="{{ uid }}-on" class="icon icon1 hide" src="{{ pic_on|deficon('time_timer_switch.svg') }}" />
                                      {% else %}
                                      <img id="{{ uid }}-on" class="icon icon1 hide" style="stroke:{{ color }}; fill:{{ color }};" src="{{ pic_on|deficon('time_timer_switch.svg') }}" />
                                      {% endif %}
                                  </a>
                      </span>
                      
                  {% endmacro %}
                  .jss:
                  HTML-Code:
                  // Verankerung als Callback in den DOM Elementen
                  $(document).on('update','[data-widget="uzsu.uzsu_icon"]', uzsuDomUpdate);
                  $(document).on('click','[data-widget="uzsu.uzsu_icon"]', uzsuDomClick);
                  $(document).delegate('span[data-widget="uzsu.uzsu_icon"]', {
                      'draw': function(event) {
                          if($(this).val() == $(this).attr('data-val-on')) {
                              $('#' + this.id + '-off').hide();
                              $('#' + this.id + '-on').show();
                          }
                          else {
                              $('#' + this.id + '-on').hide();
                              $('#' + this.id + '-off').show();
                          }    
                      }
                  });
                  
                  //----------------------------------------------------------------------------
                  //Funktionen für das Verankern des Popup auf den Webseiten
                  //----------------------------------------------------------------------------
                  function uzsuDomUpdate(event, response) {
                      // Initialisierung zunächst wird festgestellt, ob Item mit Eigenschaft vorhanden. Wenn nicht: active = false
                      // ansonsten ist der Status von active gleich dem gesetzten Status
                      var active = response.length > 0 ? response[0].active : false;
                      $(this).trigger('draw');
                  
                      // wenn keine Daten vorhanden, dann ist kein item mit den eigenschaften hinterlegt und es wird nichts gemacht
                      if (response.length === 0){
                          alert('DOM Daten für UZSU nicht vorhanden in uzsuDomUpdate !');
                          return;
                      }
                      // Wenn ein Update erfolgt, dann werden die Daten erneut in die Variable uzsu geladen damit sind die UZSU objekte auch in der click Funktion verfügbar
                      if (response[0].list instanceof Array) {
                          $(this).data('uzsu', response[0]);
                      }
                      else {$(this).data('uzsu', {active : true,list : []    });
                      }
                  
                  }

                  Kommentar


                    Hallo Alex,

                    ich habe noch nicht auf SVG umgestellt, weil auch nicht offiziell 2.8 released ist. Du verwendest auch nicht die 3.0 final (sollest du tun, da waren noch Änderungen drin.
                    Aus der Theorie (ich habe mal ins Git geschaut): ist an Martins Beispielen im .js folgendes bei der Umstellung aus SVG passiert:
                    Code:
                    [I][B]-        $('#' + this.id + ' img').attr('src', (response == $(this).attr('data-val-on') ? $(this).attr('data-pic-on') : $(this).attr('data-pic-off')));[/B][/I]
                    +        $(this).val(response);
                    +        $(this).trigger('draw');
                    Wenn ich bei mir schaue, dann habe ich die erste Zeile davon auch im .js drin:
                    Code:
                    function uzsuDomUpdate(event, response) {
                        // Initialisierung zunächst wird festgestellt, ob Item mit Eigenschaft vorhanden. Wenn nicht: active = false
                        // ansonsten ist der Status von active gleich dem gesetzten Status
                        var active = response.length > 0 ? response[0].active : false;
                        // Das Icon wird aktiviert, falls Status auf aktiv, ansonsten deaktiviert angezeigt
                      [I][B]  $('#' + this.id + ' img').attr('src',(active ? $(this).attr('data-pic-on') : $(this).attr('data-pic-off')));[/B][/I]
                        // wenn keine Daten vorhanden, dann ist kein item mit den eigenschaften hinterlegt und es wird nichts gemacht
                    Probiere doch mal genau an dieser Stelle den Diff analog aus. Müsste dann heissen:
                    Code:
                    function uzsuDomUpdate(event, response) {
                        // Initialisierung zunächst wird festgestellt, ob Item mit Eigenschaft vorhanden. Wenn nicht: active = false
                        // ansonsten ist der Status von active gleich dem gesetzten Status
                        var active = response.length > 0 ? response[0].active : false;
                        // Das Icon wird aktiviert, falls Status auf aktiv, ansonsten deaktiviert angezeigt
                    [I][B]     $(this).val(active);
                         $(this).trigger('draw');[/B][/I]
                        // wenn keine Daten vorhanden, dann ist kein item mit den eigenschaften hinterlegt und es wird nichts gemacht
                    Grüße Michel

                    Kommentar


                      Zitat von Orion Beitrag anzeigen
                      Es gibt nur die Zeiteinteilung, die andere Variante habe ich nicht implementiert.
                      Hallo Michel,

                      besteht Hoffnung, dass du das noch implementierst?

                      Das ist das einzige was mir in der Version 3 noch fehlt und nur deswegen auf die manuelle Version wechseln zu müssen, wäre sehr schade, weil man den Komfort verliert.

                      Gruß Henning

                      Kommentar


                        Hi Leute.
                        Ich fange gerade erst an, bitte habt etwas nachsicht.
                        Ich bekomme auch folgende Fehlermeldung:
                        Code:
                        DOM Daten für UZSU nicht vorhanden in uzsuDomClick!
                        Dann habe ich mal die Webkonsole geöffnet und er schmeißt mir bei JS folgende Fehler raus:
                        Code:
                        SyntaxError: Using //@ to indicate sourceMappingURL pragmas is deprecated. Use //# instead jquery-2.0.3.min.js:1
                        Error: http://localhost/smartVISU/vendor/jquery/jquery-2.0.3.min.js is being assigned a //# sourceMappingURL, but already has one
                        SyntaxError: Using //@ to indicate sourceMappingURL pragmas is deprecated. Use //# instead jquery.mobile-1.3.2.min.js:7
                        Error: http://localhost/smartVISU/vendor/jquery.mobile/jquery.mobile-1.3.2.min.js is being assigned a //# sourceMappingURL, but already has one
                        getPreventDefault() sollte nicht mehr verwendet werden. Verwenden Sie stattdessen defaultPrevented. jquery-2.0.3.min.js:5
                        Leerer String an getElementById() übergeben. jquery.mobile-1.3.2.min.js:6
                        Ich bin noch am testen und einlernen und wollte das erstmal auf meinem Ubuntu-Rechner offline ausprobieren.
                        Mir kommt es so vor, dass das .js ein Fehler hat!

                        Nachdem ich noch ein bisschen rumgefummelt habe:
                        Code:
                        getPreventDefault() sollte nicht mehr verwendet werden. Verwenden Sie stattdessen defaultPrevented. jquery-2.0.3.min.js:5:0
                        Leerer String an getElementById() übergeben. jquery.mobile-1.3.2.min.js:6:0
                        TypeError: response.list is undefined    --> visu.js
                        Es scheint diese Zeile Problem zu bereiten (undefiniert):
                        Code:
                        for (var numberOfEntry = 0; numberOfEntry < response.list.length; numberOfEntry++) {
                        timeCron = '';
                        tabsTime = response.list[numberOfEntry].time.split('<');
                        Zuletzt geändert von wolder; 02.06.2015, 11:00.

                        Kommentar


                          Hallo,

                          die Fehlermeldung am Ende ist nachvollziehbar mit dem Popup. Werde ich im nächsten Release korrigieren. Unterm Strich hast Du dann aber immer noch keine UZSZ im Popup, weil die Daten wirklich fehlen. Da bitte mal bei den Problemlösungen gleicher Art mal durcharbeiten (doppelte ID's, Cache usw.).

                          Grüße

                          Michel

                          Kommentar


                            Richtig, es erscheint noch keine UZSZ im Popup.
                            Ich hab eigentlich nur das Beispiel aus dem Git benutzt, um mich da mal reinzuarbeiten.
                            Weiß im Moment noch nicht weiter.
                            Ich suche dann mal.
                            ....
                            Und finde nix....

                            usr/local/smarthome/items/items.config
                            Code:
                            # items/my.conf
                            [eg]
                                [[Treppe]]
                                    [[[An_Aus]]]
                                        type = bool
                                        [[[[Schaltuhr]]]]
                                            type=dict
                                            uzsu_item=eg.Treppe.An_Aus
                                            cache=True
                                            visu_acl=rw
                            usr/local/smarthome/plugins/plugin.conf
                            Code:
                            # plugin.conf
                            [knx]
                               class_name = KNX
                               class_path = plugins.knx
                               host = 127.0.0.1
                               port = 6720
                            #   send_time = 600 # update date/time every 600 seconds, default none
                            #   time_ga = 1/1/1 # default none
                            #   date_ga = 1/1/2 # default none
                            [ow]
                                class_name = OneWire
                                class_path = plugins.onewire
                            [visu]
                                class_name = WebSocket
                                class_path = plugins.visu
                                smartvisu_dir = /var/www/smartVISU
                                # for Ubuntu 14.04 upwards the base for html has changed
                                # smartvisu_dir = /var/www/html/smartVISU
                            [cli]
                                class_name = CLI
                                class_path = plugins.cli
                                ip = 0.0.0.0
                                update = True
                            [sql]
                                class_name = SQL
                                class_path = plugins.sqlite
                            [uzsu]
                                class_name = UZSU
                                class_path = plugins.uzsu
                            var/www/smartVISU/pages/test/eg.html
                            Code:
                            {% extends "rooms.html" %}
                            
                            
                            {% block content %}
                            {% import "widget_uzsu.html" as uzsu %}
                            {{ uzsu.uzsu_icon('IrgendeinName', 'eg.Treppe.Schaltuhr', 'NameDerUhr') }}
                            
                            {% endblock %}
                            widget_uzsu.html und Visu.js ist V3!

                            Zuletzt geändert von wolder; 02.06.2015, 14:39.

                            Kommentar



                              Hallo Michel,

                              danke für deine schnelle Rückmeldung. Mit einer Mischung aus Deinem Hinweis und dem Anpassen einer ID, die noch falsch war, funktioniert das Widget jetzt auch mit den SVG Icons. Ich habe zusätzlich noch die "Color" Option hinzugefügt, mit der die Farbe für das "aktiv" Icon noch abweichend vom generellen Design definiert werden kann. Dateien liegen im Angehängten ZIP Ordner.

                              Grüße
                              Alex


                              Angehängte Dateien
                              Zuletzt geändert von aschwith; 02.06.2015, 16:03. Grund: Ärger mit dem .zip Anhang

                              Kommentar


                                @wolder:

                                Lösche mal unter /usr/smarthome/var/cache alles, was mit .uzsu endet. Ich würde auch einmal das Cache = true aus dem item herausnehmen. Wichtig: ist die Verbindung zum Backend vorhanden und funktioniert ?

                                Michel

                                Kommentar

                                Lädt...
                                X