Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Pioneer AVR Script für ältere VSX Receiver

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Pioneer AVR Script für ältere VSX Receiver

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      schroeder1 last edited by schroeder1

      Hallo in die Runde,
      da der Onkyo/Pioneer Adapter mit einem neueren Protokoll arbeitet, kann ich meinen VSX-922 nicht damit steuern und bin halt auf das Script von Stormboy angewiesen.
      Das klappt bisher auch Problemlos.
      Ich würde jedoch noch gerne im Tunermodus die Presets wechseln können und eventuell auch noch ein paar Listenings Codes zum wechseln des Soundbereichs eingeben können.
      Mit einigen versuchen das Script selber zu erweitern bin ich gescheitert, da mir da doch das Scriptwissen fehlt.
      Leider wurde das Script von Stormboy nicht erweitert, bzw. eingestellt.
      https://github.com/stormboy/node-pioneer-avr

      Kann mir da jemand Tipps geben um die Möglichkeiten ein wenig zu erweitern ?
      Besten Dank
      schroeder1

      1 Reply Last reply Reply Quote 0
      • S
        schroeder1 last edited by schroeder1

        Hi,
        habe mich nun doch mal daran gewagt...
        Ein paar kleine Änderungen in der pioneer-avr.js Datei und das Script erweitert.
        Hier die pioneer-avr.js ( IoBroker stoppen, diese mit der alten überschreiben, IB wieder starten )
        pioneer-avr.js

        Hier das Script :

        /* 
         script needs stormboy/node-pioneer-avr package.
         see https://github.com/stormboy/node-pioneer-avr
         To install, excecute the following command in /opt/iobroker/node_modules:
         npm install https://github.com/stormboy/node-pioneer-avr.git 
        */
        
        //path to node-pioneer-avr package
        var avr = require("../../pioneer-avr");
        
        //new iobroker states
        createState('pioneer.volumeUp'); //set to true to increase Volume
        createState('pioneer.volumeDown'); //set to true to decrease Volume
        createState('pioneer.setVolume'); //set Volume as numeric value. [0 .. 185] 1 = -80dB , 161 = 0dB, 185 = +12dB
        createState('pioneer.muteOn'); //set to true to Mute receiver
        createState('pioneer.muteOff'); //set to true to unMute receiver
        createState('pioneer.turnOn'); //set to true to turn receiver on
        createState('pioneer.turnOff'); //set to true to turn receiver off
        createState('pioneer.setInput'); //set new input as numeric value (see below)
        createState('pioneer.onState'); //Status On/Off
        createState('pioneer.inputState'); //Current Input State
        createState('pioneer.buttonHMGEnter'); //Enter Button in HMG
        createState('pioneer.buttonHMGReturn'); //Return Button in HMG
        createState('pioneer.buttonHMGUp'); //Up Button in HMG
        createState('pioneer.buttonHMGDown'); //Down Button in HMG
        createState('pioneer.buttonHMGPlay'); //Play Button in HMG
        createState('pioneer.buttonHMGStop'); //Stop Button in HMG
        createState('pioneer.buttonHMG1'); //'1' Button in HMG
        createState('pioneer.listeningStereo'); //Set Listening Stereo Mode
        createState('pioneer.listeningNeo6m'); //Set Listening Neo 6 Music Mode
        createState('pioneer.listeningDolbypm'); //Set Listening Prologic Movie Mode
        createState('pioneer.buttonTuner1'); //Set Tuner Preset 1
        createState('pioneer.buttonTuner2'); //Set Tuner Preset 2
        createState('pioneer.buttonTuner3'); //Set Tuner Preset 3
        createState('pioneer.buttonTuner4'); //Set Tuner Preset 4
        createState('pioneer.buttonTuner5'); //Set Tuner Preset 5
        createState('pioneer.buttonTuner6'); //Set Tuner Preset 6
        createState('pioneer.buttonTuner7'); //Set Tuner Preset 7
        createState('pioneer.buttonTuner8'); //Set Tuner Preset 8
        createState('pioneer.buttonTuner9'); //Set Tuner Preset 9
        createState('pioneer.buttonTuner0'); //Set Tuner Preset 0
        
        //Options
        var options = {
            port: 8102,
            host: "192.168.xxx.xxx",
            log: true
        };
        
        var receiver = new avr.VSX(options);
        
        //trigger on connection
        receiver.on("connect", function() {
            console.log("receiver connected");
        });
        
        //trigger on Input change
        receiver.on("input", function(id, name) {
            console.log("current input: " + id + " : " + name);
            setState('javascript.0.pioneer.inputState', id + " : " + name);
        });
        
        //trigger on power change
        receiver.on("power", function(pwrstate) {
            console.log("Power: " + pwrstate);
            setState('javascript.0.pioneer.onState', pwrstate);
        });
        
        //inc Vol
        on({ id: 'javascript.0.pioneer.volumeUp', change: "any" }, function(obj) {
            var value = obj.state.val;
            console.log("VolUp: " + value);
            for (var i = 0; i < value; i++) {
                receiver.volumeUp();
            }
        });
        
        //dec Vol
        on({ id: 'javascript.0.pioneer.volumeDown', change: "any" }, function(obj) {
            var value = obj.state.val;
            console.log("VolDown: " + value);
            for (var i = 0; i < value; i++) {
                receiver.volumeDown();
            }
        });
        
        //Set Volume 
        //[0 .. 185] 1 = -80dB , 161 = 0dB, 185 = +12dB
        on({ id: 'javascript.0.pioneer.setVolume', change: "any" }, function(obj) {
            var value = obj.state.val;
            console.log("Volume: " + value);
            receiver.volume(value);
        });
        
        
        //Turn On
        on({ id: 'javascript.0.pioneer.turnOn', val: true }, function(obj) {
            receiver.power(true);
        });
        
        //Turn Off
        on({ id: 'javascript.0.pioneer.turnOff', val: true }, function(obj) {
            receiver.power(false);
        });
        
        //Mute On
        on({ id: 'javascript.0.pioneer.muteOn', val: true }, function(obj) {
            receiver.mute(true);
        });
        
        //Mute Off
        on({ id: 'javascript.0.pioneer.muteOff', val: true }, function(obj) {
            receiver.mute(false);
        });
        
        /* Input Codes
            phono: "00",
            cd: "01",
            tuner: "02",
            cdr_tape: "03",
            dvd: "04",
            tv_sat: "05",
            video_1: "10",
            multi_ch: "12",
            video_2: "14",
            dvr_bdr: "15",
            ipod_usb: "17",
            hdmi_1: "19",
            hdmi_2: "20",
            hdmi_3: "21",
            hdmi_4: "22",
            hdmi_5: "23",
            bd: "25",
            hdmi_cyclic: "31",
            adapter_port: "33",
            internet: "38",
            sirius: "40",
            pandora: "41",
            home_media: "44",
            favorites: "45",
        */
        
        //Set Input
        on({ id: 'javascript.0.pioneer.setInput', change: "ne" }, function(obj) {
            var value = obj.state.val;
            console.log(value);
            console.log(receiver.queryInputName());
            receiver.selectInput(value);
        });
        
        //Press Button Enter HMG
        on({ id: 'javascript.0.pioneer.buttonHMGEnter', val: true }, function(obj) {
            console.log("Press Button HMG Enter");
            receiver.buttonHMGEnter();
        });
        
        //Press Button Return HMG
        on({ id: 'javascript.0.pioneer.buttonHMGReturn', val: true }, function(obj) {
            console.log("Press Button HMG Return");
            receiver.buttonHMGReturn();
        });
        
        //Press Button Play HMG
        on({ id: 'javascript.0.pioneer.buttonHMGPlay', val: true }, function(obj) {
            console.log("Press Button HMG Play");
            receiver.buttonHMGPlay();
        });
        
        //Press Button Stop HMG
        on({ id: 'javascript.0.pioneer.buttonHMGStop', val: true }, function(obj) {
            console.log("Press Button HMG Stop");
            receiver.buttonHMGStop();
        });
        
        //Press Button Up HMG
        on({ id: 'javascript.0.pioneer.buttonHMGUp', val: true }, function(obj) {
            console.log("Press Button HMG Up");
            receiver.buttonHMGUp();
        });
        
        //Press Button Down HMG
        on({ id: 'javascript.0.pioneer.buttonHMGDown', val: true }, function(obj) {
            console.log("Press Button HMG Down");
            receiver.buttonHMGDown();
        });
        
        //Press Button 1 HMG
        on({ id: 'javascript.0.pioneer.buttonHMG1', val: true }, function(obj) {
            console.log("Press Button HMG '1'");
            receiver.buttonHMG1();
        });
        
        //Set Listening Stereo Mode
        on({ id: 'javascript.0.pioneer.listeningStereo', val: true }, function(obj) {
            console.log("Set Listening Stereo Mode");
            receiver.listeningStereo();
        });
        
        //Set Listening Neo 6 Music Mode
        on({ id: 'javascript.0.pioneer.listeningNeo6m', val: true }, function(obj) {
            console.log("Set Listening Neo 6 Music Mode");
            receiver.listeningNeo6m();
        });
        
        //Set Listening Dolby Prologic Movie Mode
        on({ id: 'javascript.0.pioneer.listeningDolbypm', val: true }, function(obj) {
            console.log("Set Listening Dolby Prologic Movie Mode");
            receiver.listeningDolbypm();
        });
        
        //Set Tuner Preset 1
        on({ id: 'javascript.0.pioneer.buttonTuner1', val: true }, function(obj) {
            console.log("Set Tuner Preset '1'");
            receiver.buttonTuner1();
        });
        
        //Set Tuner Preset 2
        on({ id: 'javascript.0.pioneer.buttonTuner2', val: true }, function(obj) {
            console.log("Set Tuner Preset '2'");
            receiver.buttonTuner2();
        });
        
        //Set Tuner Preset 3
        on({ id: 'javascript.0.pioneer.buttonTuner3', val: true }, function(obj) {
            console.log("Set Tuner Preset '3'");
            receiver.buttonTuner3();
        });
        
        //Set Tuner Preset 4
        on({ id: 'javascript.0.pioneer.buttonTuner4', val: true }, function(obj) {
            console.log("Set Tuner Preset '4'");
            receiver.buttonTuner4();
        });
        
        //Set Tuner Preset 5
        on({ id: 'javascript.0.pioneer.buttonTuner5', val: true }, function(obj) {
            console.log("Set Tuner Preset '5'");
            receiver.buttonTuner5();
        });
        
        //Set Tuner Preset 6
        on({ id: 'javascript.0.pioneer.buttonTuner1', val: true }, function(obj) {
            console.log("Set Tuner Preset '6'");
            receiver.buttonTuner6();
        });
        
        //Set Tuner Preset 7
        on({ id: 'javascript.0.pioneer.buttonTuner7', val: true }, function(obj) {
            console.log("Set Tuner Preset '7'");
            receiver.buttonTuner7();
        });
        
        //Set Tuner Preset 8
        on({ id: 'javascript.0.pioneer.buttonTuner8', val: true }, function(obj) {
            console.log("Set Tuner Preset '8'");
            receiver.buttonTuner8();
        });
        
        //Set Tuner Preset 9
        on({ id: 'javascript.0.pioneer.buttonTuner9', val: true }, function(obj) {
            console.log("Set Tuner Preset '9'");
            receiver.buttonTuner9();
        });
        
        //Set Tuner Preset 0
        on({ id: 'javascript.0.pioneer.buttonTuner0', val: true }, function(obj) {
            console.log("Set Tuner Preset '0'");
            receiver.buttonTuner0();
        });
        

        Altes ersetzen und die IP Adresse ( 192.168.xxx.xxx ) anpassen.
        Natürlich vorher für alle Fälle die alten Sachen sichern.
        Läuft bei mir echt gut und ohne Verzögerungen.

        Hier auch noch ein Screenshot:
        HiFi-Vis.jpg

        1 Reply Last reply Reply Quote 1
        • C
          Chris87 last edited by

          Hi @schroeder1,

          coole Arbeit.
          will mich die Woche jetzt auch dran machen meinen Pioneer SC-2022 anzubinden.
          Mit Telnet klappt das schon nur der Onkyo adapter will nicht (weiß jetzt auch warum......)

          Ich weiß nicht genau wie fit du bist, aber hoffe du kannst mir helfen. Normalerweise müsste ich doch die node-pioneer-avr als funktions-script in Blocky setzen können und hier die Variablen adressieren?

          Sollte das nicht klappen werde ich mich an deine Herangehensweise machen. fragst du eigentlich auch irgendwo Änderungen im AVR ab? wenn ich z.B. mit der original Fernbedienung die Lautstärke ändere, muss das der IO Broker doch auch irgendwie wissen oder?
          Schon mal vielen Dank.
          MfG Chris

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          576
          Online

          31.6k
          Users

          79.4k
          Topics

          1.3m
          Posts

          javascript
          2
          3
          482
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo