Ok, dann warte ich mal ab, bis der eventuelle Bug beseitigt ist.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Vorstellung: KNX-Lens
Einklappen
X
-
Hi Hendrik,
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:Zitat von henfri Beitrag anzeigenAber genau das ist doch oben in meinem Screenshot aud
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
Kommentar
-
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.
.env: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.
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=8001services:
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: {}
Kommentar
-
Zitat von abeggled Beitrag anzeigenDas wäre doch der Pfad wenn es in den Container gemapped wird.Code:KNX_PROJECT_PATH=/app/project/mes47.knxproj
ist richtig. Jetzt läuft es.Code:KNX_PROJECT_PATH=/app/mes47.knxproj
Kommentar
-
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:- Ausgangslage ist ein bestehender Proxmox Container mit diversen Docker Containern.
Diese haben ihre Daten unter /data/Projektname liegen - /data/knx-lens angelegt, sowie
/data/knx-lens/app
/data/knx-lens/project
/data/knx-lens/logs - Meine Projektdatei in data/knx-lens/project kopiert
- 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: {} - 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; Gestern, 20:21.
Kommentar
- Ausgangslage ist ein bestehender Proxmox Container mit diversen Docker Containern.
-
Unterwurde zwar durch das starten des Containers ein Unterverzeichnis logs angelegt, dieses ist aber leer. Das von mir unterCode:/data/knx-lens/app
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.Code:/data/knx-lens/logs
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; Gestern, 20:29.
Kommentar
-
Hallo miteinander
Hab's mal auf die Schnelle nachgestellt.Zitat von jolt19 Beitrag anzeigenich würde dieses tolle Projekt gerne in Docker laufen lassen, habe aber vermutlich irgendwas mit den Verzeichnisstrukturen falsch gemacht.
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:
Allerdings sehe ich Browser nur den Splash-Screen, danach passiert nichts mehr. Aber auf der Konsole gibt es schön Output: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:
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 JKind regards,
Yves
Kommentar
-
Warum? Das ist bei mir nicht so.Zitat von starwarsfan Beitrag anzeigenZumindest die Zeile "network_mode: host" muss weg, damit die Container überhaupt starten
Vielleicht sind bei dir Ports die der container verwendet schon belegt?
Aber net=host ist auch nicht zwingend. Es ist nur für die Auto-Discovery des IP Interfaces nötig. Es spricht nix gegen ein Mapping.
Und das müsste man auf dem Host fixen (dem User 999 die rechte geben oder halt der Gruppe oder Allen.)Zitat von starwarsfan Beitrag anzeigenDer User im Container hat die ID 999 und ein User mit dieser ID kann offenbar nicht in die von Dir angelegten Verzeichnisse schreiben.
Kann man machen, aber dann kommt man m.W. nur aus dem Container an die logs und kann sie sich nicht anders raus ziehen.Zitat von starwarsfan Beitrag anzeigenIch hatte genau den gleichen Effekt hier. Es funktioniert aber problemlos, wenn Du stattdessen für die Logs ein Docker-Volume verwendest.
Das sind aber eher Docker-Fragen als knx-lens Fragen. Dürfen hier dennoch gerne gestellt werden, aber die Lösung ist anderswo (z.B. auch Docker-Tutorial über Rechte oder Chatgpt) schneller zu finden.
Gruß,
Hendrik
Kommentar
-
Hi
Ich bekomme direkt von Docker die Fehlermeldung, dass die gleichzeitige Verwendung von networks und network_mode nicht möglich ist.Zitat von henfri Beitrag anzeigenWarum? Das ist bei mir nicht so.
Vielleicht sind bei dir Ports die der container verwendet schon belegt?
Ja das ist klar, mir ging's erstmal darum herauszufinden, woran es grundsätzlich liegen könnte.Zitat von henfri Beitrag anzeigenUnd das müsste man auf dem Host fixen (dem User 999 die rechte geben oder halt der Gruppe oder Allen.)
Unabhängig davon: Eine UserID unterhalb von 1000 zu verwenden, ist schon nicht die feine Art. Alles unterhalb 1000 ist für Systemdienste reserviert, daher sollte das immer grösser als 1k sein. Aber anderes Thema... ;-)
Darüber kann man geteilter Meinung sein. Aber es stimmt natürlich schon, dass es einfacher ist, wenn die Logs direkt auf dem System "greifbar" sind.Zitat von henfri Beitrag anzeigenKann man machen, aber dann kommt man m.W. nur aus dem Container an die logs und kann sie sich nicht anders raus ziehen.Kind regards,
Yves
Kommentar
-
… klar geht das, siehe Docker Tutorial oder ChatgptZitat von henfri Beitrag anzeigenaber dann kommt man m.W. nur aus dem Container an die logs und kann sie sich nicht anders raus ziehen
Kommentar


Kommentar