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.

Top 5 der Tastaturbefehle der bash/Linux History

history | grep foo sucht in der History alle Zeilen mit foo und zeigt alle an

!123 führt den Befehl aus der History mit der Nummer 123 aus
!123:p führt den Befehl aus der History mit der Nummer 123 aus, zeigt ihn aber vorher noch an

!foo führt den letzen Befehl aus der History aus der mit foo beginnt
!foo:p führt den letzen Befehl aus der History aus der mit foo beginnt, zeigt ihn aber vorher noch an

Wie kann auf einem WR-703N unter OpenWrt ein Server für USB tunnel per TCP eingerichtet werden?

Anleitung von OpenWrt „USB durch IP-Tunnel„.

Zuerst die USB Kernel Module und USBIP Server Package installieren mit:

opkg update
opkg install kmod-usb-ohci usbip-server

Dann die lokalen USB Geräte auflisten mit
usbip list -l
Bei mir wir diese Ausgabe geliefert:

[root@OpenWrt ~]# usbip list -l
Local USB devices
=================
- busid 1-1 (0451:1446)
1-1:1.0 -> hub

- busid 1-1.1 (0403:6001)
1-1.1:1.0 -> ftdi_sio

- busid 1-1.4 (090c:1000)
1-1.4:1.0 -> usb-storage

Wie man sieht, habe ich einen USB Hub, an diesem habe ich den Arduino Nano (ftdi_sio) und einen USB-Stick mit 8GB (usb-storage) angeschlossen.

In der Datei /etc/rc.local vor dem exit 0 diese Zeilen einfügen wenn der Server autom. gestartet werden soll. Evl. noch die BusID anpassen:

# TW Tunnelt den USB-Stick per TCP
usbipd -D &
sleep 1
usbip bind -b 1-1.4 # bindet die BusID vom USB Stick

Diese Methode habe ich aber erstmal nicht mehr verwendet da schon autom. ein Fhem-Server läuft.

Nach einem reboot kann mit netstat geschaut werden ob alles läuft.
netstat -alpt.

Siehe auch diese Anleitung

[root@OpenWrt ~]# usbip list -local
Local USB devices
=================
- busid 1-1 (0451:1446)
1-1:1.0 -> hub

- busid 1-1.1 (0403:6001)
1-1.1:1.0 -> ftdi_sio

- busid 1-1.4 (090c:1000)
1-1.4:1.0 -> usb-storage


[root@OpenWrt ~]# usbip bind -b 1-1.1
bind device on busid 1-1.1: complete


[root@OpenWrt ~]# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0451:1446 Texas Instruments, Inc. TUSB2040/2070 Hub
Bus 001 Device 007: ID 090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) 64MB QDI U2 DISK
Bus 001 Device 008: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 002 Device 001: I

Hab noch keinen USBIP Client für Mac OS X gefunden. Gibt es da einen der läuft?
Für Windows und Linux gibt es passende.

Wie kann der verwendete Speicher auf dem WR703N mit OpenWrt und Fhem angezeigt werden?

Das geht mit dem Linux Befehl:
top
der nach der Anmeldung per SSH eingegeben werden kann. Man sieht gut, das fhem das unter Perl läuft und am meisten (37%) virtuelle Prozessgröße in KB (VSZ) verbraucht.

Linux Befehlt "top" zum Anzeigen der Auslastung
Linux Befehlt „top“ zum Anzeigen der Auslastung

free und ps geben auch noch einige Größen an.

Die Spalte STAT oder S zeigt den Prozesszustand an und bedeutet:

  • R – running (Prozess wartet auf den Prozessor)
  • S – sleeping (Prozess schläft)
  • D – Prozess ist in einem ununterbrechbaren Schlaf
  • I – idle (Prozess wird gerade erzeugt)
  • L – locked (eine Seite im Hauptspeicher wurde gesperrt)
  • O – Prozess, der gerade die CPU beansprucht
  • Z – Zombie (Prozess wurde beendet, aber Elternprozess hat noch nicht aufgeräumt)
  • X – Prozess wartet auf freien Speicher
  • T – Unterbrochen (gestoppt)
  • W – Prozess ist ausgelagert

Wie kann Fhem auf OpenWrt aktualisiert werden?

Einloggen auf OpenWrt per SSL. Dann per Comandline:

telnet 192.168.1.111 7072
und Enter drücken.

Oder auch ohne per SSL einzuloggen und gleich per Telnet verbinden.

Nun erschein der fhem Prompt:
fhem>
Mit
update check
wird überprüft ob und welche aktualisierungen vorhanden sind.

Dann mit update force werden alle Aktualisierungen erzwungen. Das kann dann ein paar Minuten dauern. Wenn der update fertig ist, muss noch ein shutdown restart durchgeführt werden.

Nach dem erneuten einloggen kann kontroliert werden mit

fhem> update check
List of new / modified files since last update:
nothing to do...

ob alles aktuell ist.

Mit Version können die einzelnen Versions Nummern ausgegeben werden:

fhem Versions Info
fhem Versions Info

Wie kann mit Arduino die serielle Ausgabe über TCP ausgegeben werden auf dem TP-WR703N Gerät?

Der Arduino (NANO) wird per USB an den TP-WR703N (12.09) angeschlossen. Wie kann nun von einem anderen Rechner darauf per TCP (Telnet) zugegriffen werden?

Dazu erst socat auf den WR703 installieren mit

opkg update
opkg install socat

Socate (Version 1.7.2.1) kann bidirektionale Verbindungen aufbauen. Es verbindet den USB Port mit dem TCP Port.
Dann das folgende Script erstellen start-temp.sh, und evl noch die Schnittstelle DEV und den PORT und BAUD anpassen.

#!/bin/bash

DEV=/dev/ttyUSB0
PORT=1234
BAUD=9600

while true; do
if [ -e $DEV ]
then
socat tcp-l:$PORT,reuseaddr,fork file:$DEV,nonblock,raw,echo=0,waitlock=/var/run/tty,b$BAUD
else
sleep 2
fi
done

und ausführbar machen mit

chmod +x start-temp.sh

Dann kann das Script mit ./start-temp.sh & im Hintergrund auf dem WR703N gestartet werden.

Nun kann von einem anderen Rechner mit
telnet ip-adresse 1234 die Ausgabe ausgegeben werden.

Will man das das Script autom. beim hochfahren des WR703N startet, muss es noch in der /etc.rc.local eingetragen werden (aber vor exit 0). Das geht auch über Luci:

Luci Startskripte
Luci Startskripte

Evl. muss der USB Port einmal reconnected werden.

Wie werden alle offenen Ports mit OpenWrt angezeigt?

Mit nmap können die offenen Ports wie folgt ausgegeben werden (nur gegen localhost ausführen):

[root@OpenWrt ~]# nmap localhost

Ausgabe dann z.B.

Starting Nmap 6.01 ( http://nmap.org ) at 2013-08-22 08:20 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00030s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
80/tcp open http

Der Port 53 ist für den DNS Server. Details können auch mit
Netstat ausgegeben werden z.B.:

[root@OpenWrt ~]# netstat -plnt

Ausgabe:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1789/uhttpd
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 1820/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1771/dropbear

Wie kann in Luci von OpenWrt die Sprache geändert werden?

Die Gui von Luci kann auch in einer anderen Sprache eingestellt werden.
Dazu kann mit folgendem Befehl auf der Konsole die Liste der verfügbaren Sprachen ausgegeben werden.

[root@OpenWrt ~]# opkg list | grep luci-i18n-

Bis jetzt wurden folgende Sprachen übersetzt:

luci-i18n-catalan - 0.11.1-1 - Catalan (by Eduard Duran)
luci-i18n-chinese - 0.11.1-1 - Chinese (by Chinese Translators)
luci-i18n-english - 0.11.1-1 - English
luci-i18n-french - 0.11.1-1 - French (by Florian Fainelli)
luci-i18n-german - 0.11.1-1 - German
luci-i18n-greek - 0.11.1-1 - Greek (by Vasilis Tsiligiannis)
luci-i18n-hebrew - 0.11.1-1 - Hebrew
luci-i18n-hungarian - 0.11.1-1 - Hungarian
luci-i18n-italian - 0.11.1-1 - Italian (by Matteo Croce)
luci-i18n-japanese - 0.11.1-1 - Japanese (by Tsukasa Hamano)
luci-i18n-malay - 0.11.1-1 - Malay (by Teow Wai Chet)
luci-i18n-norwegian - 0.11.1-1 - Norwegian (by Lars Hardy)
luci-i18n-polish - 0.11.1-1 - Polish
luci-i18n-portuguese - 0.11.1-1 - Portuguese (by Jose Monteiro)
luci-i18n-portuguese-brazilian - 0.11.1-1 - Portuguese (Brazilian) (by Carlos Cesario)
luci-i18n-romanian - 0.11.1-1 - Romanian
luci-i18n-russian - 0.11.1-1 - Russian (by Skryabin Dmitry)
luci-i18n-spanish - 0.11.1-1 - Spanish (by Guillermo Javier Nardoni)
luci-i18n-ukrainian - 0.11.1-1 - Ukrainian
luci-i18n-vietnamese - 0.11.1-1 - Vietnamese (by Hong Phuc Dang)

Mit dem folgenden Zweizeiler wird Deutsch eingestellt.

opkg update
opkg install luci-i18n-german

Dann in der Luci-Web-Gui unter der Seite System/System -> Language and Style auf Deutsch schalten. In der Regel steht Sprache dort schon auf automatisch, dann wird Deutsch automatisch gewählt.

Luci Gui in Deutsch
Luci Gui in Deutsch

Für andere Sprachen analog vorgehen.

Die Einstellungen für Luci die automatisch eingestellt werden, sehen dann so aus:

[root@OpenWrt ~]# cat /etc/config/luci

config core 'main'
option lang 'auto'
option resourcebase '/luci-static/resources'
option mediaurlbase '/luci-static/bootstrap'

config extern 'flash_keep'
option uci '/etc/config/'
option dropbear '/etc/dropbear/'
option openvpn '/etc/openvpn/'
option passwd '/etc/passwd'
option opkg '/etc/opkg.conf'
option firewall '/etc/firewall.user'
option uploads '/lib/uci/upload/'

config internal 'languages'
option en 'English'
option de 'Deutsch'

config internal 'sauth'
option sessionpath '/tmp/luci-sessions'
option sessiontime '3600'

config internal 'ccache'
option enable '1'

config internal 'themes'
option OpenWrt '/luci-static/openwrt.org'
option Bootstrap '/luci-static/bootstrap'