Ankündigung

Einklappen
Keine Ankündigung bisher.

Aktuelle CV Version

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

    #31
    Zitat von peuter Beitrag anzeigen
    Verlinkungen sind nicht nötig und verschleiern eventuelle Probleme nur. Sollten also im Test-System wieder entfernt werden. Ziel des Testens ist es ja die CV-Version in einen Zustand zu bekommen, dass sie ohne weitere Änderungen funktioniert.
    Naja, die Verlinkungen sind für ein ein Workaround.

    Wo kommt das OH-CV.PHP Backend denn eigentlich her? Ich dachte, dass käme auch von euch?

    Kommentar


      #32
      Zitat von Brn Beitrag anzeigen
      Wo kommt das OH-CV.PHP Backend denn eigentlich her? Ich dachte, dass käme auch von euch?
      Das OH-CV.PHP Backend hab ich zwar programmiert, aber das macht nicht viel mehr als den in Java geschriebenen PHP-Interpreter (Quercus: https://www.caucho.com/resin-3.1/doc/quercus.xtp) für das Backend zur Verfügung zu stellen. Und dieses Projekt wird leider nicht mehr weiter entwickelt, d.h. wenn z.B. irgendwann mal eine PHP7 Kompabilität erforderlich wird, kann man das gepflegt in die Tonne treten. Dann bleibt nur noch die gesamte PHP-Funktionalität die die CometVisu liefert in Java nachzuprogrammieren. In manchen Teilen ist das sowieso schon passiert, aber da fehlt halt auch noch eine Menge.
      Gruß
      Tobias

      Kommentar


        #33
        Zitat von peuter Beitrag anzeigen
        In manchen Teilen ist das sowieso schon passiert,
        In Java? Ich benötige für CV doch keine JavaVM, oder?

        Das OH so Java-lastig ist, stört mich tatsächlich auch. Ich vermisse seit einiger Zeit schon eine Erweiterung, die OH für eine andere Sprache öffnet.
        Der Pool effektiver Etnwickler wäre dann sicher deutlich größer.
        Zumindest würde ich bei einem "nativen" Python, PHP (oder ähnlichem) Support viel eher mal ein Add-on miterstellen.

        Es gibt also keine Perspektive für CV i.V.m. OH?

        Wäre der Einsatz von Micro-Services eine Option? Also die Anwendung quasi in JS bauen (Angular o.ä.) und dann je nach Konfiguration auf die API eines CV Backends (beim Einsatz von z.B. knxd) oder der API von OH zugreifen?

        //Edit: vielleicht noch etwas zum Thema bugs: ich hatte eine config begonnen zu bauen (kann gar nicht mehr sagen, ob in 0.10.2 oder 0.11) Die wollte ich heute laden in 0.11. Während das ladens läuft ein validitätscheck welcher feststellte, dass die XML Datei kaputt / nicht valide ist. Keine Ahnung, warum.
        Ich habe daraufhin im Config Manager die Config gelöscht. Im Dateisystem ist die Datei auch verschwunden. (es sind nur noch 2 Backups da) Wenn ich nun aber eine Config mit noch mal dem gleichem Namen anlegen möchte kommt die Meldung, dass eine Config mit diesem Namen bereits existiert. Hmm...

        ..und gleich noch eine Frage: was ist in der Config beim Typ Backend der Unterschied zwischen OH2 und openhab2 ??
        Zuletzt geändert von Brn; 08.08.2018, 15:22.

        Kommentar


          #34
          Zitat von Brn Beitrag anzeigen
          In Java? Ich benötige für CV doch keine JavaVM, oder?
          Nein für den reinen Betrieb der CometVisu braucht man lediglich einen Webserver der die HTML/CSS/XML/Javascript-Dateien der CV ausliefern kann. Der Rest passiert komplett im Client (also im Browser). Dazu braucht es noch ein Backend, welches das CometVisu-Protokoll "spricht" und die entsprechenden Stati der Items lesen und schreiben kann. Zur Zeit gibt es zwei Backend die die Anforderungen auf unterschiedliche Weise erfüllen:
          1. Das CGI-Backend: besteht aus einem beliebigen Webserver für die Dateien und einem CGI-Script für das CometVisu-Protokoll
          2. openHAB: bringt einen eigenen Webserver mit (Jetty), das openHAB-CV-Backend sorgt dafür das dieser Webserver die CometVisu-Dateien ausliefern kann und spricht auch das CometVisu-Protokoll

          Mit diesen Zutaten kann man die CometVisu in vollem Umfang nutzen. Man muss nur selbst dafür sorgen, dass man eine gültige Config-Datei erstellt und diese an die richtige Stelle (auf dem Server) kopieren. Möchte/Kann man das nicht, dann gibt es dafür die Funktionalität, die in der PHP-Dateien der CV bereitgestellt wird (wie. z.B. den Config-Manager, Config-Validierung und Config-Manager. Diese PHP-Dateien werden vom Webserver ausgeführt, dazu muss dieser dazu in der Lage sein. Mit dem Backend 1. (s.o.) ist das kein Problem, weil man für jeden gängigen Webserver die PHP-Unterstützung anschalten kann. Bei openHAB ist das schwieriger, weil der dort benutzte Jetty-Webserver eben eingebettet in openHAB läuft (das geht auch nicht anders) und dieser daher selbst in Java geschrieben ist, und daher erstmal kein PHP kann. Da gibt es sicher wege, dort einen PHP-Interpreter dranzustöpseln, aber das ist auf jeden Fall Betriebssystem-anhängig und bräuchte für jedes System eine extra Anleitung (und ich vermute mal, dass das nicht ganz unkompliziert ist das hinzubekommen). Zweite Variante ist halt (wie es momentan ist), dass der Jetty-Server einen eigenen PHP-Interpreter bekommt, der ebenfalls in Java geschrieben ist und daher einfach so auch allen Systemen funktioniert (also keine spezielle Anleitung für System XY nötig). Und die dritte Variante ist wie erwähnt: Man baut Config-Check, Config-Manager und Teile des Editors so nach, dass die PHP-Dateien nicht mehr benötigt werden und somit auch kein PHP-Interpreter mehr. Dann würde das openHAB-CV-Backend die Funktionen mitliefern und der openHAB-CV-PHP Zusatz wäre nicht mehr nötig.

          Zitat von Brn Beitrag anzeigen
          Das OH so Java-lastig ist, stört mich tatsächlich auch. Ich vermisse seit einiger Zeit schon eine Erweiterung, die OH für eine andere Sprache öffnet.
          Der Pool effektiver Etnwickler wäre dann sicher deutlich größer.
          Zumindest würde ich bei einem "nativen" Python, PHP (oder ähnlichem) Support viel eher mal ein Add-on miterstellen.
          Naja, openHAB ist nunmal in Java geschrieben und der Kern des ganzen Systems ist ein OSGi-System was es ermöglicht nur genau die Module zu laden die man benötigt und das zur Laufzeit ohne Neustart. Mir ist kein vergleichbares System in einer anderen Sprache bekannt. Addons müssen also OSGi-Module sein und werden folglich immer in Java geschrieben sein müssen.

          Zitat von Brn Beitrag anzeigen
          Es gibt also keine Perspektive für CV i.V.m. OH?
          Ich hoffe aus meinen bereits getätigten Ausführungen sollte klar sein dass es auch in Zukunft immer eine CometVisu auf openHAB geben wird (schon alleine weil ich das nutze und nicht vorhabe daran was zu ändern). Lediglich der PHP-Teil für die die "Komfortfunktionen" ist da eventuell eine kleine unbekannte. Aber auch hier gibt es Wege wie man das Problem mit ein wenig Konfigurationsaufwand aus dem Weg räumen kann. Man kann sich einfach einen zusätzlichen Webserver (z.B. Apache) installieren mit PHP5 Unterstützung und den so einrichten dass er die CometVisu ausliefert und lediglich den "CometVisu-Protokoll-Teil" als Proxy an openHAB weiterreicht. Dann ist auch Ruhe. Aber wie gesagt, dass muss halt jeder für sich einrichten und die aktuelle Variante sollte einfach Anwenderfreundlicher sein (was sie auch ist, wenn sie denn funktioniert).

          Zitat von Brn Beitrag anzeigen
          ..und gleich noch eine Frage: was ist in der Config beim Typ Backend der Unterschied zwischen OH2 und openhab2 ??
          Keiner. Bei openHAB2 kannst du das ganz weglassen weil dieses Backend der CometVisu selbst mitteilt, wer er denn ist.

          Gruß
          Tobias

          Kommentar


            #35
            Zitat von peuter Beitrag anzeigen
            Dann würde das openHAB-CV-Backend die Funktionen mitliefern und der openHAB-CV-PHP Zusatz wäre nicht mehr nötig.
            Okay.. das sind 2 Paar Schuhe. Ich dachte beides: die VISU und die, wie du sagst "Komfort - Features" gehen über das gleiche Backend.
            Is` aber nicht so.

            Danke für die Aufklärung.

            //Edit: was mir beim Umgang mit CV noch aufgefallen ist: wenn ich, zum Beispiel bei einem Label, eine KNX Adresse eingebe, erscheint eine Vorschlagsliste, bei der ich das Item auswählen kann, ohne fertig zu tippen. Egal, ob ich den Item-Namen fertig tippe oder ihn aus der Vorschlagliste auswähle - ich bekomme die Vorschlagliste nicht mehr zugeklappt.

            //Edit2: Gibt es eigentlich einen Grund, warum die Config-XML Datei in (beinahe) einer Zeile erzeugt wird? Ich hatte mit dem Bau der Configdatei im Web-Editor begonnen und wollte dann im vi weiter machen. Allerdings ist es dann recht ungünstig, weil der gesamte XML-Code in eine Zeile gedrück wurde.
            Btw: der Online-Text-Editor funktioniert bei mir nicht. 404 kommt beim Aufruf der Editor JS Datei. :-(
            Zuletzt geändert von Brn; 09.08.2018, 16:14.

            Kommentar


              #36
              Ich bin jetzt nicht der Experte für den Editor, weil ich den selbst nie benutze. Ich hab versucht Deine Problem nachzuvollziehen, gelingt mir aber nicht.

              Ich habe mir eine neue Config erstellt über den Manager, die ist schön formatiert und nicht alles in einer Zeile. Dann habe ich mal ein Element hinzugefügt, weil ja vielleicht beim Speichern das Format kaputt geht, aber dem war nicht so. Sowohl im vi als auch im eingebauten Texteditor (der bei mir auch funktioniert) ist die nicht in einer Zeile.
              Gruß
              Tobias

              Kommentar


                #37
                Zitat von peuter Beitrag anzeigen
                Ich habe mir eine neue Config erstellt über den Manager, die ist schön formatiert und nicht alles in einer Zeile.
                Hmm.. kann es sein, dass es an unterschiedlichen Zeilenumbrüchen liegt? Hattest du bspw. ein WindowsSystem in deiner Kette dazwischen? Bei mir ist bspw. rein Linux. Eventuell liegt es da dran?

                Selsbt wenn ich im vi mühselig die Zeilenumbrüche nach den XML tags einfüge, sind sie nach jedem Speichern wieder weg. Die Datei besteht immer aus genau 4 Zeilen, wobei fast alles in der letzten Zeile steht.

                Zitat von peuter Beitrag anzeigen
                Ich hab versucht Deine Problem nachzuvollziehen, gelingt mir aber nicht.
                Das mit den nicht schließenden Boxen ist leider sehr störend. Hatte dazu gestern mal ein Bild gemacht:
                m.jpg
                Ich bekomme die Drop-Down -Boxen einfach nicht zu.
                Zuletzt geändert von Brn; 10.08.2018, 13:58.

                Kommentar


                  #38
                  Windows? Bäh! Niemals!!!
                  Gruß
                  Tobias

                  Kommentar


                    #39
                    Auch wenn ich Dir selbst bei dem Problem mit den nicht schließenden Drop-Downs nicht helfen kann, wäre es trotzdem hilfreich, wenn Du sagst mit welchem Browser (+ dessen Version) das Problem auftritt. Vielleicht kannst Du auch mal verschiedene Browser testen und prüfen ob einige das Problem nicht haben (zumindest mal Firefox + Chrome).

                    Und eine eventuelle Fehlermeldung in der Browserconsole (in den Entwickertools) wäre auch hilfreich, sofern es eine gibt.
                    Gruß
                    Tobias

                    Kommentar


                      #40
                      Zitat von peuter Beitrag anzeigen
                      Auch wenn ich Dir selbst bei dem Problem mit den nicht schließenden Drop-Downs nicht helfen kann, wäre es trotzdem hilfreich, wenn Du sagst mit welchem Browser (+ dessen Version) das Problem auftritt. Vielleicht kannst Du auch mal verschiedene Browser testen und prüfen ob einige das Problem nicht haben (zumindest mal Firefox + Chrome).

                      Und eine eventuelle Fehlermeldung in der Browserconsole (in den Entwickertools) wäre auch hilfreich, sofern es eine gibt.
                      Im Chromium 68. Chrom selber habe ich nicht am Start und im Firefox läuft die Anwendung leider überhaupt nicht.

                      Der Punkt mit der Konsole war noch mal gut...hääte ich auch drauf kommen können.

                      Beim Laden einer list_all_plugins.php wirft er einen Fehlecode 500
                      Das kommt in dem Moment, wenn man auf ein Adressfeld klickt, um dne Wert zu ändern.
                      Code:
                       HTTP ERROR 500Problem accessing /cometvisu/editor/dataproviders/list_all_plugins.php. Reason: 
                           Server Error 
                      Caused by: java.lang.NullPointerException 	at java.util.Arrays.sort(Arrays.java:1246) 	at org.openhab.ui.cometvisu.internal.servlet.CometVisuServlet.dataProviderService(CometVisuServlet.java:1029) 	at org.openhab.ui.cometvisu.internal.servlet.CometVisuServlet.doGet(CometVisuServlet.java:252) 	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:848) 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:584) 	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:548) 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) 	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:284) 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) 	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:134) 	at org.eclipse.jetty.server.Server.handle(Server.java:534) 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333) 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) 	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) 	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) 	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) 	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) 	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) 	at java.lang.Thread.run(Thread.java:745)
                      Wenn man dann die Änderung abschließen möchte, etwa durch auswählen eines Eintrages aus der Vorschlagbox oder durch Bestätigen der Eingabe mit "enter", kommt folgender Fehler:

                      Code:
                      Editor.js:1097 Uncaught TypeError: Cannot read property 'find' of undefined
                          at Object.saveValue (Editor.js:1097)
                          at String.<anonymous> (Editor.js:1429)
                          at Function.each (jquery.min.js:2)
                          at Object.updateHintedAttributes (Editor.js:1428)
                          at EditorConfigurationElement._self.ConfigurationElementEventListener (Editor.js:1709)
                          at EditorConfigurationElement.<anonymous> (Configuration.js:977)
                          at Function.each (jquery.min.js:2)
                          at informListeners (Configuration.js:976)
                          at ConfigurationElement._element.setTextValue (Configuration.js:590)
                          at HTMLDivElement.saveHandler (Editor.js:1380)

                      Kommentar


                        #41
                        Nachtrag: ich glaube, dass ich übrigens noch einen Bug gefunden habe.
                        Es geht um styliings im Editor, als der Möglichkeit Text beim Wert 0 bspw. grün erscheinen zu lassen und beim Wert 1 rot.
                        Im GUI-Editor finde ich unter pages->meta->stylings die Möglichkeit, einen Style anzulegen und diesem "entries" zu geben. Ich kann diesem Entry aber nur 3 Werte mitgeben:
                        value (bspw. 0), default, range_min und rang_max. Was mi fehlt ist ein Wert, dem ich die Farbe mitgeben kann, um bspw. folgendes zu erreichen:
                        <entry value="1">red</entry> In sofern kann ich eine Config anlegen, bei deren Ausführung dann ein Fehler kommt:

                        Code:
                         Failed to execute 'remove' on 'DOMTokenList': The token provided must not be empty....
                        Allerdings: wenn ich den Style entsprechend der Doku in die Textdatei reinschreibe kommt der Fehler auch, nur dass ich dann die Config-GUI nicht mehr öffnen kann:
                        Code:
                        The configuration appears to be not valid. Please check with 'check_config.php' for details. Error: 'TypeError: Cannot read property 'name' of undefined'
                        Zuletzt geändert von Brn; 30.08.2018, 14:29.

                        Kommentar


                          #42
                          Zitat von Brn Beitrag anzeigen
                          Ich kann diesem Entry aber nur 3 Werte mitgeben:
                          value (bspw. 0), default, range_min und rang_max. Was mi fehlt ist ein Wert, dem ich die Farbe mitgeben kann, um bspw. folgendes zu erreichen:
                          <entry value="1">red</entry>
                          Um den Farbwert anzugeben musst Du dem Entry über "add child" einen #text-Knoten hinzufügen und dort dann die Farbe eintragen. Die Fehlermeldung dürfte daher kommen, dass dieser fehlt.

                          Wenn Du das manuell in die Config einträgst und ein Fehler kommt, dann poste mal die fehlerhafte Config hier. Klingt so als ob da evtl der Name des Stylings fehlt?

                          Gruß
                          Tobias

                          Kommentar


                            #43
                            ..gibt es zwischenzeitlich eigentlich ein neues build?

                            Das mit den offenen Adressfeldern in der Visu ist so nervig, dass ich daher dazu über gegangen bin, die xml Dateien selber zu editieren, was auf der Konsole auch irgendwie keinen richtigen Spaß macht ...
                            ...oder kennt jemand einen vernünftigen XML Editor, der auf der Console läuft, bei dem man auch mal ganze Zweige, die man gerade nicht ändern möchte, zuklappen kann?

                            Damit die XML Dateien nicht zu lang werden habe ich nun versucht, jeden Raum in eine eigene XML Datei auszulagern.

                            Das sieht in der Maindatei so aus:
                            Code:
                                            <page name="Küche" visible="false">
                                                    <include src="config/kueche.xml" />
                                            </page>
                            die kueche.xml sieht dann so aus:
                            Code:
                            <diagram_info >
                                    <rrd consolidationFunction="AVERAGE" datasourceIndex="0">LeistungKSchrank</rrd>
                            </diagram_info>
                            Das eigentlich schräge ist: egal, was ich in der kueche.xml hinzufüge: es ändert sich nichts bei der Darstellung in der Visualisierung.
                            Werden die inkludierten Dateien irgendwo in einem cache abgelegt, den ich noch ändern muss?
                            Selbst wenn ich die kueche.xml umbenenne (als Alternative zum löschen) "funktioniert" noch alles.

                            Wenn ich im Chrome in die developer Tools schaue sehe ich, dass er die kueche.xml lädt mit einem Inhalt, der so gar nicht mehr auf dem Dateisystem des Servers liegt.

                            //Edit: und noch eine Frage zur navbar: bekommt man die irgendwie responsive hin? Wenn man bspw. eine navbar oben hat mit 10 Icons und man schaltet dann auf ein smartphone um, rutscht die Navbar zusammen und die Icons überlagern sich in einer Zeile, zusammen gequetscht.
                            Zuletzt geändert von Brn; 05.09.2018, 09:28.

                            Kommentar


                              #44
                              Zitat von Brn Beitrag anzeigen
                              //Edit: und noch eine Frage zur navbar: bekommt man die irgendwie responsive hin? Wenn man bspw. eine navbar oben hat mit 10 Icons und man schaltet dann auf ein smartphone um, rutscht die Navbar zusammen und die Icons überlagern sich in einer Zeile, zusammen gequetscht.
                              Aus den Gedächtnis: colspan_s auf z.B. 2 setzen. Dann sollte es klappen.

                              Kommentar


                                #45
                                Zitat von chrisper Beitrag anzeigen
                                Aus den Gedächtnis: colspan_s auf z.B. 2 setzen. Dann sollte es klappen.
                                Aber navbar selber unterstützt gar kein layout Kind- Element: http://cometvisu.org/CometVisu/de/la...bar/index.html

                                Kommentar

                                Lädt...
                                X