Seite 2 von 3

Re: "Wiregate" Container

Verfasst: Di Jan 29, 2019 9:32 pm
von murelli146
tger977 hat geschrieben: Sa Sep 29, 2018 5:07 pm leider habe ich keine Ahnung wie man den Quellcode für Debian Stretch kompiltiert bekommt. Mit dem Sourcen und der cmake Konfig in git (https://github.com/J-N-K/knxdmxd) bekomme ich es nicht hin. Wenn mir aber jemand da einen Hnweis hat wie es geht würde ich mich da weiter dran versuchen.
Hallo Andi,

also Respekt vor deiner Hartnäckigkeit und deiner geleisteten Arbeit!

Beschäftige mich vorab was auf mich zukommt da hast du schon riesen Vorarbeit mit Edomi geleistet.

Bist du in Sachen knxdmxd weiter gekommen?

Habe mal kurz gegoogelt und bin auf folgenden Docker gestoßen: debian-lenny-i386
Kenne mich mit Docker kein bisschen aus. Aber wäre das eine Grundlage für den knxdmxd. Damals hat J-N-K noch ein testfile für lenny kompiliert das auch das 4bit dimmen unterstützt. Ist auf Github unter testing zu finden.

Schöne Grüße
Gernot

Re: "Wiregate" Container

Verfasst: Di Jan 29, 2019 9:58 pm
von tger977
Hallo Gernot,

schön Dich auch hier zu treffen.

leider bin ich mit dem knxdmxd nicht weitergekommen und habe es erstmal auch aufgegeben. Jan (J-N-K) hat mir im KNXUF gesagt daß er das Thema auch nicht mehr nutzt und damit auch nicht mehr weiter entwickelt und auch nicht mehr supportet. Schade, aber muss man akzeptieren. die 4bit dimmversion hatte ich auf dem wiregate erfolgreich am Laufen zusammen mit olad. Leider war das nicht immer stabil und ich musste öfter mal den olad neustarten (zum Schluss hat das eine eigene Logik erledigt, damit hatte ich Ruhe)

Den oben genannten Dockercontainer hab ich auch nicht zum Laufen gebracht.

Ich habe mein Nano USB Adapter nun über den EDOMI LBS im Einsatz und damit vom Wiregate wegbekommen. Der hat aber die Einschränkung daß man nicht mehr die ganzen tollen Farbübergänge und Dimmverläufe hinbekommt. Mir reicht derzeit aber das Ansteuern von Dimmwerten und damit von festen Farben aus, den Rest mit einfachen Farbverläufen, Zeitsteuerung und co mach ich mit EDOMI Logik. Nicht wirklich schön aber es funktioniert bisher 100% stabil!

Re: "Wiregate" Container

Verfasst: Di Jan 29, 2019 10:58 pm
von murelli146
Andi,
Danke für deine rasche Rückmeldung.

Bin auf den knxdmxd angewiesen, dann werde ich mich auch mal dahinter klemmen und im schlimmsten Fall macht mein Wiregate knxdmxd.

Ich trenne mich nur ungern vom knxdmxd da er über IP mit der E1.31 Bridge sowas von gut läuft, sehr einfach zum konfigurieren und zu erweitern ist.
Mittlerweile schon 7 Jahre im Einsatz.

Re: "Wiregate" Container

Verfasst: Mi Jan 30, 2019 10:53 am
von tger977
Das wär ja toll, wenn der knxdmxd weiterlaufen würde auf dem TW. Ich bin halt am alten Debian gescheitert und hab keine Ahnung wie man aus den Git Sourcen eine Version für die neueren Linux Versionen gebaut bekommt...

Re: "Wiregate" Container

Verfasst: Mi Jan 30, 2019 11:13 am
von StefanW
Ihr würdet mir sehr helfen, wenn ihr im Thread über die Features des DMX-Dimmerns die funktionen des knxdmxd reinschreiben würdet, weil dann können wir sehen, das wir das berücksichtigen.

Und ein püaar Erklärungen, weil 4 Bit dimmen kenne ich nicht

Stefan

Re: "Wiregate" Container

Verfasst: Mi Jan 30, 2019 11:22 am
von Dragonos2000
4 Bit dimmen ist doch relatives dimmen... (Step Up/Down und Stop)

Re: "Wiregate" Container

Verfasst: Mi Jan 30, 2019 2:04 pm
von murelli146
tger977 hat geschrieben: Mi Jan 30, 2019 10:53 am Das wär ja toll, wenn der knxdmxd weiterlaufen würde auf dem TW. Ich bin halt am alten Debian gescheitert und hab keine Ahnung wie man aus den Git Sourcen eine Version für die neueren Linux Versionen gebaut bekommt...
Habe gestern eine Debian 9 VM aufgesetzt und habe mir die Zähne mit dem CMake ausgebissen.
Null Ahnung, naja jetzt nicht mehr ganz.
Das Problem mit json-c habe ich lösen können, kann aber nicht mehr genau sagen wie. Habe mir Notizen gemacht und werde am ende der reise das nochmal auf einer frischen VM versuchen.
Dann trat dasselbe Problem mit uuid auf das aber mit "apt-get install uuid-dev" schnell gelöst war.

Und CMake lief fehlerfrei durch. :dance: :dance: :dance:

Ergebnis:

Code: Alles auswählen

root@debian:~/projekt/knxdmxd/src/build# cmake ../
-- Found json_c
-- Found eibclient
-- Found pthread
-- Found uuid
-- Configuring done
-- Generating done
-- Build files have been written to: /root/projekt/knxdmxd/src/build
:hand:

Aber kein bin im Ordner?

Code: Alles auswählen

-rw-r--r-- 1 root root 17345 Jän 30 11:59 CMakeCache.txt
drwxr-xr-x 6 root root  4096 Jän 30 12:24 CMakeFiles			DIR
-rw-r--r-- 1 root root  1367 Jän 30 11:59 cmake_install.cmake
-rw-r--r-- 1 root root  4790 Jän 30 12:24 Makefile
Naja aber schon etwas weiter.
Muss nur noch herausfinden wie es weiter geht.

Wie wird das makefile gehandhabt?

@StefanW mach ich gleich wenn ich knxdmx.bin habe ;)

