Robins Blog – Technik und Multimedia

NAS Synology DS 212+: Lampensteuerung über Smartphone mit Marmitek X10

X10-Devices über die Synology DS212+ mit dem iPhone gesteuert

Alle, die meinen Blog kennen, wissen es: Ich schreibe meistens nicht über allgemeine Dinge, sondern versuche, aus guten Produkten noch etwas mehr herauszuholen. Wie beispielsweise bei einem Samsung TV die Länderumschaltung für die Apps oder auch immer Tipps zur besseren Sortierung von TV-Kanälen von Samsung TVs.
Vor einiger Zeit hatte ich ja meine Buffalo Linkstation NAS verkauft, um mir die Synology NAS DS212+ NAS-Server (2GHz, 512MB RAM, SATA II, 2-Bay, 2 x USB 3.0)
bei amazon.de zu erwerben. Zur Synology DS212+, welche ich nicht mehr hergeben möchte, habe ich auch schon einen Erfahrungsbericht geschrieben und auch einen Beitrag geschrieben, wie man mit dieser schwarzen Wunderkiste ohne großen Hardware-Aufwand Temperaturen mit Digitemp messen kann. Das Synology-System ist ziemlich quelloffen, d.h. mit Linux-Kenntnissen kann man da einiges noch dazuschrauben.
Jetzt zum eigentlichen Thema: Ich besitze schon seit gefühlten 100 Jahren das Marmitek-System mit dieser Mörder-Fernbedienung. Ich schalte da ab und zu ein paar Lampen komfortabel damit ein und aus. Dazu habe ich auch ein Beitrag geschrieben.

Jetzt sollte eine elegantere Lösung her, Stichwort: Steuerung der Lampen mit einem Smartphone bspw. iPhone, iPad oder ein Android-Smart-Device.

