Wie kann auf einem Raspberry Pi die Zeit angezeigt werden, wie lange der Pi läuft (uptime)?

Manchmal möchte man wissen, wie lange der Raspberry Pi läuft. Windows Systeme müssen oder werden häufig gebootet. Der kleine Raspberry Pi, läuft unter Linux Debian sehr stabil.

Zum Beispiel läuft einer meiner PasPis, über 86 Tage ohne das er vom Strom getrennt wurde. Er hat ja auch noch nicht einmal einen an/aus Schalter.

Unter Webmin kann man diese Zeit, über den Menüpunkt Systeminformationen abrufen:
Bildschirmfoto 2014-07-12 um 20.14.35

Oder einfach auf der Konsole uptime eingeben, es wird dann ua. die Zeit geliefert:

20:16:10 up 86 days, 23:46, 1 user, load average: 0,02, 0,33, 0,87

Wie lange läuft Euer rPi? Kommentare dazu erwünscht.

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 wird die Wetterstation Square Plus TFA 35.1121.IT in Fhem auf Raspberry Pi eingebunden?

Die Wetterstation Square Plus TFA 35.1121.IT besteht aus einem Hauptgerät (Betriebsanleitung):
20140614-230405-83045899.jpgund einem Aussensensor für Temperatur und Luftfeuchte, so sieht er von vorne aus:
20140614-230404-83044067.jpg und so von hinten:20140614-230404-83044958.jpg

Diese Wetterstation tauscht die Daten von dem Aussensensor zum Innensensor nach dem La Crosse Protokoll auf 868 MHz aus. Diese Daten können auch von einem JeeLink empfangen werden und in Fhem dargestellt werden.

Wie hier schon ausführlich beschrieben, denn LaCrosselTPlusReader10.ino Sketch auf den JeeLink laden.
La Crosse Sketch

Die Fhem Referenz gibt Infos zu LaCrosse.

[LOGFILE]
attr myJeeLink room CUL

Automatisch wird dann folgendes erkannt. Dazu vom Aussensensor die Batterien entfernen und in Fhem, für 120 Sekunden den Empfang anschalten mit klick auf set
Bildschirmfoto 2014-06-14 um 23.16.17 und dann die Batterien wieder einsetzen. Wenn alles erfolgreich gelaufen ist, sind folgende Einträge in der fhem.cfg Datei zu finden:

# Aussensensor Temp und Feuchte Sensor über JeeLink
define LaCrosse_08 LaCrosse 08
attr LaCrosse_08 IODev myJeeLink
attr LaCrosse_08 room Terrasse
define FileLog_LaCrosse_08 FileLog ./log/LaCrosse_08-%Y.log LaCrosse_08
attr FileLog_LaCrosse_08 logtype text
attr FileLog_LaCrosse_08 room Terrasse

In Fhem:
Bildschirmfoto 2014-06-14 um 23.01.38

Bildschirmfoto 2014-06-14 um 23.01.53

Ein passendes Diagramm, das schön den Verlauf der Temperatur und der Luftfeuchte zeigt, könnte so aussehen:
Bildschirmfoto 2014-06-17 um 18.17.11

Leider werden die Daten dieser Innenstation nicht versendet und können somit auch nicht von Fhem empfangen werden. Das währe das Optimum, so hätte man dann alle Werte auch in Fhem. Das währe dann die Eierlegende Wollmilchsau.

Wie wird ein Arduino Nano mit Firmata geflasht, mit dem iMac und dem Firmata-Testprogramm getestet und in Fhem auf dem Raspberry Pi eingebunden?

Als ich diesen Beitrag gelesen hatte, hatte ich Lust, auch mal was mit Firmata zu machen. Mit dem Firmata Protokoll kann man einfach auf alle Ein und Ausgänge zugreifen ohne ein eigenes Protokoll zu entwickeln.

Also einen Arduino Nano aus der Bastelkiste geholt und ihn mit dem Firmata Standard Sketch geflasht. Das wird ja ganz gut in dieser Anleitung beschrieben.

Arduino flashen

Also über die Arduino IDE den Standard Firmata flashen:
Firmata flashen

Quicktest

„Wie wird ein Arduino Nano mit Firmata geflasht, mit dem iMac und dem Firmata-Testprogramm getestet und in Fhem auf dem Raspberry Pi eingebunden?“ weiterlesen

Wie kann der JeeLink (=JeeNode) mit neuen Sketch für Fhem auf den Raspberry Pi geflasht werden?

Im JeeLink ist der Demo Version 5 Sketch wie schon mal hier beschrieben.

Wie hier beschrieben, kann der JeeLink mit neuen Sketchen für PCA301, Lacrosse, Energy Count 3000, JeeLabs RoomNode und anderen geflasht werden.

Dazu die 36_LaCrosse-LaCrosseITPlusReader.zip
und die master.zip laden.

