Ankündigung

Einklappen
Keine Ankündigung bisher.

Vorstellung: KNX-Lens

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

  • starwarsfan
    antwortet
    Hallo miteinander

    Zitat von jolt19 Beitrag anzeigen
    ich würde dieses tolle Projekt gerne in Docker laufen lassen, habe aber vermutlich irgendwas mit den Verzeichnisstrukturen falsch gemacht.
    Hab's mal auf die Schnelle nachgestellt.

    Dein Compose-File entspricht so ziemlich dem aus dem Repo aber ich frage mich, wie das damit überhaupt laufen soll. Zumindest die Zeile "network_mode: host" muss weg, damit die Container überhaupt starten Ich habe die Zeilen komplett entfernt und nur den Port 8099 gemappt. Weiterhin ist wie vermutet die Berechtigung das Problem aber da kannst Du eigentlich in der Form gar nichts machen. Der User im Container hat die ID 999 und ein User mit dieser ID kann offenbar nicht in die von Dir angelegten Verzeichnisse schreiben.

    Ich hatte genau den gleichen Effekt hier. Es funktioniert aber problemlos, wenn Du stattdessen für die Logs ein Docker-Volume verwendest. Dann brauchst Du nur Dein Projektfile in den Container mounten. Versuch's mal so:

    Code:
    services:
      logger:
        image: henfri/knx-lens:latest
        container_name: knx_logger
        command:
          - python
          - knx-lens-logger.py
        volumes:
          - /home/starwarsfan/knx-lens/project:/app/project
          - logs:/app/logs
          - /etc/timezone:/etc/timezone:ro
          - /etc/localtime:/etc/localtime:ro
        env_file:
          - .env
        restart: unless-stopped
      web:
        image: henfri/knx-lens:latest
        container_name: knx_web
        command:
          - python
          - knx-lens-web.py
        ports:
          - 8099:8099
        volumes:
          - logs:/app/logs:ro
          - /home/starwarsfan/knx-lens/project:/app/project
        env_file:
          - .env
        restart: unless-stopped
    volumes:
      logs:​
    Allerdings sehe ich Browser nur den Splash-Screen, danach passiert nichts mehr. Aber auf der Konsole gibt es schön Output:

    knx_logger | 2025-12-16 03:08:48.957 | 1.0.52 | Burli | 3/2/69 | Burli - Status R04 (0=GMZ aust | (0,)
    knx_logger | 2025-12-16 03:08:49.976 | 1.0.113 | BE-GTT4x.01 (Taster Gäste | 3/4/10 | Temperatur Gästezimmer | 22.4 °C
    knx_logger | 2025-12-16 03:08:54.662 | 1.0.15 | AMI-1216.01 Schaltaktor 4 | 2/2/104 | Stromverbrauch St38 (Büro) | 35 mA
    knx_logger | 2025-12-16 03:09:00.659 | 1.0.15 | AMI-1216.01 Schaltaktor 4 | 2/2/104 | Stromverbrauch St38 (Büro) | 34 mA
    knx_logger | 2025-12-16 03:09:07.268 | 1.0.62 | | 2/3/14 | Stromzähler 1.8.0 Gesamtbezug | 147068 kWh
    knx_logger | 2025-12-16 03:09:18.655 | 1.0.15 | AMI-1216.01 Schaltaktor 4 | 2/2/104 | Stromverbrauch St38 (Büro) | 35 mA
    knx_logger | 2025-12-16 03:09:21.303 | 1.0.52 | Burli | 3/2/69 | Burli - Status R04 (0=GMZ aust | (0,)
    knx_logger | 2025-12-16 03:09:24.657 | 1.0.15 | AMI-1216.01 Schaltaktor 4 | 2/2/104 | Stromverbrauch St38 (Büro) | 34 mA
    knx_logger | 2025-12-16 03:09:31.850 | 1.0.255 | KNX-Netzteil | 3/2/31 | Spannungsversorgung - Abgegebe | 1.427179e-39 J
    knx_logger | 2025-12-16 03:09:31.887 | 1.0.255 | KNX-Netzteil | 3/2/32 | Spannungsversorgung - Abgegebe | 1.556857e-40 J​

    Einen Kommentar schreiben:


  • henfri
    antwortet

    Hat das irgendwas mit der .env zu tun und der mir unverständlichen ersten Zeile darin?
    Nein, die wird ja gar nicht verwendet.

    Ich bin ziemlich sicher, dass du einen Problem mit den Berechtigungen hast.

    Der Container kann in das Verzeichnis einfach nicht schreiben

    Einen Kommentar schreiben:


  • jolt19
    antwortet
    Unter
    Code:
    /data/knx-lens/app
    wurde zwar durch das starten des Containers ein Unterverzeichnis logs angelegt, dieses ist aber leer. Das von mir unter
    Code:
    /data/knx-lens/logs
    angelegten Verzeichnis ist ebenfalls leer. Eine knx_bus.log scheint es nicht zu geben. Habe beide Verzeichnisse mal gelöscht und neu erstellt. Hat aber nichts geändert.

    Hat das irgendwas mit der .env zu tun und der mir unverständlichen ersten Zeile darin?
    Code:
    DOCKERCONFIG=/data/knx-lens/dockerconfig/
    Zuletzt geändert von jolt19; 15.12.2025, 20:29.

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Code:
    PermissionError: [Errno 13] Permission denied: '/app/logs/knx_bus.log'
    Das sollte eigentlich nicht passieren, wenn die Log-datei auch vom Container erstellt wird.
    Ggf. mal stoppen, datei löschen, starten.

    Einen Kommentar schreiben:


  • jolt19
    antwortet
    Hallo,
    ich würde dieses tolle Projekt gerne in Docker laufen lassen, habe aber vermutlich irgendwas mit den Verzeichnisstrukturen falsch gemacht.

    Was ich gemacht habe:
    1. Ausgangslage ist ein bestehender Proxmox Container mit diversen Docker Containern.
      Diese haben ihre Daten unter /data/Projektname liegen
    2. /data/knx-lens angelegt, sowie
      /data/knx-lens/app
      /data/knx-lens/project
      /data/knx-lens/logs
    3. Meine Projektdatei in data/knx-lens/project kopiert
    4. in /data/knx-lens eine docker-compose.yml angelegt mit folgendem Inhalt:
      Code:
      services:
      	logger:
      	image: henfri/knx-lens:latest
      	container_name: knx_logger
      	command:
      	 - python
      	 - knx-lens-logger.py
      	#    network_mode: "host"
      	volumes:
      	 # Mountet lokale Verzeichnisse in den Container
      	 - /data/knx-lens/logs:/app/logs
      	 - /data/knx-lens/project:/app/project
      	 - /etc/timezone:/etc/timezone:ro
      	 - /etc/localtime:/etc/localtime:ro
      	env_file:
      	 - .env
      	restart: unless-stopped
      	web:
      	image: henfri/knx-lens:latest
      	container_name: knx_web
      	command:
      	 - python
      	 - knx-lens-web.py
      	network_mode: host
      	volumes:
      	 # Lesezugriff auf die Logs
      	 - /data/knx-lens/logs:/app/logs:ro
      	 - /data/knx-lens/project:/app/project
      	env_file:
      	 - .env
      	restart: unless-stopped
      	networks: {}​
    5. in /data/knx-lens eine .env angelgt mit diesem Inhalt, wobei mir die erste Zeile unklar ist. Wo muss die hinzeigen?:
      Code:
      DOCKERCONFIG=/data/knx-lens/dockerconfig/
      	LOG_PATH=/app/logs
      	LOG_FILE=/app/logs/knx_bus.log
      	KNX_PROJECT_PATH=/app/project/meinProjekt.knxproj
      	KNX_PASSWORD='MeinPW'
      	KNX_GATEWAY_IP='192.168.178.22'
      	KNX_GATEWAY_PORT='3671'
      	WEBSERVER_PORT=8099
      	​

    Der Webserver läuft auch, enthält aber keine Daten.
    In der Console habe ich auch einen Haufen Fehler nachdem ich den Container mit docker-compose up starte:
    Code:
    knx_web  | IP-Adresse automatisch ermittelt: 192.168.178.95. Falls eine andere IP genutzt werden soll, setzen Sie WEBSERVER_IP in der .env-Datei.
    knx_web  | Port aus .env-Datei geladen: 8099
    knx_web  | ------------------------------
    knx_web  | ___ ____ _  _ ___ _  _ ____ _       ____ ____ ____ _  _ ____
    knx_web  |  |  |___  \/   |  |  | |__| |    __ [__  |___ |__/ |  | |___
    knx_web  |  |  |___ _/\_  |  |__| |  | |___    ___] |___ |  \  \/  |___ v1.1.3
    knx_web  |
    knx_web  | Serving 'python -m knx-lens' on http://192.168.178.95:8099
    knx_web  |
    knx_web  | Press Ctrl+C to quit
    knx_logger  | 2025-12-15 17:01:25,239 [ERROR] root: Ein unerwarteter Fehler hat die Anwendung beendet:
    knx_logger  | Traceback (most recent call last):
    knx_logger  |   File "/app/knx-lens-logger.py", line 312, in main
    knx_logger  |     asyncio.run(start_logger_mode())
    knx_logger  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
    knx_logger  |     return runner.run(main)
    knx_logger  |            ^^^^^^^^^^^^^^^^
    knx_logger  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
    knx_logger  |     return self._loop.run_until_complete(task)
    knx_logger  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    knx_logger  |   File "/usr/local/lib/python3.11/asyncio/base_events.py", line 654, in run_until_complete
    knx_logger  |     return future.result()
    knx_logger  |            ^^^^^^^^^^^^^^^
    knx_logger  |   File "/app/knx-lens-logger.py", line 218, in start_logger_mode
    knx_logger  |     bus_logger = setup_knx_bus_logger(log_path, is_daemon_mode)
    knx_logger  |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    knx_logger  |   File "/app/knx-lens-logger.py", line 76, in setup_knx_bus_logger
    knx_logger  |     file_handler = ZipTimedRotatingFileHandler(
    knx_logger  |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    knx_logger  |   File "/usr/local/lib/python3.11/logging/handlers.py", line 214, in __init__
    knx_logger  |     BaseRotatingHandler.__init__(self, filename, 'a', encoding=encoding,
    knx_logger  |   File "/usr/local/lib/python3.11/logging/handlers.py", line 58, in __init__
    knx_logger  |     logging.FileHandler.__init__(self, filename, mode=mode,
    knx_logger  |   File "/usr/local/lib/python3.11/logging/__init__.py", line 1181, in __init__
    knx_logger  |     StreamHandler.__init__(self, self._open())
    knx_logger  |                                  ^^^^^^^^^^^^
    knx_logger  |   File "/usr/local/lib/python3.11/logging/__init__.py", line 1213, in _open
    knx_logger  |     return open_func(self.baseFilename, self.mode,
    knx_logger  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    knx_logger  | PermissionError: [Errno 13] Permission denied: '/app/logs/knx_bus.log'
    knx_logger  | 2025-12-15 17:01:25,241 [INFO] root: Anwendung heruntergefahren.
    knx_logger exited with code 0 (restarting)
    
    ​​
    Zuletzt geändert von jolt19; 15.12.2025, 20:21.

    Einen Kommentar schreiben:


  • Hantago
    antwortet
    Zitat von abeggled Beitrag anzeigen
    Code:
    KNX_PROJECT_PATH=/app/project/mes47.knxproj
    Das wäre doch der Pfad wenn es in den Container gemapped wird.
    Code:
    KNX_PROJECT_PATH=/app/mes47.knxproj
    ist richtig. Jetzt läuft es.

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Ja, genau.
    Übrigens ist KI bei solchen Problemen echt eine Hilfe. Gerade wenn man alles schon fünf mal gecheckt und fünf mal übersehen hat.

    P.s. bitte Code in Code Tags und nicht in quote Tags
    Zuletzt geändert von henfri; 23.11.2025, 21:51.

    Einen Kommentar schreiben:


  • abeggled
    antwortet
    KNX_PROJECT_PATH=/srv/dev-disk-by-uuid-24afbf8f-3af9-440f-8e55-99297f9f1fc0/knxlens/mes47.knxproj
    Code:
    KNX_PROJECT_PATH=/app/project/mes47.knxproj
    Das wäre doch der Pfad wenn es in den Container gemapped wird.

    Einen Kommentar schreiben:


  • Hantago
    antwortet
    Hallo,

    ich versuche schon den ganzen Sonntag KNX-Lens mit Docker/Portainer zum Laufen zu bekommen. Die Verbindung zum Bus ist da und alles wird geloggt, aber die Projektdatei wird nicht gefunden. Wo ist mein Denkfehler? Der Pfad ist korrekt.


    2025-11-23 20:31:50,040 [WARNING] root: ETS-Projektdatei nicht unter '/srv/dev-disk-by-uuid-24afbf8f-3af9-440f-8e55-99297f9f1fc0/knxlens/mes47.knxproj' gefunden. Telegramme werden nicht dekodiert.​
    .env:
    DOCKERCONFIG=/srv/dev-disk-by-uuid-24afbf8f-3af9-440f-8e55-99297f9f1fc0/knxlens
    LOG_PATH=/app/logs
    LOG_FILE=/app/logs/knx_bus.log
    KNX_PROJECT_PATH=/srv/dev-disk-by-uuid-24afbf8f-3af9-440f-8e55-99297f9f1fc0/knxlens/mes47.knxproj
    KNX_PASSWORD='xxxxx'
    KNX_GATEWAY_IP='192.168.0.xx'
    KNX_GATEWAY_PORT='3671'
    WEBSERVER_PORT=8001
    services:
    logger:
    image: henfri/knx-lens:latest
    container_name: knx_logger
    command:
    - python
    - knx-lens-logger.py
    # network_mode: "host"
    volumes:
    # Mountet lokale Verzeichnisse in den Container
    - /srv/dev-disk-by-uuid-24afbf8f-3af9-440f-8e55-99297f9f1fc0/knxlens/logs:/app/logs
    - /srv/dev-disk-by-uuid-24afbf8f-3af9-440f-8e55-99297f9f1fc0/knxlens/project:/app/project
    - /etc/timezone:/etc/timezone:ro
    - /etc/localtime:/etc/localtime:ro
    env_file:
    - .env
    restart: unless-stopped
    web:
    image: henfri/knx-lens:latest
    container_name: knx_web
    command:
    - python
    - knx-lens-web.py
    network_mode: host
    volumes:
    # Lesezugriff auf die Logs
    - /srv/dev-disk-by-uuid-24afbf8f-3af9-440f-8e55-99297f9f1fc0/knxlens/logs:/app/logs:ro
    - /srv/dev-disk-by-uuid-24afbf8f-3af9-440f-8e55-99297f9f1fc0/knxlens/project:/app/project
    env_file:
    - .env
    restart: unless-stopped
    networks: {}​

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo,

    ich habe gerade ein Update hochgeladen.
    Übrigens: der Stand auf Github war leider einige Versionen hinterher, da ich das git push vergessen hatte.
    Für die Nutzer der reinen python Version ist das Update also größer :-)

    Gruß
    Hendrik

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi Hendrik,

    Zitat von henfri Beitrag anzeigen
    Aber genau das ist doch oben in meinem Screenshot aud
    Nein, das sind verschiedene Objekte. Das mit "Channel-in-Channel" sieht man an den Icons: Im alten siehst Du, dass ein Kanal als Kind eines Kanals enthalten ist:
    image.png
    In neuen ist nur das Modul ein Kanal, darunter ist ein ParameterBlock (als Folder dargestellt), und darunter dann Kommunikationsobjekte:
    image.png
    ​Wie gesagt, ich weiß gar nicht, ob diese Info in xknx landet, weil sie womöglich gar nicht wichtig für das Processing ist.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • Seltrecht
    antwortet
    Ok, dann warte ich mal ab, bis der eventuelle Bug beseitigt ist.

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo,

    das könnte tatsächlich ein Bug sein.
    Ich habe daran gearbeitet, die "Schwuppdizität" zu erhöhen. Dabei könnte das passiert sein.

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • Seltrecht
    antwortet
    Ich habe heute mal die aktuelle Version installiert. Jetzt werden aber die Wert der Gruppenadressen nicht mehr automatisch aktualisiert.
    Das Log-File steht auf auto-reload und zeigt auch die aktuellen Werte an, aber erst wenn ich es manuell neu lade sehe bei den Gruppenadressen den aktuellen Wert.
    Muss ich da noch irgendwas einstellen?
    Zuletzt geändert von Seltrecht; 19.11.2025, 08:58.

    Einen Kommentar schreiben:


  • henfri
    antwortet
    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.
    Aber genau das ist doch oben in meinem Screenshot aud
    Sensor-Wire-PM-Logic-Button-BL v3.15
    Der Fall:
    Präsenzmelder-> PM1, PM2, ...

    Ob und wo sie dann in xknx landen, kann ich Dir leider nicht sagen.
    Hm, meti kannst du hier weiterhelfen?

    Einen Kommentar schreiben:

Lädt...
X