Alles in Docker

Begonnen von NehCoy, 28 Dezember 2023, 11:48:58

Vorheriges Thema - Nächstes Thema

NehCoy

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



erwin

Hi,

Zu Docker kann ich nichts sagen, keine Erfahrung... evtl. diesen Teil der Frage nochmal hier 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
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

erwin

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
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

ThoTo

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
KNX | MQTT | Docker | Sonos | FHEMapp

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)

NehCoy

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

erwin

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
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

hajo23

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).

ThoTo

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
KNX | MQTT | Docker | Sonos | FHEMapp

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)