Merchandise und Technik

Passend zum noch nicht vorhandenen Winter habe ich mir für ein paar Euro aus China eine NGE-Wollmütze bestellt. Der Stoff ist nicht sonderlich dick (der Winter aber bisher auch nicht sonderlich kalt) und der Aufdruck hat nur mäßige Qualität, ist aber für den Preis völlig akzeptabel.

Nun zur Technik:

Ich benutze meinen PC sowohl zum arbeiten am Schreibtisch, als auch um auf dem Sofa Filme zu schauen. Bisher musste ich immer eine Menge Befehle von Hand ausführen um die Ausgabegeräte umzuschalten.

  • Monitor umschalten von DVI auf HDMI (Windowstaste +P)
  • Audiowiedergabegerät umschalten von Analog auf Digital
  • LED-Steuerungssoftware starten
  • Infrarotfernbedienung um den TV einzuschalten
  • Infrarotfernbedienung um den Digitalreceiver einzuschalten

Das wurde mir auf die Dauer zu umständlich, also habe ich nach einem einfacheren Weg gesucht. Als estes habe ich mir die Kommandozeilensoftware nircmd heruntergeladen und mir ein *.ncl Script mit folgendem Befehl angelegt:

setdefaultsounddevice „Digitalaudio (S/PDIF)“

Damit entfällt schon mal das manuelle umschalten des Audioausgangs. Als nächstes habe ich eine Lösung für die Bildschirmausgabe gesucht. In Windows 7 gibt es die Hotkeykombination Windowstaste+P um ein schönes Onscreen-Menü aufzurufen, das die verschiedenen Monitormodi auflistet. Da ich aber den Umschaltvorgang gerne im Hintergrund ausgeführt hätte, habe ich mich im Windows-Verzeichnis umgesehen. Denn Windowstaste+P ruft nämlich einfach nur das Programm Displayswitch.exe im System32 Ordner auf. Nach kurzer Experimentierphase bin ich darauf gekommen, die EXE einmal mit Parametern auszuführen, und siehe da, die Zahlen 1 bis 4 stehen für die verschiedenen Modi die Windows anbietet. So stand die nächste Zeile für das nircmd-Script fest.

exec hide „C:\Windows\System32\Displayswitch.exe“ 1

Wobei „exec hide“ das Programm im Hintergrund ausführt und die „1“ bei mir der HDMI-Ausgang ist. Die LED-Steuerungssoftware für die Hintergrundbeleuchtung meines TVs stellte dann keine große Hürde mehr da, denn die Kommandozeilenfunktionen des Programms sind relativ gut dokumentiert.

exec hide „C:\Program Files (x86)\atmoWin\AtmoWin_16x9.exe“

Hiermit wird die Software im Hintergrund gestartet und mit der nächsten Befehlszeile, die ich zur Sicherheit eingebaut habe wird die Ausgabe des Programms auf die Live-Bild-Analyse gesetzt.

exec hide „C:\Program Files (x86)\atmoWin\AtmoCtrl.exe“ -effect live

Fehlen also nur noch die beiden Infrarotbefehle für den TV und den Receiver. Dabei bin ich um zusätzliche Hardware nicht herumgekommen. Bei der Suche nach einem billigen USB-Infrarot-Sender/Empfänger bin ich auf das USB Infrared Toy gestoßen, das man hier für 19,50$ erwerben kann. Die Hardware ist kompatibel mit der Open-Source-Software winlirc. Für meinen TV existiert bereits ein Fernbedienungs-Preset. Nach einem Firmware Update der Hardware auf v21 ließen sich die Infrarotbefehle für meinen Teufel-Digitalreceiver auch problemlos aufnehmen. Nun musste ich nur noch die richtigen Kommandozeilenparameter heraussuchen.

exec hide „C:\Program Files (x86)\WinLIRC\Transmit.exe“ PHILIPS PwrTV 8

exec hide „C:\Program Files (x86)\WinLIRC\Transmit.exe“ TEUFEL PwrReceiver 0

Mit etwas Feintuning in der Reihenfolge der Befehle und dem Einfügen einer Wartezeit zwischen den beiden Infrarotsignalen war das kurze nircmd-Script zum umschalten von PC -> TV komplett.

exec hide „C:\Program Files (x86)\WinLIRC\Transmit.exe“ PHILIPS PwrTV 8
cmdwait 1000 exec hide „C:\Program Files (x86)\WinLIRC\Transmit.exe“ TEUFEL PwrReceiver 0
setdefaultsounddevice „Digitalaudio (S/PDIF)“
exec hide „C:\Windows\System32\Displayswitch.exe“ 1
exec hide „C:\Program Files (x86)\atmoWin\AtmoWin_16x9.exe“
exec hide „C:\Program Files (x86)\atmoWin\AtmoCtrl.exe“ -effect live

