Ankündigung

Einklappen
Keine Ankündigung bisher.

Onkyo Receiver im LAN/am Bus

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Onkyo Receiver im LAN/am Bus

    Hallo --

    Ich habe einen Onkyo TX-NR609 A/V-Receiver im Wohnzimmer. Das Gerät hat Zone-2-Anschlüsse, mit denen ich kleine Lautsprecher im Essbereich speise - so kann ich dort Musik hören, ohne eine zusätzliche Installation zu brauchen.

    Weil das mit der Fernbedienung allerdings unpraktisch ist, suchte ich einen Weg, über einen KNX-Taster die Zone-2-Lautsprecher einzuschalten und die Lautstärke zu verändern.

    Der Receiver hat - wie wohl einige andere aktuelle Onkyo-Modelle - einen Netzwerkanschluss, der Befehle im ISCP-Format entgegen nimmt. Man kann den Receiver so konfigurieren, dass er auch im ausgeschaltetem Zustand auf Befehle reagiert und Statusmeldungen ausgibt.

    Um das jetzt auf meinem raspberry pi mit linknx zu nutzen, habe ich mir ein kleines perl-Programm zusammengestückelt, das eine Verbindung zum Receiver aufrechterhält, das Statusmeldungen liest und Befehle entgegennimmt.

    Die Logik ist recht banal: das Programm nimmt auf localhost port 60128 Befehle entgegen und schickt sie weiter an den Receiver. Die Befehle schicke ich aus linknx als shell-cmd.

    So bewirkt z.B. ein "echo 'ZPW01' | nc localhost 60128", dass der Zone-2-Verstärker eingeschaltet wird, oder ein "echo 'ZVLUP' | nc localhost 60128" regelt die Lautstärke einen Tick höher.

    Ich kann also eine Linknx-Rule auf eine Taster-GA legen, und darüber den Verstärker ansprechen.

    Parallel hört das Programm auf Statusmeldungen des Receivers, und setzt je nach Aktion GA's. Der Receiver bestätigt nicht nur, was er über's Netz bekommt, sondern auch Einstellungen per FB bzw am Gerät selbst. Die Meldungen und Befehle sind meist in einen Identifier und einen Wert aufgeteilt, so kriegt man auf obiges "ZVLUP" eine Statusmeldung der Art "ZVL35" zurück - ZVL steht für Zone 2 Volume, 35 ist der aktuelle Wert. Man kann auch ein "ZVLQSTN" (Question) schicken und kriegt die gleiche Meldung als Statusmeldung. Diese Meldungen lösen wiederum Shellbefehle aus, die bei mir Werte auf GA's schreiben.

    Wozu das Ganze?

    Der KNX-Taster ist bestellt, aber ich schalte den Verstärker schon per Visu ein/aus. Ich wechsle auch die Source, stelle die Lautstärke ein und mute. Sobald der Taster da ist, kann ich meine Zone-2-Lautsprecher bequem vom Essbereich aus schalten.

    Ausserdem werde ich je nach Source-Wahl am Receiver Steckdosen schalten: der Subwoofer wird mit dem Receiver geschaltet, die XBox meiner Frau mit dem hohen Standby-Verbrauch kriegt nur dann Strom, wenn der Receiver die jeweilige Source aufruft, und auch der xbmc-client wird nur bei Bedarf geschaltet.

    Der Receiver selbst kommt übrigens stromlos, wenn niemand zuhause oder alle im Bett sind: der Standby-Verbrauch bei eingeschaltetem Ethernetport ist nämlich recht hoch. Er nimmt das nicht übel, sondern fährt beim Strom-Einschalten da weiter, wo er aufgehört hatte. Das Script restarte ich beim Strom-Einschalten, damit es die Verbindung neu aufbaut.

    Ich hab' das Script mal angehängt, man muss eigentlich nur IP-Adresse und Port setzen, und dann shell-Befehle, die von den Statusmeldungen ausgelöst werden sollen definieren.

    Mein iscp.pl script:
    Code:
    #!/usr/bin/perl -w
    
    use strict;
    use IO::Socket;
    
    
    my $host =  '192.168.4.52';
    my $port = '60128';
    
    my $logfile = '/var/log/iscp.log';
    
    my %actions = (
    "PWR00", '/usr/local/bin/groupwrite "ip:127.0.0.1" "3/3/0" "0"',
    "PWR01", '/usr/local/bin/groupwrite "ip:127.0.0.1" "3/3/0" "1"',
    "ZPW00", '/usr/local/bin/groupwrite "ip:127.0.0.1" "3/3/2" "0"',
    "ZPW01", '/usr/local/bin/groupwrite "ip:127.0.0.1" "3/3/2" "1"',
    "MVL", '/usr/local/bin/groupswrite "ip:127.0.0.1" "3/3/1" "VALUE"',
    "ZVL", '/usr/local/bin/groupswrite "ip:127.0.0.1" "3/3/3" "VALUE"',
    "SLI", '/usr/local/bin/groupswrite "ip:127.0.0.1" "3/3/5" "VALUE"',
    "SLZ", '/usr/local/bin/groupswrite "ip:127.0.0.1" "3/3/6" "VALUE"'
    );
    
    
    
    
    
    # --------------------------
    # nothing to edit after this
    # --------------------------
    
    # daemonize
    
    my $pid= fork();
    exit if $pid;
    die "Couldn't fork: $!" unless defined($pid);
    
    for my $handle (*STDIN,*STDOUT,*STDERR){
    open($handle, "+<", "/dev/null") || die "can't reopen $handle to /dev/null: $!";
    }
    
    use POSIX;
    POSIX::setsid() or die "Can't start a new session: $!";
    
    my $time_to_die=0;
    
    sub signal_handler {
    $time_to_die=1;
    }
    
    $SIG{INT}=$SIG{TERM}=$SIG{HUP}=\&signal_handler;
    
    until ($time_to_die) {
    
    
    
    my $sock = new IO::Socket::INET(
                       PeerAddr => $host,
                       PeerPort => $port,
                       Proto    => 'tcp');
    $sock or die "no socket :$!";
    $sock->autoflush(1);
    
    my $socklocal = new IO::Socket::INET(
                        LocalPort => $port,
                        Type => SOCK_STREAM,
                        Listen => 5,
                        Reuse => 1 );
    
    $socklocal or die "no socket :$!";
    
    my($kid,$line,$cmd,$length,$code,$in);
    die "fork fail: $!" unless defined($kid = fork);
    if ($kid) {
        while (my $client=$socklocal->accept) {
            $in=<$client>;
            $cmd="!1".$in;
            $length=length($cmd)+1;
            $code =chr($length);
    
            # setup the string we are sending ...
            $line  = "ISCP\x00\x00\x00\x10\x00\x00\x00$code\x01\x00\x00\x00".$cmd."\x0D";
    
            # send it !
            print $sock $line;
        }
        # kill the child process
        kill(TERM => $kid);
    } else {
    
        # child reads from socket
        while (defined($sock->recv(my $data,1024))) {
            my $chunk=substr($data,18,5);
            while ((my $key, my $value)=each(%actions)) {
                if (!index($chunk, $key)) {
                    if (index($value, "VALUE")>0) {
                        $_=$chunk;
                        my $result=s/$key//;
                        $chunk=$_;
                        substr($value, index($value, 'VALUE'),5 )=$chunk
                    }
            open FILE, ">>", "$logfile" or die $!;
            my $t = time();
            my $now = localtime($t);
            print FILE "$now \t Chunk $chunk \t Key $key \t Value $value\n";
            close(FILE);
    
                    system($value);
                }
            }
        }
        close $sock;
    }
    }
    ISCP-Befehle:

    AVForums.com - View Single Post - Onkyo (TX-NR 1007) Webinterface Programming

    #2
    Hallo Johnny,

    klingt spannend...
    Ich habe einen 509 und an Zone 2 den Sender für die Funk Gartenlautsprecher. Da muss ich eigentlich selten dran..

    Bei mir hängen Verstärker und TV an geschalteten Steckdosen.
    Wenn ich nun statt TV nur Radio hören möchte, schalte ich den Fernseher manuell aus und schalte den Verstärker um. Bei Wechsel auf TV dann wieder TV ein und Verstärker um...

    Toll wären nun zwei KNX Taster, die einmal den Verstärker einschalten (auf Tuner) und dann den Fernseher ein und den Verstärker auf TV Eingang umschalten (bei mir "GAME", da der Ton (und auch das Bild) von der Dreambox kommen).

    Einen HS habe ich, aber der wird mit Deinem Script nichts anfangen können...

    Gruß Jürgen

    Kommentar


      #3
      Jürgen --

      Wenn's Dir nicht um eine Rückmeldung des Receivers geht - kann der Homeserver die ISCP-Befehle nicht direkt an den Receiver schicken? Ich kenne mich überhaupt nicht mit dem Teil aus, aber wenn er, getriggert von einer GA, eine IP-Verbindung aufbauen und den Befehl schicken kann, müsste das doch klappen?

      Kommentar


        #4
        Hallo Jonny

        Über die Suche bin ich auf deinen Post gestoßen und möchte dein Script für mich anpassen. Darf ich dein Script weiter verwenden, wenn ja unter welchen Bedingungen? Ich will das nicht kommerziell verwenden. Ich würde dich im Header benennen und die Quelle angeben. Mein Favourit wäre CC (CreativeCommons). Darf ich?

        Gruß Lars

        Zitat von johnnychicago Beitrag anzeigen
        Hallo --

        Mein iscp.pl script:
        Code:
        #!/usr/bin/perl -w
        
        use strict;
        use IO::Socket;
        
        
        my $host =  '192.168.4.52';
        my $port = '60128';
        
        my $logfile = '/var/log/iscp.log';
        
        my %actions = (
        "PWR00", '/usr/local/bin/groupwrite "ip:127.0.0.1" "3/3/0" "0"',
        "PWR01", '/usr/local/bin/groupwrite "ip:127.0.0.1" "3/3/0" "1"',
        "ZPW00", '/usr/local/bin/groupwrite "ip:127.0.0.1" "3/3/2" "0"',
        "ZPW01", '/usr/local/bin/groupwrite "ip:127.0.0.1" "3/3/2" "1"',
        "MVL", '/usr/local/bin/groupswrite "ip:127.0.0.1" "3/3/1" "VALUE"',
        "ZVL", '/usr/local/bin/groupswrite "ip:127.0.0.1" "3/3/3" "VALUE"',
        "SLI", '/usr/local/bin/groupswrite "ip:127.0.0.1" "3/3/5" "VALUE"',
        "SLZ", '/usr/local/bin/groupswrite "ip:127.0.0.1" "3/3/6" "VALUE"'
        );
        
        
        
        
        
        # --------------------------
        # nothing to edit after this
        # --------------------------
        
        # daemonize
        
        my $pid= fork();
        exit if $pid;
        die "Couldn't fork: $!" unless defined($pid);
        
        for my $handle (*STDIN,*STDOUT,*STDERR){
        open($handle, "+<", "/dev/null") || die "can't reopen $handle to /dev/null: $!";
        }
        
        use POSIX;
        POSIX::setsid() or die "Can't start a new session: $!";
        
        my $time_to_die=0;
        
        sub signal_handler {
        $time_to_die=1;
        }
        
        $SIG{INT}=$SIG{TERM}=$SIG{HUP}=\&signal_handler;
        
        until ($time_to_die) {
        
        
        
        my $sock = new IO::Socket::INET(
                           PeerAddr => $host,
                           PeerPort => $port,
                           Proto    => 'tcp');
        $sock or die "no socket :$!";
        $sock->autoflush(1);
        
        my $socklocal = new IO::Socket::INET(
                            LocalPort => $port,
                            Type => SOCK_STREAM,
                            Listen => 5,
                            Reuse => 1 );
        
        $socklocal or die "no socket :$!";
        
        my($kid,$line,$cmd,$length,$code,$in);
        die "fork fail: $!" unless defined($kid = fork);
        if ($kid) {
            while (my $client=$socklocal->accept) {
                $in=<$client>;
                $cmd="!1".$in;
                $length=length($cmd)+1;
                $code =chr($length);
        
                # setup the string we are sending ...
                $line  = "ISCP\x00\x00\x00\x10\x00\x00\x00$code\x01\x00\x00\x00".$cmd."\x0D";
        
                # send it !
                print $sock $line;
            }
            # kill the child process
            kill(TERM => $kid);
        } else {
        
            # child reads from socket
            while (defined($sock->recv(my $data,1024))) {
                my $chunk=substr($data,18,5);
                while ((my $key, my $value)=each(%actions)) {
                    if (!index($chunk, $key)) {
                        if (index($value, "VALUE")>0) {
                            $_=$chunk;
                            my $result=s/$key//;
                            $chunk=$_;
                            substr($value, index($value, 'VALUE'),5 )=$chunk
                        }
                open FILE, ">>", "$logfile" or die $!;
                my $t = time();
                my $now = localtime($t);
                print FILE "$now \t Chunk $chunk \t Key $key \t Value $value\n";
                close(FILE);
        
                        system($value);
                    }
                }
            }
            close $sock;
        }
        }

        Kommentar


          #5
          Zitat von Eisbaeeer Beitrag anzeigen
          Hallo Jonny

          Über die Suche bin ich auf deinen Post gestoßen und möchte dein Script für mich anpassen. Darf ich dein Script weiter verwenden, wenn ja unter welchen Bedingungen? Ich will das nicht kommerziell verwenden. Ich würde dich im Header benennen und die Quelle angeben. Mein Favourit wäre CC (CreativeCommons). Darf ich?

          Gruß Lars

          Mach damit worauf Du Lust hast - deswegen hab' ich's ja geshared.

          Kommentar


            #6
            Zitat von johnnychicago Beitrag anzeigen
            Mach damit worauf Du Lust hast - deswegen hab' ich's ja geshared.
            Ich danke Dir! Ich hab da schon böse Überraschungen erlebt. Deshalb bin ich da vorsichtig geworden. Da gibt es ne Menge Leute, die was posten und wenn der Code dann irgend wo auftaucht, sind die wirklich böse. Ich mach daraus eine CC und setz dich als Quelle mit rein.

            Ich hab heute das Script schon ein bischen angepasst und es werkelt sehr schön. Ich werde es als Middleware für meinen Onkyo Receiver verwenden. Ich denke, ich werde das ganze dann noch dokumentieren und in github setzen oder so. Sehr schön gemacht, das Perl Script.

            So on...
            Gruß Lars

            Kommentar


              #7
              Guten Abend,

              ich wollte dein Script für meine Onkyo 616 nutzen. Leider habe ich noch nicht so den Plan von Linux.
              Ich hab ein Raspberry mit Debian wo ich gerne dein Script laufen lassen würde nur leider weiß ich nicht wohin damit...
              Evtl. kann mir jemand nen stups geben
              Auf den PI läuft ein Cometvisu Image....

              Gruß Mario

              Kommentar


                #8
                Zitat von Brainfly Beitrag anzeigen
                ich wollte dein Script für meine Onkyo 616 nutzen. Leider habe ich noch nicht so den Plan von Linux.
                Ich hab ein Raspberry mit Debian wo ich gerne dein Script laufen lassen würde nur leider weiß ich nicht wohin damit...
                Evtl. kann mir jemand nen stups geben
                o
                Du kommst per Kommandozeile auf Deinen Pi? Entweder per ssh oder mit angeschlossenem Keyboard/Monitor?

                Falls ja, solltest Du das Script in ein Verzeichnis Deiner Wahl legen, mit chmod a+x scriptname ausführbar machen und dann mit ./scriptname starten können.

                Falls das soweit geht, schauen wir weiter, ok?

                Kommentar


                  #9
                  Hab das File onkyo.pl im etc Ordner erstellt und wie folgt geändert.

                  Code:
                  #!/usr/bin/perl -w
                  
                  use strict;
                  use IO::Socket;
                  
                  
                  my $host =  '192.168.178.26';
                  my $port = '60128';
                  
                  my $logfile = '/var/log/onkyo.log';
                  
                  my %actions = (
                  "ZPW00", '/usr/local/bin/groupwrite "ip:192.168.178.25" "0/0/26" "0"',
                  "ZPW01", '/usr/local/bin/groupwrite "ip:192.168.178.25" "0/0/26" "1"',
                  );
                  Host: IP vom Onkyo
                  Actions: IP vom KNX interface

                  dann wie du beschrieben per Putty gestartet...
                  Hoffe das es geklappt hat, weil der PI keine reaktion zeigte aber nach beiden befehlen eine neue Befehlszeile zeigte...

                  Am Receiver tut sich leider nichts

                  Kommentar


                    #10
                    /etc wäre nicht meine erste Wahl gewesen - dort sind traditionell Config-Dateien. Aber die Welt geht nicht davon unter

                    Dass sich nichts tut, ist prinzipiell in Ordnung - das Programm verschwindet im Background und wartet darauf, dass etwas passiert.

                    Du kannst übrigens mit 'ps aux' kontrollieren, ob das Programm läuft.

                    Wenn alles ist, wie es sein soll, kannst Du auf der Kommandozeile "echo 'ZPW01' | nc localhost 60128" eingeben, und das schaltet Deinen Receiver ein.

                    Kommentar


                      #11
                      Vielen Dank erstmal für deine Hilfe!

                      Ich werde es ausprobieren wenn ich zu Hause bin..

                      Kommentar


                        #12
                        Super! In der Kommandozeile "echo 'ZPW01' | nc localhost 60128" funktioniert, ZPW00 geht auch. Zone 2 schaltet EIN/AUS. Er nimmt auch die letzte Einstellung für Zone 2.... somit reicht mir ein Taster zum EIN/AUS schalten.

                        Versteh jetzt nur nicht warum das mit der GA nicht klappt.

                        Hab auf die GA ein Schalter (Umschalt) gelegt, die IP vom Interface angegeben sollte doch dann eigentlich so laufen. Übersehe ich etwas oder weiß ich etwas noch nicht.

                        Kommentar


                          #13
                          Ah, ich glaube, da fehlt noch was im Verständnis.

                          Das Progrämmchen bringt zwei Funktionen:

                          Die erste ist die, die Du gerade gefunden hast. Du kannst Befehle von der Kommandozeile an den Receiver schicken. Wenn Du das von einer GA machen willst, musst Du Dir überlegen, wie Du die GA auf die Kommandozeile bringst. Du kannst das mit linknx machen, oder mit dem Logikprozessor des Wiregate, oder sicher auch mit dem Homeserver, oder ein paar Zeilen bash.

                          Die zweite Funktion ist die, dass Ausgaben des Receivers auf GA's gebracht werden. Das ist eigentlich nur ein Rückkanal: der Receiver führt eine Funktion aus - z.B. das Umschalten auf eine bestimmte Quelle. Das macht er, weil Du den Knopf gedrückt hast, oder weil Du ihn mit der FB schaltest, oder von der Kommandozeile, wie gerade gesehen. Die Rückmeldung wird auf eine GA gelegt, damit Du die weiter verarbeiten kannst. So kannst Du z.B. beim Umschalten der Quelle eine Szene aufrufen oder sonstiges.

                          Kommandos senden und Receiver-Aktionen auf GA's mappen sind völlig unabhängig voneinander.

                          Verständlich, soweit?

                          Kommentar


                            #14
                            aaaahja....

                            Ich möchte den Receiver Zone 2 über einen Taster Ein-/Ausschalten, mehr nicht.

                            also muss in linknx.xml eine rule erstellt werden die dem script den Befehl erteilt zb. den den receiver ein-/auszuschalten...

                            hab mich drann versucht so eine rule für die linknx zu erstellen:
                            Code:
                            <objects>
                            		<object id="onkyo"		gad="0/0/26"	type="1.001">onkyo</object>
                            
                                </objects>
                                <rules>
                              		<rule id="onkyo">
                            			<condition type="or">
                            				<condition type="object" id="onkyo" value="on" trigger="true" />
                            			</condition>
                              			<actionlist>
                            				<action type="shell-cmd" cmd="/etc/onkyo.pl echo 'ZPW01' | nc localhost 60128" />
                            			</actionlist>
                            		</rule>	
                            		<rule id="onkyo">
                            			<condition type="or">
                            				<condition type="object" id="onkyo" value="off" trigger="true" />
                            			</condition>
                              			<actionlist>
                            				<action type="shell-cmd" cmd="/etc/onkyo.pl echo 'ZPW00' | nc localhost 60128" />
                            			</actionlist>
                            		</rule>			
                            
                                </rules>
                            ... du/ihr werdet euch vor lachen bestimmt nicht mehr einkriegen, wenn ihr das liest...
                            aber dies sollte schonmal in die richtige Richtung schiessen, wie gesagt ich habe damit leider keine Erfahrungen (bin nur nen Installateur )

                            Ich weiß noch nichts mit den <condition type="or/and/not"> anzufangen, brauche ich das überhaupt für mein vorhaben? (Edit:kann ich wohl weglassen)

                            Kommentar


                              #15
                              Einen schönen Sonntag euch!

                              Hab es jetzt soweit das im linknx.log eine Bestätigung kommt das das script ausgeführt wenn man den Taster betätigt. Was komisch ist das ich nur 'ZPW00' sehe und nie 'ZPW01'...
                              und an meinen Onkyo passiert immer noch nichts obwohl "echo 'ZPW01' | nc localhost 60128" und "echo 'ZPW00' | nc localhost 60128" im Putty fuktioniert...

                              linknx.log
                              2014-08-24 10:34:53 [ INFO] Object: New value on for object onkyo (type: 1.001)
                              2014-08-24 10:34:53 [ INFO] Rule: Evaluate rule onkyo
                              2014-08-24 10:34:53 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='1' to value='0'
                              2014-08-24 10:34:53 [ INFO] Condition: ObjectCondition (id='onkyo') evaluated as '0'
                              2014-08-24 10:34:53 [ INFO] Rule: Rule onkyo evaluated as 0, prev value was 0
                              2014-08-24 10:35:03 [ INFO] Object: New value off for object onkyo (type: 1.001)
                              2014-08-24 10:35:03 [ INFO] Rule: Evaluate rule onkyo
                              2014-08-24 10:35:03 [ INFO] ObjectValue: SwitchingObjectValue: Compare value_m='0' to value='0'
                              2014-08-24 10:35:03 [ INFO] Condition: ObjectCondition (id='onkyo') evaluated as '1'
                              2014-08-24 10:35:03 [ INFO] Rule: Rule onkyo evaluated as 1, prev value was 0
                              2014-08-24 10:35:03 [ INFO] Action: Execute ShellCommandAction: /var/onkyo.pl echo 'ZPW00' | nc localhost 60128

                              Hier sind meine files:

                              linknx.xml
                              Code:
                              <?xml version="1.0" ?>
                              <config>
                                  <services>
                                      <knxconnection url="ip:127.0.0.1" />
                                      <xmlserver type="inet" port="1028"/>
                              	<location lon = "7.73" lat = "51.69" />
                                      <exceptiondays>
                                          <date day="1" month="1" />
                                          <date day="1" month="5" />
                                          <date day="15" month="8" />
                                          <date day="25" month="12" />
                                          <date day="25" month="4" year="2011" />
                                          <date day="2" month="6" year="2011" />
                                          <date day="13" month="6" year="2011" />
                                          <date day="9" month="4" year="2012" />
                                          <date day="17" month="5" year="2012" />
                                          <date day="28" month="5" year="2012" />
                                          <date day="1" month="4" year="2013" />
                                          <date day="9" month="5" year="2013" />
                                          <date day="20" month="5" year="2013" />
                                          <date day="21" month="4" year="2014" />
                                          <date day="29" month="5" year="2014" />
                                          <date day="9" month="6" year="2014" />
                                      </exceptiondays>
                              		<persistence type="file" path="/var/lib/linknx" />
                                  </services>
                              	<objects>
                              		<object id="onkyo"		gad="0/0/26"	type="1.001">onkyo</object>
                              		<object id="tasterbel"		gad="0/0/30"	type="1.001">Tasterbeleuchtung</object>
                              	</objects>
                                  <rules>
                                		<rule id="onkyo">
                              			<condition type="object" id="onkyo" value="1" trigger="true" />
                              			<actionlist>
                              				<action type="shell-cmd" cmd="/var/onkyo.pl echo 'ZPW01' | nc localhost 60128" />
                              			</actionlist>
                              		</rule>	
                              		<rule id="onkyo">
                              			<condition type="object" id="onkyo" value="0" trigger="true" />
                              			<actionlist>
                              				<action type="shell-cmd" cmd="/var/onkyo.pl echo 'ZPW00' | nc localhost 60128" />
                              			</actionlist>
                              		</rule>
                              		<rule id="tasterbel">
                              			<condition type="timer" trigger="true">
                              				<at hour='17' min='50' wdays="1234567" />
                              			</condition>			
                              			<actionlist>
                              				<action type="set-value" id="tasterbel" value="on" />
                              			</actionlist>
                              		</rule>
                              	</rules>
                              	<logging output="/var/log/linknx.log" format="%d{%Y-%m-%d %H:%M:%S,%l} %5p > %c %x - %m%n" level="INFO" maxfilesize="100" maxfileindex="2" />
                              </config>
                              onkyo.pl
                              Code:
                              #!/usr/bin/perl -w
                              
                              use strict;
                              use IO::Socket;
                              
                              
                              my $host =  '192.168.178.26';
                              my $port = '60128';
                              
                              my $logfile = '/var/log/onkyo.log';
                              
                              my %actions = (
                              "ZPW00", '/usr/local/bin/groupwrite "ip:127.0.0.1" "0/0/26" "0"',
                              "ZPW01", '/usr/local/bin/groupwrite "ip:127.0.0.1" "0/0/26" "1"',
                              );
                              Grüße Mario

                              Kommentar

                              Lädt...
                              X