In diesem Abschnitt werden die notwendigen Schritte erklärt, um den PI als HomeControl-Server einzurichten.

Dazu zählen die folgenden Schritte:

  • SD mit Raspbian-Image einrichten / aktualisieren
  • Netzwerkeinstellungen vornehmen
  • Apache/PHP/MySql einrichten
  • PhpMyAdmin installieren
  • Samba-Freigabe auf HttpDocs Verzeichnis einrichten
  • Webseite für die Steuerung herunterladen/konfigurieren
  • Datenbank einrichten
  • Cron-Jobs einrichten

 


 

 

Nach frisch geflashtem aktuellem Raspbian-Image zuerst im raspi-config die folgenden Punkte anpassen:

– SD-Speicher erweitern
– Grafikspeicher reduzieren
– Spracheinstellung, Zeitzone, Tastaturlayout
– Passwort setzen
– SSH aktivieren
– update > neustart

 

Update

sudo apt-get update
sudo apt-get upgrade

 

 

Netzwerkeinstellungen bearbeiten

sudo nano /etc/network/interfaces

Beispiel:

auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 192.168.1.50
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1

 

Damit man diese Einstellungen später in der Oberfläche anpassen kann passen wir noch die Rechte dazu an:

sudo chown pi:www-data /etc/network/interfaces 
sudo chmod 775 /etc/network/interfaces

 

 

Apache, PHP, MySQL
Zuerst installieren wir die benötigten Pakete für den Webserver und die Datenbank.

sudo apt-get install apache2 php5 mysql-server
sudo apt-get install mysql-client php5-mysql php5-mysql libapache2-mod-php5 libapache2-mod-perl2 php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-imap php5-ldap php5-mhash php5-mysql php5-odbc php-pear php-apc sendmail

Jetzt können wir das Rewrite Modul einrichten

sudo a2enmod rewrite
sudo service apache2 restart

Anschließend müssen wir noch das HttpRoot  festlegen. Dazu öffnen wir die entsprechende Konfiguration mit dem folgenden Befehl.

sudo vi /etc/apache2/sites-enabled/000-default.conf

In der Datei suchen wir im Block <VirtualHost *:80> den Eintrag „DocumentRoot“. Dieser muss auf „/var/www“ gesetzt sein. Sollte dieser Eintrag nicht existieren fügen Sie die folgende Zeile im oben genannten Block ein:

DocumentRoot /var/www

Nun fügen wir noch den Web-Benutzer als sudoer hinzu. Dazu rufen wir mit folgendem Kommando den Editor auf.

sudo visudo

Am Ende der Datei fügen wir die folgende Zeile ein:

www-data ALL=(ALL) NOPASSWD: ALL

 

 

Samba
Zuerst installieren wir für Windows-Freigaben benötigte Pakete und legen einen Benutzer „pi“ für den Samba-Zugriff an (Der Benutzer muss bereits im System existieren)

sudo apt-get install samba samba-common-bin
sudo smbpasswd -a pi

Nachdem der Benutzer angelegt wurde, richten wir die Freigabe des HttpDocs Verzeichniss ein, um später bequem über den Explorer darauf zugreifen zu können. Dazu bearbeiten wir die Datei /etc/samba/smb.conf.

sudo nano /etc/samba/smb.conf

In der Konfigurationsdatei fügen wir nun folgende Zeilen ein, um die Freigabe zu erstellen: 

[www] 
comment = Webserver HTTP-Docs 
read only = no 
locking = no 
path = /var/www 
guest ok = no

 

 

Webseite
Um den Quelltext der Webseite von Github herunter zu laden installieren wir git und clonen das entsprechende Repository.

sudo apt-get install git
cd /var/www
sudo rm * -R
sudo git clone https://github.com/CyborgOne/cybihomecontrol_ui.git --branch beta .

 

