Wie kann die Piratebox unter OpenWrt auf einem TP-Link TL-WR703N Router installiert werden?

Die Piratebox ist ein in sich selbst abgeschlossenes Gerät zum anonymen speichern und austauschen von Bildern, Videos, Dokumente und andere Dateien über WLAN.
Es wird kein User login benötigt und es wird kein User geloggt. Auch kann im Netz geschattet werden.
Die Piratebox ist nicht ans Internet angebunden, um die Sicherheit zu erhöhen das die Daten private bleiben.
Also ein freies und offenes privates file sharing and chat! device. Jeder der in der Reichweite des WLAN ist, kann einfach und sofort Dateien austauschen.

Es gibt da ein paar Fallgruben bei der Installation und der Router kann leicht gebrickt werden. Mit einem Serial-Adapter kann dies aber wieder rückgängig gemacht werden. Ist aber nicht ohne Löterrei möglich.

Im Prinzip läuft die Installation so wie in der Anleitung
des Entwicklers beschrieben.

Auf dem 703N muss die Version 12.09 geflasht werden. Habe die neuere Version 12.09 von OpenWrt auch versucht, die lief aber nicht, und erzeugte eienen brick!

Es wird noch ein USB Stick benötigt. Ich hatte noch einen 8 GB Stick liegen. Der muss mit FAT32 formatiert werden und darf nur eine Partition haben.
Ich hatte einen mit 3 Partitionen, der lief in eine Endlosschleife. Dann hatte ich den USB Stick mit einer Partition angelegt und vergessen sie zu einer primären Partition zu machen, auch das führte zu einer Endlosschleife.

Also Vorbedingung:
1. Version 12.09-beta2 geflasht
2. USB Stick mit einer FAT32 Partition erstellen

3. Test ob zugriff aufs Internet mit ping wenzlaff.de
4.
opkg update
opkg install kmod-usb-uhci
insmod usbcore # Es kann die Meldung kommen: file exists
insmod uhci
opkg install kmod-usb-ohci # Es kann die Meldung kommen:up to date.
insmod usb-ohci

5. USB-Stick einstecken

6.cd /tmp
opkg update
opkg install http://piratebox.aod-rpg.de/piratebox_0.6.3_all.ipk

Die Installation dauert nun ca. 15 min denn es werden aus dem Internet neue Versionen geladen und installiert und auf
dem Stick SWAP Partitionen angelegt und das Piratebox System installiert und konfiguriert.

7. Wenn die Installation abgeschlossen ist, kann das LAN Kabel entfernt werden und der Router einmal rebootet werden.
Dann kann auf das WLAN Netzwerk mit dem Namen „PirateBox – Share Freely“ zugegriffen werden. Dazu z.B. im iPadMini das WLAN auswählen:
20131001-182320.jpg

Optional: Was mir noch fehlt, ist eine externe Stromversorgung von 5 V über den USB Port, so das alles portabel ist.

Die eingestellte IP: 192.168.1.1 (192.168.2.111)
Domain: piratebox.lan

Wenn eine Browser geöffnet wird und irgendeine Seite aufgerufen wird erscheint:

20131001-181818.jpg
Nun können Dateien ausgetauscht und geschattet werden. Siehe den Hallo Welt Eintrag von mir oben.

Drei Tipps zum einfachen öffnen des Finders in Mac OS X per cmd-Taste

Wenn man im Mac OS X mit gedrückter cmd Taste ein Icon im Dock anklickt, öffnet sich der Finder mit der selektierten Anwendung an der Stelle wo die Anwendung gespeichert ist.

Das gleiche passiert auch, wenn in der Spotlight suche ein Ergebniss gefunden wurde, dann cmd und Return drücken.

Auch öffnet sich ein neues Finder-Fenster wenn man mit gedrückter cmd Taste in der offenen Sidebar auf einen Eintrag (Favoriten) klickt.

Wie können Temperaturlisten in Fhem auf einem 703N Router unter OpenWrt via HMLan an den Funk-Wandthermostat (HM-CC-TC) gesendet werden?

So wie hier in der Anleitung beschrieben.
Zuerst eine eigene Perl Methode mit folgenden Inhalt erstellen:

