Ankündigung

Einklappen
Keine Ankündigung bisher.

LOGICS verschwinden in der ADMIN-Seite stehen aber im Plugins-Verzeichnis

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

    LOGICS verschwinden in der ADMIN-Seite stehen aber im Plugins-Verzeichnis

    Guten Abend in die Runde.

    jetzt ist mir irgendwo etwas passiert und kann es nicht nachvollziehen.

    Die Logiken stehen in richtigen Verzeichnis und liefen auch alle. Jetzt plötzlich werden sie im ADMIN-Fenster nocht mehr angezeigt.

    smarthomeng wirft nur nachfolgende Meldungen im LG aus.

    Leider kann ich das Problem nicht erkennen und bitte um Hilfe!

    In der letzten Zeile wird ein PermissionError angezeigt. ??

    Neue smartVISU-Seiten habe und will ich nicht generieren! Anbei aus der plugin.yaml der smartvisu-Eintrag

    Code:
    # Autogenerierung von Webseiten für SmartVISU UND Aktivierung des Nutzdatenprotokolls über Websocket für die smartVISU
    smartvisu_pages:
        plugin_name: smartvisu
        smartvisu_dir: /var/www/html/smartvisu
        #generate_pages: True
        #overwrite_templates: True
        #visu_style: std
        #default_acl: rw
        #handle_widgets: True
        #list_deprecated_warnings: False
    ​



    2023-04-07 15:26:37 NOTICE lib.smarthome -------------------- Init SmartHomeNG v1.9.5-master (646146a0f) --------------------
    2023-04-07 15:26:37 NOTICE lib.smarthome Running in Python interpreter 'v3.9.2 final', from directory /usr/local/smarthome
    2023-04-07 15:26:37 NOTICE lib.smarthome - operating system 'Debian GNU/Linux 11 (bullseye)' (pid=3929)
    2023-04-07 15:26:37 NOTICE lib.smarthome - on 'Raspberry Pi 4 v1.4, 8GB (Sony, UK)'
    2023-04-07 15:26:38 NOTICE lib.smarthome - Nutze Feiertage für Land 'DE', Provinz 'BY', 3 benutzerdefinierte(r) Feiertag(e) definiert
    2023-04-07 15:26:42 WARNING plugins.aastockwert Test LOGGER Warning starting aastockwert service
    2023-04-07 15:26:42 WARNING plugins.cli CLI: You should set a password for this plugin.
    2023-04-07 15:26:45 NOTICE lib.smarthome -------------------- SmartHomeNG initialization finished --------------------
    2023-04-07 15:26:46 ERROR plugins.smartvisu SmartVisuGenerator: Exception: [Errno 1] Die Operation ist nicht erlaubt
    Traceback (most recent call last):
    File "/usr/local/smarthome/plugins/smartvisu/__init__.py", line 146, in run
    svgen = SmartVisuGenerator(self, self.visu_definition)
    File "/usr/local/smarthome/plugins/smartvisu/svgenerator.py", line 64, in __init__
    self.copy_templates()
    File "/usr/local/smarthome/plugins/smartvisu/svgenerator.py", line 492, in copy_templates
    shutil.copy2(os.path.join(self.shng_tpldir, fn), self.gen_tpldir)
    File "/usr/lib/python3.9/shutil.py", line 436, in copy2
    copystat(src, dst, follow_symlinks=follow_symlinks)
    File "/usr/lib/python3.9/shutil.py", line 375, in copystat
    lookup("utime")(dst, ns=(st.st_atime_ns, st.st_mtime_ns),
    PermissionError: [Errno 1] Die Operation ist nicht erlaubt

    #2
    Wenn Du eigene Seiten hast, musst Du den Parameter „generate_pages“ im smartVISU-Plugin auf False setzen.

    Zusätzlich solltest Du sicher stellen, dass der User „smarthome“ Schreibrechte auf /var/www/html/smartvisu hat. Falls der Ordner bei Dir anders heißt, muss das ebenfalls in der plugin.yaml und in den Rechten angepasst werden.

    Ob das die Ursache für die fehlenden Logiken sein kann, weiß ich nicht.

    Gruß
    Wolfram

    Kommentar


      #3
      Zitat von schloessl Beitrag anzeigen
      Die Logiken stehen in richtigen Verzeichnis und liefen auch alle. Jetzt plötzlich werden sie im ADMIN-Fenster nocht mehr angezeigt.
      Sind die Logiken denn in der Datei etc/logic.yaml definiert?
      Viele Grüße
      Martin

      There is no cloud. It's only someone else's computer.

      Kommentar


        #4
        Danke für die beiden Antworten,

        #generate_pages: True, Das war mein Fehler, generate_pages: False brachte die Lösung zum SmartVisuGenerator: Exception: [Errno 1]"

        Und ja. die plugins stehen im richtigen Verzeichnis etc/logic.yaml .
        Leider gibt es noch einen Fehler, die Daten werden nicht angenommen.
        die Fehlermeldung steht unten bereit.

        Irgendwo habe ich etwas in den Definitionen falsch angelegt. Der Satz "ERROR lib.smarthome Unhandled exception: string indices must be integers" sagt mir leider nichts!

        Kann mir bitte jemand die Zeile und Modul nennen, an der ich eine Lognachricht mit der fehlerhaften "string indices" ausdrucken kann.

        Meinen Dank schon jetzt!

        Leider habe ich viel "logics", weiß aber nicht wonach ich suchen kann? Evtl. hilft mir eine Erklärung der Fehlermeldung.



        Code:
        2023-04-20  12:17:20 NOTICE   lib.smarthome        - Nutze Feiertage für Land 'DE', Provinz 'BY', 3 benutzerdefinierte(r) Feiertag(e) definiert
        2023-04-20  12:17:21 WARNING  lib.module          Not loading module Mqtt from section 'mqtt': Module is disabled
        2023-04-20  12:17:24 WARNING  plugins.aastockwert Test LOGGER Warning starting aastockwert service
        2023-04-20  12:17:24 WARNING  plugins.cli         CLI: You should set a password for this plugin.
        2023-04-20  12:17:28 ERROR    lib.smarthome       Unhandled exception: string indices must be integers
        <class 'TypeError'>
        running SmartHomeNG v1.9.5-master (646146a0f)
        Exception:   File "/usr/local/smarthome/bin/smarthome.py", line 292, in <module>
            sh.start()
          File "/usr/local/smarthome/lib/smarthome.py", line 670, in start
            self.logics = lib.logic.Logics(self, self._logic_conf_basename, self._env_logic_conf_basename)
          File "/usr/local/smarthome/lib/logic.py", line 120, in __init__
            self._userlogics = self._read_logics(userlogicconf, self._logic_dir)
          File "/usr/local/smarthome/lib/logic.py", line 144, in _read_logics
            config[name]['pathname'] = directory + config[name]['filename']
        
        ​
        LG Wolfgang

        Kommentar


          #5
          Zitat von schloessl Beitrag anzeigen
          Und ja. die plugins stehen im richtigen Verzeichnis etc/logic.yaml
          ??? Jetzt haast Du mich verloren:
          • Du sprichst plötzlich von Plugins?
          • etc/logic.yaml ist eine Datei und kein Verzeichnis

          Die Fehlermeldung, die Du gepostet hast, sieht stark danach aus, hals hättest Du ein SmartHomeNG Objekt mit einer String-Variablen überschrieben. Aus der Exception schließe ich, dass bei Dir entweder das Objekt config oder das Objekt config[name] durch eine String Variable überschrieben wurden. So etwas passiert gerne mal, durch fehlerhafte Statements in einer Logik.
          Viele Grüße
          Martin

          There is no cloud. It's only someone else's computer.

          Kommentar


            #6
            Danke für die Antwort!

            Mein Fehler Und ja. die Logiken stehen im richtigen Verzeichnis etc/logic.yaml . Blöder Tippfehler von mir.

            Gibt es Zeile an der ich wenigstens die verursachende Logic per Logausdruck einkreisen kann?

            Kommentar


              #7
              Zitat von schloessl Beitrag anzeigen
              Gibt es Zeile an der ich wenigstens die verursachende Logic per Logausdruck einkreisen kann?
              Nein,
              aber überlege doch, welche Logiken Du in letzter Zeit verändert hast (seit dem Zeitpunkt, wo es noch funktionierte).
              Viele Grüße
              Martin

              There is no cloud. It's only someone else's computer.

              Kommentar


                #8
                Msinn Du meinst einfach mal das Dateidatum der Logiken nach Alter anschauen?

                Kommentar


                  #9
                  bmx Wenn schloessl nicht mehr erinnert, was er in letzter Zeit angepasst hat, wäre das ein guter Ansatz.
                  Viele Grüße
                  Martin

                  There is no cloud. It's only someone else's computer.

                  Kommentar


                    #10

                    Ich konnte leider erst jetzt wieder an den Rechner.

                    Meine logic-Dateien haben ein Alter von 02.06.2016 bis 28.06.2021

                    Eine logic hatte die Endung "blind_vorgabe.pyalt" und war die vergessene Sicherungsdatei vor einer Anpassung.
                    Diese Datei habe ich gelöscht. Leider ändert sich hier nichts, siehe LOG.

                    Wo ist das Problen zu suchen "Unhandled exception: string indices must be integers"
                    Ich baue gerne einige Logzeilen ein!

                    2023-04-20 18:26:53 ERROR lib.smarthome Unhandled exception: string indices must be integers
                    <class 'TypeError'>
                    running SmartHomeNG v1.9.5-master (646146a0f)
                    Exception: File "/usr/local/smarthome/bin/smarthome.py", line 292, in <module>
                    sh.start()
                    File "/usr/local/smarthome/lib/smarthome.py", line 673, in start
                    self.logics = lib.logic.Logics(self, self._logic_conf_basename, self._env_logic_conf_basename)
                    File "/usr/local/smarthome/lib/logic.py", line 120, in __init__
                    self._userlogics = self._read_logics(userlogicconf, self._logic_dir)
                    File "/usr/local/smarthome/lib/logic.py", line 144, in _read_logics
                    config[name]['pathname'] = directory + config[name]['filename']

                    Kommentar


                      #11
                      Ich habe im Moment nicht die leiseste Idee, was bei Dir kaputt gegangen sein kann. Deshalb können wir uns dem Problem nur in kleinen Schritten nähern.

                      Da die Zeile 144, die die Exception schmeisst, in einer Loop steckt, könnntest Du in Log Messages ersticken.
                      Deshalb vorab zwei Fragen:
                      - Werden bei Dir gar keine Logiken geladen oder werden nur einige Logiken nicht geladen?
                      - Kannst Du die Datei etc/logic.yaml posten?

                      Viele Grüße
                      Martin

                      There is no cloud. It's only someone else's computer.

                      Kommentar


                        #12
                        Poste doch mal Deine logic.yaml - am besten als Datei im Anhang, damit man eventuelle Formatfehler sehen kann.
                        Mir scheint das Problem schon beim Einlesen der Logiken aufzutreten, also beim Ermitteln der Konfiguration aus der logic.yaml.

                        Gruß
                        Wolfram

                        Kommentar


                          #13
                          Hallo liebe Helfer,

                          ich habe 44 Logiken in meiner LOGIC.YAML die seit einigen Jahren laufen. Den Stand der als "Problem" auftaucht habe ich auf einen Raspi mit der smarthomeng-version 1.9.4 kopiert. Hier werden die Dateien problemlos ausgeführt. Zusätzlich habe ich jede logic noch einmal einzeln unter der 1.9.5 getestet. Bei jeder logic gibt es die gleiche bekannte Fehlermeldung. Daraus schließe ich, das Problem liegt nicht in der logic.yaml und den Befehlen in der logic. Die Meldung "string indices must be integers" finde ich nicht in den lib-files, eine Logzeile mit den entsprenden Daten könnte evtl helfen. Eventuell habe ich irgendwo etwas übertippt bei den "string indices ??". Welche Module sollte ich überprüfen oder neu übernehmen? Sonst bleibt nur der Neustart !

                          Danke für die Hilfe, Grüße nach Hamburg und Gerlingen !

                          Kommentar


                            #14
                            Also eigentlich würde ich in diesem Fall wie folgt vorgehen:

                            Ein virtuelle Maschine aufsetzen und SmartHomeNG in der Version installieren, die bei Dir auf dem (defekten) System installiert ist. Dort eine Freigabe für Samba Zugriff einrichten wie in der Komplettanleitung beschrieben.
                            Dann beide Dateisysteme mit einem Tool vergleichen und die UNterschiede bewerten. [Werbung an] Ich nutze für solche Fälle gerne Beyond Compare was ich schon seit Jahren gerne nutze [Werbung aus].
                            Dann hast Du einen Eindruck wo die Unterschiede bestehen und kannst ggf. die überschriebenen oder vom Dateisystem defekten Dateien tauschen.

                            Es gibt die Möglichkeit eine Datei aus dem Github Repository auf der Kommandozeile zurückzusetzen mit
                            Code:
                            git checkout -- <Pfad zur Datei>
                            also z.B.

                            Code:
                            git checkout -- lib/triggertimes.py
                            Viel Erfolg!

                            Kommentar


                              #15
                              Schau mal, ob die Systemlogiken (env_daily, env_loc …) geladen wurden. Im Admin Interface gibt es einen eigenen Reiter dafür unter Logiken.

                              Systemlogiken und Benutzerlogiken stehen in unterschiedlichen Ordnern, werden aber gemeinsam geladen und initialisiert. Das ergibt vlt. weitere Hinweise für die Fehlersuche.

                              Gruß
                              Wolfram

                              P.S: wird shNG mit der Option -c oder —config_dir gestartet? Das könnte eine weitere Fehlerquelle sein, wenn in dem angegebenen Ordner die Logics fehlen.
                              Zuletzt geändert von wvhn; 22.04.2023, 12:59.

                              Kommentar

                              Lädt...
                              X