Beide in ein Verzeichnis ohne Sonderzeichen auspacken. Also das Verzeichnis jeelib-master in jeelibmaster umbenennen. Sonst kommt es zu Fehlern. Hier mal die Verzeichnisstruktur: „Wie kann der JeeLink (=JeeNode) mit neuen Sketch für Fhem auf den Raspberry Pi geflasht werden?“ weiterlesen

Wie wird eine Logitech QuickCam, an einem Raspberry Pi mit #jessie und #fswebcam zum laufen gebracht?

In diesem Beitrag hatte ich schon beschrieben, wie ich eine alte Logitech QuickCam am rPi zum laufen bringen wollte.

Habe nun die gleiche „Logitech QuickCam“ nun mal an einem neuen und aktuellen „jessie“ System ausprobiert.

Es musste da das fswebcam nicht manuell installiert werden, da „jessie“ schon die aktuellste Version enthält.

Aber, gleicher Fehler.

Dann einmal
sudo raspi-config
aufgerufen und dort die camera angeschaltet unter Punkt 5.

Dann, oh Wunder, wurde ein Foto erstellt 🙂

Das Foto noch auf den Mac kopieren mit:
scp pi@{Raspberry-Pi-Adresse}:/home/pi/test.jpg .
vom Mac aus. Und das test.jpg bewundern:
1. Test Foto mit fswebcam
Was habe ich da fotografiert, das ist auch die Frage des Monats. „Wie wird eine Logitech QuickCam, an einem Raspberry Pi mit #jessie und #fswebcam zum laufen gebracht?“ weiterlesen

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 kann auf einem Raspberry Pi alle mDNS/DNS-SD Services mit avahi-browse gelistet werden?

Es gibt eine avahi-browse, mit dem kann auf einem Raspberry Pi alle Services im lokalen Netz angezeigt werden. Über Avahi gibt ein Rechner seine Präsenz und seine angebotenen Dienste im lokalen Netzwerk bekannt. Dazu muss Avahi nicht konfiguriert werden, es funktioniert “Out-of-the-box”. Und keine Angst, Avahi ignoriert sämtlichen Traffic, der nicht aus dem eigenen LAN kommt.

Dazu die avahi-utils installieren mit:

sudo apt-get install avahi-utils

Dann kann mit

avahi-browse -at

die Liste aller im LAN registrierten Services auf der Konsole ausgegeben werden.
Will man nur die Domänen anzeigen, geht das mit:

avahi-browse -Dt

Eine ganz ausführliche Liste mit aufgelösten IP usw. gibt es mit

avahi-browse -art

Weitere Parameter zu dem avahi-browse können mit

man avahi-browse

ausgegeben werden. Hier eine Mindmap zu dem Thema:

Avahi
Avahi

Wie kann eine Apple Freigabe mit Netatalk und Bonjour (Zeroconf) für den Finder auf dem Raspberry Pi mit AFP installiert werden?

Siehe auch neueren Eintrag.

Um mit Apple-Rechner (Mac OS X, Yosemite 10.10.2) per Freigaben mit dem Finder auf dem Raspberry Pi zugreifen zu können, kann Netatalk verwendet werden. So würde eine Freigabe z.B. aussehen:

Bildschirmfoto 2014-05-07 um 20.23.33
Was ist nötig?

Das System aktualisieren und avahi-daemon und netatalk installieren:

Dann in der Datei:

Am Ende anfügen bzw. das # am Anfang entfernen:

Dann in der Datei:

vor der Zeile „End of File“ folgenden Eintrag ergänzen um die Public Freigabe zu erzeugen, sonst ist nur das Home-Verzeichnis des Users freigegeben:

Nun noch die Datei

mit folgenden Inhalt anlegen:

Der Eintrag in der Zeile mit model= legt das Icon fest. Möglich Werte sind da: Mac (default), AirPort, AppleTV1,1, iMac, MacBook, MacBookAir, MacBookPro, Macmini, MacPro, PowerBook, PowerMac und Xserve.

Beide Services noch restarten:

Nach ein paar Sekunden kann auf die Verzeichnisse „normal“ Zugegriffen werden.
Die Freigabe für „Apple Time Machine“ kommt dann in einem anderen Blogeintrag.

Soll der avahi beim Neustart des Pi automatisch starten? Dann noch ein:

Optional, mal testweise schauen ob alles nach einen reboot läuft

Viel Spaß

Wie kann ein Jabber Client auf Raspberry PI unter Fhem eingerichtet werden?

Account auf jabber.de anmelden.

Evl. noch einen Jabber Client installieren um den Account zu testen. Für Mac z.B. adium.im verwenden. Dann auf der Kommandozeile im rPi ein paar Module installieren:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libnet-jabber-perl libnet-xmpp-perl libxml-stream-perl libauthen-sasl-perl libnet-ssleay-perl libnet-jabber-bot-perl libdigest-sha-perl