Perl Datei 99_myTWUtils.pm
Perl Datei 99_myTWUtils.pm

Dann folgenden Perl-Befehl aus dem Fhem Server absenden:

Aufruf Perl Methode
Aufruf Perl Methode

Dann zur Kontrolle alle Paramteter einlesen mit set getConfig:
Bildschirmfoto 2013-09-23 um 19.43.36
Und das Ergebnis anschauen mit, dabei darauf achten das die Reihenfolge der Tage anders ist als im Script:

Fhem Temperaturliste
Fhem Temperaturliste

Ist die Schalterserie Vision von der Fa. Koop mit den Homematic Schaltern kompatibel?

Nein. Leider nein. Auf schriftliche Anfrage des Herstellers „nein„. Es gab von der Fa. Koop auch keine Auskunft, wann es Adapter (Wippen) für die Homematic-Schalter geben wird. Schade das das Flaggschiff der Fa. Koop nicht mit Homematik verbunden werden kann.

Habe es dennoch versucht, um zu sehen woran es scheitert. Es passt einfach nicht, da der Wippen-Weg zu lang ist. Da ist auch mit feilen und sägen nichts zu machen, geht nicht mit den Kopp-Wippen

Also der Funkaktor passt nicht in die Vision Serie der Fa. Koop, so wie es der Hersteller sagt.

Schade, das die Vision Serie nicht passt.

Das sind die Homematic Schaltaktoren, die man mit einem „normalen“ Lötkolben leider nicht komplett löten kann,
da zwei Elkos so plaziert sind, das man da schon einen MINI-Lötkolben und eine Lupe haben muss (oder jemand kennen, der sowas hat 😉 ). Da könnte das Platinenlayout sicherlich verbessert werden.

Die Anleitung ist sehr Textlastig und in etwas so, löten sie so wie auf den Bildern zu sehen ist. Die Bilder sind leider nur in Orginalgröße vorhanden (Lupe lieg nicht bei) und dann auch noch mit einem anderen Bausatz vermischt. Da könnte ELV sicher noch optimieren.

Homematic Schalter UP von vorne
Homematic Schalter UP von vorne
Homematic Schalter Unterputz von hinten
Homematic Schalter Unterputz von hinten

Wenn er in Fhem angelernt ist meldet er:

2013-09-18_17:02:10 CUL_HM_HM_LC_Sw1PBU_FM_207EF4 level: 100 %
2013-09-18_17:02:10 CUL_HM_HM_LC_Sw1PBU_FM_207EF4 deviceMsg: on (to HMLAN_1)
2013-09-18_17:02:10 CUL_HM_HM_LC_Sw1PBU_FM_207EF4 on
2013-09-18_17:02:10 CUL_HM_HM_LC_Sw1PBU_FM_207EF4 running: -
# ab hier: rename CUL_HM_HM_LC_Sw1PBU_FM_207EF4 schalter
2013-09-18_17:04:29 schalter set_toggle
2013-09-18_17:04:30 schalter level: 0 %
2013-09-18_17:04:30 schalter deviceMsg: off (to HMLAN_1)
2013-09-18_17:04:30 schalter off
2013-09-18_17:04:30 schalter running: -
2013-09-18_17:04:40 schalter set_toggle
2013-09-18_17:04:40 schalter level: 100 %
2013-09-18_17:04:40 schalter deviceMsg: on (to HMLAN_1)
2013-09-18_17:04:40 schalter on
2013-09-18_17:04:40 schalter running: -
2013-09-18_17:04:59 schalter level: 100 %
2013-09-18_17:04:59 schalter deviceMsg: on (to HMLAN_1)
2013-09-18_17:04:59 schalter on
2013-09-18_17:04:59 schalter running: -

Und so sieht es in Fhem aus:

Schalter in Fhem
Schalter in Fhem

Wie kann ich unter OpenWrt die WLAN-Fähigkeiten des WR-703N mit iw und arp anzeigen?

Auf der Konsole mit:
iw phy
Wir erhalten dann eine Ausgabe in der Form:

Wiphy phy0
Band 1:
Capabilities: 0x116e
HT20/HT40
SM Power Save disabled
RX HT20 SGI
RX HT40 SGI
RX STBC 1-stream
Max AMSDU length: 3839 bytes
DSSS/CCK HT40
Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
Minimum RX AMPDU time spacing: 8 usec (0x06)
HT TX/RX MCS rate indexes supported: 0-7
Frequencies:
* 2412 MHz [1] (20.0 dBm)
* 2417 MHz [2] (20.0 dBm)
* 2422 MHz [3] (20.0 dBm)
* 2427 MHz [4] (20.0 dBm)
* 2432 MHz [5] (20.0 dBm)
* 2437 MHz [6] (20.0 dBm)
* 2442 MHz [7] (20.0 dBm)
* 2447 MHz [8] (20.0 dBm)
* 2452 MHz [9] (20.0 dBm)
* 2457 MHz [10] (20.0 dBm)
* 2462 MHz [11] (20.0 dBm)
* 2467 MHz [12] (disabled)
* 2472 MHz [13] (disabled)
* 2484 MHz [14] (disabled)
Bitrates (non-HT):
* 1.0 Mbps
* 2.0 Mbps (short preamble supported)
* 5.5 Mbps (short preamble supported)
* 11.0 Mbps (short preamble supported)
* 6.0 Mbps
* 9.0 Mbps
* 12.0 Mbps
* 18.0 Mbps
* 24.0 Mbps
* 36.0 Mbps
* 48.0 Mbps
* 54.0 Mbps
max # scan SSIDs: 4
max scan IEs length: 2257 bytes
Coverage class: 0 (up to 0m)
Supported Ciphers:
* WEP40 (00-0f-ac:1)
* WEP104 (00-0f-ac:5)
* TKIP (00-0f-ac:2)
* CCMP (00-0f-ac:4)
* CMAC (00-0f-ac:6)
Available Antennas: TX 0x1 RX 0x1
Configured Antennas: TX 0x1 RX 0x1
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* WDS
* monitor
* mesh point
* P2P-client
* P2P-GO
software interface modes (can always be added):
* AP/VLAN
* monitor
valid interface combinations:
* #{ managed, WDS, P2P-client } <= 2048, #{ IBSS, AP, mesh point, P2P-GO } <= 8, total <= 2048, #channels <= 1 Supported commands: * new_interface * set_interface * new_key * start_ap * new_station * new_mpath * set_mesh_config * set_bss * authenticate * associate * deauthenticate * disassociate * join_ibss * join_mesh * remain_on_channel * set_tx_bitrate_mask * frame * frame_wait_cancel * set_wiphy_netns * set_channel * set_wds_peer * tdls_mgmt * tdls_oper * probe_client * set_noack_map * register_beacons * Unknown command (89) * connect * disconnect Supported TX frame types: * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * mesh point: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * (null): 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 Supported RX frame types: * IBSS: 0xb0 0xc0 0xd0 * managed: 0x40 0xd0 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 * mesh point: 0xb0 0xc0 0xd0 * P2P-client: 0x40 0xd0 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 * (null): 0x40 0xd0 Device supports RSN-IBSS. HT Capability overrides: * MCS: ff ff ff ff ff ff ff ff ff ff * maximum A-MSDU length * supported channel width * short GI for 40 MHz * max A-MPDU length exponent * min MPDU start spacing Device supports TX status socket option. Device supports HT-IBSS.

Und der Interface-Typ kann mit iw dev wlan0 inof ausgegeben werden:

Interface wlan0
ifindex 6
wdev 0x2
addr 13:cc:99:99:32:fc
type managed
wiphy 0
channel 11 (2462 MHz) HT40-

Manchmal will man aber auch alle Mesh-Points in Funkreichweite sehen, das geht mit
iw dev wlan0 station dump, hier ein Beispiel:
Station 77:31:77:e7:77:f9 (on wlan0)
inactive time: 730 ms
rx bytes: 2093412
rx packets: 14162
tx bytes: 14206
tx packets: 160
tx retries: 3
tx failed: 0
signal: -46 [-46] dBm
signal avg: -45 [-45] dBm
tx bitrate: 135.0 MBit/s MCS 6 40Mhz short GI
rx bitrate: 121.5 MBit/s MCS 6 40Mhz
authorized: yes
authenticated: yes
preamble: long
WMM/WME: yes
MFP: no
TDLS peer: no

Alle vorhandenen Pfade mit Ziel-MAC-Adresse und Next-Hope-Adresse wird mit iw dev wlan0 mpath dump so angezeigt:

DEST ADDR NEXT HOP IFACE SN METRIC QLEN EXPTIME DTIM DRET FLAGS

Und zu guter letzt, die Abbildung der IP-Adressen auf die MAC-Adressen mit arp liefert:

IP address HW type Flags HW address Mask Device
192.168.2.7 0x1 0x2 77:77:77:77:77:f5 * wlan0
192.168.2.7 0x1 0x2 77:77:77:77:77:f5 * br-lan
192.168.2.111 0x1 0x2 77:77:77:77:77:f5 * br-lan
192.168.2.111 0x1 0x2 77:77:77:77:77:f5 * br-lan

Wie kann mit Fhem auf OpenWrt eine E-Mail versendet werden beim öffnen oder schließen einer Tür?

Nachdem das E-Mail System wie in beschrieben eingerichtet wurde, kann eine E-Mail versendet werden wenn eine Tür auf oder zu geht.

Dazu in der fhem.cfg diese Benachrichtigungen einrichten:

# Reagiert auf Event:
# 2013-09-11_17:22:53 wz_Tuerschalter contact: open (to HMLAN_1)
define terrassenTuerOffenEMail notify wz_Tuerschalter:contact.*open.*HMLAN_1.* \
{\
fb_mail('emali@@test.de','Fhem: Terrassen Tuer offen!','Die Terrassen Tuer ist auf.') \
}
# Reagiert auf Event:
# 2013-09-11_17:22:53 wz_Tuerschalter contact: closed (to HMLAN_1)
define terrassenTuerZuEMail notify wz_Tuerschalter:contact.*closed.*HMLAN_1.* \
{\
fb_mail('email@@test.de','Fhem: Terrassen Tuer zu!', 'Die Terrassen Tuer ist zu.') \
}

Dabei beachten das das @ zweimal angegeben werden muss.
Wichtig auch, das alles in einfachen Hochkomma stehen muss.

Testen kann man dies auch mit dem Trigger Befehl, wenn man den auszulösenden Event in das Eingabefeld vom Web-Fhem eingibt:

trigger wz_Tuerschalter contact: open (to HMLAN_1)

Dann muss auch eine E-Mail versendet werden.

Folgende Datei erstellen /fhem/FHEM/99_myTWUtil.pm und E-Mail Adresse anpassen.

#
#   99_myTWUtils.pm Version 1.0 vom 11.09.2013
#
#   Dieses Perl Script (99_myTWUtils.pm) enthaelt alle Tools die fuer Fhem noch benoetigt werden.
#   1. fb_mail Methode zum versenden von E-Mails
#
#   (C) 2013 Thomas Wenzlaff http://www.wenzlaff.de
#
#   This program is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program. If not, see {http://www.gnu.org/licenses/}.

package main;
use strict;
use warnings;
use POSIX;

sub
myTWUtils_Initialize($$)
{
my ($hash) = @_;
}

sub
fb_mail
{
 my $empfaenger = $_[0];
 my $subject = $_[1];
 my $text = $_[2];
 Log 5, ">>> fb_mail Eintrag: Empfaenger: $empfaenger Betreff: $subject Text: $text";
 Log 5, ">>> ---------------------------------------------------------------------------------";

 system("/bin/echo -e \"To: $empfaenger\nFrom: $empfaenger\nReply-to: $empfaenger\nSubject: $subject\n\n$text\" | ssmtp \"$empfaenger\"");

 return "OK, E-Mail an $empfaenger versendet! Betr.: $subject Inhalt: $text";
}

1;

Ein „reload 99_myTWUtil.pm“ und ein „rereadcfg“ absetzen oder ein „reboot“ ausführen und schon wird eine E-Mail nach dem öffnen und schließen der Tür gesendet.

Weitere Links:
FhemWiki zum Thema E-Mail senden.
Perl infos.

Wie können unter OpenWrt E-Mails versendet werden?

Das geht mit dem msmtp Client (msmtp version 1.4.27).

Dazu den msmtp Client und mutt (Version 1.5.21 (2010-09-15)) auch gleich mit installieren.

Die Konfigurationsdatei vi /etc/msmtprc wie folgt anlegen und die entsprechenden smtp Daten eingeben:

Testen ob alles richtig konfiguriert wurde geht mit dem absetzen folgender Kommandos auf der Konsole:

Oder mit cat mit Betreff und Absender:

Dann testen ob die E-Mail angekommen ist.

Für das Versenden aus dem Fhem Script reicht das noch nicht. Wir brauchen noch ssmtp

Diese zwei Dateien anpassen /etc/ssmtp/ssmtp.conf

Und die /etc/ssmtp/revaliases

Check auf der Konsole mit:

dann Enter und die Nachricht der E-Mail eingeben.

Zum Schluss Strg+D drücken. Dann wird die E-Mail versendet.

Wie kann ein Tür- und Batteriezustand gPlot für Fhem (HM-Sec-SC) erstellt werden?

Um die digitalen Werten, wie Tür auf oder zu in einem Plot mit dem Batterie Zustand auszugeben, kann wie folgt vorgegangen werden. Der HM-Sec-SC Funk-Tür-/Fensterkontakt gibt die Werte ja zurück. Die rote Linie gibt den Türzustand aus ob die Tür auf oder zu ist bzw. war.

Plot der Schaltzustände der Tür und der Batterie aus Fhem
Plot der Schaltzustände der Tür und der Batterie aus Fhem

Diese /fhem/www/gplot/myTerrassenTuer.gplot Datei speichern:


/*
   myTerrassenTuer.gplot Version 1.0 vom 07.09.2013

   Dieses GNU-Plot Script (myTerrassenTuer.gplot) gibt zwei Zustaende des Tuerkontakt als Kurven aus und zwar
   den Batterie-Zustand, den Status der Tuer.

   (C) 2013 Thomas Wenzlaff http://www.wenzlaff.de

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see {http://www.gnu.org/licenses/}.
*/

set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Terrassen Tuer'

set ytics ("Zu" 0, "Ok" 0.8, "Auf" 1)
set y2tics ("Zu" 0, "Ok" 0.8, "Auf" 1)
set yrange [-0.1:1.1]
set y2range [-0.1:1.1]
set ylabel ""
set y2label ""

#FileLog 3:wz_Tuerschalter:0:$fld[2]=~"open"?1:0
#FileLog 4:wz_Tuerschalter:0:$fld[2]=~"ok"?0:0.8

plot \
       "< awk '/wz_Tuerschalter/ {print $1, $3~/open/? 1 : 0; }' <IN>"\
       using 1:2 title 'Tuer' with steps
       "< awk '/wz_Tuerschalter/ {print $1, $3~/ok/? 1 : 0; }' <IN>"\
       using 1:2 title 'Batterie' with steps

Folgende Einträge sind in der fhem.cfg Datei noch nötig:

# TW Tuerschalter
define wz_Tuerschalter CUL_HM 000000
attr wz_Tuerschalter .devInfo 000000
attr wz_Tuerschalter .stc 80
attr wz_Tuerschalter actCycle 028:00
attr wz_Tuerschalter actStatus alive
attr wz_Tuerschalter expert 2_full
attr wz_Tuerschalter firmware 2.1
attr wz_Tuerschalter model HM-SEC-SC
attr wz_Tuerschalter peerIDs 
attr wz_Tuerschalter room Wohnzimmer
attr wz_Tuerschalter serialNr KEQ0000000
attr wz_Tuerschalter subType threeStateSensor

define FileLog_wz_Tuerschalter FileLog ./log/wz_Tuerschalter-%Y.log wz_Tuerschalter
attr FileLog_wz_Tuerschalter logtype text
attr FileLog_wz_Tuerschalter room Wohnzimmer

define SVG_FileLog_wz_Tuerschalter_1 SVG FileLog_wz_Tuerschalter:myTerrassenTuer:CURRENT
attr SVG_FileLog_wz_Tuerschalter_1 room Wohnzimmer