Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit autogenerate?

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

    Problem mit autogenerate?

    Hallo zusammen,

    Ich habe das Gefühl dass beim Start von smarthome.py das autogenerate zum Erzeugen des smarthome.py Templates nicht läuft bzw. abstürzt. Wenn ich /var/www/smartvisu/pages/smarthome leere, wird beim Neustart von smarthome.py eine Datei für den ersten Raum in der smartvisu.conf angelegt, die Datei bleibt jedoch 0 Byte groß und weitere Räume werden nicht angelegt. Nachdem ich probehalber den ersten Raum mal aus der conf rausgenommen hatte, das gleiche Resultat beim zweiten Raum. Auf dem Raspberry lief diese smarthome.conf problemlos.-

    smarthome.py 1.0 und smartVISU 2.8 sind beide frisch installiert (smartvisu.conf von älterer Installation übernommen).

    /var/www/smartvisu/pages/smarthome steht auf chmod 777
    smartvisu.conf ist 777
    smarthome.py läuft als User smarthome, der auch in der Gruppe www-data ist. Zwischenzeitlich habe ich den probehalber als root laufen lassen, aber ohne erfolg. Ich denke also dass ich ein Berechtigungproblem ausschliessen kann.

    smarthome.log zeigt beim Neustart von smarthome.py das Folgende:

    Code:
    2014-11-16 15:15:58,468 INFO     Main         Start SmartHome.py 1.0-35-gf62db45 -- smarthome.py:__init__:231
    2014-11-16 15:15:58,471 INFO     Main         Init Scheduler -- scheduler.py:__init__:86
    2014-11-16 15:15:58,472 INFO     Main         Init Plugins -- smarthome.py:start:274
    2014-11-16 15:15:58,503 INFO     Main         Init Items -- smarthome.py:start:280
    2014-11-16 15:15:58,552 INFO     Main         Item env.core.memory = 19468288.0 via SQLite None None -- item.py:set:457
    2014-11-16 15:15:58,568 INFO     Main         Item env.core.threads = 7.0 via SQLite None None -- item.py:set:457
    2014-11-16 15:15:58,569 INFO     Main         Item env.core.garbage = 0.0 via SQLite None None -- item.py:set:457
    2014-11-16 15:15:58,575 INFO     Main         Item env.system.load = 0.01 via SQLite None None -- item.py:set:457
    2014-11-16 15:15:58,742 INFO     Main         Start Plugins -- plugin.py:start:65
    2014-11-16 15:15:58,757 INFO     Main         Start Logics -- logic.py:__init__:33
    2014-11-16 15:15:58,759 WARNING  Main         dummy: Could not access logic file (/usr/local/smarthome/logics/dummy_series.py) => ignoring. -- logic.py:generate_bytecode:114
    2014-11-16 15:15:58,759 WARNING  Main         hello: Could not access logic file (/usr/local/smarthome/logics/hello.py) => ignoring. -- logic.py:generate_bytecode:114
    2014-11-16 15:15:59,778 INFO     Main         Item EG.WC.Klima.Heizung.soll = 18.0 via KNX 1.1.30 3/2/3 -- item.py:__update:363
    Wesentlicher Unterschied zur Raspi-Installation ist der, dass hier der Apache statt des Nginx verwendet wird. Auf dem Raspberry konnte ich mittels top beobachten, dass nach dem Start von smarthome.py mehrere Sekunden lang das die Vorlage generiert wurde. Auf dem aktuellen System sehe ich nichts dergleichen, wobei ich nicht ausschliessen kann dass das einfach nur an der größeren Performance des Systems liegt.

    Wie kann ich feststellen, ob autogenerate läuft, oder das mal manuell anstossen?

    EDIT: hier noch der Output im Debug-Modus:

    Code:
    Exception in thread visu:
    Traceback (most recent call last):
      File "/usr/local/smarthome/plugins/visu/smartvisu.py", line 110, in pages
        f.write(r)
    UnicodeEncodeError: 'ascii' codec can't encode character '\xdf' in position 135: ordinal not in range(128)
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/usr/lib/python3.2/threading.py", line 740, in _bootstrap_inner
        self.run()
      File "/usr/local/smarthome/lib/plugin.py", line 84, in run
        self.plugin.run()
      File "/usr/local/smarthome/plugins/visu/__init__.py", line 132, in run
        self._smartvisu_pages(self.smartvisu_dir)
      File "/usr/local/smarthome/plugins/visu/__init__.py", line 70, in _smartvisu_pages
        smartvisu.pages(self._sh, directory)
      File "/usr/local/smarthome/plugins/visu/smartvisu.py", line 112, in pages
        logger.warning("Could not write to {0}/{1}.html: {}".format(outdir, item.id(), e))
    ValueError: cannot switch from manual field specification to automatic field numbering
    Wenn ich die .conf mit nano bearbeite, kann ich allerdings nichts finden, was den Fehler verursachen könnte. Ich hänge die Datei mal an.

    Das Problem tritt mit allen Browsern auf. Hier noch die plugin.conf:

    Code:
    # plugin.conf
    [knx]
       class_name = KNX
       class_path = plugins.knx
       host = 127.0.0.1
       port = 6720
    #   send_time = 600 # update date/time every 600 seconds, default none
    #   time_ga = 1/1/1 # default none
    #   date_ga = 1/1/2 # default none
    #[ow]
    #    class_name = OneWire
    #    class_path = plugins.onewire
    [visu]
        class_name = WebSocket
        class_path = plugins.visu
        smartvisu_dir = /var/www/smartvisu
        # for Ubuntu 14.04 upwards the base for html has changed
        # smartvisu_dir = /var/www/html/smartVISU
    [cli]
        class_name = CLI
        class_path = plugins.cli
        ip = 0.0.0.0
        update = True
    [sql]
        class_name = SQL
        class_path = plugins.sqlite
    
    #RRDvon Raspi
    #[rrd]
    #    class_name = RRD
    #    class_path = plugins.rrd
    #    step = 60
    Hintergrund:
    ich hatte hier einen Thread eröffnet, weil smartVISU mir beim Aufruf der smarthome.py Vorlage immer nur die config-seite angezeigt hatte - das dachte ich durch kopieren der alten Dateien aus dem Pages Verzeichnis behoben zu haben.
    Angehängte Dateien

    #2
    Hm, kann es etwas mit der Python Version zu tun haben?

    Code:
    root@smarthome:/usr/local/smarthome/items# python --version 
    Python 2.7.3
    Python 3.2 ist allerdings auch installiert, scheint aber default nicht aktiv zu sein? Hier bin ich leider nicht fit genug in Linux um einerseits das default zu ändern und andererseits die möglichen Folgen abschätzen zu können.

    Achso, die smartvisu.conf habe ich geprüft, Umlaute und Sonderzeichen sind raus.

    Kommentar


      #3
      Hallo Tobo,

      Ich denke, dass die debug-Meldung den entscheidenden Hinweis liefert:
      Code:
      Traceback (most recent call last):
        File "/usr/local/smarthome/plugins/visu/smartvisu.py", line 110, in pages
          f.write(r)
      UnicodeEncodeError: 'ascii' codec can't encode character '\xdf' in position 135: ordinal not in range(128)
      '\xdf' ist ein 'ß' und das muss wohl irgendwo in deinen Config-Dateien noch vorkommen (Raumname oder in einer Widget-Definition.

      Greetinx,
      Udo

      Kommentar


        #4
        Hallo Udo,

        ich habe die folgenden Dateien erfolglos nach einem "ß" (sowie ä, ö, ü) durchsucht:

        items/smartvisu.conf
        items/env.conf
        etc/logic.conf
        etc/plugin.conf
        etc/smarthome.conf

        Habe ich welche übersehen? Oder gilt das für alle Dateien?

        Kann es sein dass die Werte wie die Items auch noch irgendwo in einem Cache liegen?

        Zitat von umatz Beitrag anzeigen
        '\xdf' ist ein 'ß' und das muss wohl irgendwo in deinen Config-Dateien noch vorkommen (Raumname oder in einer Widget-Definition.
        EDIT: Zwischenzeitlich habe ich mal die symlinks geändert für die Python Binaries, jetzt wird die aktuelle Version angezeigt (hatte danach nochmal durchgestartet):
        Code:
        root@smarthome:~# python --version
        Python 3.2.3

        Kommentar


          #5
          Hallo,

          das liegt wahrscheinlich an Deiner Shell-Umgebung. Suche mal nach LC_ALL und utf-8.

          Bis bald

          Marcus

          Kommentar

          Lädt...
          X