Ankündigung

Einklappen
Keine Ankündigung bisher.

status.activelist : Fehler "messages.icon is undefined"

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

    status.activelist : Fehler "messages.icon is undefined"

    Ich versuche mich am status.activelist in der aktuellen Develop-Version von smartVISU.

    Ich generiere in meinem Plugin BYD_BAT in SmartHomeNG diese Liste aus json-Meldungen:

    Code:
    ['{"id":0,"title":"Functional Safety Info (36)","message":"Running Time:2678700s | BMU detected Cells Qty:112 | BMU detected Temp. Qty:56 | BMU detected Cell_V_Max:3278mV | BMU detected Cell_V_Min:3269mV | BMU detected Temp_Max:17*C | BMU detected Temp_Min:14*C | BMU detected Current:0.0A | BMU detected Output_V:369.2V | BMU detected All Cells Accum_V:366.8V | BMS Address:1 | Module type:HVM | Module Number:7 | ","created_at":"2024-01-07T10:02:01+01:00","updated_at":"2024-01-07T10:02:01+01:00","status":"info"}', '{"id":1,"title":"System timing log (118)","message":"System Status:SYS_ACTIVE | Environment_Temp_Min:22*C | Environment_Temp_Max:26*C | SOC:29% | SOH:100% | Battery Total Voltage:366.8V | Cell_HV:3278mV | Cell_LV:3269mV | Battery Current_Temp:15*C | Battery_Temp_Max:18*C | Battery_Temp_Min:14*C | ","created_at":"2024-01-07T09:56:58+01:00","updated_at":"2024-01-07T09:56:58+01:00","status":"info"}', '{"id":2,"title":"Functional Safety Info (36)","message":"Running Time:2592300s | BMU detected Cells Qty:112 | BMU detected Temp. Qty:56 | BMU detected Cell_V_Max:3280mV | BMU detected Cell_V_Min:3271mV | BMU detected Temp_Max:18*C | BMU detected Temp_Min:14*C | BMU detected Current:0.0A | BMU detected Output_V:368.4V | BMU detected All Cells Accum_V:366.9V | BMS Address:1 | Module type:HVM | Module Number:7 | ","created_at":"2024-01-06T10:01:49+01:00","updated_at":"2024-01-06T10:01:49+01:00","status":"info"}', '{"id":3,"title":"System timing log (118)","message":"System Status:SYS_ACTIVE | Environment_Temp_Min:22*C | Environment_Temp_Max:27*C | SOC:28% | SOH:100% | Battery Total Voltage:366.9V | Cell_HV:3280mV | Cell_LV:3271mV | Battery Current_Temp:15*C | Battery_Temp_Max:18*C | Battery_Temp_Min:15*C | ","created_at":"2024-01-06T09:56:46+01:00","updated_at":"2024-01-06T09:56:46+01:00","status":"info"}', '{"id":4,"title":"Functional Safety Info (36)","message":"Running Time:2505900s | BMU detected Cells Qty:112 | BMU detected Temp. Qty:56 | BMU detected Cell_V_Max:3285mV | BMU detected Cell_V_Min:3277mV | BMU detected Temp_Max:18*C | BMU detected Temp_Min:15*C | BMU detected Current:0.0A | BMU detected Output_V:369.6V | BMU detected All Cells Accum_V:367.6V | BMS Address:1 | Module type:HVM | Module Number:7 | ","created_at":"2024-01-05T10:01:38+01:00","updated_at":"2024-01-05T10:01:38+01:00","status":"info"}', '{"id":5,"title":"System timing log (118)","message":"System Status:SYS_ACTIVE | Environment_Temp_Min:22*C | Environment_Temp_Max:26*C | SOC:29% | SOH:100% | Battery Total Voltage:367.6V | Cell_HV:3285mV | Cell_LV:3277mV | Battery Current_Temp:15*C | Battery_Temp_Max:20*C | Battery_Temp_Min:15*C | ","created_at":"2024-01-05T09:56:35+01:00","updated_at":"2024-01-05T09:56:35+01:00","status":"info"}', '{"id":6,"title":"Functional Safety Info (36)","message":"Running Time:2419500s | BMU detected Cells Qty:112 | BMU detected Temp. Qty:56 | BMU detected Cell_V_Max:3285mV | BMU detected Cell_V_Min:3280mV | BMU detected Temp_Max:20*C | BMU detected Temp_Min:17*C | BMU detected Current:6553.5A | BMU detected Output_V:368.8V | BMU detected All Cells Accum_V:367.6V | BMS Address:1 | Module type:HVM | Module Number:7 | ","created_at":"2024-01-04T10:01:26+01:00","updated_at":"2024-01-04T10:01:26+01:00","status":"info"}', '{"id":7,"title":"System timing log (118)","message":"System Status:SYS_ACTIVE | Environment_Temp_Min:21*C | Environment_Temp_Max:27*C | SOC:67% | SOH:100% | Battery Total Voltage:367.0V | Cell_HV:3280mV | Cell_LV:3275mV | Battery Current_Temp:17*C | Battery_Temp_Max:23*C | Battery_Temp_Min:15*C | ","created_at":"2024-01-04T09:56:23+01:00","updated_at":"2024-01-04T09:56:23+01:00","status":"info"}', '{"id":8,"title":"SOP Info (38)","message":"Charge Max. Current:40.0A | Discharge Max. Current:40.0A | Charge Max. Voltage:408.8V | Discharge Min. Voltage:280.0V | SYS_ACTIVE | Battery Temperature:18*C | Fronius HV | BMS Qty:1 | ","created_at":"2024-01-04T05:39:38+01:00","updated_at":"2024-01-04T05:39:38+01:00","status":"info"}', '{"id":9,"title":"Events record (2)","message":"disappear | No warning | Cell_Max._V:3498mV | Cell_Min._V:3357mV | Battery_Temp_Max:21*C | Battery_Temp_Min:18*C | Battery Total Voltage:380.3V | SOC:100% | SOH:100% | ","created_at":"2024-01-04T03:31:29+01:00","updated_at":"2024-01-04T03:31:29+01:00","status":"info"}', '{"id":10,"title":"Events record (2)","message":"appear | Cells OverVoltage | Cell_Max._V:3651mV | Cell_Min._V:3409mV | Battery_Temp_Max:21*C | Battery_Temp_Min:18*C | Battery Total Voltage:388.8V | SOC:99% | SOH:100% | ","created_at":"2024-01-04T03:25:23+01:00","updated_at":"2024-01-04T03:25:23+01:00","status":"info"}', '{"id":11,"title":"SOP Info (38)","message":"Charge Max. Current:0.0A | Discharge Max. Current:40.0A | Charge Max. Voltage:408.8V | Discharge Min. Voltage:280.0V | SYS_ACTIVE | Battery Temperature:18*C | Fronius HV | BMS Qty:1 | ","created_at":"2024-01-04T03:25:22+01:00","updated_at":"2024-01-04T03:25:22+01:00","status":"info"}', '{"id":12,"title":"SOP Info (38)","message":"Charge Max. Current:12.0A | Discharge Max. Current:40.0A | Charge Max. Voltage:408.8V | Discharge Min. Voltage:280.0V | SYS_ACTIVE | Battery Temperature:18*C | Fronius HV | BMS Qty:1 | ","created_at":"2024-01-04T03:22:58+01:00","updated_at":"2024-01-04T03:22:58+01:00","status":"info"}', '{"id":13,"title":"SOP Info (38)","message":"Charge Max. Current:40.0A | Discharge Max. Current:40.0A | Charge Max. Voltage:408.8V | Discharge Min. Voltage:280.0V | SYS_ACTIVE | Battery Temperature:18*C | Fronius HV | BMS Qty:1 | ","created_at":"2024-01-04T03:18:57+01:00","updated_at":"2024-01-04T03:18:57+01:00","status":"info"}', '{"id":14,"title":"Events record (2)","message":"disappear | No warning | Cell_Max._V:3495mV | Cell_Min._V:3363mV | Battery_Temp_Max:22*C | Battery_Temp_Min:19*C | Battery Total Voltage:380.2V | SOC:100% | SOH:100% | ","created_at":"2024-01-04T01:34:24+01:00","updated_at":"2024-01-04T01:34:24+01:00","status":"info"}', '{"id":15,"title":"Events record (2)","message":"appear | Cells OverVoltage | Cell_Max._V:3651mV | Cell_Min._V:3403mV | Battery_Temp_Max:22*C | Battery_Temp_Min:19*C | Battery Total Voltage:388.0V | SOC:99% | SOH:100% | ","created_at":"2024-01-04T01:31:53+01:00","updated_at":"2024-01-04T01:31:53+01:00","status":"info"}', '{"id":16,"title":"SOP Info (38)","message":"Charge Max. Current:0.0A | Discharge Max. Current:40.0A | Charge Max. Voltage:408.8V | Discharge Min. Voltage:280.0V | SYS_ACTIVE | Battery Temperature:19*C | Fronius HV | BMS Qty:1 | ","created_at":"2024-01-04T01:31:53+01:00","updated_at":"2024-01-04T01:31:53+01:00","status":"info"}', '{"id":17,"title":"SOP Info (38)","message":"Charge Max. Current:12.0A | Discharge Max. Current:40.0A | Charge Max. Voltage:408.8V | Discharge Min. Voltage:280.0V | SYS_ACTIVE | Battery Temperature:19*C | Fronius HV | BMS Qty:1 | ","created_at":"2024-01-04T01:23:46+01:00","updated_at":"2024-01-04T01:23:46+01:00","status":"info"}', '{"id":18,"title":"SOP Info (38)","message":"Charge Max. Current:40.0A | Discharge Max. Current:40.0A | Charge Max. Voltage:408.8V | Discharge Min. Voltage:280.0V | SYS_ACTIVE | Battery Temperature:19*C | Fronius HV | BMS Qty:1 | ","created_at":"2024-01-04T01:23:45+01:00","updated_at":"2024-01-04T01:23:45+01:00","status":"info"}', '{"id":19,"title":"SOP Info (38)","message":"Charge Max. Current:12.0A | Discharge Max. Current:40.0A | Charge Max. Voltage:408.8V | Discharge Min. Voltage:280.0V | SYS_ACTIVE | Battery Temperature:19*C | Fronius HV | BMS Qty:1 | ","created_at":"2024-01-04T01:23:45+01:00","updated_at":"2024-01-04T01:23:45+01:00","status":"info"}']
    Die Daten habe ich aus SmartHomeNG Admin (Items) rauskopiert.

    Weiter ist dieses Item definiert:

    Code:
    byd:
    
        visu:                        # Items for the visualisation (e.g. smartVISU)
            
            bmu_log:                 # Logd data from BMU
                
                log_jsonlist:        # Json list with Log-Data (smartVISU: status.activelist)
                    
                    type: list
                    visu_acl: ro
                    cache: true
    In meiner Test-Seite in smartVISU rufe ich auf:

    Code:
      {{ status.activelist('','byd.visu.bmu_log.log_jsonlist','title','created_at','message') }}
    Wenn ich die Seite anzeigen lassen will, erhalte ich im Debugger von FIrefox diese Fehlermeldung:

    sv1.png

    Es werden keine Daten und kein Log angezeigt.

    Ich verwende in meiner smartVISU andere Widgets mit Icons und da funktioniert alles korrekt.

    Wo könnte der Fehler liegen ?

    Gruss Matthias
    Zuletzt geändert von manhartm; 07.01.2024, 15:12.

    #2
    Moin Matthias,

    Der gemeldete Fehler kommt daher, dass die gesendeten Daten ein Array von Strings sind, aber kein json. Dazu müssen die einfachen Anführungszeichen vor und hinter den geschweiften Klammern entfernt werden.
    Code:
    [{"id":0,"title":"Functional Safety Info (36)","message":"..."}, {....}]
    Danach sieht man schon mal leere Felder, aber die Texte fehlen. Das liegt daran, dass Du für den Parameter "level" nichts angibst. Dann sucht das Widet nach Eigenschaften namens "level" im json. Die gibt es aber in den Daten nicht. Die betreffende Eigenschaft heißt in Deinen Daten "status".
    Code:
    {{ status.activelist('','byd.visu.bmu_log.log_jsonlist','title','created_at','message', 'status') }}
    Damit sieht die Anzeige (auf zwei Einträge gekürzt) dann so aus:
    grafik.png

    Ein drittes Problem kann dadurch entstehen, dass Du eine Testseite erstellst und dabei den smartVISU Cache aktiviert hast. Dadurch wirst Du immer nur die erste Version der Seite zu sehen bekommen. Beim Testen ist es wichtig, den Cache auszuschalten (und nach Fertigstellung der Seite vor dem Wieder-Aktivieren zu löschen). Die einfachste Testmöglichkeit mit Unterstützung der Parametrierung bietet der Widget-Assistent, von dem auch der oben eingefügte Screenshot stammt.

    Gruß
    Wolfram

    Kommentar


      #3
      Danke für die rasche Antwort. Irgendwie schaffe ich es nicht den Json-String korrekt ins Item zu speichern. In meinem Plugin sieht er nun wie folgt aus (Kurzversion mit Dummy-Daten):

      Code:
      {"id": "0", "titel": "Functional Safety Info (36)", "content": "xx", "level": "info", "subtitle": "07.01.2024 10:02:01"},{"id": "1", "titel": "System timing log (118)", "content": "xx", "level": "info", "subtitle": "07.01.2024 09:56:58"},{"id": "2", "titel": "Functional Safety Info (36)", "content": "xx", "level": "info", "subtitle": "06.01.2024 10:01:49"},{"id": "3", "titel": "System timing log (118)", "content": "xx", "level": "info", "subtitle": "06.01.2024 09:56:46"},{"id": "4", "titel": "Functional Safety Info (36)", "content": "xx", "level": "info", "subtitle": "05.01.2024 10:01:38"}
      Wenn ich, wie oben definiert, das Item mit "type:list" nehme, kann ich diesen String nicht speichern, da der Datentyp falsch ist. Das Widget arbeitet aber scheinbar nicht mit "type:str". Speichere ich eine Liste mit nur einem Element, nämlich meinem String von oben, dann speichert SmartHomeNG das wie folgt:

      Code:
      ['{"id": "0", "titel": "Functional Safety Info (36)", "content": "xx", "level": "info", "subtitle": "03.01.2024 10:01:14"},{"id": "1", "titel": "System timing log (118)", "content": "xx", "level": "info", "subtitle": "03.01.2024 09:56:11"},{"id": "2", "titel": "Functional Safety Info (36)", "content": "xx", "level": "info", "subtitle": "02.01.2024 10:01:03"},{"id": "3", "titel": "System timing log (118)", "content": "xx", "level": "info", "subtitle": "02.01.2024 09:56:00"},{"id": "4", "titel": "Functional Safety Info (36)", "content": "xx", "level": "info", "subtitle": "01.01.2024 10:00:51"}']
      Es werden also die [] und die beiden Apostroph hinzugefügt.

      Wie kann ich den Json-String im Item speichern, damit das Widget das richtig auslesen kann ?

      Das mit dem Cache ist mir bewusst und ich lösche den Cache immer, wenn ich Dateien in smartVISU aktualisiere.

      Kommentar


        #4
        Hi manhartm,

        wie sehen die Rohdaten die von der BYD kommen aus, kannst du diese posten ? Bzw. noch die Funktion wie die Daten aufbereitet werden und ins Item geschrieben werden.

        Viele Grüße
        Andre

        Kommentar


          #5
          Uff, das ist zu viel Code. Die BYD-Logdaten sind binär und werden im Plugin in einzelne Elemente (Listen) aufgetrennt. Dann setzte ich diese u.a. für eine HTML-Tabelle zusammen, die ich dann wie folgt darstelle:

          Code:
          {{ basic.print('','byd.visu.bmu_log.log_html','html') }}
          Das sieht dann so aus:

          logdata.png

          Hier der Code-Ausschnitt, der diese Daten sowohl für diese HTML-Tabelle wie auch für das JSON zusammenbaut:

          Code:
                  ld = self.byd_bmu_log
                  line_string = ""
                  json_str = ""
                  for i in range(len(ld)):  # 0..len(ld)-1
                    dd = ld[i]
                    dt = self.log_datetime_2_local(dd[byd_log_year],dd[byd_log_month],dd[byd_log_day],dd[byd_log_hour],dd[byd_log_minute],dd[byd_log_second],0)
                    # HTML
                    line_string = line_string + '<tr>'
                    line_string = line_string + '<td align=right valign=top>' + dt.strftime("%d.%m.%Y") + '</td>'
                    line_string = line_string + '<td align=right valign=top>' + dt.strftime("%H:%M:%S") + '</td>'
                    line_string = line_string + '<td valign=top>' + self.logcode2str(dd[byd_log_codex]) + ' (' + f"{dd[byd_log_codex]:d}" + ')' + '</td>'
                    line_string = line_string + '<td valign=top>' + dd[byd_log_str] + '</td>'
                    line_string = line_string + '</tr>'
                    # JSON
                    jd = {"id":str(i),"titel":self.logcode2str(dd[byd_log_codex]) + " (" + f"{dd[byd_log_codex]:d}" + ")",
                          "content":"xx","level":"info","subtitle":dt.strftime("%d.%m.%Y %H:%M:%S")}
                    if len(json_str) > 0:
                      json_str = json_str + ","
                    json_str = json_str + json.dumps(jd)
                    if i == byd_log_max_rows:
                      break
                  html_string = '<table cellpadding="2" border="1" style="border-collapse:collapse">' + line_string + '</table>'
                  
                  ll = []
                  ll.append(json_str)
                  
                  self.byd_root.visu.bmu_log.log_html(html_string)
                  self.byd_root.visu.bmu_log.log_jsonlist(ll)
          Wie vorher beschrieben, erzeugt dies aber im Item einen Eintrag mit <<[' ... ']>>. In einem früheren Post wird das auch so bestätigt: https://knx-user-forum.de/forum/supportforen/smarthome-py/32443-beispiel-f%C3%BCr-item-type-list?p=535574#post535574

          Gruss Matthias

          Kommentar


            #6
            Hallo manhartm,

            für das List-Item müsstest aus meiner Sicht lediglich wie folgt anpassen

            Code:
            json_array = []
            ....
            
            json.array.append(jd)  # das JSON-Objekt anhängen nicht den JSON-DUMP - der ist wieder String
            ....
            und am an der For-Schleife das item befüllen

            Viele Grüße
            Andre

            P.S: Ich bin noch nicht dazu gekommen den letzten Stand des Plugins zu testen, wann wird es eine Version mit den Meldungen geben (zum Testen)

            Kommentar


              #7
              Super - das war der Hinweis ! Nun funktioniert es. Danke !

              Kommentar

              Lädt...
              X