Ankündigung

Einklappen
Keine Ankündigung bisher.

smartVISU 3.0.0 - "Masteritem file is missing" / Templatechecker startet nicht

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

    smartVISU 3.0.0 - "Masteritem file is missing" / Templatechecker startet nicht

    Hallo zusammen,

    ich habe gerade die Version 3.0.0 ausprobiert. Lief auf Anhieb

    Dann wollte ich den TemplateChecker ausprobieren. Dort erhalte ich direkt den Hinweis
    Code:
    Masteritem file is missing - could not check item names and item types

    #2
    Wenn Du smarthomeNG v1.8 installiert hast, starte dieses neu. Das smartvisu-Plugin schreibt das masteritem-file dann in Dein Seitenverzeichnis.

    In früheren Versionen von smarthomeNG kannst Du die Ausgabe des masteritem-files mit einer Logik machen. Der Python Code dazu steht in der Readme.md im Ordner ./lib/widget_assistant. Du kannst diese im Admin-Interface von shNG eingeben und direkt triggern.

    Ohne masteritem file hat der Templatechecker die gleiche Funktion wie bisher. Mit dem File prüft er die Übereinstimmung der item-Typen ais dem Backend mit den in den Widgets vorgesehenen item-Typen.

    Gruß
    Wolfram
    Zuletzt geändert von wvhn; 28.01.2021, 21:21.

    Kommentar


      #3
      und wenn ich FHEM nutze?

      Kommentar


        #4
        Dann musst Du Dir das masteritem file von Hand erstellen. Ich hatte in verschiedenen Communities angeregt, dass jemand für das jeweilige Backend eine solche Logik implementiert. Rückmeldungen habe ich nicht bekommen.

        Die Datei ist json mit Wertepaaren aus item und type. Beispiel:
        Code:
         ["eg.eingang.licht.decke|bool", "eg.esszimmer.jalousie.links.pos|num" ... ]
        Gruß
        Wolfram
        Zuletzt geändert von wvhn; 18.02.2021, 16:39. Grund: Geändert wegen Tippfehler: [ ] statt { }

        Kommentar


          #5
          Ok, das bekomme ich hin. Vielleicht hast Du noch eine Liste von Typen? bool, num...

          Zitat von wvhn Beitrag anzeigen
          Ohne masteritem file hat der Templatechecker die gleiche Funktion wie bisher
          Dann habe ich aber ein anderes Problem. Mein Templatechecker zeigt nämlich keine "Run all test"-Schaltfläche. Dafür aber eine "Don´t check files in subfolders"-Schaltfläche. Es tauchen auch keine Dateien unter "Files in template directory:" auf, siehe Anhang.
          Templatechecker_3.0.0.png

          Kommentar


            #6
            Habe masterfile.json erzeugt und abgelegt, allerdings fehlt mir der Typ "Text".

            Der Templatechecker sieht jetzt wie folgt aus. Es tauchen keine Dateien unter "Files in template directory:" auf.
            Templatechecker_3.0.0.png

            Kommentar


              #7
              Das masteritem file ermöglicht wie gesagt Zusatzfunktionen im Templatechecker und hat keinen Einfluss auf das hier beobachtete Fehlverhalten.
              Ich kann das hier im Moment (noch) nicht nachstellen. Kann es sein, dass Du die Konfiguration nicht vollständig durchgeführt oder die Dateirechte nicht gesetzt hast?
              Geben die Entwicklertools im Browser (F12) Aufschluss durch Fehlermeldungen?

              Gruß
              Wolfram

              Kommentar


                #8
                Ich habe alles wiederholt.
                1. git clone ...
                2. setpermission habe ich etwas leicht angepasst, alle "g" zu "a", z.B.
                  Code:
                   find . -type d -exec chmod [MARKIEREN]a[/MARKIEREN]+rwsx {} +
                  Diese Änderung müsste meiner Meinung nach keinen Einfluss haben. Es erweitert ja den Zugriff
                3. erster Aufruf, alle Häckchen erscheinen.
                4. Seite in Betrieb genommen, "Example1.smarthome", Treiber "offline" - also nichts eigenes
                5. Templatechecker - wieder das Fehlerbild. In der Console erscheinen Fehler. Ich habe diese mal als Bild angefügt.
                Templatechecker_3.0.0.png

                Kommentar


                  #9
                  NGem ich habe jetzt auf viele verschiedene Arten versucht, den Templatechecker zum Nichtstarten zu überreden. Selbst in einem völlig frisch erstellten Verzeichnis, in dem ich jegliche Vergabe von Rechten und jegliche Konfiguration der SV weggelassen habe, startet er zuverlässig.
                  Bitte prüfe, ob Du unter Deinen Seiten Überreste von einer alten Installation hast (z.B. visu.js), oder ob Dateinamen verwendet werden, die in SV für die Widgets definiert sind (siehe die in ./widgets und ./page/base verwendeten Namen).
                  Wenn Du die config.ini im Root-Verzeichnis der smartVISU in z.B. config.old umbenennst und dann smartVISU neu aufrufst, kommt eine Begrüßungsseite, auf der verschiedene Voraussetzungen überprüft werden. Sind die alle erfüllt?

                  Gruß
                  Wolfram

                  P.S.: das hat sich jetzt überschnitten. Also die Voraussetzungen sind erfüllt.

                  Kommentar


                    #10
                    Der Fehler kommt aus dem Aufruf der .lib/templatechecker/templatechecker.php. Du könntest in der Entwicklerkonsole die Optionen "XHR" und "Anfragen" schauen, ob verwertbare Meldungen kommen, die den Fehler eingrenzen. Möglicherweise steht im Apache-Log (oder nginx-Log) noch mehr.

                    Kommentar


                      #11
                      Ich kann sehr ähnliche Fehler provozieren, wenn ich Dateien in .lib/templatechecker lösche oder durch alte Versionen ersetze. Bitte prüfe anhand des Verzeichnisses im master branch, ob bei Deinem Update die Dateien vollständig kopiert wurden und aktuell sind.
                      Ebenso die ./lib/functions_twig.php.

                      Kommentar


                        #12
                        Vielleicht liegt es an meiner Infrastruktur?

                        Ich nutze docker: Hier mein docker-compose:
                        Code:
                        version: '2.4'
                        
                        services:
                          php-smartvisu:
                            image: php:7.4-apache
                            restart: unless-stopped
                            container_name: smartVISU_Testsystem
                            ports:
                              - "802:80"
                            volumes:
                              - ./html:/var/www/html:rw
                              - /etc/localtime:/etc/localtime:ro
                        Falls Du docker nutzt, hoffe ich, dass Du der Fehler reproduzieren kannst. Das Setting ist für mich praktisch - würde mich freuen, wenn es beibehalten kann.

                        PS: Die 2.9.2 funktioniert in diesem Setting.
                        Zuletzt geändert von NGem; 29.01.2021, 15:29.

                        Kommentar


                          #13
                          Zu Docker kann henfri sicherlich etwas sagen. Ich kann nur sagen, dass php7.4 OK ist. Ich nutze das auf meinem Testsystem auch.

                          Ich denke, dass irgendwo ein Bug in Deiner Installation ist. Wenn Du mir per PN einen Link auf eine Kopie des gesamten smartVISU-Verzeichnisses schickst, kann ich das hier mal durchtesten.

                          Kommentar


                            #14
                            Hallo,

                            was ist denn jetzt das Fehlverhalten?
                            Ich habe noch nicht aktualisiert, daher kann ich nicht sagen, ob es mit Docker zusammenhängt. Aber eigentlich stellt Docker ja nur einen Webserver bereit.

                            Gruß,
                            Hendrik

                            Kommentar


                              #15
                              Hi henfri

                              das Fehlverhalten ist, dass PHP die Fileliste der im Templatechecker zu prüfenden Seiten nicht lädt bzw. nicht verarbeitet. Docker-Konfiguration siehe oben.
                              Spiele ich das Verzeichnis von NGem in mein Testsystem ein, läuft der Templatechecker normal.
                              Ist im Docker ggfls. noch zusätzliche Konfiguration für den Webserver / PHP / ajax erforderlich?

                              Das Laden der Dateiliste findet in einem Aufruf der PHP-Seite aus der templatechecker.js heraus statt:
                              Code:
                              $.ajax({
                                  type: "GET",
                                  url: 'lib/templatechecker/templatechecker.php',
                                  data: {"cmd": "getfiles", "pages": pages, "subfolders": subfolders},
                                  dataType: 'json',
                                  success: fillSuccess,
                                  error: fillError,
                                  complete: fillComplete
                              });
                              und liefert dann einen Fehler in der fillError-Funktion. Dieser Teil des Codes ist seit Jahren unverändert...

                              Danke und Gruß
                              Wolfram
                              Zuletzt geändert von wvhn; 29.01.2021, 18:53.

                              Kommentar

                              Lädt...
                              X