Ankündigung

Einklappen
Keine Ankündigung bisher.

Cometvisu im Docker auf Synology

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

    Cometvisu im Docker auf Synology

    Hallo zusammen,

    ich habe versucht die CometVisu (tag: testing) im Docker-Container auf meinem Synology NAS zum Laufen zu bekommen.
    Jedoch bekomme ich immer eine Fehlermeldung:

    Code:
    starting knxd
    Server side configuration parameters:
    BACKEND_NAME: 'knxd'
    BACKEND_KNXD: '/cgi-bin/l'
    BACKEND_MQTT: '10.64.242.44'
    CGI_URL_PATH: '/cgi-bin/' (deprecated)
    knxd baseURL: '/cgi-bin/'
    running 'apache2-foreground'...
    AH00526: Syntax error on line 18 of /etc/apache2/conf-enabled/cv-docker-php.conf:
    Header requires three arguments​
    Ich habe verschiedene Variationen der Umgebungsvariablen ausprobiert, leider ohne Erfolg. Da der Container nach dem Fehler sofort wieder herunterfährt, kann ich auch das File /etc/apache2/conf-enabled/cv-docker-php.conf nicht anschauen. Hier sieht es so aus, als würde es dynamisch erstellt: https://github.com/CometVisu/Docker/...isu-entrypoint

    Was mache ich falsch?

    Danke und VG
    Micha

    #2
    Das klingt sehr komisch - denn dass was dem Apache hier fehlt ist gesetzt, sonst würde es im geposteten Text nicht auftauchen.

    Was Du versuchen könntest (bei mir geht's, aber ich kann ja den Fehler bei mir auch nicht reproduzieren):
    Ersetze mal "Entry Point" mit einem leeren String, also nicht den Default-Wert von "cometvisu-entrypoint" nehmen.
    Und dann, gleich nach dem Start, interaktiv einloggen und die Datei "/etc/apache2/conf-enabled/cv-docker-php.conf" anzeigen lassen (z.B. mit "cat /etc/apache2/conf-enabled/cv-docker-php.conf").

    Was kommt dann nach dem "<FilesMatch "visu_config.*xml$">"?
    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


      #3
      Zitat von Chris M. Beitrag anzeigen
      Ersetze mal "Entry Point" mit einem leeren String, also nicht den Default-Wert von "cometvisu-entrypoint" nehmen.
      Wo müsste ich das ändern? Hier? https://github.com/CometVisu/Docker/...ockerfile#L133
      Und dann das Docker Image neu bauen? Oder kann ich das irgendwie in dem bereits benutzten Image ändern?

      Danke!

      Kommentar


        #4
        Du brauchst nichts neu zu bauen, das stellt man beim Starten des Containers ein.

        Wenn Du Docker im Terminal aufrufst, dann durch "--entrypoint", also mit "docker run --entrypoint ..."

        Oder mit Portainer hier der Screenshot von meinem Test von neulich:
        Screenshot_20230706_210445.png

        Wie das mit Synology geht weiß ich nicht, wird aber sicher irgendwo dokumentiert sein.
        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


          #5
          Danke für die Hilfe, Chris!

          Ich weiß zwar nicht genau wie, aber beim zweiten Versuch einen neuen Container zu erstellen (diesmal per Kommandozeile statt Synology UI), hat es funktioniert und die CometVisu läuft :-)

          Allerdings bekomme ich die Verbindung zum Wiregate nicht hin. Ich habe diverse Werte für KNX_INTERFACE ausprobiert: "iptn:<wiregateIP>:3700"; "iptn:<wiregateIP>:3671"; "ipt:<wiregateIP>:3671" - jedoch zeigt der Config-Manager immer die Fehlermeldung "Connection error: Connection to backend "main" is lost." an. Die Visu selbst zeigt natürlich auch keine Werte an. Im Log finde ich aber nur:

          Code:
          starting knxd
          Server side configuration parameters:
          BACKEND_NAME: 'knxd'
          BACKEND_KNXD: '/cgi-bin/l'
          BACKEND_MQTT: '10.64.242.44'
          BACKEND_OPENHAB: '/cgi-bin/'
          CGI_URL_PATH: '/cgi-bin/' (deprecated)
          knxd baseURL: '/cgi-bin/'
          running 'apache2-foreground'...
          AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.11. Set the 'ServerName' directive globally to suppress this message
          AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.11. Set the 'ServerName' directive globally to suppress this message
          [Fri Jul 07 11:36:47.057937 2023] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.56 (Debian) PHP/8.0.28 configured -- resuming normal operations
          [Fri Jul 07 11:36:47.057984 2023] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
          [Fri Jul 07 11:39:54.314170 2023] [php:error] [pid 32] [client 172.17.0.1:52516] PHP Fatal error:  Uncaught TypeError: array_key_exists(): Argument #2 ($array) must be of type array, null given in /var/www/html/rest/manager/environment.php:71\nStack trace:\n#0 {main}\n  thrown in /var/www/html/rest/manager/environment.php on line 71, referer: http://mediaserver:8097/
          [Fri Jul 07 11:40:44.496931 2023] [php:error] [pid 29] [client 172.17.0.1:52934] PHP Fatal error:  Uncaught TypeError: array_key_exists(): Argument #2 ($array) must be of type array, null given in /var/www/html/rest/manager/environment.php:71\nStack trace:\n#0 {main}\n  thrown in /var/www/html/rest/manager/environment.php on line 71, referer: http://mediaserver:8097/?config=old​

          Was mir noch aufgefallen ist: die Datei /etc/apache2/conf-enabled/cv-docker-php.conf scheint mit jedem Docker-Restart zu wachsen:

          Code:
          root@cc8d24349511:/var/www/html# cat /etc/apache2/conf-enabled/cv-docker-php.conf                                                                                                                                                                                                          
          LimitRequestFieldSize 32768                                                                                                                                                                                                                                                                
          LimitRequestLine 32768                                                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                                                                                      
          <FilesMatch \.php$>                                                                                                                                                                                                                                                                        
                  SetHandler application/x-httpd-php                                                                                                                                                                                                                                                  
          </FilesMatch>                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                      
          DirectoryIndex enabled                                                                                                                                                                                                                                                                      
          DirectoryIndex index.php index.html                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                      
          <Directory /var/www/>                                                                                                                                                                                                                                                                      
                  Options +Indexes                                                                                                                                                                                                                                                                    
                  AllowOverride All                                                                                                                                                                                                                                                                  
          </Directory>                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                                      
          <FilesMatch "visu_config.*xml$">                                                                                                                                                                                                                                                            
              Header set X-CometVisu-Backend-Name knxd                                                                                                                                                                                                                                                
              Header set X-CometVisu-Backend-KNXD-Url /cgi-bin/l                                                                                                                                                                                                                                      
              Header set X-CometVisu-Backend-MQTT-Url 10.64.242.44                                                                                                                                                                                                                                    
              Header set X-CometVisu-Backend-OpenHAB-Url /cgi-bin/                                                                                                                                                                                                                                    
          </FilesMatch>                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                      
          <FilesMatch "visu_config.*xml$">                                                                                                                                                                                                                                                            
              Header set X-CometVisu-Backend-Name knxd                                                                                                                                                                                                                                                
              Header set X-CometVisu-Backend-KNXD-Url /cgi-bin/l                                                                                                                                                                                                                                      
              Header set X-CometVisu-Backend-MQTT-Url 10.64.242.44                                                                                                                                                                                                                                    
              Header set X-CometVisu-Backend-OpenHAB-Url /cgi-bin/                                                                                                                                                                                                                                    
          </FilesMatch>                                                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                                      
          <FilesMatch "visu_config.*xml$">                                                                                                                                                                                                                                                            
              Header set X-CometVisu-Backend-Name knxd                                                                                                                                                                                                                                                
              Header set X-CometVisu-Backend-KNXD-Url /cgi-bin/l                                                                                                                                                                                                                                      
              Header set X-CometVisu-Backend-MQTT-Url 10.64.242.44                                                                                                                                                                                                                                    
              Header set X-CometVisu-Backend-OpenHAB-Url /cgi-bin/                                                                                                                                                                                                                                    
          </FilesMatch>                                                                                                      ​
          Soll ich dazu mal einen Issue erstellen?

          Danke und VG
          Micha
          Zuletzt geändert von mivola; 07.07.2023, 12:46.

          Kommentar


            #6
            Zitat von mivola Beitrag anzeigen
            Allerdings bekomme ich die Verbindung zum Wiregate nicht hin. Ich habe diverse Werte für KNX_INTERFACE ausprobiert: "iptn:<wiregateIP>:3700"; "iptn:<wiregateIP>:3671"; "ipt:<wiregateIP>:3671" - jedoch zeigt der Config-Manager immer die Fehlermeldung "Connection error: Connection to backend "main" is lost." an.
            Gibt es hier evtl. irgendwelche Firewall Regeln die den Zugriff von einem Container auf das lokale Netzwerk verhindern?

            Was passiert, wenn Du Dich im Container interaktiv auf die Shell einlogst und dann mit "apt update" und anschließend "apt install iputils-ping" mal Ping installierst - und dann mal versuchts mit "ping <wiregateIP>" eine Netzwerkverbindung zum Wiregate aufzubauen?

            Zitat von mivola Beitrag anzeigen
            Die Visu selbst zeigt natürlich auch keine Werte an. Im Log finde ich aber nur:
            Code:
            ...
            [Fri Jul 07 11:39:54.314170 2023] [php:error] [pid 32] [client 172.17.0.1:52516] PHP Fatal error: Uncaught TypeError: array_key_exists(): Argument #2 ($array) must be of type array, null given in /var/www/html/rest/manager/environment.php:71\nStack trace:\n#0 {main}\n thrown in /var/www/html/rest/manager/environment.php on line 71, referer: http://mediaserver:8097/
            [Fri Jul 07 11:40:44.496931 2023] [php:error] [pid 29] [client 172.17.0.1:52934] PHP Fatal error: Uncaught TypeError: array_key_exists(): Argument #2 ($array) must be of type array, null given in /var/www/html/rest/manager/environment.php:71\nStack trace:\n#0 {main}\n thrown in /var/www/html/rest/manager/environment.php on line 71, referer: http://mediaserver:8097/?config=old​
            Die beiden Zeilen sind doof, aber nicht schlimm. Komisch dass uns das durchgerutscht ist. Egal, ich fixe es schnell mal.

            Zitat von mivola Beitrag anzeigen
            Was mir noch aufgefallen ist: die Datei /etc/apache2/conf-enabled/cv-docker-php.conf scheint mit jedem Docker-Restart zu wachsen:
            [...]
            Soll ich dazu mal einen Issue erstellen?
            Ja, ist mir auch aufgefallen als ich für diesen Thread hier getestet habe. Diese mehrfachen Einträge schaden nicht (außer ein paar Byte verschwendeter Platz), sollten aber natürlich nicht da sein. Die kommen mit jedem Neustart - aber jedes mal wenn der Container neu geholt wird setzten sie sich zurück.

            Du kannst gerne ein Issue machen, dann geht's nicht verloren, dass das auch gefixt werden sollte
            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


              #7
              Zitat von Chris M. Beitrag anzeigen
              Gibt es hier evtl. irgendwelche Firewall Regeln die den Zugriff von einem Container auf das lokale Netzwerk verhindern?

              Was passiert, wenn Du Dich im Container interaktiv auf die Shell einlogst und dann mit "apt update" und anschließend "apt install iputils-ping" mal Ping installierst - und dann mal versuchts mit "ping &lt;wiregateIP&gt;" eine Netzwerkverbindung zum Wiregate aufzubauen?
              Das ping funktioniert. Und nach einigen Versuchen mit diversen Parametern auf der Kommandozeile funktioniert auch der knxd:
              Code:
              knxd -i iptn:<wiregateIP>:3671 -e 15.15.33 -u -d/dev/stdout -c
              Jedoch habe ich ein seltsames Verhalten beobachtet: die Verbindung der CV zum Server bricht nach ein paar Minuten ab, d.h. es kommen keine neuen Werte mehr an. In der Developer Console sehe ich, dass einfach keine Response mehr für den /cgi-bin/r?... Request kommt (siehe Anhang). Ich habe es auf Windows 11 mit Chrome, Edge & Firefox probiert und überall dasselbe Verhalten. Nach einem Reload der Seite funktioniert es wieder für 3-10 Minuten. Im Log des Docker-Containers oder des Wiregate finde ich keine Fehlermeldung.
              Auf meinem Android-Handy funktioniert es in Chrome jedoch stabil über einen längeren Zeitraum.
              Soll ich dafür mal einen neuen Thread öffnen?

              Zitat von Chris M. Beitrag anzeigen
              Du kannst gerne ein Issue machen, dann geht's nicht verloren, dass das auch gefixt werden sollte
              bitte: https://github.com/CometVisu/CometVisu/issues/1355

              Danke,
              Micha
              Angehängte Dateien

              Kommentar


                #8
                Was Du beschreibst kann das ganz normale Verhalten sein, dass passiert wenn gerade auf dem Bus nicht relevantes passiert und die CV folglich auf das nächste Paket wartet.

                Bist Du sicher, dass sich die Kommunikation aufhängt?

                Ein einfacher Test ist ein Switch und ein Info Widget mit der gleichen Adresse (die es sonst im ganzen Bus bei Dir nicht gibt) zusätzlich in die Visu zu packen. Wenn es so aussieht das nichts mehr passiert und es hängt, dann mal diesen Switch betätigen und schauen ob sowohl ein "w" als auch ein "r" kommt
                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


                  #9
                  So, bin zurück aus dem Urlaub und habe mir das Verhalten nochmal angeschaut...

                  Zitat von Chris M. Beitrag anzeigen
                  Ein einfacher Test ist ein Switch und ein Info Widget mit der gleichen Adresse (die es sonst im ganzen Bus bei Dir nicht gibt) zusätzlich in die Visu zu packen. Wenn es so aussieht das nichts mehr passiert und es hängt, dann mal diesen Switch betätigen und schauen ob sowohl ein "w" als auch ein "r" kommt
                  Das habe ich mit folgender Config ausprobiert:
                  Code:
                  <cv-switch>
                      <cv-address slot="address" transform="DPT:1.001" mode="readwrite">1/1/60</cv-address>
                      <cv-address slot="address" transform="DPT:1.001" mode="read">1/1/61</cv-address>
                      <cv-icon slot="icon">ri-lightbulb-line</cv-icon>
                      <span slot="primaryLabel" tr="true">AZ Decke</span>
                  </cv-switch>​
                  Das Problem bleibt jedoch bestehen: nach einiger Zeit reagiert die Visu nicht mehr (rote Zeile mit "r?i=33283"). Ich kann den Switch danach nur 1x ausführen, dabei kommt ein "w"-Request und das Licht geht aus:
                  image.png
                  Danach werden keine Requests mehr gestartet, auch nicht, wenn ich nochmal auf den Switch klicke.

                  In der Config ist auch ein info-Element eingebaut welches alle 15-30s einen neuen Wert erhält (bis dann keine Kommunikation mehr läuft) - es gibt also schon Relevantes auf dem Bus....


                  Wie gesagt funktioniert es auf auf meinem Android Handy und heute habe ich es auch mal auf anderen Geräten getestet: siehe da, es läuft auch problemlos auf anderen Linux- & Windows-Rechnern ... also scheint es ein lokales Problem mit meinem Entwicklungsrechner zu sein ... nur was??

                  Danke,
                  Micha

                  Kommentar


                    #10
                    Der Screenshot sieht vollkommen i.O. aus. Das "(canceled)" kann passieren, wenn am Bus nichts relevantes passiert und die Kommunikation daher in ein Time-Out läuft. Die wird sich dann selbst neu starten, und ganz im Notfall wir der Watchdog hier eingreifen und neu starten.

                    Warum der Entwicklungsrechner von Dir hier klemmt ist mir erst mal nicht erklärlich, das von Dir beschriebene Problem kenne ich auch nicht. Evtl. liegt irgend ein Plugin quer?
                    (Mein Chrome hat im Entwicklungsmodus seit ein paar Monaten auch irgend ein Problem: öffne ich den Entwicklungsmodus, egal welche Seite, muss nicht mal eine CV sein, dann brauche ich nur etwas zu warten und der ganze Browser stürzt ab und beendet sich :O; die Ursache habe ich nie finden können, da nun aber der Umzug auf einen neuen Rechner ansteht werde ich es auch nicht mehr versuchen zu lösen)
                    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

                    Lädt...
                    X