Ankündigung

Einklappen
Keine Ankündigung bisher.

Popup Widget möglich?

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

    #16
    Du musst dafür im Editor "Complex" eingeschaltet haben.

    Kommentar


      #17
      Diese Einstellung habe ich schon so lange nicht mehr gebraucht, dass ich sie glatt vergessen habe.

      Merci.

      Gruss, Markus

      Kommentar


        #18
        Ich habe ein wenig herumgespielt und habe folgendes gesehen:
        • Das complex attribute ga wird nicht mehr vom editor geschrieben.
        • Wenn man die annotation im visu_config.xsd entfernt wird es wieder geschrieben. Als Workarround kann man entweder von Hand die Adr. in der Datei visu_config.xml ergänzen:
          HTML-Code:
          <page name="XYZ" ... ga="0/0/0">
          oder die folgenden drei Zeilen im visu_config.xsd entfernen
          Code:
               
              <xsd:attribute name="ga" type="addr" use="optional">
          -        <xsd:annotation>
          -            <xsd:appinfo>level:expert</xsd:appinfo>
          -        </xsd:annotation>
               </xsd:attribute>
        • Der Editor liest die ga korrekt, wenn sie einmal eingetragen ist.
        • Wenn dies geändert ist kommt es allerdings bei mir beim auslösen des Events immer noch zu einem Fehler. Im page.js wird in der update function der parameter data als '00' geliefert und mit der magischen Konstante '01' verglichen. Daher kann in der Folge templateEngine.scrollToPage nicht ausgeführt werden.
          Code:
                
             default:
                  if (data==01) {
                    templateEngine.scrollToPage(this.attributes.path.nodeValue);
                    templateEngine.visu.write(e.type.substr(1), templateEngine.transformEncode('DPT:1.001', 0));
                  }
        • Zudem ist das Attribut this.attributes.path nicht definiert.

        Kennt sich jemand hier aus? Wie müsste das korrekte Verhalten sein und was ist die Bedeutung von 00 bzw. 01?


        Gruss, Markus

        Kommentar


          #19
          Also wenn ich es richtig verstanden habe sollte die Seite bei Erhalt einer 1 auf die definierte GA in den Vordergrund gebracht und angezeigt werden. Und eben nur bei einer 1. Wenn eine 0 kommt sollte nichts passieren.

          Gruss Mark

          Kommentar


            #20
            Ah, das hilft weiter

            Vielen Dank.

            Gruss, Markus

            Kommentar


              #21
              Zitat von Bubo Beitrag anzeigen
              Kennt sich jemand hier aus? Wie müsste das korrekte Verhalten sein und was ist die Bedeutung von 00 bzw. 01?
              Die Implementierung so ist sehr ungeschickt:
              • Hart-Codierte Zahlen machen früher oder später Ärger. Hier vermutlich schließt das schon OpenHAB als Backend für dieses Feature aus...
              • Was ist wenn ein User das lieber mit einem Paket mit dem Inhalt "0" machen möchte? (Z.B. als eine Art Reset auf der Haupt-Page)
              • 01 ist nur durch Zufall "1". Die Null vorne sagt nämlich, dass die Zahl Oktal ist. Das kann man an eine 010 sehen, das ist nämlich nicht 10, sondern 8...

              => Wenn das jemand überarbeitet, bitte am besten gleich einen DPT und einen Wert für den Vergleich mit einbauen...
              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


                #22
                Hallo zusammen

                Ich habe den Bug gefixed wie unten beschrieben und ins svn eingefügt. Das Refactoring fehlt allerdings noch und ich überprüfe auch nicht ob firstChild existiert und das richtig Child h1 ist. Dafür habe ich ein TODO eingefügt

                Jetzt muss ich nur noch rausfinden, wie man in SourceForge ein Ticket übernimmt und schliesst. Braucht es dafür spezielle Rechte?

                Gruss, Markus


                Code:
                       default:
                +        // TODO: data comparision has to be refactored to use DPT and a value
                         if (data==01) {
                -          templateEngine.scrollToPage(this.attributes.path.nodeValue);
                +          templateEngine.scrollToPage(element.context.firstChild.textContent);
                           templateEngine.visu.write(e.type.substr(1), templateEngine.transformEncode('DPT:1.001', 0));
                         }

                Kommentar


                  #23
                  Hallo Markus,

                  das sieht ja schon mal sehr gut aus. Zum Testen habe ich eine GA einer Lampe genommen. Die Seite wird auch aufgerufen sobald ich die Lampe anschalte, nur meine Lampe in der Visu wird wieder auf 0 gesetzt. Also nur in der Visu. Die Lampe leuchtet weiter, bekommt also vom Bus her keine 0, nur in der Visu sieht es aus als wäre sie ausgeschaltet. Ist das so gewollt?

                  In Verbindung mit openhab habe ich es allerdings nicht zum laufen bekommen.
                  Ich habe mal folgendes versucht:

                  Code:
                   
                  // TODO: data comparision has to be refactored to use DPT and a value
                  alert(data);
                  if (data==01 || data==ON)
                  Ich wollte mal schauen was da in data drin steht, aber mit alert passiert da gar nichts. Dachte das wär normales Javascript. Oder muss ich mir ne Box anders ausgeben lassen?



                  Gruss Mark

                  Kommentar


                    #24
                    Ok, das mit dem alert hat sich erledigt. Mal wieder ein blödes cache Problem.
                    Mit openhab kommt ein ON. Nur ich habe das Problem wenn ich auf irgendeine page z.B. ga="Lampe_EG_WZ_Spot" schreibe, wird die Visu nur bis zu dieser GA geladen. In meinem Fall ist das der zweite Switch, alle anderen danach haben keinen Status. Wenn ich das ga Attribut rausnehme haben wieder alles switche einen Status.
                    Gibt es bei dem ga Attribut irgendwie eine Abbruchbedingung, dass nicht weiter geladen werden soll?

                    Gruss Mark

                    Kommentar


                      #25
                      Zitat speedG:
                      Die Lampe leuchtet weiter, bekommt also vom Bus her keine 0, nur in der Visu sieht es aus als wäre sie ausgeschaltet. Ist das so gewollt?
                      Ich glaube die zweite Programmzeile
                      Code:
                      templateEngine.[URL="http://redaktion.knx-user-forum.de/lexikon/visu/"]visu[/URL].write(e.type.substr(1), templateEngine.transformEncode('DPT:1.001', 0));
                      Setzt die GA nach dem Sprung zur neuen Seite wieder zurück. Warum das notwendig ist, verstehe ich auch nicht.

                      openhab sagt mir noch nichts. Dort muss ich mich noch schlau machen.

                      Gruss, Markus

                      Kommentar


                        #26
                        Zitat von Bubo Beitrag anzeigen
                        Jetzt muss ich nur noch rausfinden, wie man in SourceForge ein Ticket übernimmt und schliesst. Braucht es dafür spezielle Rechte?
                        Das sollte jeder Developer (wie Du einer bist) bereits dürfen (und wenn ich das letzte Update mir ansehe, hat's wohl auch geklappt )
                        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


                          #27
                          Zitat von speedyG Beitrag anzeigen
                          Code:
                           
                          if (data==01 || data==ON)
                          Das sollte ein Syntax-Fehler geben... Probier lieber mal
                          Code:
                           
                          if (data==1 || data=='ON')
                          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


                            #28
                            Zitat von Chris M. Beitrag anzeigen
                            Das sollte jeder Developer (wie Du einer bist) bereits dürfen (und wenn ich das letzte Update mir ansehe, hat's wohl auch geklappt )
                            Ja, nach langem suchen habe ich den richtigen Button gefunden

                            Gruss, Markus

                            Kommentar


                              #29
                              Zitat von Chris M. Beitrag anzeigen
                              Das sollte ein Syntax-Fehler geben... Probier lieber mal
                              Code:
                               
                              if (data==1 || data=='ON')
                              Ja, mittlerweile bin ich auch drauf gekommen.
                              Funktioniert so wunderbar mit openHAB.
                              Damit und mit dem Audio Widget kann ich nun meine Haustürklingel in die Visu einbinden.
                              Danke für die Hilfe.

                              Gruss Mark

                              Kommentar


                                #30
                                Ich habe mich mittlerweile auch mal an diesen Umsetzungsvorschlag gewagt und bekomme es mittlerweile hin das die Page angezeigt wird sobald eine 1 gesendet wird. Was ich aber nicht mehr hinbekomme, ist es die Page wieder verschwinden zu lassen.
                                Verwende auch openHAB im Hintergrund. So sieht das momentan bei mir aus:

                                Code:
                                <page name="Haustuer" visible="false" ga="Klingel">
                                   <audio src="media/alarm_1.mp3" on_value="1" off_value="0" threshold_value="1" autoplay="false" loop="true" id="Klingel" count="3" interval="5000">
                                      <address transform="OH:number" mode="read">Klingel</address>
                                   </audio>
                                   <trigger value="0">
                                      <label>Abbrechen</label>
                                      <address transform="OH:number">Klingel</address>
                                   </trigger>
                                </page>
                                Das openHAB Item 'Klingel' ist folgendermaßen definiert:

                                Number Klingel

                                Sobald das Item Klingel auf 1 gesetzt wird, wird die zuvor unsichtbare Page 'Haustür' in der CometVisu angezeigt und die Audiodatei wird abgespielt. Betätige ich jetzt den Trigger, erwarte ich das die Page eigentlich wieder zugeht was aber nicht der Fall ist. Das openHAB Item 'Klingel' wird dabei korrekterweise wieder auf 0 gesetzt.

                                Habe ich hier irgendetwas übersehen? Bin über Tipps dankbar!

                                Kommentar

                                Lädt...
                                X