:: fischer-net.de

Lange Zeit war es ruhig um myHCE..

Zwar habe ich in der Zwischenzeit noch keine Zeit gefunden myHCE weiter zu entwickeln, dennoch habe ich gestern etwas mit meinen dBoxen experimentiert...

Irgendwie trieb mich die Motivation das Funk-Haussteuerungssystem FS20 von ELV auch direkt über meinen Fernseher steuern zu können. Angeregt durch das dBox-Plugin Ebay-Wap-Suche, suchte ich einen Weg FHEM von Rodulf Koenig über die d-box anzusteuern.

So entstand die myHCE dbox-Edition. Für alle Interessierten beschreibe ich im folgendem Abschnitt die Umsetzung.

Das Beispiel kann im Bereich Downloads heruntergeladen werden.

 

Übersicht

myHCE dbox-Edition ist ein Plugin für die dBox zur Steuerung des Funk-Haussteuerungssystem FS20 von ELV. Die hier vorgestellte Lösung stellt eine mögliche Konfiguration dar. Diese ist den eigenen Ansprüchen entsprechend anpassbar.

 

Voraussetzungen

Zur Steuerung benötigt myHCE dbox-Edition folgende Komponenten:

  • Eine dBox2 mit neutrino, z.b. Yadi (getestet mit 2.2.05)
  • Die Plugins Flexmenü (shellexec) und New-Tuxwetter (tuxwetter)
  • Eine funktionierende Installation von FHEM
  • Optional ein Tool zur Erzeugung von Graphen. Zum Beispiel: myHCE, Cacti, pgm3 Webfrontend für FHEM

 

Screenshots

Die Bilder zeigen die Integration in das dBox-Feature Menü. Mit Hilfe des FlexMenüs werden die Untermenüs dargestellt. Die eigentliche Logik ist in einem kleinem Bash-Script.

dbox Feature Menu (blaue Taste)dbox Feature Menu

dbox Flexmenudbox Flexmenu

myHCE dbox-Edition HauptmenümyHCE Hauptmenü

myHCE dbox-Edition SchaltvorgangmyHCE Schaltvorgang

myHCE dbox-Edition RaumsteuerungmyHCE Raumsteuerung

myHCE dbox-Edition RaumauswahlmyHCE Raumauswahl

myHCE dbox-Edition Auswahl StatistikmyHCE Auswahl Statistik

myHCE dbox-Edition HeizkurvemyHCE Graph Heizkurve

 

 

Installation

Auf die Installation der benötigten Plugins shellexec sowie tuxwetter wird nicht im Detail eingegangen. Es gibt zahlreiche Wiki's bzw. Foren die sich ausführlich damit befassen. Eine gute Quelle ist z.B. das TuxBoxWiki sowie das Jack the Grabber Forum. Im Wesentlichen spielt sich die Installation in den Verzeichnissen /var/tuxbox/config, /var/tuxbox/plugins und /var/plugins ab.

 

Individuelle Umgebung

Meine dBoxen greifen über das Netzwerk auf einen NFS-Server zu. Da der Speicherplatz der dBox begrenzt ist, binde ich das Verzeichnis /var/plugins über eine Freigabe des NFS-Server ein.

Physikalisch liegen also die Dateien in diesem Verzeichnis auf dem Server. Neben der Speicherplatzersparnis bietet es noch die Möglichkeit, ohne telnet-Login auf der dBox, Anpassungen direkt in einer bash an den Plugins vorzunehmen.

 

Shellexec

Damit die Haussteuerung gestartet werden kann, muss die Datei shellexec.conf um die folgende Zeile ergänzt werden (alles in einer Zeile):

ACTION=&Haussteuerung,( /var/plugins/myHCE.sh makemainmenu;if [ -f /tmp/myHCE_main.inc ] ; then /var/plugins/shellexec /tmp/myHCE_main.inc;rm /tmp/myHCE*; else msgbox popup='Fehler bei der Ausfuehrung' timeout=5; fi ) 

 

myHCE dbox-Edition

myHCE dbox-Editon besteht aus zwei Dateien. Zum einen die von der dBox benötigte Plugin-Konfigurationsdatei und zum anderen das eigentliche Plugin, welches ein reines Shell-Script ist. Beide Dateien liegen bei mir in /var/plugins und mittels symbolischen Link nochmal in /var/tuxbox/plugins.

Inhalt der Datei /var/plugins/myHCE.cfg:

type=0
name=myHCE
desc=Haussteuerung
needfb=1
needrc=1
needlcd=1
needoffs=1

Das eigentliche Plugin myHCE.sh befindet sich ebenfalls im Verzeichnis /var/plugins. An dieser Stelle führe ich nur ein paar Ausschnitte auf, um die Funktion zu erklären.

#!/bin/sh
#
# myHCE.sh - myHCE dbox-Edition # Copyright (C) 2008 Martin Fischer

[...]

Im Abschnitt Konfiguration werden die Pfade zu den Hilfsprogrammen, bzw. benötigten Plugins definiert. Wichtig ist hier die richtige Pfadangabe.

########################################
# Konfiguration
# Hilfsprogramme
msgbox="/bin/msgbox"
shellexec="/var/plugins/shellexec"
tuxwetter="/var/plugins/tuxwet/tuxwetter

Die IP-Adresse, sowie der Port des FHEM-Servers muss konfiguriert werden. Es gilt auch zu beachten, das FHEM so konfiguriert ist, das ein Zugriff nicht nur von localhost stattfinden kann.

# FHEM-Server
fhem="192.168.1.100"
port="7072"

