Wie wird wswebcam auf dem Raspberry Pi neu compiliert und installiert?

Mit sudo apt-get install fswebcam wird wie man mit fswebcam --version feststellen kann die Version von 2011 von fswebcam installiert:
fswebcam 20110717

Da meine alte Logitech Cam nicht läuft, habe ich erst einmal auf die neueste Version upgedated. Also die Quellen holen und neu compilieren mit:

Es wird folgender Error ausgegeben:
configure: error: GD graphics library not found

Also noch die libgd neu installieren mit:
sudo apt-get install libgd2-xpm-dev

Dann nochmal

ausführen.
Ok, Ausgabe nun:...
hecking for getpagesize... yes
checking for working mmap... yes
checking for gdImageCreateTrueColor in -lgd... yes
checking for gdImageStringFT in -lgd... yes
checking for gdImageJpeg in -lgd... yes
checking for gdImagePngEx in -lgd... yes

Buffer type ........... 16 bit
PNG support ........... yes
JPEG support .......... yes
Freetype 2.x support .. yes
V4L1 support .......... yes
V4L2 support .......... yes

configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h

Dann ein make zum compilieren und make install.
Dann checken ob die neue Version installiert wurde, mit
fswebcam --version Ausgabe:
fswebcam 20140113

Nun noch mit rm -rf fswebcam/ das Verzeichnis löschen.

Ok, die Cam wird erkannt, lsusb ergibt:
Bus 001 Device 004: ID 046d:0840 Logitech, Inc. QuickCam Express

Aber es kommt mit fswebcam test.jpg zu folgenden Fehler und es wird kein Foto erstellt:
Bildschirmfoto 2014-03-27 um 21.20.38
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
Adjusting resolution from 384x288 to 360x296.
Error starting stream.
VIDIOC_STREAMON: Broken pipe
Unable to use mmap. Using read instead.
--- Capturing frame...
Timed out waiting for frame!
Speicherzugriffsfehler

Da muss ich dann mal ander mal schauen, was das nun wieder ist.
Oder habt IHR eine Idee?

Fix, siehe diesen neuen Blogeintrag. Das müsste auch hier laufen, oder?

Wie kann auf einem Raspberry Pi die neueste Java 1.8 Version von Oracle installiert werden?

Zuerst das System des Raspberry Pi updaten und neu starten mit:

Schauen, welche Version jetzt installiert ist mit java -version:

Entweder über den den Packetmanager:

oder per Hand, dann so:

Dann das JDK 1.8 von der Oracle Seite downloaden. Die Seite wurde nach hier verschoben. Es wird die Linux ARM v6/v7 Hard Float ABI Version mit 83 MB benötigt.
Bildschirmfoto 2014-03-27 um 18.08.58

In das Download Verzeichnis wechseln und mit scp die Datei auf den rPi kopieren z.B.:

Dann in den rPi wechseln und und das Archive in das /opt Verzeichnis entpacken, das dauert ein paar Minuten:

Nun Java aktivieren und das Archive löschen mit:

Bildschirmfoto 2014-03-27 um 20.33.14
sudo update-alternatives --config java
# Auswahl 1 für Version 1.8 eingeben

Bildschirmfoto 2014-03-27 um 20.32.41

Und checken ob es geklappt hat mit java -version ergibt nun:

Java 1.8.0 ist nun erfolgreich installiert.

Wie kann Webmin auf einem Raspberry Pi auf die neueste Version (1.680.1) aktualisiert werden?

Den laufenden Webmin aufrufen mit https://{IP-Adresse}:10000/

Aktuelle Version von Webmin feststellen über die Webmin Download-Seite.
Dann über das Menü: Webmin-Webmin-Konfiguration->Webmin aktualisieren
Bildschirmfoto 2014-03-14 um 17.19.24
In den Webmin aktualisieren Dialog die Aktuelle URL eingeben:
http://prdownloads.sourceforge.net/webadmin/webmin_1.680_all.deb
Bildschirmfoto 2014-03-14 um 17.18.52
Dann auf Webmin aktualisieren klicken und ca. 10 min warten:
Bildschirmfoto 2014-03-14 um 17.18.24

Webmin ist echt cool! Oder?

Wie wird ein VdS-zertifizerter Funk-Rauchmelder #HM-SEC-SD von #HomeMatic in #Fhem auf einem #Raspberry Pi eingebunden?

Habe von meinen netten Kollegen einen Gutschein erhalten 🙂 Dafür habe ich mir ua. diesen Funk-Rauchmelder HM-SEC-SD gekauft, hier die Ansicht von hinten, mit eingelegten Batterien:

20140311-174018.jpg

So, mit zwei Schrauben hängt er nun im Server-Raum an der Decke …
20140311-174036.jpg

Jetzt noch nach dieser Anleitung in Fhem anmelden. Obwohl ich bisher nur einen Rauchmelder haben, ist er mit einem virtueller Aktor als Teamlead verbunden (Variante 2). So kann über set Rauchmelder_Team alarmOn der Alarm getestet werden:
Bildschirmfoto 2014-03-11 um 17.39.16
Aus gehts mit set Rauchmelder_Team alarmOff:
Bildschirmfoto 2014-03-11 um 17.38.58
Zuvor aber anlernen und peeren:

set HMLAN_1 hmPairForSec 600
define TeamDev CUL_HM 111111
set TeamDev virtual 1
set Rauchmelder_Team peerChan 0 az_Brandmelder single set

Bildschirmfoto 2014-03-11 um 17.37.00

Cool, jetzt kann der VdS-zertifizerte Funk-Rauchmelder
Bildschirmfoto 2014-03-11 um 18.15.30 von überall angeschaltet werden.

Aber erst noch eine Benachrichtigung bei Brandalarm versenden per Pushover. Dazu ua. in der fhem.cfg folgenden Code einfügen und den Token und User ersetzen:


# Benachrichtigung bei Brandmelder an
#

define pushBrandmelderAn notify az_Brandmelder:smoke-Alarm.* {\
system ("curl -s -F 'token=xxxxxxxxx' -F 'user=xxxxxxxxxx' -F 'message=Brandmelder Alarm' -F 'title=Fhem: Brandmelder ist an' -F 'priority=1' -F 'sound=1' https://api.pushover.net/1/messages.json");;\
}
attr pushBrandmelderAn group Brandmelder
attr pushBrandmelderAn room Arbeitszimmer

Kann dann so als Alarmmelder dienen.

Wie kann die neue SYSMON Funktion ShowValuesText auf den Fhem Server mit Raspberry Pi für Pushover und E-Mail genutzt werden?

Das coole Tool SYSMON im Fhem Server kann nun auch seit ein paar Tagen seine Informationen als Text mit der Funktion SYSMON_ShowValuesText wiedergeben. Diese Infos können dann wie hier als HTML Tabelle auch per E-Mail oder Pushover versendet werden:

Bildschirmfoto 2014-03-04 um 18.59.03

Ich habe es in meiner täglichen Pushover Benachrichtigung eingefügt, so bekomme ich immer um 12 Uhr diese Meldung direkt auf mein Handy bzw. iPad:
Bildschirmfoto 2014-03-04 um 18.57.50

Hier der entsprechende Code, für die fhem.cfg:

#
# Fhem: Um 12 Uhr täglich den rPi Systemstatus versenden
#
define pushSystmonStatus at *12:00:00 {\
my $sysinfo=SYSMON_ShowValuesText('sysmon', ('date:Datum', 'cpu_temp:CPU Temperatur: °C', 'uptime_text:System up time:', 'fhemuptime_text:FHEM up time', 'ram:RAM', 'idletime_text:idle time', 'stat_cpu_text:CPU'));;\
system ("curl -s -F 'token=-dein Token-' -F 'user=-dein User' -F 'message=$sysinfo' -F 'title=Fhem Systemstatus' http://api.pushover.net/1/messages.json");;\
}

Wenn man alle Parameter haben will, kann man auch einfach nur sysmon verwenden:
my $sysinfo=SYSMON_ShowValuesText('sysmon')
Für die Pushover Benachrichtigung wird aber nicht alles angezeigt, da die max. Anzahl an Zeichen bei 512 liegt. Aber für E-Mail oder andere Zwecke gehts.

Noch weitere Ideen?

Wie wird ein Fensterkontakt HM-SEC-SC-2 von Homematic mit einem Heizungsthermostat HM-CC-RT-DN mit Fhem auf Raspberry Pi gekoppelt

Wie hier sehr gut beschrieben vorgehen.

1. Den Fensterschalter mit dem Heizungsventil HM-CC-RT-DN peeren. Das läuft über Kanal 03 WindowRec mit:
set peerChan 0 single
z.B.:
set az_Fenster_Schalter peerChan 0 az_Heizungsthermostat_WindowRec single

dann und das ist Wichtig, am Fenster-Schalter den Kontakt mit dem Kugelschreiber drücken, sonst wird es nicht ausgeführt.

Kontrolle unter Attributes, bei der peerIds muss die ID vom Schalter stehen:
Bildschirmfoto 2014-02-22 um 17.50.01

2. Wenn das Fenster aufgeht, soll die Temperatur autom. abgesengt werden. Dazu wird der im Heizungsthermostat integrierte Schalter über Kanal 4 ClimRT_tr ausgeschaltet mit:
set regSet winOpnMode off
z.B.:
set az_Heizungsthermostat_Klima regSet winOpnMode off

Kontrolle in den Readings unter R-winOpnMode, muss dann auf off gesetzt sein.

3. Dann soll noch die Temperatur auf 5 Grad (mögliche Werte von 5-30 Grad) eingestellt werden (Kanal 3), die autom. beim öffnen des Fensters eingestellt werden soll mit
set regSet winOpnTemp 5
z.B.:
set az_Heizungsthermostat_WindowRec regSet winOpnTemp 5 az_Fenster_Schalter

Für den älteren Thermostat HM-CC-TC ist die Syntax etwas anders (6-30 Grad, anderer Variablenname)
set regSet tempWinOpen 6
z.B.
set wz_Wandthermostat_WindowRec regSet tempWinOpen 6 wz_Terrassentuer_Schalter

Kontrolle:
Bildschirmfoto 2014-02-22 um 17.58.35

4. Dann noch ein save und rereadcfg.

Wenn alles ok ist, wird nun beim öffnen des Fensters auf 5 Grad geregelt und wenn das Fenster wieder geschlossen wird, auf die eingangs eingestellte Temperatur zurück gestellt.
Diese Regelung kann man gut am folgenden Diagramm erkennen. Das Ventil (blau) wird jeweils geschlossen wenn das Fenster geöffnet wird. Die Ziel Temperatur (grün) geht auf 5 Grad:
Bildschirmfoto 2014-02-22 um 18.32.17

Wie werden alle installierten Packages auf dem Raspberry Pi angezeigt, gespeichert und gezählt?

Manchmal wird eine Liste aller installierten Packages benötigt. Für ein Backup oder so. Es gibt da wie so oft mehrere Möglichkeiten.

Auf dem Raspberry Pi können solche Listen mit dem Packagemanager dpkg erstellt werden.

Also mit

dpkg --get-selections | grep -v deinstall

werden alle Packages ausgebeben, z.B.

...
cups install
cups-bsd install
cups-client install
cups-common install
cups-filters install
cups-pdf install
cups-ppdc install
...

um mit

dpkg --get-selections | grep -v deinstall > installierte-package.txt

wird die Liste in die Datei installierte-packag.txt gespeichert.

Oder wenn die lange Liste eingeschränkt werden soll, z.B. alle Packages mit cups im Dateiname:

dpkg --get-selections | grep cups
ergibt diese Liste:

...
bluez-cups install
cups install
cups-bsd install
cups-client install
cups-common install
cups-filters install
cups-pdf install
cups-ppdc install
ghostscript-cups install
libcups2:armhf install
libcupscgi1:armhf install
libcupsdriver1:armhf install
libcupsfilters1:armhf install
libcupsimage2:armhf install
libcupsmime1:armhf install
libcup dc1:armhf install
printer-driver-hpcups install
python-cups install
...

Soll das install nicht erscheinen, dann mit dem Stream-Editor sed z.B.

dpkg --get-selections | sed 's:install$::' > installierte-package-nur-name.txt

Wer eine noch ausführlicher Liste mit Beschreibung benötigt, kann diese mit

dpkg --list erzeugen. Z.b.:

...
ii cups 1.5.3-5+deb7u1 armhf Common UNIX Printing System(tm) - server
ii cups-bsd 1.5.3-5+deb7u1 armhf Common UNIX Printing System(tm) - BSD commands
ii cups-client 1.5.3-5+deb7u1 armhf Common UNIX Printing System(tm) - client programs (SysV
ii cups-common 1.5.3-5+deb7u1 all Common UNIX Printing System(tm) - common files
ii cups-filters 1.0.18-2.1 armhf OpenPrinting CUPS Filters
ii cups-pdf 2.6.1-6 armhf PDF writer backend for CUPS
ii cups-ppdc 1.5.3-5+deb7u1 armhf Common UNIX Printing System(tm) - PPD manipulation util
ii curl 7.26.0-1+wheezy8 armhf command line tool for transferring data with URL syntax
...

Die ersten beiden Zeichen in jeder Zeile geben den Paketstatus an ( ii bedeutet installiert ).

Wer also nur die installierten haben möchte, muss

dpkg -l | grep '^ii'

verwenden. Wenn noch mehr Kontrolle über die Liste braucht, kann auch dpkg-query verwenden:

dpkg-query -W -f '${status} ${package} ${version} \n' | sed -n 's/install ok installed //p'
z.B.:

...
cups 1.5.3-5+deb7u1
cups-bsd 1.5.3-5+deb7u1
cups-client 1.5.3-5+deb7u1
cups-common 1.5.3-5+deb7u1
cups-filters 1.0.18-2.1
cups-pdf 2.6.1-6
cups-ppdc 1.5.3-5+deb7u1
...

Wenn ein Debian System mit gleichen Package und Versionsnummern erstellt werden soll, kann man eine Liste mit

aptitude -q -F "%?p=%?V %M" --disable-columns search \~i

in folgendem Format erzeugen:

Package Name=Version und A (wenn automatisch installiert)
Z.b.:
...
cups=1.5.3-5+deb7u1
cups-bsd=1.5.3-5+deb7u1 A
cups-client=1.5.3-5+deb7u1 A
cups-common=1.5.3-5+deb7u1 A
cups-filters=1.0.18-2.1 A
cups-pdf=2.6.1-6
cups-ppdc=1.5.3-5+deb7u1 A
...

Die Liste kann dann wie in http://www.debian-administration.org/article/669/ beschrieben, wieder geladen werden mit:
(ungetestet)

$ cat restore-package-versions
#!/bin/sh
list=$1
shift
aptitude -q -R --schedule-only install $(awk < $list '{print $1}') aptitude -q -R --schedule-only markauto $(awk < $list '$2=="A" {split($1,A,"=");print A[1]}')

Wer nur die Anzahl der installierten Package ermitteln möchte, kann die Ausgabe mit grep zählen (-c count):

dpkg -l | grep '^ii' -c

bei mir: 910

Wie wird ein Bluetooth Dongle an einem Raspberry Pi in Fhem integriert?

Hatte noch ein Bluetooth Dongel von Belkin liegen.
20140204-205131.jpg
Der kann wie folgt an dem rPi angeschlossen werden.

Erst mal das System aktualisieren und das bluetooth Pakage mit ein paar Tools installieren:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoremove
sudo apt-get install bluetooth bluez-utils blueman

Dann den Raspberry Pi runter fahren und den USB-Bluetooth Adapter einstecken (siehe Foto oben).
Nach dem Hochfahren können alle USB Geräte gelistet werden mit lsusb. In meinem Fall:

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 050d:0012 Belkin Components F8T012 Bluetooth Adapter
Bus 001 Device 005: ID 1f75:0916

Ob das Gerät läuft kann mit /etc/init.d/bluetooth status getestet werden, Ausgabe wenn alles ok ist:
[ ok ] bluetooth is running.

Jetzt können wir nach Geräten in Reichweite suchen mit hcitool scan. Bei mir ist nur ein Telefon gefunden worden
Scanning ...
XX:2F:80:3F:14:XX SL910
obwohl es mehr gib. Also etwas gewartet und Befehl wiederholt
Scanning ...
XX:2F:80:3F:14:XX SL910
XX:51:C9:EF:B5:XX iMac
XX:D1:CB:E9:33:XX iPhone 5
ok, jetzt ist alles vorhanden.

So jetzt haben wir mit dem hcitool scan die IP Adressen der erreichbaren Bluetooth Geräte ermittelt. Jetzt können wir die IP Anpingen um zu sehen ob das Gerät erreichbar ist mit
sudo l2ping -c 1 XX:D1:CB:E9:33:XX
wenn das Gerät erreichbar ist kommt:
Ping: XX:D1:CB:E9:33:XX from XX:00:3A:69:11:XX (data size 44) ...
44 bytes from XX:D1:CB:E9:33:XX id 0 time 6.09ms
1 sent, 1 received, 0% loss

wenn am Gerät Bluetooth ausgeschaltet ist oder das Gerät nicht mehr in Reichweite ist kommt als Ping Ergebnis
Can't connect: Host is down

Die Bluetooth IP kann auch z.B. im iPhone unter Einstellungen-Allgemein-Info-Bluetooth abgelesen werden.

Dann habe ich mal die Reichweite getestet. Geht nur ein paar Meter. In der Küche mit einer Wand geht es schon nicht mehr. Und in der Stube geht es auch nicht in jeder Ecke.

So, jetzt noch in Fhem integrieren mit:
define iPhone5_Bluetooth PRESENCE local-bluetooth XX:D1:CB:E9:33:XX 10 60
(10 = check interval, alle 10s nach Gerät suchen mit ping ,
60 = present check interval, alle 60s nach Gerät suchen wenn vorhanden)

Nach einem reread wird es auch wie erwartet angezeigt:

Bildschirmfoto 2014-02-04 um 20.55.56

Unter state wir die Erreichbarkeit angezeigt mit present und wenn es nicht in Reichweite ist mit absent.

Welcher Bluetooth Dongel hat die Beste Reichweite und ist günstig? Wie setzt ihr Bluethooth ein?

Wie können eigene Menüeinträge im Fhem-Server auf einen Raspberry Pi und andere Plattformen erstellt werden?

Wenn man in der Fhem-Web-Gui eigene Menüeinträge auf der linken Seite erzeugen will, wie hier z.B. gezeigt
Bildschirmfoto 2014-02-04 um 19.50.15
brauch man nur in der fhem.cfg folgende Zeile erstellen (alles in einer Zeile):

Dann einmal die Konfigurantion neu einlesen mit rereadcfg und schon sind die definierten Menüpunkte vorhanden.

Welche Menüpunkte habt ihr erstellt?

Wie wird der Speicher des Raspberry Pi für die Nutzung ohne Monitor (mit SSH) optimiert?

Der Raspberry Pi (Model B) hat 512 MB RAM die sowohl die CPU als auch die GPU benutzen können. Default wird der RAM Speicher zwischen CPU und GPU mit 448 MB zu 64 MB aufgeteilt. Das kann noch optimiert werden wenn z.B. kein Monitor verwendet wird und nur mit SSH gearbeitet wird.

Nach Aufruf von
sudo raspi-config
zum Menüpunkt 8 Advanced Options gehen und Select wählen.

Bildschirmfoto 2014-01-30 um 16.50.31
Dann unter A3 Memory Split und Select
Bildschirmfoto 2014-01-30 um 19.07.25
Dann im Textfeld eingeben, wieviele MB vom Speicher der Grafikkarte zugewiesen werden sollen. Der minimale Wert von 16 erlaubt der CPU 496 MB Speicher zu benutzen.

Bildschirmfoto 2014-01-30 um 16.49.57

Dann noch einen reeboot
Bildschirmfoto 2014-01-30 um 16.51.04

So hat der rPi ca. 50 MB mehr zur Verfügung wie das SYSMON Plugin von Fhem zeigt:
Bildschirmfoto 2014-01-30 um 17.13.05und nachher
Bildschirmfoto 2014-01-30 um 17.20.47
Den Anstieg des RAMs ist auch im Diagramm gut sichtbar
Bildschirmfoto 2014-01-30 um 17.33.54
Wenn die Einstellung ohne raspi-config gemacht werden soll, kann auch die /boot/config.txt Datei auf gpu_mem=16 gesetzt werden. Nach reeboot stehen die neuen Einstellungen bereit.

Kennt ihr noch weitere Optimierungen?

Wie kann ein laufender Raspberry Pi ein backup seiner eigenen SD-Karte anfertigen?

Wenn an dem rPi ein USB-Stick angeschlossen ist kann ein backup der SD-Karte auf den USB-Stick angefertigt werden mit:
sudo dd if=/dev/mmcblk0 of=/media/usb1/backup/rp-sicherung.img bs=1MB

Das ganze dauert bei mir, mit einem ext4 formatierten 32GB-Stick (USB 3.0) ca. 12 min:
Bildschirmfoto 2014-01-29 um 21.44.40

Das kann auch durch ein script automatisch ausgeführt werden. Das werde ich bei Gelegenheit mal ausprobieren. Oder habt ihr eine andere bzw. bessere Lösung bzw. script? Dann bitte URL oder Script hier posten.

Wie können Benachrichtigungen (notifications) von einem Fhem-Server unter Raspberry Pi an iOS (iPhone, iPad) und Android mit Pushover versendet werden?

Wie können Benachrichtigungen von einem Fhem-Server unter Raspberry Pi und auch anderen Programmiersprachen (Bash, Perl, PHP, Web…) an ein Handy versendet werden. Z.B. will man benachrichtigt werden wenn die Tür geöffnet wird oder wenn der Speicherplatz auf dem Rechner voll ist. Oder wenn die Temperatur unter 0 Grad ist oder oder…

Das geht mit Pushover. Es wird die kostenplichtige App (ein paar Euro) einmalig benötigt, und dann kann man diese REST-API kostenlos nutzen:
Pushover-REST-API

In Fhem in der fhem.cfg kann dann ein Eintrag erstellt werden, der z.B. täglich um 18 Uhr eine Nachricht versenden, wenn die Batterie von einem Gerät (hier Pulse von Withings) kleiner als 50 Prozent der Accu-Ladung ist. Versendete Nachrichten kommen innerhalb von wenigen Sekunden auf den Mobilen Geräten an. Es könnte also auch leicht alle 10 Sekunden abgefragt werden.

Es muss auf der Pushover-Seite nach der Anmeldung eine Application angelegt werden. Von der Seite erhält man dann auch den API-Token und auf der Hauptseite den User-Key. Die müssen hier ersetzt werden:


define pushPulseAccuStand at *18:00:00 {\
my $temp=ReadingsVal("withings_pulse_geraet", "batteryLevel", "0");;\
if($temp < 50){\ system ("curl -s -F 'token=--API-TOKEN' -F 'user=--USER-KEY---' -F 'message=Accu von Pulse beträgt: $temp.' -F 'title=Fhem: Accu Status zu Pulse' http://api.pushover.net/1/messages.json");;}\ }

Es gibt nun auch ein Fhem Modul, was die Nutzung mir dem Pushover Service vereinfacht.
Es muss nun kein curl mehr verwendet werden. Es reicht ein zwei Zeiler.
Erst das Device definieren und dann die Befehle absetzen. Z.B. täglich um 12 Uhr eine Nachricht senden "Pulse laden":


define Pushover1 Pushover TOKEN KEY
define at_Push at *12:00 set Pushover1 msg 'Titel' 'Pulse laden' '' 0 ''

Oder täglich um 12 Uhr Accu Warnung wenn kleiner als 70% Ladung:

define pushPulseAccuStandPulse at *12:00:00 {\
my $accu=ReadingsVal("withings_pulse_geraet", "batteryLevel", "0");;\
if($accu < 70){\ set Pushover1 msg 'Titel' 'Pulse laden, da nur noch $accu Prozent.' '' 0 ''\ }\ }

Habt ihr noch weitere Anwendungsgebiete? Dann bitte als Kommentar.

Wie können die Daten von einer Withings Waage und Pulse mit einem Fhem-Server auf einem Raspberry Pi ausgelesen werden?

Dafür gibt es ein fertiges Modul in Fhem. Es müssen nur die zwei Zeilen mit den device, userid und publickey aus der Web-Oberfläche von Withings (alt)

define withings withings [device]
define withings> withings [userid] [publickey]

in der fhem.cfg ergänzt werden und ein restart des Fhem-Servers durchgeführt werden.

Dann kamm es bei mir zu folgender Fehlermeldung:

Can't locate JSON.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/32_withings.pm line 9, <> line 3.
BEGIN failed--compilation aborted at ./FHEM/32_withings.pm line 9, <> line 3.

An der Fehlermeldung kann man erkennen das JSON für Perl auf den Rasperry Pi nicht installiert war.
In der Modulbeschreibung steht auch das „JSON, LWP::Simple and Digest::MD5 have to be installed on the FHEM host“. Also noch ein paar Module neu installieren mit

sudo apt-get install libjson-perl libdigest-md5-file-perl liblwp-protocol-https-perl liblwp-protocol-http-socketunix-perl

auf der Konsole. Nach einem Restart, super es wird mein Gewicht angezeigt 🙁

Withings Daten in Fhem
Withings Daten in Fhem

Wie bekomme ich diese Gewichts-Daten nun in ein schönes Diagramm? Hat schon jemand eine passende gplot Datei? Dann bitte hier posten.

Wie wird auf dem Raspberry Pi der Fhem-Server in 15 min. installiert?

Der Fhem-Server läuft bei mir unter OpenWrt. Nun möchte ich in auf einem Raspberry Pi neu installieren. Vorbedingung ist ein laufender rPi unter Debian wheezy.

Zu erste Perl und einig libs installieren. Dann das Debian Package (8,8 MB) von der Fhem Seite runterladen und installieren. Zu guter letzt die Berechtigungen setzen.

Nach eingabe der URL http://[ip-vom-rpi]:8083 wird man mit der GUI des Fhem-Servers begrüßt:Bildschirmfoto 2014-01-17 um 14.36.50

Dann noch ein in dem Browser-Eingabe von Fhem oben, ein update und restart eingeben um den Fhem-Server auf dem neuesten Stand zu bringen.

Fhem kann auf der Konsole mit folgenden Befehlen gestartet oder gestopt werden. Auch der jeweilige Status kann abgefragt werden.

Wie kann auf einem Raspberry Pi ein Sicherheits und Spam-Schutz als IDS „fail2ban“ installiert werden?

Das ist auf der Konsole des rPi nach der Aktualisierung des Systems mit einem Befehl getan:

Weitere Infos zu fail2ban gibt es im MANUAL oder auf der Seite von Sergej Müller.
fail2ban

Hier noch eine Mindmaps, mit den Abhängigkeiten von fail2ban auf Debian von links nach rechts:

fail2ban

Oder noch eine zentrierte Mindmap:
fail2ban.circo

Hast Du noch weitere Infos zu diesem Thema? Welche der drei Mindmaps gefällt Dir am Besten?

Was kann getan werden, wenn die NTP-Zeitsynchronisation (Atomzeit) auf dem Raspberry Pi mit ntpdate not found fehlschlägt?

Wenn in der default Konfiguration die Zeitzone mit NTP automatisch abgeglichen werden soll, kommt es beim aufrufen von Webmin (https://IP:10000/)
Bildschirmfoto 2014-01-04 um 18.50.48

beim setzen des NTP-Servers (Atomzeit Physikalisch-Technische Bundesanstalt (PTB), Braunschweig, Germany , Hostname: ptbtime2.ptb.de ) zum Fehler: ntpdate: not found.
Bildschirmfoto 2014-01-04 um 18.49.49

Es muss das fehlende ntpdate Paket installiert werden. Das geht über die Konsole wie folgt:

sudo apt-get update
sudo apt-get install ntpdate

Wie können von einem Raspberry Pi Dateien in die Dropbox per Kommandozeile hochgeladen bez. gelöscht werden?

Es können leicht Daten vom Raspberry Pi von und nach Dropbox geschoben werden. So hat man seine Daten überall gleich.

Es gibt da ein super Script auf Github von Andrea Fabrizi

Es kann wie folgt installiert werden:

Dann auf Dropbox (mit vorhandenen Account und angemeldet)
https://www2.dropbox.com/developers/apps
gehen und eine App anlegen mit „Create App“ -> „Dropbox API app“ –> „Files and datstores“ –> Wichtig nur Zugriff auf das App Verzeichnis erlauben und einen „App Name“ eingeben.

Dann die App key und App secrect in das Script kopieren. Bei der Frage „Permission type, App folder or Full Dropbox [a/f]:“ a
Dann noch einmal: y

Die dann erscheinende URL in einem Browser kopieren und bestätigen. Dann auf Enter und das Script ist mit „Setup completed!“ erfolgreich beendet.

Ein kurzer Test mit im Dropbox-Uploader Verzeichnis

So dann noch mal testen ob das hochladen läuft, wir laden mal die Readme Datei hoch und anschließend ein list:
Bildschirmfoto 2013-12-29 um 20.48.41

Super, es klappt.

Nun noch mal die Version ausgeben mit:

Ausgabe:

Dropbox Uploader v0.14

Weitere Befehlt unter Usage.

Wie kann Webmin auf einem Raspberry Pi installiert werden?

Für die Fernwartung des rPi eignet sich Webmin. Damit kann fast alles über den Browser eingestellt werden.

Evl. gibte es auch schon eine neuere Version von Webmin.

Nach einigen Minuten warten, steht nach einen Aufruf im Browser von
https://Server_IP:10000
der Statusmonitor von Webmin bereit, nachdem die Anmeldung mit root mit Passwort eingegeben wurde:
Bildschirmfoto 2013-12-28 um 17.19.27

Welche Einstellung findet ihr nützlich?

Wie können E-Mails vom Raspberry Pi (rPi) inklusive Anhang mit mutt (nSMPT) versendet werden?

E-Mails vom Raspberry Pi aus versende geht wie schon für den WR703N beschrieben. Ist halt auch Linux.

Also hier noch einmal kurz zusammengefasst, die Installation für den Raspberry Pi mit zusätzlichem Beispiel für das versenden einer E-Mail via mutt inkl. Dateianhang. Vorraussetzung ist eine Raspberry 2014-09-09-wheezy-raspbian.zip installation.

Dann das System updaten und einige Tools installieren mit

Es sind dann folgende Versionen nach ein paar Minuten installiert:

Dann die drei Dateien wie in beschrieben anpassen:

Wenn alles konfiguriert ist, können E-Mails mit Anhang über mutt wie folgt versendet werden:

Nach Enter öffnet sich ein Eingabefeld für die Empfänger E-Mail (to). Bestätigen mit Enter oder anpassen. Dann kommt das Betreff (subject). Weiter mit Enter oder anpassen. Dann öffnet sich der default Editor (nano 2.2.6 oder vi) dort kann der Text der E-Mail eingegeben werden. Speichern (ctrl und O) und Beenden (ctrl und X). Es öffnet sich das mutt Fenster und y zum versenden der E-Mail mit Anhang drücken.

Schon wird die E-Mail versendet.

Oder ohne den mutt Dialog

versendet die E-Mail sofort nach Enter.

So lief es zumindestens auf einen Raspbeery Pi mit einem älteren Debian. Bei dieser aktuellen Version bekomme ich immer diesen Fehler mit mutt:

*** glibc detected *** sendmail: munmap_chunk(): invalid pointer: 0x0141153f ***

Da habe ich auch noch keine Lösung für gefunden. [UPDATE 1.11.2014] Habe den Fehler jetzt gefunden. In der Datei /etc/ssmtp/smtp.conf hatte ich unter rewriteDomain den Username hinzugefügt (rewriteDomain=username@wenzlaff.de) richtig ist aber nur der Domain Name z.B. rewriteDomain=wenzlaff.de. Damit läuft es nun super. [/UPDATE]

Habe es deshalb wie hier beschrieben mit einem nSMTP Client versucht. D.h. erstellen von /etc/msmtprc und (optional) .msmtprc.

Damit läuft das versenden von E-Mails erst einmal.

Hier die Config-Dateien für Strato:

Eine globale /etc/msmtprc Datei, wird gelesen wenn keine im Userverzeichnis vorhanden ist.

Die .msmtprc überschreibt die globale /etc/msmtprc Datei wenn vorhanden (optional).

Wenn die .msmtprc vorhanden ist, muss sie dem User gehören und darf nur für den User schreib und lesbar sein. Ein ls-la muss so aussehen

-rw------- 1 pi pi 479 Oct 13 22:53 .msmtprc

Also evl. noch anpassen:

Testen des E-Mail versand mit:

Ergebnis Auszug:

Habt ihr noch andere Alternativen oder ein Lösung warum mutt nich läuft? Dann hier als Kommentar posten.

Wie können die installierten Versionen der Packages/Programme auf einen Raspberry Pi angezeigt werden?

Manchmal will man wissen, welche Version von einem Programm bzw. Package auf den Raspberry Pi installiert ist und ob es eine (und welche) neue Version von einem Package oder Programm gibt.

Die Anzeige der Versionsnummern ist default nicht vorhanden, läßt sich aber mit

schnell nach installieren.

apt-get install apt-show-versions

Das

gibt dann eine Anleitung und alle Parameter des Programms aus:

apt-show-versions -help
apt-show-versions -help

Ein apt-show-versions gibt dann eine Liste aller Package mit Versionsnummern aus, hier ein kleiner Ausschnitt:
apt-show-versions
apt-show-versions

Will man wissen ob es neue Versionen gibt, hilft ein apt-show-versions -u
apt-show-versions -u
apt-show-versions -u

Weitere Parameter wie regex ua. siehe in der obigen Onlinehilfe.

Wer möchte kann hier weitere Befehle posten!

Wie können nicht AirPrint fähige Drucker mit Raspberry Pi als AirPrint Server via CUPS Server eingerichtet werden?

Mit AirPrint kann von einem iPad, iPhone, iPod touch und Mac sofort gedruckt werden, ohne vorher Treiber installieren oder Software laden zu müssen. Einfach einen AirPrint-Drucker auswählen und drucken.

Wer keinen AirPrint fähigen Drucker hat, kann ihn mit einen rPi und CUPS dazu leicht verwenden, so das über das iPhone, iPad bzw. Mac gedruckt weden kann.

Es gibt dazu diese gute Anleitung die super mit meinem HP LJ 2600n über das Netzwerk funktioniert. Es sollte aber auch alle anderen Drucker laufen.

Diese Seite kurz zusammengefasst:

Über Browser die Adresse

aufrufen und Option “Freigeben von Druckern welche mit diesem System verbunden sind” aktivieren und den Drucker einrichten.

CUPS Drucker Seite
CUPS Drucker Seite

CUPS Seite Verwaltung
CUPS Seite Verwaltung

AirPrint einrichten mit dem Py-Script:

Restart:

So jetzt kann von jedem Apple Gerät über AirPrint gedruckt werden. Oder über den Mac.

Tip: Wer Fehler suchen muss, kann in der
/etc/cups/cupsd.conf
Datei den LogLevel warn auf
LogLevel debug2
setzen. Dann werden mehr Ausgaben nach /var/log/cups/error_log geschrieben. Man kann sich diese Datei auch mit
tail -n 100 -f /var/log/cups/error_log
ausgeben lassen. Damit die geänderten Einstellungen wirksam werden, muss der CUPS Server mit
sudo service cups restart
restartet werden.

Wenn ein virtuelle PDF-Drucker mit cups-pdf eingerichtet wird, werden die PDFs default mäßig in
/var/spool/cups-pdf/ANONYMOUS
gespeichert. So können, ohne das ein Drucker angeschlossen ist, jederzeit von iPhone, iPad und Mac nach PDF „gedruckt“ werden.
Der PDF-Drucker kann so eingestellt werden:
Bildschirmfoto 2013-12-25 um 10.32.32

Super! Klappt es bei Dir auch?

Habe noch diese gute Anleitung mit vielen Fotos in engl. gefunden.

Wie kann die BackTrack Linux Penetration Testing und Security Auditing Linux Distribution Kali auf einem Raspberry Pi installiert werden?

Zuerst das gepackte Kali Image kali-linux-1.0.5-armel-rpi.img.xz (ca. 2 GB) von Kali.org herunter laden. Auch noch die beiden Signatur Dateien SHA1SUMS und SHA1SUMS.gpg aus dem gleichen Verzeichnis.

(Optional Signatur/Unterschrift vergleichen)

(Optional) Checksumme des geladenen Archive vergleichen. Auf der Kali Homepage ist die SHA1Sum angegeben (61dfcf2272d5f63345c29f0d2c92c630777856ab). Um die zu vergleichen muss auf dem Mac noch mit

das Checksummenprüfprogramm installiert werden, wenn es nicht schon vorhanden ist. Das ist default bei Mac OS X 10.9.1 nicht der Fall. Dann der Aufruf

um die SHA1Sum Checksumme anzuzeigen.
Bei meiner Version wird diese Checksumme ausgegeben 61dfcf2272d5f63345c29f0d2c92c630777856ab kali-linux-1.0.5-armel-rpi.img.xz. Verglichen mit der angegebenen. Beide gleich. Alles ok!

Die Datei kali-linux-1.0.5-armel-rpi.img.xz entpacken wir erhalten dann die kali-linux-1.0.5-armel-rpi.img (es sind dann ca. 8 GB) mit

Image nun auf eine mind. 8GB SD-Karte schreiben, vorher schauen wo die SD-Karte gemountet wurde.
Achtung! Bei falschem Ziel kann evl. die ganze Festplatte gelöscht werden!

Stunden später.

Evl. schauen wie weit das Kopieren ist, indem in einem anderem Terminal die ProzessId ermitteln wird mit:

Unmounten der SD-Karte wenn alles fertig.

Mit ssh anmelden im Terminal:

Passwort: toor

Nun muss nur noch der SSH Schlüssel und das Root Passwort geändert werden, da alle Images das gleiche verwenden.

Evl. vorhandenen SSH Key löschen in

Root Passwort ändern mit

So jetzt kann mit dem Kali Linux auf dem rPi gearbeitet werden.

Mit gui vorher startx starten.

Viel Spaß.

Hast Du Vorschläge für die Anwendung?

Wie kann auf einem Raspberry Pi (rPi) ein Bootloader „BerryBoot v2.0“ ohne Monitor über VNC installiert werden?

Um den Bootloader BerryBoot zu instalieren, braucht man nur das ZIP-Archive laden und auf einer leeren SD-Karte auspacken. So das alle Datein im Root-Verzeichnis liegen.

Um eine Instalation ohne Monitor mit VNC durchzuführen, muss die cmdline.txt Datei um diesen Eintrag ergänzt werden, aber alles in eine Zeile:
vncinstall ipv4=192.168.88.88/255.255.255.0/192.168.88.1 wie auch in beschrieben. Das Format ist: IP/netmask/gateway.

Dann die SD-Karte in den rPi einlegen und booten und den VNC-Client starten. Es öffnet sich das Boot-Menü von BerryBoot:
Bildschirmfoto 2013-11-04 um 18.06.07
Dann wie in den Dialogen angegeben vorgehen. Weitere Details gibt es hier.

Nach dem reboot, kann über eine neue VNC connetion, das Bootmenü angezeigt, und das entsprechende Image gebootet werden:
Bildschirmfoto 2013-11-04 um 21.05.17

Wie kann ein VNC-Server auf ein Raspberry Pi installiert und mit VNC-Client von Mac, iPad und Windows darauf zugegriffen werden?

Ein Virtual Network Computing (VNC) zeigt den Bildschirminhalt auf einen entfernten Rechner (VPN-Client) an.

Ein VNC-Server ist auf dem rPi schnell eingerichtet. In der Konsole folgende Befehle eingeben:

sudo apt-get update
sudo apt-get install tightvncserver

Und dann starten des VNC-Servers mit:
vncserver :1
es muss ein 8-Stelliges Passwort vergeben werden und bei der Frage nach view-only mit nein antworten.
Der VNC-Server startet dann mit
Bildschirmfoto 2013-11-02 um 17.40.43

Jetzt können wir mit einem VNC-Client über das Netzwerk zugreifen. Wir verwenden für den Mac OS X den kostenlosen TightVNC. Diesen Client gibt es auch für Windows.
Nach dem Download von TightVNC Java Viewer (Version 2.7.2) und auspacken des Archives kann der Client gestartet werden mit:

java -jar tightvnc-jviewer.jar
in dem Verzeichnis wo das Archiv ausgepackt wurde. Es öffnet sich dieser Dialog:
Bildschirmfoto 2013-11-02 um 17.46.22
Dort die IP-Adresse des rPi eingeben. Nach klick auf connect wird das SSH Passwort abgefragt und dann das VPN-Server Passwort.
Schon erscheint der Deskop vom rPi über das Netzwerk per VNC:
Bildschirmfoto 2013-11-02 um 17.49.16
Von dort kann dann ziemlich schnell alles mit Maus und grafisch gestartet werden. Z.b. der Browser:
Bildschirmfoto 2013-11-02 um 17.30.40

Stoppen kann man den TightVNC VNC-Server mit:
vncserver -kill :1

Mit einem iPad oder auch mit Windows kann man über das kostenlose Programm Mocha VNC Lite auf den rPi zugreifen. Dort braucht dann nur in der Konfiguration die VNC Server Adresse, der Server Port 5901 und das VNC Passwort eingegeben werden. Dann zurück zum Menü und klick auf Connect. Schon ist der Desktop vom rPi zu sehen.

Greift man nur mit dem iPad auf den Server zu, kann man den Server auch etwas optimiert starten mit
vncserver :1 -geometry 1024×768 -depth 24

Und will man den VNC-Server automatisch nach dem Neustart des rPi starten dann, einfach ein neues Verzeichnis anlegen:
mkdir /home/pi/.config/autostart und dort eine Datei mit Namen tightvnc.desktop anlegen mit folgenden Inhalt:

[Desktop Entry]
Type=Application
Name=TightVNC
Exec=vncserver :1
StartupNotify=false

Wie werden täglich automatisch und unbeaufsichtigt aktuelle Sicherheits updates auf den Raspberry Pi geladen und installiert?

Es können automatisch Sicherheits-Updates auf den Raspberry Pi geladen und unbeaufsichtigt installiert werden.
Dazu muss das unattended-upgrades Package installiert werden mit
sudo apt-get install unattended-upgrades
Dann in der Datei:
sudo vi /etc/apt/apt.conf.d/50unattended-upgrades
die gewünschten Aktionen ein oder aus kommentieren.

Und die Datei
sudo vi /etc/apt/apt.conf.d/10periodic mit folgenden Inhalt anlegen:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

Diese Einstellung bewirkt einmal täglich das updaten der Package-Liste, das downloaden und installieren.
Einmal wöchentlich werden die Archive gelöscht.

Die Logausgabe werden in die Datei
/var/log/unattended-upgrades/unattended-upgrades.log geschrieben, hier ein Auszug der letzten zwei Tage wo nicht viel passiert ist:
Bildschirmfoto 2013-10-24 um 17.10.56

Weitere Infos siehe auch im Dateianfang der /etc/cron.daily/apt Datei.

Mit sudo unattended-upgrades --dry-run kann auch ein trockenlauf angestoßen werden, um zu sehen ob alles richtig eingestellt ist.

Wie kann die Betriebstemperatur eines Raspberry Pi ausgelesen werden?

Habe den rPi nun in ein Gehäuse eingebaut. Hatte mich über die blaue Farbe gefreut. Noch besser sieht es aber aus, wenn man die blaue Folie abzieht ;-). Hatte erst gar nicht gemerkt, das die auf beiden Seiten beklebt war. So sieht es super aus:

20131022-171158.jpg
Ok, nun zu der Frage, ob es da im Gehäuse zu warm wird. Dazu kann man mit den folgenden Befehl
/opt/vc/bin/vcgencmd measure_temp
auf der Konsole die Temperatur ausgeben.
Jetzt ist es bei mir
temp=45.5'C
mal sehen wie sich das so nach ein paar Stunden entwickelt.

Wie nehme ich einen Raspberry Pi inkl. Java auf einem Mac in Betrieb?

20131016-221009.jpg

1. Download eines Image von . Z.b. das 2014-09-09-wheezy-raspbian.zip Archiv. Das zip Archiv entpacken.

2. SD Karte (z.B. 8 GB) in einstecken und ermitteln welches Device es am Rechner ist unter Apple Menu –> Über diesen Mac –> Weitere Informationen… –> Systembericht –> Hardware ->USB –> Unter USB Hochgeschwindigkeits-Bus / Hub / Integrierter Speicherkartenleser dann die Info unter BSD-Name:
In meinem Fall ist es: disk3

Oder mit diskutil list schauen.

3. sudo diskutil unmount /dev/disk3s1

4. sudo dd if=Downloads/2014-09-09-wheezy-raspbian.img of=/dev/disk3 bs=1m
Jetz ca. 60 min warten bis die Meldung

2825+0 records in
2825+0 records out
2962227200 bytes transferred in 2020.681419 secs (1465955 bytes/sec)

kommt. Dann kann die Karte ausgeworfen und in den Raspberry Pi gesteckt werden.

5. Netzwerkkabel anschließen und Strom anschalten.
Per ssh pi@10.1.1.1 (Adresse anpassen)
und Passwort: raspberry im Terminal anmelden.

6. Auf dem Prompt raspi-config eingeben und Konfigurieren der Sprache (de_DE.ISO-8859-15@euro), Erweiterten Speicher, SSH Server, neues Passwort und auf neueste Version updaten. Restart. Alles über diese schöne GUI:

Raspberry Pi Konfig Menü
Raspberry Pi Konfig Menü

7. Und testen ob Java installiert ist mit java -version, JA sogar die Version 1.8:
Java 1.8

8. Und System noch updaten mit:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get clean
# Firmware update
sudo rpi-update
sudo ldconfig
sudo reboot