In der fhem.cfg folgende Zeile eintragen:
(Achtung, den Username in der define Zeile ohne @jabber.de angeben)

define Jabber_Client Jabber jabber.de 5222 JABBERUSER PASSWORT 1 0
attr Jabber_Client OnlineStatus available
attr Jabber_Client PollTimer 2
attr Jabber_Client RecvWhitelist JABBERUSER@jabber.de
attr Jabber_Client ResourceName FHEM
attr Jabber_Client userReadings 1
attr Jabber_Client room Jabber

Details zu den Parametern sind in der Fhem commandref zu finden.

Speichern und restart von FHEM. Im Raum Jabber schauen:

Jabber
Jabber

Dann in der Kommandozeile von Fhem z.B.:

set Jabber_Client msg JABBERUSER@jabber.de Hallo Fhem Welt!

Habe ich noch was vergessen? Weiter Tips?

BPMN 2.0 validieren und Fehler beheben

Das folgende Diagramm sollte eher die Funktion der CUPS Drucklösung auf dem Raspberry Pi darstellen.
tw-druck
Ist aber kein gültiges bzw. valides BPMN 2.0 Diagramm. Wenn das Diagramm validiert wird, gibt es folgende 8 Fehlermeldungen und 4 Warnungen. Wenn schon BPMN 2.0 Standard verwendet werden soll, dann sollte es auch valide sein.
Bildschirmfoto 2014-04-24 um 22.05.07
Deshalb hier der 1. Versuch der valide ist:
Bildschirmfoto 2014-04-24 um 22.29.53
Bei Gelegenheit kommt noch eine Version mit Swimlane. Oder habt Ihr einen anderen Vorschlag?

Die TOP 5: Wie werden auf dem Raspberry Pi alle angelegten Nutzer angezeigt?

Evl. will man ja mal schauen, ob nicht ein unbekannter einen Nutzer angelegt hat 😉
Um alle im System angelegten Nutzer anzuzeigen gibt es viele Möglichkeiten.
Die Nutzer werden in der Datei /etc/passwd abgelegt.

Jede angezeigte Zeile hat dieses Format:

Name:Passwort:User-ID:Group-ID:Kommentar:Verzeichnis:Shell

Es gibt viele Seiten, die alles genau beschreiben, hier eine kleine Auswahl:

Aber jetzt zu den TOP 5 Befehlen, die die Nutzer ausgeben (alle mit cat /etc/passwd), aber nur die User:

cut -d: -f1 /etc/passwd
at /etc/passwd | cut -d: -f1
sed 's/:.*//' /etc/passwd
cat /etc/passwd | awk -F : '{print $1}'
awk -F: '{print $1}' /etc/passwd

Kennt ihr auch noch einen? 😉

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 können Dateien automatisch über ein Dropbox Verzeichnis zu PDF umwandeln werden mit CUPS auf dem Raspberry Pi inklusive AirPrint?

Folgende 24/7 Drucklösung wird hier beschrieben.

Es können alle Dateien die in einem Dropbox Verzeichnis kopiert werden, automatisch in PDF-Dateien umgewandelt werden. Diese PDF Dateien werden in ein weiteres Dropbox Verzeichnis bereitgestellt. So ist über Dropbox ein platformübergreifender Zugriff möglich. Einfach die zu druckenden Dateien in das Verzeichnis kopieren. Der Drucker muss dazu nicht an sein.

Auch können mit dieser Lösung über iPhone, iPad… Dokumente über AirPrint gedruckt werden auch wenn der Drucker nicht AirPrint-Fähig ist. Das läuft über den CUPS-Server.

Der Drucker muss nicht immer an sein, da der Druckvorgang im Spooler des Raspberry Pi landet. Wenn der Drucker angeschaltet wird, werden die Dokumente gedruckt. Es ist rund um die Uhr ein Drucker erreichbar.

Es werden also PDF Dateien erzeugt und es wird der angeschlossene Drucker über CUPS „normal“ verwendet. Das heißt es kann von jedem Gerät, auch iPhone und iPad gedruckt werden!

Was ist dafür zu tun?
Zuerst mal ein Überblick.:
Bildschirmfoto 2014-04-24 um 22.05.07
Eine valide BMPN 2.0 Version ist hier zu finden.
„Wie können Dateien automatisch über ein Dropbox Verzeichnis zu PDF umwandeln werden mit CUPS auf dem Raspberry Pi inklusive AirPrint?“ weiterlesen

Wie kann per Karotz eine Sprachausgabe (Klingelbenachrichtigung) über Fhem und Raspberry Pi mit PushingBox realisiert werden?

Seit langem habe ich einen Karotz und schon einige Beiträge darüber hier veröffentlicht.