Schöne Grüße
Gernot

Hinzugefügt nach 41 Minuten 32 Sekunden:
So hab mich doch getraut make auszuführen.
Folgende Probleme:

Code: Alles auswählen

root@debian:~/projekt/knxdmxd/src/build# make
Scanning dependencies of target knxdmxd
[ 50%] Building C object CMakeFiles/knxdmxd.dir/knxdmxd.c.o
/root/projekt/knxdmxd/src/knxdmxd.c: In function ‘cue_processor’:
/root/projekt/knxdmxd/src/knxdmxd.c:577:74: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
                   "cue_processor: cuelist %s will advance via link from %d to cue %d ",
                                                                          ^
/root/projekt/knxdmxd/src/knxdmxd.c:577:84: warning: format ‘%d’ expects argument of type ‘int’, but argument 5 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
                   "cue_processor: cuelist %s will advance via link from %d to cue %d ",
                                                                                    ^
/root/projekt/knxdmxd/src/knxdmxd.c:583:71: warning: format ‘%d’ expects argument of type ‘int’, but argument 5 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
                   "cue_processor: %lu cuelist %s will advance to cue %d ",
                                                                       ^
/root/projekt/knxdmxd/src/knxdmxd.c: In function ‘knx_receiver’:
/root/projekt/knxdmxd/src/knxdmxd.c:728:45: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
                     "knx_receiver: trigger %u (GA:%u) triggered target %u (type %u)",
                                             ^
/root/projekt/knxdmxd/src/knxdmxd.c:728:73: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 5 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
                     "knx_receiver: trigger %u (GA:%u) triggered target %u (type %u)",
                                                                         ^
/root/projekt/knxdmxd/src/knxdmxd.c:784:23: error: ‘FALSE’ undeclared (first use in this function)
                       FALSE;
                       ^~~~~
/root/projekt/knxdmxd/src/knxdmxd.c:784:23: note: each undeclared identifier is reported only once for each function it appears in
/root/projekt/knxdmxd/src/knxdmxd.c:801:23: error: ‘TRUE’ undeclared (first use in this function)
                       TRUE;
                       ^~~~
/root/projekt/knxdmxd/src/knxdmxd.c: In function ‘load_config’:
/root/projekt/knxdmxd/src/knxdmxd.c:1147:53: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
   syslog(LOG_DEBUG, "load_config: trying to import %d channel(s)",
                                                     ^
/root/projekt/knxdmxd/src/knxdmxd.c:1173:54: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
           "load_config: skipping channel definition %d, missing name or DMX",
                                                      ^
/root/projekt/knxdmxd/src/knxdmxd.c:1180:83: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
           "load_config: could not allocate memory for name of channel definition %d",
                                                                                   ^
/root/projekt/knxdmxd/src/knxdmxd.c:1246:58: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
   syslog(LOG_DEBUG, "load_config: allocating memory for %d universe(s)",
                                                          ^
/root/projekt/knxdmxd/src/knxdmxd.c:1292:53: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
   syslog(LOG_DEBUG, "load_config: trying to import %d dimmer(s)", dimmer_num);
                                                     ^
/root/projekt/knxdmxd/src/knxdmxd.c:1305:26: error: ‘FALSE’ undeclared (first use in this function)
     dimmers[i].process = FALSE; // disable processing
                          ^~~~~
/root/projekt/knxdmxd/src/knxdmxd.c:1316:54: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
           "load_config : skipping dimmer definition %d, missing name, channels or GA",
                                                      ^
/root/projekt/knxdmxd/src/knxdmxd.c:1336:53: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
           "load_config: skipping dimmer definition %d, invalid channel %s",
                                                     ^
/root/projekt/knxdmxd/src/knxdmxd.c:1425:53: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
   syslog(LOG_DEBUG, "load_config: trying to import %d scene(s) ", scene_num);
                                                     ^
/root/projekt/knxdmxd/src/knxdmxd.c:1473:53: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
   syslog(LOG_DEBUG, "load_config: trying to import %d cuelist(s)",
                                                     ^
/root/projekt/knxdmxd/src/knxdmxd.c:1540:49: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
             "load_config: making link from cue %d to cue %d in cuelist %s",
                                                 ^
/root/projekt/knxdmxd/src/knxdmxd.c:1540:59: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
             "load_config: making link from cue %d to cue %d in cuelist %s",
                                                           ^
/root/projekt/knxdmxd/src/knxdmxd.c:1544:49: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
             "load_config: making link from cue %d in cuelist %s failed (link not found)",
                                                 ^
/root/projekt/knxdmxd/src/knxdmxd.c:1551:44: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
       syslog(LOG_DEBUG, "load_config: cue %d %s, %d, link %d", j, cuelists[i].cues[j].name, cuelists[i].cues[j].is_link, cuelists[i].cues[j].cue_link);
                                            ^
/root/projekt/knxdmxd/src/knxdmxd.c:1551:60: warning: format ‘%d’ expects argument of type ‘int’, but argument 6 has type ‘size_t {aka long unsigned int}’ [-Wformat=]
       syslog(LOG_DEBUG, "load_config: cue %d %s, %d, link %d", j, cuelists[i].cues[j].name, cuelists[i].cues[j].is_link, cuelists[i].cues[j].cue_link);
                                                            ^
CMakeFiles/knxdmxd.dir/build.make:62: die Regel für Ziel „CMakeFiles/knxdmxd.dir/knxdmxd.c.o“ scheiterte
make[2]: *** [CMakeFiles/knxdmxd.dir/knxdmxd.c.o] Fehler 1
CMakeFiles/Makefile2:67: die Regel für Ziel „CMakeFiles/knxdmxd.dir/all“ scheiterte
make[1]: *** [CMakeFiles/knxdmxd.dir/all] Fehler 2
Makefile:83: die Regel für Ziel „all“ scheiterte
make: *** [all] Fehler 2


Re: "Wiregate" Container

Verfasst: Mi Jan 30, 2019 7:13 pm
von murelli146
Ich kann einfach nicht aufgeben ;)

@tger977 Vieleicht kommst du mal zum testen, habe noch keinen TW :crying-yellow:

Das kompilieren sollte ich jetzt auch weiterhin draufhaben. Werde mal die letzte Nacht Revue passieren lassen und die Notizen ordnen. ;)

Debian 9 x64 knxdmxd

Lässt sich starten, scheint zu funktionieren, aber noch ungetestet.
Ich hoffe die 4bit Dimmfunktion ist dabei ;)

