Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler im Log nach Update

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

  • Msinn
    antwortet
    Zitat von Art Mooney Beitrag anzeigen
    Ich nehme an, ich muss recommonmark, sphinx und sphinx-rtd-theme noch installieren.
    Die brauchst Du nur, wenn Du die Anwender Dokumentation selbst bauen willst, die unter www.smarthomeng.de/user verfügbar ist, also brauchst Du die Packages eher nicht.

    Zitat von Art Mooney Beitrag anzeigen
    gezeigte Hinweise im Backend entdeckt:
    Übrigens: Das backend Plugin ist deprecated. Benutze stattdessen das Admin Interface.

    Zitat von Art Mooney Beitrag anzeigen
    WARNING: pip is being invoked by an old script wrapper.
    Welche Version von pip3 hast Du denn installiert?
    Code:
    pip3 --version
    gibt Dir die Versionsnummer.
    Zuletzt geändert von Msinn; 11.11.2021, 23:11.

    Einen Kommentar schreiben:


  • Art Mooney
    antwortet
    Ich habe noch ein paar andere Dinge bemerkt:

    Zum einen steht gibt es nun ein pip3 error log. Dort steht bei mir

    Code:
    WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
    Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
    To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
    Ich habe den advice 5599 gelesen und verstehe nicht, was gemeint ist. Offenbar gibt es eine pip-Version der Distribution und eine weitere des Users? Mir ist nicht klar, wie ich das Thema angehen soll und ob es etwas mit meinem Problem zu tun hat.

    Weiter habe ich noch folgende gezeigte Hinweise im Backend entdeckt:
    python.jpg
    Ich nehme an, ich muss recommonmark, sphinx und sphinx-rtd-theme noch installieren. Allerdings habe ich keine Ahnung, ob das etwas mit dem Problem zu tun hat.

    Einen Kommentar schreiben:


  • Art Mooney
    antwortet
    Offenbar ist die dom-Extension bei mir aktiviert:

    Code:
    smarthome@smarthomeNG:~$ php -m
    [PHP Modules]
    calendar
    Core
    ctype
    curl
    date
    dom
    exif
    FFI
    fileinfo
    filter
    ftp
    gettext
    hash
    iconv
    json
    libxml
    mbstring
    openssl
    pcntl
    pcre
    PDO
    Phar
    posix
    readline
    Reflection
    session
    shmop
    SimpleXML
    sockets
    sodium
    SPL
    standard
    sysvmsg
    sysvsem
    sysvshm
    tokenizer
    xml
    xmlreader
    xmlwriter
    xsl
    Zend OPcache
    zlib
    
    [Zend Modules]
    Zend OPcache

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Code:
    php -m
    zeigt Dir, ob die dom-Extension aktiviert ist. Sie ist Teil des php-xml Pakets. Falls die dom Extension nicht angezeigt wird, probiere nochmal
    Code:
    sudo apt-get update
    sudo apt-get install php-xml
    sudo apache2ctl restart
    Ob die fehlende dom-Extension auch für das falsche Zeitstempelformat verantwortlich ist, kann ich nicht sagen. Das kann geklärt werden, wenn das fehlende Modul installiert ist.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Ich meinte nicht Dein Item, sondern bezog mich auf den Log Eintrag des websocket Moduls. In der Kommunikation zwischen smartVISU und SmartHomeNG gibt es normalerweise nur Datum/Zeitstempel. Das Websocket Modul kann zur Kommunikation diese Zeitstempel in Json und zurück wandeln. Reine Zeitstempel (ohne Datum) werden bisher nicht unterstützt. Daher meine Frage, wo bei Dir einsolcher Zeitstempel (datetime.time) ins Spiel kommt.

    Einen Kommentar schreiben:


  • Art Mooney
    antwortet
    Leider kenne ich mich mit apache nicht gut aus, ich habe folgende Log-Datei gefunden:

    Code:
    smarthome@smarthomeNG:/var/log$ sudo nano /var/log/apache2/error.log
      GNU nano 3.2                                                                                                                                     /var/log/apache2/error.log
    
    [Sun Nov 07 00:00:49.543124 2021] [mpm_prefork:notice] [pid 6264] AH00163: Apache/2.4.38 (Debian) configured -- resuming normal operations
    [Sun Nov 07 00:00:49.543290 2021] [core:notice] [pid 6264] AH00094: Command line: '/usr/sbin/apache2'
    Das sieht nicht sehr aufschlussreich aus. Gibt es noch ein Log?

    Einen Kommentar schreiben:


  • Art Mooney
    antwortet
    wvhn: Folgender Log-Eintrag wird jede Minute geschrieben:

    Code:
    2021-11-07  20:23:31 ERROR    modules.websocket   update_visu: Error in 'await self.update_item(...)': Type <class 'datetime.time'> not serializable
    Folgender Log-Eintrag erscheint nur, wenn ich am System arbeite, vermutlich wenn ich auf das Admin-Interface zugreife.

    Code:
    2021-11-07  20:25:46 ERROR    modules.websocket   smartVISU_protocol_v4 exception: received 1005 (no status code [internal]); then sent 1005 (no status code [internal])
    Die wesentlichste Fehlfunktion, die ich in der smartvisu bemerke, ist dass jede Seite, die ich öffne, erst sehr langsam mit den Werten der Items "befüllt" wird, z.B. Temperaturen oder Statuswerte. Das war vorher nicht so. Dort rief ich eine Seite auf und die Werte waren sofort da.

    Die Fehlermeldung im Templatechecker sieht so aus:

    templatechecker.jpg

    Zuletzt geändert von Art Mooney; 07.11.2021, 20:41.

    Einen Kommentar schreiben:


  • Art Mooney
    antwortet
    Msinn, ich verstehe die Frage nicht recht. Ich benutze in einigen Items, die mit bestimmten tageszeitabhängigen Funktionen zu tun haben, folgendes:

    Code:
    eval: 1 if sh.TIME.DAYTIME() > datetime.time(7, 0) and sh.TIME.DAYTIME() < datetime.time(19, 30) else 0
    Ich benutze das Item TIME.DAYTIME für die Tageszeit, weil der Server, auf dem SHNG läuft, nicht mit dem Internet verbunden ist und daher keinen Zeitserver erreicht. TIME.DAYTIME ist die Zeit, die von meiner Wetterstation über KNX gesendet wird. SHNG scheint damit auch klarzukommen, also das EVAL-Attribut oben funktioniert. Kann ich das gleiche mit datetime.datetime machen? Also einfach "datetime.time" ersetzen durch "datetime.datetime"?

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Der Templatechecker prüft keine php Module, außer "mbstring". Der php Fehler muss also woanders her kommen. Wie lautet die Fehlermeldung genau? Gibt es im Apache Error Log weitere Informationen?
    Hast Du in der smartVISU Konfiguration die Zeitquelle auf "Client" oder auf "Server" eingestellt?

    Wann treten die Meldungen aus dem Websocket-Modul auf:
    • immer nach dem Neustart?
    • Nur wenn ein Client aktiv ist (Admin Interface oder smartVISU)
    • nur bei Aufruf einer bestimmten Seite oder eines bestimmten items?

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Wo kommt bei Dir denn ein reiner Zeitstempel (datetime.time) ins Spiel? Unterstützt in der Json Serialisierung ist nur ein Datum/Zeitstempel (datetime.datetime)

    Einen Kommentar schreiben:


  • Art Mooney
    antwortet
    Danke, ich habe nun das websocket-Modul aktiviert, allerdings ohne tls. Die Attribute "enabled: true" und "port: 2424" habe ich weggelassen, weil das mE die Defaults sind. Die smartvisu funktioniert jetzt auch weitgehend und im Log sind die meisten Meldungen verschwunden. Dafür sind ein paar neue hinzugekommen.

    Code:
    2021-11-06  20:21:38 ERROR    modules.websocket   update_visu: Error in 'await self.update_item(...)': Type <class 'datetime.time'> not serializable
    2021-11-06  20:22:38 ERROR    modules.websocket   update_visu: Error in 'await self.update_item(...)': Type <class 'datetime.time'> not serializable
    2021-11-06  20:23:38 ERROR    modules.websocket   update_visu: Error in 'await self.update_item(...)': Type <class 'datetime.time'> not serializable
    2021-11-06  20:24:38 ERROR    modules.websocket   update_visu: Error in 'await self.update_item(...)': Type <class 'datetime.time'> not serializable
    2021-11-06  20:25:38 ERROR    modules.websocket   update_visu: Error in 'await self.update_item(...)': Type <class 'datetime.time'> not serializable
    2021-11-06  20:26:22 ERROR    modules.websocket   visu_protocol Exception Type <class 'datetime.time'> not serializable
    > Traceback (most recent call last):
    >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 563, in smartVISU_protocol_v4
    >     reply = json.dumps(answer, default=self.json_serial)
    >   File "/usr/lib/python3.7/json/__init__.py", line 238, in dumps
    >     **kw).encode(obj)
    >   File "/usr/lib/python3.7/json/encoder.py", line 199, in encode
    >     chunks = self.iterencode(o, _one_shot=True)
    >   File "/usr/lib/python3.7/json/encoder.py", line 257, in iterencode
    >     return _iterencode(o, 0)
    >   File "/usr/local/smarthome/modules/websocket/__init__.py", line 436, in json_serial
    >     raise TypeError("Type %s not serializable" % type(obj))
    > TypeError: Type <class 'datetime.time'> not serializable
    2021-11-06  20:26:38 ERROR    modules.websocket   update_visu: Error in 'await self.update_item(...)': Type <class 'datetime.time'> not serializable
    2021-11-06  20:27:38 ERROR    modules.websocket   update_visu: Error in 'await self.update_item(...)': Type <class 'datetime.time'> not serializable
    Ganz offenbar gibt es ein Problem mit Uhrzeit und Datum, was ja auch im Eingangspost schon Ursache eines anderen Problems war. Die Uhrzeit wird mir in der Visu auch nicht angezeigt.

    Auch der Fehler, dass php dom nicht zur Verfügung steht ist immer noch da. Die php-Zusatzpakete sind bei mir alle installiert, apache2 vorsichtshalber neu gestartet. Keine Verbesserung, eventuell aber auch nicht problematisch(?).

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    So sieht der Abschnitt der module.yaml bei mir aus:
    Code:
     # frontend communication support
    websocket:
        module_name: websocket
        enabled: true
    #    ip: 0.0.0.0
        port: 2424
        tls_port: 2425
        use_tls: True
        tls_cert: shng.cer
        tls_key: shng.key
    Die Kommentarzeichen ab dem Parameter „Port“ kannst Du drin lassen. Das sind eh die Defaults. Den tls_Port kannst Du nur nutzen, wenn Du gültige Zertifikate und Schlüssel anlegst. Dazu gibt es im smartVISU-Forum einen Thread von mir. Fürs erste musst Du in smartVISU den Port 2424 konfigurieren und kannst dann die Visu nicht per https:// aufrufen. ShNG musst Du nach der Änderung der yaml neu starten.

    Beim smartvisu-Plugin habe ich den class_name klein geschrieben: „smartvisu“.

    Gruß Wolfram

    P.S: die Zusatzpakete für php hast Du installiert und Apache neu gestartet?
    https://www.smarthomeng.de/user/inst...smartvisu.html
    Zuletzt geändert von wvhn; 06.11.2021, 00:44.

    Einen Kommentar schreiben:


  • Art Mooney
    antwortet
    So, nun habe ich noch einige Fehler entdeckt.

    1. Im Log bekomme ich neben dem oben beschriebenen Fehler nun auch folgendes zum Websocket, dahinter stehen noch sehr viele Zahlen, die ich wegen der Länge nicht einkopiert habe:
    Code:
    2021-11-05  23:35:11 WARNING  modules.websocket   smartVISU_protocol_v4: Exception in 'await websocket.send(reply)': received 1005 (no status code [internal]); then sent 1005 (no status code [internal]) - reply = {"cmd": "series", "series":
    2. In der SmartVISU sagt mir der Template-Checker, dass das php module "dom" nicht erreichbar sein. Installiert ist es aber.

    Einen Kommentar schreiben:


  • Art Mooney
    antwortet
    Danke. OK, verstehe.

    Ich habe nun in der plugin.yaml folgendes eingetragen:

    Code:
    # SmartVISU
    smartvisu:
        class_name: SmartVisu
        class_path: plugins.smartvisu
        smartvisu_dir: /var/www/html/smartvisu31
    Den Eintrag in der module.yaml habe ich wie oben dargestellt belassen.

    Damit bekomme ich jetzt folgendes im Log:

    Code:
    2021-11-05  23:18:34 ERROR    modules.websocket   smartVISU_protocol_v4 exception: received 1005 (no status code [internal]); then sent 1005 (no status code [internal])
    Ist da noch etwas mit dem Websocket-Modul falsch?

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Anstatt des Plugins „visu_smartvisu“ benötigst Du das Plugin „smartvisu“. Das ist der zentrale Baustein für die Zusammenarbeit mit der Visu und erledigt mehr als nur die Autogenerierung von Visu-Seiten.

    Für den Websocket ist das Websocket-Modul zu empfehlen. Alternativ geht das alte “visu_websocket“ Plugin noch.

    Gruß
    Wolfram

    Einen Kommentar schreiben:

Lädt...
X