Raspberry Pi: Temperaturen und Luftfeuchtigkeit aus Langenhagen, aktuell 42 Grad Celsius – alle 5 Minuten neue Werte direkt von der Terrasse

Weil es heute so heiß ist, wollt ich die Temperaturen die auf der Terrasse gemessen und drahtlos zum Fhem Server gesendt werden, mal hier veröffentlichen.

Wie können die Werte an ThingSpeak gesendet werden. Einfach in der fhem.cfg diesen Eintrag machen: „Raspberry Pi: Temperaturen und Luftfeuchtigkeit aus Langenhagen, aktuell 42 Grad Celsius – alle 5 Minuten neue Werte direkt von der Terrasse“ weiterlesen

Raspberry Pi: SNMP (Simple Network Management Protocol) installation in einer Stunde und Abfrage der CPU Temperatur per SNMP

Wie kann net-snmp auf dem Raspberry Pi installiert werden? Da es noch kein fertiges Package für den Raspberry Pi (Kali) gibt, ist selbst compilieren angesagt.

Wenn diese Bestätigung kommt:
snmp
Dann weiter mit compilieren und installieren. Das kann eine Stunde dauern … „Raspberry Pi: SNMP (Simple Network Management Protocol) installation in einer Stunde und Abfrage der CPU Temperatur per SNMP“ weiterlesen

Raspberry Pi: Kismet WLAN Auswertung in Hannover und Langenhagen in 2015

Wie hier beschrieben, können die Kismet Dateien auch ausgewertet werden, da sie in einer DB vorliegen. Also erst einmal die Anzahl der vorhandenen WLANs die in 2015 mit einem Raspberry Pi und Kismet inkl. GPS Modul in Langenhagen und Hannover empfangen wurden.

Ausgabe: 4416

Nun wollen wir mal sehen, wie so die jeweiligen Verschlüsselungsmodus sind.

Ausgabe:

None |645
WEP |77
WPA Migration Mode WEP40 WPA+TKIP WPA+PSK |1
WPA+AES-CCM |143
WPA+PSK WPA+AES-CCM |1630
WPA+TKIP |12
WPA+TKIP WPA+AES-CCM |32
WPA+TKIP WPA+PSK |124
WPA+TKIP WPA+PSK WPA+AES-CCM |1752

Diese Daten in einer Grafik:

Wardrive Result in Hannover und Langenhagen
Wardrive Result in Hannover und Langenhagen

UPDATE 5.4.15: Neue Auswertung mit Basis 10012 Einträge aus Hannover und Langenhagen. Die wireless.dbl hat jetzt eine Größe von 5,5 MB.

Die nicht verschlüsselten WLANs sind meistens kostenpflichtige Zugänge von Kabel-Deutschland und auch von der Telekom. Hotels und Geschäfte haben auch oft öffentliche WLAN Zugänge. Ein paar private User sind aber auch dabei 😉

Raspberry Pi: Wie kann ein Hardware-Reset-Taster eingebaut werden?

Der Lötkolben war gerade noch heiß, deshalb noch mal eben zwei Kontakte an dem Raspberry Pi (Model B Revision 2.0, ältere Rev. haben diese Reset Logik nicht, meiner hat Rev. 7, siehe cat /proc/cpuinfo) angelötet. In der 2 Rev. des rPi kann an P6 eine Steckerleiste angelötet werden. Wenn diese beiden Kontakte über einen Taster geschlossen werden, wird ein Hardware-Reset ausgelöst. Ist evl. mal ganz hilfreich.

Hier findet Ihr die zwei P6 Lötpunkte, an denen ich die Steckerleiste angelötet haben:

Reset Lötpunkte
Reset Lötpunkte
„Raspberry Pi: Wie kann ein Hardware-Reset-Taster eingebaut werden?“ weiterlesen

Jessie: RPI-Monitor für den Raspberry Pi installieren

Dieser Entwurf aus dem letzten Jahr, wollte ich nun auch noch veröffentlichen. Wer einen RPI-Monitor braucht:

Wie hier gut beschrieben die Version 2.6.1 installieren, da die aktuelle Version 2.9.1 unter jessie nicht läuft.

Aber auch auf der RPI-Monitor Seite wird die Installation ausführlich beschrieben.

Nun im Browser http://IP:8888/ aufrufen.

