Ankündigung

Einklappen
Keine Ankündigung bisher.

Vorstellung: KNX-Lens

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

  • mumpf
    antwortet
    Hi Hendrik,

    ich kann Dir nur sagen, wo sie im xml für die knxprod sind. Bzw. wo sie nicht sind .
    Also erstmal vorweg: Die ETS kann keine Kanäle in Kanälen (zumindest nicht immer und in allen Varianten), deswegen mussten wir hier umbauen. Es gibt jetzt (schon seit ca. 1 Jahr) nur noch einen ETS-Kanal pro Modul.
    Die Kanäle der OpenKNX-Module stecken in einem ParameterBlock mit der Eigenschaft ShowInComObjectTree="true".

    Ob und wo sie dann in xknx landen, kann ich Dir leider nicht sagen.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • henfri
    antwortet
    meti mumpf

    Ich bräuchte mal Eure Unterstützung.
    Ich beiße mir die Zähne daran aus, die Kanäle der Geräte in KNX-Lens darzustellen.
    25-11-17__447-19.38.55_knx-lens.py_-_knx_parse_-_Visual_Studio_Code.png 25-11-17__450-19.48.06_ETS6_-_Familie_Friedel.png
    25-11-17__448-19.39.17_knx-lens.py_-_knx_parse_-_Visual_Studio_Code.png


    25-11-17__452-19.48.42_ETS6_-_Familie_Friedel.png


    Beim älteren Sensormodul (WP-Sensor-PM-Logic 1.6) gibt es die Kanäle, beim neuen (Sensor-Wire-PM-Logic-Button-BL v3.15) fehlen sie in KNX-Lens.

    Das liegt aber daran, das xknx nur einen Kanal findet.
    Code:
    from knx_project_utils import load_or_parse_project
    import json
    import os
    from dotenv import load_dotenv
    # Lade Config
    load_dotenv()
    knxproj_path = os.getenv('KNX_PROJECT_PATH')
    password = os.getenv('KNX_PASSWORD')
    print(f"Lade Projekt: {knxproj_path}...")
    data = load_or_parse_project(knxproj_path, password)
    # Daten aus Wrapper holen
    if "project" in data:
        data = data["project"]
    # Gerät suchen
    target_pa = "1.0.1"
    device = data.get("devices", {}).get(target_pa)
    if device:
        print(f"Gerät {target_pa} gefunden!")
        print("Schreibe Dump nach 'debug_device_1.0.1.json'...")
      
        # Wir dumpen das gesamte Device-Objekt, um alles zu sehen
        with open("debug_device_1.0.1.json", "w", encoding="utf-8") as f:
            json.dump(device, f, indent=2, default=str)
          
        print("Fertig.")
    else:
        print(f"Gerät {target_pa} nicht gefunden!")​
    Erzeugt diesen Output:
    Code:
    {
      "name": "OpenKNX: Sensormodul-Vpm Elternbad",
      "hardware_name": "OpenKNX: Sensormodul-Vpm",
      "order_number": "OpenKnxSensorVpm",
      "description": "(SAMD)",
      "manufacturer_name": "KNX Association",
      "individual_address": "1.0.1",
      "application": "M-00FA_A-A040-16-C6E5",
      "project_uid": 113420,
      "communication_object_ids": [
        "1.0.1/O-2_R-100000201",
        "1.0.1/O-3_R-100000301",
        "1.0.1/O-60_R-300006001",
        "1.0.1/O-61_R-300006101",
        "1.0.1/O-62_R-300006201",
        "1.0.1/O-63_R-300006301",
        "1.0.1/O-65_R-300006501",
        "1.0.1/O-103_R-200101304",
        "1.0.1/O-91_R-200100101",
        "1.0.1/O-96_R-200100701",
        "1.0.1/O-98_R-200100901",
        "1.0.1/O-101_R-200101101",
        "1.0.1/O-105_R-200101501",
        "1.0.1/O-93_R-200100301",
        "1.0.1/O-95_R-200100501",
        "1.0.1/O-90_R-200100001",
        "1.0.1/O-99_R-200101001",
        "1.0.1/O-202_R-100100210",
        "1.0.1/O-7_R-100000701",
        "1.0.1/O-205_R-100200210",
        "1.0.1/O-208_R-100300210",
        "1.0.1/O-211_R-100400210",
        "1.0.1/O-1_R-100000101",
        "1.0.1/O-69_R-300006901",
        "1.0.1/O-66_R-300006601",
        "1.0.1/O-216_R-100600104",
        "1.0.1/O-217_R-100600201",
        "1.0.1/O-218_R-100700001",
        "1.0.1/O-220_R-100700201",
        "1.0.1/O-215_R-100600004",
        "1.0.1/O-223_R-100800206",
        "1.0.1/O-222_R-100800106",
        "1.0.1/O-128_R-200201801",
        "1.0.1/O-226_R-100900201",
        "1.0.1/O-110_R-200200001",
        "1.0.1/O-111_R-200200101",
        "1.0.1/O-123_R-200201302",
        "1.0.1/O-224_R-100900004",
        "1.0.1/O-225_R-100900104"
      ],
      "channels": {
        "CH-1": {
          "identifier": "CH-1",
          "name": "Standardsensoren",
          "communication_object_ids": [
            "1.0.1/O-60_R-300006001",
            "1.0.1/O-50_R-300005001",
            "1.0.1/O-61_R-300006101",
            "1.0.1/O-62_R-300006201",
            "1.0.1/O-63_R-300006301",
            "1.0.1/O-65_R-300006501",
            "1.0.1/O-66_R-300006601",
            "1.0.1/O-69_R-300006901"
          ]
        },
        "CH-PM01": {
          "identifier": "CH-PM01",
          "name": "PM 01: Elternbad",
          "communication_object_ids": [
            "1.0.1/O-101_R-200101101",
            "1.0.1/O-105_R-200101501",
            "1.0.1/O-106_R-200101601",
            "1.0.1/O-107_R-200101701",
            "1.0.1/O-108_R-200101801",
            "1.0.1/O-93_R-200100301",
            "1.0.1/O-94_R-200100401",
            "1.0.1/O-95_R-200100501",
            "1.0.1/O-97_R-200100801",
            "1.0.1/O-102_R-200101201",
            "1.0.1/O-99_R-200101001",
            "1.0.1/O-90_R-200100001",
            "1.0.1/O-91_R-200100101",
            "1.0.1/O-103_R-200101304",
            "1.0.1/O-96_R-200100701",
            "1.0.1/O-98_R-200100901"
          ]
        },
        "CH-PM02": {
          "identifier": "CH-PM02",
          "name": "PM 02: Kinderbad",
          "communication_object_ids": [
            "1.0.1/O-121_R-200201101",
            "1.0.1/O-125_R-200201501",
            "1.0.1/O-126_R-200201601",
            "1.0.1/O-127_R-200201701",
            "1.0.1/O-128_R-200201801",
            "1.0.1/O-113_R-200200301",
            "1.0.1/O-114_R-200200401",
            "1.0.1/O-115_R-200200501",
            "1.0.1/O-117_R-200200801",
            "1.0.1/O-122_R-200201201",
            "1.0.1/O-119_R-200201001",
            "1.0.1/O-110_R-200200001",
            "1.0.1/O-111_R-200200101",
            "1.0.1/O-123_R-200201302",
            "1.0.1/O-118_R-200200902"
          ]
        },
        "CH-L01": {
          "identifier": "CH-L01",
          "name": "Logik 01: PM Tagesphase Elternbad Tag",
          "communication_object_ids": [
            "1.0.1/O-202_R-100100210"
          ]
        },
        "CH-L02": {
          "identifier": "CH-L02",
          "name": "Logik 02: PM Tagesphase Nacht",
          "communication_object_ids": [
            "1.0.1/O-205_R-100200210"
          ]
        },
        "CH-L03": {
          "identifier": "CH-L03",
          "name": "Logik 03: PM Tagesphase Elternbad Morgen",
          "communication_object_ids": [
            "1.0.1/O-208_R-100300210"
          ]
        },
        "CH-L04": {
          "identifier": "CH-L04",
          "name": "Logik 04: PM Tagesphase Elternbad Abend",
          "communication_object_ids": [
            "1.0.1/O-211_R-100400210"
          ]
        },
        "CH-L05": {
          "identifier": "CH-L05",
          "name": "Logik 05: Dimmwert weiterleiten",
          "communication_object_ids": [
            "1.0.1/O-212_R-100500004",
            "1.0.1/O-213_R-100500101",
            "1.0.1/O-214_R-100500204"
          ]
        },
        "CH-L06": {
          "identifier": "CH-L06",
          "name": "Logik 06: HCL Template ausschalten",
          "communication_object_ids": [
            "1.0.1/O-215_R-100600004",
            "1.0.1/O-216_R-100600104",
            "1.0.1/O-217_R-100600201"
          ]
        },
        "CH-L07": {
          "identifier": "CH-L07",
          "name": "Logik 07: HCL Template anschalten",
          "communication_object_ids": [
            "1.0.1/O-218_R-100700001",
            "1.0.1/O-220_R-100700201"
          ]
        },
        "CH-L08": {
          "identifier": "CH-L08",
          "name": "Logik 08: HCL - N\u00e4chstes Anschalten Weiss",
          "communication_object_ids": [
            "1.0.1/O-222_R-100800106",
            "1.0.1/O-223_R-100800206"
          ]
        },
        "CH-L09": {
          "identifier": "CH-L09",
          "name": "Logik 09: PM Sperre Schlafzimmer durch Rollo",
          "communication_object_ids": [
            "1.0.1/O-224_R-100900004",
            "1.0.1/O-225_R-100900104",
            "1.0.1/O-226_R-100900201"
          ]
        },
        "CH-L10": {
          "identifier": "CH-L10",
          "name": "Logik 10:  ...",
          "communication_object_ids": [
            "1.0.1/O-227_R-101000004",
            "1.0.1/O-228_R-101000104",
            "1.0.1/O-229_R-101000201"
          ]
        },
        "CH-L11": {
          "identifier": "CH-L11",
          "name": "Logik 11:  ...",
          "communication_object_ids": [
            "1.0.1/O-230_R-101100001",
            "1.0.1/O-232_R-101100201"
          ]
        }
      }
    }​
    Code:
    {
      "name": "OpenKNX: Sensormodul, VPM, G\u00e4stebad (Abstellkammer)",
      "hardware_name": "OpenKNX: Sensormodul-Big",
      "order_number": "OpenKnxSensorBig",
      "description": "Sen-UP1-8xTH, \r\nEingang E ist I2C\r\nC&D sind Bin\u00e4reing\u00e4nge (+VCC)",
      "manufacturer_name": "KNX Association",
      "individual_address": "1.0.35",
      "application": "M-00FA_A-A012-3F-6029",
      "project_uid": 113556,
      "communication_object_ids": [
        "1.0.35/O-2_R-100000201",
        "1.0.35/O-3_R-100000301",
        "1.0.35/O-7_R-100000701",
        "1.0.35/O-60_R-400006001",
        "1.0.35/O-61_R-400006101",
        "1.0.35/O-62_R-400006201",
        "1.0.35/O-63_R-400006301",
        "1.0.35/O-65_R-400006501",
        "1.0.35/O-133_R-300101304",
        "1.0.35/O-120_R-300100001",
        "1.0.35/O-125_R-300100501",
        "1.0.35/O-128_R-300100901",
        "1.0.35/O-121_R-300100101",
        "1.0.35/O-45_R-600100001",
        "1.0.35/O-923_R-100200001",
        "1.0.35/O-925_R-100200201",
        "1.0.35/O-1_R-100000101",
        "1.0.35/O-926_R-100300001",
        "1.0.35/O-927_R-100300101",
        "1.0.35/O-929_R-100400001",
        "1.0.35/O-930_R-100400101",
        "1.0.35/O-932_R-100500001",
        "1.0.35/O-933_R-100500101",
        "1.0.35/O-935_R-100600001",
        "1.0.35/O-936_R-100600101",
        "1.0.35/O-938_R-100700001",
        "1.0.35/O-939_R-100700101",
        "1.0.35/O-940_R-100700201",
        "1.0.35/O-941_R-100800001",
        "1.0.35/O-942_R-100800101",
        "1.0.35/O-944_R-100900001",
        "1.0.35/O-945_R-100900101",
        "1.0.35/O-947_R-101000001",
        "1.0.35/O-948_R-101000101",
        "1.0.35/O-950_R-101100001",
        "1.0.35/O-951_R-101100101",
        "1.0.35/O-952_R-101100201",
        "1.0.35/O-953_R-101200001",
        "1.0.35/O-955_R-101200201",
        "1.0.35/O-956_R-101300001",
        "1.0.35/O-958_R-101300201",
        "1.0.35/O-961_R-101400201",
        "1.0.35/O-964_R-101500201",
        "1.0.35/O-965_R-101600001",
        "1.0.35/O-967_R-101600201",
        "1.0.35/O-966_R-101600101",
        "1.0.35/O-69_R-400006901",
        "1.0.35/O-66_R-400006601",
        "1.0.35/O-153_R-300201301",
        "1.0.35/O-140_R-300200001",
        "1.0.35/O-145_R-300200501",
        "1.0.35/O-142_R-300200204",
        "1.0.35/O-968_R-101700001",
        "1.0.35/O-141_R-300200102",
        "1.0.35/O-970_R-101700201",
        "1.0.35/O-171_R-300301101",
        "1.0.35/O-161_R-300300102",
        "1.0.35/O-173_R-300301301",
        "1.0.35/O-191_R-300401101",
        "1.0.35/O-165_R-300300501",
        "1.0.35/O-193_R-300401301",
        "1.0.35/O-185_R-300400501",
        "1.0.35/O-978_R-102000101",
        "1.0.35/O-979_R-102000201",
        "1.0.35/O-977_R-102000001",
        "1.0.35/O-974_R-101900001",
        "1.0.35/O-976_R-101900201",
        "1.0.35/O-983_R-102200004",
        "1.0.35/O-984_R-102200104",
        "1.0.35/O-985_R-102200201",
        "1.0.35/O-986_R-102300001",
        "1.0.35/O-988_R-102300201",
        "1.0.35/O-991_R-102400206",
        "1.0.35/O-990_R-102400106",
        "1.0.35/O-122_R-300100204",
        "1.0.35/O-994_R-102500201"
      ],
      "channels": {
        "CH-BASE": {
          "identifier": "CH-BASE",
          "name": "OpenKNX",
          "communication_object_ids": [
            "1.0.35/O-1_R-100000101",
            "1.0.35/O-2_R-100000201",
            "1.0.35/O-3_R-100000301",
            "1.0.35/O-7_R-100000701"
          ]
        }
      }
    }​

    Ich hänge mal den ganzen output von xknxproj.parse() an.

    Könnt ihr mir sagen, wo sich die Kanäle in der neuen Version verstecken?

    Gruß,
    Hendrik

    Angehängte Dateien

    Einen Kommentar schreiben:


  • Amenophis
    antwortet
    Mega das Update. Vielen Dank dafür

    Einen Kommentar schreiben:


  • Noschvie
    antwortet
    Als Anregung, InfluxDB statt Tagesdateien: https://github.com/greiginsydney/captureKNX

    Einen Kommentar schreiben:


  • Alloc
    antwortet
    Top! Und ich sehe nun auch unten wieder alle Einträge

    Ich weiß nicht, ob du darauf überhaupt Einfluss hast, aber gerade da jetzt eh kein horizontales Scrollen mehr vorhanden ist wäre Home/End für Anfang/Ende der Liste super. Mit Ctrl+Home/End geht das zwar schon, aber ohne Ctrl wäre es natürlich noch angenehmer

    Einen Kommentar schreiben:


  • henfri
    antwortet
    So, ich hab gerade nochmal ein größeres Update hochgeladen.

    Es gibt jezt benannte Filter. Man kann den aktuell gewählten Filter mit S speichern. Man kann aber auch im entsprechenden Tab benannte Filter erstellen und editieren.
    Das geht alternativ auch in der entsprechenden YAML im Projekt-Verzeichnis.
    Es werden auch regex für Named-Filter unterstützt.
    Diese sind mit OR verknüpft.

    Wer das log weiter filtern will (einschränkend) kann den Filter über den Log-Zeilen nehmen. Der kann auch regex und die sind AND verknüpft.

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • Alloc
    antwortet
    Hi Hendrik,

    ich hab gerade mal aktualisiert, das lief schonmal erfreulich problemlos (systemctl stop für beide Dienste, git pull, systemctl start *2)
    Hat sich ja schon deutlich was getan, danke für deine Arbeit daran!

    Ich hab mal soweit Tickets abgearbeitet, kann aber auf Grund der Rechte keine Tickets wieder öffnen. #19 (Spaltenbreite) hat noch etwas Probleme aus meiner Sicht.

    Und die KO Namen sind jetzt *deutlich* besser als vorher. Da stand bei mir bei vielen MDT-Geräten vorher nur ganz grob nutzbarer Kram, jetzt passt das eigentlich alles.


    Ansonsten ist mir aufgefallen, dass die Home/End-Tasten nur nach ganz links/rechts scrollen. Ich fände es deutlich besser, wenn das ans Anfang/Ende der Liste scrollen würde (nach Links/Rechts scrollen sollte ja im Idealfall gar nicht nötig sein ).

    Außerdem scheint es mir, als ob zwei Zeilen unten "Abgeschnitten" würden. Wenn die letzte sichtbare Zeile markiert ist kann ich noch zweimal nach unten gehen, ohne dass die Liste hochgescrollt wird. Das passt auch zu den Daten, die da eigentlich noch sein müssten, da ich weiß, dass da noch zwei Telegramme nach dem letzten Sichtbaren kamen.

    LG,
    Chris

    Einen Kommentar schreiben:


  • Tru
    antwortet
    Ja, jetzt kommt der Fehler nicht mehr. Vielen Dank

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Funktioniert es mit dem Update von gerade?

    Einen Kommentar schreiben:


  • Tru
    antwortet
    Hab grad gesehen: ist nicht nur web, sondern das gleiche auch im Terminal ...

    Einen Kommentar schreiben:


  • henfri
    antwortet
    oh, das ist hier auch so - hab die web-version wohl nicht getestet. Ich schau mal. kein issue nötig

    Einen Kommentar schreiben:


  • Tru
    antwortet
    henfri Hab heute einen git pull gemacht, nun funktioniert knx-lens-web leider nicht mehr. Beim Start der Browser Session wird in der oberen Fensterhälfte ein Fehler angezeigt. Ich muss die Fehlermeldung aus dem Browser abtippen, kopieren geht nicht.
    Code:
    FEHLER BEIM LADEN
    Meldung: no nodes match '#building_tree' on KNXLens(title='KNXLens', classes={' -darkmode'}, pseude_classes={'dark', 'focus'}}
    Das Aufstarten von knx-lens-logger und knx-lens-web klappt wie bisher. Der Logger funktioniert und zeigt die Daten gemäss .knxproj an.
    Soll ich noch einen Issue dafür eröffnen?

    Danke noch für die Anpassung der Datum- und Zeitwerte.

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Ich würde damit klar kommen, ist auf jeden Fall besser als gar nichts. Wobei es mir nicht klar ist, wie das dann mit Docker funktioniert, aber das liegt daran, dass ich mich nicht gut genug mit Docker auskenne.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • henfri
    antwortet
    mumpf / Waldemar
    hierzu: https://github.com/henfri/knx-lens/issues/24

    Ich würde diese "Named Filter" wohl in einer Text Datei manuell anlegen lassen und dann in einem weiteren Tab darstellen und aktivierbar machen.
    Sie würden dann den anders gewählten filtern hinzugefügt (OR).
    Ich würde hier auch regex erlauben.

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo,

    mit "UND" habe ich es jetzt gerade committet.
    Man filtert so also das bereits gefilterte Log weiter.
    Bitte mal ausprobieren. Wenn "ODER" wirklich relevant ist, kann ich mir vorstellen, das umschaltbar zu machen. Aber ich will die Komplexität nicht zu hoch werden lassen

    Gruß,
    Hendrik

    Einen Kommentar schreiben:

Lädt...
X