<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Installation &#8211; SmartHomeNG | smarthome knx homematic mqtt hue 1wire home automation</title>
	<atom:link href="https://www.smarthomeng.de/tag/installation/feed" rel="self" type="application/rss+xml" />
	<link>https://www.smarthomeng.de</link>
	<description>Die Device Integrations-Plattform für Dein Smart Home</description>
	<lastBuildDate>Mon, 02 Apr 2018 20:34:04 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.5</generator>

<image>
	<url>https://www.smarthomeng.de/wp-content/uploads/global/logo_small_152x152-150x150.png</url>
	<title>Installation &#8211; SmartHomeNG | smarthome knx homematic mqtt hue 1wire home automation</title>
	<link>https://www.smarthomeng.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>knxd &#8211; Der KNX Daemon</title>
		<link>https://www.smarthomeng.de/knxd-der-knx-daemon</link>
					<comments>https://www.smarthomeng.de/knxd-der-knx-daemon#respond</comments>
		
		<dc:creator><![CDATA[Bernd Meiners]]></dc:creator>
		<pubDate>Sun, 13 Aug 2017 23:14:46 +0000</pubDate>
				<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[KNX]]></category>
		<category><![CDATA[Zusatzsoftware]]></category>
		<guid isPermaLink="false">https://www.smarthomeng.de/?p=341</guid>

					<description><![CDATA[knxd v0.12 herunterladen, bauen und installieren Der knxd implementiert Zugriffe auf verschiedenste Schnittstellen zum KNX Bus (z.B. IP-Router, IP-Schnittstelle, USB-Schnittstelle, etc.) und bietet dafür eine dokumentierte Softwareschnittstelle für Programme an. SmartHomeNG nutzt den knxd über seine TCP/IP Schnittstelle um Daten auf den KNX Bus zu schreiben oder zu lesen. Der<a class="moretag" href="https://www.smarthomeng.de/knxd-der-knx-daemon"> Weiterlesen&#8230;</a>]]></description>
										<content:encoded><![CDATA[<h1>knxd v0.12 herunterladen, bauen und installieren</h1>
<p>Der knxd implementiert Zugriffe auf verschiedenste Schnittstellen zum KNX Bus (z.B. IP-Router, IP-Schnittstelle, USB-Schnittstelle, etc.) und bietet dafür eine dokumentierte Softwareschnittstelle für Programme an. SmartHomeNG nutzt den knxd über seine TCP/IP Schnittstelle um Daten auf den KNX Bus zu schreiben oder zu lesen.</p>
<p>Der Einsatz von knxd (oder der Vorgänger Software eibd) ist Voraussetzung um das KNX Plugin von SmartHomeNG nutzen zu können.</p>
<p>Wer keinen KNX-Bus einsetzt, kann die Installation von knxd auslassen. Für den Fall, das die knxd Installation ausgelassen wird, kann es sein, das für weitere Module wie SmartHomeNG einige Pakete fehlen. Diese müßten dann per <strong>sudo apt-get install paketname</strong> nachinstalliert werden.</p>
<p>Grundsätzlich findet sich auf der <a href="https://github.com/knxd/knxd" title="https://github.com/knxd/knxd" rel="noreferrer">knxd-Seite</a> die Anleitung für die Installation. Auf der Github Seite kann unter <strong>Code</strong> immer der Branch ausgewählt werden. Jeder Branch hat sein eigenes Read.me. Support für knxd gibt es im knxd-Forum <a href="https://knx-user-forum.de/forum/projektforen/knxd">https://knx-user-forum.de/forum/projektforen/knxd</a></p>
<blockquote><p><strong>Wichtig:</strong> Der knxd wird derzeit aktiv weiterentwickelt. Ab Version 0.12.x ist pthsem nicht mehr notwendig und es wird libev eingesetzt. Wer genügend Wissen zum Testen hat ist herzlich eingeladen hier mitzuhelfen oder zu spenden. Auch bitte <strong>vor</strong> der Installation hier noch einen Blick auf <a href="https://github.com/knxd/knxd" title="https://github.com/knxd/knxd" rel="noreferrer">knxd-Seite</a> werfen um aktuelles nicht zu verpassen.</p>
<p>Diese Anleitung wird zwar in regelmäßigen Abständen aktualisiert aber eben nicht unbedingt wöchentlich oder gar täglich.</p></blockquote>
<p>Die folgenden Installationsschritte beziehen sich auf Version <strong>0.12</strong>.</p>
<h2>zusätzliche Pakete installieren</h2>
<p>Zunächst müssen für den Bau einige grundlegende Tools installiert werden:</p>
<pre><code class="language-bash">
sudo apt-get install git-core build-essential
</code></pre>
<p>debhelper-Erweiterung zur Behandlung von systemd-Dateien</p>
<pre><code class="language-bash">
sudo apt-get install dh-systemd
</code></pre>
<p>Erstellt automatisch configure-Skripte</p>
<pre><code class="language-bash">
sudo apt-get install autoconf
</code></pre>
<p>Generisches Skript zur Unterstützung von Bibliotheken</p>
<pre><code class="language-bash">
sudo apt-get install libtool
</code></pre>
<p>Bibliothek zum Programmieren von USB-Anwendungen ohne Kenntnis der Linux-Kernel-Interna</p>
<pre><code class="language-bash">
sudo apt-get install libusb-1.0-0-dev
</code></pre>
<p>Pkg-config ist ein System zur Verwaltung von Schaltern für die Übersetzung und Verknüpfung von Bibliotheken, das mit automake und autoconf arbeitet.</p>
<pre><code class="language-bash">
sudo apt-get install pkg-config
</code></pre>
<p>Die Bibliothek sd-daemon stellt eine Referenzimplementierung mehrerer APIs für neuartige Daemons bereit, wie sie vom Initialisierungssystem systemd implementiert werden</p>
<pre><code class="language-bash">
sudo apt-get install libsystemd-daemon-dev
</code></pre>
<p>Nun noch libev-dev installieren</p>
<pre><code class="language-bash">
sudo apt-get install libev-dev
</code></pre>
<h2>Quellcode laden, compilieren und ein Paket schnüren</h2>
<p>Zunächst den Quellcode für den knxd vom github laden und sicherstellen, das der 0.12 branch gewählt wird:</p>
<pre><code class="language-bash">
git clone https://github.com/knxd/knxd.git
cd knxd
git checkout v0.12
</code></pre>
<p>Dann übersetzen und das Paket schnüren:</p>
<pre><code class="language-bash">
dpkg-buildpackage -b -uc
</code></pre>
<p>Wichtig ist, das am Ende der Paketerstellung keine Fehler gemeldet wurden.</p>
<p>Sollte die Paketerstellung fehlerfrei ablaufen, dann kann das Paket nun noch installiert werden mit:</p>
<pre><code class="language-bash">
cd ..
sudo dpkg -i knxd_*.deb knxd-tools_*.deb
</code></pre>
<h2>knxd konfigurieren</h2>
<p>Als nächstes muß die Konfiguration des knxd für die zu verwendende Schnittstelle angepasst werden. Dazu muß bei Systemen mit systemd die Datei <strong>/etc/knxd.conf</strong> bearbeitet werden:</p>
<pre><code class="language-bash">
sudo nano /etc/knxd.conf
</code></pre>
<p>Die Originalzeile <strong>KNXD_OPTS=&#8220;-e 0.0.1 -E 0.0.2:8 -u /tmp/eib -b ip:&#8220;</strong> am besten auskommentieren und in der Zeile darunter dann die gewählten Parameter eintragen.</p>
<p>Details zu Schnittstellen finden sich auf der <a href="https://github.com/knxd/knxd" title="https://github.com/knxd/knxd" rel="noreferrer">Github-Seite vom knxd</a>. Das <strong>-c</strong> ist für den knxd eigenen Cache. Danach folgen die Optionen für die Verwendung der Schnittstelle:</p>
<ul>
<li>IP Schnittstelle: <strong>KNXD_OPTS=&#8220;-e 0.0.1 -E 0.0.2:8 -c -b ipt:<em>IP der knx Schnittstelle</em>&#8222;</strong></li>
<li>IP Router: <strong>KNXD_OPTS=&#8220;-e 0.0.1 -E 0.0.2:8 -c -b ip:<em>IP des knx Routers</em>&#8222;</strong></li>
<li>USB-Interface: Bitte <a href="https://github.com/knxd/knxd/tree/v0.12" title="https://github.com/knxd/knxd/tree/v0.12" rel="noreferrer">Wiki zum knxd</a> konsultieren.</li>
</ul>
<p>Es kann sein, das bei KNXD_OPTS hinter dem <strong>-c</strong> bei einigen Interfaces noch ein <strong>&#8211;send-delay=30</strong> eingefügt werden muß um Telegrammverlust bei hohen Lasten zu minimieren. Die 30 bedeutet dabei eine zusätzliche Wartezeit von 30msec. Es wird damit zwischen den Paketen eine kleine Pause eingelegt um ein überfahren der Schnittstelle zu vermeiden. Der Parameter <strong>&#8211;no-tunnel-client-queuing</strong> ist obsolet und sollte nicht mehr eingesetzt werden.</p>
<h2>knxd und systemd</h2>
<p>Um die Änderungen wirksam werden zu lassen, muß der knxd die neue Konfiguration noch berücksichtigen dazu muß er ggf. beendet und neu gestartet werden. Der knxd hat dazu zwei Einträge, zum einen <code>knxd.socket</code> der die normalerweise die Kommunikation über der Port 6720 übernimmt und der <code>knxd.service</code> der die restlichen Aufgaben übernimmt.</p>
<p>Zunächst beenden des knxd:</p>
<pre><code class="language-bash">
sudo systemctl stop knxd.socket
sudo systemctl stop knxd.service
</code></pre>
<p>Die Reihenfolge ist wichtig: beenden wir erst den knxd, kann ein Prozess genau dann einen Socket öffnen und der systemd startet ihn sofort wieder.</p>
<p>Um sicher zu gehen, das der knxd mit dem Systemstart auch gestartet wird muß dem systemd mitgeteilt werden das diese beiden Einträge auch eingeschaltet also <code>enabled</code> sind.</p>
<pre><code class="language-bash">
sudo systemctl enable knxd.service
sudo systemctl enable knxd.socket
</code></pre>
<p>Jetzt können wir den knxd starten mit</p>
<pre><code class="language-bash">
sudo systemctl start knxd.socket
sudo systemctl start knxd.service
</code></pre>
<p>Auch hier ist die Reihenfolge wichtig: Starten wir erst den Service, werden dem knxd die Sockets nicht vom systemd übergeben.</p>
<p>Mit den folgenden Kommandos kann geprüft werden, ob die beiden Einträge ordnungsgemäßt funktionieren:</p>
<pre><code class="language-bash">
sudo systemctl status knxd.socket
sudo systemctl status knxd.service
</code></pre>
<p>Wenn alles ok ist, dann sieht das etwa so aus:</p>
<pre><code class="language-bash">
$ sudo systemctl status knxd.service
● knxd.service - KNX Daemon
   Loaded: loaded (/lib/systemd/system/knxd.service; enabled)
   Active: active (running) since Sa 2016-08-13 10:03:27 CEST; 5 days ago
 Main PID: 30769 (knxd)
   CGroup: /system.slice/knxd.service
           └─30769 /usr/bin/knxd -c -b ipt:192.168.10.38

$ sudo systemctl status knxd.socket
● knxd.socket - KNX Daemon (socket)
   Loaded: loaded (/lib/systemd/system/knxd.socket; enabled)
   Active: active (running) since Sa 2016-08-13 10:03:23 CEST; 5 days ago
   Listen: /var/run/knx (Stream)
           [::]:6720 (Stream)
</code></pre>
<p>Die Funktion des knxd läßt sich z.B. testen mit einer Gruppenadresse (hier: 1/0/170) für einen Schaltaktor mit 1 oder 0.</p>
<pre><code class="language-bash">
knxtool groupswrite ip:localhost 1/0/170 1
</code></pre>
<p>Sollte sich jetzt nichts tun, dann gibt es irgendwo einen Fehler und alles muß noch einmal geprüft werden. Vielleicht ist der Neustart des knxd vergessen oder ein Build-Fehler übersehen worden.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.smarthomeng.de/knxd-der-knx-daemon/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
