Archiv der Kategorie: Raspberry Pi

Kostal Wechselrichter in OpenHAB einbinden

1
0

Warum überhaupt Wechselrichter und OpenHAB?

…weil es einfach cool ist in seiner OpenHAB App auch gleich den Ertrag zu sehen. Nein im Ernst: Es tut gut zu wissen, ob der Wechselrichter läuft oder ob es eine Fehlfunktion gibt. Zum anderen ist es immer spannend zu sehen wie der Ertrag ist, so bekommt man ein gewissen Gefühl für seine Anlage.

Den Wechselrichter kann man direkt ansurfen, da er eine interne Seite bereit stellt auf der man die Daten auslesen kann, weiter kann er automatisch seine Daten auf eine Webseite hochladen. Weiter zeigt er im Display alternierend die Werte an. Aber nur um mal eben schnell … eine meiner Lieblings (hass-)redewendungen… den Wechselrichter auszulesen ist mir das zu aufwendig. Zudem habe ich OpenHAB ja eh am Laufen, warum also sollte ich dies nicht nutzen?

Kostal Wechselrichter in OpenHAB einbinden weiterlesen

1
0

DS18B20 mit Openhab am Raspberry Pi: Von Bash zu Python

1
0

Stand der Dinge:

Nachdem ich mittlerweile alles ziemlich gut im Griff hatte, gab es immer wieder Punkte, die mich gestört haben. Zum Beispiel hatte ich die Onewire (1-Wire)-Sensoren vom Typ DS18B20 immer über ein Shellscript aufgerufen. Der im Netz zu findende Aufruf ist im Prinzip immer ähnlich und es gibt nur feine Nuancen die sich ändern. Das „klassische“ Beispiel ist folgende onewire.sh:

#Temperatur des Sensors auslesen
INPUT=`cat /sys/bus/w1/devices/$1/w1_slave | tail -n1 | cut -d '=' -f2`
TEMP=`echo "scale=2; $INPUT / 1000" | bc`

#INPUT=$(cat "/sys/bus/w1/devices/$1/w1_slave" |tail -n1 |cut -d\"=\" -f2)
#TEMP=$(echo "scale=2; $INPUT / 1000" | bc)

# Wert ausgeben
echo $TEMP

Erläuterung des klassischen Skripts:

Dabei wird per CAT-Befehl die Datei aufgerufen, in der derDS18B20- Sensor seinen Temperaturwert ablegt. Um das Skript nicht für jeden Sensor neu auflegen zu müssen wird die Sensornummer über einen Aufrufparameter an das Skript übergeben. Da jeder Sensor sein eigenes Verzeichnis hat kann der Übergabeparameter (im Skript ‚$1‘) also einfach in den Pfad eingefügt werden, die Datei mit dem Gewünschten Inhalt ist die „w1_slave“. Mit dem „tail“ Befehl wird die letzte Zeile der Datei ausgewählt und mit „cut“ Befehl alles nach dem „=“ Zeichen Ausgeschnitten und an die Variable „Input“ übergeben. Im nächsten Schritt wird die Zahl mit „scale“ und „bc“ noch etwas zurechtgestutzt, weil sie mehrstellig ist, aber der tatsächliche °C-Wert erst durch die Division mit 1000 erzeugt wird. Mit dem Echo wird das Ergebnis letztendlich ausgegeben.

Was das Problem ist:

So weit so gut. Aber dieses Shellskript hat einen kleinen Haken: Auf vielen Installationen von Openhab, besonders auf dem Raspberry Pi oft anzutreffen, liefert dieses Skript kein Ergebnis! Warum das so ist, liegt an den Dateirechten, die man nach jedem Neustart von Openhab neu setzen müsste. Das wäre zwar mit einer Zeile Code geregelt, aber was wenn man das mal Vergisst? Oder man möchte einfach das System so einfach wie möglich halten ohne zu viele kleine Anpassungen und Skripte zu schreiben, die dann bei einer Neuinstallation neu gelernt und erinnert werden müssen?

DS18B20 mit Openhab am Raspberry Pi: Von Bash zu Python weiterlesen

1
0

Raspberry Pi – Watchdog nutzen

0
0

Watchdog auf dem Raspberry Pi

Was ist ein Watchdog?

Ein Watchdog ist ein Wachhund. Besser als die Übersetzung des Namens, kann man seine Aufgabe auch gar nicht beschreiben. Er passt auf und führt für vorgegebene Szenarien festgelegte Schritte aus. Somit ist er ähnlich wie ein Cronjob, der regelmäßig bestimmte Dinge prüft und Aktionen durchführt, wenn Bedingungen nicht erfüllt sind.

Wie richte ich einen Watchdog auf dem Raspberry Pi ein?

Hardwareseitig bringt der Raspberry Pi alles mit was man braucht, der Watchdog ist auf dem BCM2708 des Raspberry Pi schon verbaut. Dieser Chip – sofern er aktiviert ist, erkennt anhand von regelmäßigen Signalen des Watchdog Daemons, ob bestimmte Bedingungen erfüllt sind. Ist das System überlastet, bleiben beispielsweise die Signale aus und der Chip bootet das System neu. Es kann aber auch die Temperatur oder ähnliches überwacht werden.

In diesem Beispiel werden wir einen einfachen Watchdog erstellen, der im Abstand von einer Minute checkt ob das System noch reagiert oder nicht.

sudo modprobe bcm2708_wdog
echo "bcm2708_wdog" | sudo tee -a /etc/modules
sudo apt-get install watchdog

Damit wird erstmal das Kernelmodul geladen um den Chip zu aktivieren, danach wird der deamon geladen. Diesen werden wir jetzt konfigurieren:

sudo nano /etc/watchdog.conf

Jetzt muss die Datei noch angepasst werden. Wir sehen im ersten Schritt zunächst, dass die Datei viele Einträge enthält, die mit einem Doppelkreuz (#) auskommentiert sind. Um den Wachhund in Zukunft „scharf“ zu schalten entfernen wir das Doppelkreuz vor folgenden beiden Einträgen und passen ggf. die Zeichen nach dem Gleichheitszeichen an:

watchdog-device        = /dev/watchdog
max-load-1             = 24

Mit watchdog-device wird das Watchdogziel angegeben, max-load-1 hat den Hintergrund, dass der Test im Zeitraum von 1 Minute durchgeführt wird. max-load-5 wären 5 Minuten.

Ist dieser Schritt abgeschlossen, kommen wir zum wichtigsten Schritt:

sudo /etc/init.d/watchdog restart

Jetzt wird das System automatisch neu gestartet wenn das System überlastet ist.

Eine ganz gute Übersicht findet man in den einschlägigen man-pages oder z.B. hier.

0
0

Kleine Stolpersteine: Nach OpenSSL-Umstellung kein Layout mehr

0
0

Gerade ist es mir wieder mal aufgefallen: Ich habe eine private Seite auf meinem Raspberry Pi gehostet und will via https auf sie zugreifen. Zu diesem Zweck habe ich (wie in einem anderen Tutorial beschrieben) ein Zertifikat über OpenSSL erstellt. Aber beim Zugriff scheint alles wie verhext: Das gesamte Layout ist weg und die Seite funktioniert nicht mehr. Was ist hier los? Eine kurze Suche hat mich auf die richtige Spur gelotst und tatsächlich.. ich hatte einen Fehler in meinem Seitenquellcode, der einem vielleicht nicht sofort ins Auge fällt:

Für einige Effekte habe ich jquery und anderes nachgeladen. Die Einbindung habe ich über

http://code.jquery.com/jquery-1.8.3.js

vorgenommen.

Ohne das https werden ja Codeteile über eine unsichere Verbindung nachgeladen. Dies darf natürlich nicht sein. Denn wenn über eine sichere Verbindung „unsichere“ bzw. in diesem Fall „nicht vertrauenswürdige“ Daten nachgeladen werden wird (bzw. sollte!) dies unterbunden werden.

Nach der URL-Anpassung ist dieser Fehler jetzt behoben und das Layout ist auch wieder so wie es sein sollte!

Dieses Problem betrifft somit alle Webseiten, unabhängig davon, ob sie jetzt auf einem Raspberry Pi oder auf einem anderen Webserver gehostet werden. Auch das Zertifikat muss nicht Fehlerhaft sein, genauso wenig wie OpenSSL etwas dafür kann. Das gleiche Problem tritt eben auch auf, wenn zum Beispiel Bilder in Gallerien (bei CMS Systemen oft über Plugins geregelt) über „unsichere“ Links geladen werden, selbst wenn sie auf dem gleichen Server liegen. Darauf sollte man unbedingt achten. Am Sichersten ist es daher die SSL Umstellung als aller erstes durchzuführen. Dieser Blog zum Beispiel wurde am Anfang ohne Zertifikat betrieben und es erscheint immer wieder eine Warnung im Browser, dass nicht alle Inhalte verschlüsselt übertragen werden, weil einige Bilder noch mit http nachgeladen werden.

Wieder alles gut... OpenSSL war nicht schuld und wir können uns freuen :)

