
- 22 Jan, 2016
- 2 Min. Lesezeit
FHEM Tablet UI #3: Grundgerüst und Widgets anpassen (Anfänger)
Dieser Beitrag ist für die FTUI Anfänger. Ich erkläre den Grundaufbau der FHEM Tablet UI index.html Datei und wie du deine ersten Widgets/Boxen erstellst. Voraussetzung:Grundkenntnisse in HTML (hier findest du einen kurzen Grundkurs). Dieses Buch (HTML und CSS von Kopf bis Fuß) erklärt auch einfach und verständlich die Grundlagen von HTML.InhaltVorbereitung Widget erstellenVorbereitung Bevor du anfängst die index.html Datei an deine Wünsche anzupassen, erstelle eine Kopie. sudo cp /opt/fhem/www/tablet/index.html /opt/fhem/www/tablet/index_$(date +%F-%H:%M).htmlÖffne die index.html Datei in deinem bevorzugtem Editor. Ich verwende den Atom Texteditor von Github. Er ist Open Source, hat Autovervollständigung, ist für Windows, Mac und Linux verfügbar und es gibt ein riesige Auswahl an Erweiterungen. Jetzt lösche alles was zwischen<div class="gridster"> <ul> ...löschen... </ul> </div> </body> </html>Dein Code sollte jetzt ungefähr so aussehen. Dies ist dein Grundgerüst.<!DOCTYPE html> <html> <head> <!-- /* FHEM tablet ui */ /* * Just another dashboard for FHEM * * Version: 1.4.4 * Requires: jQuery v1.7+, font-awesome, jquery.gridster, jquery.toast * URL: https://github.com/knowthelist/fhem-tablet-ui * * Copyright (c) 2015 Mario Stephan <mstephan@shared-files.de> * Under MIT License (http://www.opensource.org/licenses/mit-license.php) * * - create a new folder named 'tablet' in /<fhem-path>/www * - copy all files incl. sub folders into /<fhem-path>/www/tablet * - add 'define tablet_ui HTTPSRV tablet ./www/tablet Tablet Frontend' in fhem.cfg * - Tadaaa! A new fhem ui in http://<fhem-url>:8083/fhem/tablet/ */ --> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="widget_base_width" content="116"> <meta name="widget_base_height" content="131"> <meta name="mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="longpoll" content="1"> <!-- 1=longpoll;0=shortpoll every 30sec --> <meta name="debug" content="0"> <!-- 1=output to console;0=no output --> <link rel="stylesheet" href="/fhem/tablet/lib/jquery.gridster.min.css" /> <link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui.css" /> <link rel="stylesheet" href="/fhem/tablet/lib/font-awesome.min.css" /> <link rel="stylesheet" href="/fhem/tablet/lib/jquery.toast.min.css" /> <!-- define your personal style here, it wont be overwritten --> <!-- link rel="stylesheet" href="/fhem/tablet/css/fhem-green-ui.css" / --> <link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui-user.css" /> <script src="/fhem/pgm2/jquery.min.js" defer></script> <script src="/fhem/tablet/lib/jquery.toast.min.js" defer></script> <script src="/fhem/tablet/lib/jquery.gridster.min.js" defer></script> <script src="/fhem/tablet/js/fhem-tablet-ui.min.js" defer></script> <!-- Remove this line to enable for usage with WebViewControl <script defer>var wvcDevices = {'12345': 'Tablet'}; var wvcUserCssFile="webviewcontrol.css"</script> <script src="/fhem/pgm2/cordova-2.3.0.js" defer></script> <script src="/fhem/pgm2/webviewcontrol.js" defer></script> <!-- End for WebViewControl --> <title>FHEM-Tablet-UI Ben</title> </head> <body><div class="gridster"> <ul> <!-- DEIN TEXT --> </ul> </div></body> </html>Widget erstellen Die Oberfläche von fhem-tablet-ui ist in Widgets aufgeteilt. Diese werden in Spalten und Zeilen positioniert. Erstelle dein erstes Widget, indem du diesen Text zwischen <ul> </ul> kopierst.<li data-row="1" data-col="1" data-sizex="1" data-sizey="1"> <header>Widget 1</header> ... </li> Mit den Attributen kannst du die Größe und Position des Widget anpassen.data-row: in welcher Zeile das Widget starten soll data-col: in welcher Spalte das Widget starten soll data-sizex: wieviel Spalten das Widget breit sein soll. data-sizey: wieviel Zeilen das Widget hoch sein soll.Eine data-sizex Einheit ist 116 Pixel breit und eine data-sizey Einheit ist 131 Pixel hoch. Wenn du die Standardwerte ändern willst, suche in der index.html Datei nach widget_base_width oder widget_base_height und verändere die Werte dahinter nach deinen Wünschen. Möchtest du den Abstand zwischen den Widget vergrößern, dann suche nach den Zeilen die mit <meta ... beginnen und füge darunter in einer neuen Zeile diesen Code ein. <meta name="widget_margin" content="4"> Die Zahl ist der Abstand in Pixel. Beispiel mit zwei Widgets und unterschiedlichen Größen und Positionen. Möchtest du ein weiteres Widget, dann fügst du nach dem ersten li Block ein weiteren hinzu.<li data-row="1" data-col="1" data-sizex="3" data-sizey="1"> <header>Widget 1</header> data-row="1" data-col="1" data-sizex="3" data-sizey="1" </li><li data-row="1" data-col="5" data-sizex="1" data-sizey="3"> <header>Widget 2</header> data-row="1" data-col="5" data-sizex="1" data-sizey="3" </li>Am Ende sollte deine index.html wie folgt aussehen.<!DOCTYPE html> <html> <head> <!-- /* FHEM tablet ui */ /* * Just another dashboard for FHEM * * Version: 1.4.4 * Requires: jQuery v1.7+, font-awesome, jquery.gridster, jquery.toast * URL: https://github.com/knowthelist/fhem-tablet-ui * * Copyright (c) 2015 Mario Stephan <mstephan@shared-files.de> * Under MIT License (http://www.opensource.org/licenses/mit-license.php) * * - create a new folder named 'tablet' in /<fhem-path>/www * - copy all files incl. sub folders into /<fhem-path>/www/tablet * - add 'define tablet_ui HTTPSRV tablet ./www/tablet Tablet Frontend' in fhem.cfg * - Tadaaa! A new fhem ui in http://<fhem-url>:8083/fhem/tablet/ */ --> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="widget_base_width" content="116"> <meta name="widget_base_height" content="131"> <meta name="mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="longpoll" content="1"> <!-- 1=longpoll;0=shortpoll every 30sec --> <meta name="debug" content="0"> <!-- 1=output to console;0=no output --> <meta name="widget_margin" content="4"> <link rel="stylesheet" href="/fhem/tablet/lib/jquery.gridster.min.css" /> <link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui.css" /> <link rel="stylesheet" href="/fhem/tablet/lib/font-awesome.min.css" /> <link rel="stylesheet" href="/fhem/tablet/lib/jquery.toast.min.css" /> <!-- define your personal style here, it wont be overwritten --> <!-- link rel="stylesheet" href="/fhem/tablet/css/fhem-green-ui.css" / --> <link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui-user.css" /> <script src="/fhem/pgm2/jquery.min.js" defer></script> <script src="/fhem/tablet/lib/jquery.toast.min.js" defer></script> <script src="/fhem/tablet/lib/jquery.gridster.min.js" defer></script> <script src="/fhem/tablet/js/fhem-tablet-ui.min.js" defer></script> <!-- Remove this line to enable for usage with WebViewControl <script defer>var wvcDevices = {'12345': 'Tablet'}; var wvcUserCssFile="webviewcontrol.css"</script> <script src="/fhem/pgm2/cordova-2.3.0.js" defer></script> <script src="/fhem/pgm2/webviewcontrol.js" defer></script> <!-- End for WebViewControl --> <title>FHEM-Tablet-UI Ben</title> </head> <body><div class="gridster"> <ul> <li data-row="1" data-col="1" data-sizex="3" data-sizey="1"> <header>Widget 1</header> data-row="1" data-col="1" data-sizex="3" data-sizey="1" </li> <li data-row="1" data-col="5" data-sizex="1" data-sizey="3"> <header>Widget 2</header> data-row="1" data-col="5" data-sizex="1" data-sizey="3" </li></ul> </div> </body> </html>Im nächsten Beitrag werde ich näher darauf eingehen, wie du einen Wert von FHEM in der FTUI anzeigst. Über Tipps und konstruktive Kritik wie ich die Beiträge besser machen kann würde ich mich freuen.
- 05 Jan, 2016
- 2 Min. Lesezeit
Raspberry Pi: Benutzer automatisch Anmelden/Einloggen beim booten (Autologin)
In der neuen Version vom Raspberry Pi Betriebsystem "Raspbian Jessie", ist es jetzt möglich, dass man die Benutzer/Passwort Abfrage einfach über [raspi-config](http://www.forum-raspberrypi.de/Thread-faq-wie-konfiguriere-ich-den-raspberry-pi-mit-raspi-config) ausschalten kann. Beim hochfahren (booten) wird der Benutzer pi automatisch angemeldet. Dies ist sehr hilfreich, wenn man nach dem hochfahren ein Programm oder Script automatisch starten lassen will, ohne einen Benutzer mit der Tastatur und Monitor anmelden zu müssen. Variante: raspi-config (Jessie) Variante: autologin.conf (Jessie) Variante: ältere Raspbian Version (Wheezy)Variante: raspi-config (Jessie)Öffne das Raspberry Pi configuration tool mit folgendem Befehl. sudo raspi-configwählen Punkt 3 Boot Options jetzt wähle den Punkt B2 Console Autologin Text console, automatically logged in as 'pi' user Nach einem Neustart sollte der Benutzer pi jetzt automatisch eingeloggt werden.Variante: autologin.conf (Jessie) Leider hat bei mir die Variant über raspi-config nicht funktioniert. Hier eine Anleitung wie ich das automatische Anmelden zum laufen bekommen habe.Öffne die Datei autologin.conf mit dem Nano Text Editor sudo nano /etc/systemd/system/getty@tty1.service.d/autologin.confund füge folgenden Text ein.[Service] ExecStart= ExecStart=-/sbin/agetty --autologin pi --noclear %I 38400 linux Beende den Editor mit ctrl+x und bestätige die Änderung mit y.Nach einem Neustart sollte der Benutzer pi jetzt automatisch eingeloggt werden. sudo rebootVariante: ältere Raspbian Version (Wheezy) Der Vollständigkeit halber hier die Anleitung für die ältere Raspbian VersionÖffne die Datei inittab sudo nano /etc/inittabsuch diese Zeile 1:2345:respawn:/sbin/getty 115200 tty1 und kommentiere sie mit # aus. #1:2345:respawn:/sbin/getty 115200 tty1 Füge direkt danach diesen Text ein (neue Zeile). 1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>&1 Beende den Nano Texteditor mit ctrl+x und bestätige die Änderung mit y.Nach einem Neustart sollte der Benutzer pi jetzt automatisch eingeloggt werden. sudo reboot

- 10 Dec, 2015
- 2 Min. Lesezeit
FHEM Tablet UI #2: wie index.html anpassen/bearbeiten
In dem vorherigen Beitrag habe ich gezeigt wie du die FHEM Tablet-UI installierst. Um den Inhalt der Tablet optimierte Oberfläche anzupassen, muss man die index.html im Ordner /opt/fhem/www/tablet/ bearbeiten. In diesem Artikel erkläre ich, wie du die index.html Datei am einfachsten anpassen kannst und welche Programme du davor benötigst. Alle Varianten funktionieren mit Windows, Mac OSX oder Linux. InhaltMethode 1: Terminal/Kommandozeile und Nano Texteditor Methode 2: via SFTP mit Filezilla und Atom TexteditorMethode 1: Terminal/Kommandozeile und Nano Texteditorgeeignet um schnell kleine Änderungen an einer Datei vorzunehmen keine zusätzliche Software erforderlich die Maus kann nicht verwendet werden keine SyntaxhervorhebungMelde dich per SSH an dem Computer an auf dem FHEM läuft. Für Windows kannst du zum Beispiel Putty verwenden und für Mac OSX den Terminal. ssh xxx@zzz.zzzz.zzz.zz Ersetze xxx mit deinem Benutzernamen und zzz.zzzz.zzz.zz mit der IP Adresse. Bei mir sieht der Befehl so aus ssh pi@192.168.178.99Navigiere zum Ordner mit der zu bearbeitenden Datei. cd /opt/fhem/www/tablet/Öffne die Datei mit dem Nano Texteditor und verändere den Inhalt. nano index.htmlMit der Tastenkombinationctrl+o(Mac)/strg+o(Windows) kannst du die Datei Speichern. Mit ctrl+x(Mac)/strg+x(Windows) kannst du den Texteditor beenden und gegebenenfalls speichern. Tablet-UI index.html Datei im Nano Editor (Mac Terminal) geöffnet Methode 2: via SFTP mit Filezilla und Atom Texteditoreinfacheres Bearbeiten da die Maus benutzt werden kann Vorteile des Atom Editor nutzen (Syntaxhervorhebung, Autovervollständigung) zusätzliche Software erforderlichLade dir Filezilla (FTP/SFTP) und Atom (Texteditor) für dein Betriebssystem herunter und installiere sie. Öffne Filezilla und geh in die Einstellungen. Unter Bearbeiten von Dateien, stell den Atom Editor als Standarteditor ein und Immer Standarteditor verwenden(siehe Bild). Stell eine Verbindung mit Filezille her. Ersetze die Daten in den Feldern mit deinen Daten. Der Standart SFTP/SSH Port ist 22. Navigiere zum Tablet-UI Ordner /opt/fhem/www/tablet/ und mach ein Rechtsklick Ansehen/Bearbeiten auf die index.html Datei. Danach Lokale Datei verwerfen, dann Datei neu herunterladen und bearbeiten auswählen. Jetzt sollte sich die Datei im Atom Editor öffnen. Wenn du jetzt die veränderte Datei im Atom Editor speicherst fragt dich Filezille, ob sie zurück auf den Server geladen werden soll. Klick auf Ja. Dies kannst du jetzt so oft wiederholen bis du die Datei im Editor schließt, oder sie lokal an einem anderen Ort speicherst. Tablet-UI index.html Datei im Atom.io Editor geöffnet Es kann sein das du die geänderte index.html Datei nicht speichern kannst, da du nicht die benötigten Benutzerrechte besitzt. Das kannst du ändern indem du dich als Besitzer der Datei einträgst. Navigiere in den Ordner wo sich die index.html befindet cd /opt/fhem/www/tablet und ändere den Besitzer der Datei. Ersetze Mr-T mit deinen Benutzernamen. Der Befehl whoami gibt dir deinen aktuellen Benutzernamen aus. sudo chown Mr-T index.html
- 28 Nov, 2015
- 2 Min. Lesezeit
FHEM Konfigurations Datei (fhem.cfg) kann nicht bearbeitet werden (Schreibschutz)
Seit dem letzten großen Update von FHEM, ist die FHEM Konfigurationsdatei (fhem.cfg) nach der Installation schreibgeschützt und kann nicht verändert werden. Diese Sperre soll Neulinge davor schützen wichtige Systemdateien zu verändern. Klickt man wie gewohnt in der FHEM Oberfläche auf Edit files und dann fhem.cfg sieht man den Inhalt dieser Datei, aber er kann nicht verändert werden. Ein Hinweis "You can enable saving this file by setting the editConfig attribute, but read the documentation first for the side effects." weisst uns darauf hin, dass wir die Dokumentation lesen sollen.Wenn du vertraut mit der FHEM Konfigurationsdatei bist und weisst was du tust, kannst du den Schreibschutz aufheben indem du das Attribute editConfig auf 1 setzt. Am einfachsten kannst du das editConfig Attribut auf 1 setzen wenn du diesen Befehl attr WEB editConfig 1oben in das Befehls-Textfeld ein gibst und ENTER drückst.Danach musst du die config Datei noch speichern. Dazu klickst du links auf Save config.Tipp: Bevor du Veränderungen an der fhem.cfg Datei machst, solltest du dir immer eine Kopie davon speichern. Wenn etwas schief läuft und du dir deine Konfigurations-Datei zerstörst, kannst du so ganz einfach den ursprünglichen Zustand wiederherstellen.Hier noch der unveränderte Inhalt der fhem.cfg von FHEM 5.7 attr global userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride attr global autoload_undefined_devices 1 attr global logfile ./log/fhem-%Y-%m.log attr global modpath . attr global motd SecurityCheck:\ \ WEB,WEBphone,WEBtablet has no basicAuth attribute.\ telnetPort has no password/globalpassword attribute.\ \ Restart FHEM for a new check if the problem is fixed,\ or set the global attribute motd to none to supress this message.\attr global statefile ./log/fhem.save attr global updateInBackground 1 attr global verbose 3define telnetPort telnet 7072 globaldefine WEB FHEMWEB 8083 global attr WEB editConfig 1define WEBphone FHEMWEB 8084 global attr WEBphone stylesheetPrefix smallscreendefine WEBtablet FHEMWEB 8085 global attr WEBtablet stylesheetPrefix touchpad# Fake FileLog entry, to access the fhem log from FHEMWEB define Logfile FileLog ./log/fhem-%Y-%m.log fakelogdefine autocreate autocreate attr autocreate filelog ./log/%NAME-%Y.logdefine eventTypes eventTypes ./log/eventTypes.txt# Disable this to avoid looking for new USB devices on startup define initialUsbCheck notify global:INITIALIZED usb create
- 01 Nov, 2015
- 2 Min. Lesezeit
Mac OSX: Festplatte, SSD oder SD-Card sicher löschen/überschreiben
Seit dem OSX Update El Capitan 10.11 wurde das Festplattendienstprogramm erneuert. Es sieht schöner aus, aber hat eine wichtige Funktion weniger. Das sichere Löschen bzw Überschreiben von freien Speicherplatz, oder des kompletten Speichermediums ist damit nicht mehr möglich. In dieser kurzen Anleitung zeige ich dir, wie du mit OSX El Capitan eine Festplatte oder Speicherkarte sicher löschen kannst. Wenn du die eingebaute Festplatte eines Macbook löschen willst, auf dem das Betriebssystem gespeichert ist, musst du diese Anleitung im Recovery Menü des Macbook ausführen. Starte das Macbook neu und halte direkt nach dem Neustart die Tastenkombination cmd+r gedrückt. Im Recovery Menü klickst du in der Menüleiste auf Dienstprogramme und dann auf Terminal. Verbinde die Festplatte, USB-Stick oder Speicherkarte mit deinem Mac und öffne den Terminal. Der Terminal läßt sich einfach öffnen indem du cmd+Leertaste drückst, dann terminal eingibst und Enter drückst. diskutil list Mit diesem Befehl lässt du dir alle Speichermedien anzeigen, um den Pfad zum Speichermedium zu finden. In diesem Beispiel ist es /dev/disk2. diskutil secureErase 0 /dev/disk2 Dies ist der Befehl zum löschen des Mediums. ACHTUNG vergewissere dich das du das richtige Speichermedium wählst, denn die Daten sind nicht wiederherstellbar. Wenn ein Fehler beim löschen auftritt, probiert den Befehl mit sudo auszuführen.sudo diskutil secureErase 0 /dev/disk2 Ersetzt /dev/disk2 mit dem zuvor ermittelten Pfad zur Speicherkarte/Festplatte. Die 0 legt die Methode fest mit der die Daten gelöscht/überschrieben werden. 0 - Single-pass zeros. 1 - Single-pass random numbers. 2 - US DoD 7-pass secure erase. 3 - Gutmann algorithm 35-pass secure erase. 4 - US DoE 3-pass secure erase. Je größer die Nummer, desto schwieriger ist es die Daten wiederherzustellen. Ab Stufe 2 steigt die Dauer des Vorgangs extrem an. Die Stufen 0-1 sollten ausreichend sein. Optional diskutil secureErase freespace 0 /dev/disk2Wenn du dem Befehl freespace hinzufügst, wird nicht die komplette Festplatte gelöscht, sondern nur der freie Speicherplatz. Leider wird bei mir der Vorgang abgebrochen und gibt einen Fehler aus (Error: -69847: Couldn't create temporary file). Falls du eine Lösung für das Problem kennst, würde ich mich freuen wenn du es in die Kommentare schreibst. Update 07.11.2015 Ich habe eine SD-Karte mit der Option 0 (Single-pass zeros) gelöscht. Mit dem Programm "Wondershare Data Recovery für Mac" konnten die Daten nicht wiederhergestellt werden. Auch nicht mit einem Tiefen-Scan.

- 14 Jun, 2015
- 1 Min. Lesezeit
FHEM Tablet UI #1: optimierte Tablet Benutzeroberfläche einrichten
FHEM Tablet UI ist eine optimierte Benutzeroberfläche für FHEM. Es werden keine weiteren Programme benötigt außer eine laufende FHEM Version. [DEMO] Voraussetzung:laufendes FHEM Raspberry muss mit dem Internet verbunden seinUpdate (13.01.16) Punkt 1-3 kannst du überspringen, wenn du folgende Befehle oben in das Befehls-Eingabefeld von FHEM kopierst und mit Enter bestätigst. update all https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txtPunkt 5 kannst du mit diesem Befehl überspringen. define TABLETUI HTTPSRV ftui/ ./www/tablet Tablet-UIJetzt noch rechts auf Save config klicken.Lade dir die .zip mit den benötigten Dateien von Github herunter.wget https://github.com/knowthelist/fhem-tablet-ui/archive/master.zipEntpacke die .zip Datei und lösche sie danach. unzip master.zip && rm master.zipKopiere den Ordner tablet in den fhem/www Ordner.cp -r ./fhem-tablet-ui-master/www/tablet /opt/fhem/www/Erstelle eine Kopie der index-example.html Datei und benne sie in index.html um.sudo cp /opt/fhem/www/tablet/index-example.html /opt/fhem/www/tablet/index.htmlFüge deiner fhem.cfg Datei folgende Zeile hinzu. Du kannst dies über die Weboberfläche von FHEM tun (Edit files -> fhem.cfg) define TABLETUI HTTPSRV ftui/ ./www/tablet/ Tablet-UI oder per Konsole mit dem Nano Text Editor. nano /opt/fhem/fhem.cfg Beenden kannst du Nano mit ctrl+x und dann y enterRufe jetzt http://ip-des-raspberry:8083/fhem/ftui/ auf deinem Tablet auf. Das Tablet muss sich im selben Netzwerk wie der Raspberry befinden. Weitere Informationen zu FHEM Tablet UI findet ihr hier: FHEM Wiki FAQ FHEM Forum In den nächsten Tagen werden weitere Beiträge folgen, wie du die Tablet UI Oberfläche nach deinen Wünschen anpasst. Bitte Anregungen und Tipps in die Kommentare schreiben.
- 10 Jun, 2015
- 1 Min. Lesezeit
UART Schnittstelle am Raspberry Pi aktiveren/nutzen
Standardmäßig ist die UART Schnittstelle als serielle Konsole konfiguriert. Wenn man die UART Schnittstelle für andere Dinge verwenden will, wie zum Beispiel für ein GPS Modul muss diese Funktion deaktiviert werden. Öffne die cmdline.txt Datei mit dem Nano Text Editor sudo nano /boot/cmdline.txt und entferne diesen Teile aus der Datei. console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 Der Inhalt der Datei sollte dann so aussehen dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait Beende den Editor mit ctrl+x und dann die Veränderung mit y speichern.Öffne inittab sudo nano /etc/inittab und such nach folgender Zeile. T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100 Füge ein # an den Anfang der Zeile um diese Auszukommentieren. Die Zeile sollte dann so aussehen. #T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100 Beende den Editor wie im vorherigen Schritt.Ab Kernel 3.18.x muss dieser Schritt noch zusätzlich ausgeführt werden. sudo nano /boot/config.txt Suche nach folgender Zeile und entferne das # am Anfang. #dtparam=spi=on Beende den Editor wie in den vorherigen Schritten. Kernel Version anzeigen uname -aStarte den RPI neu. sudo reboot

- 13 May, 2015
- 2 Min. Lesezeit
Node.js auf dem Raspberry Pi installieren
Node.js ist eine Open-Source-Plattform, zum erstellen von Netzwerkanwendungen die in JavaScript geschrieben werden. Die Anwendungen werden Server-seitig ausgeführt und nicht wie "normal" Client-seitig im Browser. Integrierte Module wie z.B. das HTTP-Modul, ermöglichen die Realisierung von Webserver. Weitere Module können einfach mit dem Paketmanager npm installiert werden. Update 16.03.2020: - Variante 1 für ARM6 Chip aktualisiert Update 04.09.2016: - weitere Variante hinzugefügtInhalt Node.js installieren Variante #1 (ARM6: Raspberry Pi B+, Raspberry Pi Zero und älter)Prüfe mit dem Befehl uname -m ob dein Raspberry Pi einen ARM6 Chip hat. Der Befehl sollt etwas wie armv6l ausgeben.Lade dir das ARM6 optimierte Node.js installations Paket herunter. Node.js v8.x:wget https://nodejs.org/dist/latest-v8.x/node-v8.17.0-linux-armv6l.tar.xz Node.js v10.x:wget https://nodejs.org/dist/latest-v10.x/node-v10.19.0-linux-armv6l.tar.xzEntpacke das Archiv.tar xvf node-v8.17.0-linux-armv6l.tar.xz # oder tar xvf node-v10.19.0-linux-armv6l.tar.xzWechsel in den Ordner wohin du die Dateien entpackt hast...cd node-v8.12.0-linux-armv6l/ # oder cd node-v10.19.0-linux-armv6l/... und kopiere die Node.js und NPM Dateien in die System Ordner /usr/bin/ und /usr/lib/sudo cp -R bin/* /usr/bin/ && sudo cp -R lib/* /usr/lib/Node.js und der Paketmanager npm sind nun installiert. Mit node -v und npm -v kannst du überprüfen welche Version installiert ist. Node.js installieren Variante #2 (Raspberry Pi 2 / 3 und neuer)Node.js Quelle zu deinen Paketlisten hinzufügen. Node.js v6.x:curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - Node.js v8.x:curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - Node.js v10.x:curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - Node.js v11.x:curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash - Wenn du die folgende Fehlermeldung folge den Schritten für ältere Raspberry Pi Modelle. "You appear to be running on ARMv6 hardware. Unfortunately this is not currently supported by the NodeSource Linux distributions. Please use the ‘linux-armv6l’ binary tarballs available directly from nodejs.org for Node.js v4 and later."Jetzt kannst du Node.js mit folgendem Befehl installieren.sudo apt-get install -y nodejs Mit nodejs -v kannst du überprüfen welche Version installiert ist.Node.js testen mit einem Hello World ProgrammErstelle eine Javascript Datei mitsudo nano helloWorld.js und füge folgenden Javascript Code hinein.var http = require('http'); http.createServer(function (request,response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello World!\n'); }).listen(8000) console.log('Web Server running at http://127.0.0.1:8000');Führe das Script ausnode helloWorld.jsÖffne den Browser und rufe folgende Adresse auf.http://IP-Adresse-des-Raspberry:8000/

- 25 Feb, 2015
- 2 Min. Lesezeit
Raspberry Pi: Festplatte automatisch in den Standby/Ruhemodus schalten mit hdparm
Ein Beispiel wie ihr die Festplatte nach einer vorgegeben Zeit in den Standby/Ruhemodus versetzt. Das spart Strom und schont die Festplatte im Dauer-/Serverbetrieb. Voraussetzung:USB Festplatte im System eingebunden/mounted (Anleitung)Als erstes aktualisierst wir die Paketlisten von Raspbian und installierst hdparm. sudo apt-get update && sudo apt-get -y install hdparmUm herauszufinden unter welchen Namen die Festplatte im System läuft, geben wir folgenden Befehl ein. In unserem Beispiel ist es /dev/sda sudo fdisk -lWir überprüfen den aktuellen Power-Mode-Status. Falls ihr den Status unknown zurück bekommt lässt sich die Festplatte nicht in Standby versetzen. sudo hdparm -C /dev/sda "-C zeigt den aktuellen „Power-Mode-Status“ einer IDE-Festplatte an. Dieser kann folgende Werte annehmen: „unknown“ - Das Laufwerk unterstützt dieses Kommando nicht; „active“/„idle“ - Normalbetrieb; „standby“ - Low Power Modus, die Festplatte dreht sich nicht oder „schläft“ sogar komplett. Die Optionen -S, -y, -Y und -Z können zur Veränderung der IDE-Power-Modes verwendet werden. " wiki.debianforum.deMit dem Parameter -y versetzen wir die Festplatte in den Standby Modus. Die Festplatte sollte jetzt kein Geräusch mehr von sich geben. Ihr könnte aber auch mit sudo hdparm -C /dev/sda überprüfen ob sich die Festplatte im standby befindet. Sobald auf die Festplatte zugegriffen wird, läuft sie wieder an. sudo hdparm -y /dev/sdaWir benötigen die UUID der Festplatte. Gebt folgenden Befehl in die Console ein und notiert euch die UUID der Festplatte. sudo blkidÖffnet die hdparm config Datei mit dem Nano Texteditor. sudo nano /etc/hdparm.conf Ersetzt deineUUID mit eurer zuvor notierten UUID und fügt den Text am Ende der Datei ein. Beendet den Nano Editor nach dem einfügen mit Strg+x (Win) ctrl+x (Mac) und bestätige die Änderung mit y oder j (je nach Spracheinstellung)./dev/disk/by-uuid/deineUUID { spindown_time = 240 } Die Zahl hinter spindown_time gibt an wann die Festplatte in den Ruhezustand gehen soll. Wählt die Zeit nicht zu kurz, da ständiges anfahren der Festplatte dem Motor/Mechanik schadet. 0 = Ruhezustand deaktiviert 60 = 5Min (60*5Sek=300Sek=5Min) 240 = 20Min (240*5Sek=1200Sek=20Min) Ab 240 ändert sich die Berechnung! 241 = 30Min (1*30Min) 242 = 60Min (2*30Min)Führt einen Neustart durch. Danach geht die Festplatte zu der Eingestellten Zeit automatisch in den Standby/Ruhemodus. sudo reboot
- 16 Feb, 2015
- 3 Min. Lesezeit
Raspberry Pi: USB Stick / Festplatte (HDD) automatisch einbinden/mounten
Update 15.02.2022: Exfat hinzugefügt, Links aktualisiert und kleinere Optimierungen Voraussetzungen:Raspbian/Raspberry Pi OS oder ähnlich Distribution wie DebianUSB-Festplatte oder USB Stick mit einer Partition (NTFS/Fat32/EXFAT/HFS+/Ext4)Als erstes aktualisierst du die Paketlisten von Raspbian und installierst die Treiber für NTFS, EXFAT und HFS+. sudo apt-get update && sudo apt-get -y install ntfs-3g hfsutils hfsprogs exfatprogsErstelle einen Ordner im Verzeichnis /media, in den du später das USB-Speichermedium einbindest. Du kannst den Namen frei wählen (keine Sonder- und Leerzeichen). Ändere noch den Besitzer des Ordners in pi. Falls du einen anderen Benutzernamen verwendest, musst du pi durch deinen Namen in dem Befehl ersetzen.sudo mkdir /media/usbhdd sudo chown pi /media/usbhdd "Um ein Dateisystem einhängen zu können, muss zuerst ein Einhängepunkt (Mountpunkt) vorhanden sein. Dies ist ein zunächst leerer Ordner. … Über diesen Einhängepunkt wird dann später auf das eingehängte Dateisystem zugegriffen." ubuntuusers.deFestplatte/USB-Stick am Raspberry anschließen.Es wird die UUID der Festplatte/USB-Stick benötigt, damit bei einem Neustart das USB-Speichermedium automatisch eingebunden werden kann. Gib den folgenden Befehl in die Konsole ein. sudo blkid "UUID steht für Universally Unique Identifier und bezeichnet nach einem bestimmten Standard formatierte Identifikationsnummern Jedes Linux-Dateisystem besitzt einen UUID, über den es identifiziert werden kann. Zwar kann man das auch über die Geräte-Dateien /dev/sdaX tun, aber die Nummerierung kann sich hier ändern." ubuntuusers.deÖffne die Datei fstab mit den Nano Text Editor sudo nano /etc/fstab und füge eine der Zeilen für dein Dateiformat hinzu. Ersetz noch die UUID die du im vorherigen Schritt ermittelt hast.# Ext4 UUID=13aa0627-fb13-4d2f-8d3f-53aea43b9439 /media/usbhdd ext4 defaults 0 0#NTFS UUID=10BF-F2D6 /media/usbhdd/ ntfs-3g defaults,umask=022,users 0 0#HFS+ UUID=10BF-F2D6 /media/usbhdd/ hfsplus defaults,umask=022,users 0 0#FAT32 UUID=10BF-F2D6 /media/usbhdd/ vfat defaults,umask=022,users,nofail 0 0#EXFAT UUID=blskejeorio4dkal83 /media/usbhdd exfat defaults,umask=022,users,nofail 0 0 Beende den Nano Editor nach dem einfügen mit Strg+x (Win) ctrl+x (Mac) und bestätige die Änderung mit y oder j (je nach Spracheinstellung). Mehr Informationen zu fstab findest du hier. Die Option _umask=022_gibt euch die Rechte Lesen/Schreiben und ausführen. Gruppen und andere, haben nur Lese und Ausführrechte. Mit umask=022 gebt ihr allen Benutzern die Rechte zum Lesen/Schreiben, was aber ein Sicherheitsproblem sein kann. Hier ein umask Code Generator. Mit nofail legt fest das beim Bootvorgang die Festplatte übersprungen wird, falls sie nicht vorhanden ist. So wird ein Hängen-bleiben verhindert. users legt fest, dass jeder Benutzer das Gerät ein- und aushängen darf. Die Dump Option legt fest, ob bei einem Backup mit dem Programm dump die Partition mit gesichert werden soll. Mit 0 wird sie nicht gesichert.Führe folgenden Befehl aus, um zu testen ob das Mounten funktioniert.sudo mount -a Wenn alles funktioniert hat, sollte du mit df -l eine Liste ausgegeben werden, in der dein USB-Stick aufgeführt wird. Unter _Mounted on_ siehst du in welchem Ordner du auf die Dateien zugreifen kannst. Jetzt kannst du schon mit cd /media/usbhdd/ auf das USB-Speichermedium zugreifen.Geschafft! Du kannst auf deine Dateien auf dem USB-Stick oder USB-Festplatte zugreifen und nach einem Neustart wird das Speichermedium automatisch eingebunden.
- 13 Feb, 2015
- 1 Min. Lesezeit
FHEM Tipp #1: Update und Neustart Button in der Seitenleiste
klickt auf Edit files in der Seitenleiste und dann fhem.cfgkopiert folgenden Code in die fhem.cfg Datei und klickt danach auf den save fhem.cfg Button. attr WEB menuEntries Update,cmd=update,UpdateCheck,cmd=update+check,Restart,cmd=shutdown+restartNach einem Reload der Seite, sollten jetzt drei neue Einträge in der Seitenleiste sein.Update: updated FHEM auf die neuste Version (Neustart danach erforderlich) UpdateCheck: zeigt dir die neusten Änderungen an Restart: startet FHEM neuFalls du die fhem.cfg Datei nicht bearbeiten kannst, schau dir diese kurze Anleitung an.
- 08 Feb, 2015
- 1 Min. Lesezeit
FHEM 5.8 auf dem Raspberry Pi oder Debian installieren
Was ist FHEM? FHEM ist ein in perl geschriebener Server für die Heimautomatisierung. Man kann mit FHEM häufig auftretende Aufgaben automatisieren, wie z.B. Lampen, Rollläden, Heizung und vieles mehr schalten, oder Ereignisse wie Temperatur, Feuchtigkeit, Stromverbrauch protokollieren und visualisieren. Für weitere Ideen siehe diesen Link. Optional: sudo raspi-configMenüeintrag Expand Filesystem auswählendanach Internationalisation Options -> Change Timezone und Zeitzone für den aktuellen Standpunkt auswählen (wichtig für die korrekte Zeitangabe in FHEM)Jetzt kommen wir zur installation von FHEMaktualisieren des Systemssudo apt-get update && sudo apt-get upgrade -ybenötigte Pakete installieren sudo apt-get -f install && sudo apt-get install perl libdevice-serialport-perl libio-socket-ssl-perl libwww-perl libxml-simple-perl libjson-perl sqlite3 libdbd-sqlite3-perl libtext-diff-perl -yaktuelle FHEM Version herunterladen und installieren (5.8 mit der aktuellsten Versionsnummer ersetzen http://fhem.de/fhem.html#Download) sudo wget http://fhem.de/fhem-5.8.deb && sudo dpkg -i fhem-5.8.debInstallationsdatei löschen sudo rm fhem-5.8.debZugriffsrechte für den Ordner fhem setzencd /opt sudo chmod -R a+w fhemdem aktuellen Benutzer und fhem der Gruppe tty hinzufügen um Lese/Schreibrechte für dieses Gerät zu geben (später wichtig wenn Empfänger per USB angeschlossen werden wie z.B. CUL)sudo usermod -a -G tty pi && sudo usermod -a -G tty fhem pi durch den aktuell verwendeten Benutzernamen ersetzen. Mit dem Befehlt whoami könnt ihr euch den Namen anzeigen lassen.im Browser http://192.168.x.y:8083/fhem/ (xy mit der IP des Raspberry ersetzten) aufrufen und das FHEM Webinterface sollte erscheinenTipp: Nach der Neu Installation von FHEM ist die FHEM Konfigurationsdatei "fhem.cfg" schreibgeschützt und kann nicht verändert werden. In diesem Artikel beschreibe ich, wie du den Schreibschutz aufheben kannst. https://wordpress-x0o8gcg88www8k084ks8k088.c.benroe.de/fhem-konfigurations-datei-fhem-cfg-kann-nicht-bearbeitet-werden/
- 25 Oct, 2014
- 1 Min. Lesezeit
PiTFT Hintergrundbeleuchtung per Software/Taster ein und ausschalten
Voraussetzung:installiertes PiTFT Capacitive Version ( Link zur Anleitung) Taster am PiTFTAuf der Rückseite des PiTFT müsst ihr die zwei Kontakte mit einem Lötpunkt verbinden.Erstellt eine Python Datei für den Code und öffnet diese im Nano Texteditor. nano pitft.pyfüge den Code ein#!/usr/bin/python import RPi.GPIO as GPIO import timeGPIO.setmode(GPIO.BCM) # deaktiviert die Warnung das GPIO18 schon verwendet wird GPIO.setwarnings(False)# legt Taster 2 als Eingabe fest GPIO.setup(22, GPIO.IN, pull_up_down=GPIO.PUD_UP)GPIO.setup(18, GPIO.OUT)oldButtonState = True backlight = 1while True: buttonState = GPIO.input(22) # blockt mehrfaches Ausloesen des Tasters if buttonState != oldButtonState and buttonState == False : if backlight : # Hintergrundbeleuchtung AUS GPIO.output(18, 0) backlight = 0 else : # Hintergrundbeleuchtung AN GPIO.output(18, 1) backlight = 1 oldButtonState = buttonState # pausiert das Programm fuer 200 Millisekunden time.sleep(.2)Schliesst den Nano Texteditor mit ctrl+x auf dem Mac. Danach bestätigt ihr die Veränderung zu speichern mit y und dann enter.Ruft das soeben erstellte Python Programm auf. sudo python pitft.pyWenn ihr jetzt auf den zweiten Taster drückt (GPIO 22), sollte das Display ausgehen. Ein zweites mal drücken sollte das Display wieder anschalten. Mit ctrl+c beendet ihr das Programm

- 24 Sep, 2014
- 1 Min. Lesezeit
Uhrzeit des Sonnenaufgang/ Sonnenuntergang in FHEM anzeigen
In diesem Tutorial zeige ich dir, wie du die Uhrzeit des Sonnenaufgang und Sonnenuntergang in FHEM anzeigen lassen kannst. Voraussetzung: - eine laufende FHEM Version Öffnet die Konfigurationsdatei (fhem.cfg) von FHEM.Fügt folgende Globale Attribute hinzu um euren Standort festzulegen. attr global latitude 51.345753 attr global longitude 12.38213 Ersetzt die latitude und longitude Angaben mit eurem Standort. Hier könnt ihr die dezimal Werte für eueren Standort herausfinden.Um die Werte für Sonnenauf- und Sonnenuntergang zu speichern, erstellen wir zwei Dummy’s define Sonnenaufgang dummy define Sonnenuntergang dummyDa die Werte jeden Tag nach 0Uhr neu generiert werden müssen, erstellen wir folgende Funktion define sun_riseSet_timer at *00:05:00 { my $s = sunrise();; fhem("set Sonnenaufgang $s");; $s = sunset();; fhem("set Sonnenuntergang $s");; } Jeden Tag um 0:05Uhr wird die Uhrzeit für die nächsten Sonnenaufgang/Sonnenuntergang den Dummy’s zugewiesen.Nun weisen wir den Dummy’s noch den Raum Wetter zu. attr Sonnenaufgang room Wetter attr Sonnenuntergang room WetterAm Ende müsste euer hinzugefügter Code so aussehen.attr global latitude 51.339695 attr global longitude 12.373075############## Sunrise/Sunset ###################define Sonnenaufgang dummy attr Sonnenaufgang room Wetterdefine Sonnenuntergang dummy attr Sonnenuntergang room Wetterdefine sun_riseSet_timer at *00:05:00 { my $s = sunrise();; fhem("set Sonnenaufgang $s");; $s = sunset();; fhem("set Sonnenuntergang $s");; }Wenn ihr einen bestimmten Helligkeitsgrad des Sonnenaufgang/Sonnenuntergang wissen möchtet könnt ihr folgende Befehle verwenden. sunrise("REAL"); #Sonne geht am Horizont auf oder unter sunrise("CIVIL"); #Sonne ist hinter dem Horizont, aber es ist noch Hell sunrise("NAUTIC") #Umrisse können noch gegen den Horizont wahrgenommen werden (z.B auf dem Meer) sunrise("ASTRONOMIC") #es ist komplett dunkelWeiter Informationen zu sunrise() findet ihr auf der Commandref Seite. Habt ihr Fragen oder Anregungen hinterlasst ein Kommentar

- 18 Sep, 2014
- 2 Min. Lesezeit
Backup einer Raspberry Pi Speicherkarte via Mac (OSX) Terminal App erstellen
In diesem Tutorial zeige ich euch, wir ihr eine Sicherung eures Raspberry Pi Systems macht. Die Sicherung wird auf eurem Mac gespeichert und auch gleich komprimiert um Platz zu sparen. Wie ihr eure SD-Karte bei einem Fehler oder Crash wiederherstellt wird auch beschrieben. Voraussetzungen:SD-Karte mit zu sicherndem Raspberry Pi BetriebssystemSD-Karten Slot am Macbook oder ein Card-ReaderSD-Card Backup mit Terminal erstellenzu klonende SD-Karte in den Card-Reader steckenTerminal App öffnen (Programme->Dienstprogramme-Terminal) und mit folgendem Befehl den Namen/Ort der Speicherkarte finden diskutil list Es erscheint eine Liste mit allen Speichermedien. Die zu klonende SD-Karte erkennt ihr an ihrer Speichergröße unter Size oder ihrem Namen. In diesem Beispiel heißt sie /dev/disk1.Der folgendem Befehl erstellt ein Image von der SD-Karte, komprimiert es und speichert es auf eurem Desktop. disk1 müsst ihr durch den Namen eurer SD-Karte ersetzen. sudo dd bs=4m if=/dev/disk1 | gzip > ~/Desktop/rpi-image.gz Falls ihr nach einem Passwort gefragt werdet, gebt das Passwort für euren Mac ein (nicht wundern während der Eingabe werden keine Zeichen angezeigt), dann mit ENTER bestätigen.Der Kopiervorgang dauert eine ganze Weile (30min–2Std). Sobald der Vorgang abgeschlossen ist erhält man eine Meldung (während des Kopieren erhält man kein Rückmeldung). Tipp Mit ctrl+t könnt ihr anzeigen lassen wie viel bytes schon auf die SD-Karte geschrieben wurden.Wiederherstellen der SD-Karte via TerminalDie zu wiederherstellende SD-Karte in den Card-Reader stecken.Name der SD-Karte mit folgendem Befehl herausfinden. diskutil listSD-Karte Unmounten mit (disk1 mit dem Namen eurer SD-Karte ersetzen) diskutil umountDisk /dev/disk1Jetzt formatieren wir die SD-Karte im FAT16 Format. (Achtung es werden alle Daten auf diesem Speichermedium gelöscht. Unbedingt darauf achten das ihr das richtige Speichermedium wählt) sudo newfs_msdos -F 16 /dev/disk1 Ihr müßt wieder das Passwort eures Mac eingeben und mit [ENTER] bestätigen. Option -F 16 gibt an das die Karte im FAT 16 Format formatiert werden soll.Um das zuvor erstellte Backup auf die SD-Karte zu übertragen verwendet ihr folgenden Befehl. sudo gzip -dc ~/Desktop/rpi-image.gz | sudo dd bs=4m of=/dev/disk1Tipp Falls eure Backup .gz sich an einem anderen Speicherort befindet, schreib den Befehl bis sudo dd if= und dann zieht ihr die .dmg Datei per Drag and Drop auf das Terminal Fenster. Der Pfad zur Datei wird automatisch eingefügt und ihr schreibt den Rest des Befehls weiter of=/dev/disk1.