Die umgekehrte Variante des Scripts TV -> PC sieht ähnlich aus.

exec hide „C:\Program Files (x86)\atmoWin\AtmoCtrl.exe“ -effect none -color 0 0 0
wait 500
closeprocess AtmoWin_16x9.exe
setdefaultsounddevice „Lautsprecher“
exec hide „C:\Windows\System32\Displayswitch.exe“ 4
exec hide „C:\Program Files (x86)\WinLIRC\Transmit.exe“ TEUFEL PwrReceiver 0
cmdwait 1000 exec hide „C:\Program Files (x86)\WinLIRC\Transmit.exe“ PHILIPS PwrTV 8

Für die beiden Scripts habe ich noch Verknüpfungen angelegt und diese an die Taskleiste geheftet, damit lässt sich nun in Windows 7  mit Windowstaste+1 auf den PC bzw. Windowstaste+2 auf den TV umschalten.

Für die Platine habe ich bei Conrad noch ein Plastikgehäuse gekauft und mich dann auf die Suche nach einem geeigneten Aufstellungsort für den Infrarotsender gemacht. Die verbaute IR-LED hat anscheinend keine besonders gute Reichweite, denn ich kam auf maximal 1,5m bis 2m. Deshalb bot sich bei mir nur einer meiner hinteren Säulenlautsprecher an, auf den ich mit doppelseitigem Klebeband das Gehäuse fixiert habe. Alles in allem mit Hardware- und Software-Setup hat mich das ganze etwa 25€ und 5h Arbeitszeit gekostet.