0
0

Fernzugriff auf den Raspberry Pi – Teil 8 (Den Raspberry Hardwareseitig absichern)

0
0

Hardwareseitige Absicherung? Damit meine ich nicht, den Raspberry Pi weg zu schließen um ihn vor physischem Zugriff zu schützen (auch wenn das eine gute Methode ist um die Sicherheit zu erhöhen, weil die Gefahr gerne unterschätzt wird).

Tatsächlich geht es mir um die Erhöhung der Ausfallsicherheit des Raspberry Pi und die Konfiguration um einen Serverbetrieb aufrecht zu erhalten.

Fernzugriff auf den Raspberry Pi – Teil 8 (Den Raspberry Hardwareseitig absichern) weiterlesen

0
0

Fernzugriff auf den Raspberry Pi – Teil 7 (Die sicherere Verbindung mit HTTPS/SFTP)

0
0

Was kann ich tun um Zugriffe auf meine Dateien zu erschweren?

Zunächst einmal kann keiner auf Daten zugreifen, wenn er nicht an die entsprechenden Passwörter kommt. Über den herkömmlichen Weg sich mit dem Raspberry Pi aus der „ferne“ (was ja auch schon ein anderer Rechner im lokalen Netzwerk sein kann) zu verbinden, werden die Daten(ströme) in der Regel unverschlüsselt übertragen. Ein potentieller Angreifer muss also eigentlich nur den Netzwerkverkehr „mithören“ um nach und nach an Dateien oder sogar Benutzername/Passwortkombinationen zu kommen.

Wie verhindere ich das?

Bisher haben wir den Zugriff auf unseren Raspberry Pi mittels SSH ermöglicht. Weiter bieten wir einen Apache 2 Webserver und einen FTP-Serverdienst an. SSH ist schon relativ sicher, aber die anderen beiden Dienste sind aus Sicherheitsbetrachtungen gesehen offene Scheunentore. Um die Sicherheit zu erhöhen kann man die Daten ab sofort nur noch SSL verschlüsselt übertragen. Je besser/größer der zum Verschlüsseln gewählte Schlüssel ist, umso eher wird sich ein potentieller Angreifer abwehren lassen.

Fernzugriff auf den Raspberry Pi – Teil 7 (Die sicherere Verbindung mit HTTPS/SFTP) weiterlesen

0
0

Fernzugriff auf den Raspberry Pi – Teil 6 (Allgemeine Sicherheitsaspekte)

0
0

Warum muss man sich über Sicherheit Gedanken machen?

Eine berechtigte Frage… der Raspberry hängt im Heimnetz, hinter einer Firewall, die Freigaben sind vielleicht nur im direkten Heimnetz überhaupt erreichbar (sofern man Sie durch Portweiterleitung nicht für die ganze Welt freigegeben hat). Die Passwörter sind irre kompliziert und sicher und vor allem DAS Argument:“Wen interessieren schon meine Spielereien auf dem Pi?“ oder „Sollen sie doch meine Daten stehlen, ist eh nicht interessant!“

Fernzugriff auf den Raspberry Pi – Teil 6 (Allgemeine Sicherheitsaspekte) weiterlesen

0
0

Fernzugriff auf den Raspberry Pi – Teil 5 (FTP – Die eigene Dokumentenverwaltung)

0
0

Der eigene FTP-Server

