NEWS
[Aufruf] DENON & Marantz Adapter
-
Hier übrigens mein Test-Script, mit dem es funktioniert, hatte aber auf eine elegantere Lösung gehofft
/******************************************************************************* * --------------------------- * Schalte den Philips-Fernseher über den Denon-Adapter an * ---------------------------------------------------- * Version: 0.1 * Autor: Mic * Published: https://forum.iobroker.net/post/261332 ******************************************************************************/ // State ID const STATE_PATH = 'javascript.0.mic.PhilipsTV.turnOn'; // Logge Infos const LOG_INFO = false; /******************************************************************************* * Ab hier nichts mehr ändern / Stop editing here! ******************************************************************************/ /******************************************************************************* * Initiale Function *******************************************************************************/ init(); function init() { // 1. Create states createScriptStates(); // 2. Schedule on({id: STATE_PATH, val:true}, function (obj) { turnOnPhilipsTv(); }); } /******************************************************************************* * Haupt-Skript *******************************************************************************/ function turnOnPhilipsTv() { if (getState('philips-tv.0.info.connection').val) { if (LOG_INFO) log('Verbindung Philips-TV zu ioBroker noch vorhanden.'); // Fernseher ist mit ioBroker-Adapter verbunden, also können wir easy einschalten und sind fertig. // Receiver wird dank HDMI CEC automatisch eingeschaltet. setState('philips-tv.0.pressKey', 'Home'); } else { if (LOG_INFO) log('Philips-TV ist nicht mit ioBroker verbunden.'); // Fernseher ist nicht verbunden, also nutzen wir den Denon (HDMI CEC) zum Einschalten. // Zunächst prüfen wir, ob der Denon an ist oder nicht und vergeben einen Delay, weil // sonst der Denon direkt nach dem Einschalten noch keine Befehle entgegen nimmt. if (getState('denon.0.zoneMain.powerZone').val) { // Denon ist bereits an if (LOG_INFO) log('Denon ist bereits an'); setState('denon.0.settings.setupMenu', true); // Setup-Menü öffnen, das schaltet den Fernseher an. setState('denon.0.settings.setupMenu', false); philipsCountToConnected(); } else { // Denon ist noch nicht an if (LOG_INFO) log('Denon ist noch nicht an an'); setState('denon.0.zoneMain.selectInput', 'TV'); // Denon einschalten setStateDelayed('denon.0.settings.setupMenu', true, 11000); // Setup-Menü öffnen, das schaltet den Fernseher an. setTimeout(function(){ log('Setup-Menü AN'); }, 11000); setStateDelayed('denon.0.settings.setupMenu', true, 12000); // Noch mal, ging sonst nicht setTimeout(function(){ log('Setup-Menü AN 2'); }, 12000); setStateDelayed('denon.0.settings.setupMenu', true, 13000); // Noch mal, ging sonst nicht setTimeout(function(){ log('Setup-Menü AN 3'); }, 13000); setTimeout(philipsCountToConnected, 14000); } } } /** * Home-Bildschirm, sobald der TV erreichbar. * Wir lassen das 60 Sekunden laufen. */ function philipsCountToConnected() { let counter = 0 let intervalId = setInterval(function(){ if(counter < 60) { counter++; if (LOG_INFO) log('x-Zähler: ' + counter); if (getState('philips-tv.0.info.connection').val) { if (LOG_INFO) log('Fernseher nach ' + counter + ' Sekunden nun mit ioBroker verbunden. Wir wechseln auf Home-Bildschirm.'); setStateDelayed('philips-tv.0.pressKey', 'Home',500); if (counter > 3) setStateDelayed('philips-tv.0.pressKey', 'Home',3000); // Test, zur Sicherheit noch mal, falls vorher keine Verbindung war. if (counter > 3) setStateDelayed('denon.0.settings.setupMenu', false,3000); // Setup-Menü aus, damit wir die Lautstärkeregelung am Display vernünftig sehen clearInterval(intervalId); // raus. } } else { clearInterval(intervalId); } }, 1000); } /** * Create States */ function createScriptStates(){ createState(STATE_PATH, {'name':'TurnOnTV', 'type':'boolean', 'read':true, 'write':true, 'role':'button', 'def':false }); }
-
@foxriver76 sagte in [Aufruf] DENON & Marantz Adapter:
Laut Protokoll sollte er auf SV? antworten, kannst du mal in den 45 Sekunden in denen die Verbindung steht in den State
settings.expertCommand
z. B.MV50
schreiben und schauen ob die Lautstärke geändert wird, bzw der Befehl im Debug Log bestätigt wird?Jetzt ist es wieder so, dass der Adapter immer von Grün zu Gelb wechselt.
denon.0 2019-06-10 22:06:53.451 debug [INFO] ==> Message sent: BDSTATUS? denon.0 2019-06-10 22:06:53.451 debug [INFO] ==> Message sent: SV01? denon.0 2019-06-10 22:06:53.451 debug [INFO] ==> Message sent: SV? denon.0 2019-06-10 22:06:53.450 debug [CONNECT] Connected --> Check receiver type denon.0 2019-06-10 22:06:53.450 info [CONNECT] Adapter connected to DENON-AVR: 10.0.1.38:23 denon.0 2019-06-10 22:06:53.449 info [CONNECT] Trying to connect to 10.0.1.38:23 denon.0 2019-06-10 22:06:23.438 warn AVR timed out due to no response
settings.expertCommand
z. B.MV38
funktioniert in der Zeit wo er Grün ist.denon.0 2019-06-10 22:10:47.383 debug [DATA] <== Incoming data: MVMAX 98 denon.0 2019-06-10 22:10:47.339 debug [DATA] <== Incoming data: MV38 denon.0 2019-06-10 22:10:47.254 debug [INFO] ==> Message sent: MV38 denon.0 2019-06-10 22:10:47.254 debug [COMMAND] State Change - ID: settings.expertCommand; State: MV38
-
@Negalein Wie ich vermutet habe antwortet er nicht auf SV, obwohl er das tun sollte. Dadurch wird dann der AVR-Typ nicht erkannt und es endet letztendlich im Timeout. Ist die Firmware vom AVR aktuell?
-
@foxriver76 sagte in [Aufruf] DENON & Marantz Adapter:
Ist die Firmware vom AVR aktuell?
Ja, erst heute wiedermal kontrolliert.
-
@foxriver76 Hej,
ich habe einen Denon X3000 und bei mir werden die LFE und Subwoofer werte nicht angezeigt. Des weiteren wollte ich mal nachfragen da ich per Simple Api den Adapter Steuer ob es eine Möglichkeit gibt, die werte für z.B. denon.0.zoneMain.channelVolumeCenter, FrontLeft, …. per Button zu erhöhen bzw. zu senken ? Nutze nicht die ioB VIS sondern Mediola.
-
@Mazze in vis gibt es nen increment Button, Mediola kenne ich mich nicht aus. Zu ersterem, wird wahrscheinlich vom AVR nicht gesendet, da es auch nicht in den Spezifikationen enthalten ist. Hier scheint alles zu sein, was der x3000 kann, evtl findest du da ein Äquivalent zu zum pslfe Kommando und subwoofer http://literature.puertoricosupplier.com/077/TM76787.pdf
-
Hier mal die Daten zur Abfrage beim X3000:
SW UP CVSW UP<CR>
SW DOWN ---SUBWOOFERch CVSW DOWN<CR>
SW ** **:38 to 62 by ASCII , 50=0dB,00=OFF CVSW 50<CR>sowie beim LFE und Effekt:
LFE UP LFE UP/DOWN , direct change to **dB PSLEE UP<CR>
LFE DOWN **:00 to 99 by ASCII , 00=0dB, 10=-10dB PSLFE DOWN<CR>
LFE ** ---AVR-X3000 can be operated from 0 to -10 PSLFE 10<CR> LFE ? Return PSLFE Status PSLFE ? <CR> EFF UP EFFECT UP/DOWN , EFFECT LEVEL direct change to **dB PSEFF UP<CR>
EFF DOWN **:00 to 99 by ASCII , 00=0dB, 10=10dB PSEFF DOWN<CR>
EFF ** ---AVR-X3000 can be operated from 1 to 15 PSEFF 10<CR> EFF ? Return PSEFF Status PSEFF ?<CR>Kann ich das auch selbst integrieren ? Sorry weiß nicht ob ich an deinem Adapter meine spezifischen Funktionen hinzufügen kann. Bin mit ioB nicht so vertraut, nutze es nur als Gateway
-
@Mazze schaue es mir mal an, du kannst deine Kommandos testen mit dem State
settings.expertCommand
-
Ach so, glaube LFE ist bislang gar nicht integriert im Adapter. Und was genau fehlt dir am Subwoofer an States mit Bezug auf die Beschreibung? Dann implementiere ich das die Tage mal in einem Schwung.
-
@foxriver76 Er Zeigt bei mir denon.0.settings.subwooferLevel keinen Wert an. Bei mir müsste dort -11,5 dB stehen.
-
@Mazze subwoofer Level wird mit PSSWL abgefragt, das scheint es tatsächlich nicht zu geben (habe dieses mal manuell nachgeschaut in der Doku - iOS Sufu mag das Dokument net). Habe auf Anhieb auch keinen anderen Befehl als Ersatz in der Doku zu deinem Receiver gesehen, habe allerdings nur mein Smartphone zur Hand.
LFE werde ich die Tage mal implementieren.
beste Grüße
fox