Dieser Abschnitt ist eigentlich nur für meine persönlichen Zwecke und spart mir im weiteren Script Tipparbeit :-) Der Graph-Server erzeugt, wie der Name bereits sagt, Graphen, die ich mir mit der dBox ansehen kann.

Weiterhin überwache ich eine meiner Garagen und möchte mir das Live-Bild auf dem Fernsehen ansehen können.

########################################
# persönliche Einstellungen
#
# Graph-Server
intranet="192.168.1.5"
graphs="http://${intranet}/cactigraphs/graphs"

# Webcam
cam_img="http://192.168.1.111/still.jpg"

In diesem Abschnitt wird das eigentliche Menü erzeugt. Eine ausführliche Beschreibung über den Aufbau, sowie die Funktion kann in der readme.txt des benötigten Plugins shellexec entnommen werden.

Damit ich schnell und ohne Umwege häufig benötigte Aktoren direkt schalten kann, habe ich diese an den Anfang des Menüs gelegt.

########################################
# Hauptmenu erzeugen
# Include-Datei fuer Hauptmenue
mainmenu="/tmp/myHCE_main.inc"

mainmenu() {
echo "
FONT=/share/fonts/micron_bold.ttf
FONTSIZE=18
LINESPP=11
MENU=myHCE dbox-Edition
COMMENT=SHORTCUTS
ACTION=&Esszimmer - Beleuchtung, $0 toggle es_licht
ACTION=&Schlafzimmer - Fernseher, $0 toggle sz_tv
ACTION=&Wohnzimmer - Beleuchtung, $0 toggle wz_licht
ACTION=&Wohnzimmer - Deckenlicht, $0 toggle wz_dimm
COMMENT=*

Als nächstes erzeuge ich das Untermenü "Raumsteuerung" in dem sich wiederum weitere Untermenüs mit den eigentlichen Räumen befinden. Als Beispiel ist hier der Raum "Büro" aufgeführt.

Dieses Menü beinhaltet z.B. einen Eintrag zum Schalten aller diesem Raum zugeordneten Aktoren aber auch einen weiteren Eintrag zur direkten Steuerung des Druckers.

Der letzte Eintrag ermöglicht das Anzeigen des auf dem oben erwähnten Graph-Server erzeugten Graphen. In diesem Beispiel wird die Heizkurve grafisch dargestellt, wie es auf dem letzten Screenshot zu sehen ist.

MENU=Raumsteuerung
MENU=B~uro
ACTION=&~BAlle Aktoren, $0 toggle bu_alles
COMMENT=*
ACTION=&Drucker, $0 toggle bu_drucker
COMMENT=*
ACTION=&Heizkurve, $0 viewpic PICTURE='B~uro,|PNG300|${graphs}/graph_19_5.png'
ENDMENU

Abschliessend wird das Untermenü "Raumsteuerung" wieder beendet und ein weiterer Eintrag im Hauptmenü am Ende dargestellt. Hier lasse ich mir das Bild einer Kamera anzeigen.

ENDMENU
ACTION=&Livebild Tiefgarage, $0 viewpic PICTURE='Tiefgarage,|JPG10|${cam_img}'
ENDMENU
" > $mainmenu
}

Das ganze Menü wird schließlich in eine Datei geschrieben, damit es beim Aufruf vom FlexMenü eingebunden werden kann.

Diese Funktion regelt die eigentliche Steuerung über FHEM. Jeder entsprechende Menüeintrag (siehe oben) übergibt den Namen, so wie er in fhem.conf festgelegt wurde.

Zur Zeit muss der Name noch selbst ausgelesen und dem jeweiligen Menüpunkt zugefügt werden. Beim Aufruf erscheint ein Requester in dem gewählt werden kann, ob der Aktor an oder aus geschaltet werden soll. Die getroffene Auswahl wird dann per netcat an FHEM gesendet.

########################################
# FHEM Steuerung
toggle() {
actor="$1"
msgbox title="$1" size=32 order=2 absolute=1 select="an,aus" msg="Auswahl:"
case $? in
0) return 1 ;;
1) toggle="on" ;;
2) toggle="off" ;;
esac
echo "set $actor $toggle" | nc $fhem $port
}

Diese kleine aber feine Funktion regelt die Anzeige der Bilder. Dazu wird einfach das Plugin tuxwetter mit den entsprechenden Parametern aufgerufen.

########################################
# Bild anzeigen
viewpic() {
img="$1"
$tuxwetter $img
}

Zu guter Letzt der eigentliche Start des Scriptes :-)

########################################
# Start

case "$1" in
mainmenu) mainmenu ;;
toggle) toggle "$2" ;;
viewpic) viewpic "$2" ;;
esac

exit 0

 

To do

Aktuell müssen die Namen, sowie die Räume noch manuell aus der FHEM-Konfiguration entnommen werden. Es wäre denkbar und auch wünschenswert, wenn diese über xmllist ausgelesen werden und dann das Menü dynamisch erzeugt wird.

Ich habe erste Versuche unternommen, allerdings verlangsamt dieses den Aufbau des Menüs zu sehr, da im Hintergrund mittels awk und sed doch einiges an Aufwand betrieben werden muss. Leider zählt die dBox2 ja bekanntlich nicht zu den schnellsten Set-Top-Boxen.

Vielleicht fallen mir auch noch andere Möglichkeiten ein, was ich mit myHCE dbox-Edition noch so anstellen kann. Für meine Zwecke reicht es im Moment erst mal aus. Selbst meine Frau konnte ich davon überzeugen - und das mag was heißen :-)

Viel Spaß mit myHCE dbox-Edition!

Powered by ...

 

 

reichelt elektronik – Elektronik und PC-Technik