Fhem -> iTach IP2IR

Begonnen von BenWend, 08 Juni 2013, 19:59:20

Vorheriges Thema - Nächstes Thema

BenWend

Hallo,

hier ein Codeschnipsel, mit dem ihr euren iTach IP2IR mit Befehlen von FHEM versorgen könnt (wild zusammenkopiert).

itach.pl:

use IO::Socket::INET;

my ($socket,$client_socket);
$socket = new IO::Socket::INET (
    PeerHost => '192.168.178.51',
    PeerPort => '4998',
    Proto => 'tcp',
) or die "ERROR in Socket Creation : $!\n";

# send iTach command
$data = $ARGV[0]."\r\n";
$socket->send($data);
sleep (1);

$socket->close();

Die IP-Adresse müsst ihr noch anpassen.

Und so bindet ihr Geräte in die fhem.cfg ein - hier ein Beispiel anhand eines Apple TV.
 
Die "sendir"-Befehle könnt ihr z. B. selbst mit dem iTach im Lernmodus herausfinden oder ihr rechnet die
im Netz gefundenen Pronto-HEX-Codes mit iConvert (http://www.globalcache.com/downloads/) um. Die
API-Dokumentation des iTach findet ihr hier (http://www.globalcache.com/files/docs/API-iTach.pdf).

Wenn ihr den IR Emitter am ersten Anschluss habt, müsst ihr sendir,1:1 senden, beim zweiten Anschluss
sendir,1:2 usw. Im folgenden Beispiel hängt der IR_Emitter an Anschluss 2.

fhem.cfg:

#---- iTach ATV Schlafzimmer
define ATVSZ dummy
attr ATVSZ room iTach
attr ATVSZ setList up down left right play menu select
attr ATVSZ webCmd up:down:left:right:play:menu:select

define ATVSZ_up notify ATVSZ:up.* {system("perl /opt/fhem/FHEM/itach.pl sendir,1:2,1,38000,1,1,348,171,21,22,21,64,21,64,21,64,21,22,21,64,21,64,21,64,21,64,21,64,21,64,21,22,21,22,21,22,21,22,21,64,21,64,21,64,21,22,21,64,21,22,21,22,21,22,21,22,21,22,21,64,21,22,21,64,21,22,21,64,21,22,21,64,21,1467,347,86,21,760");;}

define ATVSZ_down notify ATVSZ:down.* {system("perl /opt/fhem/FHEM/itach.pl sendir,1:2,1,39000,1,1,348,172,21,22,21,63,21,63,21,63,21,22,21,63,21,63,21,63,21,63,21,63,21,63,21,22,21,22,21,22,21,22,21,63,21,63,21,22,21,63,21,63,21,22,21,22,21,22,21,22,21,22,21,63,21,22,21,63,21,22,21,63,21,22,21,63,21,1472,347,86,21,780");;}

define ATVSZ_left notify ATVSZ:left.* {system("perl /opt/fhem/FHEM/itach.pl sendir,1:2,1,39000,1,1,341,173,21,22,21,65,21,65,21,65,21,22,21,65,21,65,21,65,21,65,21,65,21,65,21,22,21,22,21,22,21,22,21,65,21,22,21,22,21,22,21,65,21,22,21,22,21,22,21,22,21,22,21,65,21,22,21,65,21,22,21,65,21,22,21,65,21,1562,347,86,21,780");;}

define ATVSZ_right notify ATVSZ:right.* {system("perl /opt/fhem/FHEM/itach.pl sendir,1:2,1,39000,1,1,348,172,21,22,21,63,21,63,21,63,21,22,21,63,21,63,21,63,21,63,21,63,21,63,21,22,21,22,21,22,21,22,21,63,21,63,21,63,21,63,21,22,21,22,21,22,21,22,21,22,21,22,21,63,21,22,21,63,21,22,21,63,21,22,21,63,21,1472,347,87,21,780");;}

define ATVSZ_play notify ATVSZ:play.* {system("perl /opt/fhem/FHEM/itach.pl sendir,1:2,1,38000,1,1,348,171,21,22,21,64,21,64,21,64,21,22,21,64,21,64,21,64,21,64,21,64,21,64,21,22,21,22,21,22,21,22,21,64,21,22,21,64,21,64,21,64,21,64,21,22,21,64,21,22,21,22,21,64,21,22,21,64,21,22,21,64,21,22,21,64,21,760");;}

define ATVSZ_menu notify ATVSZ:menu.* {system("perl /opt/fhem/FHEM/itach.pl sendir,1:2,1,39000,1,1,348,172,21,22,21,63,21,63,21,63,21,22,21,63,21,63,21,63,21,63,21,63,21,63,21,22,21,22,21,22,21,22,21,63,21,22,21,63,21,22,21,22,21,22,21,22,21,22,21,22,21,22,21,63,21,22,21,63,21,22,21,63,21,22,21,63,21,1559,347,86,21,780");;}

define ATVSZ_select notify ATVSZ:select.* {system("perl /opt/fhem/FHEM/itach.pl sendir,1:2,1,39000,1,1,348,172,21,22,21,63,21,63,21,63,21,22,21,63,21,63,21,63,21,63,21,63,21,63,21,22,21,22,21,22,21,22,21,63,21,63,21,22,21,63,21,63,21,63,21,22,21,63,21,22,21,22,21,63,21,22,21,63,21,22,21,63,21,22,21,63,21,1391,348,172,21,22,21,63,21,63,21,63,21,22,21,63,21,63,21,63,21,63,21,63,21,63,21,22,21,22,21,22,21,22,21,63,21,22,21,22,21,63,21,22,21,22,21,22,21,22,21,22,21,22,21,63,21,22,21,63,21,22,21,63,21,22,21,63,21,780");;}

Auf diese Weise können alle Geräte, die mit einer IR-Fernbedienung bedient werden können und am iTach hängen in die Hausautomation eingebunden werden.

Schöne Grüße

Ben

UliM

Hi,
cooles Ding, scheinbar ne Alternative zum FS20-IRF.
Das mit den 3 Emittern versteh ich noch nicht. Könntest Du bitte etwas die Funktionalität beschreiben?
Warum 3 Emitter? Wieviele Sequenzen (also "Tastendrücke") kann man in dem Ding speichern, gehen Makros, woher kommen die o.g. kryptischen Sequenzen.
Hab's nach kurzem surfen auf der Herstellerseite noch nicht verstanden...
Danke+Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

BenWend

#2
Hallo Uli,

ich kann es gerne versuchen - hoffentlich ist es einigermaßen verständlich:

1.) Die Hardware:

Der iTach ist mit einem Netzwerkkabel oder wahlweise per WLan mit dem Heimnetzwerk verbunden. Von hier aus erhält der iTach seine Befehle über TCP/IP.

Der iTach verfügt über drei Ausgänge für Klinkenanschlüsse (erkennt man auf diesem Bild ganz gut - im roten Bereich: http://www.globalcache.com/products/itach/ip2ir-pspecs/).

An jeden dieser Klinkenanschlüsse kann ein IR-Emitter angeschlossen werden. Der jeweiligen IR-Emitter kann dann auf den IR-Empfänger des zu steuernden Gerätes (TV, TV-Receiver, AV-Receiver, Beamer, IR-gesteuerte Leinwand, Apple TV, etc.) geklebt werden. Eine normale Fernbedienung funktioniert weiterhin.

Alernativ kann auch ein IR-Blaster an einen der Ausgänge angeschlossen werden. Der IR-Blaster wird dann im Raum positioniert und kann mehrere Geräte auf einmal steuern, ohne dass etwas ans Gerät geklebt werden muss. Zur besseren Vorstellung: Auf diesem Bild (https://www.smarthome.com/images/81186side1big.jpg) sieht man neben dem iTach auch drei einzelne IR-Emitter und einen IR-Blaster.

Man kann das ganze auch etwas auf die Spitze treiben und z. B. diese IR-Emitter anschließen (http://www.amazon.com/Next-Generation-Infrared-Control-Extender/dp/B001AZPZTK/ref=pd_sim_sbs_e_2/190-3671902-3318655) oder die Kabel um z. B. 15m verlängern, etc. 

2.) Die Funktionsweise:

Der iTach selbst speichert keine Codes und keine Sequenzen und auch keine Makros.

Er ist zwingend darauf angewiesen, Befehle aus dem Netzwerk über TCP/IP zu bekommen. Diese setzt der iTach dann jeweils in IR-Befehle um und gibt diese am jeweiligen Klinkenausgang aus.

Das bedeutet, dass es keine Begrenzung der Codes, Sequenzen oder Makros gibt.

Das längste meiner Makros schaltet z.B. die Deckenlampe im Wohnzimmer an, die Bodenlampen im Wohnzimmer an, alle andere Lampen im Wohnzimmer und meine Außenbeleuchtung aus, schaltet AV-Receiver, Apple TV und Beamer ein, stellt alles aufeinder ein und fährt die Beamerleinwand herunter. Kurz bevor die Beamerleinwand heruntergefahren ist dimmt die Deckenlampe im Wohnzimmer auf null und ist in der Sekunde abgeschaltet, in der die Leinwand vollständig heruntergefahren ist. Der Kinoabend kann beginnen (Update: Hier ein kurzes Video http://forum.fhem.de/index.php/topic,22747.0.html). Insgesamt steuere ich mit zwei iTachs über zehn Geräte auf zwei Etagen und jedes dieser Geräte hat eine ganze Reihe von Befehlen.

3.) Von wo aus dem Netzwerk kommen die TCP/IP Befehle, die der iTach umwandelt?

a) Bisher habe ich den iTach als Universalfernbedienung benutzt, und mit einer App angesprochen, die auf iOS und Android läuft. Die App heißt iRule und ist unheimlich mächtig. Darüber habe ich im Moment auch das o.g. Kinoabendmakro realisiert.

[Kleiner Einschub zu einem anderen Thema: Mit iRule ist es auch möglich FHEM zu steuern! Wie das aussehen kann, habe ich hier kurz angerissen: http://forum.fhem.de/index.php?t=tree&th=13177&goto=80846&rid=0].

b) Die Befehle, die aus dem Netzwerk an das iTach gehen und in IR-Signale umgewandelt werden, können aber auch von FHEM gesendet werden. Mit dem Script im ersten Beitrag kann z.B. der Apple TV Cursor bedient werden.

Hier ist viel mehr denkbar. FHEM kann anstelle von iRule als Universalfernbedienung verwendet werden. Mir kam es allerdings mehr darauf an, meine IR-Geräte in die Hausautomation als Aktoren einzubinden. Alle Sensoren und Plugins, die derzeit mit FHEM verbunden sind, können jetzt genutzt werden, um meine IR-Geräte detailliert anzusteuern. Sehr lustig ist dies z.B. in Verbindung mit dem FHEM-SiriProxy. Denkbar ist es auch, alle IR-Geräte im Wohnzimmer abzuschalten, die Leinwand hochzufahren und das Licht auszuschalten, wenn länger als "x" Minuten keine Bewegung im Wohnzimmer festgestellt wird, etc. 

4.) Woher kennt man die jeweiligen TCP/IP Befehle?

Da gibt es mehrere Möglichkeiten.

a) Zum einen verfügt der iTach selbst auch noch über einen IR-Empfänger, über den IR-Befehle angelernt bzw. ausgelesen werden können. Dazu geht man wie folgt vor: Man öffnet am PC ein Programm (iLearn: http://www.globalcache.com/downloads/) und teilt diesem die IP-Adresse des iTach mit. Die IR-Signale, die der iTach dann von der Originalfernbedienung erhält (das Zielen auf den IR-Empfänger ist allerdings etwas fummelig), werden am PC im Programm iLearn angezeigt. Und das ist dann genau die o.g. kryptische Zeichenfolge "sendir......".

b) Noch viel einfacher ist aber folgender Weg: Es gibt im Internet eine ganze Menge Datenbanken, die bereits angelernte IR-Befehle gespeichert haben - meistens für Pronto Fernbedienungen (z.B.: http://files.remotecentral.com/). Hier lädt man sich einfach die entsprechenden Befehle seiner IR-Geräte (z.B. für den LG Fernseher) herunter, wandelt diese über ein Programm (iConvert: http://www.globalcache.com/downloads/) in die kryptische iTach Zeichenfolge um und kann diese dann in der FHEM-Config einbinden.

Ich glaube, dass man mit FHEM im Zusammenspiel mit dem iTach richtig nette Sachen machen kann. Ich habe allerdings noch nicht die Zeit gehabt, die Grenzen auszutesten.

Schöne Grüße

Ben