Ankündigung

Einklappen
Keine Ankündigung bisher.

Supportthread für UZSU Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
    thengsty
    Forums-Einsteiger

  • thengsty
    antwortet
    Hi Onkelandy,

    ich hab mal getestet. Im Webinterface des Plugins ist nun alles korrekt:
    web.png

    In der Item-Liste des Admin aber noch fehlerhaft. Gut, irgendwie logisch, da hast du ja auch nichts geändert. ;-)
    items.png

    Danke und Grüße,
    Thomas
    Angehängte Dateien
    You do not have permission to view this gallery.
    This gallery has 1 photos.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Ich vermute, das hier ist halbwegs brauchbar, dann auch für andere Bereiche, wo das gebraucht wird..?
    html.escape(json.dumps(**dict**))

    Bitte testet mal hier: https://github.com/smarthomeNG/plugins/pull/508

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Ja, Issues klingen vernünftig. Danke!

    Ich denke, es macht wenig Sinn, das nur im uszu Plugin abzufangen. Das sollte wenn möglich global gefixt werden, zumal das Prob ja auch im Admin IF vorhanden ist.
    Zuletzt geändert von Onkelandy; 17.04.2021, 06:55.

    Einen Kommentar schreiben:

  • thengsty
    Forums-Einsteiger

  • thengsty
    antwortet
    Also: alles soweit im grünen Bereich. JSON String ist immer vollständig und nicht abgeschnitten.
    Mit deinem Hinweis konnte ich nun auch die kalkulierte Uhrzeit extrahieren:
    Code:
    sh.Haus.EG.Buero.Rollade1.position.uzsu()['list'][0]['calculated']
    Die Anzeige im admin Interface ist allerdings wirklich buggy. Der Fehler lässt sich auch einwandfrei reproduzieren, wie oben schon beschrieben.

    Soll ich hierzu mal in issue reporten in GitHib?

    Danke euch und Grüße,
    Thomas

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Bisheriger Stand der Analyse ist, dass das UZSU-Dict jederzeit korrekt innerhalb shNG sowie zwischen shNG und SV verarbeitet wird. Der in #1 vermutete Fehler ist somit widerlegt.

    Allerdings haben das Admin Interface und auch das Webinterface des UZSU-Plugins ein Escaping-Problem, d.h. die Ausgabe bricht beim ersten "<" ab, weil dies als Beginn eines html-Tags interpretiert wird.

    Ob es noch ein Problem beim Erzeugen des JSON-strings gibt, untersucht
    thengsty
    Forums-Einsteiger
    thengsty noch.

    Gruß
    Wolfram

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Gibts da ne Essenz von dem Ganzen? Probleme mit JSON und dem kleiner/größer Zeichen? Und dadurch falsche Anzeige im AdminIF und WebIF vom Plugin und allen anderen json Manipulationen? Wie ließe sich das am Besten fixen?

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Hab jetzt mal in nostalgischer Stimmung das CLI angeschmissen. Das ist echt hilfreich.
    Ergebnis: bei der reinen Textausgabe ist alles vorhanden
    Code:
    eg.esszimmer.licht.fenster.uzsu = {'interpolation': {'type': 'none', 'initialized': False, 'itemtype': 'num', 'interval': '', 'initage': ''}, 'list': [{'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'value': '2', 'calculated': '21:30', 'time': '16:30<sunset<21:30'}, {'active': False, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'value': '0', 'time': '21:35'}], 'active': False, 'sunrise': '06:36', 'sunset': '20:13', 'lastvalue': None}
    Nachdem nun endgültig der Spieltrieb geweckt war, habe ich eine kleine Logik erstellt:
    Code:
    #!/usr/bin/env python3
    # dictlist.py
    mydict = sh.eg.esszimmer.licht.fenster.uzsu()['list']
    logger.warning("mydict = {}".format(mydict))
    Ergebnis:
    Code:
    2021-04-13  12:30:26 WARNING  logics.DictList     mydict = [{'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'value': '2', 'calculated': '21:30', 'time': '16:30<sunset<21:30'}, {'active': False, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'value': '0', 'time': '21:35'}]
    Also auch hier alles in Ordnung

    Wenn ich mydict jetzt noch in ein item vom Typ list schreibe, dann kann ich im CLI wieder den vollständigen Datensatz finden:
    Code:
    test.varlist = [{'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'value': '2', 'calculated': '21:30', 'time': '16:30<sunset<21:30'}, {'active': False, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'value': '0', 'time': '21:35'}]
    Warum das Schreiben in mein Test-item vom Typ dict nicht funktioniert hat (auch nicht als ich das gesamte dict ausgelesen habe), habe ich nicht weiter untersucht.

    Gruß
    Wolfram

    Einen Kommentar schreiben:

  • thengsty
    Forums-Einsteiger

  • thengsty
    antwortet
    Hey Wolfram,
    danke für deine Hilfe. Möglicherweise ist es nur die Anzeige. Werde das heute Abend mal durch den Debugger jagen und reinschauen in das sh-Objekt, dazu hatte ich gestern keine Lust. ;-)

    vielleicht liest ja kein Core-Entwickler hier mit: kann man eigentlich auch irgendwie in die Cache-files reinschauen?

    Thomas

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Moin Thomas,

    das item (dict) ist auf dem websocket in beiden Richtungen immer vollständig. Das siehst Du in meinem Post, in dem die von shNG an SV gesendeten Daten gezeigt sind.

    Deshalb denke ich, dass das dict innerhalb von shNG integer ist und lediglich die Darstellung im Admin-Interface nicht stimmt. Escaping ist wahrscheinlich der richtige Hinweis.

    Meiner Ansicht nach erklärt das aber noch nicht, warum das dict beim Auslesen der json-Daten abgeschnitten wird. Passiert das an der gleichen Stelle? Und ist der Effekt real vorhanden, oder auch wieder nur ein Problem der Anzeige im Browser?

    Ich frage mich gerade, ob das CLI noch funktioniert. Darin müsste man sowohl das item, als auch die ausgelesenen json-Daten im Textmodus untersuchen können.

    Gruß
    Wolfram

    Einen Kommentar schreiben:

  • thengsty
    Forums-Einsteiger

  • thengsty
    antwortet
    Hallo Wolfram,

    kann ich in der Tat genauso bestätigen. Websocket noch alles grün:
    Code:
    [io.smarthome.py] sending data:  {"cmd":"item","id":"Haus.EG.Buero.Rollade2.position.uzsu","val":{"interpolation":{"type":"none","initialized":false,"itemtype":"num","interval":"","initage":""},"list":[{"active":true,"rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","value":"0","calculated":"06:53","time":"06:00<sunrise+10m<08:30"},{"active":true,"rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","value":"255","calculated":"20:24","time":"16:30<sunset+12m<23:00"}],"active":true,"lastvalue":"255","sunrise":"06:41","sunset":"20:23"}}
    Im Item fehlt dann der Teil nach "time":
    Code:
    {'interpolation': {'type': 'none', 'initialized': False, 'itemtype': 'num', 'interval': '', 'initage': ''}, 'list': [{'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'value': '0', 'time': '06:00
    Meine Vermutung: Das hat mit dem "kleiner als" zu tun. Da genau dort immer abgeschnitten wird. Stimmt hier evtl was mit dem escaping nicht? Der String scheint immer am "<" abgeschnitten zu werden.

    VG, Thomas

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Moin Thomas,

    wenn Du den Cache in smartVISU ausschaltest und mit F12 die Entwicklertools des Browsers öffnest, dann wird Dir der Datenverkehr auf dem Websocket angezeigt:
    Code:
    [io.smarthome.py] receiving data: {"cmd": "item", "items": [["eg.esszimmer.licht.fenster.uzsu",[MARKIEREN] {"interpolation": {"type": "none", "initialized": false, "itemtype": "num", "interval": "", "initage": ""}, "list": [{"active": true, "rrule": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU", "value": "2", "calculated": "21:30", "time": "16:30[/MARKIEREN]<sunset<21:30"}, {"active": true, "rrule": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU", "value": "0", "time": "21:35"}], "active": false, "sunrise": "06:36", "sunset": "20:13", "lastvalue": null}]]}
    Hier sind alle Klammern geschlossen, ebenso wie beim Senden. Ich verwende smartVISU v3.0.1 mit smarthomeNG v1.8.2 und das neue Websocket-Modul.

    Im Admin-Interface unter Items wird das Dict allerdings nicht vollständig angezeigt, sondern lediglich der oben gelb markierte Teil. Ebenso im Webinterface des UZSU-Plugins.

    Bitte prüfe das mal bei Dir und nenne auch die verwendeten Versionen, so dass wir den Fehler eingrenzen können.

    Gruß
    Wolfram

    Einen Kommentar schreiben:

  • thengsty
    Forums-Einsteiger

  • thengsty
    antwortet
    Hallo und guten Abend,
    ist das hier das Support Thema für das UZSU-Plugin? Keine neuen Beiträge, daher die dumme Frage...

    Ich habe folgendes Problem bzw. ggfs. einen Fehler gefunden:
    Zur Automatisierung der Rolläden nutze ich das UZSU-Plugin. Das funktioniert auch tadellos mit den errechneten zeiten im Experten-Modus:
    1.png

    Allerdings werden die Werte der uzsu-items manchmal nicht korrekt gespeichert. Da steht dann als Beispiel folgendes drin:
    Code:
    {'interpolation': {'type': 'none', 'initialized': False, 'itemtype': 'num', 'interval': '', 'initage': ''}, 'list': [{'active': True, 'rrule': 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU', 'value': '0', 'time': '06:00
    Wie man sieht, fehlen hinten die schließenden Klammern. Im Plugin sieht das genauso aus. Erstaunlicherweise hat das keine Auswirkung auf die eigentliche Funktionalität. Die Rolladen fahren wie gewünscht.

    Ich bin darauf gestoßen, beim Versuch das JSON Daten zu lesen via "sh.Haus.EG.Buero.Rollade1.position.uzsu()['list']" . Dies funktioniert nämlich nicht, da das Dictionary/die Liste defekt sind.

    Cache habe ich schon mehrfach gelöscht und auch SHNG neu gestartet. Bin gerade etwas ratlos.

    Danke für eure Hilfe,
    Thomas

    Achso: Alles auf aktuellem Stand: SHNG 1.81 / Smartvisu 3

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von Msinn Beitrag anzeigen
    Aber auch wenn Du auf Python 3.7 gehst, darfst Du auf ARM nicht die latest Version von scipy (1.5.2) nutzen sondern musst scipi 1.5.1 installieren.
    Danke. Python 3.7.9 läuft, scipy 1.5.1 auch und USZU läuft auch (wenn auch noch nicht im Detail getestet).

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Ich hatte das in #90 beschriebene Problem heute sogar 2 Mal und es hat nichts mit einem Datumswechsel zu tun..
    Code:
    Problems assigning dmax: day is out of range for month. Wrong syntax: sunrise-120m<05:30.
    
    Problems assigning dmin: day is out of range for month. Wrong syntax: 05:30<sunrise-72m<08:00
    Leider grad überhaupt keinen Lösungsansatz

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Laut piwheels.org ist auf ARM die letzte mit Python 3.5 laufende Version scipy 1.3.0.

    Aber auch wenn Du auf Python 3.7 gehst, darfst Du auf ARM nicht die latest Version von scipy (1.5.2) nutzen sondern musst scipi 1.5.1 installieren.
    Zuletzt geändert von Msinn; 23.08.2020, 20:06.

    Einen Kommentar schreiben:

Lädt...
X