11 Antworten to “Merchandise und Technik”

  1. pat Says:

    wie kann ich meine ir-befehle mit der Transmit.exe senden ?

    • kelondir Says:

      Zuerst drei Punkte, die funktionieren müssen damit es mit der Transmit.exe klappt (falls du schon bei einem der drei Punkte Probleme hast, schreib einfach einen weiteren Kommentar):

      1. Software: Die Winlirc Software muss im Hintergraund laufen, damit die Transmit.exe funktioniert. Ich habe dazu einfach eine Verknüpfung mit der winlirc.exe im Autostart-Ordner angelegt.

      2. Hardware: Dein Infrarot-Sender ist eingesteckt und winlirc erkennt ihn.

      3. Konfiguration: du besitzt für die IR-Geräte die du bedienen willst eine passende remote.cf Datei. Die IR-Befehle müssen auch schon funktionieren, wenn du sie manuell über die GUI von winlirc ausführst.

      Sollte das alles schon klappen ist der Rest auch kein Problem mehr.
      In der remote.cf Datei stehen alle Befehle drin, die winlirc im Moment verwenden kann. Du brauchst für die Transmit.exe zwei Angaben aus der remote.cf. Nach der Zeile „begin remote“ steht der Name der Fernbedienung, in meinem Fall für den Fernseher z.B. „PHILIPS“ ein paar Zeilen weiter unten nach „begin codes“ stehen dann die einzelnen Codes die er für diese Fernbedienung kennt, wieder als Beispiel „name PwrTV“. Der Kommandozeilenbefehl für die Transmit.exe lautet allgemein:
      \\Programmpfad\Transmit.exe „Name der Fernbedienung“ „Name des auszuführenden Codes“ „Anzahl der Wiederholungen, wie oft der Code gesendet wird. z.B. 0 = keine Wiederholung, Code wird nur 1 mal gesendet; 4 = der Code wird insgesamt 5 mal gesendet“
      im konkreten Fall lautet also der Befehl zum an-/ausschalten meines Fernsehers:
      „C:\Program Files (x86)\WinLIRC\Transmit.exe“ PHILIPS PwrTV 4

      Ich hoffe, das hilft dir etwas weiter, wenn du noch Fragen hast, schreib einfach noch einen Kommentar.

  2. patrick Says:

    irgendwas passt noch nicht zusammen:/

    habe eine „1.cf“ mit winlirc0.9.0e erstellt drin steht:


    # Please make this file available to others
    # by sending it to
    #
    # this config file was automatically generated
    # using lirc-0.9.0(IRToy) on Mon Dec 24 16:49:14 2012
    #
    # contributed by
    #
    # brand: 1
    # model no. of remote control:
    # devices being controlled by this remote:
    #

    begin remote

    name 1
    bits 16
    flags SPACE_ENC|CONST_LENGTH
    eps 30
    aeps 100

    header 8891 4470
    one 545 1661
    zero 545 545
    ptrail 544
    pre_data_bits 16
    pre_data 0xFF
    gap 107006
    toggle_bit_mask 0x0

    begin codes
    power 0x02FD
    rot 0x02FD
    blau 0xA25D
    end codes

    end remote

    (power versehentlich zweimal gemacht :3)

    eine bat angelegt mit:

    @echo off
    start C:\Winlirc\Transmit.exe 1 power 0

    passiert nix, die led leuchtet nicht vom toyV2

    pfad stimmt alles! im winlirc geht das senden !

    wo ist mein fehler ?

    frohes fest….

    • kelondir Says:

      Ich weiß gerade nicht, wozu das „start“ in deiner Batch-Datei dienen soll. Vorausgesetzt Winlirc läuft schon gestartet im Hintergrund sollte es funktionieren, wenn der Batch-Inhalt so lautet:

      @echo off
      C:\Winlirc\Transmit.exe 1 power 0

      • patrick Says:

        jup läuft im hintergrund und sogar „1“ als remote ausgewählt nur mit der bat lässt sich nix senden auch nicht ohne „start“ :p

  3. kelondir Says:

    Ich hab mal etwas herumprobiert; liegt die *.bat bei dir im selben Verzeichnis wie WinLIRC.exe/Transmit.exe? Verschiebe mal die Batch-Datei in ein anderes Verzeichnis z.B. C:\ und führe sie dann aus. Ich kenne zwar den Grund noch nicht, aber sobald meine *.bat im WinLIRC Verzeichnis lag, hat sie nicht mehr funktioniert, habe ich die selbe Datei wo anders hinkopiert lief sie wieder einwandfrei.

  4. patrick Says:

    geht soweit alles ganz gut,… etwas umständlich das alle geräte in einer *.cf sein müssen um sie zu batchen, auch etwas nich so toll, dass wenn man die ir-codes hat nicht einfach in eine reinschrieben kann jedenfalls funktioniert das bei mir nicht kannst du das bestätigen ?

    • kelondir Says:

      Ich habe auch alle Geräte in einer *.cf zusammengefasst. Es ist schon eine Weile her, dass ich meine remote.cf erstellt habe, aber wenn ich mich recht erinnere habe ich den Inhalt einer heruntergeladenen *.cf und einer selbsterstellten *.cf zusammenkopiert und es hat funktioniert. Jede einzelne Fernbedienung sollte zwischen einem „begin remote“ und „end remote“ stehen, bei mir z.B. 2 remotes „PHILIPS“ und „TEUFEL“.

      #
      # this config file was automatically generated
      # using lirc-0.8.2(default) on Wed Dec 9 15:28:42 2009
      #
      # contributed by
      #
      # brand:
      # model no. of remote control:
      # devices being controlled by this remote:
      #

      begin remote

      name PHILIPS
      bits 8
      flags RC6|CONST_LENGTH
      eps 30
      aeps 100

      header 2718 844
      one 478 408
      zero 478 408
      pre_data_bits 13
      pre_data 0xEFF
      gap 106540
      min_repeat 1
      toggle_bit_mask 0x10000
      rc6_mask 0x10000

      begin codes
      PwrTV 0xF3
      end codes

      end remote

      begin remote

      name TEUFEL
      flags RAW_CODES
      eps 30
      aeps 100

      gap 96553

      begin raw_codes

      name PwrReceiver
      9066 4458 618 490 618 469
      639 490 618 490 618 469
      639 1621 618 469 639 490
      618 1621 639 1621 618 1621
      618 1621 639 1621 618 469
      639 1621 618 1599 618 490
      618 1599 618 490 618 1599
      618 490 618 469 639 490
      618 490 618 1599 618 490
      618 1599 618 490 618 1599
      618 1599 639 1621 618 1599
      618 40021 9066 2197 618

      name Vol+
      8981 4543 575 511 597 511
      554 554 575 511 597 511
      554 1663 597 511 554 554
      575 1663 554 1663 597 1642
      575 1663 554 1663 597 511
      554 1663 597 1663 575 1663
      554 554 575 1663 554 554
      575 1663 554 554 575 1663
      554 554 575 511 597 1663
      575 511 597 1663 575 511
      597 1663 575 511 597 1663
      575 40063 8981 2261 597

      name Vol-
      9002 4522 575 554 554 533
      597 511 575 554 575 533
      597 1663 575 533 597 511
      575 1663 597 1663 554 1663
      575 1663 597 1642 575 533
      597 1642 575 1642 597 533
      575 511 618 511 597 1663
      597 1642 575 490 618 511
      597 533 575 1642 597 1642
      618 1642 597 490 618 511
      597 1642 618 1642 597 1642
      597 40042 9045 2239 597

      end raw_codes

      end remote

      Was genau meinst du mit „die ir-codes haben“? Wenn du Angaben vom Hersteller hast, keine Ahnung wie man die in WinLirc-Codes übersetzt. Bei heruntergeladenen/selbsterstellten *.cf Dateien sollte Copy&Paste gehen, man darf halt nicht vergessen auch die Daten zur Remote mitzukopieren und nicht nur die Codes alleine.

  5. patrick Says:

    vielen dank klappt alles sehr gut !

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s


%d Bloggern gefällt das: