<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Martinhaas</id>
	<title>FHEMWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Martinhaas"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/Martinhaas"/>
	<updated>2026-04-30T14:42:38Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HM-PB-2-WM55_2fach-Funk-Wandtaster&amp;diff=28968</id>
		<title>HM-PB-2-WM55 2fach-Funk-Wandtaster</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HM-PB-2-WM55_2fach-Funk-Wandtaster&amp;diff=28968"/>
		<updated>2019-01-06T05:20:14Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;HomeMatic HM-PB-2-WM55 2fach-Funk-Wandtaster&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;bitte eintragen&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hinweise zur Hardware-Installation ==&lt;br /&gt;
Die Integration in FHEM läuft wie mit allen Komponenten. Den LAN-Adapter in FHEM auf hmPairForSec 60 (Zahl bedeutet die Zeit des Zustands in Sekunden und kann beliebig geändert werden) setzen und den Knopf auf der Rückseite des Schalters drücken. Dann sollte der Schalter wie unten dargestellt in FHEM angelegt werden (wird in die fhem.cfg eingetragen). Je nach Einstellungen in {{Link2CmdRef|Anker=autocreate|Label=autocreate}} kann es sein, dass auch noch weitere Aktionen ausgeführt wurden.&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit FHEM ==&lt;br /&gt;
&lt;br /&gt;
=== Auszug aus der fhem.cfg ===&lt;br /&gt;
Hier der Originaleintrag aus der fhem.cfg der automatisch erstellt wird (mit den &amp;quot;xxx&amp;quot; habe ich meine Nummer erstetzt):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define CUL_HM_HM_PB_2_WM55_1F1xxx CUL_HM 1F1xxx&lt;br /&gt;
attr CUL_HM_HM_PB_2_WM55_1F1xxx .devInfo 020000&lt;br /&gt;
attr CUL_HM_HM_PB_2_WM55_1F1xxx .stc 40&lt;br /&gt;
attr CUL_HM_HM_PB_2_WM55_1F1xxx firmware 1.1&lt;br /&gt;
attr CUL_HM_HM_PB_2_WM55_1F1xxx model HM-PB-2-WM55&lt;br /&gt;
attr CUL_HM_HM_PB_2_WM55_1F1xxx room Bad&lt;br /&gt;
attr CUL_HM_HM_PB_2_WM55_1F1xxx serialNr KEQ003xxx&lt;br /&gt;
attr CUL_HM_HM_PB_2_WM55_1F1xxx subType pushButton&lt;br /&gt;
define FileLog_CUL_HM_HM_PB_2_WM55_1F1xxx FileLog ./log/CUL_HM_HM_PB_2_WM55_1F1xxx-%Y.log CUL_HM_HM_PB_2_WM55_1F1xxx&lt;br /&gt;
attr FileLog_CUL_HM_HM_PB_2_WM55_1F1xxx logtype text&lt;br /&gt;
attr FileLog_CUL_HM_HM_PB_2_WM55_1F1xxx room CUL_HM&lt;br /&gt;
define CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_01 CUL_HM 1F1xxx01&lt;br /&gt;
attr CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_01 model HM-PB-2-WM55&lt;br /&gt;
attr CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_01 room CUL_HM&lt;br /&gt;
define FileLog_CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_01 FileLog ./log/CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_01-%Y.log CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_01&lt;br /&gt;
attr FileLog_CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_01 logtype text&lt;br /&gt;
attr FileLog_CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_01 room CUL_HM&lt;br /&gt;
define CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_02 CUL_HM 1F1xxx02&lt;br /&gt;
attr CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_02 model HM-PB-2-WM55&lt;br /&gt;
attr CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_02 room CUL_HM&lt;br /&gt;
define FileLog_CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_02 FileLog ./log/CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_02-%Y.log CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_02&lt;br /&gt;
attr FileLog_CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_02 logtype text&lt;br /&gt;
attr FileLog_CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_02 room CUL_HM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bearbeiten ===&lt;br /&gt;
Das ist der Standardeintrag, den fhem automatisch erstellt. Es macht aber Sinn, einiges zu verändern.&lt;br /&gt;
Zum einen sollten die Entities umbenannt werden, um sie besser finden und somit bedienen zu können. Das geht entweder manuell in der fhem.cfg (suche &amp;quot;CUL_HM_HM_PB_2_WM55_1F1xxx&amp;quot; ersetze mit neuem Begriff) oder besser per Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rename CUL_HM_HM_PB_2_WM55_1F1xxx LichtFlurDev&lt;br /&gt;
rename CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_01 LichtFlur1&lt;br /&gt;
rename CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_02 LichtFlur2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch ist es nicht sinnvoll, für jede Entity (in diesem Fall 3: Schalter und die beiden Knöpfe) je ein eigenes Logfile anzulegen, auch wenn autocreate das so macht, denn das kostet Performance und Übersichtlichkeit. Das Beispiel unten zeigt, wie die Ereignisse aller drei Entities mitgeschrieben werden - achtet auf das .* am Ende:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define FileLog_LichtFlur FileLog ./log/LichtFlur-%Y.log LichtFlur.*&lt;br /&gt;
attr FileLog_LichtFlur logtype text&lt;br /&gt;
attr FileLog_LichtFlur room CUL_HM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und jetzt natürlich noch aufräumen und die alten Logfiles entsorgen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delete FileLog_CUL_HM_HM_PB_2_WM55_1F1xxx&lt;br /&gt;
delete FileLog_CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_01&lt;br /&gt;
delete FileLog_CUL_HM_HM_PB_2_WM55_1F1xxx_Btn_02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; Folgende Attribute solltet ihr &#039;&#039;&#039;nicht aendern&#039;&#039;&#039;: .devInfo, .stc, model, firmware, serialNr, subType&lt;br /&gt;
&lt;br /&gt;
Weitere interessante Attribute, die man nutzen sollte (siehe auch {{Link2CmdRef}}) sind: room, group, expert, webCmd: gruppieren und darstellen auf der webseite, autoRegRead: automatisches Lesen der Register (für push-Button sollte es auf 0 stehen)&lt;br /&gt;
&lt;br /&gt;
Letztendlich könnte die &amp;quot;gepflegte&amp;quot; fhem.cfg so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#====== Das Device&lt;br /&gt;
define LichtFlurDev CUL_HM 1F1xxx&lt;br /&gt;
attr LichtFlurDev .devInfo 020000&lt;br /&gt;
attr LichtFlurDev .stc 40&lt;br /&gt;
attr LichtFlurDev firmware 1.1&lt;br /&gt;
attr LichtFlurDev model HM-PB-2-WM55&lt;br /&gt;
attr LichtFlurDev serialNr KEQ003xxx&lt;br /&gt;
attr LichtFlurDev subType pushButton&lt;br /&gt;
#--- user Attribute zum Device&lt;br /&gt;
attr LichtFlurDev room Flur,Device,Licht&lt;br /&gt;
attr LichtFlurDev group Schalter&lt;br /&gt;
attr LichtFlurDev webCmd statusRequest:getConfig&lt;br /&gt;
attr LichtFlurDev expert 1&lt;br /&gt;
attr LichtFlurDev autoRegRead 0&lt;br /&gt;
#--- erste Taste&lt;br /&gt;
define LichtFlur1 CUL_HM 1F1xxx01&lt;br /&gt;
attr LichtFlur1 model HM-PB-2-WM55&lt;br /&gt;
attr LichtFlur1 room Flur,Button,Licht&lt;br /&gt;
attr LichtFlur1 group Schalter&lt;br /&gt;
#--- zweite Taste&lt;br /&gt;
define LichtFlur2 CUL_HM 1F1xxx02&lt;br /&gt;
attr LichtFlur2 model HM-PB-2-WM55&lt;br /&gt;
attr LichtFlur2 room Flur,Button,Licht&lt;br /&gt;
attr LichtFlur2 group Schalter&lt;br /&gt;
&lt;br /&gt;
define FileLog_LichtFlur FileLog ./log/LichtFlur-%Y.log LichtFlur.*&lt;br /&gt;
attr FileLog_LichtFlur logtype text&lt;br /&gt;
attr FileLog_LichtFlur room logfiles&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mit virtuellem Aktor verbinden ===&lt;br /&gt;
Wenn man den Taster nicht direkt mit einem Aktor verbindet, erhält er keine Rückmeldungen, wird also immer orange und rot blinken, wenn ihr einen Befehl absetzt. Dieser wird zwar von fhem verarbeitet, fhem weiß aber nicht, dass es etwas zurückmelden soll. Daher solltet ihr Euch einen virtuellen Aktor anlegen und den Taster dann mit diesem verbinden:&lt;br /&gt;
&lt;br /&gt;
In der FHEM-Web Oberfläche gebt ihr in der Kommandozeile ein (die hmId kann freigewählt werden, darf aber in echt nicht existieren):&lt;br /&gt;
 define virtueller_Aktor CUL_HM 123456&lt;br /&gt;
sowie:&lt;br /&gt;
 set virtueller_Aktor virtual 2&lt;br /&gt;
&lt;br /&gt;
Jetzt habt ihr einen Virtuellen Aktor mit einem Kanal erstellt, jetzt gilt es noch das ganze mit dem realen Taster zu verbinden. Verbunden werden zuerst die Kanäle und dann wird die ganze Konfiguration am Taster gespeichert:&lt;br /&gt;
&lt;br /&gt;
 set LichtFlur1 peerChan 0 virtueller_Aktor_Btn1 single set&lt;br /&gt;
 set LichtFlur2 peerChan 0 virtueller_Aktor_Btn2 single set&lt;br /&gt;
 set LichtFlurDev getConfig  &lt;br /&gt;
&lt;br /&gt;
und am Taster einmal anlernen drücken, ggf. nochmal ein &amp;lt;code&amp;gt;set LichtFlurDev getConfig&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun drückt einmal einen Button eures Tasters. Wenn alles geklappt hatte, sollte bei Euren Kanälen im State ein (to virtueller_Aktor_Btn1) dahinter stehen und unter den Attributen etwas in den peerIDs auftauchen. Diesen virtuellen Aktor kann man übrigens als Gegenpart für beliebig viele Taster nehmen, ihr braucht also nicht für jeden Taster einen virtuellen Aktor erstellen. Um den virtuellen Aktor zu erweitern einfach ein &amp;lt;code&amp;gt;set virtueller_Aktor virtual &amp;lt;i&amp;gt;[Gesamtanzahl aller Kanäle]&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; ausführen, schon habt ihr weitere Kanäle die ihr mit euren echten Tastern peeren könnt.&lt;br /&gt;
&lt;br /&gt;
Am Ende umbedingt einmal &amp;quot;Save config&amp;quot; drücken, damit der virtuelle Aktor in der fhem.cfg abgespeichert wird.&lt;br /&gt;
&lt;br /&gt;
=== Mit Rolladenaktor verbinden (peeren) ===&lt;br /&gt;
&lt;br /&gt;
Der HM-PB-2-WM55 kann auch z.B. direkt mit einem [[HM-LC-BL1-FM_Funk-Jalousieaktor|HM-LC-BL1-FM Rollladenaktor]] [[Peering (HomeMatic)|gepeert]] werden. Hierdurch lässt er sich ohne FHEM nutzen. Weitere Infos dazu finden Sie [[HM-LC-BL1-FM_Funk-Jalousieaktor#Peeren_mit_einem_HM-PB-2-WM55|hier]].&lt;br /&gt;
&lt;br /&gt;
== Integration in bestehende Markenschalterprogramme ==&lt;br /&gt;
&lt;br /&gt;
Obwohl der HM-PB-2-WM55, im Gegensatz zu den Funk-Schaltaktoren für Markenschalter (HM-LC-Sw1PBU-FM, HM-LC-Dim1TPBU-FM und HM-LC-Bl1PBU-FM), eigentlich nicht für die Integration in bestehende Markenschalterprogramme geeignet ist, kann man ihn mit etwas Bastelaufwand doch optisch zumindest etwas integrieren.&lt;br /&gt;
&lt;br /&gt;
=== Jung CD 500 ===&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe einer im 3D Drucker selbst gedruckten Adapterplatte und etwas dremeln lässt sich der HM-PB-2-WM55 recht gut in die Jung CD 500 Serie integrieren. Eine bebilderte Anleitung ist [http://www.instructables.com/id/HomeMatic-Wandschalter-mit-Jung-CD500-Blenden hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
== Probleme ==&lt;br /&gt;
&lt;br /&gt;
=== Bausatz: Der Taster lässt sich nicht anlernen / rotes Dauerblinken ===&lt;br /&gt;
Dann stimmt vermutlich etwas mit der Lötung nicht. Am besten insbesondere die Lötungen des Funkmoduls (8 auf jeder Seite überprüfen).&lt;br /&gt;
Am besten mal in der fhem.cfg &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attr LANInterface loglevel 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eintragen und dann die Logdatei anschauen, was dort für Funkverkehr aufgezeichnet wird. Euren Schalter könnt ihr identifizieren, indem ihr den kleineren QR-code auf der Platine des Schalters z.B. mit einem Android Handy und Barcoo auslest. Die App zeigt Euch dann den sechsstelligen Gerätecode an (wenn der Code siebenstellig erscheint, dann die erste Ziffer / Buchtstaben weglassen), den ihr in der Logdatei suchen könnt.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
*[https://files.elv.com/Assets/Produkte/13/1317/131774/Downloads/HM-PB-2-WM55-2_UM_GE_eQ-3_web.pdf: Documentation - HM-PB-2-WM55]&lt;br /&gt;
*[http://www.instructables.com/id/HomeMatic-Wandschalter-mit-Jung-CD500-Blenden Instructables.com: Integration in Jung CD 500 Schalterprogramm]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic Components]]&lt;br /&gt;
[[Kategorie:Schalter (Sender)]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=28507</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=28507"/>
		<updated>2018-11-24T14:29:18Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ein [[Raspberry Pi]] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustür montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Der RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, er daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine handeslübliche 8-Euro USB-Zahlentastatur. Diese ist optional komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet.&lt;br /&gt;
&lt;br /&gt;
Ganz edel: die vandalensichere und wetterfeste (IP65) &#039;&#039;&#039;[http://www.va-tastatur.de/download/tastaturen/Viscotech-Datenblatt-EKM-15.pdf Edelstahltastatur EKM-15]&#039;&#039;&#039; kostet inkl. Mwst- und Versand 119.-EUR (Stand März 2014):&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
Hinweis: auf dem alternativen Beagle Bone Black (BBB) unter Debian fehlt auch die kbd&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install kbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:100x:100x::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:100x:100x::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
&lt;br /&gt;
Bei neueren Raspberrys muss eingestellt werden, dass sie nicht mit einer Desktop-Umgebung starten, sondern mit der Textconsole/CLI (tty1).&lt;br /&gt;
&lt;br /&gt;
==== Raspberry Boot mit Console einstellen ====&lt;br /&gt;
&lt;br /&gt;
Als root Programm &amp;quot;raspi-config&amp;quot; starten. Einstellung: ==&amp;gt; Boot Options ==&amp;gt; Desktop / CLI ==&amp;gt; Console Autologin Text console ==&amp;gt; save ==&amp;gt; reboot&lt;br /&gt;
&lt;br /&gt;
Hinweis (11/18): neuere Linuxe mit systemd scheinen &amp;quot;Console Autologin Text console&amp;quot; nicht mehr zu benötigen. CLI Console muss aber auf jeden Fall eingestellt sein.&lt;br /&gt;
&lt;br /&gt;
==== Automatisches Login mit Console ====&lt;br /&gt;
&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird das Standard getty gegen mingetty für tty1 ausgetauscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ältere&#039;&#039;&#039; System V-Systeme. Datei &#039;&#039;&#039;/etc/inittab&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei &#039;&#039;&#039;neueren&#039;&#039;&#039; systemd-Systemen muss stattdessen die Datei &lt;br /&gt;
&#039;&#039;&#039;/etc/systemd/system/getty@tty1.service.d/autologin.conf&#039;&#039;&#039;&lt;br /&gt;
mit folgendem Code angelegt werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;[Service]&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;ExecStart=&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;ExecStart=-/sbin/mingetty --autologin rpi --noclear %I 115200,38400,9600 linux&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SUDO für rpi einstellen ===&lt;br /&gt;
Je nach USB-Nummerntastatur ist es notwendig, dass NUMLOCK eingeschaltet wird. &lt;br /&gt;
Das erledigt user rpi über sudo&lt;br /&gt;
&lt;br /&gt;
Als root:&lt;br /&gt;
:&amp;lt;code&amp;gt;visudo&amp;lt;/code&amp;gt;&lt;br /&gt;
z.B. folgendes eintragen:&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi     ALL=(ALL) NOPASSWD: /usr/bin/setleds&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# 11/18: an moderneres Linuxe angepasst&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren (siehe visudo oben)&lt;br /&gt;
    sudo /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende/fehlbediente Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 33335533113 wird 35313 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w3 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    sudo /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
Kurtest: mit&lt;br /&gt;
:&amp;lt;code&amp;gt;ps -ef | grep kbd&amp;lt;/code&amp;gt;&lt;br /&gt;
sollte der laufende Prozess /usr/local/bin/kbd2fhem.sh sichtbar sein.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel-Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist {{Link2Forum|Topic=11521|Message=67529|LinkText=dieser Beitrag}} im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=25189</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=25189"/>
		<updated>2018-02-10T12:06:56Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ein [[Raspberry Pi]] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustür montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Der RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, er daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine handeslübliche 8-Euro USB-Zahlentastatur. Diese ist optional komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet.&lt;br /&gt;
&lt;br /&gt;
Ganz edel: die vandalensichere und wetterfeste (IP65) &#039;&#039;&#039;[http://www.va-tastatur.de/download/tastaturen/Viscotech-Datenblatt-EKM-15.pdf Edelstahltastatur EKM-15]&#039;&#039;&#039; kostet inkl. Mwst- und Versand 119.-EUR (Stand März 2014):&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
Hinweis: auf dem alternativen Beagle Bone Black (BBB) unter Debian fehlt auch die kbd&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install kbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:100x:100x::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:100x:100x::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
&lt;br /&gt;
Bei neueren Raspberrys muss eingestellt werden, dass sie nicht mit einer Desktop-Umgebung starten, sondern mit der Textconsole/CLI (tty1).&lt;br /&gt;
&lt;br /&gt;
==== Raspberry Boot mit Console einstellen ====&lt;br /&gt;
&lt;br /&gt;
Als root Programm &amp;quot;raspi-config&amp;quot; starten. Einstellung: ==&amp;gt; Boot Options ==&amp;gt; Desktop / CLI ==&amp;gt; Console Autologin Text console ==&amp;gt; save ==&amp;gt; reboot&lt;br /&gt;
&lt;br /&gt;
==== Automatisches Login mit Console ====&lt;br /&gt;
&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird das Standard getty gegen mingetty für tty1 ausgetauscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ältere&#039;&#039;&#039; System V-Systeme. Datei &#039;&#039;&#039;/etc/inittab&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei &#039;&#039;&#039;neueren&#039;&#039;&#039; systemd-Systemen muss stattdessen die Datei &lt;br /&gt;
&#039;&#039;&#039;/etc/systemd/system/autologin@.service&#039;&#039;&#039;&lt;br /&gt;
geändert werden:&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;ExecStart=-/sbin/agetty --autologin xx --noclear %I $TERM&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;ExecStart=-/sbin/mingetty --autologin rpi --noclear %I $TERM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende/fehlbediente Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 33335533113 wird 35313 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel-Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist {{Link2Forum|Topic=11521|Message=67529|LinkText=dieser Beitrag}} im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PGM3_und_AVM_Fritz!Box&amp;diff=23699</id>
		<title>PGM3 und AVM Fritz!Box</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PGM3_und_AVM_Fritz!Box&amp;diff=23699"/>
		<updated>2017-12-20T23:16:00Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Randnotiz|RNTyp=Info|RNText=Das Frontend PGM3 wurde eingestellt. Von einer weiteren Nutzung wird daher abgeraten.&amp;lt;br&amp;gt;Alte Version im [http://svn.fhem.de/trac/browser/trunk/fhem/webfrontend/pgm3 SVN]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Webfrontend PGM3 auf dem Linux-PC mit FHEM auf der AVM Fritz!Box betreiben&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
pgm3 ist in php geschrieben und relativ ressourcenhungrig und wird daher aus beiden Gründen nie direkt auf der FritzBox betrieben werden können.&lt;br /&gt;
&lt;br /&gt;
Zum Anschauen der FHEM-Werte benötigt man ja ein Endgerät wie PC, Smartphone oder Tablet. Wenn dieses Engerät ein Linux-PC ist, dann steht der Nutzung von FHEM auf der FritzBox nichts im Wege. Der PC braucht nicht immer eingeschaltet zu sein.&lt;br /&gt;
&lt;br /&gt;
== Vorgehensweise ==&lt;br /&gt;
=== Installation von FHEM auf der Fritz!Box ===&lt;br /&gt;
Dazu gibt es hier im Wiki eine tolle Anleitung: [[AVM Fritz!Box]]. Getestet wurde das von mir auf der 7270, zumindest auf der 7390 wird das mit Sicherheit auch funktionieren.&lt;br /&gt;
&lt;br /&gt;
=== Installation von pgm3 auf dem Linux-PC ===&lt;br /&gt;
Auch dazu gibt es hier im Wiki eine Anleitung: [[PGM3 Installation and Troubleshooting]].&lt;br /&gt;
&lt;br /&gt;
=== Anpassungen am Betriebssystem und in der config.php von pgm3 ===&lt;br /&gt;
Schon jetzt kann pgm3 sich über den FHEM-Port (i.d.R. 7072) aktuelle Werte von FHEM auf der FritzBox abrufen. &lt;br /&gt;
Port 7270 muss in der fhem.cfg global definiert sein (Standard, sollte aber überprüft werden)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#fhem.cfg auf der FritzBox&lt;br /&gt;
attr global port 7072 global&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Da pgm3 umfangreiche Grafiken erstellt, muss pgm3 möglichst schreibend an die Logfiles auf der Fritz!Box herankommen. &lt;br /&gt;
Hierzu muss das Medium (USB-Stick oder besser Festplatte) gemountet werden.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#/etc/fstab auf dem PC&lt;br /&gt;
//fritz.box/fritz.nas /media/fritzbox cifs guest 0 0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Mit diesem Eintrag wird die Fritz!Box beim Booten dazugemountet. Manuell geht das als root auf dem PC mit z.B.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;mount -a&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nun muss nur noch pgm3 in der config.php mitgeteilt werden, wo FHEM ist und wo die Logfiles liegen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#config.php im pgm3-Ordner auf dem PC&lt;br /&gt;
$fhem=&amp;quot;fritz.box&amp;quot;              #fritz.box is the hostname? Test: ping fritz.box&lt;br /&gt;
$logpath=&amp;quot;/media/fritzbox/fhem/log/&amp;quot;;    #check the path!&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb ==&lt;br /&gt;
Es sind nach dieser Anleitung somit KEINE Anpassungen an der FritzBox für den Betrieb von pgm3 notwendig.&lt;br /&gt;
&lt;br /&gt;
Die FritzBox wird nur als &amp;quot;NAS&amp;quot; benutzt, also primär zum Lesen der Logfiles. Ansonsten wird noch je nach Zeitintervall die xmllist über den Port 7270 abgefragt.&lt;br /&gt;
&lt;br /&gt;
Die ganze &amp;quot;Arbeit&amp;quot; mit Grafiken erstellen, Wetter abfragen etc. erfolgt rein lokal auf dem PC. Insofern ist der Betrieb von pgm3 an der FritzBox für die Box nicht rechenintensiv.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[PGM3_Optimize_for_Smartphones|PGM3 Optimize for Smartphones]]&lt;br /&gt;
* [[PGM3_dbLog|PGM3 dbLog]]&lt;br /&gt;
* [[PGM3_NewSkins|PGM3 NewSkins]]&lt;br /&gt;
* [[PGM3_Installation_and_Troubleshooting|PGM3 Installation and Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PGM3_NewSkins&amp;diff=23698</id>
		<title>PGM3 NewSkins</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PGM3_NewSkins&amp;diff=23698"/>
		<updated>2017-12-20T23:15:22Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Randnotiz|RNTyp=Info|RNText=Das Frontend PGM3 wurde eingestellt. Von einer weiteren Nutzung wird daher abgeraten.&amp;lt;br&amp;gt;Alte Version im [http://svn.fhem.de/trac/browser/trunk/fhem/webfrontend/pgm3 SVN]}}&lt;br /&gt;
&lt;br /&gt;
== pgm3 with different colors - skinable ==&lt;br /&gt;
=== Required ===&lt;br /&gt;
* You need at least the version pgm3 v100108. This version is included in fhem-4.9.&lt;br /&gt;
=== Where to change the colors ===&lt;br /&gt;
There is a new section in the config.php which is called &amp;quot;SKINS - change your colors&amp;quot;.&lt;br /&gt;
There you will find further information.&lt;br /&gt;
&lt;br /&gt;
The colors of links, mouse-over and other CSS are changeable in the &amp;amp;lt;pgm3&amp;amp;gt;/include/style.css. Be sure to have a backup. CSS is not a part of this page.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;##########################&lt;br /&gt;
##ORANGE&lt;br /&gt;
    $bodybg=&amp;quot;bgcolor=&#039;#FFDAB9&#039;&amp;quot;;&lt;br /&gt;
    $bg1=&amp;quot;bgcolor=&#039;#FF8C00&#039;&amp;quot;;&lt;br /&gt;
    $bg2=&amp;quot;bgcolor=&#039;#FFA500&#039;&amp;quot;;&lt;br /&gt;
    $bg4=&amp;quot;bgcolor=&#039;#6394BD&#039;&amp;quot;;&lt;br /&gt;
    $bg5=&amp;quot;bgcolor=&#039;#FFFFFF&#039;&amp;quot;;&lt;br /&gt;
    $fontcolor1=&amp;quot;color=&#039;#000000&#039;&amp;quot;;&lt;br /&gt;
    $fontcolor3=&amp;quot;color=&#039;#000000&#039;&amp;quot;;&lt;br /&gt;
    # The Button needs decimal Code Instead Hex.&lt;br /&gt;
    # Use the column left from the HEX on&lt;br /&gt;
    # [http://www.farb-tabelle.de/de/farbtabelle.htm http://www.farb-tabelle.de/de/farbtabelle.htm]&lt;br /&gt;
    # You must delete the old graphics after the change. &amp;quot;rm &amp;amp;lt;pgm3&amp;amp;gt;/tmp/*&amp;quot;&lt;br /&gt;
    $buttonBg_R=&#039;255&#039;;$buttonBg_G=&#039;165&#039;;$buttonBg_B=&#039;0&#039;;&lt;br /&gt;
    #Dec-Code from $bg1:&lt;br /&gt;
    $bg1_R=&#039;255&#039;;$bg1_G=&#039;140&#039;;$bg1_B=&#039;0&#039;;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Screenshot ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:Skin orange.jpeg|300px]]&lt;br /&gt;
&lt;br /&gt;
This will create a pgm3 which looks like the orange on the [http://martin.htsv.net/fhz/screenshots.html screenshot-page]&lt;br /&gt;
&lt;br /&gt;
=== Colors in HEX and decimal ===&lt;br /&gt;
HTML needs colors in Hexformat like #FFFFFF for white. The php library needs this in Dec like 255,140,0&lt;br /&gt;
&lt;br /&gt;
There is a nice website with a table of all you need: [http://www.farb-tabelle.de/de/farbtabelle.htm [1]].&lt;br /&gt;
&lt;br /&gt;
=== Hints ===&lt;br /&gt;
pgm3 only creates new pictures if it is required. That means that you can not see your changes directly.&lt;br /&gt;
In this case erase all your old pictures. They resides under pgm3 in the tmp-Directory:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;rm &amp;amp;lt;pgm3&amp;amp;gt;/tmp/*&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* At the moment the fonts in the php-graphics are black. This means that you need a bright background to read this&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [[PGM3_Optimize_for_Smartphones|PGM3 Optimize for Smartphones]]&lt;br /&gt;
* [[PGM3_dbLog|PGM3 dbLog]]&lt;br /&gt;
* [[PGM3_Installation_and_Troubleshooting|PGM3 Installation and Troubleshooting]]&lt;br /&gt;
* [[PGM3_und_AVM_Fritz!Box|PGM3 und AVM Fritz!Box]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PGM3_Optimize_for_Smartphones&amp;diff=23697</id>
		<title>PGM3 Optimize for Smartphones</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PGM3_Optimize_for_Smartphones&amp;diff=23697"/>
		<updated>2017-12-20T23:15:03Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Randnotiz|RNTyp=Info|RNText=Das Frontend PGM3 wurde eingestellt. Von einer weiteren Nutzung wird daher abgeraten.&amp;lt;br&amp;gt;Alte Version im [http://svn.fhem.de/trac/browser/trunk/fhem/webfrontend/pgm3 SVN]}}&lt;br /&gt;
&lt;br /&gt;
== Control FHEM with your smartphone from everywhere ==&lt;br /&gt;
=== Required ===&lt;br /&gt;
* pgm3 since v100108. This version is included in fhem-4.9.&lt;br /&gt;
=== The Goal ===&lt;br /&gt;
Current smartphones like Android/iPhone and others have &amp;quot;big&amp;quot; screens and a good usability.&lt;br /&gt;
&lt;br /&gt;
You can use pgm3 easily with your smartphone from everywhere. You can&lt;br /&gt;
&lt;br /&gt;
* see full gnuplot pictures without e.g. flash and other things which are not supported on smartphones. pgm3 uses only html and PNG.&lt;br /&gt;
* fast load because you can minimize the startpage. Then you only see a nearly blank screen.&lt;br /&gt;
* do a lot of other things too -- everything which is possible on PC too.&lt;br /&gt;
=== Prepare pgm3 for your smartphone ===&lt;br /&gt;
* config.php: If you have Webcam and Google Weather then give them a room. It must be an existing room. Then you are able to hide them.&lt;br /&gt;
* fhem: if not already done then create rooms for your devices. There should be a room with less devices.&lt;br /&gt;
* optional: you should have access to your pgm3 over the internet. The perfect way is to have a dnsalias and something like a fritzbox. There are a lot of documentation in the WWW how to do that.&lt;br /&gt;
=== Create your optimized bookmark on smartphone ===&lt;br /&gt;
The following is the recommended way to have a perfect starting page on the smartphone:&lt;br /&gt;
&lt;br /&gt;
* Point your smartphone to the starting page of the pgm3. If you have a dnsalias and a configured fritzbox try to access the dnsalias-address over Wireless Lan.&lt;br /&gt;
* Switch to the room with the less devices&lt;br /&gt;
* Your webcam and Google-Weather should be hided&lt;br /&gt;
* Hide everything which is not required on your future starting Page&lt;br /&gt;
* Bookmark this page on your smartphone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* pgm3 is primary a website. This means that you have already to scroll into every direction :-)&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[PGM3_dbLog|PGM3 dbLog]]&lt;br /&gt;
* [[PGM3_NewSkins|PGM3 NewSkins]]&lt;br /&gt;
* [[PGM3_Installation_and_Troubleshooting|PGM3 Installation and Troubleshooting]]&lt;br /&gt;
* [[PGM3_und_AVM_Fritz!Box|PGM3 und AVM Fritz!Box]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:FHEM Frontends]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PGM3_dbLog&amp;diff=23696</id>
		<title>PGM3 dbLog</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PGM3_dbLog&amp;diff=23696"/>
		<updated>2017-12-20T23:14:35Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Randnotiz|RNTyp=Info|RNText=Das Frontend PGM3 wurde eingestellt. Von einer weiteren Nutzung wird daher abgeraten.&amp;lt;br&amp;gt;Alte Version im [http://svn.fhem.de/trac/browser/trunk/fhem/webfrontend/pgm3 SVN]}}&lt;br /&gt;
Description on how to use the module &#039;&#039;&#039;DbLog&#039;&#039;&#039; instead of plain files.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The module FileLog works fine. Perhaps you want to store your files in a MySQL-Database. In this case the pgm3 [[:Kategorie:FHEM Frontends|frontend]] has the ability to use this information instead of the plain logfiles from FileLog.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This is only for experienced Users.&#039;&#039;&#039; Beginners should use the FileLog (default).&lt;br /&gt;
&lt;br /&gt;
Advantages:&lt;br /&gt;
* on weak machines like the NSLU2 it is faster than file logging.&lt;br /&gt;
* if fhem and pgm3 are on different machines you do not need nfs any more to get the logs.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
* install pgm3 v100312 from the CVS or from fhem-4.9&lt;br /&gt;
* read the documentation about DbLog in [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/dblog/ contrib/dbLog], and [http://fhem.de/commandref.html#DbLog commandref], and install the module &#039;&#039;&#039;93_DbLog.pm&#039;&#039;&#039; and the MySQL-Database&lt;br /&gt;
* write something like &amp;quot;&#039;&#039;&#039;define logdb DbLog db.conf .*:.*&#039;&#039;&#039;&amp;quot; into your fhem.cfg and restart Fhem&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
At the moment every supported device except the UserDefs are supported for dbLog.&lt;br /&gt;
You need at least pgm3 v100312 which is included in fhem-4.9.&lt;br /&gt;
&lt;br /&gt;
== Hints ==&lt;br /&gt;
* install &amp;quot;phpmyadmin&amp;quot; to administrate and test your database&lt;br /&gt;
* backup your database with &#039;&#039;mysqldump fhem --user=&amp;amp;lt;USER&amp;amp;gt; --password=&amp;amp;lt;PASSWD&amp;amp;gt; --add-drop-table -c &amp;amp;gt; fhem.sql&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[PGM3_Optimize_for_Smartphones|PGM3 Optimize for Smartphones]]&lt;br /&gt;
* [[PGM3_NewSkins|PGM3 NewSkins]]&lt;br /&gt;
* [[PGM3_Installation_and_Troubleshooting|PGM3 Installation and Troubleshooting]]&lt;br /&gt;
* [[PGM3_und_AVM_Fritz!Box|PGM3 und AVM Fritz!Box]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PGM3_Installation_and_Troubleshooting&amp;diff=23695</id>
		<title>PGM3 Installation and Troubleshooting</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PGM3_Installation_and_Troubleshooting&amp;diff=23695"/>
		<updated>2017-12-20T23:13:21Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Randnotiz|RNTyp=Info|RNText=Das Frontend PGM3 wurde eingestellt. Von einer weiteren Nutzung wird daher abgeraten.&amp;lt;br&amp;gt;Alte Version im [http://svn.fhem.de/trac/browser/trunk/fhem/webfrontend/pgm3 SVN]}}&lt;br /&gt;
== Webfrontend PGM3 -- Installation and Troubleshooting ==&lt;br /&gt;
=== Description ===&lt;br /&gt;
Pgm3 is one of the webfrontends of the project FHEM. It is based on PHP.&lt;br /&gt;
Pgm3 is a part of this project. It does not run without it. Look at [http://fhem.de http://fhem.de] for further descriptions like installing FHEM and the licenses.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Download ===&lt;br /&gt;
pgm3 is included in the subversion of FHEM. Look at [http://fhem.de http://fhem.de] for instructions how to get the current version. pgm3 is NOT included within the function updatefhem of FHEM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Screenshots ===&lt;br /&gt;
Screenshots including a short description are there: [http://martin.htsv.net/fhz/screenshots.html http://martin.htsv.net/fhz/screenshots.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
It should be very easy to install this webfrontend!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use the package-manager from your distribution like apt/yast and install the following packages:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;-- apache2&lt;br /&gt;
  -- apache2-mod_php5&lt;br /&gt;
  -- php5-gd&lt;br /&gt;
  -- php5&lt;br /&gt;
  -- gd #&amp;amp;gt;= 2.0.1, not needed with debian&lt;br /&gt;
  -- gnuplot&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that create a directory in the home directory of your apache. That ist normally /srv/www/htdocs or /var/www&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;amp;gt;&amp;amp;gt; mkdir /srv/www/htdocs/pgm3&lt;br /&gt;
  or&lt;br /&gt;
  &amp;amp;gt;&amp;amp;gt; mkdir /var/www/pgm3&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
copy everything from the tree of fhem (included in the fhem-tar)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;amp;gt;&amp;amp;gt; cp -pr fhem/webfrontends/pgm3/* /srv/www/htdocs/pgm3/&lt;br /&gt;
  or&lt;br /&gt;
  &amp;amp;gt;&amp;amp;gt; cp -pr fhem/webfrontends/pgm3/* /var/www/pgm3/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Think at the rights. Everything should have the rights of your webserver.&lt;br /&gt;
That is normally wwwrun.www or www-data.www-data&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;amp;gt;&amp;amp;gt; chown -R wwwrun.www /srv/www/htdocs/pgm3&lt;br /&gt;
  or&lt;br /&gt;
  &amp;amp;gt;&amp;amp;gt; chown -R www-data.www-data /var/www/pgm3&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Start your apache with e.g.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;amp;gt;&amp;amp;gt; /etc/init.d/apache2 start&lt;br /&gt;
  or&lt;br /&gt;
  &amp;amp;gt;&amp;amp;gt; rcapache2 start&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Check the ports and the paths in config.php of pgm3&lt;br /&gt;
&lt;br /&gt;
Point your Browser to e.g. [http://localhost/pgm3 http://localhost/pgm3] and enjoy it&amp;amp;#160;:-)&lt;br /&gt;
&lt;br /&gt;
After the first start you will get some pictures with error messages (only for FHT, HMS(T/TF/WD/MG) and KS300). There you can read which entry in the fhem.cfg is needed for the required logfiles (see Screenshots [http://martin.htsv.net/fhz/screenshots.html [1]] ). You should give pgm3 own logfiles as described on the error messages. Only then you will have everytime a full window. pgm3 will cut the files as described by logrotate in the config.php.&lt;br /&gt;
&lt;br /&gt;
Restart FHEM after changing the fhem.cfg.&lt;br /&gt;
After a couple of minutes you will see the desired pictures ( see Screenshots).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Look at the other configurations in the config.php for other toys (e.g. tail).&lt;br /&gt;
&lt;br /&gt;
The following devices are automatically supported: FHT, HMS100(T/TF/WD/W/MG/RM100-2), FS20, KS300, WS300, CUL_WS(S300TH). It is possible to install UserDefs, that mean that you can define every other device (or type like Ping-Tests) by yourself.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
Normally there should be no problems. If something seems to be wrong then check the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;-- Rights: Everything should have the rights of your webserver. The directory &amp;amp;lt;pgm3&amp;amp;gt;/tmp must be writeable by the webserver.&lt;br /&gt;
  -- type on the console in your working directory &amp;quot;php5 index.php&amp;quot; and &amp;quot;cd include;php5 fs20.php&amp;quot;. &lt;br /&gt;
   If there is a php problem or problems with graphic functions then you will get some error messages&lt;br /&gt;
  -- be sure to have the following entry in your /etc/php.ini: extension=gd.so&lt;br /&gt;
  -- some older systems don&#039;t find the TrueTypeFonts (no pictures on screen). In this case change in the config.php the path to them (absolut).&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [[PGM3_Optimize_for_Smartphones|PGM3 Optimize for Smartphones]]&lt;br /&gt;
* [[PGM3_dbLog|PGM3 dbLog]]&lt;br /&gt;
* [[PGM3_NewSkins|PGM3 NewSkins]]&lt;br /&gt;
* [[PGM3_und_AVM_Fritz!Box|PGM3 und AVM Fritz!Box]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PGM3_Optimize_for_Smartphones&amp;diff=23694</id>
		<title>PGM3 Optimize for Smartphones</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PGM3_Optimize_for_Smartphones&amp;diff=23694"/>
		<updated>2017-12-20T23:08:06Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Randnotiz|RNTyp=Info|RNText=Das Frontend PGM3 wird nicht mehr gepflegt. Es wird daher von einer Nutzung abgeraten. &amp;lt;br&amp;gt;Aktuellste Version im [http://svn.fhem.de/trac/browser/trunk/fhem/webfrontend/pgm3 SVN]}}&lt;br /&gt;
== Control FHEM with your smartphone from everywhere ==&lt;br /&gt;
=== Required ===&lt;br /&gt;
* pgm3 since v100108. This version is included in fhem-4.9.&lt;br /&gt;
=== The Goal ===&lt;br /&gt;
Current smartphones like Android/iPhone and others have &amp;quot;big&amp;quot; screens and a good usability.&lt;br /&gt;
&lt;br /&gt;
You can use pgm3 easily with your smartphone from everywhere. You can&lt;br /&gt;
&lt;br /&gt;
* see full gnuplot pictures without e.g. flash and other things which are not supported on smartphones. pgm3 uses only html and PNG.&lt;br /&gt;
* fast load because you can minimize the startpage. Then you only see a nearly blank screen.&lt;br /&gt;
* do a lot of other things too -- everything which is possible on PC too.&lt;br /&gt;
=== Prepare pgm3 for your smartphone ===&lt;br /&gt;
* config.php: If you have Webcam and Google Weather then give them a room. It must be an existing room. Then you are able to hide them.&lt;br /&gt;
* fhem: if not already done then create rooms for your devices. There should be a room with less devices.&lt;br /&gt;
* optional: you should have access to your pgm3 over the internet. The perfect way is to have a dnsalias and something like a fritzbox. There are a lot of documentation in the WWW how to do that.&lt;br /&gt;
=== Create your optimized bookmark on smartphone ===&lt;br /&gt;
The following is the recommended way to have a perfect starting page on the smartphone:&lt;br /&gt;
&lt;br /&gt;
* Point your smartphone to the starting page of the pgm3. If you have a dnsalias and a configured fritzbox try to access the dnsalias-address over Wireless Lan.&lt;br /&gt;
* Switch to the room with the less devices&lt;br /&gt;
* Your webcam and Google-Weather should be hided&lt;br /&gt;
* Hide everything which is not required on your future starting Page&lt;br /&gt;
* Bookmark this page on your smartphone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
* pgm3 is primary a website. This means that you have already to scroll into every direction :-)&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[PGM3_dbLog|PGM3 dbLog]]&lt;br /&gt;
* [[PGM3_NewSkins|PGM3 NewSkins]]&lt;br /&gt;
* [[PGM3_Installation_and_Troubleshooting|PGM3 Installation and Troubleshooting]]&lt;br /&gt;
* [[PGM3_und_AVM_Fritz!Box|PGM3 und AVM Fritz!Box]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:FHEM Frontends]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=23692</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=23692"/>
		<updated>2017-12-20T20:56:36Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: Boot als CLI und nicht per Desktop, automatisches Login&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ein [[Raspberry Pi]] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustür montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Der RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, er daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine 8-Euro USB-Zahlentastatur. Für diesen Einsatzzweck eignet sich die &#039;&#039;&#039;[http://keysonic.de/de/products/details.php?we_objectID=8300 Keysonic ACK-118 BK Numpad]&#039;&#039;&#039;. Sie ist komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet. Bei der Bestellung darauf achten, dass es sie in grau und in schwarz gibt. &lt;br /&gt;
&lt;br /&gt;
Ganz edel: die vandalensichere und wetterfeste (IP65) &#039;&#039;&#039;[http://www.va-tastatur.de/download/tastaturen/Viscotech-Datenblatt-EKM-15.pdf Edelstahltastatur EKM-15]&#039;&#039;&#039; kostet inkl. Mwst- und Versand 119.-EUR (Stand März 2014):&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
Hinweis: auf dem alternativen Beagle Bone Black (BBB) unter Debian fehlt auch die kbd&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install kbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:100x:100x::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:100x:100x::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
&lt;br /&gt;
Bei neueren Raspberrys muss eingestellt werden, dass sie nicht mit einer Desktop-Umgebung starten, sondern mit der Textconsole/CLI (tty1).&lt;br /&gt;
&lt;br /&gt;
==== Raspberry Boot mit Console einstellen ====&lt;br /&gt;
&lt;br /&gt;
Als root Programm &amp;quot;raspi-config&amp;quot; starten. Einstellung: ==&amp;gt; Boot Options ==&amp;gt; Desktop / CLI ==&amp;gt; Console Autologin Text console ==&amp;gt; save ==&amp;gt; reboot&lt;br /&gt;
&lt;br /&gt;
==== Automatisches Login mit Console ====&lt;br /&gt;
&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird das Standard getty gegen mingetty für tty1 ausgetauscht. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ältere&#039;&#039;&#039; System V-Systeme. Datei &#039;&#039;&#039;/etc/inittab&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei &#039;&#039;&#039;neueren&#039;&#039;&#039; systemd-Systemen muss stattdessen die Datei &lt;br /&gt;
&#039;&#039;&#039;/etc/systemd/system/autologin@.service&#039;&#039;&#039;&lt;br /&gt;
geändert werden:&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;ExecStart=-/sbin/agetty --autologin xx --noclear %I $TERM&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;ExecStart=-/sbin/mingetty --autologin rpi --noclear %I $TERM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende/fehlbediente Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 33335533113 wird 35313 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel-Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist {{Link2Forum|Topic=11521|Message=67529|LinkText=dieser Beitrag}} im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=23685</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=23685"/>
		<updated>2017-12-20T20:40:38Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: /* Neuer nicht privilegierter User */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ein [[Raspberry Pi]] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustür montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Der RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, er daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine 8-Euro USB-Zahlentastatur. Für diesen Einsatzzweck eignet sich die &#039;&#039;&#039;[http://keysonic.de/de/products/details.php?we_objectID=8300 Keysonic ACK-118 BK Numpad]&#039;&#039;&#039;. Sie ist komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet. Bei der Bestellung darauf achten, dass es sie in grau und in schwarz gibt. &lt;br /&gt;
&lt;br /&gt;
Ganz edel: die vandalensichere und wetterfeste (IP65) &#039;&#039;&#039;[http://www.va-tastatur.de/download/tastaturen/Viscotech-Datenblatt-EKM-15.pdf Edelstahltastatur EKM-15]&#039;&#039;&#039; kostet inkl. Mwst- und Versand 119.-EUR (Stand März 2014):&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
Hinweis: auf dem alternativen Beagle Bone Black (BBB) unter Debian fehlt auch die kbd&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install kbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:100x:100x::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:100x:100x::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird das Standard getty gegen mingetty für tty1 ausgetauscht.&lt;br /&gt;
&lt;br /&gt;
Ältere System V-Systeme. Datei &#039;&#039;&#039;/etc/inittab&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei neueren systemd-Systemen muss stattdessen die Datei &lt;br /&gt;
&#039;&#039;&#039;/etc/systemd/system/autologin@.service&#039;&#039;&#039;&lt;br /&gt;
geändert werden:&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;ExecStart=-/sbin/agetty --autologin xx --noclear %I $TERM&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;ExecStart=-/sbin/mingetty --autologin rpi --noclear %I $TERM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende/fehlbediente Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 33335533113 wird 35313 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel-Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist {{Link2Forum|Topic=11521|Message=67529|LinkText=dieser Beitrag}} im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=23677</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=23677"/>
		<updated>2017-12-20T20:05:27Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: /* Automatisches Login */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ein [[Raspberry Pi]] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustür montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Der RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, er daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine 8-Euro USB-Zahlentastatur. Für diesen Einsatzzweck eignet sich die &#039;&#039;&#039;[http://keysonic.de/de/products/details.php?we_objectID=8300 Keysonic ACK-118 BK Numpad]&#039;&#039;&#039;. Sie ist komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet. Bei der Bestellung darauf achten, dass es sie in grau und in schwarz gibt. &lt;br /&gt;
&lt;br /&gt;
Ganz edel: die vandalensichere und wetterfeste (IP65) &#039;&#039;&#039;[http://www.va-tastatur.de/download/tastaturen/Viscotech-Datenblatt-EKM-15.pdf Edelstahltastatur EKM-15]&#039;&#039;&#039; kostet inkl. Mwst- und Versand 119.-EUR (Stand März 2014):&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
Hinweis: auf dem alternativen Beagle Bone Black (BBB) unter Debian fehlt auch die kbd&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install kbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird das Standard getty gegen mingetty für tty1 ausgetauscht.&lt;br /&gt;
&lt;br /&gt;
Ältere System V-Systeme. Datei &#039;&#039;&#039;/etc/inittab&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei neueren systemd-Systemen muss stattdessen die Datei &lt;br /&gt;
&#039;&#039;&#039;/etc/systemd/system/autologin@.service&#039;&#039;&#039;&lt;br /&gt;
geändert werden:&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;ExecStart=-/sbin/agetty --autologin xx --noclear %I $TERM&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;ExecStart=-/sbin/mingetty --autologin rpi --noclear %I $TERM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende/fehlbediente Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 33335533113 wird 35313 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel-Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist {{Link2Forum|Topic=11521|Message=67529|LinkText=dieser Beitrag}} im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=5470</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=5470"/>
		<updated>2014-03-20T19:38:25Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So ein [Raspberry Pi] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustüre montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Die RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, sie daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine 8-Euro USB-Zahlentastatur. Für diesen Einsatzzweck eignet sich die &#039;&#039;&#039;Keysonic ACK-118 BK Numpad ([http://keysonic.de/de/products/details.php?we_objectID=8300])&#039;&#039;&#039;. Sie ist komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet. Bei der Bestellung darauf achten, dass es sie in grau und in schwarz gibt. &lt;br /&gt;
&lt;br /&gt;
Ganz edel: die vandalensichere und wetterfeste (IP65) &#039;&#039;&#039;Edelstahltastatur EKM-15 [http://www.va-tastatur.de/download/tastaturen/Viscotech-Datenblatt-EKM-15.pdf] &#039;&#039;&#039; kostet inkl. Mwst- und Versand 119.-EUR (Stand März 2014):&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
Hinweis: auf der alternativen Beagle Bone Black (BBB) unter Debian fehlt auch die kbd&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install kbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird in der /etc/inittab das Standard getty gegen mingetty für tty1 ausgetauscht.&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende/fehlbediente Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 33335533113 wird 35313 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel-Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist [http://forum.fhem.de/index.php/topic,11521.msg67529.html#msg67529 dieser Beitrag] im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=5469</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=5469"/>
		<updated>2014-03-20T19:04:14Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: /* Einleseskript kbd2fhem.sh */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So ein [Raspberry Pi] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustüre montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Die RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, sie daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine 8-Euro USB-Zahlentastatur. Für diesen Einsatzzweck eignet sich die &#039;&#039;&#039;Keysonic ACK-118 BK Numpad ([http://keysonic.de/de/products/details.php?we_objectID=8300])&#039;&#039;&#039;. Sie ist komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet. Bei der Bestellung darauf achten, dass es sie in grau und in schwarz gibt. &lt;br /&gt;
&lt;br /&gt;
Ganz edel: die vandalensichere und wetterfeste (IP65) &#039;&#039;&#039;Edelstahltastatur EKM-15 [http://www.va-tastatur.de/download/tastaturen/Viscotech-Datenblatt-EKM-15.pdf] &#039;&#039;&#039; kostet inkl. Mwst- und Versand 119.-EUR (Stand März 2014):&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
Hinweis: auf der alternativen Beagle Bone Black (BBB) unter Debian fehlt auch die kbd&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install kbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tastaturprellschutz (optional) ===&lt;br /&gt;
Bei der Zahleneingabe lösen Anfänger schnell ein Tastaturprellen aus. Wir setzen die Tastatur auf maximalen Delay-Wert. Da dies in der Praxis trotzdem evtl. nicht ausreicht, wird ein Tastaturprellen im Skript (s.u.) selbst abgefangen. Insofern ist diese Einstellung hier nur noch optional und für den Fall gedacht, dass man das Skript abändern möchte.&lt;br /&gt;
&lt;br /&gt;
Eingabe in &#039;&#039;/etc/rc.local&#039;&#039; in der vorletzten Zeile (vor exit 0)&lt;br /&gt;
:&amp;lt;code&amp;gt;kbdrate -d 1000 /dev/tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;exit 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird in der /etc/inittab das Standard getty gegen mingetty für tty1 ausgetauscht.&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende/fehlbediente Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 33335533113 wird 35313 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel-Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist [http://forum.fhem.de/index.php/topic,11521.msg67529.html#msg67529 dieser Beitrag] im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=5468</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=5468"/>
		<updated>2014-03-20T18:43:46Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: /* Zahlencode einem Dummy zuordnen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So ein [Raspberry Pi] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustüre montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Die RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, sie daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine 8-Euro USB-Zahlentastatur. Für diesen Einsatzzweck eignet sich die &#039;&#039;&#039;Keysonic ACK-118 BK Numpad ([http://keysonic.de/de/products/details.php?we_objectID=8300])&#039;&#039;&#039;. Sie ist komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet. Bei der Bestellung darauf achten, dass es sie in grau und in schwarz gibt. &lt;br /&gt;
&lt;br /&gt;
Ganz edel: die vandalensichere und wetterfeste (IP65) &#039;&#039;&#039;Edelstahltastatur EKM-15 [http://www.va-tastatur.de/download/tastaturen/Viscotech-Datenblatt-EKM-15.pdf] &#039;&#039;&#039; kostet inkl. Mwst- und Versand 119.-EUR (Stand März 2014):&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
Hinweis: auf der alternativen Beagle Bone Black (BBB) unter Debian fehlt auch die kbd&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install kbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tastaturprellschutz (optional) ===&lt;br /&gt;
Bei der Zahleneingabe lösen Anfänger schnell ein Tastaturprellen aus. Wir setzen die Tastatur auf maximalen Delay-Wert. Da dies in der Praxis trotzdem evtl. nicht ausreicht, wird ein Tastaturprellen im Skript (s.u.) selbst abgefangen. Insofern ist diese Einstellung hier nur noch optional und für den Fall gedacht, dass man das Skript abändern möchte.&lt;br /&gt;
&lt;br /&gt;
Eingabe in &#039;&#039;/etc/rc.local&#039;&#039; in der vorletzten Zeile (vor exit 0)&lt;br /&gt;
:&amp;lt;code&amp;gt;kbdrate -d 1000 /dev/tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;exit 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird in der /etc/inittab das Standard getty gegen mingetty für tty1 ausgetauscht.&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende/fehlbediente Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 3333553311 wird 3531 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel-Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist [http://forum.fhem.de/index.php/topic,11521.msg67529.html#msg67529 dieser Beitrag] im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=5467</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=5467"/>
		<updated>2014-03-20T18:34:00Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: /* Benötigte Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So ein [Raspberry Pi] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustüre montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Die RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, sie daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine 8-Euro USB-Zahlentastatur. Für diesen Einsatzzweck eignet sich die &#039;&#039;&#039;Keysonic ACK-118 BK Numpad ([http://keysonic.de/de/products/details.php?we_objectID=8300])&#039;&#039;&#039;. Sie ist komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet. Bei der Bestellung darauf achten, dass es sie in grau und in schwarz gibt. &lt;br /&gt;
&lt;br /&gt;
Ganz edel: die vandalensichere und wetterfeste (IP65) &#039;&#039;&#039;Edelstahltastatur EKM-15 [http://www.va-tastatur.de/download/tastaturen/Viscotech-Datenblatt-EKM-15.pdf] &#039;&#039;&#039; kostet inkl. Mwst- und Versand 119.-EUR (Stand März 2014):&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
Hinweis: auf der alternativen Beagle Bone Black (BBB) unter Debian fehlt auch die kbd&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install kbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tastaturprellschutz (optional) ===&lt;br /&gt;
Bei der Zahleneingabe lösen Anfänger schnell ein Tastaturprellen aus. Wir setzen die Tastatur auf maximalen Delay-Wert. Da dies in der Praxis trotzdem evtl. nicht ausreicht, wird ein Tastaturprellen im Skript (s.u.) selbst abgefangen. Insofern ist diese Einstellung hier nur noch optional und für den Fall gedacht, dass man das Skript abändern möchte.&lt;br /&gt;
&lt;br /&gt;
Eingabe in &#039;&#039;/etc/rc.local&#039;&#039; in der vorletzten Zeile (vor exit 0)&lt;br /&gt;
:&amp;lt;code&amp;gt;kbdrate -d 1000 /dev/tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;exit 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird in der /etc/inittab das Standard getty gegen mingetty für tty1 ausgetauscht.&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende/fehlbediente Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 3333553311 wird 3531 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist [http://forum.fhem.de/index.php/topic,11521.msg67529.html#msg67529 dieser Beitrag] im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=5466</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=5466"/>
		<updated>2014-03-20T18:23:23Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: /* Einleseskript kbd2fhem.sh */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So ein [Raspberry Pi] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustüre montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Die RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, sie daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine 8-Euro USB-Zahlentastatur. Für diesen Einsatzzweck eignet sich die &#039;&#039;&#039;Keysonic ACK-118 BK Numpad&#039;&#039;&#039; ([http://keysonic.de/de/products/details.php?we_objectID=8300]). Sie ist komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet. Bei der Bestellung darauf achten, dass es sie in grau und in schwarz gibt. &lt;br /&gt;
&lt;br /&gt;
Ganz edel: die vandalensichere und wetterfeste (IP65) &#039;&#039;&#039;Edelstahltastatur EKM-15 [http://www.va-tastatur.de/download/tastaturen/Viscotech-Datenblatt-EKM-15.pdf] &#039;&#039;&#039; kostet inkl. Mwst- und Versand 119.-EUR (Stand März 2014):&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
Hinweis: auf der alternativen Beagle Bone Black (BBB) unter Debian fehlt auch die kbd&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install kbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tastaturprellschutz (optional) ===&lt;br /&gt;
Bei der Zahleneingabe lösen Anfänger schnell ein Tastaturprellen aus. Wir setzen die Tastatur auf maximalen Delay-Wert. Da dies in der Praxis trotzdem evtl. nicht ausreicht, wird ein Tastaturprellen im Skript (s.u.) selbst abgefangen. Insofern ist diese Einstellung hier nur noch optional und für den Fall gedacht, dass man das Skript abändern möchte.&lt;br /&gt;
&lt;br /&gt;
Eingabe in &#039;&#039;/etc/rc.local&#039;&#039; in der vorletzten Zeile (vor exit 0)&lt;br /&gt;
:&amp;lt;code&amp;gt;kbdrate -d 1000 /dev/tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;exit 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird in der /etc/inittab das Standard getty gegen mingetty für tty1 ausgetauscht.&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende/fehlbediente Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 3333553311 wird 3531 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist [http://forum.fhem.de/index.php/topic,11521.msg67529.html#msg67529 dieser Beitrag] im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=5464</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=5464"/>
		<updated>2014-03-20T17:18:24Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: /* Benötigte Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So ein [Raspberry Pi] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustüre montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Die RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, sie daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine 8-Euro USB-Zahlentastatur. Für diesen Einsatzzweck eignet sich die &#039;&#039;&#039;Keysonic ACK-118 BK Numpad&#039;&#039;&#039; ([http://keysonic.de/de/products/details.php?we_objectID=8300]). Sie ist komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet. Bei der Bestellung darauf achten, dass es sie in grau und in schwarz gibt. &lt;br /&gt;
&lt;br /&gt;
Ganz edel: die vandalensichere und wetterfeste (IP65) &#039;&#039;&#039;Edelstahltastatur EKM-15 [http://www.va-tastatur.de/download/tastaturen/Viscotech-Datenblatt-EKM-15.pdf] &#039;&#039;&#039; kostet inkl. Mwst- und Versand 119.-EUR (Stand März 2014):&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
Hinweis: auf der alternativen Beagle Bone Black (BBB) unter Debian fehlt auch die kbd&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install kbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tastaturprellschutz (optional) ===&lt;br /&gt;
Bei der Zahleneingabe lösen Anfänger schnell ein Tastaturprellen aus. Wir setzen die Tastatur auf maximalen Delay-Wert. Da dies in der Praxis trotzdem evtl. nicht ausreicht, wird ein Tastaturprellen im Skript (s.u.) selbst abgefangen. Insofern ist diese Einstellung hier nur noch optional und für den Fall gedacht, dass man das Skript abändern möchte.&lt;br /&gt;
&lt;br /&gt;
Eingabe in &#039;&#039;/etc/rc.local&#039;&#039; in der vorletzten Zeile (vor exit 0)&lt;br /&gt;
:&amp;lt;code&amp;gt;kbdrate -d 1000 /dev/tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;exit 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird in der /etc/inittab das Standard getty gegen mingetty für tty1 ausgetauscht.&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 3333553311 wird 3531 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist [http://forum.fhem.de/index.php/topic,11521.msg67529.html#msg67529 dieser Beitrag] im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=5463</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=5463"/>
		<updated>2014-03-20T17:17:52Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: /* Benötigte Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So ein [Raspberry Pi] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustüre montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Die RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, sie daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine 8-Euro USB-Zahlentastatur. Für diesen Einsatzzweck eignet sich die &#039;&#039;&#039;Keysonic ACK-118 BK Numpad&#039;&#039;&#039; ([http://keysonic.de/de/products/details.php?we_objectID=8300]). Sie ist komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet. Bei der Bestellung darauf achten, dass es sie in grau und in schwarz gibt. &lt;br /&gt;
&lt;br /&gt;
Ganz edel: die vandalensichere und wetterfeste (IP65) &#039;&#039;&#039;Edelstahltastatur EKM-15 [http://www.va-tastatur.de/download/tastaturen/Viscotech-Datenblatt-EKM-15.pdf] &#039;&#039;&#039; kostet inkl. Mwst- und Versand 119.-EUR (Stand Dezember 2013):&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
Hinweis: auf der alternativen Beagle Bone Black (BBB) unter Debian fehlt auch die kbd&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install kbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tastaturprellschutz (optional) ===&lt;br /&gt;
Bei der Zahleneingabe lösen Anfänger schnell ein Tastaturprellen aus. Wir setzen die Tastatur auf maximalen Delay-Wert. Da dies in der Praxis trotzdem evtl. nicht ausreicht, wird ein Tastaturprellen im Skript (s.u.) selbst abgefangen. Insofern ist diese Einstellung hier nur noch optional und für den Fall gedacht, dass man das Skript abändern möchte.&lt;br /&gt;
&lt;br /&gt;
Eingabe in &#039;&#039;/etc/rc.local&#039;&#039; in der vorletzten Zeile (vor exit 0)&lt;br /&gt;
:&amp;lt;code&amp;gt;kbdrate -d 1000 /dev/tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;exit 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird in der /etc/inittab das Standard getty gegen mingetty für tty1 ausgetauscht.&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 3333553311 wird 3531 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist [http://forum.fhem.de/index.php/topic,11521.msg67529.html#msg67529 dieser Beitrag] im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_%26_NFC&amp;diff=5448</id>
		<title>Raspberry Pi &amp; NFC</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_%26_NFC&amp;diff=5448"/>
		<updated>2014-03-18T18:55:40Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: /* FHEM-Zugriff von extern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[http://de.wikipedia.org/wiki/Near_Field_Communication &#039;&#039;&#039;NFC (Near Field Communication)&#039;&#039;&#039;] boomt zur Zeit. Wir kennen die Technik bereits von unseren Ausweiskarten, auch der neue Personalausweis hat so einen Chip.&lt;br /&gt;
&lt;br /&gt;
Was die Sicherheit angeht, scheint man sich da ziemlich sicher zu sein. Das wird auch für Zahlungen per NFC-Chip auch in immer mehr Smartphones beworben.&lt;br /&gt;
&lt;br /&gt;
== FHEM-Aufgaben mit passiven NFC-TAGs steuern ==&lt;br /&gt;
Hier soll aufgezeigt werden, wie man relativ günstig einen kompletten NFC-Reader baut, der billige passive NFC-TAGs (ca. 2.-EUR/Stück) einliest und die NFC-ID an FHEM schickt. Auch wird gezeigt, wie FHEM diese verarbeitet.&lt;br /&gt;
Diese NFC-TAGs gibt es als Aufkleber, Schlüsselanhänger, Ausweiskarten. Wer will kann auch sein NFC-taugliches Smartphone einsetzen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In einer Secure-Anwendung ist eine NFC-ID nur ein Teil des Sicherheitskonzeptes. Hier wird nur die NFC-ID ausgelesen und an FHEM geschickt.&#039;&#039;&#039;&lt;br /&gt;
Wer übrigens nur per NFC-Smartphone per Internet FHEM steuern will, der braucht nur einen eingerichteten FHEM-Server und eine App wie NFC Launcher.&lt;br /&gt;
Alle anderen, die auch Kindern und Smartphones ohne NFC-Chip den Zugang zum NFC-System gewähren wollen, benötigen dagegen einen NFC-Reader (dann mit Aufkleber/Schlüsselanhänger).&lt;br /&gt;
&lt;br /&gt;
Auch mehrere RPi-NFC-Reader sind parallel möglich.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Das gesamte [[FS20 Allgemein|FS20-Konzept]] war sicherheitstechnisch noch nie überzeugend. Auch ein [[Raspberry Pi]] ist &amp;quot;nur&amp;quot; ein Rechner und kann auch abstürzen. Das gesamte Konzept hier mit NFC/USB/WLAN ist ebenfalls nichts, was insbesondere im professionellen Bereich eingesetzt werden sollte.&lt;br /&gt;
&lt;br /&gt;
Sehr interessant und lehrreich(!) sind etliche Beiträge im FHEM-Forum von Henryk Plötz (Chaos Computer Club Berlin), der die hier eingesetzte Technik sehr [http://forum.fhem.de/index.php/topic,10347.msg59966.html ausführlich erklärt].&lt;br /&gt;
&lt;br /&gt;
Definitiv ist dies hier keine Lösung, die im sicherheitskritischen Bereich heutige Sicherheitsstandards erfüllt. Aus professioneller Sicht kann man diese Lösung hier getrost als &amp;quot;Spielzeug&amp;quot; ansehen.&lt;br /&gt;
Ob man hiermit auch seine [[HM-SEC-KEY KeyMatic|HM Keymatic]] (Haustüre) oder Alarmanlage schalten will, sollte man sich gut überlegen.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
* Raspberry Pi (2x USB erforderlich) mit Netzteil (45 EUR)&lt;br /&gt;
* optional Gehäuse (8 EUR)&lt;br /&gt;
* SD-Karte (möglichst schnell, muss nicht groß sein) (10 EUR)&lt;br /&gt;
* USB-NFC-Reader. SCM SCL3711 ist getestet, evtl. gehen auch andere Geräte &amp;lt;nowiki&amp;gt;[https://github.com/henryk/libopenkey [5]&amp;lt;/nowiki&amp;gt;] funktioniert dieser Stick nicht.&lt;br /&gt;
* NFC-TAGS. Standard-Tags mit Milfare-Classic reichen hier vollkommen aus. Einfach mal z.B. bei Amazon/Ebay &amp;quot;NFC TAG&amp;quot; eingeben. (ca. 1-2 EUR/Stück)&lt;br /&gt;
* USB-Verlängerungskabel (4 EUR)&lt;br /&gt;
* empfohlen: WLAN-USB-Stick EDIMAX EW-7811UN (11.-EUR)&lt;br /&gt;
= Benötigte Software =&lt;br /&gt;
* ein Debian Wheezy muss auf der RPi laufen. Für die Installationsanleitung &amp;lt;nowiki&amp;gt;[http://elinux.org/RPi_Easy_SD_Card_Setup ist das hier]&amp;lt;/nowiki&amp;gt; ein guter Startpunkt. Die RPi sollte so eingerichtet werden, dass man sich per ssh einloggen kann.&lt;br /&gt;
* &amp;amp;gt;= libnfc-1.6.0-rc1 aus dem Internet mit Bauanleitung (nicht schwer).&lt;br /&gt;
* Zusatzpakete mit Abhängigkeiten wie pcscd.&lt;br /&gt;
&lt;br /&gt;
=== libnfc ===&lt;br /&gt;
Eine sehr gute Bauanleitung mit Auflistung aller zusätzlich benötigten Pakete ist [http://nfc-tools.org/index.php?title=Libnfc#Debian_.2F_Ubuntu hier] zu finden. Dort direkt in den Bereich Debian/Ubuntu gehen. Die anderen Bereiche sind nicht relevant.&lt;br /&gt;
&lt;br /&gt;
Der pcscd wird hierbei installiert. Gemäß [http://nfc-tools.org/index.php?title=Devices_compatibility_matrix der Fussnote auf der Kompatiblitätsliste] wird er nicht von allen Geräten benötigt und sollte wie bei dem hier verwendetem SCL SCM3711 abgeschaltet werden.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;root@raspberrypi:~# /etc/init.d/pcscd stop&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Um beim nächsten Booten nicht mehr aktiv zu sein:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;root@raspberrypi:~# update-rc.d pcscd remove&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Skripte, Einstellungen für WLAN, NFC-auslesen, FHEM-Config, Start-/Stop-Skript ==&lt;br /&gt;
=== WLAN ===&lt;br /&gt;
Die Angaben gelten für den WLAN-USB-Stick EDIMAX EW-7811UN und können bei anderen Geräten abweichen.&lt;br /&gt;
&lt;br /&gt;
Neu angelegt: /etc/wpa.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;network={&lt;br /&gt;
ssid=&amp;quot;&amp;amp;lt;SSID&amp;amp;gt;&amp;quot;&lt;br /&gt;
proto=RSN&lt;br /&gt;
key_mgmt=WPA-PSK&lt;br /&gt;
pairwise=CCMP TKIP&lt;br /&gt;
group=CCMP TKIP&lt;br /&gt;
psk=&amp;quot;&amp;amp;lt;Passwort&amp;amp;gt;&amp;quot;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Modifiziert: /etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;auto lo &lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
iface eth0 inet dhcp&lt;br /&gt;
auto wlan0&lt;br /&gt;
iface wlan0 inet dhcp&lt;br /&gt;
wpa-conf /etc/wpa.conf&lt;br /&gt;
iface default inet dhcp&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Natürlich dürfen hier nicht gleichzeitg WLAN-Stick und RJ45 (Kupfer-Kabel) eingesteckt sein.&lt;br /&gt;
&lt;br /&gt;
=== Das Laden falscher Kernel-Module verhindern ===&lt;br /&gt;
Wenn wir jetzt einfach den NFC-Stick einstecken würden, dann würden original Kernel-Module geladen, die aber so nicht funktionieren.&lt;br /&gt;
&lt;br /&gt;
Wir &amp;quot;blacklisten&amp;quot; daher einige Kernelmodule.&lt;br /&gt;
Folgendes in die neue /etc/modprobe.d/blacklist-libnfc.conf schreiben:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;blacklist pn533&lt;br /&gt;
blacklist nfc&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== WLAN und Funktionstest ===&lt;br /&gt;
So ein NFC-Reader an der Haustür kann ein wichtiges Haussteuerungsmodul werden. So hat ein Test, ob das WLAN noch vorhanden ist Sinn.&lt;br /&gt;
Folgendes ist optional:&lt;br /&gt;
&lt;br /&gt;
Datei /usr/local/bin/rpi_network_chk.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
# Restartet das Netzwerk, wenn kein Ping mehr auf die Fritzbox möglich&lt;br /&gt;
# Hintergrund: Raspberry PI hat das WLAN nach Fritzboxausfall nicht mehr aufgebaut&lt;br /&gt;
FritzBox=&#039;192.168.0.254&#039;&lt;br /&gt;
LogFile=&amp;quot;/var/log/nfc2fhem.log&amp;quot;&lt;br /&gt;
 /bin/ping -c1 $FritzBox&lt;br /&gt;
 pingtest=$?&lt;br /&gt;
 [[ $pingtest != 0 ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    {&lt;br /&gt;
      echo &amp;quot;`date`: WLAN nicht ok, restarting network&amp;quot; &amp;amp;gt;&amp;amp;gt; $LogFile&lt;br /&gt;
      /etc/init.d/networking restart&lt;br /&gt;
    }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei muss ausführbar sein:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;root@raspberrypi:~# chmod +x /usr/local/bin/rpi_network_chk.sh&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Dieses Skript kann z.B. alle 10 min ausgeführt werden.&lt;br /&gt;
Eintrag in /etc/crontab:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;*/10 * * * * root /usr/local/bin/rpi_network_chk.sh &amp;amp;gt;&amp;amp;gt;/dev/null 2&amp;amp;gt;&amp;amp;amp;1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
== Funktionstest ==&lt;br /&gt;
Wenn die folgenden Tests nicht erfolgreich sind, dann braucht man nicht weiterzumachen.&lt;br /&gt;
&lt;br /&gt;
=== NFC-Stick-Erkennung ===&lt;br /&gt;
Wir öffnen als root die messages. Wer nicht als root unterwegs ist, muss vor allen Befehlen noch ein &amp;quot;sudo&amp;quot; davorstellen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;root@raspberrypi:~# tail -f /var/log/messages&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nun stecken wir den NFC-Stick ein. Er muss erkannt werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Jan 19 21:09:30 raspberrypi kernel: [88321.631101] usb 1-1.3: new full-speed USB device number 7 using dwc_otg&lt;br /&gt;
Jan 19 21:09:30 raspberrypi kernel: [88321.767620] usb 1-1.3: New USB device found, idVendor=04e6, idProduct=5591&lt;br /&gt;
Jan 19 21:09:30 raspberrypi kernel: [88321.767651] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
Jan 19 21:09:30 raspberrypi kernel: [88321.767668] usb 1-1.3: &#039;&#039;&#039;Product: SCL3711-NFC&amp;amp;amp;RW&#039;&#039;&#039;Jan 19 21:09:30 raspberrypi kernel: [88321.767680] usb 1-1.3: Manufacturer: SCM Micro&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nun wird es spannend:&lt;br /&gt;
Ein &amp;quot;nfc-list&amp;quot; sollte eine lange Liste ergeben, ein &amp;quot;nfc-list | grep &amp;quot;NFC device&amp;quot;&amp;quot; folgendes:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;root@raspberrypi:~# nfc-list | grep &amp;quot;NFC device&amp;quot;&lt;br /&gt;
NFC device: SCM Micro / SCL3711-NFC&amp;amp;amp;RW - PN533 v2.7 (0x07) opened&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Wer nicht bis hier erfolgreich war, muss suchen, alles weitere baut darauf auf.&lt;br /&gt;
&lt;br /&gt;
Bei einem aufgelegten NFC-Tag sollte dieser erkannt werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;root@raspberrypi:~# nfc-list | grep NFCID&lt;br /&gt;
   UID (NFCID1): a2 d7 94 ee&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
== NFCID-Daemon nfc2fhem installieren ==&lt;br /&gt;
Mehr als ein einfaches und kurzes shell-Skript wird hier nicht benötigt.&lt;br /&gt;
&lt;br /&gt;
/usr/local/bin/nfc2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 1/2013&lt;br /&gt;
# Skript, das die NFC-ID eines NFC-Tags ausliest und an FHEM schickt&lt;br /&gt;
# FHEM muss je nach fhem.cfg nicht lokal sein.&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/var/log/nfc2fhem.log&amp;quot;&lt;br /&gt;
CheckIntervall=300   # wie oft [sec] soll geprüft werden ob NFC Reader noch vorhanden ist&lt;br /&gt;
SleepTime=0.5      # wie oft [sec] soll nach einem NFC-Tag gesucht werden&lt;br /&gt;
 &lt;br /&gt;
############################&lt;br /&gt;
declare -i nextcheck=$(date +&amp;quot;%s&amp;quot;)+$CheckIntervall&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    NFCID=&amp;quot;$(nfc-list | grep NFCID)&amp;quot;&lt;br /&gt;
    [[ $NFCID != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp; &lt;br /&gt;
    {&lt;br /&gt;
        NFCID=&amp;quot;$(echo $NFCID | cut -d&amp;quot;:&amp;quot; -f2 | sed &#039;s/ //g;s/)//g;s/(//g&#039;)&amp;quot;&lt;br /&gt;
        echo &amp;quot;set $NFCID irgendwas&amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
        echo &amp;quot;`date`: $NFCID detected&amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
        sleep 4&lt;br /&gt;
    }&lt;br /&gt;
    sleep $SleepTime&lt;br /&gt;
    #Test ob Checkintervall vorbei um nach Reader zu suchen&lt;br /&gt;
    aktdate=$(date +&amp;quot;%s&amp;quot;) &lt;br /&gt;
    [[ $aktdate &amp;amp;gt; $nextcheck ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    {&lt;br /&gt;
        nextcheck=$aktdate+$CheckIntervall&lt;br /&gt;
        NFCDevice=&amp;quot;$(nfc-list | grep &amp;quot;No NFC device found&amp;quot;)&amp;quot;&lt;br /&gt;
        [[ $NFCDevice != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;  &lt;br /&gt;
        {&lt;br /&gt;
            echo &amp;quot;`date`: NFC Reader unavailable&amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
            echo &amp;quot;{ Log 2, \&amp;quot;nfc2fhem: NFC Reader unavailable\&amp;quot; }&amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
        }&lt;br /&gt;
    } &lt;br /&gt;
done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;chmod +x /usr/local/bin/nfc2fhem.sh&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Start-/Stop-Skript ===&lt;br /&gt;
Nach dem Booten soll nfc2fhem.sh automatisch gestartet werden:&lt;br /&gt;
&lt;br /&gt;
Wir erstellen die Datei /etc/init.d/nfc2fhem&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/sh&lt;br /&gt;
# description: Start or stop the scan of NFC-Tags for fhem&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides:       nfc2fhem.sh&lt;br /&gt;
# Required-Start:    $local_fs $remote_fs&lt;br /&gt;
# Required-Stop:    $local_fs $remote_fs&lt;br /&gt;
# Default-Start:    2 3 4 5&lt;br /&gt;
# Default-Stop:     0 1 6&lt;br /&gt;
# Short-Description:  NFC 2 FHEM&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
set -e&lt;br /&gt;
cd /usr/local/bin &lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
&#039;start&#039;)&lt;br /&gt;
    echo &amp;quot;Starting nfc2fhem...&amp;quot;&lt;br /&gt;
    nohup ./nfc2fhem.sh&amp;amp;amp;&lt;br /&gt;
    RETVAL=$?&lt;br /&gt;
   &amp;amp;#160;;;&lt;br /&gt;
&#039;stop&#039;)&lt;br /&gt;
    echo &amp;quot;Stopping nfc2fhem...&amp;quot;&lt;br /&gt;
    pkill nfc2fhem.sh&lt;br /&gt;
    RETVAL=$?&lt;br /&gt;
   &amp;amp;#160;;;&lt;br /&gt;
&#039;status&#039;)&lt;br /&gt;
    cnt=`ps -ef | grep &amp;quot;nfc2fhem&amp;quot; | grep -v grep | wc -l`&lt;br /&gt;
    if [ &amp;quot;$cnt&amp;quot; -eq &amp;quot;2&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
        echo &amp;quot;nfc2fhem is not running&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
        echo &amp;quot;nfc2fhem is running&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
   &amp;amp;#160;;;&lt;br /&gt;
*)&lt;br /&gt;
    echo &amp;quot;Usage: $0 { start | stop | status }&amp;quot;&lt;br /&gt;
    RETVAL=1&lt;br /&gt;
   &amp;amp;#160;;;&lt;br /&gt;
esac&lt;br /&gt;
exit $RETVAL&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit folgendem startet nfc2fhem.sh bei jedem reboot automatisch:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;root@raspberrypi:# update-rc.d nfc2fhem defaults&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
In FHEM nutzen wir das dummy-Modul. Damit können wir mit jedem TAG eine Aufgabe ausführen, mit Logiken natürlich entsprechend mehr.&lt;br /&gt;
&lt;br /&gt;
Beispiel-Eintrag in fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#Ein an FHEM geschickter NFC-Tag sieht z.B. so aus: 02ec8ee9&lt;br /&gt;
#NFC-Tag Test&lt;br /&gt;
define 02ec8ee9 dummy&lt;br /&gt;
define nfcnot1 notify 02ec8ee9 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Weitere Beispiele sind in der commandref.html zu finden: [http://fhem.de/commandref.html#notify [6]]&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;define telnetPort telnet 7072 global&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=4202</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=4202"/>
		<updated>2014-01-02T08:39:53Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: /* Zusätzliche Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So ein [Raspberry Pi] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustüre montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Die RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, sie daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine 8-Euro USB-Zahlentastatur. Für diesen Einsatzzweck eignet sich die &#039;&#039;&#039;Keysonic ACK-118 BK Numpad&#039;&#039;&#039; ([http://keysonic.de/de/products/details.php?we_objectID=8300]). Sie ist komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet. Bei der Bestellung darauf achten, dass es sie in grau und in schwarz gibt. &lt;br /&gt;
&lt;br /&gt;
Ganz edel: die vandalensichere und wetterfeste (IP65) Edelstahltastatur EKM-15 kostet inkl. Mwst- und Versand 119.-EUR (Stand Dezember 2013):&lt;br /&gt;
[http://www.va-tastatur.de/download/tastaturen/Viscotech-Datenblatt-EKM-15.pdf]&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
Hinweis: auf der alternativen Beagle Bone Black (BBB) unter Debian fehlt auch die kbd&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install kbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tastaturprellschutz (optional) ===&lt;br /&gt;
Bei der Zahleneingabe lösen Anfänger schnell ein Tastaturprellen aus. Wir setzen die Tastatur auf maximalen Delay-Wert. Da dies in der Praxis trotzdem evtl. nicht ausreicht, wird ein Tastaturprellen im Skript (s.u.) selbst abgefangen. Insofern ist diese Einstellung hier nur noch optional und für den Fall gedacht, dass man das Skript abändern möchte.&lt;br /&gt;
&lt;br /&gt;
Eingabe in &#039;&#039;/etc/rc.local&#039;&#039; in der vorletzten Zeile (vor exit 0)&lt;br /&gt;
:&amp;lt;code&amp;gt;kbdrate -d 1000 /dev/tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;exit 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird in der /etc/inittab das Standard getty gegen mingetty für tty1 ausgetauscht.&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 3333553311 wird 3531 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist [http://forum.fhem.de/index.php/topic,11521.msg67529.html#msg67529 dieser Beitrag] im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=4201</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=4201"/>
		<updated>2014-01-02T08:39:19Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: /* Zusätzliche Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So ein [Raspberry Pi] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustüre montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Die RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, sie daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine 8-Euro USB-Zahlentastatur. Für diesen Einsatzzweck eignet sich die &#039;&#039;&#039;Keysonic ACK-118 BK Numpad&#039;&#039;&#039; ([http://keysonic.de/de/products/details.php?we_objectID=8300]). Sie ist komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet. Bei der Bestellung darauf achten, dass es sie in grau und in schwarz gibt. &lt;br /&gt;
&lt;br /&gt;
Ganz edel: die vandalensichere und wetterfeste (IP65) Edelstahltastatur EKM-15 kostet inkl. Mwst- und Versand 119.-EUR (Stand Dezember 2013):&lt;br /&gt;
[http://www.va-tastatur.de/download/tastaturen/Viscotech-Datenblatt-EKM-15.pdf]&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
Hinweis: auf der alternativen Beagle Bone Black (BBB) fehlt auch die kbd&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install kbd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tastaturprellschutz (optional) ===&lt;br /&gt;
Bei der Zahleneingabe lösen Anfänger schnell ein Tastaturprellen aus. Wir setzen die Tastatur auf maximalen Delay-Wert. Da dies in der Praxis trotzdem evtl. nicht ausreicht, wird ein Tastaturprellen im Skript (s.u.) selbst abgefangen. Insofern ist diese Einstellung hier nur noch optional und für den Fall gedacht, dass man das Skript abändern möchte.&lt;br /&gt;
&lt;br /&gt;
Eingabe in &#039;&#039;/etc/rc.local&#039;&#039; in der vorletzten Zeile (vor exit 0)&lt;br /&gt;
:&amp;lt;code&amp;gt;kbdrate -d 1000 /dev/tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;exit 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird in der /etc/inittab das Standard getty gegen mingetty für tty1 ausgetauscht.&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 3333553311 wird 3531 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist [http://forum.fhem.de/index.php/topic,11521.msg67529.html#msg67529 dieser Beitrag] im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=4165</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=4165"/>
		<updated>2013-12-31T04:04:01Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: /* Benötigte Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So ein [Raspberry Pi] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustüre montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Die RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, sie daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine 8-Euro USB-Zahlentastatur. Für diesen Einsatzzweck eignet sich die &#039;&#039;&#039;Keysonic ACK-118 BK Numpad&#039;&#039;&#039; ([http://keysonic.de/de/products/details.php?we_objectID=8300]). Sie ist komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet. Bei der Bestellung darauf achten, dass es sie in grau und in schwarz gibt. &lt;br /&gt;
&lt;br /&gt;
Ganz edel: die vandalensichere und wetterfeste (IP65) Edelstahltastatur EKM-15 kostet inkl. Mwst- und Versand 119.-EUR (Stand Dezember 2013):&lt;br /&gt;
[http://www.va-tastatur.de/download/tastaturen/Viscotech-Datenblatt-EKM-15.pdf]&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tastaturprellschutz (optional) ===&lt;br /&gt;
Bei der Zahleneingabe lösen Anfänger schnell ein Tastaturprellen aus. Wir setzen die Tastatur auf maximalen Delay-Wert. Da dies in der Praxis trotzdem evtl. nicht ausreicht, wird ein Tastaturprellen im Skript (s.u.) selbst abgefangen. Insofern ist diese Einstellung hier nur noch optional und für den Fall gedacht, dass man das Skript abändern möchte.&lt;br /&gt;
&lt;br /&gt;
Eingabe in &#039;&#039;/etc/rc.local&#039;&#039; in der vorletzten Zeile (vor exit 0)&lt;br /&gt;
:&amp;lt;code&amp;gt;kbdrate -d 1000 /dev/tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;exit 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird in der /etc/inittab das Standard getty gegen mingetty für tty1 ausgetauscht.&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 3333553311 wird 3531 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist [http://forum.fhem.de/index.php/topic,11521.msg67529.html#msg67529 dieser Beitrag] im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=3994</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=3994"/>
		<updated>2013-12-22T16:54:53Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: bash anstatt dash für User RPI&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So ein [Raspberry Pi] (RPi) ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges &#039;&#039;&#039;Zahlenschloss&#039;&#039;&#039;. Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
== Überblick über die Vorgehensweise ==&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustüre montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Die RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, sie daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
== Sicherheit ==&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustür zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der [[HM-SEC-KEY KeyMatic|Keymatic]] (Haustüre) oder der Alarmanlage verwendet, sollte man wissen, was man tut.&lt;br /&gt;
&lt;br /&gt;
== Benötigte Hardware ==&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine 8-Euro USB-Zahlentastatur. Für diesen Einsatzzweck eignet sich die &#039;&#039;&#039;Keysonic ACK-118 BK Numpad&#039;&#039;&#039; ([http://keysonic.de/de/products/details.php?we_objectID=8300]). Sie ist komplett in Silikon eingearbeitet und somit für den Außenbereich geeignet. Bei der Bestellung darauf achten, dass es sie in grau und in schwarz gibt. &lt;br /&gt;
&lt;br /&gt;
Natürlich kann man auch edle wetterfeste Edelstahl-Tastaturen (möglichst mit Eingabe-Taste) verbauen - sie kosten aber auch gleich ein Vermögen.&lt;br /&gt;
&lt;br /&gt;
== Betriebssystem/Shell-Skript auf RPi ==&lt;br /&gt;
=== Zusätzliche Software ===&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mingetty&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tastaturprellschutz (optional) ===&lt;br /&gt;
Bei der Zahleneingabe lösen Anfänger schnell ein Tastaturprellen aus. Wir setzen die Tastatur auf maximalen Delay-Wert. Da dies in der Praxis trotzdem evtl. nicht ausreicht, wird ein Tastaturprellen im Skript (s.u.) selbst abgefangen. Insofern ist diese Einstellung hier nur noch optional und für den Fall gedacht, dass man das Skript abändern möchte.&lt;br /&gt;
&lt;br /&gt;
Eingabe in &#039;&#039;/etc/rc.local&#039;&#039; in der vorletzten Zeile (vor exit 0)&lt;br /&gt;
:&amp;lt;code&amp;gt;kbdrate -d 1000 /dev/tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;exit 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuer nicht privilegierter User ===&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo useradd -m rpi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser soll die Bash als Standardshell bekommen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/passwd&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/sh&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;rpi:x:1002:1003::/home/rpi:/bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Automatisches Login ===&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird in der /etc/inittab das Standard getty gegen mingetty für tty1 ausgetauscht.&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
:&amp;lt;code&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starten des Einlese-Skriptes ===&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
:&amp;lt;code&amp;gt;# Codeschloss fuer fhem&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;/usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einleseskript kbd2fhem.sh ===&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 3333553311 wird 3531 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
== FHEM vorbereiten ==&lt;br /&gt;
=== Zahlencode einem Dummy zuordnen ===&lt;br /&gt;
Beispiel Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Zugriff von extern ===&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
:&amp;lt;code&amp;gt;define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hilfe/Support ==&lt;br /&gt;
* Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
* Für Feedback ist [http://forum.fhem.de/index.php/topic,11521.msg67529.html#msg67529 dieser Beitrag] im Forum vorgesehen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Raspberry Pi]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=2148</id>
		<title>Raspberry Pi als Zahlenschloss</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Raspberry_Pi_als_Zahlenschloss&amp;diff=2148"/>
		<updated>2013-06-10T12:42:08Z</updated>

		<summary type="html">&lt;p&gt;Martinhaas: /* FHEM-Zugriff von extern */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= RPi mit einer Zahlentastatur schaltet FHEM-Aufgaben =&lt;br /&gt;
So eine RPi ist ein klasse Universalgerät. In Kombination mit diversen Dingen, wie hier einer Zahlentastatur, wird das ein fertiges FHEM-fähiges Zahlenschloss. &lt;br /&gt;
Die Gesamtkosten sind sicherlich nicht höher als ein fertiges Gerät kosten würde -- wenn es denn zu kaufen wäre.&lt;br /&gt;
&lt;br /&gt;
Diese Zahlentastatur kann man nicht nur als Schloss, sondern auch zum beliebigen Schalten von Aufgaben verwenden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Überblick über die Vorgehensweise =&lt;br /&gt;
* Eine RPi unter Debian Wheezy wird ohne Monitor z.B. an der Haustüre montiert.&lt;br /&gt;
* Eine wetterfeste USB-Zahlen-Tastatur wird nach außen geführt.&lt;br /&gt;
* Die RPi ist so eingestellt, dass nach dem Booten keine Desktop-Umgebung (Grafik) gestartet wird, sie daher mit der Konsole (/dev/tty1) startet.&lt;br /&gt;
* tty1 wird so eingestellt, dass sich automatisch ein nicht privilegierter User einloggt.&lt;br /&gt;
* Mit dem Einloggen startet sich ein Shell-Skript, das in einer Endlosschleife Zahlencodes einliest und das Ergebnis an FHEM schickt (FHEM muss nicht auf dem selben Rechner laufen)&lt;br /&gt;
* FHEM schaltet mit dem als dummy-Device angelegten Zahlencode über notify beliebige Anwendungen/Logiken.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Sicherheit =&lt;br /&gt;
Für professionelle Aufgaben ist das nicht der Standard, den man erwarten würde.&lt;br /&gt;
&lt;br /&gt;
* eine RPi ist auch nur ein Rechner und kann abstürzen&lt;br /&gt;
* eine USB-Tastatur vor die Haustüre zu verlegen ist auch nicht jedermanns Sache. Eine USB-Buchse sollte auf jeden Fall nicht erreichbar sein, ein USB-Keylogger wäre sonst schnell installiert.&lt;br /&gt;
* wenn man diese Lösung zum Schalten von sicherheitskritischen Dingen, wie der keymatic (Haustüre) oder der Alarmanlage verwendet, sollte man wissen was man tut.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Benötigte Hardware =&lt;br /&gt;
Analog zur NFC-Variante [[Raspberry Pi &amp;amp;amp; NFC]] benötigt man anstatt NFC nur eine 8.-EUR USB-Zahlentastatur. Für diesen Einsatzzweck eignet sich die &#039;&#039;&#039;Keysonic ACK-118 BK Numpad&#039;&#039;&#039;. Sie ist komplett in Silikon eingearbeitet und somit für den Außenbereich prima geeignet. &lt;br /&gt;
Bei der Bestellung darauf achten, dass es sie in grau und in schwarz gibt. &lt;br /&gt;
Natürlich kann man auch edle wetterfeste Edelstahl-Tastaturen (möglichst mit Eingabe-Taste) verbauen -- sie kosten aber auch gleich ein Vermögen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Betriebssystem/Shell-Skript auf RPi =&lt;br /&gt;
== Zusätzliche Software ==&lt;br /&gt;
Aufbauend auf der oben genannten NFC-Variante (ohne NFC-Teil) wird nur das Paket mingetty benötigt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo apt-get install mingetty&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tastaturprellschutz (optional) ==&lt;br /&gt;
Bei der Zahleneingabe lösen Anfänger schnell ein Tastaturprellen aus. Wir setzen die Tastatur auf maximalen Delay-Wert. &lt;br /&gt;
Da dies in der Praxis trotzdem evtl. nicht ausreicht, wird ein Tastaturprellen im Skript (s.u.) selbst abgefangen. Insofern ist diese Einstellung hier nur noch optional und für den Fall gedacht, dass man das Skript abändern möchte.&lt;br /&gt;
&lt;br /&gt;
Eingabe in &#039;&#039;/etc/rc.local&#039;&#039;in vorletzter Zeile (vor exit 0)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kbdrate -d 1000 /dev/tty1&lt;br /&gt;
exit 0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Neuer nicht privilegierter User ==&lt;br /&gt;
Es werden nicht viele Rechte benötigt. Ein einfacher User, der keinen besonderen Gruppen angehört, reicht aus.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo useradd -m rpi&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatisches Login ==&lt;br /&gt;
Beim Standard-Loginprogramm kann man sich nicht automatisch einloggen. Daher wird in der /etc/inittab das Standard getty gegen mingetty für tty1 ausgetauscht.&lt;br /&gt;
&lt;br /&gt;
/etc/inittab&lt;br /&gt;
&lt;br /&gt;
alt&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;1:2345:respawn:/sbin/getty --noclear 38400 tty1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
neu&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;1:2345:respawn:/sbin/mingetty --autologin rpi --noclear tty1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Starten des Einlese-Skriptes ==&lt;br /&gt;
Am einfachsten ändern wir die /home/rpi/.bashrc&lt;br /&gt;
&lt;br /&gt;
Einfach am Ende folgende Zeilen einfügen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Codeschloss fuer fhem&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einleseskript kbd2fhem.sh ==&lt;br /&gt;
/usr/local/bin/kbd2fhem.sh&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
# provided by Martin Haas 3/2013&lt;br /&gt;
# Skript, um Zahleneingaben von Tastatur an FHEM zu schicken&lt;br /&gt;
FhemIP=&amp;quot;192.168.0.x&amp;quot;&lt;br /&gt;
LogFile=&amp;quot;/home/rpi/kbd2fhem.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
    # NumLock vorsorglich aktivieren&lt;br /&gt;
    /usr/bin/setleds -D +num &amp;amp;lt; /dev/tty1&lt;br /&gt;
    # Zahlencode einlesen&lt;br /&gt;
    printf &amp;quot;Zahlencode: &amp;quot;&lt;br /&gt;
    read code&lt;br /&gt;
    # Eingabe&lt;br /&gt;
    echo &#039;Eingabe: &#039;$code&lt;br /&gt;
    # nur Zahlen zulassen (nicht alles wird abgefangen)&lt;br /&gt;
    code=$(echo $code | tr -d &amp;quot;[:alpha:][:space:][:cntrl:][:punct:]äüöß&amp;quot;)&lt;br /&gt;
    echo &#039;Verwendeter Zahlencode: &#039;$code&lt;br /&gt;
  &lt;br /&gt;
    # Um prellende Tastaturen auszuschliessen, wird keine Doppelzahl &lt;br /&gt;
    # akzeptiert. Beispiel: aus 3333553311 wird 3531 &lt;br /&gt;
    finalcode=${code:0:1}&lt;br /&gt;
 &lt;br /&gt;
    while [[ ${#code} -gt &#039;&#039; ]]&lt;br /&gt;
    do&lt;br /&gt;
        last=${code:0:1}&lt;br /&gt;
        code=${code/${code:0:1}}&lt;br /&gt;
        next=${code:0:1}&lt;br /&gt;
        [[ $next != $last ]] &amp;amp;amp;&amp;amp;amp; finalcode=$finalcode${code:0:1}&lt;br /&gt;
    done&lt;br /&gt;
 &lt;br /&gt;
    # fuer FHEM vorbereiten&lt;br /&gt;
    code=&#039;kbd&#039;$finalcode&lt;br /&gt;
 &lt;br /&gt;
    # nur bei erkanntem Zahlencode verschicken&lt;br /&gt;
    [[ $finalcode != &#039;&#039; ]] &amp;amp;amp;&amp;amp;amp;&lt;br /&gt;
    echo &amp;amp;quot;set $code irgendwas&amp;amp;quot; | nc -w5 $FhemIP 7072&lt;br /&gt;
 &lt;br /&gt;
    # ...aber alles loggen&lt;br /&gt;
    echo &amp;amp;quot;`date`: $code detected&amp;amp;quot; &amp;amp;gt;&amp;amp;gt;$LogFile&lt;br /&gt;
 &lt;br /&gt;
    # optisches Feedback&lt;br /&gt;
    /usr/bin/setleds -D -num &amp;amp;lt; /dev/tty1 #NumLock-LED kurz ausschalten&lt;br /&gt;
    sleep 1&lt;br /&gt;
 done&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Das Skript muss ausführbar sein&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sudo chmod +x /usr/local/bin/kbd2fhem.sh&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Nach dem nächsten Booten ist die RPi bereit Zahlencodes an FHEM zu schicken.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= FHEM vorbereiten =&lt;br /&gt;
== Zahlencode einem Dummy zuordnen ==&lt;br /&gt;
Beispiel Eintrag in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;# Keyboard. Eingegebener Zahlencode: 12345 (Beispiel)&lt;br /&gt;
define kbd12345 dummy&lt;br /&gt;
define kbdnot01 notify kbd12345 set lampe toggle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FHEM-Zugriff von extern ==&lt;br /&gt;
Sollte auf der RPi nicht auch FHEM laufen, so muss FHEM den Remote-Zugriff erlauben:&lt;br /&gt;
Eintrag in fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 define telnetPort telnet 7072 &#039;&#039;&#039;global&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Hilfe/Support =&lt;br /&gt;
Fragen werden gerne im FHEM-Forum auf [http://forum.fhem.de http://forum.fhem.de] beantwortet.&lt;br /&gt;
&lt;br /&gt;
Für Feedback ist [http://forum.fhem.de/index.php?t=msg&amp;amp;amp;th=11521&amp;amp;amp;goto=67529&amp;amp;amp;rid=196#msg_67529 dieser Beitrag] im Forum vorgesehen.&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>Martinhaas</name></author>
	</entry>
</feed>