Zurück zu: Geräte vorbereiten

Server installieren (Beta)

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

 

 

System-Beschreibung

SmartHome yourself ist ein System, welches die Geräte im Haus an euer Netzwerk koppelt, um ...

Learn more