Schöne Grüße
Gernot

Re: "Wiregate" Container

Verfasst: Mi Jan 30, 2019 8:23 pm
von tger977
StefanW hat geschrieben: Mi Jan 30, 2019 11:13 am Und ein püaar Erklärungen, weil 4 Bit dimmen kenne ich nicht
Hallo Stefan,

"4bit Dimmen" heisst daß man über DPT3.007 (4 bit Länge) in der ETS z.B. über KNX Taster schrittweise dimmen kann...

Hinzugefügt nach 7 Minuten 32 Sekunden:
murelli146 hat geschrieben: Mi Jan 30, 2019 7:13 pm Ich kann einfach nicht aufgeben ;)
kenn ich irgendwie... Nur ich bin dann wirklich nicht weiter gekommen :evil:
murelli146 hat geschrieben: Mi Jan 30, 2019 7:13 pm Vieleicht kommst du mal zum testen, habe noch keinen TW :crying-yellow:
Danke! :clap:
aber damit baust Du nun Druck und Neugier in mir auf :shock: Hoffe Dein TW kommt auch bald :pray:
Ich versuch mir das mal anzusehen und auszuprobieren, aber im Moment hab ich leider viel um die Ohren und wenig Zeit...

Re: "Wiregate" Container

Verfasst: Do Jan 31, 2019 11:35 am
von murelli146
tger977 hat geschrieben: Mi Jan 30, 2019 8:23 pm.
Danke! :clap:
aber damit baust Du nun Druck und Neugier in mir auf :shock: Hoffe Dein TW kommt auch bald :pray:
Ich versuch mir das mal anzusehen und auszuprobieren, aber im Moment hab ich leider viel um die Ohren und wenig Zeit...
Bei mir ist der Druck nun weg, knxdmxd bekommt man wohl auch auf neueren Systemen bzw. im Docker zum laufen. Kann ja jetzt Entspannt warten bis der TW ankommt. Zwischenzeitlich werde ich mich etwas mit Docker auseinander setzen, wollte ich immer schon mal, TW ist jetzt der Ansporn.

Habe gestern meine Notizen geordnet und ein kleines HowTo (naja eher ein Komandozeilenablauf) erstellt, konnte letztendlich einige Dinge die durch etliche versuche schließlich geklappt haben nicht mehr nachvollziehen wie oder warum. Bin halt mit dem Vorschlaghammer an das Thema gegangen.

Hab mir dann wirklich mit einer frischen VM von vorne begonnen und alles mit geschrieben.

Hier meine Notizen zu falls, es mal jemand braucht:

HowTo knxdmxd kompilieren

Code: Alles auswählen

Ersteller: murelli146 (Gernot Klobucaric)
Datum: 30.01.2019