Bildschirmfoto 2014-11-02 um 19.58.24
„Jessie: RPI-Monitor für den Raspberry Pi installieren“ weiterlesen

Raspberry Pi: GPS-Module GY-GPS6MV2 einrichten

Haben nun auch einen GPS-Empfänger (Datenblatt (pdf)) bekommen. Hier ein paar Highlights:

  • Model: GY-GPS6MV2
  • Power Supply Range: 3 V to 5 V
  • Ceramic antenna
  • EEPROM for saving the configuration data when powered off
  • Backup battery
  • LED signal indicator
  • Antenna Size: 25 x 25 mm
  • Module Size: 25 x 35 mm
  • Default Baud Rate: 9600 bps

Klein und billig: „Raspberry Pi: GPS-Module GY-GPS6MV2 einrichten“ weiterlesen

Raspberry Pi: „Man merkt oft erst, was man hatte, wenn man es verliert“

Nach dem Motto „Man merkt oft erst, was man hatte, wenn man es verliert“, mal die Package entfernen die nach einer Neuinstallation von mir meistens nicht benötigt werden, und nur Platz verschwenden, da der Raspberry Pi bei mir immer über die Kommandozeile per SSH bedient wird.

Es werden also keine X-Server usw. benötigt. Für Packages die nicht installiert sind, braucht es auch keine Sicherheitsupdates und wenn man doch mal ein Package braucht kann man es ja auch leicht wieder installieren.

Jetzt kann mal mal mit df -h schauen, was man verloren hat:
df -h

Ok, auf der 8 GB Karte ist noch 6 GB Frei!

Oder habe ich noch was vergessen, was nicht benötigt wird (dpkg --list)? Gern als Kommentar.

Raspberry Pi: Neue Firmware vom 17.10.2014 (Version 3.12.30) installieren

Vor ein paar Tagen ist eine neue Firmware für den Raspberry Pi erschienen. Wie kann die installiert werden? Wie kann die installierte Version angezeigt werden?

Am einfachsten benutzt man den update Befehl sudo rpi-update mit dem Hexxeh updater. Wenn es eine neue Firmware gibt, wird die in ein paar Minuten installiert. Wenn die Firmware schon aktuell ist, wird auch eine Meldung ausgegeben.

So läuft der Updateprozess:

Wie oben steht, ist nun noch ein sudo reboot nötig und die neue Firmware ist aktualisiert.

Ist die Firmware schon aktuell, gib es folgende Meldung:

Aber wie kann nun die aktuelle Version angezeigt werden?

Mit

Ergebnis:

Oder auch mit mehr Details:

Ergebnis:

Dabei ist der lange Sting hinter Version der Hashwert der Version.

Sollte der rpi-updater nicht vorhanden sein, kann er leicht wie auch hier beschrieben mit

installiert werden. Er wird dann diese Abhängigkeiten, wie in dieser Mindmap verwenden:
rpi-update

Die aktuellste Firmware gibt es auf Github. Dort gibt es auch die Beschreibung, was es neu gibt. Zitat:“

Wie wird Truecrypt 7.1auf einem Raspberry Pi installiert?

Truecrypt 7.1 kann gut wie in dieser Anleitung beschrieben installiert werden.

Hier in Kurzform wie die nötigen Packages geladen, ausgepackt und selbst compiliert werden können, da es für den rPi keine fertigen Packages gibt. Der compile Vorgang dauert ca. 1 Stunde, dabei darf das Terminal Fenster nicht geschlossen werden.

Ergebnis: TrueCrypt 7.1a

Nun alle Befehle ausgeben mit:

liefert die Anleitung:

Raspberry Pi BPMN 2.0 update Prozess Diagramm als Grafik exportieren

Dieser BPMN 2.0 Prozess wurde mit Eclipse modeliert und dann als Grafik exportiert.
raspberry-pi-update

Diese BPMN 2.0 Diagramme können auch leicht als Grafik exportiert werden. Dazu in dem Diagramm mit rechts klick und dann im Kontexmenü auf „Export Diagram…“.
Bildschirmfoto 2014-10-22 um 18.15.54
Es öffnet sich dann der Export Dialog, dort können nun im BMP, GIF, JPG, PNG oder RLE Format die BPMN 2.0 Diagramme exportiert werden.
Bildschirmfoto 2014-10-22 um 18.16.27

