FHEM Forum

FHEM - Hausautomations-Systeme => KNX/EIB => Thema gestartet von: NehCoy am 28 Dezember 2023, 11:48:58

Titel: Alles in Docker
Beitrag von: NehCoy am 28 Dezember 2023, 11:48:58
Hallo zusammen!

Nach Jahren möchte ich nun endlich mal wieder an meiner Hausautomatisierung "arbeiten".
Mein erstes Vorhaben ist nun FHEM zusammen mit KNX in einem Docker Container laufen zu lassen.
Viel Doku dazu finde ich nicht gerade. ???  Was muss man denn dazu tun?
Bisher läuft erstmal alles nativ auf einem alten PI. Als KNX-Treiber kommt knxd, als KNX Gateway wird das SCN-IP000.02 von MDT verwendet.
Gibt es einen fertiges Docker Image mit FHEM und KNXD, oder muss man sich hier selbst etwas zusammen basteln?

Danke & Grüße
NehCoy


Titel: Aw: Alles in Docker
Beitrag von: erwin am 28 Dezember 2023, 15:26:14
Hi,

Zu Docker kann ich nichts sagen, keine Erfahrung... evtl. diesen Teil der Frage nochmal hier (https://forum.fhem.de/index.php?topic=89745.0) stellen.

Ad KNX: der SCN-IP000.02 von MDT eignet sich auch für das KNXIO-Modul - mode H, falls dein restliches FHEM wenig Latenzen hat.
Damit würde die Notwendigkeit von knxd wegfallen. Weitere Infos im Wiki - KNXIO.
l.g. erwin
Titel: Aw: Alles in Docker
Beitrag von: Otto123 am 28 Dezember 2023, 16:34:57
Hi,

Zitat von: NehCoy am 28 Dezember 2023, 11:48:58Mein erstes Vorhaben ist nun FHEM zusammen mit KNX in einem Docker Container laufen zu lassen.

meine Meinung: wenn es einen KNX Container gibt oder KNX nichts außer einer Definition in FHEM braucht (ich  kenne mich damit nicht aus) dann kann man FHEM im Docker laufen lassen. Wenn man für KNX auf Systemebene was machen muss, würde ich das sein lassen.
mW ist im hier gepflegten FHEM Docker Image zunehmend weniger spezielles drin, sondern nur das was die FHEM Module so brauchen. Nachinstallation durch den user widerspricht Docker ...

Alternative: LXC, VM oder eigenes Dockerfile (nur wenn man die ganze Geschichte von Docker wissen will :) )

Gruß Otto
Titel: Aw: Alles in Docker
Beitrag von: erwin am 30 Dezember 2023, 10:41:10
Hi Otto,
evtl. zur Klärung der Kommunikation: FHEM -> (knxd )-> KNX-GW -> KNX-Bus...
FHEM Modul KNXIO kann in verschiedenen Arten/Protokollen mit dem KNX-Bus kommunizieren:
1) direct - mode H - mit einem KNX-GW - UDP- Protokoll
2) direkt - mode M - mit einem KNX-GW - multicast  , falls das KNX-GW multicast unterstützt
3) über den knxd daemon - mit multicast, TCPIP, oder unix-socket
   der knxd ist ein "router" für die KNX msgs , kann seinerseits via serial/USB, multicast od. udp mit einem/mehreren KNX-GW's.

Ein KNX-GW ist ein Stück Hardware, das einerseits eine Bus-Schnittstelle hat und andererseits (abhängig von Produkt) Ethernet oder USB/Seriell mit einem/mehreren host kommuniziert.   

ich habe versucht im wiki: KNXIO das schematisch darzustellen.

Meine Meinung:
Wenn schon docker, dann FHEM-docker möglichst unverändert, UND einen knxd docker.. (wobei google findet nur ein knxd docker file und das ist schon älter).
Wie schon im vorigen post erwähnt, Necoy braucht den knxd nicht unbedingt, voausgesetzt sein FHEM läuft "rund"....
l.g. erwin
Titel: Aw: Alles in Docker
Beitrag von: ThoTo am 31 Dezember 2023, 19:02:03
Das ist mein Dockerfile für knxd - habe das Setup so seit einiger Zeit problemlos im Einsatz.