Einen eigenen FTP-Server zu betreiben ist gar nicht so schwer, wie man glauben könnte. Auch hier geht die Installation sehr einfach.

Aber wozu braucht man einen FTP-Server überhaupt?

Wann immer man Dateien, egal welche, kopieren, bearbeiten oder Sichern möchte und zusätzlich von verschiedenen Geräten, oder sogar vom Internet aus darauf zugreifen möchte, ist es hilfreich, beziehungsweise unumgänglich, einen Speicher rund um die Uhr, also im 24/7 betieb verfügbar zu haben. Hat man einen eigenen Webserver ist ftp eine super Lösung um seine Dateien zu aktualisieren oder zu erweitern. Weiter kann man so anderen Leuten schnell Zugriff auf Dokumente geben und man kann auf den lahmen Versand via E-Mail verzichten. (Angemerkt sei: E-Mail wurde niemals dafür entwickelt, große Dateien hin und her zu schicken. Dafür ist das Protokoll vollkommen ungeeignet).
Der FTP-Server bietet einem den Dateizugriff fast so an, wie man es von seinem lokalen Dateisystem gewohnt ist Fast, weil durch die Sicherheitsaspekte wird es nicht ganz so komfortabel, aber das ist zu verschmerzen.

Fernzugriff auf den Raspberry Pi – Teil 5 (FTP – Die eigene Dokumentenverwaltung) weiterlesen

0
0

Fernzugriff auf den Raspberry Pi – Teil 4 (HTTP – Der eigene Webserver)

0
0

Der eigene Webserver

Auch das Anbieten von Webseiten ist eine Möglichkeit den Raspberry Pi mit der Aussenwelt kommunizieren zu lassen. Komisch? Ganz und gar nicht! Auf einer eigenen Webseite kann man durchaus Systemdaten anzeigen lassen, Dateien ablegen und abrufen und sogar Abläufe steuern.

Den Webserver und „Zubehör“ auf den Pi bringen

Zunächst einmal ist eine Internetseite nichts anderes als ein Dokument, das in einem Browser dargestellt wird. Genauer: Gibt man eine Internetadresse ein wie www.xyz.de, dann verbindet sich der Browser mit einem sogannten „Nameserver“. Dieser sagt dem Browser dann, zu welcher IP Adresse die Anfrage gehen soll. Zum Beispiel antwortet er, dass xyz zu der IP-Adresse 127.0.0.1 gehört. (Okay.. das ist nur ein Beispiel, es wird nicht funktionieren). Daraufhin fragt der Browser dann die IP-Adresse 127.0.0.1 auf Port 80 an (Port 80 ist nämlich der Standardport für das HTTP Protokoll über das Webseiten ausgeliefert werden. Auf 127.0.0.1 sollte nun ein Server diese Anfrage verbeiten können. Was viele nicht wissen: Die Angabe von „www.“ vor dem xyz, sagt im Prinzip nur aus, dass der Webserver in dem Verzeichnis www nach den darzustellenden Daten suchen soll. Dieser Blog liegt zum Beispiel im „Internetordner“ flying-bordercollies.de im Unterverzeichnis „thomas“.

Fernzugriff auf den Raspberry Pi – Teil 4 (HTTP – Der eigene Webserver) weiterlesen

0
0

Fernzugriff auf den Raspberry Pi – Teil 3 (SSH – Secure Shell)

0
0

Die einfachste Variante: SSH

Die fiese Konsole – Manche lieben sie, manche hassen sie… ich finde sie nützlich für das was ich tun will

SSH auf dem Raspberry installieren/aktivieren

Mittels der Secure Shell ist es möglich auf den Raspberry Pi zuzugreifen und die wichtigsten Dinge zu erledigen. Die aktuelle Raspian (Debian für den Raspberry Pi) Distribution (im November 2014) bringt schon alles mit, was man hierfür benötigt. Noch sollte der Raspi aber direkt ansprechbar sein, also über HDMI mit einem Display und mit mindestens einem USB-Keyboard, besser noch Maus ausgestattet sein.

Fernzugriff auf den Raspberry Pi – Teil 3 (SSH – Secure Shell) weiterlesen

0
0