Ankündigung

Einklappen
Keine Ankündigung bisher.

Gauge plugin - war: Web Plugin und Ajax

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

    #16
    Richtig, wobei ich da vorschlagen würde auf eine halbwegs nutzbare Reife und v.a. finale API des Plugins zu warten.
    Denn sobald es in der XSD ist, würde beim nächsten anstehenden Release (im Zweifel schon 0.8.1 ) jeder das Plugin schon leicht per Editor nutzen können...

    (PS: Ich hoffe und glaube, dass wir das zur 0.8.1 stabil bekommen )
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    Kommentar


      #17
      Hallo NetFriz

      Unter https://github.com/HanSolo/SteelSeries-Canvas habe nichts zur
      License gefunden.
      Bitte kontrollieren ob es dort Einschränkungen gibt.
      Im Quelltext steht:


      Code:
      * Copyright (c) 2011, Gerrit Grunwald, Mark Crossley
       * All rights reserved.
       *
       *  Redistribution and use in source and binary forms, with or without modification, are permitted
       *  provided that the following conditions are met:
       *
       *  # Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
       *  # Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
       *    disclaimer in the documentation and/or other materials provided with the distribution.
       *
       *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
       *   BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
       *   SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
       *   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
       *   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
       *   OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
       */
      Heist für mich, wenn der js - Code genutzt wird, steht das ja im Quelltext und damit ist die Nutzung erlaubt. Man kann halt die Autoren nicht haftbar machen

      Ansonsten, sehr cooles Plugin

      vG
      Wolfgang

      Kommentar


        #18
        Sehr schön!

        Zur Lizenz - hab mir das gerade als zweites angesehen - die ist zwar dort und im Original etwas schwammig aber m.E. Ok; Falls es beim Release selbst minified wird, würde ich die Ausgangs .js mit (C) mitliefern, dann sollte das passen.

        Makki
        EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
        -> Bitte KEINE PNs!

        Kommentar


          #19
          Hallo
          Mit der Lizenz klappt es, ist ja schön.
          Habe mich mal an der visu_config.xsd versucht.
          Ist aber noch nicht im SVN.

          Code:
            <xsd:complexType name="gauge">
              <xsd:sequence>
                <xsd:element name="layout" type="layout" minOccurs="0" maxOccurs="1"/>
                <xsd:element name="label" type="label" minOccurs="0" maxOccurs="1"/>
                <xsd:element name="address" type="address" minOccurs="1"  maxOccurs="unbounded"/>
              </xsd:sequence>
              <xsd:attribute name="type" type="xsd:string" use="optional" />                  <!-- WindDirection, Radial -->
              <xsd:attribute name="titleString" type="xsd:string" use="optional" />           <!-- Windrichtung, Windstärke, Lux -->
              <xsd:attribute name="unitString" type="xsd:string" use="optional" />            <!-- km/h, % und usw -->
              <xsd:attribute name="minValue" type="dimension" use="optional" />               <!-- 0 -->
              <xsd:attribute name="maxValue" type="dimension" use="optional" />               <!-- 110 -->
              <xsd:attribute name="size" type="dimension" use="optional" />                   <!-- 200 -->
              <xsd:attribute name="lcdVisible" type="xsd:boolean" use="optional" />           <!-- true, false -->
            </xsd:complexType>
          und die visu_config.xml dazu.
          Code:
               <page name="gauge" visible="false">
                <group name="gauge" nowidget="true">
                  <layout colspan="12"/>
                  <gauge type="WindDirection" titleString="Wind" size="200">
                    <layout colspan="1.7"/>
                    <address transform="DPT:9.001" mode="read" variant="">5/0/15</address>   <!-- Last -->
                    <address transform="DPT:9.001" mode="read" variant="">5/0/16</address>   <!-- Avg -->
                  </gauge>
                  <gauge type="Radial" titleString="Windstaerke" unitString="km/h" minValue="0" maxValue="100" size="200" lcdVisible="true">
                    <layout colspan="1.7"/>
                    <address transform="DPT:9.001" mode="read" variant="">5/0/15</address>
                  </gauge>
                </group>
              </page>
          Hoffe mal das die xsd fast zu gebrauchen ist.


          Habe gerade mal festgestellt mein Notepad++ steht immer wieder wenn ich eine neue Datei lade oft im ANSI.
          Stelle ich dann auf Konvertiere zu UTF-8 und speichere sie dann.
          Lade ich die Datei dann wieder neu steht sie wieder auf ANSI.
          In Win-SPC steht unter Einstellungen Editor Notepad++ UTF-8 und auch in Notepad++ auch.
          Erst wenn ich mit Putty und MC Editor die ganzen Pfeile rausnehme und dann die die Datei speichere, steht sie im Notepad++ auf UTF-8.

          Gruß NetFritz
          KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
          WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
          PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

          Kommentar


            #20
            Hallo NetFritz,

            vielen Dank für das wirklich tolle Plugin, welches ich auch gleich ausprobiert habe. (siehe Anlage) Du hast mich damit motiviert den "ELV Funk-Kombi-Wettersensor - KS 300-2" zu bestellen und die Messdaten mit Gauge zu visualisieren.

            An dieser Stelle auch ein dickes Danke an Michixx, welcher immer wieder sehr hilfreiche Links ins Forum gestellt hat, welche mir schon oft geholfen und für neue Ideen gesorgt haben.

            Nun freue ich mich auf die 0.8.1 und darauf, dass sich damit die folgende Editor Meldung erledigt haben dürfte: "The configuration appears to be not valid. Please check with 'check_config.php' for details. Error: 'xsd does not match this configuration, or configuration is not valid for gauge'" und auf die Möglichkeit, mit diesem tollen Plugin dann "echte" Messdaten anzuzeigen.

            VG
            Tommy
            Angehängte Dateien

            Kommentar


              #21
              Hallo
              Habe heute schon den ganzen Tag gebastelt.
              Die structure_plugin.js sieht jetzt so aus.
              Code:
              $.includeScripts([
                'plugins/gauge/lib/tween-min.js',
                'plugins/gauge/lib/steelseries-min.js'
              ], templateEngine.pluginLoaded );
              
              VisuDesign_Custom.prototype.addCreator("gauge", {
                      create: function( element, path, flavour, type ) {
                      var $e = $(element);
                      var radial = {};
                      // create the main structure
                      var ret_val = basicdesign.createDefaultWidget( 'gauge', $e, path, flavour, type, this.update);     
                      
                     function uniqid() {
                          var newDate = new Date;
                          return newDate.getTime();
                      }
                      var id = "gauge_" + uniqid();
                      var radialid = uniqid();
              
                      // and fill in widget specific data
                      ret_val.data( {
                       'type' : $e.attr('type'),
                         'titleString' : $e.attr('titleString') || '', 
                         'unitString' : $e.attr('unitString') || '', 
                         'minValue' : $e.attr('minValue') || 0, 
                         'maxValue' : $e.attr('maxValue') || 100,
                         'lcdVisible' : $e.attr('lcdVisible') || false,
                         'size' : $e.attr('size') || '150', 
                         'format'  : $e.attr('format')
                       } );    
                      var data = ret_val.data();
                      var titleString = data.titleString;
                      var type = data.type;
                      var size = data.size;
                      var unitString = data.unitString;
                      var lcdVisible = data.lcdVisible;
                      var minValue = data.minValue;
                      var maxValue = data.maxValue;
              
                      // create the actor
                      var $actor = $('div class="actor"><div class="value"></div></div><canvas id=' + id + '></canvas>');  
                      ret_val.append( $actor ); 
                      basicdesign.defaultUpdate(undefined, undefined, ret_val, true);
                              
                      templateEngine.bindActionForLoadingFinished(function() {
                            radial[radialid] = new steelseries[type](id, {
                                   titleString : [titleString],
                                    unitString : [unitString],
                                          size : [size],
                                     lcdVisible: [lcdVisible]
                            });
                            if (type == 'Radial') {
                                 radial[radialid].setFrameDesign(steelseries.FrameDesign.BLACK_METAL);
                                 radial[radialid].setBackgroundColor(steelseries.BackgroundColor.DARK_GRAY);
                                 radial[radialid].setForegroundType(steelseries.ForegroundType.TYPE1);
                                 radial[radialid].setPointerColor(steelseries.ColorDef.RED);
                                 radial[radialid].setPointerType(steelseries.PointerType.TYPE1);
                                 radial[radialid].setMinValue(minValue);
                                 radial[radialid].setMaxValue(maxValue);
                                 radial[radialid].setValueAnimated(10);
                            } else if(type == 'WindDirection'){
                                 radial[radialid].setFrameDesign(steelseries.FrameDesign.BLACK_METAL);
                                 radial[radialid].setBackgroundColor(steelseries.BackgroundColor.DARK_GRAY);
                                 radial[radialid].setForegroundType(steelseries.ForegroundType.TYPE1);
                                 radial[radialid].setPointerColor(steelseries.ColorDef.RED);
                                 radial[radialid].setPointerTypeAverage(steelseries.PointerType.TYPE1);
                                 radial[radialid].setValueAnimatedLatest(80);
                                 radial[radialid].setValueAnimatedAverage(90);
                            }
                      });
                      return ret_val;    
                      },
                  update: function(e,d) { 
                  var element = $(this);
                  var value = basicdesign.defaultUpdate( e, d, element, true );
                  console.log("value= ",value);
                 }
              });
              In der 3.letzten Zeile habe ich ein console.log wo value angezeigt wird,
              der value Wert ist so richtig.
              Der muss beim Radial-Gauge in "radial[radialid].setValueAnimated[value];" rein.
              Value muss ja wohl aus "ret_val" aus der Zeile
              "var ret_val = basicdesign.createDefaultWidget( 'gauge', $e, path, flavour, type, this.update);"
              ausgelesen werden.
              Das habe ich noch nicht hin bekommen.
              Bei Gauge-WindDirection müssen 2 Grpadr eingelesen werden, die kommen dann in
              "radial[radialid].setValueAnimatedLatest[value]; und radial[radialid].setValueAnimatedAverage[value_avg];"

              Ich schiebe diese "structure_plugin.js" mal ins SVN.

              Gruß NetFritz
              KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
              WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
              PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

              Kommentar


                #22
                So, jetzt bewegt sich der Zeiger

                Wegen dem Average muss ich gerade noch mal schaun, wie das mit dem Variant geht. Man vergisst so viel in so kurzer Zeit...
                TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                Kommentar


                  #23
                  So, mit
                  Code:
                  <address transform="DPT:9.001" mode="read" variant="">12/7/9</address>   <!-- Last -->
                  <address transform="DPT:9.001" mode="read" [B]variant="average"[/B]>12/7/91</address>   <!-- Avg -->
                  geht jetzt auch das Average
                  TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                  Kommentar


                    #24
                    Hallo
                    Das ist ja Klasse, vielen Dank.
                    Habe gerade Probleme mit meinem WG und SVN.
                    Bekomme immer folgende Fehlermeldung:
                    Code:
                    root@wiregate544:/var/www/visu_svn# svn update
                    
                    Hole externen Verweis nach »dependencies/jsfloorplan.js«
                    Externer Verweis, Revision 2057.
                    
                    
                    Hole externen Verweis nach »dependencies/Three.js«
                    svn: warnung: Netzwerkverbindung wurde unerwartet geschlossen
                    
                    svn: warnung: Fehler beim Umgang mit der Definition des externen Verweises für »dependencies/poly2tri.js«:
                    svn: warnung: Netzwerkverbindung wurde unerwartet geschlossen
                    
                    Hole externen Verweis nach »config/media/demo_texture_512x512.png«
                    svn: warnung: Netzwerkverbindung wurde unerwartet geschlossen
                    
                    Revision 2057.
                    root@wiregate544:/var/www/visu_svn#
                    Werde mal ein neues CV Verzeichnis anlegen.
                    Gruß NetFritz
                    KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
                    WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
                    PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

                    Kommentar


                      #25
                      Die Referenzen wollte ich eh mal rauswerfen - die machen unterm Strich nur mehr Ärger als dass die helfen. Hätte eine tolle Sache sein können

                      Ändert habe hier nichts - und ist für diesen Thread Off Topic.

                      Bei Dir konkret würde ich es einfach noch einmal probieren. Frisch auschecken ist aber sicherlich auch nicht verkehrt.
                      TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                      Kommentar


                        #26
                        Ich weiß, ist für diesen Thread Off Topic.

                        Ich habe aber seit Sonnabend die selben Probleme mit dem SVN Update.
                        Frisch auschecken hat am Sonntag aber auch nichts gebracht, die Netzwerkverbindung wird immer wieder unerwartet geschlossen.
                        Ich werde es heute noch einmal probieren.

                        Kommentar


                          #27
                          Hallo

                          Habe Heute die CV Frisch ausgescheckt, hat aber nichts geholfen.

                          In der structure_plugin.js wird nur beim Gauge(Winddirection) mit:
                          "setValueAnimatedLatest"
                          "setValueAnimatedAverage"
                          Der letzte Wert und AVG Wert übergeben.

                          Für Gauge(Radial) lautet der Wert aber anders:
                          "setValueAnimated"
                          Das muss noch eingefügt werden.

                          Auch aus dieser Zeile:
                          "var $actor = $('div class="actor"><div class="value"></div></div><canvas id=' + id + '></canvas>');"
                          muss das "<div class="value"></div> raus,
                          das div wird sonst von der CV zusätlich angezeigt.

                          @Chris M. kannst Du da nochmal darüber schauen,vor allen wegen:
                          "setValueAnimated"?

                          Nochmal Danke.
                          Gruß NetFritz
                          KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
                          WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
                          PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

                          Kommentar


                            #28
                            Zitat von NetFritz Beitrag anzeigen
                            @Chris M. kannst Du da nochmal darüber schauen,vor allen wegen:
                            "setValueAnimated"?
                            Klar kann ich - aber ich mach hier Hilfe zur Selbsthilfe
                            (Dabei ist mir aufgefallen das in der Doku eine Riesen-Lücke klafft: ein Text für Entwickler, der den Mechanismus des Seitenaufbaus, das Update bei neuen Bus-Nachrichten und die Action bei User-Input beschreibt - dann sollte nicht mal mehr diese Hilf notwendig sein...)

                            Warum ich es hier nicht umsetzen möchte:
                            • Die Änderung sollte für Dich trivial sein, schau einfach mal was ich gemacht habe
                            • Ich kenne die Gauges nicht, d.h. ich weiß nicht welche ganzen obskuren Funktionen für welche sonstigen Gauges aufgerufen werden müssen. D.h. jemand, der das kennt (-> Du) sollte sich hier eine generische Lösung für das "variant"-Attribut überlegen und dann entsprechend mappen
                            TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                            Kommentar


                              #29
                              Also bei mir funktioniert folgendes:

                              Code:
                                  switch( variant )
                                  {
                                    case 'average':
                                      if( element.data('radial') && element.data('radial').setValueAnimatedAverage )
                                        element.data('radial').setValueAnimatedAverage( value );
                                      break;
                              
                                      case 'latest':
                                      if( element.data('radial') && element.data('radial').setValueAnimatedLatest )
                                        element.data('radial').setValueAnimatedLatest( value );
                                      break;
                                      
                                    default:
                                      if( element.data('radial') && element.data('radial').setValueAnimated )
                                        element.data('radial').setValueAnimated( value );
                                      break;
                                  }
                              Viele Grüße Jens

                              Kommentar


                                #30
                                Hallo
                                Also bei mir funktioniert folgendes:
                                Dann steht in der aber in der visu_config.xml unter variant="latest".

                                Ich habe es z.Z. so:
                                Code:
                                default:
                                        if( element.data('radial') && element.data('radial').setValueAnimatedLatest )
                                          element.data('radial').setValueAnimatedLatest( value );
                                        if( element.data('radial') && element.data('radial').setValueAnimated )  
                                          element.data('radial').setValueAnimated( value );
                                habe noch keinen Fehler entdeckt.

                                Gruß NetFritz
                                KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
                                WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
                                PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

                                Kommentar

                                Lädt...
                                X