Karotz kann blinken!
Karotz kann Hausautomatisation!
Nun wollte ich ihn mal in Fhem für die Hausautomatisation einsetzen.

Habe nun eine generelle Lösung über die kostenlose PushingBox realisiert.

Es können jegliche Textausgaben auf den Karotz gemacht werden. Bei mir läuft eine Ansage, wenn es an der Haustür klingelt. Es könnte auch jede Stunde die Temperatur von Karotz angesagt werden oder … (weitere Ideen als Kommentar).

Was ist also nötig?

1. Die kostenlose App PushingBox auf den Karotz über die Karotz Seite installieren. Es ist diese App, die auch über die Suchefunktion im englischen Store gefunden werden kann. Klickt man dann auf die installierte App, findet man dort die Install id die wird für weiter installation benötigt.
Bildschirmfoto 2014-04-17 um 19.38.19
Bildschirmfoto 2014-04-17 um 19.36.42

2. Einen kostenlosen Account bei PushingBox mit dem Google-Account einrichten.

3. Im Menü auf My Services klicken und auf Add a Service Button klicken:
Bildschirmfoto 2014-04-17 um 20.55.28
Dann den Karotz Service auswählen mit klick auf den Button „Select this Service“.
Bildschirmfoto 2014-04-17 um 20.56.15

4. Im folgenden Dialog den „Namen der Karotz configuration“ eingeben, der kann frei gewählt werden und der InstallID eintragen. Die kann wie unter 1. beschrieben ermittelt werden. Die Sprache auswählen, damit Karotz auch deutsch spricht einstellen und klick auf „Submit“.
Bildschirmfoto 2014-04-17 um 17.43.04

5. Dann unter „My Scenarios“ über den Button „Add an Action“ hinzufügen. Bei dem Parameter folgenden Text eingeben: $nachricht$
Der Service Name ist frei wählbar. Nach dem speichern erscheint in der Tabelle die DeviceId die später noch verwendet wird.Bildschirmfoto 2014-04-17 um 21.16.15
Jetzt einmal auf den „Test“ Button klicken. Karotz muss nun „Nachricht“ sagen. Wenn das alles läuft, kann es an die Einrichtung in Fhem gehen.

6. In der 99_Utils.pm (oder besser eine neue anlegen 99_myUtils.pm analog zu 99_Utils.pm) folgende Funktion ergänzen und abspeichern. Neueste Version kann auch von GitHub geladen werden.

#
# Sendet eine Nachricht an Karotz.
#
# Aufruf z.B.: {Set_Karotz_Nachricht('Device ID','Hallo herzlich Willkommen zu Hause')}
#
sub
Set_Karotz_Nachricht
{
my ($devid, $text) = @_;

Log 5, ">>> Set_Karotz_Nachricht: $text";
Log 5, ">>> ---------------------------------------------------------------------------------";

system("curl -d \"devid=$devid&nachricht=$text\" http://api.pushingbox.com/pushingbox");

return "OK, sende die Nachricht:\"$text\" an Karotz.";
}

7. Fhem restarten und in der Kommandline die Funktion testen mit (?? durch DeviceID ersetzen):
{Set_Karotz_Nachricht(‚v??????????‘,’Hallo herzlich Willkommen zu Hause‘)}
und return. Schon spricht Karotz!

8. Jetzt kann diese Zeile in die gewünschten Abläufe in Fhem integriert werden.
Z.b. wenn es klingelt:
define klingenOffPush notify fl_klingel_1:on* {\
Set_Karotz_Nachricht('v???????','Hallo, es hat an der Haustür geklingelt.');;\
}

wird nun die Meldung: „Hallo, es hat an der Haustür geklingelt.“ von Karotz ausgegeben.

Hast Du noch weitere Anwendungsfälle, dann hinterlasse einen Kommentar?

Wie kann auf dem Raspberry Pi der SSH Zugang per RSA Key eingerichtet werden?

Wer keine Lust hat immer das Passwort einzugeben, und wer auf der sicheren Seite stehen will, kann sich mit dem RSA Key anmelden. Dazu wie hier ausführlich beschrieben auf den Raspberry Pi per SSH anmelden (evl. für alle anderen User auch wiederholen) und in das .ssh Verzeichnis anlegen und dahin wechseln mit:

Wer noch RSA Keys benötigt, die können mit

im .ssh Verzeichnis erstellt werden.

Auf dem Raspberry Pi die Datei

anlegen oder ergänzen mit dem (USER)/.ssh/id_rsa.pub des Quell Rechners.

In der

sicherstellen, das diese Einträge auf yes bzw. no stehen und alle einkommentiert sind:

SSH neu starten mit

Konsole offen lassen, und von einer neuen Konsole versuchen, ob der Login nun ohne Passwort geht. Sonst in der anderen Konsole den Fehler suchen.