VirtualBox VM erstellen.
Debian 9.6.0 x64 Netinstall
8GB Ram 2 Kerne Netzwerkbrücke
Zusatzsoftware nur SSH Server und Standard Systemwerkzeuge

Infos:
https://blog-en.openalfa.com/eibd-installation-and-usage
https://preshing.com/20170511/how-to-build-a-cmake-based-project/
https://github.com/json-c/json-c
https://gitlab.kitware.com/cmake/community/wikis/doc/tutorials/How-To-Find-Libraries


root aktiviert
	"sudo su"
	"nano /etc/ssh/sshd_config"
		PermitRootLogin yes (Voreinstellung Scretch: "PermitRootLogin prohibit-password")

"apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade"
"apt-get install build-essential"
"apt install git"
"apt-get install cmake"
"apt-get install libtool"
"apt-get install doxygen"
"apt-get install autoconf"
"apt-get install uuid-dev"

knxdmxd installieren (eibd,json-c und uuid nach und nach installieren und sehen wo es hackt)
	"git clone https://github.com/J-N-K/knxdmxd.git" im root Verzeichnis
	"cd knxdmxd/src/"
	"mkdir build"
	"cd build/"
	"cmake ../"
	"make" > Errors in knxdmxd.c > Zeile 784,801,1305, True in 1 und False in 0 ändern > OK 
	"make"
	Der frisch kompilierte knxdmxd liegt nun im build Verzeichnis
	"cp knxdmxd /usr/bin/"
	"knxdmxd -h" Sollte die Hilfe anzeigen
	
	Zum zwischendurch testen und Ausgabe lesen:
		"cd /root/knxdmxd/src/build/"
		"cmake ../"


eibd Installation als root im root Verzeichnis:
	"mkdir eibd"
	"cd eibd"
	"wget http://www.auto.tuwien.ac.at/~mkoegler/pth/pthsem_2.0.8.tar.gz"
	"tar zxvf pthsem_2.0.8.tar.gz"
	"cd pthsem-2.0.8/"
	"./configure"
	"make"
	"make install"
	"cd /root/eibd/"
	"wget "http://downloads.sourceforge.net/project/bcusdk/bcusdk/bcusdk_0.0.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fbcusdk%2F&ts=1334692790&use_mirror=freefr" -O bcusdk_0.0.5.tar.gz"
	"tar -zxvf bcusdk_0.0.5.tar.gz"
	"cd bcusdk-0.0.5/"
	"export LD_LIBRARY_PATH=/usr/local/lib"
	"./configure --enable-onlyeibd --enable-eibnetipserver --enable-ft12"
	"ln -s /usr/local/lib/libeibclient.so.0 /usr/lib/libeibclient.so.0"
	"ln -s /usr/local/lib/libeibclient.so.0 /lib/libeibclient.so.0"
	"make"
	"make install"
	"eibd --help" zum testen 
	"cd"
	
	
Json-c installieren
	Prüfen ob vorhanden: "gcc","libtool" incl. /usr/bin/libtoolize , "autoconf", "automake", "dxygen"
	Beispiel: "dpkg -l 'autoconf'" Prüfen und sonst mit "apt-get install autoconf" nachinstallieren
	"git clone https://github.com/json-c/json-c.git"
	"cd json-c"
	"sh autogen.sh"
	"./configure"
	"nano Makefile"
		Am Anfang einfügen:
		CFLAGS += $(shell pkg-config --cflags json-c)
		LDFLAGS += $(shell pkg-config --libs json-c)
	"make"
	"make install"
	Test:
		"make check"
		"make USE_VALGRIND=0 check"
	"cd /usr/local/lib/"
	"ln -s libjson-c.so.4.0.0 libjson.so"
	"ln -s libjson-c.so.4.0.0 libjson.so.4"
	"cd /usr/local/include/"
	"ln -s json-c/ json"
Schöne Grüße
Gernot