Man benötigt dazu folgende Hardware:
Das Marmitek CM11 X10-Module. Dieses bildet das Interface zwischen der NAS und dem Stromnetz. Zum Ein- und Ausschalten von Verbrauchern (Kaffeemaschine, Lampen, Garagentoröffner benötigt man den  Marmitek Gerätefernschalter AM12G. Möchte man speziell Lampen ein- und ausschalten benötigt man den Marmitek LM15ES Lampenfassungsschalter für X10

Weiterhin die Bauteile und Hardware aus dem vorhin erwähnten Beitrag:

iPhone, iPad oder Android-Device
Die passende App (x10-Commander für 7,99 Euro) , hier den Port 3003 und die IP-Adresse von der Synology einstellen! Die X10-Commander-Version für Android kostet 10 Euro ich habe sie auch erfolgreich mit meinem Nexus 7 (Jelly Bean) getestet.

Als Steuerungssoftware kommt wieder Heyu (kostenlos) zum Einsatz.

Dann legen wir mal los:
Nachfolgend gehe ich jetzt davon aus, das Ihr heyu ordnungsgemäß installiert habt und ihr auch mit heyu on a1 ein Verbraucher ein- und ausschalten könnt.

Jetzt verweise ich Euch zu einem Artikel, den ihr erst mal befolgen könnt. Brand D hat diesen Beitrag für Debian Squeeze geschrieben.

Jetzt kommen aber die groben Feinheiten, insbesondere, wenn die Installation / Konfiguration auf einer Synology DS212+ erfolgen soll.

Zunächst muss xinetd installiert werden. Bei der Synology macht man das mit

[sourcecode language=“text“ gutter=“false“]ipkg install xinetd[/sourcecode]

Anschließend muß bash installiert werden,

[sourcecode language=“text“ gutter=“false“]ipkg install bash[/sourcecode]

Weiter gehts mit sed und tr. Dafür habe ich folgende gefunden:

[sourcecode language=“text“ gutter=“false“]ipkg install textutils[/sourcecode]

Wenn das alles mittels ssh installiert ist, könnt Ihr es nach dem Kochrezept von Brand D testen. Achtet drauf, die Installation läuft nicht auf /etc/xinetd sondern auf /opt/etc/xinetd. Bedenkt dieses, wenn Ihr das Howto durchgeht. Denkt auch an die Benutzerrecht, ich habe standardmäßig alles auf root gesetzt.

Mein x10cmdr sieht so aus:

[sourcecode language=“text“ gutter=“false“]
# default: on
# description: X10 Commander Socket Server
service x10cmdr
{
port = 3003
socket_type = stream
wait = no
user = root
groups = yes
server = /opt/bin/x10cmdr.sh
log_on_success += USERID
log_on_failure += USERID
disable = no
}[/sourcecode]

Das x10cmdr.sh

[sourcecode language=“text“ gutter=“false“]
#!/opt/bin/bash

HEYU=/opt/bin/heyu
PASS=password # Auch in der App das gleiche Passwort nehmen!
HC=a # Housecodes you want to use
#LOG=/tmp/x10c.log # Change to /dev/null if you don’t want logs.
LOG=/dev/null
SORTAZ=0 # If 0, will sort by house code.
XMIT=0 # If 1, will transmit CM17A commands.


function get_devices {
DEVICES=`$HEYU show alias $HC | grep -v "," | grep "alias" | \
awk ‚{ print "Device~" $2 "~" $3 "~0" }‘ | sed ’s/_/ /g’`
if [ "$SORTAZ" -eq "1" ]; then DEVICES=`echo "$DEVICES" | sort`; fi
ORIGIFS=$IFS
IFS=`echo -en "\n\b"`
> for line in $DEVICES; do
echo "$line"
echo "SERVER: $line" >> $LOG
done
IFS=$ORIGIFS
}[/sourcecode]

xinetd.conf

[sourcecode language=“text“ gutter=“false“]# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# Sample configuration file for xinetd
# angepasst für fritzbox, mein iphone hat die 192.168.0.11

defaults
{
only_from = localhost 10.0.0.0/8 172.16.0.0/12 192.168.178.0/16
instances = 60
log_type = SYSLOG authpriv info
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}

includedir /opt/etc/xinetd.d[/sourcecode]

und schließlich ein Extract von  x10conf

[sourcecode language=“text“ gutter=“false“]# Serial port to which the CM11a is connected. Default is /dev/ttyS0.

TTY /dev/usb/ttyUSB0 # [serial port device]
START_ENGINE AUTO

# If you have an X10 compatible RF receiver connected to a second
# serial port, use the TTY_AUX directive to specify the serial port
# and model of receiver. Supported receivers are W800RF32, MR26A,
# and RFXCOM. There are no defaults.

# TTY_AUX /dev/ttyS1 W800RF32

# Base housecode. The default is A.

HOUSECODE A # A B C D E F G H I J K L M N O P

# Aliases:
# Format: ALIAS Label Housecode|Unitcode_string [Module_Type]
#
# The label is limited to 32 characters in length and is case-sensitive,
# e.g., Front_Porch and front_porch are treated as different labels.
# Each alias may reference a single unitcode or a multiple unitcode
# string (no embedded blanks), but is limited to one housecode.
#
# The optional Module_Type is the general type or specific model number
# of a module currently supported by Heyu. (Knowing the characteristics
# of a module allows Heyu to track changes in its On/Off/Dim state
# as X10 signals are sent or received.) The most commonly used modules
# are the standard X10 lamp module (StdLM) and standard X10 appliance
# module (StdAM). Other modules currently supported by Heyu are listed
# in x10config(5). A standard X10 lamp module (StdLM) is the
# default (changeable with the DEFAULT_MODULE directive)
# for housecode|units which are not defined in an alias directive.
# A module_type should normally not be defined for mutiple-unit
# aliases, just for the single-unit aliases. (The module characteristics
# are associated with the housecode|unit, however referenced.)
#
# Some examples:
alias Chinalampe a1 StdAM
alias Robins-Fuji-Pappmann a2 LM12
alias Hintergrund-TV a3 StdLM
alias LM2 a4
alias LM3 a5[/sourcecode]

Dann anschließend noch den Xinetd-Server starten und das Ergebnis sieht dann so aus, wenn der X10-Commander gestartet ist. Mit dem iPhone / iPad könnt ihr nun bequem die Verbraucher steuern. Dabei ist es egal, ob es eine Rolladensteuerung, eine Garagentorsteuerung, das Einschalten Eurer Kaffeemaschine usw. ist. Das Ein- und Ausschalten erfolgt via WLAN /VPN. Zur besseren Veranschaulichung habe ich den ganzen Prozess „mal eben“ auf ein Blatt Papier gescribbelt.

Das könnte Euch auch interessieren:

X10-Devices über die Synology DS212+ mit dem iPhone gesteuert

Die mobile Version verlassen