Raspberry Pi: Sniffen mit TShark, aber nicht als root User

Zuerst mal eine Mindmap zu TShark, dem Kommandline-Tool von Wireshark (frühe Ethereal).
tshark

Installation

Zuerste den rPi aktualisieren und das Packet installieren mit:

Zuerst einmal die Befehle und die Version für die Komandozeile mit

ausgeben:

Erst wollen wir uns die vorhandenen Interfaces anschauen und die Nummer merken.

Liefert die folgende Liste der verfügbaren Interfaces:

1. eth0
2. wlan0
3. wlan0mon
4. any
5. lo (Loopback)
6. nflog
7. nfqueue
8. usbmon1

Dann mal 10 Sekunden in die Datei traffic.pcap den Netzwerkverkehr von 1 (eth0) sichern mit:

Kommt es zu dieser Fehlermeldung:

dann nicht aus Sicherheitsgründen mit sudo starten. TShark sollte nicht als root ausgeführt werden und der aktuelle User hat nicht die Rechte auf die Schnittstellen zuzugreifen.

Abhilfe

Den aktuellen User (hier pi) für den Zugriff reconfigurieren mit:

Es erscheint so ein Dialog:
Bildschirmfoto 2014-10-10 um 15.32.32
Dort mit Ja antworten.

Damit die Berechigung für den User (pi) gesetzt wird, und es nicht zu dieser Fehlermeldung kommt:

Einmal:

Dann einmal abmelden:

und wieder anmelden.

Schon können Dateien im PCAP Format auf dem Raspberry Pi erzeugt werden und auf einem anderen Rechner mit Wireshark ausgewertet werden.

Wie kann die Demo-Anwendung von OpenHab auf dem Raspberry Pi erweitert und von einem iPad bzw. iPhone aufgerufen werden?

In diesem Blog Beitrag habe ich beschrieben, wie OpenHab auf den rPi eingerichtet wird. Nun wollen wir analog zur Demo-Anwendung eine eigene Haus-Anwendung schreiben bzw. erstellen und sie nach und nach erweitern.

So sieht die Demo-Anwendung aus:
Bildschirmfoto 2014-10-03 um 16.37.11

Die Demo-Anwendung wird wesentlich in zwei Dateien bearbeitet die man sich mal anschauen sollte:
1. /configuration/items/demo.items
2. /configuration/sitemap/demo.sitemap
„Wie kann die Demo-Anwendung von OpenHab auf dem Raspberry Pi erweitert und von einem iPad bzw. iPhone aufgerufen werden?“ weiterlesen

Wie kann das Sicherheitsupdate für die Linux-Bash (CVE-2014-6271) des Raspberry Pi gescheckt und installiert werden?

Wie in dem Heise Artikel beschrieben, gibt es in der bash eine Sicherheitslücke CVE-2014-6271.

Das sind die Abhängigkeiten der bash, auf meinem Raspberry Pi (Debian, Jessie)

bash

Für den Raspberry Pi gibt es schon ein Update. Ob das System verletzbar ist kann wie folgt in der Konsole getestet werden:

Wenn das System verletzbar ist, wird „verwundbar“ ausgegeben:

Bildschirmfoto 2014-09-25 um 19.04.31

Auch mit:

Bildschirmfoto 2014-09-25 um 19.05.21
bekommt man den Hinweis, das ein Update möglich ist.

Also den rPi updaten mit:

Dann noch checken, mit dem Test:
Bildschirmfoto 2014-09-25 um 19.08.36
Ok.
Und noch mal die Version checken:
Bildschirmfoto 2014-09-25 um 19.09.08
Ok, wir sind nun wieder auch der sicheren Seite oder doch nicht (ShellShock) (CVE-2014-7169).

Wie wird auf dem Raspberry Pi die aktuell installierte Debian Version angezeigt?

Wer die Raspbian Debian Wheezy Version: September 2014 installiert hat, hat die neueste Version vom Release: 9.9.2014 URL: raspbian.org mit Kernel version: 3.12. installiert.

Wie kann auf dem rPi diese Infos ermittelt werden?

Der Name und die Release Version steht in der Datei /etc/issue und kann auf der Konsole mit:

ausgegeben werden. Es wird bei mir ausgegeben:

Details unter „Wie wird auf dem Raspberry Pi die aktuell installierte Debian Version angezeigt?“ weiterlesen

Wie kann für Präsentationen usw. eine Schlagwortwolke (tag cloud, word cloud) erzeugt werden?

Wer eine einfach Schlagwortwolken braucht, kann so was über tagcrowd.com kostenlos erzeugen lassen.Bildschirmfoto 2014-09-04 um 12.55.21

Schönere Ergebnisse, gab es hier bei wordle.net/create. Dazu muss aber Java im Browser aktiviert werden. So sieht das Applet aus:
Bildschirmfoto 2014-09-04 um 13.29.42

Hier mal sechs Beispiele, die Möglichkeiten sind unendlich:

Bildschirmfoto 2014-09-04 um 12.59.08Bildschirmfoto 2014-09-04 um 13.11.23 „Wie kann für Präsentationen usw. eine Schlagwortwolke (tag cloud, word cloud) erzeugt werden?“ weiterlesen

Wie kann Mathematica bzw. Wolfram vom Raspberry Pi Modell B+ entfernt werden, um ca. 500 MB Speicher freizugeben?

In dem guten Artikel von Michael Kofler wird in Kurzform ein schöner Überblick über das für private Nutzung kostenlose Wolfram gegeben. Das mit allen Raspberry Pi ausgelieferte Wolfram, nimmt nur sehr viel Platz auf der Karte ein, ca. 500 MB.

Kein Wunder bei diesen Abhängigkeiten:
wolfram

Bevor es gelöscht wird, muss aber noch einmal schnell ein „Hallo Welt“ programmiert und ausgeführt werden. „Wie kann Mathematica bzw. Wolfram vom Raspberry Pi Modell B+ entfernt werden, um ca. 500 MB Speicher freizugeben?“ weiterlesen

Wie kann das klassische Tool, nmap Version 6.46 zum Analysieren eines LANs (und auch WLANs) auf einem Raspberry Pi installiert werden?

Habe schon in einigen Beiträgen von nmap berichtet. Heute wird die Installation und erste Befehle für den Raspberry Pi beschrieben.

Die Aktuelle nmap Version 6.46 braucht nicht aus den Sourcen compiliert werden, da es für den rPi fertige Packages gibt (Update: 26.07.2018: aktuell 7.4. obwohl es schon eine 7.7. gibt, aber noch nicht für den PI)

Also erst das System auf den aktuellen Stand bringen und nmap installieren:


sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nmap

Nach ein paar Minuten ist nmap installiert. Erster Test, ausgabe der nmap Version:

nmap -version

Das Ergebnis:
Bildschirmfoto 2014-07-22 um 20.19.37

So, jetzt den ersten Scann aller vorhandenen Adressen, aber nur auf eigene Netzwerke wie hier beschrieben:

nmap -sP 192.168.2.0/24

Schon werden alle 256 IP Adressen in 8 Sekunden gescannt:

Host is up.
nmap done: 256 IP addresses (15 hosts up) scanned in 8.41 seconds

Oder alle offenen Ports anzeigen mit:

nmap localhost

Oder wenn man das Ziel Betriebssystem ermitteln will, das dauert aber etwas:

nmap -O -v localhost

Manchmal braucht man eine Liste aller Hosts im Netzwerk, das geht so:

nmap -sn 192.168.2.0/24

Und eine Mindmap zu nmap
20130824-082515.jpg

Eine sehr ausführliche deutsche Beschreibung gibt es unter

man nmap

Welche Befehle findet ihr noch nützlich?

Wie kann ein Passwortgenerator (pwgen) auf dem Raspberry Pi installiert werden?

Wer sich Passwörter leicht generieren möchte, kann das mit dem coolen Tool pwgen tun.
Dieser Generator ist schnell installiert mit:

apt-get update && apt-get upgrade
apt-get install pwgen

Dann einfach pwgen eingeben und es werden Passwörter generiert, hier ein Beispiel (natürlich diese nicht verwenden ;-)):

