Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Vorlage] Denon Skript

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[Vorlage] Denon Skript

Scheduled Pinned Locked Moved Skripten / Logik
141 Posts 35 Posters 34.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    holson
    wrote on last edited by
    #29

    Hi Lucky,

    Danke für Deine Tipps und Zusendung Deines Logs:

    Mein Denon AVR-X4200W hat die aktuelle Firmware (0992-7370-8223-04).

    Ich habe im Skript update(100) auf update(200) geändert und Skriptgruppe/Skript wie bei Dir gemacht.

    ->es bringt keine Änderung, d.h. ich kann weiterhin kein Status ändern und sehe nur die Statusänderungen bzw. bekomme weiterhin die Meldung "Error: connect ECONNREFUSED".

    Anbei das Log, bei dem ich das Skript gestartet habe:

    00:24:27.623 [info] javascript.0 Start javascript script.js.Denon.Denon_Main

    00:24:27.623 [info] javascript.0 script.js.Denon.Denon_Main: registered 78 subscriptions and 0 schedules

    00:24:27.626 [info] javascript.0 script.js.Denon.Denon_Main: connected to server!

    00:24:27.630 [error] javascript.0 script.js.Denon.Denon_Main: error: Error: connect ECONNREFUSED 192.168.178.152:23

    … Mute ein- und ausgeschaltet

    00:25:02.529 [info] javascript.0 script.js.Denon.Denon_Main: MUON

    00:25:04.018 [info] javascript.0 script.js.Denon.Denon_Main: MUOFF

    Das Skript habe ich dann deaktiviert

    00:25:06.310 [info] javascript.0 Stop script script.js.Denon.Denon_Main

    00:25:06.316 [info] javascript.0 script.js.Denon.Denon_Main: Connection closed !

    … und auf der Denon-Fernbedienung Mute ein- und ausgeschaltet:

    00:25:10.139 [info] javascript.0 script.js.Denon.Denon_Main: MUON

    00:25:12.338 [info] javascript.0 script.js.Denon.Denon_Main: MUOFF

    Frage:

    Obohl ich das Skript in ioBroker deaktiviert habe, werden Statusändeungen weiterhin in ioBroker fortgeschrieben,

    woraus ich interpretiere, dass die Telnet-Verbindung doch noch besteht - oder liege ich da falsch?

    VG

    1 Reply Last reply
    0
    • H Offline
      H Offline
      holson
      wrote on last edited by
      #30

      Hallo Lucky,

      dank einem Tipp von ldittmar habe ich die Ursache gefunden und es funktioniert jetzt!!!! :D :D :D :D

      Ich habe den Java-Script-Adapter beendet und neu gestartet sowie ioBroker neu gestartet.

      Da ich das Skript anfänglich noch unter GLOBAL hatte und obwohl ich es wieder gestoppt und gelöscht hatte (inkl. der erstellten Objekte) ist wohl doch noch etwas im speicher aktiv geblieben.

      Durch den Neustart hat sich das erledigt und es funktioniert hervorragend!!!

      Danke Dir vielmals für Deine Mühe und Dein funktionierendes Skript!!!!

      VG

      HolSon

      1 Reply Last reply
      0
      • L Offline
        L Offline
        Lucky
        wrote on last edited by
        #31

        na das ist doch Super :D anders hätte ich es mir dann auch nicht mehr erklären können..

        bei der Gelegenheit kleines Update:

        1. die Tuner Steuerung funktioniert jetzt

        2. die IP Adresse wird jetz im State IP eingetragen, Verbindungsfehler werden automatisch behandelt, neustart des Skript ist nicht mehr notwendig

        3. einiges aufgeräumt

        1 Reply Last reply
        0
        • L Offline
          L Offline
          Lucky
          wrote on last edited by
          #32

          so, die vorerst letzte änderung:

          Schönheitsfehler behoben

          neue Funktionen: 1: Systemname wird jetzt vom Gerät abgerufen 2: es wird angezeit wann der AVR '' fertig gebootet'' hat, also wenn es "klick" gemacht hat (das ist wichtig wenn man z.b. mit Alexa steuern will, denn erst wenn der AVR vollständig hochgefahren ist, werden die kommandos richtig umgesetzt!)

          ! ```
          `//Kontakt: s-nolte@htp-tel.de
          //ioBroker Forum: Lucky
          var net = require('net');
          ! // System
          createState('javascript.0.Denon.System.UPDATE', false,{type: "boolean", role: "button"});
          createState('javascript.0.Denon.System.Power_System', false,{type: "boolean", role: "Power System"});
          createState('javascript.0.Denon.System.System_Ready', false,{type: "boolean", role: "System Ready",write:false});
          createState('javascript.0.Denon.System.IP_Adresse', '000.000.000.000',{type: "string", role: "AVR IP Adresse"});
          createState('javascript.0.Denon.System.Trigger_1', false,{type: "boolean", role: "Trigger 1"});
          createState('javascript.0.Denon.System.Trigger_2', false,{type: "boolean", role: "Trigger 2"});
          createState('javascript.0.Denon.System.Command', '',{type: "string", role: "Command to AVR"});
          createState('javascript.0.Denon.System.Display_Dimmer',0,{type: "number", role: "FL Display Dimmer",states: "0:BRI;1:DIM;2:DAR;3:OFF"});
          createState('javascript.0.Denon.System.Verbunden',false,{type: "boolean", role: "Verbindung hergestellt",write:false});
          createState('javascript.0.Denon.System.Name',{type: "string", role: "Netzwerk-Name",write:false});
          ! //OSD
          createState('javascript.0.Denon.OSD.OSD_Info_List0', 'init',{type: "string", role: "Onscreen Display Info List00",write:false});
          createState('javascript.0.Denon.OSD.OSD_Info_List1', 'init',{type: "string", role: "Onscreen Display Info List01",write:false});
          createState('javascript.0.Denon.OSD.OSD_Info_List2', 'init',{type: "string", role: "Onscreen Display Info List02",write:false});
          createState('javascript.0.Denon.OSD.OSD_Info_List3', 'init',{type: "string", role: "Onscreen Display Info List03",write:false});
          createState('javascript.0.Denon.OSD.OSD_Info_List4', 'init',{type: "string", role: "Onscreen Display Info List04",write:false});
          createState('javascript.0.Denon.OSD.OSD_Info_List5', 'init',{type: "string", role: "Onscreen Display Info List05",write:false});
          createState('javascript.0.Denon.OSD.OSD_Info_List6', 'init',{type: "string", role: "Onscreen Display Info List06",write:false});
          createState('javascript.0.Denon.OSD.OSD_Info_List7', 'init',{type: "string", role: "Onscreen Display Info List07",write:false});
          createState('javascript.0.Denon.OSD.OSD_Info_List8', 'init',{type: "string", role: "Onscreen Display Info List08",write:false});
          ! //Controls
          createState('javascript.0.Denon.Control.Play', false,{type:"boolean", role: "button"});
          createState('javascript.0.Denon.Control.Stop', false,{type: "boolean", role: "button"});
          createState('javascript.0.Denon.Control.Pause', false,{type: "boolean", role: "button"});
          createState('javascript.0.Denon.Control.Skip_Plus', false,{type: "boolean", role: "button"});
          createState('javascript.0.Denon.Control.Skip_Minus', false,{type: "boolean", role: "button"});
          createState('javascript.0.Denon.Control.Page_Next', false,{type: "boolean", role: "button"});
          createState('javascript.0.Denon.Control.Page_Previous', false,{type: "boolean", role: "button"});
          ! //Tuner Control
          createState('javascript.0.Denon.Tuner_Control.Frequency_UP', false,{type:"boolean", role: "button"});
          createState('javascript.0.Denon.Tuner_Control.Frequency_DOWN', false,{type:"boolean", role: "button"});
          createState('javascript.0.Denon.Tuner_Control.Preset_UP', false,{type:"boolean", role: "button"});
          createState('javascript.0.Denon.Tuner_Control.Preset_DOWN', false,{type:"boolean", role: "button"});
          createState('javascript.0.Denon.Tuner_Control.RDS_Station_Name', 'init',{type:"string", role: "RDS Station Name",write:false});
          ! //Zone_Main
          createState('javascript.0.Denon.Zone_Main.Power', false,{type: "boolean", role: "Power Status Zone Main"});
          createState('javascript.0.Denon.Zone_Main.Mute', false,{type: "boolean", role: "Mute Status"});
          createState('javascript.0.Denon.Zone_Main.Master_Volume', 0,{type: "number", role: "Master Volume"});
          createState('javascript.0.Denon.Zone_Main.Master_Volume_UP', false,{type: "boolean", role: "button"});
          createState('javascript.0.Denon.Zone_Main.Master_Volume_DOWN', false,{type: "boolean", role: "button"});
          createState('javascript.0.Denon.Zone_Main.Master_Volume_Max', 0,{type: "number", role: "Master Volume Max",write:false});
          createState('javascript.0.Denon.Zone_Main.Video_Input', 1,{type: "number", role: "Selected Video Input",
          states:"0:DVD;1:BD;2:TV;3:SAT/CBL;4:MPLAY;5:GAME;6:AUX1;7:AUX2;8:AUX3;9:AUX4;10:AUX5;11:AUX6;12:AUX7;13:CD"});
          createState('javascript.0.Denon.Zone_Main.Video_State', false,{type: "boolean", role: "Video ON/OFF"});
          createState('javascript.0.Denon.Zone_Main.Select_Input',5,{type: "number", role: "Select Input",
          states: "0:PHONO;1:CD;2:TUNER;3:DVD;4:BD;5:TV;6:SAT/CBL;7:MPLAY;8:GAME;9:NET;10:SPATIFY;11:LASTFM;12:IRADIO;13:SERVER;14:FAVOTITES;15:AUX1;16:AUX2;17:AUX3;18:AUX4;19:AUX5;20:AUX6;21:AUX7"});
          createState('javascript.0.Denon.Zone_Main.Surround_Mode', 'init',{type: "string", role: "Surround Modus",write:false});
          createState('javascript.0.Denon.Zone_Main.Ratio_Mode', 'init',{type: "string", role: "Ratio Modus",write:false});
          createState('javascript.0.Denon.Zone_Main.Resolution', 'init',{type: "string", role: "Video Resolution",write:false});
          createState('javascript.0.Denon.Zone_Main.Sound_Parameter', 'init',{type: "string", role: "Sound_Parameter",write:false});
          createState('javascript.0.Denon.Zone_Main.HDMI_Monitor',0,{type: "number", role: "HDMI Monitor Out",states: "0:MONIAUTO;1:MONI1;2:MONI2"});
          ! //Zone 2
          createState('javascript.0.Denon.Zone_2.Power_Zone2', false,{type: "boolean", role: "Power Status Zone 2"});
          createState('javascript.0.Denon.Zone_2.Mute', false,{type: "boolean", role: "Mute Status Zone 2"});
          createState('javascript.0.Denon.Zone_2.Volume', 0,{type: "number", role: "Zone 2 Volume"});
          createState('javascript.0.Denon.Zone_2.Volume_UP', 0,{type: "boolean", role: "button"});
          createState('javascript.0.Denon.Zone_2.Volume_DOWN', 0,{type: "boolean", role: "button"});
          createState('javascript.0.Denon.Zone_2.Select_Input',5,{type: "number", role: "Select Input",
          states: "0:PHONO;1:CD;2:TUNER;3:DVD;4:BD;5:TV;6:SAT/CBL;7:MPLAY;8:GAME;9:NET;10:SPATIFY;11:LASTFM;12:IRADIO;13:SERVER;14:FAVOTITES;15:AUX1;16:AUX2;17:AUX3;18:AUX4;19:AUX5;20:AUX6;21:AUX7"});
          ! //Zone 3
          createState('javascript.0.Denon.Zone_3.Power_Zone3', false,{type: "boolean", role: "Power Status Zone 3"});
          createState('javascript.0.Denon.Zone_3.Mute', false,{type: "boolean", role: "Mute Status Zone 3"});
          createState('javascript.0.Denon.Zone_3.Volume', 0,{type: "number", role: "Zone 3 Volume"});
          createState('javascript.0.Denon.Zone_3.Volume_UP', 0,{type: "boolean", role: "button"});
          createState('javascript.0.Denon.Zone_3.Volume_DOWN', 0,{type: "boolean", role: "button"});
          createState('javascript.0.Denon.Zone_3.Select_Input',5,{type: "number", role: "Select Input",
          states: "0:PHONO;1:CD;2:TUNER;3:DVD;4:BD;5:TV;6:SAT/CBL;7:MPLAY;8:GAME;9:NET;10:SPATIFY;11:LASTFM;12:IRADIO;13:SERVER;14:FAVOTITES;15:AUX1;16:AUX2;17:AUX3;18:AUX4;19:AUX5;20:AUX6;21:AUX7"});
          ! // Variablen-------------------------------------------------------------------------
          var AVR_Command =['PW','MVMAX','MV','CV','MU','SI','ZM','SD','DC','SV','SLP','STBY','ECO','MS','VS','PS','PV','Z2','Z2MU','Z2CS','Z2CV','Z2HPF',
          'Z2PS','Z2HDS','Z2SLP','Z2STBY','Z3','Z3MU','Z3CS','Z3CV','Z3HPF','Z3PS','Z3SLP','Z3STBY','TFANNAME','NSET1','NSE','TR','DIM','NSFRN']; // räume den mist später auf ;-)
          var t_request = 100; //beim ersten Start Funktion update aufrufen mit 100ms zwischen den Anfragen, maximal 50ms !
          var client;
          var PW_Request =0;
          ! setState('javascript.0.Denon.System.Verbunden',val=false,akt=false);
          checkIP(getState('javascript.0.Denon.System.IP_Adresse').val);
          ! function checkIP(IP){ //IP Adresse prüfen
          if(net.isIPv4(IP)){
          setTimeout(function () {
          client=Connect(IP);
          },2000);
          }
          else{console.error('ungültige IP Adresse')}
          }

          function Connect(IP){ // zu Server Verbinden

          ! var client = net.connect({host:IP, port:23});
          client.setKeepAlive(true,5000);

             console.log('Connectig...');
          
          client.on('error',function(error) {
              console.error(error);
              killClient(client);
          }); 
          
          client.on('connect', function () {          //Verbindung hergestellt
          console.log('Verbunden mit Denon AVR !');
           {setState('javascript.0.Denon.System.Verbunden',val=true,akt=true)}
            update(t_request); 
          });
          

          ! client.on('end', function () { //die Gegenseite hat die Verbindung geschlossen
          {setState('javascript.0.Denon.System.Verbunden',val=false,akt=true)}
          console.warn('Denon AVR hat die Verbindung geschlossen !');
          killClient(client);
          });

           client.on('data', function (data) {
               console.log(data.toString());
               response(data);
          
           });
          

          return client;
          }//end of Function Connect

          ! function killClient(client){
          {setState('javascript.0.Denon.System.Verbunden',val=false,akt=true)}
          client.destroy();
          client.unref();
          console.log('Connection closed !');
          }
          ! // Funktion Nachricht Senden----------------------------------------------------------
          function sendMessage(message) {
          if(getState('javascript.0.Denon.System.Verbunden').val===true){

          client.write(message+'\r');
          if (message=='PWON'||'ZMON'||'Z2ON'||'Z3ON'){PW_Request=1}
          console.log('Anfrage: '+ message );
          }
          

          }
          //Daten anfordern--------------------------------------------------------------------
          function update(Time){
          console.log('Update Start');
          var i_Pollen=0;
          var Request =['NSET1 ?','NSFRN ?','ZM?','MU?','PW?','SI?','SV?','MS?','MV?','Z2?','Z2MU?','Z3?','Z3MU?','NSE','VSSC ?','VSASP ?','VSMONI ?','TR?','DIM ?'];
          Intervall = setInterval(function () {

              sendMessage(Request[i_Pollen]);
          
              i_Pollen++;
          
                  if (i_Pollen==Request.length){
                      i_Pollen=0;
                      clearInterval(Intervall);
                  }
          
          }, Time);
          

          return true;
          }

          ! function StateText_toArray (StateNames){
          var StateName = StateNames.split(';');
          var StateArr=[];
          for(var i = 0; i < StateName.length; i++) {
          var ele = StateName[i].split(':');
          StateArr[ele[0]] = ele[1];
          }

          return StateArr;
          }

          ! // Daten empfangen------------------------------------------------------------------
          ! function response (data) {

          ! var AVR_Response=data.toString().replace(/[\n\r]/g, ''); // Steuerzeichen "CR" entfernen
          ! for (i = 0; i < AVR_Command.length; i++) {

              var search_index=AVR_Response.search(AVR_Command[i]);
          
              if (search_index===0){
                  break;
              }
          
          }
          
          var id,val;
          
          switch(AVR_Command[i]){  
              case 'MU':
                  // to Request MU?
                  if (AVR_Response=='MUOFF'){setState("javascript.0.Denon.Zone_Main.Mute",false,akt=true)}
                  if (AVR_Response=='MUON'){setState("javascript.0.Denon.Zone_Main.Mute",true,akt=true)}
                 break;
          
              case 'PW':  
                  // to Request PW?
                 if (AVR_Response=='PWSTANDBY'){
                     setState('javascript.0.Denon.System.Power_System',false,akt=true);
                     setState('javascript.0.Denon.System.System_Ready',false,akt=true);
                 }
                 if (AVR_Response=='PWON'){
                     if(PW_Request==1){
                     setState('javascript.0.Denon.System.Power_System',true,akt=true);
                     PW_Request++;
                     }
                     else if(PW_Request==2){
                         setState('javascript.0.Denon.System.System_Ready',true,akt=true);
                         PW_Request=0;
                     }
          
                 }
          
                 break;
          
              case'Z2':
                 if (AVR_Response=='Z2OFF'){setState('javascript.0.Denon.Zone_2.Power_Zone2',false,akt=true)}
                 else if (AVR_Response=='Z2ON'){setState('javascript.0.Denon.Zone_2.Power_Zone2',true,akt=true)}
                 else if (AVR_Response=='Z2MUON'){setState('javascript.0.Denon.Zone_2.Mute',true,akt=true)}
                 else if (AVR_Response=='Z2MUOFF'){setState('javascript.0.Denon.Zone_2.Mute',true,akt=true)}
                  else if (true !==isNaN(parseInt(AVR_Response.slice(2,4)))){
          
                      setState("javascript.0.Denon.Zone_2.Volume",parseFloat(AVR_Response.slice(2,4)),akt=true)}
                   else {
          
                    AVR_Response=AVR_Response.slice(2,AVR_Response.length);
                  id='javascript.0.Denon.Zone_2.Select_Input';
                  val=StateText_toArray(getObject(id).common.states).indexOf(AVR_Response);
                  if (val>=0){setState(id,val,akt=true);}
                   }
                  break;
          
              case'Z3':
                 if (AVR_Response=='Z3OFF'){setState('javascript.0.Denon.Zone_3.Power_Zone3',false,akt=true)}
                 else if (AVR_Response=='Z3ON'){setState('javascript.0.Denon.Zone_3.Power_Zone3',true,akt=true)}
                 else if (AVR_Response=='Z3MUON'){setState('javascript.0.Denon.Zone_3.Mute',true,akt=true)}
                 else if (AVR_Response=='Z3MUOFF'){setState('javascript.0.Denon.Zone_3.Mute',true,akt=true)}
                  else if (true !==isNaN(parseInt(AVR_Response.slice(2,4)))){
          
                      setState("javascript.0.Denon.Zone_3.Volume",parseFloat(AVR_Response.slice(2,4)),akt=true)}
                   else {
          
                    AVR_Response=AVR_Response.slice(2,AVR_Response.length);
                  id='javascript.0.Denon.Zone_3.Select_Input';
                  val=StateText_toArray(getObject(id).common.states).indexOf(AVR_Response);
                  if (val>=0){setState(id,val,akt=true);}
                   }
                  break;    
          
              case 'MV':
                  // to Request MV?
                  AVR_Response=AVR_Response.slice(2,AVR_Response.length);
                  if (AVR_Response.length<3){AVR_Response=AVR_Response+'0'}
                  AVR_Response=AVR_Response.slice(0, 2)+'.'+AVR_Response.slice(2, 3);
                 setState("javascript.0.Denon.Zone_Main.Master_Volume",parseFloat(AVR_Response),akt=true);
          
                 break;
          
               case 'MVMAX':
                  AVR_Response=AVR_Response.slice(6,AVR_Response.length);
                  AVR_Response=AVR_Response.slice(0, 2)+'.'+AVR_Response.slice(2, 3);
                 setState("javascript.0.Denon.Zone_Main.Master_Volume_Max",parseFloat(AVR_Response),akt=true);
                 break;  
          
              case 'SV': 
                  // to Request SV?
                  if (AVR_Response=='SVOFF'){setState("javascript.0.Denon.Zone_Main.Video_State",false,akt=true)}
                  else if (AVR_Response=='SVON'){setState("javascript.0.Denon.Zone_Main.Video_State",true,akt=true)}
                  else {
          
                  AVR_Response=AVR_Response.slice(2,AVR_Response.length);
                  id = 'javascript.0.Denon.Zone_Main.Video_Input';
                  val=StateText_toArray(getObject(id).common.states).indexOf(AVR_Response); //suche in array nach element
          
                  setState(id,val,akt=true);
                  }
                 break;
          
              case 'SI':
                  // to Request SI?
                  AVR_Response=AVR_Response.slice(2,AVR_Response.length);
                  id='javascript.0.Denon.Zone_Main.Select_Input';
                  val=StateText_toArray(getObject(id).common.states).indexOf(AVR_Response);
          
                  setState(id,val,akt=true);
                 break;  
          
              case 'ZM':
                  // to Request ZM?
                  if (AVR_Response=='ZMOFF'){setState('javascript.0.Denon.Zone_Main.Power',false,akt=true)}
                  if (AVR_Response=='ZMON'){setState('javascript.0.Denon.Zone_Main.Power',true,akt=true)}
                 break;
          
              case 'MS':
                  // to Request MS? 
                  AVR_Response=AVR_Response.slice(2,AVR_Response.length);
                  setState("javascript.0.Denon.Zone_Main.Surround_Mode",AVR_Response,akt=true);
                 break;
          
              case 'VS':
          
                  // to Request VSASP ?
                  id = "javascript.0.Denon.Zone_Main.Ratio_Mode";
                  if (AVR_Response=='VSASPFUL'){setState(id,'16:9',akt=true)}
                  else if (AVR_Response=='VSASPNRM'){setState(id,'4:3',akt=true)}
          
                  // to Request VSSC ?
                  id = "javascript.0.Denon.Zone_Main.Resolution";
                  if (AVR_Response=='VSSC48P'){setState(id,'480p/576p',akt=true)}
                  else if (AVR_Response=='VSSC10I'){setState(id,'1080i',akt=true)}
                  else if (AVR_Response=='VSSC72P'){setState(id,'720p',akt=true)}
                  else if (AVR_Response=='VSSC10P'){setState(id,'1080p',akt=true)}
                  else if (AVR_Response=='VSSC10P24'){setState(id,'1080p:24Hz',akt=true)}
                  else if (AVR_Response=='VSSC4K'){setState(id,'4K',akt=true)}
                  else if (AVR_Response=='VSSC4KF'){setState(id,'4K 60/50Hz',akt=true)}
                  else if (AVR_Response=='VSSCAUTO'){setState(id,'AUTO',akt=true)}
          
                  //to Request MONI ? 
                  id='javascript.0.Denon.Zone_Main.HDMI_Monitor';
                   if (AVR_Response=='VSMONIAUTO'){setState(id,0,akt=true)}
                   else if (AVR_Response=='VSMONI1'){setState(id,1,akt=true)}
                   else if (AVR_Response=='VSMONI2'){setState(id,2,akt=true)}
                 break; 
          
              case 'PS':
          
                  // to Request PSMODE: ?
                  setState("javascript.0.Denon.Zone_Main.Sound_Parameter",AVR_Response.slice(7,AVR_Response.length),akt=true);
                  break;
          
              case 'NSE':
          
                    // to Request NSE  // Achtung ohne ? 
                  id='javascript.0.Denon.OSD.OSD_Info_List'+AVR_Response.slice(3, 4);
          
                  if (getState(id)) {             //prüfen ob State vorhanden ist
                  setState (id,AVR_Response=AVR_Response.slice(4,AVR_Response.length),akt=true);
                  }
          
                  break;
          
              case 'TR':
          
                  if (AVR_Response=='TR1 OFF'){setState('javascript.0.Denon.System.Trigger_1',false,akt=true)}
                  else if (AVR_Response=='TR1 ON'){setState('javascript.0.Denon.System.Trigger_1',true,akt=true)}
                  else if (AVR_Response=='TR2 OFF'){setState('javascript.0.Denon.System.Trigger_2',false,akt=true)}
                  else if (AVR_Response=='TR2 ON'){setState('javascript.0.Denon.System.Trigger_2',true,akt=true)}
                  break;
          
              case 'DIM':
                   AVR_Response=AVR_Response.slice(4,AVR_Response.length);
                  id='javascript.0.Denon.System.Display_Dimmer';
                  val=StateText_toArray(getObject(id).common.states).indexOf(AVR_Response);
          
                  setState(id,val,akt=true);
          
                  break;
          
              case 'TFANNAME':
                   setState('javascript.0.Denon.Tuner_Control.RDS_Station_Name',val=AVR_Response.slice(8,AVR_Response.length),akt=true);
                  break;
          
              case 'NSET1':
                  if (AVR_Response.slice(5,8)=='IPA'){
                      var IPstring=AVR_Response.slice(9,AVR_Response.length);
                      if(IPstring[12]=='0'){
                      IPstring=IPstring.substr(0, 12) + '' + IPstring.substr(13,14);
                      }
          

          ! setState('javascript.0.Denon.System.IP_Adresse',val=IPstring,akt=true);

                  }
                  break;    
          
              case 'NSFRN': 
                  setState('javascript.0.Denon.System.Name',val=AVR_Response.slice(5,AVR_Response.length),akt=true);
                  break;
          
              default:
                  //console.log('häääää????');
          }
          

          }

          //--------------------------------------------------------------------------------------
          on('javascript.0.Denon.System.IP_Adresse', function (obj){
          if(getState('javascript.0.Denon.System.Verbunden').val===true){

          killClient(client);
             checkIP(obj.state.val);
          }
          else{checkIP(obj.state.val)}
          

          });

          ! on({id:'javascript.0.Denon.System.UPDATE',val:true}, function (obj){

             update(t_request);
          

          });

          ! on({id:"javascript.0.Denon.System.Command",change:"any"}, function (obj){sendMessage(obj.state.val+'')});
          ! on("javascript.0.Denon.System.Power_System", function (obj){
          if (!obj.state.ack) {
          if (obj.state.val){
          sendMessage('PWON');
          }
          else{sendMessage('PWOFF')}
          }
          });
          ! on('javascript.0.Denon.Zone_Main.Power', function (obj){
          if (!obj.state.ack) {
          if (obj.state.val){
          sendMessage('ZMON');
          }
          else{sendMessage('ZMOFF')}
          }
          });
          ! on('javascript.0.Denon.Zone_2.Power_Zone2', function (obj){
          if (!obj.state.ack) {
          if (obj.state.val){sendMessage('Z2ON')}
          else{sendMessage('Z2OFF')}
          }
          });
          ! on('javascript.0.Denon.Zone_3.Power_Zone3', function (obj){
          if (!obj.state.ack) {
          if (obj.state.val){sendMessage('Z3ON')}
          else{sendMessage('Z3OFF')}
          }
          });
          ! on("javascript.0.Denon.Zone_Main.Mute", function (obj){
          if (!obj.state.ack) {
          if (obj.state.val){sendMessage('MUON')}
          else{sendMessage('MUOFF')}
          }
          });
          ! on("javascript.0.Denon.Zone_2.Mute", function (obj){
          if (!obj.state.ack) {
          if (obj.state.val){sendMessage('Z2MUON')}
          else{sendMessage('Z2MUOFF')}
          }
          });
          ! on("javascript.0.Denon.Zone_3.Mute", function (obj){
          if (!obj.state.ack) {
          if (obj.state.val){sendMessage('Z3MUON')}
          else{sendMessage('Z3MUOFF')}
          }
          });
          ! on("javascript.0.Denon.Zone_Main.Master_Volume", function (obj){
          if (!obj.state.ack) {
          sendMessage('MV'+obj.state.val+'');
          }
          });
          ! on({id:"javascript.0.Denon.Zone_Main.Master_Volume_UP",val:true}, function (obj){
          if (!obj.state.ack) {
          sendMessage('MVUP'+'');
          }
          });
          ! on({id:"javascript.0.Denon.Zone_Main.Master_Volume_DOWN",val:true}, function (obj){
          if (!obj.state.ack) {
          sendMessage('MVDOWN'+'');
          }
          });
          ! on("javascript.0.Denon.Zone_2.Volume", function (obj){
          if (!obj.state.ack) {
          sendMessage('Z2'+obj.state.val+'');
          }
          });
          ! on({id:"javascript.0.Denon.Zone_2.Volume_UP",val:true}, function (obj){
          if (!obj.state.ack) {
          sendMessage('Z2UP'+'');
          }
          });
          ! on({id:"javascript.0.Denon.Zone_2.Volume_DOWN",val:true}, function (obj){
          if (!obj.state.ack) {
          sendMessage('Z2DOWN'+'');
          }
          });
          ! on("javascript.0.Denon.Zone_3.Volume", function (obj){
          if (!obj.state.ack) {
          sendMessage('Z3'+obj.state.val+'');
          }
          });
          ! on({id:"javascript.0.Denon.Zone_3.Volume_UP",val:true}, function (obj){
          if (!obj.state.ack) {
          sendMessage('Z3UP'+'');
          }
          });
          ! on({id:"javascript.0.Denon.Zone_3.Volume_DOWN",val:true}, function (obj){
          if (!obj.state.ack) {
          sendMessage('Z3DOWN'+'');
          }
          });
          ! on({id:"javascript.0.Denon.Control.Play",vla:true}, function (obj){
          if (obj.state.val===true){sendMessage('NS9A')}
          });
          ! on({id:"javascript.0.Denon.Control.Stop",val:true}, function (obj){
          sendMessage('NS9C')
          });
          ! on({id:"javascript.0.Denon.Control.Pause",val:true}, function (obj){
          //if (obj.state.val===true){sendMessage('NS9B')}
          sendMessage('NS9B');
          });
          ! on({id:"javascript.0.Denon.Control.Skip_Plus",val:true}, function (obj){
          sendMessage('NS9D')
          });
          ! on({id:"javascript.0.Denon.Control.Skip_Minus",val:true}, function (obj){
          sendMessage('NS9E')
          });
          ! on({id:"javascript.0.Denon.Control.Page_Next",val:true}, function (obj){
          sendMessage('NS9X')
          });
          ! on({id:"javascript.0.Denon.Control.Page_Previous",val:true}, function (obj){
          sendMessage('NS9Y')
          });
          ! on('javascript.0.Denon.Zone_Main.Select_Input', function (obj){
          if (!obj.state.ack) {
          if(obj.state.val>=0){
          sendMessage('SI'+ StateText_toArray(obj.common.states)[obj.state.val].toUpperCase() );
          }
          }
          });
          ! on('javascript.0.Denon.Zone_2.Select_Input', function (obj){
          if (!obj.state.ack) {
          if(obj.state.val>=0){
          sendMessage('Z2'+ StateText_toArray(obj.common.states)[obj.state.val].toUpperCase() );
          }
          }
          });
          ! on('javascript.0.Denon.Zone_3.Select_Input', function (obj){
          if (!obj.state.ack) {
          if(obj.state.val>=0){
          sendMessage('Z3'+ StateText_toArray(obj.common.states)[obj.state.val].toUpperCase() );
          }
          }
          });
          ! on('javascript.0.Denon.Zone_Main.Video_Input', function (obj){
          if (!obj.state.ack) {
          if(obj.state.val>=0){
          sendMessage('SV'+ StateText_toArray(obj.common.states)[obj.state.val].toUpperCase() );
          }
          }
          });
          ! on('javascript.0.Denon.Zone_Main.Video_State', function (obj){
          if (!obj.state.ack) {
          if (obj.state.val===true){sendMessage('SVON')}
          else{sendMessage('SVOFF')}
          }
          });
          ! on('javascript.0.Denon.Zone_Main.HDMI_Monitor', function (obj){
          if (!obj.state.ack) {
          if(obj.state.val>=0){
          sendMessage('VS'+ StateText_toArray(obj.common.states)[obj.state.val].toUpperCase() );
          }
          }
          });
          ! on("javascript.0.Denon.System.Trigger_1", function (obj){
          if (!obj.state.ack) {
          if (obj.state.val===true){sendMessage('TR1 ON')}
          else{sendMessage('TR1 OFF')}
          }
          });
          ! on("javascript.0.Denon.System.Trigger_2", function (obj){
          if (!obj.state.ack) {
          if (obj.state.val===true){sendMessage('TR2 ON')}
          else{sendMessage('TR2 OFF')}
          }
          });
          ! on('javascript.0.Denon.System.Display_Dimmer', function (obj){
          if (!obj.state.ack) {
          if(obj.state.val>=0){
          sendMessage('DIM '+ StateText_toArray(obj.common.states)[obj.state.val].toUpperCase() );
          }
          }
          });
          ! on({id:'javascript.0.Denon.Tuner_Control.Frequency_UP',val:true}, function (obj){sendMessage('TFANUP')});
          ! on({id:'javascript.0.Denon.Tuner_Control.Frequency_DOWN',val:true}, function (obj){sendMessage('TFANDOWN')});
          ! on({id:'javascript.0.Denon.Tuner_Control.Preset_UP',val:true}, function (obj){sendMessage('TPANUP')});
          ! on({id:'javascript.0.Denon.Tuner_Control.Preset_DOWN',val:true}, function (obj){sendMessage('TPANDOWN')});
          ! //---------------------------------------------------------------------------------------
          ! // close connection if script stopped-------------------------------------------------
          onStop(function () {
          if(getState('javascript.0.Denon.System.Verbunden').val===true){killClient(client)};
          }, 2000 /ms/);` [/i][/i][/i]

          1 Reply Last reply
          0
          • K Offline
            K Offline
            Kueppert
            wrote on last edited by
            #33

            Hi Lucky, danke dir für das Script. Werde es mit meinem Denon 1300 Mal testen. Kannst du hier vielleicht einen Screen Posten von deiner"Fernbedienung" und evtl auch die Codes zu den Widgets die du für den Denon nutzt?

            Danke dir und Grüße, Thorsten

            Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk

            UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

            1 Reply Last reply
            0
            • K Offline
              K Offline
              Kueppert
              wrote on last edited by
              #34

              @Lucky:

              so, die vorerst letzte änderung:

              Schönheitsfehler behoben

              neue Funktionen: 1: Systemname wird jetzt vom Gerät abgerufen 2: es wird angezeit wann der AVR '' fertig gebootet'' hat, also wenn es "klick" gemacht hat (das ist wichtig wenn man z.b. mit Alexa steuern will, denn erst wenn der AVR vollständig hochgefahren ist, werden die kommandos richtig umgesetzt!)

              ! ```
              `//Kontakt: s-nolte@htp-tel.de
              //ioBroker Forum: Lucky
              var net = require('net');
              ! // System
              createState('javascript.0.Denon.System.UPDATE', false,{type: "boolean", role: "button"});
              createState('javascript.0.Denon.System.Power_System', false,{type: "boolean", role: "Power System"});
              createState('javascript.0.Denon.System.System_Ready', false,{type: "boolean", role: "System Ready",write:false});
              createState('javascript.0.Denon.System.IP_Adresse', '000.000.000.000',{type: "string", role: "AVR IP Adresse"});
              createState('javascript.0.Denon.System.Trigger_1', false,{type: "boolean", role: "Trigger 1"});
              createState('javascript.0.Denon.System.Trigger_2', false,{type: "boolean", role: "Trigger 2"});
              createState('javascript.0.Denon.System.Command', '',{type: "string", role: "Command to AVR"});
              createState('javascript.0.Denon.System.Display_Dimmer',0,{type: "number", role: "FL Display Dimmer",states: "0:BRI;1:DIM;2:DAR;3:OFF"});
              createState('javascript.0.Denon.System.Verbunden',false,{type: "boolean", role: "Verbindung hergestellt",write:false});
              createState('javascript.0.Denon.System.Name',{type: "string", role: "Netzwerk-Name",write:false});
              ! //OSD
              createState('javascript.0.Denon.OSD.OSD_Info_List0', 'init',{type: "string", role: "Onscreen Display Info List00",write:false});
              createState('javascript.0.Denon.OSD.OSD_Info_List1', 'init',{type: "string", role: "Onscreen Display Info List01",write:false});
              createState('javascript.0.Denon.OSD.OSD_Info_List2', 'init',{type: "string", role: "Onscreen Display Info List02",write:false});
              createState('javascript.0.Denon.OSD.OSD_Info_List3', 'init',{type: "string", role: "Onscreen Display Info List03",write:false});
              createState('javascript.0.Denon.OSD.OSD_Info_List4', 'init',{type: "string", role: "Onscreen Display Info List04",write:false});
              createState('javascript.0.Denon.OSD.OSD_Info_List5', 'init',{type: "string", role: "Onscreen Display Info List05",write:false});
              createState('javascript.0.Denon.OSD.OSD_Info_List6', 'init',{type: "string", role: "Onscreen Display Info List06",write:false});
              createState('javascript.0.Denon.OSD.OSD_Info_List7', 'init',{type: "string", role: "Onscreen Display Info List07",write:false});
              createState('javascript.0.Denon.OSD.OSD_Info_List8', 'init',{type: "string", role: "Onscreen Display Info List08",write:false});
              ! //Controls
              createState('javascript.0.Denon.Control.Play', false,{type:"boolean", role: "button"});
              createState('javascript.0.Denon.Control.Stop', false,{type: "boolean", role: "button"});
              createState('javascript.0.Denon.Control.Pause', false,{type: "boolean", role: "button"});
              createState('javascript.0.Denon.Control.Skip_Plus', false,{type: "boolean", role: "button"});
              createState('javascript.0.Denon.Control.Skip_Minus', false,{type: "boolean", role: "button"});
              createState('javascript.0.Denon.Control.Page_Next', false,{type: "boolean", role: "button"});
              createState('javascript.0.Denon.Control.Page_Previous', false,{type: "boolean", role: "button"});
              ! //Tuner Control
              createState('javascript.0.Denon.Tuner_Control.Frequency_UP', false,{type:"boolean", role: "button"});
              createState('javascript.0.Denon.Tuner_Control.Frequency_DOWN', false,{type:"boolean", role: "button"});
              createState('javascript.0.Denon.Tuner_Control.Preset_UP', false,{type:"boolean", role: "button"});
              createState('javascript.0.Denon.Tuner_Control.Preset_DOWN', false,{type:"boolean", role: "button"});
              createState('javascript.0.Denon.Tuner_Control.RDS_Station_Name', 'init',{type:"string", role: "RDS Station Name",write:false});
              ! //Zone_Main
              createState('javascript.0.Denon.Zone_Main.Power', false,{type: "boolean", role: "Power Status Zone Main"});
              createState('javascript.0.Denon.Zone_Main.Mute', false,{type: "boolean", role: "Mute Status"});
              createState('javascript.0.Denon.Zone_Main.Master_Volume', 0,{type: "number", role: "Master Volume"});
              createState('javascript.0.Denon.Zone_Main.Master_Volume_UP', false,{type: "boolean", role: "button"});
              createState('javascript.0.Denon.Zone_Main.Master_Volume_DOWN', false,{type: "boolean", role: "button"});
              createState('javascript.0.Denon.Zone_Main.Master_Volume_Max', 0,{type: "number", role: "Master Volume Max",write:false});
              createState('javascript.0.Denon.Zone_Main.Video_Input', 1,{type: "number", role: "Selected Video Input",
              states:"0:DVD;1:BD;2:TV;3:SAT/CBL;4:MPLAY;5:GAME;6:AUX1;7:AUX2;8:AUX3;9:AUX4;10:AUX5;11:AUX6;12:AUX7;13:CD"});
              createState('javascript.0.Denon.Zone_Main.Video_State', false,{type: "boolean", role: "Video ON/OFF"});
              createState('javascript.0.Denon.Zone_Main.Select_Input',5,{type: "number", role: "Select Input",
              states: "0:PHONO;1:CD;2:TUNER;3:DVD;4:BD;5:TV;6:SAT/CBL;7:MPLAY;8:GAME;9:NET;10:SPATIFY;11:LASTFM;12:IRADIO;13:SERVER;14:FAVOTITES;15:AUX1;16:AUX2;17:AUX3;18:AUX4;19:AUX5;20:AUX6;21:AUX7"});
              createState('javascript.0.Denon.Zone_Main.Surround_Mode', 'init',{type: "string", role: "Surround Modus",write:false});
              createState('javascript.0.Denon.Zone_Main.Ratio_Mode', 'init',{type: "string", role: "Ratio Modus",write:false});
              createState('javascript.0.Denon.Zone_Main.Resolution', 'init',{type: "string", role: "Video Resolution",write:false});
              createState('javascript.0.Denon.Zone_Main.Sound_Parameter', 'init',{type: "string", role: "Sound_Parameter",write:false});
              createState('javascript.0.Denon.Zone_Main.HDMI_Monitor',0,{type: "number", role: "HDMI Monitor Out",states: "0:MONIAUTO;1:MONI1;2:MONI2"});
              ! //Zone 2
              createState('javascript.0.Denon.Zone_2.Power_Zone2', false,{type: "boolean", role: "Power Status Zone 2"});
              createState('javascript.0.Denon.Zone_2.Mute', false,{type: "boolean", role: "Mute Status Zone 2"});
              createState('javascript.0.Denon.Zone_2.Volume', 0,{type: "number", role: "Zone 2 Volume"});
              createState('javascript.0.Denon.Zone_2.Volume_UP', 0,{type: "boolean", role: "button"});
              createState('javascript.0.Denon.Zone_2.Volume_DOWN', 0,{type: "boolean", role: "button"});
              createState('javascript.0.Denon.Zone_2.Select_Input',5,{type: "number", role: "Select Input",
              states: "0:PHONO;1:CD;2:TUNER;3:DVD;4:BD;5:TV;6:SAT/CBL;7:MPLAY;8:GAME;9:NET;10:SPATIFY;11:LASTFM;12:IRADIO;13:SERVER;14:FAVOTITES;15:AUX1;16:AUX2;17:AUX3;18:AUX4;19:AUX5;20:AUX6;21:AUX7"});
              ! //Zone 3
              createState('javascript.0.Denon.Zone_3.Power_Zone3', false,{type: "boolean", role: "Power Status Zone 3"});
              createState('javascript.0.Denon.Zone_3.Mute', false,{type: "boolean", role: "Mute Status Zone 3"});
              createState('javascript.0.Denon.Zone_3.Volume', 0,{type: "number", role: "Zone 3 Volume"});
              createState('javascript.0.Denon.Zone_3.Volume_UP', 0,{type: "boolean", role: "button"});
              createState('javascript.0.Denon.Zone_3.Volume_DOWN', 0,{type: "boolean", role: "button"});
              createState('javascript.0.Denon.Zone_3.Select_Input',5,{type: "number", role: "Select Input",
              states: "0:PHONO;1:CD;2:TUNER;3:DVD;4:BD;5:TV;6:SAT/CBL;7:MPLAY;8:GAME;9:NET;10:SPATIFY;11:LASTFM;12:IRADIO;13:SERVER;14:FAVOTITES;15:AUX1;16:AUX2;17:AUX3;18:AUX4;19:AUX5;20:AUX6;21:AUX7"});
              ! // Variablen-------------------------------------------------------------------------
              var AVR_Command =['PW','MVMAX','MV','CV','MU','SI','ZM','SD','DC','SV','SLP','STBY','ECO','MS','VS','PS','PV','Z2','Z2MU','Z2CS','Z2CV','Z2HPF',
              'Z2PS','Z2HDS','Z2SLP','Z2STBY','Z3','Z3MU','Z3CS','Z3CV','Z3HPF','Z3PS','Z3SLP','Z3STBY','TFANNAME','NSET1','NSE','TR','DIM','NSFRN']; // räume den mist später auf ;-)
              var t_request = 100; //beim ersten Start Funktion update aufrufen mit 100ms zwischen den Anfragen, maximal 50ms !
              var client;
              var PW_Request =0;
              ! setState('javascript.0.Denon.System.Verbunden',val=false,akt=false);
              checkIP(getState('javascript.0.Denon.System.IP_Adresse').val);
              ! function checkIP(IP){ //IP Adresse prüfen
              if(net.isIPv4(IP)){
              setTimeout(function () {
              client=Connect(IP);
              },2000);
              }
              else{console.error('ungültige IP Adresse')}
              }

              function Connect(IP){ // zu Server Verbinden

              ! var client = net.connect({host:IP, port:23});
              client.setKeepAlive(true,5000);

                 console.log('Connectig...');
                 
              client.on('error',function(error) {
                  console.error(error);
                  killClient(client);
              }); 
              
              client.on('connect', function () {          //Verbindung hergestellt
              console.log('Verbunden mit Denon AVR !');
               {setState('javascript.0.Denon.System.Verbunden',val=true,akt=true)}
                update(t_request); 
              });
              

              ! client.on('end', function () { //die Gegenseite hat die Verbindung geschlossen
              {setState('javascript.0.Denon.System.Verbunden',val=false,akt=true)}
              console.warn('Denon AVR hat die Verbindung geschlossen !');
              killClient(client);
              });

               client.on('data', function (data) {
                   console.log(data.toString());
                   response(data);
                   
               });
              

              return client;
              }//end of Function Connect

              ! function killClient(client){
              {setState('javascript.0.Denon.System.Verbunden',val=false,akt=true)}
              client.destroy();
              client.unref();
              console.log('Connection closed !');
              }
              ! // Funktion Nachricht Senden----------------------------------------------------------
              function sendMessage(message) {
              if(getState('javascript.0.Denon.System.Verbunden').val===true){

              client.write(message+'\r');
              if (message=='PWON'||'ZMON'||'Z2ON'||'Z3ON'){PW_Request=1}
              console.log('Anfrage: '+ message );
              }
              

              }
              //Daten anfordern--------------------------------------------------------------------
              function update(Time){
              console.log('Update Start');
              var i_Pollen=0;
              var Request =['NSET1 ?','NSFRN ?','ZM?','MU?','PW?','SI?','SV?','MS?','MV?','Z2?','Z2MU?','Z3?','Z3MU?','NSE','VSSC ?','VSASP ?','VSMONI ?','TR?','DIM ?'];
              Intervall = setInterval(function () {

                  sendMessage(Request[i_Pollen]);
                  
                  i_Pollen++;
                      
                      if (i_Pollen==Request.length){
                          i_Pollen=0;
                          clearInterval(Intervall);
                      }
                  
              }, Time);
              

              return true;
              }

              ! function StateText_toArray (StateNames){
              var StateName = StateNames.split(';');
              var StateArr=[];
              for(var i = 0; i < StateName.length; i++) {
              var ele = StateName[i].split(':');
              StateArr[ele[0]] = ele[1];
              }

              return StateArr;
              }

              ! // Daten empfangen------------------------------------------------------------------
              ! function response (data) {

              ! var AVR_Response=data.toString().replace(/[\n\r]/g, ''); // Steuerzeichen "CR" entfernen
              ! for (i = 0; i < AVR_Command.length; i++) {

                  var search_index=AVR_Response.search(AVR_Command[i]);
                  
                  if (search_index===0){
                      break;
                  }
                  
              }
              
              var id,val;
              
              switch(AVR_Command[i]){  
                  case 'MU':
                      // to Request MU?
                      if (AVR_Response=='MUOFF'){setState("javascript.0.Denon.Zone_Main.Mute",false,akt=true)}
                      if (AVR_Response=='MUON'){setState("javascript.0.Denon.Zone_Main.Mute",true,akt=true)}
                     break;
                     
                  case 'PW':  
                      // to Request PW?
                     if (AVR_Response=='PWSTANDBY'){
                         setState('javascript.0.Denon.System.Power_System',false,akt=true);
                         setState('javascript.0.Denon.System.System_Ready',false,akt=true);
                     }
                     if (AVR_Response=='PWON'){
                         if(PW_Request==1){
                         setState('javascript.0.Denon.System.Power_System',true,akt=true);
                         PW_Request++;
                         }
                         else if(PW_Request==2){
                             setState('javascript.0.Denon.System.System_Ready',true,akt=true);
                             PW_Request=0;
                         }
                         
                     }
                    
                     break;
                     
                     
                  case'Z2':
                     if (AVR_Response=='Z2OFF'){setState('javascript.0.Denon.Zone_2.Power_Zone2',false,akt=true)}
                     else if (AVR_Response=='Z2ON'){setState('javascript.0.Denon.Zone_2.Power_Zone2',true,akt=true)}
                     else if (AVR_Response=='Z2MUON'){setState('javascript.0.Denon.Zone_2.Mute',true,akt=true)}
                     else if (AVR_Response=='Z2MUOFF'){setState('javascript.0.Denon.Zone_2.Mute',true,akt=true)}
                      else if (true !==isNaN(parseInt(AVR_Response.slice(2,4)))){
                          
                          setState("javascript.0.Denon.Zone_2.Volume",parseFloat(AVR_Response.slice(2,4)),akt=true)}
                       else {
                      
                        AVR_Response=AVR_Response.slice(2,AVR_Response.length);
                      id='javascript.0.Denon.Zone_2.Select_Input';
                      val=StateText_toArray(getObject(id).common.states).indexOf(AVR_Response);
                      if (val>=0){setState(id,val,akt=true);}
                       }
                      break;
                      
                  case'Z3':
                     if (AVR_Response=='Z3OFF'){setState('javascript.0.Denon.Zone_3.Power_Zone3',false,akt=true)}
                     else if (AVR_Response=='Z3ON'){setState('javascript.0.Denon.Zone_3.Power_Zone3',true,akt=true)}
                     else if (AVR_Response=='Z3MUON'){setState('javascript.0.Denon.Zone_3.Mute',true,akt=true)}
                     else if (AVR_Response=='Z3MUOFF'){setState('javascript.0.Denon.Zone_3.Mute',true,akt=true)}
                      else if (true !==isNaN(parseInt(AVR_Response.slice(2,4)))){
                         
                          setState("javascript.0.Denon.Zone_3.Volume",parseFloat(AVR_Response.slice(2,4)),akt=true)}
                       else {
                      
                        AVR_Response=AVR_Response.slice(2,AVR_Response.length);
                      id='javascript.0.Denon.Zone_3.Select_Input';
                      val=StateText_toArray(getObject(id).common.states).indexOf(AVR_Response);
                      if (val>=0){setState(id,val,akt=true);}
                       }
                      break;    
                  
                  case 'MV':
                      // to Request MV?
                      AVR_Response=AVR_Response.slice(2,AVR_Response.length);
                      if (AVR_Response.length<3){AVR_Response=AVR_Response+'0'}
                      AVR_Response=AVR_Response.slice(0, 2)+'.'+AVR_Response.slice(2, 3);
                     setState("javascript.0.Denon.Zone_Main.Master_Volume",parseFloat(AVR_Response),akt=true);
                      
                     break;
                     
                   case 'MVMAX':
                      AVR_Response=AVR_Response.slice(6,AVR_Response.length);
                      AVR_Response=AVR_Response.slice(0, 2)+'.'+AVR_Response.slice(2, 3);
                     setState("javascript.0.Denon.Zone_Main.Master_Volume_Max",parseFloat(AVR_Response),akt=true);
                     break;  
                     
                  case 'SV': 
                      // to Request SV?
                      if (AVR_Response=='SVOFF'){setState("javascript.0.Denon.Zone_Main.Video_State",false,akt=true)}
                      else if (AVR_Response=='SVON'){setState("javascript.0.Denon.Zone_Main.Video_State",true,akt=true)}
                      else {
                      
                      AVR_Response=AVR_Response.slice(2,AVR_Response.length);
                      id = 'javascript.0.Denon.Zone_Main.Video_Input';
                      val=StateText_toArray(getObject(id).common.states).indexOf(AVR_Response); //suche in array nach element
                      
                      setState(id,val,akt=true);
                      }
                     break;
                     
                  case 'SI':
                      // to Request SI?
                      AVR_Response=AVR_Response.slice(2,AVR_Response.length);
                      id='javascript.0.Denon.Zone_Main.Select_Input';
                      val=StateText_toArray(getObject(id).common.states).indexOf(AVR_Response);
                      
                      setState(id,val,akt=true);
                     break;  
                     
                  case 'ZM':
                      // to Request ZM?
                      if (AVR_Response=='ZMOFF'){setState('javascript.0.Denon.Zone_Main.Power',false,akt=true)}
                      if (AVR_Response=='ZMON'){setState('javascript.0.Denon.Zone_Main.Power',true,akt=true)}
                     break;
                     
                  case 'MS':
                      // to Request MS? 
                      AVR_Response=AVR_Response.slice(2,AVR_Response.length);
                      setState("javascript.0.Denon.Zone_Main.Surround_Mode",AVR_Response,akt=true);
                     break;
                     
                  case 'VS':
                      
                      // to Request VSASP ?
                      id = "javascript.0.Denon.Zone_Main.Ratio_Mode";
                      if (AVR_Response=='VSASPFUL'){setState(id,'16:9',akt=true)}
                      else if (AVR_Response=='VSASPNRM'){setState(id,'4:3',akt=true)}
                      
                      // to Request VSSC ?
                      id = "javascript.0.Denon.Zone_Main.Resolution";
                      if (AVR_Response=='VSSC48P'){setState(id,'480p/576p',akt=true)}
                      else if (AVR_Response=='VSSC10I'){setState(id,'1080i',akt=true)}
                      else if (AVR_Response=='VSSC72P'){setState(id,'720p',akt=true)}
                      else if (AVR_Response=='VSSC10P'){setState(id,'1080p',akt=true)}
                      else if (AVR_Response=='VSSC10P24'){setState(id,'1080p:24Hz',akt=true)}
                      else if (AVR_Response=='VSSC4K'){setState(id,'4K',akt=true)}
                      else if (AVR_Response=='VSSC4KF'){setState(id,'4K 60/50Hz',akt=true)}
                      else if (AVR_Response=='VSSCAUTO'){setState(id,'AUTO',akt=true)}
                      
                      //to Request MONI ? 
                      id='javascript.0.Denon.Zone_Main.HDMI_Monitor';
                       if (AVR_Response=='VSMONIAUTO'){setState(id,0,akt=true)}
                       else if (AVR_Response=='VSMONI1'){setState(id,1,akt=true)}
                       else if (AVR_Response=='VSMONI2'){setState(id,2,akt=true)}
                     break; 
               
                  case 'PS':
                      
                      // to Request PSMODE: ?
                      setState("javascript.0.Denon.Zone_Main.Sound_Parameter",AVR_Response.slice(7,AVR_Response.length),akt=true);
                      break;
                      
                  
                  case 'NSE':
                      
                        // to Request NSE  // Achtung ohne ? 
                      id='javascript.0.Denon.OSD.OSD_Info_List'+AVR_Response.slice(3, 4);
                      
                      if (getState(id)) {             //prüfen ob State vorhanden ist
                      setState (id,AVR_Response=AVR_Response.slice(4,AVR_Response.length),akt=true);
                      }
                    
                      break;
                      
                  case 'TR':
                      
                      if (AVR_Response=='TR1 OFF'){setState('javascript.0.Denon.System.Trigger_1',false,akt=true)}
                      else if (AVR_Response=='TR1 ON'){setState('javascript.0.Denon.System.Trigger_1',true,akt=true)}
                      else if (AVR_Response=='TR2 OFF'){setState('javascript.0.Denon.System.Trigger_2',false,akt=true)}
                      else if (AVR_Response=='TR2 ON'){setState('javascript.0.Denon.System.Trigger_2',true,akt=true)}
                      break;
                      
                  case 'DIM':
                       AVR_Response=AVR_Response.slice(4,AVR_Response.length);
                      id='javascript.0.Denon.System.Display_Dimmer';
                      val=StateText_toArray(getObject(id).common.states).indexOf(AVR_Response);
                      
                      setState(id,val,akt=true);
                      
                      break;
                  
                  case 'TFANNAME':
                       setState('javascript.0.Denon.Tuner_Control.RDS_Station_Name',val=AVR_Response.slice(8,AVR_Response.length),akt=true);
                      break;
                      
                  case 'NSET1':
                      if (AVR_Response.slice(5,8)=='IPA'){
                          var IPstring=AVR_Response.slice(9,AVR_Response.length);
                          if(IPstring[12]=='0'){
                          IPstring=IPstring.substr(0, 12) + '' + IPstring.substr(13,14);
                          }
              

              ! setState('javascript.0.Denon.System.IP_Adresse',val=IPstring,akt=true);

                      }
                      break;    
                  
                  case 'NSFRN': 
                      setState('javascript.0.Denon.System.Name',val=AVR_Response.slice(5,AVR_Response.length),akt=true);
                      break;
                      
                  default:
                      //console.log('häääää????');
              }
              

              }

              //--------------------------------------------------------------------------------------
              on('javascript.0.Denon.System.IP_Adresse', function (obj){
              if(getState('javascript.0.Denon.System.Verbunden').val===true){

              killClient(client);
                 checkIP(obj.state.val);
              }
              else{checkIP(obj.state.val)}
              

              });

              ! on({id:'javascript.0.Denon.System.UPDATE',val:true}, function (obj){

                 update(t_request);
              

              });

              ! on({id:"javascript.0.Denon.System.Command",change:"any"}, function (obj){sendMessage(obj.state.val+'')});
              ! on("javascript.0.Denon.System.Power_System", function (obj){
              if (!obj.state.ack) {
              if (obj.state.val){
              sendMessage('PWON');
              }
              else{sendMessage('PWOFF')}
              }
              });
              ! on('javascript.0.Denon.Zone_Main.Power', function (obj){
              if (!obj.state.ack) {
              if (obj.state.val){
              sendMessage('ZMON');
              }
              else{sendMessage('ZMOFF')}
              }
              });
              ! on('javascript.0.Denon.Zone_2.Power_Zone2', function (obj){
              if (!obj.state.ack) {
              if (obj.state.val){sendMessage('Z2ON')}
              else{sendMessage('Z2OFF')}
              }
              });
              ! on('javascript.0.Denon.Zone_3.Power_Zone3', function (obj){
              if (!obj.state.ack) {
              if (obj.state.val){sendMessage('Z3ON')}
              else{sendMessage('Z3OFF')}
              }
              });
              ! on("javascript.0.Denon.Zone_Main.Mute", function (obj){
              if (!obj.state.ack) {
              if (obj.state.val){sendMessage('MUON')}
              else{sendMessage('MUOFF')}
              }
              });
              ! on("javascript.0.Denon.Zone_2.Mute", function (obj){
              if (!obj.state.ack) {
              if (obj.state.val){sendMessage('Z2MUON')}
              else{sendMessage('Z2MUOFF')}
              }
              });
              ! on("javascript.0.Denon.Zone_3.Mute", function (obj){
              if (!obj.state.ack) {
              if (obj.state.val){sendMessage('Z3MUON')}
              else{sendMessage('Z3MUOFF')}
              }
              });
              ! on("javascript.0.Denon.Zone_Main.Master_Volume", function (obj){
              if (!obj.state.ack) {
              sendMessage('MV'+obj.state.val+'');
              }
              });
              ! on({id:"javascript.0.Denon.Zone_Main.Master_Volume_UP",val:true}, function (obj){
              if (!obj.state.ack) {
              sendMessage('MVUP'+'');
              }
              });
              ! on({id:"javascript.0.Denon.Zone_Main.Master_Volume_DOWN",val:true}, function (obj){
              if (!obj.state.ack) {
              sendMessage('MVDOWN'+'');
              }
              });
              ! on("javascript.0.Denon.Zone_2.Volume", function (obj){
              if (!obj.state.ack) {
              sendMessage('Z2'+obj.state.val+'');
              }
              });
              ! on({id:"javascript.0.Denon.Zone_2.Volume_UP",val:true}, function (obj){
              if (!obj.state.ack) {
              sendMessage('Z2UP'+'');
              }
              });
              ! on({id:"javascript.0.Denon.Zone_2.Volume_DOWN",val:true}, function (obj){
              if (!obj.state.ack) {
              sendMessage('Z2DOWN'+'');
              }
              });
              ! on("javascript.0.Denon.Zone_3.Volume", function (obj){
              if (!obj.state.ack) {
              sendMessage('Z3'+obj.state.val+'');
              }
              });
              ! on({id:"javascript.0.Denon.Zone_3.Volume_UP",val:true}, function (obj){
              if (!obj.state.ack) {
              sendMessage('Z3UP'+'');
              }
              });
              ! on({id:"javascript.0.Denon.Zone_3.Volume_DOWN",val:true}, function (obj){
              if (!obj.state.ack) {
              sendMessage('Z3DOWN'+'');
              }
              });
              ! on({id:"javascript.0.Denon.Control.Play",vla:true}, function (obj){
              if (obj.state.val===true){sendMessage('NS9A')}
              });
              ! on({id:"javascript.0.Denon.Control.Stop",val:true}, function (obj){
              sendMessage('NS9C')
              });
              ! on({id:"javascript.0.Denon.Control.Pause",val:true}, function (obj){
              //if (obj.state.val===true){sendMessage('NS9B')}
              sendMessage('NS9B');
              });
              ! on({id:"javascript.0.Denon.Control.Skip_Plus",val:true}, function (obj){
              sendMessage('NS9D')
              });
              ! on({id:"javascript.0.Denon.Control.Skip_Minus",val:true}, function (obj){
              sendMessage('NS9E')
              });
              ! on({id:"javascript.0.Denon.Control.Page_Next",val:true}, function (obj){
              sendMessage('NS9X')
              });
              ! on({id:"javascript.0.Denon.Control.Page_Previous",val:true}, function (obj){
              sendMessage('NS9Y')
              });
              ! on('javascript.0.Denon.Zone_Main.Select_Input', function (obj){
              if (!obj.state.ack) {
              if(obj.state.val>=0){
              sendMessage('SI'+ StateText_toArray(obj.common.states)[obj.state.val].toUpperCase() );
              }
              }
              });
              ! on('javascript.0.Denon.Zone_2.Select_Input', function (obj){
              if (!obj.state.ack) {
              if(obj.state.val>=0){
              sendMessage('Z2'+ StateText_toArray(obj.common.states)[obj.state.val].toUpperCase() );
              }
              }
              });
              ! on('javascript.0.Denon.Zone_3.Select_Input', function (obj){
              if (!obj.state.ack) {
              if(obj.state.val>=0){
              sendMessage('Z3'+ StateText_toArray(obj.common.states)[obj.state.val].toUpperCase() );
              }
              }
              });
              ! on('javascript.0.Denon.Zone_Main.Video_Input', function (obj){
              if (!obj.state.ack) {
              if(obj.state.val>=0){
              sendMessage('SV'+ StateText_toArray(obj.common.states)[obj.state.val].toUpperCase() );
              }
              }
              });
              ! on('javascript.0.Denon.Zone_Main.Video_State', function (obj){
              if (!obj.state.ack) {
              if (obj.state.val===true){sendMessage('SVON')}
              else{sendMessage('SVOFF')}
              }
              });
              ! on('javascript.0.Denon.Zone_Main.HDMI_Monitor', function (obj){
              if (!obj.state.ack) {
              if(obj.state.val>=0){
              sendMessage('VS'+ StateText_toArray(obj.common.states)[obj.state.val].toUpperCase() );
              }
              }
              });
              ! on("javascript.0.Denon.System.Trigger_1", function (obj){
              if (!obj.state.ack) {
              if (obj.state.val===true){sendMessage('TR1 ON')}
              else{sendMessage('TR1 OFF')}
              }
              });
              ! on("javascript.0.Denon.System.Trigger_2", function (obj){
              if (!obj.state.ack) {
              if (obj.state.val===true){sendMessage('TR2 ON')}
              else{sendMessage('TR2 OFF')}
              }
              });
              ! on('javascript.0.Denon.System.Display_Dimmer', function (obj){
              if (!obj.state.ack) {
              if(obj.state.val>=0){
              sendMessage('DIM '+ StateText_toArray(obj.common.states)[obj.state.val].toUpperCase() );
              }
              }
              });
              ! on({id:'javascript.0.Denon.Tuner_Control.Frequency_UP',val:true}, function (obj){sendMessage('TFANUP')});
              ! on({id:'javascript.0.Denon.Tuner_Control.Frequency_DOWN',val:true}, function (obj){sendMessage('TFANDOWN')});
              ! on({id:'javascript.0.Denon.Tuner_Control.Preset_UP',val:true}, function (obj){sendMessage('TPANUP')});
              ! on({id:'javascript.0.Denon.Tuner_Control.Preset_DOWN',val:true}, function (obj){sendMessage('TPANDOWN')});
              ! //---------------------------------------------------------------------------------------
              ! // close connection if script stopped-------------------------------------------------
              onStop(function () {
              if(getState('javascript.0.Denon.System.Verbunden').val===true){killClient(client)};
              }, 2000 /ms/);Muss das Thema noch einmal hoch holen. Lucky, magst du vielleicht einen Screen hochladen und ggf die Codes deiner Widgets? Wurde bestimmt auch anderen weiterhelfen... Danke dir schon einmal. ! VG kueppert ! Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk[/i][/i][/i] ```

              UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

              1 Reply Last reply
              0
              • D Offline
                D Offline
                djtale2003
                wrote on last edited by
                #35

                @Lucky:

                !!!!!!!!Aktuelle Version im Post vom 21.06.2017, 22:28 !!!!!! `

                Hallo Zuzsammen. Wo finde ich diesen Post?

                Wie geht es dann weiter?

                Bin gerade total hilflos.

                1 Reply Last reply
                0
                • Jey CeeJ Online
                  Jey CeeJ Online
                  Jey Cee
                  Developer
                  wrote on last edited by
                  #36

                  Wirklich? 3 Beiträge über deinem.

                  Gesendet von Unterwegs

                  Persönlicher Support
                  Spenden -> paypal.me/J3YC33

                  1 Reply Last reply
                  0
                  • K Offline
                    K Offline
                    Kueppert
                    wrote on last edited by
                    #37

                    Hab das Script jetzt Mal bei mir in die Scripte über einen neuen Ordner Denon importiert und gestartet. Sieht gut aus. Musste nur die IP im Script eintragen und die Objekte sind da :) jetzt noch die entstehenden Widgets in vis suchen und die Fernbedienung für den Denon wird gebaut. Top

                    Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk

                    UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

                    1 Reply Last reply
                    0
                    • K Offline
                      K Offline
                      Kueppert
                      wrote on last edited by
                      #38

                      Hi,

                      bin dabei meine Fernbedienung zu bauen. Kann mir jemand sagen, mit welchem Objekt ich den Receiver einschalte?? Aktuell versuche ich es mit dem Wiget "basic bulb" und der Objekt-ID "javascript.0.Denon.System.Power_System". Wert für ID = false ist dann false und Wert für ID = true habe ich true eingetragen. Aber das funktioniert nicht :(

                      Danke euch und Grüße, Thorsten

                      UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

                      1 Reply Last reply
                      0
                      • lobomauL Offline
                        lobomauL Offline
                        lobomau
                        wrote on last edited by
                        #39

                        Ich möchte das Script auch mal testen. In welcher Zeile trage ich die IP des Denon ein?

                        Host: NUC8i3 mit Proxmox:

                        • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
                        • Slave: Pi4
                        1 Reply Last reply
                        0
                        • K Offline
                          K Offline
                          Kueppert
                          wrote on last edited by
                          #40

                          In die Zeile wo die 12 nuller stehen 000.000.000.000

                          Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk

                          UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

                          1 Reply Last reply
                          0
                          • K Offline
                            K Offline
                            knopers1
                            wrote on last edited by
                            #41

                            Hi,

                            ich habe einen Denon-AVR-X1100-W.

                            Die IP Adresse habe ich angepasst, ist auch statisch. Script ist unter common.

                            createState('javascript.0.Denon.System.IP_Adresse', '192.168.001.051',{type: "string", role: "AVR IP Adresse"});
                            

                            Netzwerksteuerung ist EIN uns steht auf "immer"

                            Beim Starten des Scriptes bekomme ich immer:

                            17:44:54.405	[error]	javascript.0 script.js.common.DenonAVR: ungültige IP Adresse
                            

                            IP Adresse passt, ds ich über die IP auf die Weboberfläche komme.

                            Hast Du eine Idee was da nicht stimmen könnte?
                            1526_unbenannt.png
                            1526_unbenannt1.png

                            HP Microserver Gen8, RPI-4, IoBroker,

                            1 Reply Last reply
                            0
                            • K Offline
                              K Offline
                              Kueppert
                              wrote on last edited by
                              #42

                              Hm, hat bei mir zumindest die Verbindung auf Anhieb funktioniert. Du musst meine ich die IP wird in deinem 2. Bild im Script eintragen, also nicht 192.168.1.1 sondern 192.168.001.001 (ist nur eine Beispiel IP)

                              Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk

                              UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

                              1 Reply Last reply
                              0
                              • K Offline
                                K Offline
                                Kueppert
                                wrote on last edited by
                                #43

                                Kleiner Tip für alle, die einen Denon 1200W nutzen:

                                Im Script ist ein Fehler, daher kann man den Receiver nicht an oder ausschalten.

                                Einfach folgenden Code:

                                        else{sendMessage('PWOFF')}
                                ````in Zeile 422 (gemäß Notepad) in
                                
                                    else{sendMessage('PWSTANDBY')}
                                
                                
                                Die Codes habe ich von folgender URL (verweist auf Denon_USA):
                                
                                [https://www.google.de/url?sa=t&amp;rct=j&amp;q= … SOoo6RRrWA](https://www.google.de/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=3&amp;ved=0ahUKEwisntPRxvrVAhWCVBQKHdfgDMIQFgg7MAI&amp;url=https%3A%2F%2Fusa.denon.com%2Fus%2Fproduct%2Fhometheater%2Freceivers%2Favr3808ci%3Fdocname%3DAVR-3808CISerialProtocol_Ver520a.pdf&amp;usg=AFQjCNHfUGmjlbRyMffC3GsaSOoo6RRrWA)
                                
                                Umgesetzt habe ich den Power-Button mit "Basic Bulp on/off"
                                
                                Habe mal mein Widget exportiert:
                                
                                >! [{"tpl":"tplBulbOnOffCtrl","data":{"oid":"javascript.0.Denon.System.Power_System","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":true,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","icon_off":"/vis.0/main/img/on.png","icon_on":"/vis.0/main/img/off.png","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"g_ccontrol":true,"oidTrueValue":"false","oidFalseValue":"true","min":"0"},"style":{"left":"1072px","top":"387px","z-index":"2","width":"90px","height":"90px","border-width":"4px","border-style":"solid"},"widgetSet":"basic"}]
                                
                                Denke, das könnte dem einen oder anderen weiterhelfen :o)
                                
                                VG Thorsten

                                UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

                                1 Reply Last reply
                                0
                                • lobomauL Offline
                                  lobomauL Offline
                                  lobomau
                                  wrote on last edited by
                                  #44

                                  @knopers1:

                                  Hi,

                                  ich habe einen Denon-AVR-X1100-W.

                                  Die IP Adresse habe ich angepasst, ist auch statisch. Script ist unter common.

                                  createState('javascript.0.Denon.System.IP_Adresse', '192.168.001.051',{type: "string", role: "AVR IP Adresse"});
                                  

                                  Netzwerksteuerung ist EIN uns steht auf "immer"

                                  Beim Starten des Scriptes bekomme ich immer:

                                  17:44:54.405	[error]	javascript.0 script.js.common.DenonAVR: ungültige IP Adresse
                                  

                                  IP Adresse passt, ds ich über die IP auf die Weboberfläche komme.

                                  Hast Du eine Idee was da nicht stimmen könnte? `
                                  Bei mir genau das gleiche. Ich habe einen Denon AVR-X1000.

                                  Probiert habe 192.168.178.54 und 192.168.178.054.

                                  Eventuell ist das Gerät nicht kompatibel? Laufen tut die Android app "Denon Remote App".

                                  Edit: was bei mir funktioniert… aus dem ersten thread:

                                  http://192.168.178.54/goform/formiPhoneAppDirect.xml?SIFAVORITES
                                  

                                  Host: NUC8i3 mit Proxmox:

                                  • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
                                  • Slave: Pi4
                                  1 Reply Last reply
                                  0
                                  • K Offline
                                    K Offline
                                    knopers1
                                    wrote on last edited by
                                    #45

                                    @lomobau

                                    wo hastv Du die Zeile eingefügt? Läuft das Script jetzt bei Dir?

                                    Kannst Du dein Script hier zeigen?

                                    HP Microserver Gen8, RPI-4, IoBroker,

                                    1 Reply Last reply
                                    0
                                    • lobomauL Offline
                                      lobomauL Offline
                                      lobomau
                                      wrote on last edited by
                                      #46

                                      @knopers1:

                                      @lomobau

                                      wo hastv Du die Zeile eingefügt? Läuft das Script jetzt bei Dir?

                                      Kannst Du dein Script hier zeigen? `
                                      Nein, läuft nicht. Habe einfach die http-Zeile in Browser eingefügt, um zu prüfen ob es generell funktioniert.

                                      Wenn ich es eingebe, springt die App auf Favourites, der Denon wohl auch (der steht im Keller… ich hatte da grad keine Zeit zu schauen)

                                      Host: NUC8i3 mit Proxmox:

                                      • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
                                      • Slave: Pi4
                                      1 Reply Last reply
                                      0
                                      • K Offline
                                        K Offline
                                        Kueppert
                                        wrote on last edited by
                                        #47

                                        Versucht doch Mal, eine Doku für euren Receiver zu finden wie ich oben eine für meinen angehangen habe. Evtl sind die Befehle für den 1100 anders?

                                        Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk

                                        UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

                                        1 Reply Last reply
                                        0
                                        • L Offline
                                          L Offline
                                          Lucky
                                          wrote on last edited by
                                          #48

                                          Moin Moin ;-)

                                          tragt bitte die IP Adresse NICHT im Skript ein, sondern in dem dafür gedachten State, das Skript überprüft diese auf richtige Schreibweise sobald sich der Wert ändert !

                                          Das ist auch der Grund für die Meldung "ungültige IP Adresse"

                                          Da ich natürlich nicht jedes Gerät testen kann, könnt ihr im State "Command to AVR" direkt die Befehle aus der passenden API zu eurem Gerät eintragen um diese zu testen.
                                          2611_unbenannt.png

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          673

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe