Ankündigung

Einklappen
Keine Ankündigung bisher.

smartVISU 3.2.1 auf Nginx-Webserver

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

    smartVISU 3.2.1 auf Nginx-Webserver

    Hallo zusammen,

    nachdem ich jetzt mehrere Monate leider andere Prioritäten hatte, habe ich nun versucht smartVISU mit meinem OpenHab 3 (Version 3.2.0) zu verheiraten. Hierzu habe ich auf dem Raspberry Pi mit Raspbian 10 (Buster), auf dem OH3 läuft den Nginx Webserver und PHP installiert. Ein paar grundlegende Konfigurationen des Nginx und dann hat sich smartVISU 3.2.1 (Git-Master Stand heute: 3.2.1) starten lassen. Letztes Jahr hatte ich bereits hier im Forum nachgefragt, ob smartVISU mit OH 3 funktioniert. Daraufhin wurde freundlicher weise der OH-Treiber angepasst. Soweit, so gut.
    Nun habe ich in der smartVISU-Konfiguration als Treiber Openhab ausgewählt, IP-Adresse, Port und als Benutzername den API-Token eingetragen und anschließend gespeichert. Seither wird mir in der rechten oberen Ecke immer ein Error angezeigt. Wenn ich auf diesen klicke erhalte ich eine Meldung, die wenig aussagekräftig ist (Überschrift: Error, Text: Error). Meine Test-Items, die ich auf einer smartVISU-Seite eingerichtet habe werden auch nicht angezeigt. Alternativ zum API-Token habe ich auch mal meine Admin-Zugangsdaten von OH3 eingegeben, ebenfalls keine Änderung. Auch ohne Zugangsdaten kein Erfolg.

    Wenn ich auf der Konsole einen Curl-Aufruf tätige, kann ich die OH3-Installation erreichen und auch Items schalten. Somit würde ich aktuell von einem OH3-Problem absehen. Wähle ich in smartVISU den "alten" Openhab 2-Treiber, dann erhalte ich keine Fehlermeldung, allerdings werden mir meine Test-Items ebenfalls nicht angezeigt.
    Kann mir hier jemand einen Tipp geben, wie ich dem Problem auf die Schliche kommen kann? Gibt es Installationsvoraussetzungen (Software-Pakete wie z.B. php-curl) die zu installieren sind? gibt es ein best practise für eine Nginx-Konfiguration?

    Im voraus vielen Dank für eure Hilfe.

    Christian.

    P.S. Sollten noch Infos fehlen, dann bitte einfach melden. Danke.

    #2
    Hallo,

    ich hab ebenfalls eine OH3 (Version 3.0.1) und SV (3.1.a) Installation am Laufen. Beides auf einem Server.

    Ich habe/hatte ebenfalls Fehler (timeout Fehler) wenn ich den openhab Treiber nehme > aktuell nutze ich den OH2 Treiber und es läuft ansich ganz sauber.
    Welchen Port hast du gesetzt?

    Grüße
    wu3mi

    Kommentar


      #3
      Hi Christian,

      folgende php-Pakete müssen installiert sein:
      Code:
      libawl-php php-curl php php-json php-xml php-mbstring
      Dann solltest Du in der Browser-Konsole prüfen, ob das Objekt "sv.config.driver" vorhanden und korrekt befüllt ist. Es gibt auch die Seite "driver_debug", die Dir die wichtigsten Parameter anzeigt.
      Code:
      http://192.168.x.y/smartVISU/index.phhp?page=driver_debug
      Gruß
      Wolfram

      Kommentar


        #4
        Zitat von wu3mi Beitrag anzeigen
        Hallo,

        ich hab ebenfalls eine OH3 (Version 3.0.1) und SV (3.1.a) Installation am Laufen. Beides auf einem Server.

        Ich habe/hatte ebenfalls Fehler (timeout Fehler) wenn ich den openhab Treiber nehme > aktuell nutze ich den OH2 Treiber und es läuft ansich ganz sauber.
        Welchen Port hast du gesetzt?

        Grüße
        wu3mi
        Hallo wu3mi,

        ​​​​​​ich nutze den Port 8080. Es ist kein SSL aktiviert. Wenn ich das bei OH richtig verstehe, müsste das doch der korrekte Port sein, oder?

        Vielen Dank
        Gruß,
        Christian

        Kommentar


          #5
          Zitat von wvhn Beitrag anzeigen
          Hi Christian,
          Zitat von wvhn Beitrag anzeigen
          folgende php-Pakete müssen installiert sein:
          Code:
          libawl-php php-curl php php-json php-xml php-mbstring

          Dann solltest Du in der Browser-Konsole prüfen, ob das Objekt "sv.config.driver" vorhanden und korrekt befüllt ist. Es gibt auch die Seite "driver_debug", die Dir die wichtigsten Parameter anzeigt.
          [CODE]http://192.168.x.y/smartVISU/index.phhp?page=driver_debug[/CODE]

          Gruß
          Wolfram
          Hallo Wolfram,
          ok, bei mir sind folgende PHP-Pakete installiert:
          Code:
          libawl-phpphp-common
          php-fpm
          php7.3-cli
          php7.3-common
          php7.3-curl
          php7.3-fpm
          php7.3-json
          php7.3-mbstring
          php7.3-opcache
          php7.3-readline
          php7.3-xml
          php7.3
          php

          Wenn ich die Browser-Konsole starte erhalte ich folgende Fehlermeldungen:
          Code:
          Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf [URL]http://192.168.0.45:8080/rest/events/states[/URL]. (Grund: CORS-Kopfzeile 'Access-Control-Allow-Origin' fehlt). Statuscode: 200.
          Code:
          Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf [URL]http://192.168.0.45:8080/rest/events/states[/URL]. (Grund: CORS-Anfrage schlug fehl). Statuscode: (null).
          Code:
          TypeError: NetworkError when attempting to fetch resource. eventsource.js:913:19
          onFinish [URL]http://servername.fqdn/driver/openhab/eventsource.js:913[/URL]
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:566[/URL]
          (Async: promise callback)
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:565[/URL]
          onTimeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:992[/URL]
          timeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:904[/URL]
          (Async: setTimeout handler)
          onFinish [URL]http://servername.fqdn/driver/openhab/eventsource.js:903[/URL]
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:566[/URL]
          (Async: promise callback)
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:565[/URL]
          onTimeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:992[/URL]
          timeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:904[/URL]
          (Async: setTimeout handler)
          onFinish [URL]http://servername.fqdn/driver/openhab/eventsource.js:903[/URL]
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:566[/URL]
          (Async: promise callback)
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:565[/URL]
          onTimeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:992[/URL]
          timeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:904[/URL]
          (Async: setTimeout handler)
          onFinish [URL]http://servername.fqdn/driver/openhab/eventsource.js:903[/URL]
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:566[/URL]
          (Async: promise callback)
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:565[/URL]
          onTimeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:992[/URL]
          timeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:904[/URL]
          (Async: setTimeout handler)
          onFinish [URL]http://servername.fqdn/driver/openhab/eventsource.js:903[/URL]
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:566[/URL]
          (Async: promise callback)
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:565[/URL]
          onTimeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:992[/URL]
          timeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:904[/URL]
          (Async: setTimeout handler)
          onFinish [URL]http://servername.fqdn/driver/openhab/eventsource.js:903[/URL]
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:566[/URL]
          (Async: promise callback)
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:565[/URL]
          onTimeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:992[/URL]
          timeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:904[/URL]
          (Async: setTimeout handler)
          onFinish [URL]http://servername.fqdn/driver/openhab/eventsource.js:903[/URL]
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:566[/URL]
          (Async: promise callback)
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:565[/URL]
          onTimeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:992[/URL]
          timeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:904[/URL]
          (Async: setTimeout handler)
          onFinish [URL]http://servername.fqdn/driver/openhab/eventsource.js:903[/URL]
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:566[/URL]
          (Async: promise callback)
          open [URL]http://servername.fqdn/driver/openhab/eventsource.js:565[/URL]
          onTimeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:992[/URL]
          timeout [URL]http://servername.fqdn/driver/openhab/eventsource.js:904[/URL]
          Die driver_debug-Seite gibt folgende Info aus:
          Code:
          Configuration Parameters
          driver name: openhab
          sv.driver.address:192.168.0.45
          sv.config.driver.port: 8080
          sv.config.driver.tlsport: 8080
          sv.config.svHostname:
          
          Location Info
          location host: servername.fqdn
          location hostname: servername.fqdn
          location.protocol: http:
          
          Websocket parameters
          io.address:
          io.port:
          Websocket URL:


          Vielen Dank
          Gruß,
          Christian
          Zuletzt geändert von kamikaze2508; 06.03.2022, 20:53.

          Kommentar


            #6
            Ich vermute mal, dass die Verbindung klappen sollte, wenn Du entweder "servername.fqdn" als Adresse des Backends in die smartVISU-Konfiguration einträgst, oder die Visu mit "http://192.168.0.45/smartVISU" aufrufst. Dann bist Du wieder auf Same Origin und die Blockade sollte aufgehoben sein.

            Alternativ im nginx die CORS-Header setzen. Websuche nach der Fehlermeldung liefert einige Treffer, u.a. diesen oder jenen.

            Gruß
            Wolfram
            Zuletzt geändert von wvhn; 06.03.2022, 23:17.

            Kommentar


              #7
              Hallo Wolfram,
              vielen Dank für die Info. Die Konfiguration der CORS-Header in meiner Nginix-Konfiguration hat den Fehler augenscheinlich behoben. Zusätzlich habe ich vorher noch in der OH3-Konfigurationsdatei runtime.cfg den Wert
              Code:
              org.openhab.cors:enable=true
              ergänzt. Siehe hierzu https://community.openhab.org/t/cors-problem/113063.

              Die CORS-Header-Konfiguration habe ich in der entsprechenden Sites-Datei eingetragen, in meinem Fall default. Ich habe die Konfiguration aus deinem zweiten Link verwendet.

              Nun lassen sich auf mit dem neuen Openhab-Treiber Werte lesen und schreiben.

              Danke nochmals.

              Viele Grüße
              Christian

              Kommentar

              Lädt...
              X