Piec3Eeg oothei5J Jah5eyoo eeya3IeM pi3ahyeT Zohw0udo oovai7Ji Nohgha6j
voP5ieho Ahpit7ta neiX6eex ni6zu1Ei lahV4aix Heuth7Ch kie5Zaim oache8Oo
ooPh3xof Hied4she quuph3Qu lai3Aefu ruaF2rie Ing7faes quoh7taP nieNoa9f
aiTh4sho iecheiT6 Ahj2wah8 Cee6uu1x Iefah3oh pah3Jode yoBoh7oo Aicea4qu
la5uoSee Lesai2ha XeiKie5E meiNg1Ov poogee6W she9Ohji lieJ6Poh EiC1veit
Zouc9sei pie1NaMi jaiph3iS pixei7Ei nei8eeCi kiel4Yoo Chah5ale dei1tieZ
AiSahB3D ohy6Air6 Ozie4qui uiG1Eoji Jeireo0t hedooY3i od1vauDe eereF5ku
ootei4aZ ieB0ij9e ahgia2Oo Eeng2tah AiWi2aiz JaeR3hio ieTie9ti aeN8seid
ieg9Ea2f ahth0Oon goeQu6ae eivee7Ei toh7Ding Ohhein3w hiph0Aec sheiJie0
sheeBo7u dooYah4e gai4og2E aih6Epha Shuth3Ju cheaLoK9 oo2BuM5a nae0ooTh
eakeeHa9 ohB2aqu9 Ahxuz5fo si2Paexu iek5cieH eejie3Gu eeTh6tai ashuu4Ai
Aibux0ua Rohghoh1 Jahp2Uhu rie4xeCu IeJ2leiR gia3OoRo An2ohJae auJa6mai
iub1Pei6 Tei7Hahd chib6Hei ouf6Zooc As1tasae fee2Jang ahcee4Ie Mahke0io
paw6UJai Quuc8wa3 oe7Wurah iJu1ieG3 ohgh6Poh eeKo7ip9 fahjooM3 ooS1ohju
xua7riZo pueW0iex sheig3Al Zeuc0min Oor7keet dahm4ahH Ki8aiqua bee9Choh
GaisaeN5 aijo7EiB die9Aipo Ne8ohvoo leSheK5d vei3Regi ishung5W Nue3Aide
Aiw9aibo ieTah2ug Iey9eeng iehoh0Oe Fai3OhSo uPhae6Ie It9oeyiu dahNgoh9
mio6EiGe Eichee3u ku4veiSh eu3Ohsev pish5AB3 Ishir7ai thei2Sai Lae0phei
Fer2ki3W xoop0Wae uM9engee cha8cahB Iexeip0I Ze1avo2a zohZoh2K ohg3Ooco
Eijoh1Ee Yiex6ahh Ov8onuSh Wug1yuo5 phewee8A Gohqu6io Deighoo4 ielo2eiJ

Der pwgen hat aber noch mehr Optionen, die werden mit:
pwgen -help
oder mit
man pwgen
angezeigt:
Usage: pwgen [ OPTIONS ] [ pw_length ] [ num_pw ]

