NEWS
[Aufruf] DENON & Marantz Adapter
-
Okay, also wenn du die Number rein schreibst, sollte es klappen, die Liste scheint auch zu klappen. Ich werde mal schauen, ob man den String auch annehmen kann in Zukunft, zumindest sollte ein Adapter-Absturz verhindert werden. `
Ja, das mit den States ist so eine Sache. Ein ähnliches Problem habe ich auch gerade bei einem Adapter, wo ich dran arbeite. Eigentlich wäre es sinnvoll die Liste der States mit gleichem Key und Value zu erzeugen anstatt einen Key zu erfinden und den hoch zuzählen.
Das hat den Vorteil, dass man einen String auf den State schreiben oder aus der Liste auswählen kann. Wenn man einen Murks-String schreibt, muss man prüfen, ob das Gerät den Befehl ablehnt und den letzten State aktualisiert oder ob man den vorher noch prüft.
Auch ginge ein Array für die States zu nutzen. Das hat zumindest den Vorteil, dass bei Auswahl aus der Klappliste echte Integers als Index auf den State geschrieben werden. Dann könnte man, um auch Strings zu akzeptieren, es am Datentyp unterscheiden. Number -> index der States, String -> Name des Inputs.
Was meint ihr dazu?
Grüße
Daniel
-
Okay, also wenn du die Number rein schreibst, sollte es klappen, die Liste scheint auch zu klappen. Ich werde mal schauen, ob man den String auch annehmen kann in Zukunft, zumindest sollte ein Adapter-Absturz verhindert werden. `
Ja, das mit den States ist so eine Sache. Ein ähnliches Problem habe ich auch gerade bei einem Adapter, wo ich dran arbeite. Eigentlich wäre es sinnvoll die Liste der States mit gleichem Key und Value zu erzeugen anstatt einen Key zu erfinden und den hoch zuzählen.
Das hat den Vorteil, dass man einen String auf den State schreiben oder aus der Liste auswählen kann. Wenn man einen Murks-String schreibt, muss man prüfen, ob das Gerät den Befehl ablehnt und den letzten State aktualisiert oder ob man den vorher noch prüft.
Auch ginge ein Array für die States zu nutzen. Das hat zumindest den Vorteil, dass bei Auswahl aus der Klappliste echte Integers als Index auf den State geschrieben werden. Dann könnte man, um auch Strings zu akzeptieren, es am Datentyp unterscheiden. Number -> index der States, String -> Name des Inputs.
Was meint ihr dazu? `
So in etwa handhabe ich es derzeit. Ich habe Key, Value Paare und wenn jemand eins setzt, suche ich mir den Wert an Index 1 raus und sende ihn in Kombination mit dem Kommando.
Bsp State:
! ````
adapter.setObjectNotExists('zone2.selectInput', {
type: 'state',
common: {
name: 'zone2.selectInput',
role: 'Select Input',
type: 'number',
write: true,
read: true,
states: {
"0": "PHONO",
"1": "CD",
"2": "TUNER",
"3": "DVD",
"4": "BD",
"5": "TV",
"6": "SAT/CBL",
"7": "MPLAY",
"8": "GAME",
"9": "NET",
"10": "SPOTIFY",
"11": "LASTFM",
"12": "IRADIO",
"13": "SERVER",
"14": "FAVORITES",
"15": "AUX1",
"16": "AUX2",
"17": "AUX3",
"18": "AUX4",
"19": "AUX5",
"20": "AUX6",
"21": "AUX7"
}
},
native: {}
});! ````
Und dann kannst du wunderbar drauf zugreifen, insofern die Values für dich auch handelbar sind. Wenn jetzt jemand einen String setzt, kannst du ja einfach ein Array aus den Value Paaren nach dem String durchsuchen.
-
So in etwa handhabe ich es derzeit. Ich habe Key, Value Paare und wenn jemand eins setzt, suche ich mir den Wert an Index 1 raus und sende ihn in Kombination mit dem Kommando. `
Das Problem ist aber, dass man den Index kennen muss. Und wenn ich den State jetzt z.B. über ein Javascript steuere oder über die vis, dann muss ich die Zuordnung kennen. OK, hier indem Fall ist diese State-Liste ja statisch und ändert sich nicht. In meinem Fall ist die dynamisch, da ist das ehr nachteilig.Und dann kannst du wunderbar drauf zugreifen, insofern die Values für dich auch handelbar sind. Wenn jetzt jemand einen String setzt, kannst du ja einfach ein Array aus den Value Paaren nach dem String durchsuchen. `
So wie du es jetzt gemacht hast, kannst du aber nicht erkennen, ob jemand einen String drauf schreibt oder ein Index, da dieser ja auch ein String ist (z.B. "1"). Der Datentyp von InputSelect ist jetzt Number. So würde ich jetzt zwar erwarten, das bei Schreiben von 1 auch ein Number 1 rauskommt, aber akzeptiert der dann überhaupt Strings? Ganz sauber wäre es aber irgendwie nicht.Grüße
Daniel
-
Was passiert denn (intern), wenn man "SLP?<cr>" absetzt? Irgendeine Antwort muss der AVR doch geben. Wozu ist so ein Kommando sonst aufgeführt? Wenn die Antwort irgendwo im Stream kommt, kann man dann nicht nach SLP oder so suchen, sich merken, welches Kommando noch ne Antwort benötigt und dann einen zwei passende States wie "LastCommand" und "ReturnOfLastCommand" oder so machen? Wenn zu SLP dann nichts kommt ist meine Spekulation natürlich hinfällig.
Erstmal aber dank noch mal für's Update.</cr> `
Wenn man die Sleep Anfrage schickt, bekommt man eine Antwort im ähnlichen Format z.B. SLPOFF (Sleep Timer aus) oder SLP050 (für noch 50 Minuten). Häufig ist es auch so z. B. sendest du MV20 und bekommst auch MV20 bestätigt. Jedoch zweifle ich, dass das ganze im ms Bereich konsistent ist, wenn gleichzeitig z. B. über die Fernbedienung geschalten wird.
Es wäre ein leichtes, das letzte empfange Kommando in einem State zu speichern, dann könnte man sich für viele Fälle evtl. was basteln.
-
So in etwa handhabe ich es derzeit. Ich habe Key, Value Paare und wenn jemand eins setzt, suche ich mir den Wert an Index 1 raus und sende ihn in Kombination mit dem Kommando.
Das Problem ist aber, dass man den Index kennen muss. Und wenn ich den State jetzt z.B. über ein Javascript steuere oder über die vis, dann muss ich die Zuordnung kennen. OK, hier indem Fall ist diese State-Liste ja statisch und ändert sich nicht. In meinem Fall ist die dynamisch, da ist das ehr nachteilig.
Ja korrekt, stellt in meinem Fall kein Problem dar. Bei einer dynamischen Situation, wäre es wohl das schlauste, wenn man direkt nach dem Kommando oder zumindest mittels contains den Wert finden kann.
Und dann kannst du wunderbar drauf zugreifen, insofern die Values für dich auch handelbar sind. Wenn jetzt jemand einen String setzt, kannst du ja einfach ein Array aus den Value Paaren nach dem String durchsuchen.
So wie du es jetzt gemacht hast, kannst du aber nicht erkennen, ob jemand einen String drauf schreibt oder ein Index, da dieser ja auch ein String ist (z.B. "1"). Der Datentyp von InputSelect ist jetzt Number. So würde ich jetzt zwar erwarten, das bei Schreiben von 1 auch ein Number 1 rauskommt, aber akzeptiert der dann überhaupt Strings? Ganz sauber wäre es aber irgendwie nicht.
Ich habe es derzeit noch nicht implementiert, nach dem String zu suchen. Ich hatte vorhin mal exemplarisch ein String in die Number geschrieben und er hatte ihn zumindest angenommen ohne abzuschmieren. Ja sauber ist es nicht, jedoch könnte man nur Strings annehmen und dann abprüfen ob es Key oder Value matched, wenn ich gerade kein Denkfehler drin habe.
-
Leider habe ich mit sehr vielen Disconnects zu kämpfen.
Manchmal geht es manchmal nicht. Habe einen AVR3311. Netzwerkverbindung zum AVR ist aber stabil, da ich imm er Internetradio höre und hier keinerlei Aussetzer habe.
denon.0 2018-06-11 15:52:14.766 info Adapter connected to DENON-AVR: 192.168.178.20:23 denon.0 2018-06-11 15:52:14.742 info Trying to connect to 192.168.178.20:23 denon.0 2018-06-11 15:52:12.401 info Connection closed! denon.0 2018-06-11 15:52:12.400 error Error: This socket is closed denon.0 2018-06-11 15:52:11.837 info Connection closed! denon.0 2018-06-11 15:52:11.834 error Error: This socket is closed denon.0 2018-06-11 15:52:11.175 info Connection closed! denon.0 2018-06-11 15:52:11.171 error Error: This socket is closed denon.0 2018-06-11 15:52:10.178 info Connection closed! denon.0 2018-06-11 15:52:10.172 error Error: This socket is closed denon.0 2018-06-11 15:52:09.643 info Connection closed! denon.0 2018-06-11 15:52:09.642 error Error: This socket is closed denon.0 2018-06-11 15:52:08.649 info Connection closed! denon.0 2018-06-11 15:52:08.647 error Error: This socket is closed denon.0 2018-06-11 15:51:44.740 info Connection closed! denon.0 2018-06-11 15:51:44.739 error AVR timed out denon.0 2018-06-11 15:51:00.975 info Adapter connected to DENON-AVR: 192.168.178.20:23 denon.0 2018-06-11 15:51:00.931 info Trying to connect to 192.168.178.20:23 denon.0 2018-06-11 15:51:00.922 info Starting DENON AVR adapter denon.0 2018-06-11 15:51:00.904 info starting. Version 0.1.5 in /opt/iobroker/node_modules/iobroker.denon, node: v6.12.0 denon.0 2018-06-11 15:50:56.684 info terminating denon.0 2018-06-11 15:50:56.622 info Stopping Denon AVR adapter... denon.0 2018-06-11 15:50:54.949 info Connection closed! denon.0 2018-06-11 15:50:54.947 error AVR timed out
-
Leider habe ich mit sehr vielen Disconnects zu kämpfen.
Manchmal geht es manchmal nicht. Habe einen AVR3311. Netzwerkverbindung zum AVR ist aber stabil, da ich imm er Internetradio höre und hier keinerlei Aussetzer habe.
denon.0 2018-06-11 15:52:14.766 info Adapter connected to DENON-AVR: 192.168.178.20:23 denon.0 2018-06-11 15:52:14.742 info Trying to connect to 192.168.178.20:23 denon.0 2018-06-11 15:52:12.401 info Connection closed! denon.0 2018-06-11 15:52:12.400 error Error: This socket is closed denon.0 2018-06-11 15:52:11.837 info Connection closed! denon.0 2018-06-11 15:52:11.834 error Error: This socket is closed denon.0 2018-06-11 15:52:11.175 info Connection closed! denon.0 2018-06-11 15:52:11.171 error Error: This socket is closed denon.0 2018-06-11 15:52:10.178 info Connection closed! denon.0 2018-06-11 15:52:10.172 error Error: This socket is closed denon.0 2018-06-11 15:52:09.643 info Connection closed! denon.0 2018-06-11 15:52:09.642 error Error: This socket is closed denon.0 2018-06-11 15:52:08.649 info Connection closed! denon.0 2018-06-11 15:52:08.647 error Error: This socket is closed denon.0 2018-06-11 15:51:44.740 info Connection closed! denon.0 2018-06-11 15:51:44.739 error AVR timed out denon.0 2018-06-11 15:51:00.975 info Adapter connected to DENON-AVR: 192.168.178.20:23 denon.0 2018-06-11 15:51:00.931 info Trying to connect to 192.168.178.20:23 denon.0 2018-06-11 15:51:00.922 info Starting DENON AVR adapter denon.0 2018-06-11 15:51:00.904 info starting. Version 0.1.5 in /opt/iobroker/node_modules/iobroker.denon, node: v6.12.0 denon.0 2018-06-11 15:50:56.684 info terminating denon.0 2018-06-11 15:50:56.622 info Stopping Denon AVR adapter... denon.0 2018-06-11 15:50:54.949 info Connection closed! denon.0 2018-06-11 15:50:54.947 error AVR timed out ```` `
Bitte Adapter auf Debug stellen und dann mal den Log posten, bei einem Timeout.
Welche Version des Adapters? Werden die DisplayContents bei dir befüllt?
-
Du meinst den das Log auf Debug einstellen? War schon die ganze Zeit.
Ja, die Contents werden teilweise befüllt.
-
Du meinst den das Log auf Debug einstellen? War schon die ganze Zeit.
Ja, die Contents werden teilweise befüllt. `
Unter dem Tab Instanzen auf das runde Icon mit dem Männchen das beim hovern Expertenmodus anzeigt und dann auf Log Stufe hinter dem Denon Adapter klicken und debug selektieren.
-
denon.0 2018-06-11 17:40:52.844 debug Incoming data: MUOFF denon.0 2018-06-11 17:40:52.843 debug Command to handle is MUOFF denon.0 2018-06-11 17:40:52.833 debug Message sent: MU? denon.0 2018-06-11 17:40:52.745 debug Incoming data: ZMON denon.0 2018-06-11 17:40:52.744 debug Command to handle is ZMON denon.0 2018-06-11 17:40:52.732 debug Message sent: ZM? denon.0 2018-06-11 17:40:52.648 debug Incoming data: NSFRN denon.0 2018-06-11 17:40:52.630 debug Message sent: NSFRN ? denon.0 2018-06-11 17:40:52.529 debug Message sent: NSET1 ? denon.0 2018-06-11 17:40:52.433 info Adapter connected to DENON-AVR: 192.168.178.20:23 denon.0 2018-06-11 17:40:52.432 debug Connected --> updating states on start denon.0 2018-06-11 17:40:52.426 info Trying to connect to 192.168.178.20:23 denon.0 2018-06-11 17:40:22.419 info Connection closed! denon.0 2018-06-11 17:40:22.418 error AVR timed out denon.0 2018-06-11 17:39:47.412 debug Incoming data: SLPOFF denon.0 2018-06-11 17:39:47.411 debug Command to handle is SLPOFF denon.0 2018-06-11 17:39:47.397 debug Message sent: Z3SLP? denon.0 2018-06-11 17:39:47.397 debug Message sent: Z2SLP? denon.0 2018-06-11 17:39:47.397 debug Message sent: SLP? denon.0 2018-06-11 17:39:47.397 debug Message sent: SV? denon.0 2018-06-11 17:39:47.395 debug Message sent: NSE denon.0 2018-06-11 17:39:41.021 debug Incoming data: PSDYNEQ OFF denon.0 2018-06-11 17:39:41.020 debug Command to handle is PSDYNEQOFF
Reicht das?
-
denon.0 2018-06-11 17:40:52.844 debug Incoming data: MUOFF denon.0 2018-06-11 17:40:52.843 debug Command to handle is MUOFF denon.0 2018-06-11 17:40:52.833 debug Message sent: MU? denon.0 2018-06-11 17:40:52.745 debug Incoming data: ZMON denon.0 2018-06-11 17:40:52.744 debug Command to handle is ZMON denon.0 2018-06-11 17:40:52.732 debug Message sent: ZM? denon.0 2018-06-11 17:40:52.648 debug Incoming data: NSFRN denon.0 2018-06-11 17:40:52.630 debug Message sent: NSFRN ? denon.0 2018-06-11 17:40:52.529 debug Message sent: NSET1 ? denon.0 2018-06-11 17:40:52.433 info Adapter connected to DENON-AVR: 192.168.178.20:23 denon.0 2018-06-11 17:40:52.432 debug Connected --> updating states on start denon.0 2018-06-11 17:40:52.426 info Trying to connect to 192.168.178.20:23 denon.0 2018-06-11 17:40:22.419 info Connection closed! denon.0 2018-06-11 17:40:22.418 error AVR timed out denon.0 2018-06-11 17:39:47.412 debug Incoming data: SLPOFF denon.0 2018-06-11 17:39:47.411 debug Command to handle is SLPOFF denon.0 2018-06-11 17:39:47.397 debug Message sent: Z3SLP? denon.0 2018-06-11 17:39:47.397 debug Message sent: Z2SLP? denon.0 2018-06-11 17:39:47.397 debug Message sent: SLP? denon.0 2018-06-11 17:39:47.397 debug Message sent: SV? denon.0 2018-06-11 17:39:47.395 debug Message sent: NSE denon.0 2018-06-11 17:39:41.021 debug Incoming data: PSDYNEQ OFF denon.0 2018-06-11 17:39:41.020 debug Command to handle is PSDYNEQOFF
Reicht das? `
Jop danke. Welche Version des Adapters?
-
0.1.5, heute neu installiert
-
0.1.5, heute neu installiert `
Habe gerade eben was gepusht. Allerdings nur auf GIT, wenn du mal neu installieren könntest, ich hoffe das behebt das Problem.
-
OK, neu installiert, ist aber noch Version 0.1.5
Leider wieder Error
denon.0 2018-06-11 18:32:17.003 info Connection closed! denon.0 2018-06-11 18:32:17.001 error AVR timed out denon.0 2018-06-11 18:31:41.960 debug Message sent: Z3SLP? denon.0 2018-06-11 18:31:41.960 debug Message sent: Z2SLP? denon.0 2018-06-11 18:31:41.960 debug Message sent: SLP? denon.0 2018-06-11 18:31:41.959 debug Message sent: SV? denon.0 2018-06-11 18:31:41.959 debug Message sent: NSE denon.0 2018-06-11 18:31:33.936 debug Incoming data: NSE8 [ 30/32 ] denon.0 2018-06-11 18:31:33.935 debug Incoming data: denon.0 2018-06-11 18:31:33.935 debug Command to handle is denon.0 2018-06-11 18:31:33.930 debug Incoming data: NSE7Soma FM Groove Salad denon.0 2018-06-11 18:31:33.924 debug Incoming data: NSE6SofaRadio Om Mani denon.0 2018-06-11 18:31:33.922 debug Incoming data: NSE502:41:31 100%
-
Jop Version ist noch dieselbe. Ich habe noch eine Idee.
-
Jop Version ist noch dieselbe. Ich habe noch eine Idee. `
Jetzt kannst du es nochmal versuchen. Hoffe das hilft.
-
Nabend,
Forum war down, das setzen des SelectInput über die Nummern funktioniert und die neuste Version des Adapters auch.
Vielen Dank für deine Arbeit am Adapter.
Grüße
Brati
-
Forum war down, das setzen des SelectInput über die Nummern funktioniert und die neuste Version des Adapters auch.
Vielen Dank für deine Arbeit am Adapter. `
Top!
Gerne, ich freue mich wenn ich diesem Projekt und der Community etwas zurück geben kann
-
PSBAS UP <cr>BASS UP/DOWN direct change to **dB
PSBAS DOWN <cr>PSBAS 50<cr>, PSBAS 50 <cr>**:00 to 99 by ASCII , 50=0dB
AVR can be operated from -6 to +6(44 to 56)
PSBAS ? <cr>Return PSBAS Status
PSTRE UP <cr>Same as above for treble
PSTRE DOWN <cr>PSTRE **<cr>, e.g. PSTRE 50 <cr>PSTRE ? <cr>PSSWL ON <cr>Subwoofer Level Adjust = ON
PSSWL OFF <cr>Subwoofer Level Adjust = OFF
PSSWL UP <cr>PSSWL DOWN <cr>PSSWL **<cr>, e.g. PSSWL 50 <cr>–SUBWOOFER(1) Level Adjust
**:00,38 to 62 by ASCII , 50=0dB
PSSWL ? <cr>PSSWL2 UP <cr>same as above for 2nd subwoofer out
PSSWL2 DOWN <cr>PSSWL2 **<cr>, e.g. PSSWL2 50</cr></cr></cr></cr></cr></cr></cr></cr></cr></cr></cr></cr></cr></cr></cr></cr></cr></cr></cr></cr> `
Implementiert auf Git!
Bass und Höhen sind theoretisch für alle Zones einstellbar jedoch bislang nur für die Main implementiert.
Wäre cool, wenn du es testest, da ich zwar Bass und Treble abfragen kann jedoch nicht setzen kann. (Evtl liegt es an meiner Config, laut Protokoll sollte meiner es können.)
Ebenso unterstüzt mein AVR nur SWL für einen Subwoofer. Weshalb ich nicht sicher sagen kann ob es für den zweiten funktioniert.
-
Erstmal (wieder) danke für die schnellen Updates. 8-) Hab gestern ein bisschen gestalkt, wie oft Du commited hast… Respekt...
Hatte gerade leider nur kurz Zeit zum Testen der neuen Funktionen.
Also:
Parameter bass und treble kann ich per Nummer setzen. So als Seiteninfo: Akzptiert auch Werte kleiner -6 und größer 6. Nur: einen hörbaren Unterschied kann ich nicht ausmachen (sollte doch bei 12dB Unterschied auch deutlich anders klingen), muss mir aber später noch mal mehr Zeit dafür nehmen. Im Admin zeigt der Tooltip auf dem Wert auch "Bestätigt: false". Ist das ein Problem?
Wenn ich auf die States "bassUp", "bassDown", "tebleUp", "trebleDown" klicke passiert leider nichts (bass / treble ändern sich nicht). Vollkommene Seitenfrage dazu: Gibt's ein schönes Widget, mit dem man die drücken kann aus VIS heraus?
Parameter "dynamicEQ" hab ich auch noch kurz probiert, das funktioniert hervorragend.
Das mit dem Subwoofer-Level scheint genauso wenig zu funktionieren, auch da "Bestätigt = false". Ich kann eine Zahl eintragen, Effekt irgendwie nicht da, jede beliebige Zahl wird akzeptiert.
Leider habe ich gerade kein Display am AVR, da mein Beamer sich verabschiedet hat. Wie gesagt, hoffe, ich kann nachher noch mal mehr Zeit zum Testen aufbringen und dann mal sehen, ob das "richtige" Marantz OSD hier Parameter anzeigt.