Das Forum hat mir schon soviel gegeben, also gebe ich mal etwas zurück.
Vorerst ist die Anleitung nur für einfache Temperaturfühler (DS18B20) da ich sonnst keine besitze.
Benötigte Hardware
-Raspberry PI (mit allem Zubehör was man benötigt)
-1 Wire Sensoren DS18B20
-1Stk 4,7kOhm Wiederstand
-Netzwerkanbindung
-KNX (in meinem Fall über eine MDT-Router)
-bei langen Leitungslängen, vielen Sensoren oder erhöhter Stabilität empfiehlt sich das
Kostenpunkt für 15 Sensoren + Raspberry PI ca 100€
Raspberry PI Einrichten
Das Ganze läuft bei mir jetzt ca ein Halbes Jahr ohne Probleme zwischendurch wurde zwar der Code der PHP datei noch etwas verbessert und neu hochgeladen. um ganz sicherzugehen das es immer gut funktioniert kann man noch
	
	eingeben das führt dazu das der Raspberry PI jeden tag einmal Neugestartet wird
der Wert den die Sensoren senden wird im Übrigen nicht auf Gültigkeit überprüft sondern direkt gesendet
zum schluss noch wie das bei mir aussieht ich hab die ganze sache mit dem Pegelwander gebaut photo_2017-02-27_15-29-40.jpg
photo_2017-02-27_15-29-49.jpg
		
							
						
					Vorerst ist die Anleitung nur für einfache Temperaturfühler (DS18B20) da ich sonnst keine besitze.
Benötigte Hardware
-Raspberry PI (mit allem Zubehör was man benötigt)
-1 Wire Sensoren DS18B20
-1Stk 4,7kOhm Wiederstand
-Netzwerkanbindung
-KNX (in meinem Fall über eine MDT-Router)
-bei langen Leitungslängen, vielen Sensoren oder erhöhter Stabilität empfiehlt sich das
Kostenpunkt für 15 Sensoren + Raspberry PI ca 100€
Raspberry PI Einrichten
- Raspian Light Dowloaden
 - Win32 Imager Downloade
 - Image auf die SD Karte Schreiben
 
- MicroSD-Kartenlaufwerk auswählen
 - Image Datei auswählen
 - Image Datei schreiben
 - Im laufwerk der MicroSD Karte eine datei erstellen die ssh heißt ohne dateiendung und ohne inhalt.
 
- Karte in den Raspberry PI stecken und mit dem Stromnetz verbinden
 - Kitty downloaden
 - Die IP Adresse des Raspberry PI im Router herausfinden.
 - Kitty Öffnen
 - kitty.jpg
 - Unter Hostname (IP address) tragt ihr die zuvor im Router nachgeschaute IP Adresse ein und klickt auf Open
 - das nächste Dialog mit OK bestätigen und username "pi" und passwort "raspberry" ohne Anführungszeichen eingeben
 - 
Code:
sudo raspi-config
 - dort 
auswählenCode:
Expand Filesystem
 - 
eingebenCode:
sudo apt-get update && apt-get upgrade -y
 - 
Code:
sudo nano /boot/config.txt
 - am ende der datei 
einfügen mit strg+x beenden und y speichern und nochmal mit enter bestätigenCode:
dtoverlay=w1-gpio,gpiopin=4,pullup=on
 - 
Code:
sudo modprobe w1-gpio pullup=1 && sudo modprobe w1-therm && reboot
 - Schritt 8-11 nach dem Neustart wiederholen
 - 1-Wire Sensoren Anschließen 	gpio_1wire.gif
C - 
Code:
ls -al /sys/bus/w1/devices
 - dort sollte es dann etwa so aussehn w1.jpg
 - die Nummern die mit 28- Anfangen sind eure ID´s der Sensoren, diese ID´s müsst ihr euch speichern werden später noch gebraucht. ihr könnt auch die Sensoren einzeln anschließen und immer ca 10 sekunden warten dann bekommt ihr die ID´s einzeln und wisst welchem Sensor welche ID gehört.
 - Die Nächsten befehle nacheinander eingeben
 - 
Code:
sudo apt-get install debhelper cdbs automake libtool libusb-1.0-0-dev git-core build-essential libsystemd-daemon-dev dh-systemd libev-dev cmake
 - 
Code:
cd /home/pi
Code:git clone https://github.com/knxd/knxd.git
Code:cd knxd
Code:dpkg-buildpackage -b -uc
Code:cd ..
Code:sudo dpkg -i knxd_*.deb knxd-tools_*.deb
 - Jetzt muss KNXD noch eingestellt werden 
Code:
sudo nano /etc/knxd.conf
 - In der Zeile wo KNXD_OPTS folgendes einfügen ACHTUNG!!! muss auf euer System angepasst werden
 - 