Da einige Änderungen im Beta gelandet sind die dort eigentlich nicht hingehören, müsstet Ihr nun den aktuellen Stand ein wenig zurück setzen. Das geht mit folgendem Befehl:

sudo git checkout beta
sudo git reset --hard 8045b627b7528fbd39bad8095869ffb3e083a181

 

Damit später kein Rechteproblem auftritt, sollten hier schon mal die Log-Files erzeugt werden:

sudo chown pi:www-data /var/www
echo > switch.log
echo > signalIn.log
echo > switch.cut
echo > signalIn.cut

 

Nun müssen wir noch  die passenden Berechtigungen setzen.

sudo chown pi:www-data /var/www/* -R
sudo chmod 755 /var/www/* -R

sudo chown root:www-data /etc/network/interfaces -R
sudo chmod 775 /etc/network/interfaces -R

sudo chmod 775 /var/www/pics/raumplan -R
sudo chmod 775 /var/www/cam_pics

sudo chmod 755 /etc/cron.manual/* -R
sudo chmod +x /etc/cron.manual/* -R

sudo chmod 775 /var/www/signalIn.log
sudo chmod 775 /var/www/switch.log
sudo chmod 775 /var/www/signalIn.cut
sudo chmod 775 /var/www/switch.cut

 

 

Datenbank

Zuerst muss die Datenbank mit dem folgenden Befehl erzeugt werden:

mysql -u root -p -e "CREATE database homecontrol;"

Danach können wir die mit Webseite mitgelieferte Sql-Datei in der Datenbank ausführen um die benötigten Tabellen und Daten zu erzeugen.

mysql -u root -p homecontrol < homecontrol.sql

Damit die HomeControl-Webseite später auch Zugriff auf die Datenbank hat, legen wir einen Benutzer mit Rechten für die DB an. (am einfachsten über PhpMyAdmin). Die entsprechenden Daten (Benutzername, Passwort, Datenbank-Name und Host) tragen wir dann in die DB-Konfigurationsdatei der Webseite ein.

nano /var/www/config/dbConnect.php

Jetzt sollte die Steuerung unter http://ip-adresse-deines-pis/ erreichbar sein.    

 

 

PhpMyAdmin
Als erstens müssen wir wieder die benötigten Pakete installieren. Der zweite Befehl verlinkt noch die Konfigurations-Datei an die richtige Stelle.

sudo apt-get install phpmyadmin
ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf

Anschließend starten wir den Webserver neu.

sudo /etc/init.d/apache2 reload

Jetzt sollte PhpMyAdmin unter: http://ip-adresse-deines-pis/phpmyadmin/ erreichbar sein

 

 

Cron-Jobs
Die Grundeinrichtung ist nun eigentlich fast abgeschlossen. Das System wäre so schon zum manuellen Schalten von Geräten einsatzbereit. Damit auch automatisierte Vorgänge funktionieren müssen noch Cron-Jobs eingerichtet werden.   Um eigene Crons die keins der Standard-Intervalle (stündlich, täglich, wöchentlich oder jährlich) verwenden, sondern ein spezielles Intervall erhalten sollen, lege ich meist einen eigenen Ordner an. Um das zu tun, geben wir in der Konsole des Raspberry PI folgendes ein:

sudo mkdir /etc/cron.manual

In dem neuen Ordner kopieren wir die benötigten Files und passen die Berechtigungen an:

sudo cp /var/www/installFiles/crons/* /etc/cron.manual/
sudo chmod +x /etc/cron.manual/*
sudo chmod 755 /etc/cron.manual/*

Damit diese kopierten Scripts auch regelmäßig aufgerufen werden, müssen sietail  noch in die Crontab eingetragen werden. Zum bearbeiten der crontab geben wir folgenden Befehl in der Konsole des Raspberry PI ein:

sudo crontab -e

In dem sich öffnenden Editor fügen wir am Ende der Datei die folgende Zeile ein und speichern das ganze ab.

*/1 * * * * /etc/cron.manual/homecontrol_mail >> /var/log/homecontrol_cron
*/1 * * * * /etc/cron.manual/homecontrol_cron >> /var/log/homecontrol_cron
0 0 * * * /etc/cron.manual/homecontrol_log_cleanup >> /var/log/homecontrol_log_cleanup
0 10 * * * /etc/cron.manual/homecontrol_motion_cleanup >> /var/log/homecontrol_motion_cleanup

Nun wird automatisch jede Minute geprüft, ob ein Ereignis für die aktuelle Uhrzeit in der Zeitsteuerung eingetragen ist und ggf. die entsprechende Aktion ausgeführt. Alle Ausgaben des Scripts werden in der Datei /var/log/homecontrol_cron  gespeichert. Sollte Probleme auftreten, kann man hier ggf. benötigte Informationen zu aufgetretenen Fehlern finden.  

Ebenfalls wird jede Minute auf Mails geprüft, morgens um 0:00Uhr wird das Log in der DB bereinigt und um 10:00Uhr werden die Bilder der PI-Cam aufgeräumt.

Damit das Motion-Cleanup Script funktioniert müssen darin noch die Angaben zum Datenbankbenutzer angepasst werden.

Dazu rufen wir mit folgendem Kommando den Editor auf und passen Benutzer und Passwort an:

sudo nano /etc/cron.manual/homecontrol_motion_cleanup

 

 


Bei Links auf Amazon-Artikel handelt es sich um Affiliate-Links. In diesen Links wird meine Amazon-Partner-Id mit übergeben, wodurch ich eine kleine Provision für eure Käufe erhalte. Ihr zahlt natürlich das gleiche wie sonst auch.
Ich würde mich freuen, wenn Ihr bei eurer Bestellung die Links verwendet und mich so einfach und für euch kostenlos unterstützt, um weiterhin neue Projekte mit euch teilen zu können.

Vielen Dank für euer Verständnis und eure Unterstützung!


Daniel Scheidler

Da mein Vater bereits in der IT tätig war, wurde auch mein Interesse für diesen Bereich sehr früh geweckt. Mit 13 bekam ich meinen ersten Laptop mit dem ich den Einstieg in die Programmierung begann. (Das Codes abtippen am C64 lasse ich mal aussen vor) Und so nahm alles seinen lauf.

Im Jahr 2004 schloss ich meine Ausbildung als Fachinformatiker Fachrichtung Anwendungsentwicklung ab und bin seit dem als Java Fullstack Entwickler tätig. Damals noch im ERP Umfeld, heute im Medizinischen Bereich.

Auch meine Freizeit „opfere“ ich gerne der Technik. Hier widme ich mich sämtlichen Themen rund um Arduino, Raspberry, 3D Druck/Design, RC-Modellbau (Multicopter, Heli, Flugzeug, Autos) und anderen Handwerklichen Projekten.

Mit der Kernsanierung des Altbaus entstand die Idee, das Haus auf ein SmartHome umzurüsten. Nach dem Kostenvoranschlag des Elektrikers wurde schnell klar, dass ich hier selber ran muss, wenns bezahlbar bleiben soll.

In der Hoffnung weitere kreative Leute zu finden, die sich an dem Vorhaben beteiligen oder es einfach nur nachbauen möchten dokumentierte ich alles und stellte alle Quelltexte incl. Anleitungen online.

Und so entstand SmartHomeYourself.de.

Diese Webseite verwendet Cookies, um die Nutzung der Seite zu verbessern, den Erfolg von Werbemaßnahmen zu messen und interessengerechte Werbung anzuzeigen.
Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen.

Wenn Sie diese Website ohne Änderung der Cookie-Einstellungen verwenden oder auf "Akzeptieren" klicken, erklären Sie sich damit einverstanden.

Weitere Informationen zu den verwendeten Cookies und unseren Datenschutzbestimmungen finden Sie in unseren Datenschutzbestimmungen.

Schließen