Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler im Log nach Update

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

  • Art Mooney
    antwortet
    Danke für den Hinweis. Ich verwende ein altes XORO Megapad mit einem Android 5 drauf. Auf dem Gerät ist die Performance mit Chrome sehr schlecht. Wäre es sinnvoll, einen anderen Browser zu verwenden? Ich weiß nicht, ob ich schon reif bin für develop ;-)

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Bei langsamen Geräten hilft der Cache in smartVISU. Zudem habe ich im develop ein paar Maßnahmen, die Ressourcen schonen und so auch einen Beitrag zur Verbesserung der Performance leisten sollten.

    Gruß
    Wolfram

    Einen Kommentar schreiben:


  • Art Mooney
    antwortet
    Zum Abschluss kann ich vermelden, dass nun alles läuft. Die Fehler im Log sind weg. Die teilweise langsame Reaktionszeit tritt nicht auf allen Geräten auf. Somit wird das wohl an der Browserversion auf meinem Tablet liegen oder der alten Hardware.

    Damit läuft die smartVISU wie sie soll. Danke nochmal!

    Einen Kommentar schreiben:


  • Art Mooney
    antwortet
    Ich habe einen Fehler gefunden, der die Ursache sein kann. Ich hatte in einem Widget, noch ein ", 'time' " stehen. Nachdem ich das rausgenommen hatte, wurde der Wert auch angezeigt. Dass die Zeit vorher nicht angezeigt wurde, dürfte wohl am Cache gelegen haben.

    Ich warte jetzt wiederum ab, ob die Fehlermeldung im Log damit auch verschwindet.

    Danke für die tolle Unterstützung!

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Offenbar fordert smartVISU immer noch ein item vom Typ datetime.time bei shNG an. Wenn Du alle Vorkommen des items durch das Stringitem ersetzt hast und der Fehler immer noch auftritt, dann hast Du wahrscheinlich vergessen, den smartVISU-Cache zu löschen. Je nach Browser und Gerät muss man auch den Browsercache oder die Websitedaten für die betreffende URL löschen.

    Die Wartezeit bis zum Anzeigen des Datums in smartVISU kann ich mir noch nicht erklären. Hier wäre ein Vergleich sinnvoll, ab wann ein brauchbarer Wert im item steht (shNG Admin Interface) und wie lange es dann dauert, bis smartVISU ihn übernimmt.

    Einen Kommentar schreiben:


  • Art Mooney
    antwortet
    Ich habe die Umwandlung in einen String mit folgender Logik gemacht:

    Code:
    now = sh.TIME.DAYTIME()
    time = now.strftime("%H:%M")
    sh.TIME.STRINGTIME(time)
    In den smartVISU-Seiten habe ich nun die Zeit-Items durch entsprechende Stringitems ersetzt. Ich dachte, dass ich damit die Fehlermeldungen im Log auch loswerde. Dort heißt es aber weiter jede Minute:

    Code:
    2021-11-20  23:08:22 ERROR    modules.websocket   update_visu: Error in 'await self.update_item(...)': Type <class 'datetime.time'> not serializable
    Leider wird der Wert auch nicht in der smartVISU gezeigt. Der Template-Checker zeigt alles grün und das nun verwendete Item "TIME.STRINGTIME" hat im Admin-Interface auch den richtigen Wert.

    Ich nehme an, dass die Zeit nun auch - nach einer gewissen Wartezeit - auf der VISU-Seite auftauchen wird. Im Augenblick warte ich noch darauf.

    Einen Kommentar schreiben:


  • Art Mooney
    antwortet
    Ich kann bestätigen, dass das Datum auch angegeben wird. Wie schon gesagt mit dem Nachteil, dass es sehr lange dauert, bis der Wert in der VISU angezeigt wird.

    Leider bekomme ich das Item TIME.DATE und TIME.DAYTIME einzeln vom KNX-Bus geliefert. Damit habe ich nicht in der Hand, wie der Wert TIME.DAYTIME geliefert wird. Die Wetterstation, von der die Zeit kommt, bietet auch nicht an, ein kombiniertes Objekt aus Datum und Uhrzeit auszugeben. Vor dem Hintergrund ist es wohl einfacher, foo in str umzuwandeln.

    Ich versuche mich in der Umwandlung in einen String.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Art Mooney Wenn Du statt eines datetime.time Wertes einen datetime.datetime Wert speichern solltest, sollte das auch funktionieren. Dann musst Du nicht die Formatierung im String Anzeige konform vornehmen, sondern kannst das der Visu überlassen.

    wvhn datetime.date sollte bereits funktionieren. Im Websocket Modul sind bereits folgende Konvertierungen implementiert, die die Python eigenen json Konvertierung erweitern:

    Code:
        def json_serial(self, obj):
            """JSON serializer for objects not serializable by default json code"""
    
            if isinstance(obj, decimal.Decimal):
                return float(obj)
            if isinstance(obj, (datetime, date)):
                return obj.isoformat()
    
            raise TypeError("Type %s not serializable" % type(obj))
    Die Datentypen decimal.Decimal, datetime und date werden dort bereits konvertiert.

    Einen Kommentar schreiben:


  • Art Mooney
    antwortet
    Alles klar. Das Update kommt minütlich. Offenbar löst dann jede Aktualisierung eine Fehlermeldung im Log aus. Ich schaue mir die Möglichkeit an, den Inhalt in einen String zu konvertieren.

    Danke für den stetigen Einsatz bis hierhin!

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Die Json Konvertierung in Python unterstützt beide Datentypen per se nicht. Man kann über eine extra Funktion der json Konvertierung jedoch zusätzliche Datentypen beibringen. Ich nehme das für das nächste Release mal ins Backlog.

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Msinn , die Frage in #10 woher datetime.time kommt, kann ich beantworten: aus der Decode-Methode des knx-Plugins für den DPT 10. Übrigens gibt DPT 11 dann datetime.date zurück.

    Wenn das Websocket-Modul beide nicht unterstützt, dann kann man per se gültige items nicht direkt in smartVISU abfragen. Wie gehen wir damit um?

    Gruß
    Wolfram

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Dann schau Dir am besten im Admin-Interface an, was in den Items tatsächlich drin steht und wie oft dort ein Update kommt. Notfalls müsstest Du eine Logik schreiben, die das Datum und die Uhrzeit in Strings umsetzt, oder in einen Standard-Zeitstempel - also Inhalte, die das Websocket-Modul verarbeiten kann. Siehe hierzu die Posts von Msinn.

    Einen Kommentar schreiben:


  • Art Mooney
    antwortet
    Ja, so kann man es zusammenfassen.

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Machen wir an dieser Stelle mal eine Bestandsaufnahme, denn ich habe Dich wohl teilweise falsch verstanden. Wenn Du schreibst, smartVISU zeige die Uhrzeit nicht an, dann meinst Du die Uhrzeit, die Deine items TIME.DATE bzw. TIME.DAYTIME repräsentieren sollen. Die schmeißen aber schon in shNG Fehler.

    Nachdem Du die php-Versionen in Ordnung gebracht hast, funktioniert smartVISU und das Widget basic.print gibt auch items des Typs foo aus, wenn etwas sinnvolles drin steht (siehe z.B. env.location.sunrise und …sunset im obigen Bild).

    Dein Problem beschränkt sich somit noch auf das genannte item und die damit verbundene Fehlermeldung.

    Ist das so richtig zusammengefasst?

    Einen Kommentar schreiben:


  • Art Mooney
    antwortet
    Übrigens: Das Datum wird nun auf meinem Tablet in der smartVISU angezeigt. Gestern Abend war das noch nicht so. Offenbar wurde der Wert für das Datum "2021-11-15" erst seit heute Nacht angezeigt, als das Datum einen neuen Wert bekommen hat. Wenn ich hier am PC die smartVISU aufrufe, wird das Datum nicht angezeigt.

    Eben habe ich die Seite am Tablet aktualisiert und das Datum ist jetzt auch am Tablet weg.

    Im Systemmenü sehe ich die Fehler aus dem Log auch nochmal aufgelistet. Die von Dir genannten Zeiten werden allerdings angezeigt. Siehe unten:

    smarthomeng.jpg

    Einen Kommentar schreiben:

Lädt...
X