Code:
KNXD_OPTS="-e "PhysikalischeAddr" -E "PhysikalischerAddrBereich" -u /tmp/eib -b ip:"MulticastAddr."
 - Beispiel:
 - 
Code:
KNXD_OPTS="-e 1.2.1 -E 1.2.2:1 -u /tmp/eib -b ip:224.0.23.12"
 - 
Code:
/etc/init.d/knxd restart
 - Jetzt müssen wir noch PHP installieren
 - 
Code:
sudo apt-get install php5
 - 
Code:
sudo nano /var/www/html/temperatur.php
 - Folgenden Code Einfügen 
mit strg+x beenden und y speichern und nochmal mit enter bestätigenPHP-Code:
<?php
//Umrechnung in KNX DPT9
function DECtoDPT9($DEC) {
$DEC *= 100;
$dpt9 = 0;
$exponent = 0;
if ($DEC < 0)
{
$dpt9 = 0x08000;
$DEC = -$DEC;
}
while ($DEC > 0x07ff)
{
$DEC >>= 1;
$exponent++;
}
if ($dpt9 != 0) $DEC = -$DEC;
$dpt9 |= $DEC & 0x7ff;
$dpt9 |= ($exponent << 11) & 0x07800;
return strtoupper(chunk_split(str_pad(dechex($dpt9 & 0x0ffff),4,'0',STR_PAD_LEFT),2,' '));
}
//#####################Einstellungen#################################################
// Einstellungen #
// 1Wire ID #
$id = "28-0115a4d134ff"; #
// Gruppenadresse #
$group_address = "0/3/10"; #
// Unterschied bei dem Gesendet wird #
$deltat = 0.5; #
// Anzahl der durchläufe bis Wert OHNE aenderung gesendet wird #
$maxruntime = 100; #
// Pause in "s" zwischen Durchlaufen #
$pause = 5; #
//###################################################################################
//Schleifenfunktion
while (true)
{
// Datei abfragen
$last_line = exec("cat /sys/bus/w1/devices/".$id."/w1_slave");
// Gewünschte Information extrahieren
$value = explode("t=", $last_line);
// Formatieren
$formatted_value = number_format($value[1] / 1000, 2, ".", ",");
// Konvertieren
$converted_value = DECtoDPT9($formatted_value);
// Vergleich letzer Gesndeter Wert mit Aktuellem
if(empty($old_value) OR abs($formatted_value-$old_value) > $deltat) {
// Auf Bus schreiben
exec('/usr/lib/knxd/groupwrite ip:127.0.0.1 '.$group_address.' '.$converted_value);
// Alter Wert Zwischenspeichern
$old_value = $formatted_value;
// Runtime Zurücksetzen
$runtime = 0;
}
if ($runtime > $maxruntime) {
// Auf Bus schreiben
exec('/usr/lib/knxd/groupwrite ip:127.0.0.1 '.$group_address.' '.$converted_value);
// Runtime Zurücksetzen
$runtime = 0;
}
++$runtime;
// Debug-Ausgabe
echo("Ausgelesender Wert: ".$value[1])."\n";
echo("Formatierter Wert: ".$formatted_value)."\n";
echo("Konvertierter Wert: ".$converted_value)."\n";
echo("Runtime : ".$runtime)."\n";
echo("Letzer Gesndeter Wert : ".$old_value)."\n";
sleep($pause);
}
?> - Unter den Einstellungen bitte noch eigene ID, Gruppenadresse usw eintragen.
 - 
Code:
php /var/www/html/temperatur.php
 - Jetzt sollte das ganze Folgendermaßen aussehen php.jpg
 - mit STRG+C das ganze wieder beenden
 - um das ganze beim Systemstart auch auszuführen muss folgendes 
mit 2 und Enter bestätigenCode:
sudo crontab -e
 - am ende der Datei folgendes eintragen @reboot php /var/www/html/temperatur.php
 - Jetzt wird nach jedem reboot die Datei einmalig ausgeführt!
 
Das Ganze läuft bei mir jetzt ca ein Halbes Jahr ohne Probleme zwischendurch wurde zwar der Code der PHP datei noch etwas verbessert und neu hochgeladen. um ganz sicherzugehen das es immer gut funktioniert kann man noch
Code:
	
	sudo crontab -e
Code:
	
	@daily /sbin/shutdown -r now
der Wert den die Sensoren senden wird im Übrigen nicht auf Gültigkeit überprüft sondern direkt gesendet
zum schluss noch wie das bei mir aussieht ich hab die ganze sache mit dem Pegelwander gebaut photo_2017-02-27_15-29-40.jpg
photo_2017-02-27_15-29-49.jpg


 habs schon korregiert 
							
						
Kommentar