Options supported by pwgen:
-c or --capitalize
Include at least one capital letter in the password
-A or --no-capitalize
Don't include capital letters in the password
-n or --numerals
Include at least one number in the password
-0 or --no-numerals
Don't include numbers in the password
-y or --symbols
Include at least one special symbol in the password
-s or --secure
Generate completely random passwords
-B or --ambiguous
Don't include ambiguous characters in the password
-h or --help
Print a help message
-H or --sha1=path/to/file[#seed]
Use sha1 hash of given file as a (not so) random generator
-C
Print the generated passwords in columns
-1
Don't print the generated passwords in columns
-v or --no-vowels
Do not use any vowels so as to avoid accidental nasty words

Wenn ich also eine Liste von 20 Stelligen sicheren (s) Passwörtern und keinen ähnlichen Zeichen (wie l und 1) haben möchte (B), kann ich folgenden Befehl absetzen:

pwgen -sB 20

Das Ergebnis:

YgjNwvYemaAhWx9fHThg ATwxvf3NJwYntwxjWWzL CWRYn9KaAus4YLfb4Cro
XCPtEXNmUiAEP4ULizgN XepEta7NjypmFJfCzHsc N7kFENh3PMi9qbVwryKb
gNwjqveYkshdaL4gjehT fjzzmNfgtnVoaCH7dVKt rb3suCzadpj7fp9y3JHt
s3YwxAUqMrNNANPmWxFa FsuWngN9qLqXp7jTxJr7 VcWyXgskfAyuvzHeLh7e
7wEjhadTdmAe4Riz3oaH MAogzqyiYVegJFx4nwqa sAwW3w4V7mUmUsiWEN44
KeMeAb9kfHuyAsh3W4oL N9NXjWV3JVgddeas7vWz PhoCNLzxHNEdtCxo4MYh
MsRLj44Xe4uvM4oLTdxa HLVvqq94TqrnyycbaKJC sx3rcnYrMFcaq9nFHChT
Jvc3TtLUHpnbqFpbjWYe r4z4R7Uzc7jyLAVd9wNu vkgdqkmsUnNTR3aJXcTm
UArR4WCcndEnNRPorr7e cCW9TYjizh3FxLEMiWsd dqxu3NWgEWEcVnR7kdtb
KorKCagv3tiFPedRCxY4 MvaKWq4aMfuvqudKNATv dPgR4rFyMfjiMCwx4mac
PrnmoJwiHd4sNtpUhwrt 44uFHPxgsqvvkxCUfTMg iofY9kMvqjFnLrzREtAV
XVXAoe3eHvFArCvphhRJ 7ozVRLVAcWwKnwsy47oy wEjehHscpLXRMuvxua9z
EKvChrkLfXdRuWT4U9WH KyAjaTXuh7xkeFb3RoRU VNz33urjqEAMtNFgNMoL
e49ic3ceuAwabgfKrxdj PkR4ETdqKufWcep7hscx bxwRRALNVWkEqqAM9bRm
EYqqLnjR3exqpmNo9bMp fpvuh4CarVLXhwsULodK oedNeFstpnryXV9qvYmY
n4ptWFwmLw9XmvgEteRX vimxprjruksCK3iaTzxn EVCJFvPAiu4NK9cNgKda
vMFw4wJvfkpuuCjtz4rb UFd4HLqVvV7awtJHWwHf rftMpbCTuHzbLU3YEMeg
FUveaeHvV4dLdFwfuaF3 WdYqhCxe3rC9fLxUHJjc YmgzCkzkLqdTqfJry9jX
UnfEPWVqk3kPkhEcbKCs Whho7FfCtuqbbgEKtJvj CFu4AsMHANnw4HXpem3t
4TWweTY7iEqqPqpeX9en 3Viq7hqkh3FwsgpEnmzX Yw4bfMmJAotymPTJkfjM

Viel Spaß beim generieren von Passwörtern?

Wie kann die aktuellste Node.js v0.10.29 auf einem Raspberry Pi (Version Jessie) installiert werden?

Wer die neue Node.js v0.10.29 braucht, muss sie selbst compilieren, oder etwas warten bis die binaries hier auch vorhanden sind.

Dazu erst mal das System aktualisieren.

sudo apt-get update && sudo apt-get upgrade

Dann noch die neueste Firmware installieren mit:

sudo rpi-update
Ergebnis:
Bildschirmfoto 2014-06-21 um 18.37.49

Ein reboot ist noch nötig:

sudo reboot

Jetzt kann es losgehen mit der Installation der nötigen Pakete (ca. 84 MB):

sudo apt-get install git-core build-essential python libssl-dev nano screen

Nun das Node.js Repo nach /opt clonen und die aktuellste Version auschecken:

cd /opt
sudo git clone https://github.com/joyent/node.git
cd node

Ergebnis:
Bildschirmfoto 2014-06-21 um 18.52.15
Nun die gewünschte Version auschecken mit:

sudo git checkout v0.10.29

Ergebnis:Bildschirmfoto 2014-06-21 um 18.52.04

Nun starten wir das Tool screen mit:

screen

damit beim beenden der SSH Session, der Prozess weiter läuft.

Und nun compilieren wir wie in https://github.com/joyent/node beschrieben mit:

sudo ./configure
sudo make
sudo make install

Das dauert dann so ca. 2-4 Stunden.

Wir können das Terminal Fenster schließen und mit

screen -r

wieder jederzeit die Session aufnehmen.

Nun noch den Pfad in der ~/.profile Datei ergänzen mit:


nano ~/.profile
export PATH=$PATH:/opt/node

Checken ob node installiert wurde mit

node --version

Ergebnis:

Bildschirmfoto 2014-06-22 um 08.50.32

Oder das Testportfolio mit 601 Test ausführen (Laufzeit bei mir 22 Minuten) mit:

sudo make test

Bildschirmfoto 2014-06-22 um 14.26.05

Ein Fehler, das ist nicht so schlimmm 😉 Rest läuft ja.

Dann evl. noch die Dokumentation erstellen, mit

sudo make doc

nach ein paar Minuten kann z.B. mit

man doc/node.1

die Doku gelesen werden:
Bildschirmfoto 2014-06-22 um 14.31.55

Oder ein kleines Hallo Welt Beispiel. Die node Konsole aufrufen mit node und console.log("Hallo Welt") eingeben:

Bildschirmfoto 2014-06-22 um 14.38.04

Nun viel Spaß mit Node.js.

Wie kann der Raspberry Pi auf die neue Debian Version Jessie upgedated werden?

Aktuell ist die Linux Wheezy Version. Wer aber neue Funktionen ausprobieren will, kann den Raspberry Pi auch auf Jessie updaten. Wenn auch noch nicht alles so stabil sein soll, bekommt man doch einfach die neuesten Versionen. Z.b. PHP 5.5.12. Diese Version wird aber noch nicht zeitnah mit Sicherheitsaktualisierungen versorgt und hat den Status Testing.

Es braucht nur die folgende Datei angepasst zu werden:
sudo nano /etc/apt/sources.list

Wo „wheezy“ steht auf „jessie“ ändern und speichern. Dann den update Vorgang starten mit:

sudo apt-get update && apt-get dist-upgrade && apt-get autoremove

Es kommen dann während der Installation einige Fragen die beantwortet werden müssen, ob Service usw. restartet werden sollen. Dann nach ca. eine Stunde kann mit

sudo apt-get autoclean

die Reste entfernt werden und das System neu gestartet werden:

sudo shutdown -r now

Dann evl. noch checken ob alles ok ist mit:
sudo apt-get check

So hat man jetzt auch die aktuellste PHP Version, testen mit
php -v
Erzeugt nun:

PHP 5.5.12-1 (cli) (built: May 11 2014 09:41:44)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies

Wie wird ein openLDAP-Server, phpLDAPadmin und LDAP-Client auf einem Raspberry Pi installiert?

Wollte schon immer einen eigenen LDAP-Server haben. Da es heute regnet, habe ich mir einen mal auf dem Raspberry Pi eingerichtet. Hier gibt es eine gute Anleitung (auf englisch) zum installieren eines Ldap Servers. Analog dazu habe ich mal eine Anleitung zum openLDAP in deutsch angelegt. Erste mal eine Mindmap zum Thema:
Ldap
Kurz ist folgende nötig (BPMN 2.0):
ldap
„Wie wird ein openLDAP-Server, phpLDAPadmin und LDAP-Client auf einem Raspberry Pi installiert?“ weiterlesen

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?

Mit Mac OS X Maverick einen CUL CC1101 868Mhz von Busware für FS20 für den Raspberry Pi mit culfw 1.55 flashen und in Fhem einbinden

Der CUL-V3-OEM CC1101 für 868 Mhz von Busware mit fester lambda/4 Mikroantenne wird ohne Firmware geliefert. CUL V3 – ATMega32U4 Prozessor, 2,5 kB RAM, 32 kB Flashmemory, 1 kByte EEPROM, Herstellungs Video):
20140303-205015.jpg

Zuerst muss also der CUL mit einer aktuellen Firmware geflasht werden, so wie
hier für Mac OS X beschrieben. Also die aktuelle culfw 1.55 Firmware oder neuer laden und in ein Verzeichnis entpacken.

Dann brauchen wir noch das Programm zum flashen der Firmware, welches wir mit
sudo port install dfu-programmer
auf der Konsole installieren können.

Testen ob der Programmer richtig installiert wurde geht mit
$ dfu-programmer
Ausgabe: „Mit Mac OS X Maverick einen CUL CC1101 868Mhz von Busware für FS20 für den Raspberry Pi mit culfw 1.55 flashen und in Fhem einbinden“ weiterlesen

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?

Index aller veröffentlichten Beiträge zum Raspberry Pi

Hier eine Übersicht der veröffentlichten Beiträge zum Raspberry Pi. Sortiert nach den Neuesten zu erst:

Welches Thema fehlt noch?

20140203-220742.jpg

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.