Ankündigung

Einklappen
Keine Ankündigung bisher.

Cometvisu mit openhab2 auf Raspberry

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

    #31
    Für den RaspberryPI bedeutet Du möchtest den auf dem PI installieren?

    Schau Dir mal https://code.visualstudio.com/ an. Installieren wird man den können, aber wie das mit der Performance aussieht weiß ich nicht. Leider unterstützt der keine Validierung gegen das Schema um Fehler zu erkennen. Ein kostenloser XML-Editor mit XSD-Schema Unterstützung ist mir leider nicht bekannt.

    In Zukunft könnte die CometVisu sowas selbst mitbringen (siehe: https://github.com/CometVisu/CometVisu/pull/607) aber das hilft Dir jetzt natürlich nicht.
    Gruß
    Tobias

    Kommentar


      #32
      Ich mache es jetzt mit dem Notepad++ am PC über Samabfreigabe....

      Noch mal ne kurze Frage, ist die Reiehnfolge in der XML eigentlich bedeutend...
      bin immer noch am identifizieren, was wie passiert udn zusammengehört.

      im automatisch generierten .xml sind die "Menue" button z.B. für Obergeschoss, Erdgeschoss usw. ganz unten.
      kann man den Bereich auch nach oben verschieben?

      Und habe es noch nicht richtig verstanden, wie ich beispielsweise einen Text zentrieren kann oder die Text größe anpassen.

      Verstehe ich das richtig, wenn eine Bereich eröffnet wird z.B. <text> dann ist das Layout als nächste Zeile?

      Danke
      Gruß Jens

      Kommentar


        #33
        Scheinbar kann man mit dem Notepad++ auch eine Möglichkeit eine XML-Datei mit dem Schema auf Gültigkeit zu prüfen:
        https://stackoverflow.com/questions/...against-an-xsd. Das solltest Du mal probieren, damit sollte der Editor Dich davor bewahren eine ungültige Config-Datei zu erstellen.

        Zitat von AingTii Beitrag anzeigen
        Noch mal ne kurze Frage, ist die Reiehnfolge in der XML eigentlich bedeutend...
        bin immer noch am identifizieren, was wie passiert udn zusammengehört.

        im automatisch generierten .xml sind die "Menue" button z.B. für Obergeschoss, Erdgeschoss usw. ganz unten.
        kann man den Bereich auch nach oben verschieben?
        Kann man so pauschal nicht beantworten aber zumindest für die Navbar (da sind die "Menü-Buttons" drin) ist es egal ob die oben oder unten steht, die muss nur innerhalb des Page-Elements sein auf dem sie angezeigt werden soll. Wenn Du die Navbar auf allen Seiten sehen willst, dann muss die in die Root-Page (also die oberste in der alle anderen Page-Elemente drin liegen.

        Zitat von AingTii Beitrag anzeigen
        Und habe es noch nicht richtig verstanden, wie ich beispielsweise einen Text zentrieren kann oder die Text größe anpassen.
        Manche Widgets haben ein Align-Attribut, damit kannst Du dann mit align="center" den Text zentrieren. Textgröße ist Aufgabe des Designs, und nicht direkt über die XML-Datei beeinflussbar. Das geht dann nur über Umwege mit CSS und frei definierten Klassen.

        Zitat von AingTii Beitrag anzeigen
        Verstehe ich das richtig, wenn eine Bereich eröffnet wird z.B. <text> dann ist das Layout als nächste Zeile?
        Grundsätzlich braucht jedes Widget eine Layout-Angabe und teilweise ist das im Schema so definiert, dass das das erste Kind-Element des Widgets sein muss. Das ist zwar nicht zwingen nötig, denn die CometVisu versteht das auch wenn es an beliebiger Stelle innerhalb der direkten Kind-Element steht, aber stört ja nicht wenn man sich ans Schema hält.
        Zuletzt geändert von peuter; 11.09.2017, 17:17.
        Gruß
        Tobias

        Kommentar


          #34
          OK, danke

          Gruß Jens

          Kommentar


            #35
            Noch ein kleiner ergänzender Hinweis. Im Handbuch findest Du eine Übersicht der Widgets und welche Attribute und Kind-Elemente die haben:
            http://cometvisu.org/CometVisu/de/cu...-der-cometvisu
            Gruß
            Tobias

            Kommentar


              #36
              Ich habe das gleiche Setup seit kurzem am Laufen und auch noch ein paar Tipps (oder vielleicht korrigiert mich einer der Gurus, weil ich den einfachen Weg nicht gefunden habe):
              • Wenn die Aktoren anfangen zu flackern, hat man "ignorelocalevents=true" in der knx binding config vergessen
              • Mit karaf kann man schön loggen, ideal, wenn man dafür den Debug-Level für das CV Backend hochsetzen kann:
                • Für KNX Binding: log:set DEBUG org.openhab.binding.knx
                • Für CV: log:set TRACE org.openhab.ui.cometvisu
                • log:tail macht ein (tada) tail ...
                • Nicht vergessen nach dem gucken, die Loglevel wieder auf WARN zu setzen...
              • Klasse, welche das Backend für Reads stellt: https://github.com/openhab/openhab2-...dResource.java
              • Adressierung ist tw. tricky, weil OH mehr als einen "Typ" hinter einem Item hat (Beispiel Rollershutter, der hat Up/Down/Stop, sowie Percent, etc.). Bei Bedarf kann man aber "casten". Beispiel:
                <address transform="OH:rollershutter" mode="read">NUMBER:Rollos_Arbeiten</address>
              • Manchmal funktioniert ein Button oder so nicht (versuch mal eine explizit als DPT1.001 angegebene GA auf den Stop-Eintrag des Rollershutter-Items zu legen). Dann kann das daran liegen, dass OH bestimmte Typen erwartet. Das kann man dann über die Debugging-Infos sehen.

              HTH...

              Und am Ende habe ich noch eine Frage... Wenn ich also mit obiger Adresse einen Prozentwert von dem Item bekomme, dann liefert mir OH eine Nachkommazahl. Ich möchte jetzt aber die Prozentzahl anzeigen. Wie krieg ich das denn jetzt hin... (Gauge Type "DisplaySingle" geht leider nicht, bisher habe ich nur den Gauge Type "LinearBargraph" erfolgreich getestet, obwohl immer min=0 und max=1 mitgegeben wurde)?

              Danke
              Grüße,
              Alex

              Kommentar


                #37
                Zitat von Eisbert Beitrag anzeigen
                Adressierung ist tw. tricky, weil OH mehr als einen "Typ" hinter einem Item hat (Beispiel Rollershutter, der hat Up/Down/Stop, sowie Percent, etc.). Bei Bedarf kann man aber "casten". :
                Also das mit NUMBER:Rollos_Arbeiten, war eigentlich dafür gedacht die Anzahl der Items aus einem GroupItem zu bekommen. Wenns funktioniert, dann hast Du einen Anwendungsfall gefunden, den an den ich beim Entwickeln nie gedacht habe ;-)

                Zitat von Eisbert Beitrag anzeigen
                Manchmal funktioniert ein Button oder so nicht (versuch mal eine explizit als DPT1.001 angegebene GA auf den Stop-Eintrag des Rollershutter-Items zu legen). Dann kann das daran liegen, dass OH bestimmte Typen erwartet. Das kann man dann über die Debugging-Infos sehen.

                Ja klar, ein Switch (aka DPT1.001) erwartet ON/OFF als Werte und ein Rollershutter erwarten UP/DOWN. Wobei ich den konkreten Anwendungsfall dieses Beispiels nicht wirklich verstanden habe.


                Zitat von Eisbert Beitrag anzeigen
                Und am Ende habe ich noch eine Frage... Wenn ich also mit obiger Adresse einen Prozentwert von dem Item bekomme, dann liefert mir OH eine Nachkommazahl. Ich möchte jetzt aber die Prozentzahl anzeigen. Wie krieg ich das denn jetzt hin... (Gauge Type "DisplaySingle" geht leider nicht, bisher habe ich nur den Gauge Type "LinearBargraph" erfolgreich getestet, obwohl immer min=0 und max=1 mitgegeben wurde)?

                Es gibt einige Widgets denen man ein Format mitgeben kann, z.b. Info:

                Code:
                 
                 <info format="%d%%">  <address transform="OH:rollershutter" mode="read">NUMBER:Rollos_Arbeiten</address> </info>
                würde das als Ganzzahl mit einem % dahinter anzeigen.
                Gruß
                Tobias

                Kommentar


                  #38
                  Hi Tobias,

                  danke erst mal für die Hinweise!

                  Zitat von peuter Beitrag anzeigen
                  Also das mit NUMBER:Rollos_Arbeiten, war eigentlich dafür gedacht die Anzahl der Items aus einem GroupItem zu bekommen. Wenns funktioniert, dann hast Du einen Anwendungsfall gefunden, den an den ich beim Entwickeln nie gedacht habe ;-)
                  Wie wäre denn der "Normalweg", um die Prozentzahl aus einem Rollershutter rauszubekommen, wenn nicht über diesen Cast ...

                  Zitat von peuter Beitrag anzeigen
                  würde das als Ganzzahl mit einem % dahinter anzeigen.
                  Hehe - hier macht es jetzt einen Unterschied. Wenn ich mit
                  Code:
                  <info format="%d%%" align="left">
                  arbeite, darf ich nicht den "Cast" nutzen - sonst zeigt er mir Grütze an... So geht es jetzt also:
                  Code:
                  <info format="%d%%" align="left">
                     <layout colspan="1"  rowspan="1"/>
                     <address transform="OH:rollershutter" mode="read" >Rollos_Arbeiten</address>
                  </info>
                  Gleiches beim LinearBargraph - wahrscheinlich ist dieser Cast tatsächlich, wenn man das Format mit angibt, gar nicht nötig...

                  Allerdings bekomme ich das nicht mit dem DisplaySingle-Gauge-Elemente zum Laufen... Das zeigt i.W. gar nichts an (im Gegensatz zum LinearBargraph):
                  Code:
                  <gauge type="DisplaySingle" minValue="0" maxValue="1" width="350" height="50" lcdDecimals="2" unitStringVisible="true" unitString="pct">
                      <layout colspan="5" rowspan="1"/>
                      <address transform="OH:rollershutter" mode="read" >Rollos_Arbeiten</address>
                  </gauge>
                  Danke.
                  Grüße,
                  Alex

                  Kommentar


                    #39
                    Ich kann hier leider nicht viel helfen. Ich habe für meine Rollo-Positionen extra (Dimmer-) Items und die kann ich nach belieben benutzen, da hier nichts gecastet werden muss. Rein von der Betrachtung des Codes her, würde ich sagen, dass Dein erster Weg mit der expliziten Angabe des Types der einzige Weg ist das zu erreichen. Ansonsten sollte openHAB bei einem rollershutter nur UP/DOWN als Werte liefern. Daher wundert mich das etwas, dass das mit dem format funktioniert.

                    Wie gesagt ich habe da nichts mit dem ich das nachstellen und testen könnte, daher musst Du wohl weiter probieren.
                    Gruß
                    Tobias

                    Kommentar


                      #40
                      Hallo Alex,

                      bin leider noch nicht so ganz dahinter gestiegen was Du genau erreichen möchtest zumindest bin ich mir nicht sicher.

                      Ich verstehe es so, dass Du gern angezeigt haben möchtest um wie viel Prozent der Rollladen geschlossen ist?
                      Ich habe es noch nicht probiert, aber anscheinend bekommt CV ja Prozentwert geliefert, da ich die im Mapping
                      ja verwenden kann um dazu die Icons zuzuordnen.
                      Somit sollte man die ja auch anzeigen lassen können als Wert über eine info.

                      Dann verstehe ich nicht wirklich, anscheinend möchtest Du ein gauge benutzen um die Prozent des Rollandenzustandes
                      als Zeiger anzuzeigen und es soll dort dann die % drin stehen?

                      Ah, ich habe mal etwas getestet, so wie es aussieht, übernimmt DisplaySingle und DisplayMulti die Werte nicht,
                      im Bargraph etc. wird alles angezeigt aber in den beiden Typen nicht.

                      Hier wäre glaube ich die Frage, welches Format erwarten die Display Typen ein eingang, damit sie einen Wert anzeigen?
                      Oder gibt es hier einen Bug, welches die Werte nicht aufnimmt und darstellt wie bei den anderen Typen...

                      Gruß Jens

                      Kommentar


                        #41
                        Grad gefunden...
                        Das ist jetzt einige Jahre her, aber vielleicht liegt es hier dran?
                        Normal würde ich sagen, sollte dieses Problem doch mittlerweile in der release behoben sein oder nicht?

                        https://knx-user-forum.de/forum/supp...aysingle/page2

                        irgendwie in der SVN Version soll es gehen?

                        Gruß Jens

                        Kommentar


                          #42
                          Guten Tag,

                          ich muss mich mal einklinken.
                          Ich bekomme die CometVisu auch nicht zum laufen. Habe gerade mein ganzes System neu mit OH2.1 aufgesetzt.
                          Jetzt wollte ich als "Krönung" auch meine alte CometVisu wieder haben. In OH1 lief diese problemlos.
                          Installiert habe ich die CV wie hier beschrieben:
                          http://cometvisu.org/CometVisu/de/latest/manual/install/openhab2.html

                          Das Binding ist auch installiert.
                          Ich bekomme immer diesen Fehler:
                          Code:
                          HTTP ERROR 500
                          Problem accessing /cometvisu/. Reason:
                           Server Error Caused by:  
                           java.io.FileNotFoundException: /var/www/cometvisu/ (Is a directory)
                          at java.io.RandomAccessFile.open0(Native Method)
                          at java.io.RandomAccessFile.open(RandomAccessFile.java:316)
                          at java.io.RandomAccessFile.<init>(RandomAccessFile.java:243)
                          at org.openhab.ui.cometvisu.servlet.CometVisuServlet.processStaticRequest(CometVisuServlet.java:706)
                          at org.openhab.ui.cometvisu.servlet.CometVisuServlet.doGet(CometVisuServlet.java:233)
                          at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
                          at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
                          at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
                          at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
                          at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71)
                          at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
                          at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
                          at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
                          at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
                          at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:287)
                          at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
                          at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
                          at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
                          at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
                          at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)
                          at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
                          at org.eclipse.jetty.server.Server.handle(Server.java:499)
                          at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
                          at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
                          at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
                          at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
                          at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
                          at java.lang.Thread.run(Thread.java:748)
                          Wahrscheinlich ist es nur eine Kleinigkeit, ich komme aber nicht drauf.
                          Achso, die CometVisu ist die 0.10.2 von hier:
                          https://github.com/CometVisu/CometVisu/releases
                          Zuletzt geändert von teasy1; 01.11.2017, 15:09.

                          Kommentar


                            #43
                            Sorry, klappt jetzt. Hatte einen Fehler in der cometvisu.cfg unter etc/openhab2/services/
                            Ich hatte:

                            webFolder=/var/www/cometvisu/
                            webAlias=/cometvisu

                            stehen und es musste:
                            webFolder=/var/www/cometvisu/release/ heissen.

                            Die CV sieht noch ein wenig zerschossen aus, aber ich hangel mich erstmal durch. Die Fragen kommen dann noch.

                            Kommentar


                              #44
                              Da sind sie schon die ersten Fragen:

                              Ich habe ganz viele "sprintf Error" Anzeigen. Ich hatte das mit dem %% Zeichen zwar gelesen, das trifft aber auf mich nicht zu. Ich habe diesen Fehler z.B. hier:
                              Code:
                              <info format="%.s Uhr" mapping="HourMinute">
                                        <label><icon name="weather_sunrise"/>Sonnenaufgang</label>
                                          <address transform="OH:datetime">Sunrise_Time</address>
                                        </info>
                              oder hier:
                              Code:
                              <info format="%.s" styling="Muell">
                                      <layout colspan="2.5"/>        
                                      <address transform="OH:string">TrashBlack</address>
                                    </info>
                              Als TrashBlack soll eigentlich "morgen, übermorgen oder heute" stehen, welches aus einem Script aus OH kommt. Jetzt steht da nur "sprintf Error".
                              Wie schon gesagt, mit der alten CV auf OH1.8.3 lief alles.

                              Kommentar


                                #45
                                Also bei datetime habe ich das gleich Problem, sobald ich Format= eingetragen habe
                                ohne Format wird der komplette Inhalt ausgegeben
                                Last Update vom Wetter...
                                Code:
                                2017-11-01T19:04:53.406+0100
                                habe hierfür noch keine Lösung gefunden...

                                bei Deinem 2. Beispiel würde ich vermuten es liegt an dem Format. hast Du schon mal probiert es wegzulassen?
                                da Du ja den kompletten String dort abbilden möchtest....

                                Was machst Du mit dem Styling "Muell" ? Die Farbe der Schrift?


                                Kommentar

                                Lädt...
                                X