FROM alpine:3.16.0 AS build

MAINTAINER ThoTo

RUN apk update
RUN apk add --no-cache build-base gcc abuild binutils binutils-doc gcc-doc git libev-dev automake autoconf libtool argp-standalone linux-headers libusb-dev cmake cmake-doc dev86 msgpack-c-dev

RUN git clone https://github.com/knxd/knxd.git /knxd

WORKDIR /knxd

RUN git checkout v0.14
RUN ./bootstrap.sh
RUN ./configure --disable-systemd --enable-eibnetip --enable-eibnetserver --enable-eibnetiptunnel
RUN mkdir /knxd/src/include/sys && ln -s /usr/lib/bcc/include/sys/cdefs.h /knxd/src/include/sys
RUN make



FROM alpine:3.16.0 AS prod

RUN apk update && apk add --no-cache libusb libev libstdc++

RUN mkdir /knxd

COPY --from=build /knxd/src/server/knxd /usr/bin
COPY --from=build /knxd/src/server/knxd_args /usr/bin

CMD ["knxd", "/knxd.ini"]

LG Thomas
Titel: Aw: Alles in Docker
Beitrag von: NehCoy am 01 Januar 2024, 15:01:04
Hallo zusammen (und erstmal noch alles Gute für 2024!)

Danke für eure Rückmeldungen.
Also ich habe knxd weder im FHEM Container, noch seperat zum laufen bekommen.

Das Dockerfile von #ThoTo ist erstmal vergleichbar mit diesem Projekt: https://github.com/michelde/knxd-docker/blob/main/Dockerfile

Ein Wechsel von knxd auf knxio war aber erstmal Problemlos möglich. Aktuell funktioniert hier der Grundaufbau.
Wie sich das Timing ändert, wenn so langsam meine Datenbank befüllt wird, die in einem zweiten Container läuft, muss man abwarten.

Mich plagt gerade erstmal ein Routing-Problem mit nginx. Vielleicht habt ihr hier eine Idee?
Siehe: https://forum.fhem.de/index.php?topic=136450.0

Danke und viele Grüße
NehCoy
Titel: Aw: Alles in Docker
Beitrag von: erwin am 01 Januar 2024, 20:12:10
ZitatDas Dockerfile von #ThoTo ist erstmal vergleichbar...
...beide Beispiele compilieren den knxd, wenn ich das richtig interpretiere.
Für debian systeme ist das nicht (mehr) nötig,
knxd , knxd-tools ist als deb package verfügbar.
l.g. erwin
Titel: Aw: Alles in Docker
Beitrag von: hajo23 am 01 Januar 2024, 20:24:38
Weiß nicht, ob es Dir hilft. Ich habe vor drei Jahren einen eigenen FHEM container auf einem PI 3 erstellt. Ich glaube Buster war damals aktuell. Der dient mir noch immer als Testumgegbung und läuft bis heute ohne Probleme. Außer der etwas höheren Speicherauslastung sind mir bisher keine nennenswerten Performanceunterschiede im Vergleich zum "Original" aufgefallen. Es läuft nebenbei noch ein MariaDb-Container und einer als Unifi WLAN-Controller.

Ich habe u.a. auch ein MDT KNX-Gateway eingebunden. Das läuft im Container noch mit KNXTUL über Multicast (cpan IO::Socket::Multicast).
Titel: Aw: Alles in Docker
Beitrag von: ThoTo am 01 Januar 2024, 21:05:15
Zitat von: erwin am 01 Januar 2024, 20:12:10Für debian systeme ist das nicht (mehr) nötig,
knxd , knxd-tools ist als deb package verfügbar.
l.g. erwin

Danke für den Hinweis, war mir so nicht bekannt.

LG Thomas