Bevor ich zu meinem Anliegen komme, erst einmal ein herzliches Dankeschön für das Yamaha_AVR Modul. Es läuft bei mir schon seit einiger Zeit mit einem DSP-Z7 ohne rumzuzicken. :)
Vor ein paar Wochen habe ich angefangen ein paar Abläufe, im Zusammenhang mit Sonos Playern, weiter zu automatisieren. Dabei ist mir aufgefallen, dass Befehle an den Verstärker teilweise verloren gehen (oder vom Amp nicht abgearbeitet werden), wenn sie zu schnell hintereinander geschickt werden. Zu schnell heißt in dem Zusammenhang auch, dass ich es sogar manuell über eine GUI schaffe, wenn ich drei Zonen nacheinander einschalte, dass nur eine eingeschaltet wird. Im Log (verbose 3) erscheint dazu nichts, es sei denn, dass der Amp noch nicht zurückgemeldet hat, dass er eingeschaltet ist und schon ein "set volume" aufgerufen wurde..
Ist das bekannt, gibt es Workarounds oder muss ich mir eigene Subs schreiben um Abläufe wie z.B: "Amp on / set volume / sonos speak / set volume back / amp off" mit einem Delay zu versehen?
@Markus: Oder würdest Du ggf. versuchen, das im Modul abzufangen? Vorrausgesetzt natürlich, dass du das nachvollziehen kannst oder mir einfach glaubst ;)
/Uli
Hallo Uli,
dieses Problem kenne ich. Bei mir ist das genauso, wenn ich den Receiver per FHEM einschalten möchte und dann sofort auf einen Input umschalten möchte und die Lautstärke anpassen möchte. Leider antwortet der Receiver, sobald man eine Zone einschaltet für ca. 2 Sekunden nicht. Dabei antwortet er zwar auf die Anfragen, führt sie aber intern nicht durch.
Daher kommt man nicht umrum, solche Aktionen mit einigen Sleeps zu verzögern. Dabei sollte man jedoch KEINERLEI sleep()-Funktionsaufrufe im Perl-Code nutzen, sondern den FHEM-eigenen sleep-Befehl. Da dieser dafür sorgt, das alle nachfolgenden Kommandos in einer Kommandokette zum jeweils späteren Zeitpunkt intern durchgeführt werden.
z.B.:
in 99_myUtils.pm:
sub startNetRadio()
{
fhem("set AV_Receiver on;
sleep 5; # <- 5 Sekunden warten, bis AV-Receiver einsatzbereit ist
set AV_Receiver input netradio; # <- dann auf Internetradio umschalten
sleep 4;
set AV_Receiver remoteControl enter; # durchs Favoritenmenü durchklickern. Nach jedem Enter wird das Menü aus dem Internet geladen. Hier muss wieder gewartet werden, bevor das Menü aufgebaut ist
sleep 2;
set AV_Receiver remoteControl enter;
sleep 2;
set AV_Receiver remoteControl enter");
}
oder als zusammenhängender Befehl im notify:
define TV_an notify TV_Steckdose:on set AV_Receiver on;sleep 5;set AV_Receiver input av3;set AV_Receiver volumeStraight -37
Anders geht es leider nicht, da der Receiver beim einschalten, als auch beim durchlaufen der Internet-Radio Menüs nach einer Aktion intern mit sich beschäftigt ist und in dieser Zeit keine anderen Befehle durchführt.
Ich hoffe das hilft soweit.
Viele Grüße
Markus
Hey Markus,
ahh, mir war noch nicht klar, dass z.B. das Schalten der Zonen verstärkerintern sogar bis 2 Sekunden dauern kann. Das erklärt das eine oder andere bei mir, ich hatte bisher mit Verzögerungen im Bereich von 100-200 ms gerechnet. Das reichte zumindest um Input und Volume bei einem DSP-Z7 zu schalten.
Ich hatte gehofft, dass man "irgendwie" erkennen könnte ob der Amp für neue Befehle bereit ist, durch ein Ack oder sonst etwas... aber wenn da nichts kommt, kann man auf nichts triggern...
Zitat von: Markus Bloch am 11 September 2015, 13:15:20
Dabei antwortet er zwar auf die Anfragen, führt sie aber intern nicht durch.
Das heisst, man bekommt "realistische" Antworten auf Abfrangen wie "get volume", aber neue Befehle werden nocht nicht ausgeführt? Hattest du dich damit ausführlich beschäftigt oder siehst du noch eine Chance, dass (man|ich) (s|m)ich damit noch einmal beschäftig(t|e)?
/Uli
Hat der Developer oder oder Leser beim 1500-ten Beitrag drei Wünsche frei? :) :) :)
Zitat von: dev0 am 11 September 2015, 14:20:52
Hey Markus,
ahh, mir war noch nicht klar, dass z.B. das Schalten der Zonen verstärkerintern sogar bis 2 Sekunden dauern kann. Das erklärt das eine oder andere bei mir, ich hatte bisher mit Verzögerungen im Bereich von 100-200 ms gerechnet. Das reichte zumindest um Input und Volume bei einem DSP-Z7 zu schalten.
Ich hatte gehofft, dass man "irgendwie" erkennen könnte ob der Amp für neue Befehle bereit ist, durch ein Ack oder sonst etwas... aber wenn da nichts kommt, kann man auf nichts triggern...
In meinen anfänglichen Versuchen hatte es sich so dargestellt, dass mein Receiver nach dem einschalten sofort keine Schaltbefehle ausgeführt hatte. Sie wurden zwar entgegen genommen, aber nicht ausgeführt. Erst nach ca. 2 Sekunden hatte der Receiver die Befehle angenommen, sie aber erst nach dem Abschluss des Startvorgangs (insgesamt ca. 5 oder 6 Sekunden) tatsächlich auch durchgeführt. So in etwa lief das. Die Zeiten können auch leicht variieren, aber so grob war das Bild, als ich mich mit der Schnittstelle das erste mal beschäftigt hatte.
Das gleiche Phänomen kann man mit der Yamaha AV App nachstellen. Erst, wenn der AV Receiver gestartet ist und nach einem Status-Request der AV Receiver "on" meldet, werden die Eingabemöglichkeiten freigeschaltet.
Wenn man den AV Receiver einschaltet wird der Request sofort vom AV Receiver beantwortet (Return-Code: 0 ; Befehl erfolgreich) und der Receiver startet, was mehrere Sekunden dauert. Eine Meldung sobald er fertig ist mit hochfahren gibt es nicht. Hier hilft nur ein statusRequest. Im Modul behandle ich das so: wenn der on-Befehl mit einem Return-Code 0 vom AV Receiver quittiert wird, gehe ich davon aus, da der Befehl erfolgreich war, wird der AV Receiver nun an sein und setze den Status "on" bereits im Vorraus, auch wenn der Receiver gerade beim hochfahren ist. Erst beim nächsten regulären statusRequest wird der power-Status explizit abgefragt, wo er dann auch mit "on" gemeldet wird.
Zitat von: dev0 am 11 September 2015, 14:20:52
Das heisst, man bekommt "realistische" Antworten auf Abfrangen wie "get volume", aber neue Befehle werden nocht nicht ausgeführt? Hattest du dich damit ausführlich beschäftigt oder siehst du noch eine Chance, dass (man|ich) (s|m)ich damit noch einmal beschäftig(t|e)?
/Uli
Die get-Befehle machen nichts anderes als die Readings-Werte auszugeben. Es erfolgt dabei kein erneuter Request an den Receiver. Das möchte ich auch nicht mit einem Request koppeln, da man dann auf die Antwort warten muss. Sollte der AV-Receiver nicht antworten, dann würde FHEM auf eine Antwort warten (max. 5 Sekunden). In dieser Zeit steht dann aber das gesamte FHEM System und wartet auf diese eine Antwort, was sich dann negativ auf das gesamte restliche FHEM-System auswirken würde. Daher nur die aktuell bekannten Readings.
Zitat von: dev0 am 11 September 2015, 14:41:25
Hat der Developer oder oder Leser beim 1500-ten Beitrag drei Wünsche frei? :) :) :)
Wer ruft mir Shenlong? 8)
Viele Grüße
Markus
Markus, vielen Dank für deine sehr ausführliche Antwort, aber ich möchte nochmals nachfragen.
Zitat von: Markus Bloch am 11 September 2015, 15:19:36
Die get-Befehle machen nichts anderes als die Readings-Werte auszugeben. Es erfolgt dabei kein erneuter Request an den Receiver.
Mit "get volume" meinte ich auch nicht die Anfrage an das Modul, sondern ob eine Anfrage an den Amp "wie ist die aktuelle Laustärke" in dem Moment etwas realistisches liefern würde und man vielleicht darüber an den "echten" Status des Amps kommen könnte.
Zitat von: Markus Bloch am 11 September 2015, 15:19:36
Sollte der AV-Receiver nicht antworten, dann würde FHEM auf eine Antwort warten (max. 5 Sekunden). In dieser Zeit steht dann aber das gesamte FHEM System
Es sei denn, man würde diesen Prozess forken und die bis dahin empfangen Befehle in eine Queue stellen. Oder?
Ich erwarte nicht, dass du das implementiert, ich frage nur so genau nach, weil ich mir vorstellen kann das zu übernehmen und dabei weiter in fhem/perl einzusteigen. Learning by doing, wenn es erfolgsversprechend seinen könnte. Daher sind mir deine Erfahrungen/Einschätzungen wichtig um zu entscheiden ob ich das versuche.
Nameste,
Uli
Zitat von: dev0 am 11 September 2015, 15:53:27
Markus, vielen Dank für deine sehr ausführliche Antwort, aber ich möchte nochmals nachfragen.Mit "get volume" meinte ich auch nicht die Anfrage an das Modul, sondern ob eine Anfrage an den Amp "wie ist die aktuelle Laustärke" in dem Moment etwas realistisches liefern würde und man vielleicht darüber an den "echten" Status des Amps kommen könnte.
Das bringt nichts. Die aktuelle Info würde er zurückliefern, auch wenn er mitten im Startvorgang ist. Ganz zu Anfang des Moduls hatte ich das auch so implementiert. Der Receiver wird eingeschaltet und sofort nach erfolgter Rückmeldung wird ein statusRequest durchgeführt um die Readings zu aktualisieren. Leider brachte das nichts, da der Power-Status kurz nach dem Einschalten noch mit "off" vom Receiver zurückgemeldet wird, obwohl er gerade am hochfahren ist. Erst nach erfolgtem hochfahren wird der Power-Status auch als "on" gemeldet. Prinzipiell beantwortet der AV-Receiver während des Starvorgangs Status-Anfragen (Lesen von Status-Werten). Was er nur nicht macht ist das ausführen von Befehlen (Schreiben von neuen Einstellungen). Dies wird in dieser kurzen Zeit ignoriert. Genauso auch, wenn man durch das Internet-Radio menü sich klickt. Da kommt immer ein kurzes "Loading..." auf dem Display. In dieser Zeit führt er ebenfalls keine Kommandos aus, ist aber dennoch im Stande Abfragen zu beantworten.
Zitat von: dev0 am 11 September 2015, 15:53:27
Es sei denn, man würde diesen Prozess forken und die bis dahin empfangen Befehle in eine Queue stellen. Oder?
Ich erwarte nicht, dass du das implementiert, ich frage nur so genau nach, weil ich mir vorstellen kann das zu übernehmen und dabei weiter in fhem/perl einzusteigen. Learning by doing, wenn es erfolgsversprechend seinen könnte. Daher sind mir deine Erfahrungen/Einschätzungen wichtig um zu entscheiden ob ich das versuche.
Nameste,
Uli
Ein ähnliches Verfahren nutze ich heute bereits in meinen YAMAHA-Modulen. Immer wenn ein Request gesendet werden soll, wird eine Verbindung zum AV-Receiver aufgebaut und der Request abgeschickt. Das ganze geschieht dabei non-blocking und der Socket wird an die FHEM-weite Socket-Liste angehängt. FHEM prüft dann regelmäßig ob neue Daten auf diesen ganzen Sockets in der Liste vorliegen. Ist dies der Fall werden die Daten wieder an das YAMAHA-Modul gegeben, welches diese Daten dann auswertet. Es ist also bereits jetzt ein entkoppelter Vorgang, der auf ein forking verzichten kann.
Was ich in der nächsten Zukunft noch angehen möchte ist eine Art Kommando-Queue wo alle zu sendenden Requests reingeschoben werden und über eine einzige Verbindung zum AV-Receiver nacheinander durchgeführt werden, sobald die letzte Abfrage beantwortet ist.
Viele Grüße
Markus
Hi Markus,
Zitat von: Markus Bloch am 11 September 2015, 17:02:57
Erst nach erfolgtem hochfahren wird der Power-Status auch als "on" gemeldet.
...
Was ich in der nächsten Zukunft noch angehen möchte ist eine Art Kommando-Queue wo alle zu sendenden Requests reingeschoben werden und über eine einzige Verbindung zum AV-Receiver nacheinander durchgeführt werden, sobald die letzte Abfrage beantwortet ist.
Vielleicht stehe ich ja immer noch aufm Schlauch, aber könnte man dann nicht, wenn z.B. ein "set Volume" an den Verstärker geschickt wird und der Power-Status noch "off" ist, das Kommando für x Sekunden in einer Queue halten und abschicken, wenn der Power-Status innerhalb der nächsten x Sekunden auf "on" wechselt? In der Hoffung, dass der Verstärker oder die Zone gerade erst eingeschaltet wurde. Oder habe ich die Logik immer noch nicht verstanden?
Davon abgesehen fände ich die Option klasse Bass und Höhen über dein Modul einstellen zu können. Wenn ich die Yamaha Doku richtig verstehe, dann sollte das so möglich sein:
<zone><Sound_Video><Tone><Bass><Val>
<zone><Sound_Video><Tone><Treble><Val>
oder
<zone><Sound_Video><Current_Tone><Bass><Val>
<zone><Sound_Video><Current_Tone><Treble><Val>
Min/Max: -/+6.0 db
Step: 0.5 db
Worin der Unterschied zwischen Tone und Current_Tone hat sich mir bisher nicht erschlossen. Beide Parameter sind angeblich r/w.
Edit: Laut der Doku direkt für den DSP-Z7 sollte der Aufruf so aufgebaut sein:
<zone><Tone><Bass><Val> -/+10 db / Step 1
/Uli
Hi Markus,
ich habe mich mal drangegeben und die Ton Steuerung (Bass und Höhen) für die DSP-Z und 3900er Modelle eingebaut. Hast du interesse dieses Feature in das Modul aufzunehmen? Falls ja, dann würde ich das geänderte Modul oder einen Patch hier anhängen. Der Patch ist aber recht groß, da mein Editor Leerzeichen am Zeilenende entfernt.
Hi Uli,
ich versteh zwar nicht so ganz, wozu man Tiefen und Höhen im Rahmen einer Haussteuerung kontrollieren müsste, aber kann ich gerne einfügen.
Patches sind immer willkommen ;-)
Gruß
Markus
Hallo Markus,
da ich alles was mit HiFi/Video zu tun hat ausschließlich über FHEM/smartVISU steuere finde ich diese Steuerungsmöglichkeit gar nicht so abwegig. Zur reinen Automatisierung wäre es überflüssig, da hast du sicherlich recht.
Vorab zum Patch: Habe bitte ein wenig Nachsicht mit mir, wenn der Code nicht so elegant ist wie er vielleicht seinen könnte. Ich programmiere erst seit ein paar Monaten (versuche es zumindest ;) ) und würde mich über Kritik freuen, da ich auch bestehende Features erweitern würde, damit sie mit den DSP Modellen funktionieren (direct, dsp, enhancer, adaptiveDrc, ...)
Zum Patch selbst: ich habe die Tonsteuerung auch für die "normalen" Modelle eingebaut, kann sie aber nicht ausprobieren, habe selbst nur einen DSP-Z7. Würdest du das bitte testen?
Bei einer Kleinigkeit weiss ich noch nicht wie ich sie lösen soll: zur Tonsteuerung muss man bei den DSP Modellen die Crossover Frequenz mit angeben. Diesen Wert speichere ich in einem hidden Reading. Das funktioniert so weit, allerdings wird dieses Reading im Get-Selectmenu angezeigt was etwas unschön ist. Ich habe bisher auch nicht verstanden wie die einzelnen Readings überhaupt in diesem Selectmenu landen. Aber vielleicht gibt es ja auch eine elegantere Methode diesen Wert zu speichern?
/Uli
Zitat von: Markus Bloch am 11 September 2015, 13:15:20
Hallo Uli,
dieses Problem kenne ich. Bei mir ist das genauso, wenn ich den Receiver per FHEM einschalten möchte und dann sofort auf einen Input umschalten möchte und die Lautstärke anpassen möchte. Leider antwortet der Receiver, sobald man eine Zone einschaltet für ca. 2 Sekunden nicht. Dabei antwortet er zwar auf die Anfragen, führt sie aber intern nicht durch.
Daher kommt man nicht umrum, solche Aktionen mit einigen Sleeps zu verzögern. Dabei sollte man jedoch KEINERLEI sleep()-Funktionsaufrufe im Perl-Code nutzen, sondern den FHEM-eigenen sleep-Befehl. Da dieser dafür sorgt, das alle nachfolgenden Kommandos in einer Kommandokette zum jeweils späteren Zeitpunkt intern durchgeführt werden.
z.B.:
in 99_myUtils.pm:
sub startNetRadio()
{
fhem("set AV_Receiver on;
sleep 5; # <- 5 Sekunden warten, bis AV-Receiver einsatzbereit ist
set AV_Receiver input netradio; # <- dann auf Internetradio umschalten
sleep 4;
set AV_Receiver remoteControl enter; # durchs Favoritenmenü durchklickern. Nach jedem Enter wird das Menü aus dem Internet geladen. Hier muss wieder gewartet werden, bevor das Menü aufgebaut ist
sleep 2;
set AV_Receiver remoteControl enter;
sleep 2;
set AV_Receiver remoteControl enter");
}
oder als zusammenhängender Befehl im notify:
define TV_an notify TV_Steckdose:on set AV_Receiver on;sleep 5;set AV_Receiver input av3;set AV_Receiver volumeStraight -37
Anders geht es leider nicht, da der Receiver beim einschalten, als auch beim durchlaufen der Internet-Radio Menüs nach einer Aktion intern mit sich beschäftigt ist und in dieser Zeit keine anderen Befehle durchführt.
Ich hoffe das hilft soweit.
Viele Grüße
Markus
Wie Rudi in diesem Posting erklärt hat http://forum.fhem.de/index.php/topic,41077.0.html wird FHEM durch dieses Skript 23sek blockiert. Das kann dann beim KM-LAN zum disconnect führen. Eine Lösung hat Rudi in dem Posting aber direkt aufgezeigt.
@Bartimaus: Deine Aussage ist zum Glück falsch. Ich habe jetzt zwar nicht in den Betrag geschaut, aber du verwechselst das fhem sleep mit dem perl sleep.
Zitat von: dev0 am 21 September 2015, 13:06:29
@Bartimaus: Deine Aussage ist zum Glück falsch. Ich habe jetzt zwar nicht in den Betrag geschaut, aber du verwechselst das fhem sleep mit dem perl sleep.
Oui, der FHEM-eigene Sleep-Befehl setzt sich alle nachfolgenden Kommandos auf Wiedervorlage in X Sekunden und führt diese dann im Hintergrund weiter aus. Steht auch so in der commandref.
Hallo zusammen,
ich häng mich mal hier dran, da auch hier schon über die Bass/Treble Erweiterung geschrieben wurde.
Ich steuere derzeit meine PS3 (Bluray/Amazon) per CEC über meinen RX-V 771.
Mit dem AVR Modul funktionieren die Cursor Tasten und Enter auch einwandfrei. Jetzt benutze ich aber auch teilweise die Play/Pause/Vor/Zurück Tasten der Fernbedienung.
Ich habe derzeit noch eine App auf dem Handy laufen, welche eine Telnet-Verbindung zum AVR aufbaut. Per Telnet kann man nämlich IR bzw. RC-Codes an den AVR Senden. So habe ich dort aktuell die Steuerung realisiert.
Schön wäre es natürlich, wenn man alles zentral hätte. Ich habe schonmal versucht ein wenig zu recherchieren, allerdings zum Aufruf von RC-Codes über die XML Steuerung nicht wirklich viel gefunden. http://www.heimkino-praxis.com/2014/yamaha-netzwerk-steuerung/ (http://www.heimkino-praxis.com/2014/yamaha-netzwerk-steuerung/)
<YAMAHA_AV cmd="PUT"><Main_Zone><Remote_Control><RC_Code>7C80</RC_Code></Remote_Control></Main_Zone></YAMAHA_AV>
Ob das allerdings funktioniert weiss ich nicht. Bin noch nicht zum testen gekommen. Hat denn zufällig hier jemand das schonmal gemacht?
Schön wäre ja, wenn man in FHEM noch die set Option hätte: set <YAM_AVR> RC-Code <code>
Falls jemand sachdienliche Hinweise hat - immer her damit ;)
Vielleicht komme ich am Wochenende ja mal dazu das zu testen.
Grüße,
Ingo
In der Doku, die ich zu den Serien RX-Ax10/Vx71 und RX-3900/Z7 habe, ist von <Remote_Control> nichts zu finden.
In dem Heimkino Artikel ist mir auch direkt eine Falschaussage aufgefallen, da sie
fett gedruckt war :)
ZitatDie Befehle sind aber auf allen Modellen gleich
Das stimmt definitiv nicht.
[Edit:] Es gibt aber:
DSZ-Z7: <System><Remote_Signal><Receive><Code>***</Code></Receive></Remote_Signal></System>
RX-Vx7x: <System><Misc><Remote_Signal><Receive><Code>***</Code></Receive></Remote_Signal></Misc></System>
Hallo.
Also das funktioniert tatsächlich.
Habe es jetzt nur für die RX-Vx7x eingefügt. Da ich nicht weiss, wo und wie im Modul zwischen den Reciever-Typen genau unterschieden wird.
Eingefügt habe ich folgendes:
Zeile 191:
"rc-code ".
und ab Zeile 200:
elsif($what eq "rc-code")
{
YAMAHA_AVR_SendCommand($hash, "<YAMAHA_AV cmd=\"PUT\"><System><Misc><Remote_Signal><Receive><Code>$a[2]</Code></Receive></Remote_Signal></Misc></System></YAMAHA_AV>", $what, undef);
}
funktioniert erstaunlich gut.
Wäre es möglich, das in das offizielle Modul zu übernehmen? Dann muss ich das nicht nach jedem Update wieder anpassen.
Grüße,
Ingo
P.S.:
Im Anhang ein Dokument mit den verfügbaren RC-Codes.
Edit:
Manchmal muss man RC Befehle doppelt und dreifach absetzen, damit es klappt. Das ist aber bei der Terminal Verbindung nicht anders. Warum das mit der Infrarotbedienung allerdings mit jedem Knopfdruck funktioniert ist mir schleierhaft.
Passiert das auch bei einzelnen Befehlen oder nur bei mehreren hintereinander?
Das passiert auch bei einzelnen.
Zitat von: dev0 am 21 September 2015, 11:18:17
Hallo Markus,
da ich alles was mit HiFi/Video zu tun hat ausschließlich über FHEM/smartVISU steuere finde ich diese Steuerungsmöglichkeit gar nicht so abwegig. Zur reinen Automatisierung wäre es überflüssig, da hast du sicherlich recht.
Vorab zum Patch: Habe bitte ein wenig Nachsicht mit mir, wenn der Code nicht so elegant ist wie er vielleicht seinen könnte. Ich programmiere erst seit ein paar Monaten (versuche es zumindest ;) ) und würde mich über Kritik freuen, da ich auch bestehende Features erweitern würde, damit sie mit den DSP Modellen funktionieren (direct, dsp, enhancer, adaptiveDrc, ...)
Zum Patch selbst: ich habe die Tonsteuerung auch für die "normalen" Modelle eingebaut, kann sie aber nicht ausprobieren, habe selbst nur einen DSP-Z7. Würdest du das bitte testen?
Bei einer Kleinigkeit weiss ich noch nicht wie ich sie lösen soll: zur Tonsteuerung muss man bei den DSP Modellen die Crossover Frequenz mit angeben. Diesen Wert speichere ich in einem hidden Reading. Das funktioniert so weit, allerdings wird dieses Reading im Get-Selectmenu angezeigt was etwas unschön ist. Ich habe bisher auch nicht verstanden wie die einzelnen Readings überhaupt in diesem Selectmenu landen. Aber vielleicht gibt es ja auch eine elegantere Methode diesen Wert zu speichern?
/Uli
Ich habe den Patch mit leichten Modifikationen eingecheckt, da er so bei meinem RX-V473 out-of-the-box nicht funktionierte.
Viele Grüße
Markus
Hallo Markus,
seit dem gestrigen Update ist mein Log voll mit:
"YAMAHA_AVR (AV_Receiver_Zone2) - Could not execute "statusRequest toneStatus": received return code 2"
Könntest du bitte "bass" und "treble" bei Zone2 wieder raus nehmen.
Bei der "Main Zone" habe ich keine Probleme, danke für diese neu Funktion.
Gruß Schlimbo
Bei welchem Modell tritt das auf?
Model: RX-V773
Wie ist das bei anderen Mehrzonen Receiver, könnte ihr Bass und Höhe für jede Zone separat einstellen?
Ja, zumindest mein DSP-Z7 unterstützt das in den ersten drei Zonen. Die 4. Zone habe ich nicht getestet und auch nicht in Betrieb. Laut Doku wird das von den Vx75 und Vx79 auch unterstützt. Eine separate Doku zu deiner Serie habe ich leider nicht. Ich würde dann auch vermuten, dass alle x73 dass dann nicht können...
@Markus: soll ich mich darum kümmern?
Kannst gerne einen Patch machen. Ich bin leider wieder unterwegs und hab aktuell keine Möglichkeit den Patch entsprechend zu testen und einzuchecken.
Kann ich erst nächste Woche ab Mittwoch einchecken.
Viele Grüße
Markus
Hi Markus,
werde ich machen, ich komme aber auch nicht vor nächster Woche dazu.
Die Frage, die sich mir noch stellt ist, wie wir diese Ausnahmen behandeln sollen:
- global an und Modelle/Serien excluden
- global aus und Modelle/Serien includen
Vieleicht macht es sogar Sinn für diese Abfragen einzelne kleine Subs zu schreiben, à ala YAMAHA_AVR_featureToneControl_multipleZones($model). Zig Ausnahmen können das aufgeräumte Modul schnell unübersichtlich werden lassen. In dem "HDMI Output" Thread stellt sich ja die gleiche Frage. Ich bin mir nicht sicher was sinnvoller ist. Was meinst Du?
/Uli
Hi Uli,
ich habe es in solchen Fällen immer umabhängig der Gerätemodelle gemacht. Ich frage beim GetStatus diesen Wert an, habe dann aber den Parameter $can_fail auf 1, damit es keine Logmeldung gibt. Sollte hierbei ein Fehler auftreten, mach ich mir eine Merker-Variable in $hash->{helper} dass das Gerät diesen Befehl nicht akzeptiert, damit wird der entsprechende Set-Befehl unterbunden und der nächste Status-Request übergeht diesen dann.
So würde ich es hier auch machen. Das Problem mit dem exkludieren von Modellen ist, dass man nie 100% sicher sein kann, alles exakt zu erwischen. Manche Modelle können das in der Main-Zone und den anderen Zonen, bei anderen gehts nur in der Main-Zone, usw.
Viele Grüße
Markus
Hi Markus,
kannst Du das bitte übernehmen? Theoretisch verstehe ich wie der Mechanismus arbeit, aber an der Umsetzung scheitert es im Moment noch. Da ich ab Montag auch wieder beruflich "auswärts" bin, komme ich in nächster Zeit wohl auch nicht dazu. OK?
/Uli
Hallo zusammen,
könnt ihr bitte mal die angehangene Version testen. Hier habe ich den toneStatus wie in meinem letzten Beitrag beschrieben verändert.
Ich würde mich freuen, wenn ihr das testen könntet und mir Feedback geben könnt, ob es funktioniert.
Vielen Dank
Gruß
Markus
Hallo Markus,
habe die neu Version getestet, bekomme leider immer noch den selben Fehler.
Gruß Schlimbo
zeig mal bitte ein "list <name>".
Hi Markus,
Hier die Liste der Main Zone:
Internals:
ACTIVE_ZONE mainzone
CHANGED
DEF 192.168.x.xxx mainzone 30 10
FIRMWARE 1.91/2.06
MODEL RX-V773
NAME AV_Receiver
NR 143
STATE on
SYSTEM_ID xxxxxxxx
TYPE YAMAHA_AVR
ZONES_AVAILABLE mainzone,zone2
Readings:
2015-10-16 20:57:16 3dCinemaDsp auto
2015-10-16 20:57:16 adaptiveDrc auto
2015-10-16 20:57:16 bass 0
2015-10-16 20:57:16 currentAlbum
2015-10-16 20:57:16 currentArtist
2015-10-16 20:57:16 currentChannel
2015-10-16 20:57:16 currentStation
2015-10-16 20:57:16 currentTitle
2015-10-16 20:57:16 direct off
2015-10-16 20:57:16 dsp 2chstereo
2015-10-16 20:57:16 enhancer on
2015-10-16 20:57:16 input hdmi1
2015-10-16 20:57:16 inputName HDMI1 SAT
2015-10-16 20:57:16 mute off
2015-10-16 20:57:16 newFirmware unavailable
2015-10-15 19:24:50 playStatus play
2015-10-16 20:57:16 power on
2015-10-16 20:55:25 presence present
2015-10-04 11:28:28 repeat off
2015-10-04 11:28:28 shuffle off
2015-10-16 20:57:16 sleep off
2015-10-16 20:57:16 state on
2015-10-16 20:57:16 straight on
2015-10-16 20:57:16 treble 0
2015-10-16 20:57:16 volume 42
2015-10-16 20:57:16 volumeStraight -39.5
2015-10-16 19:45:58 volume_old -33
Helper:
ADDRESS 192.168.x.xx
AVAILABLE 1
CURRENT_INPUT_TAG HDMI1
DIRECT_TAG Pure_Direct
DISABLED 0
DSP_MODES Hall in Munich|Hall in Vienna|Chamber|Cellar Club|The Roxy Theatre|The Bottom Line|Sports|Action Game|Roleplaying Game|Music Video|Standard|Spectacle|Sci-Fi|Adventure|Drama|Mono Movie|Surround Decoder|2ch Stereo|7ch Stereo
INPUTS AUDIO1|AUDIO2|AV1|AV2|AV3|AV4|AV5|AV6|AirPlay|HDMI1|HDMI2|HDMI3|HDMI4|HDMI5|NET RADIO|Napster|PHONO|SERVER|TUNER|USB|V-AUX|iPod (USB)
OFF_INTERVAL 30
ON_INTERVAL 10
SCENES Scene 1|Scene 2|Scene 3|Scene 4
SELECTED_ZONE mainzone
USE_SHORT_VOL_CMD 0
XML /YamahaRemoteControl/desc.xml
ZONES Main_Zone|Zone_2
Attributes:
devStateIcon .*on:remotecontrol/black_btn_GREEN .*off:remotecontrol/black_btn_POWEROFF2
event-on-change-reading input,state,currentAlbum,currentArtist,currentChannel,currentStation,currentTitle
fp_Grundriss 493,1236,1,
icon audio_loudness
model RX-V773
room Wohnzimmer
volume-smooth-change 1
volumeSteps 3
webCmd on:off:input:volume
Und von Zone2:
Internals:
ACTIVE_ZONE zone2
CHANGED
DEF 192.168.x.xxx zone2 30 10
FIRMWARE 1.91/2.06
MODEL RX-V773
NAME AV_Receiver_Zone2
NR 150
STATE off
SYSTEM_ID xxxxxxxx
TYPE YAMAHA_AVR
ZONES_AVAILABLE mainzone,zone2
Readings:
2015-10-16 20:59:26 currentAlbum
2015-10-16 20:59:26 currentArtist
2015-10-16 20:59:26 currentChannel
2015-10-16 20:59:26 currentStation
2015-10-16 20:59:26 currentTitle
2015-10-16 20:59:26 input netradio
2015-10-16 20:59:26 inputName NET RADIO
2015-10-16 20:59:26 mute off
2015-10-16 20:59:26 newFirmware unavailable
2015-10-16 20:59:26 playStatus stop
2015-10-16 20:59:26 power off
2015-10-16 20:55:26 presence present
2015-10-04 11:52:42 repeat off
2015-10-04 11:52:42 shuffle off
2015-10-16 20:59:26 sleep off
2015-10-16 20:59:26 state off
2015-10-16 20:59:26 volume 44
2015-10-16 20:59:26 volumeStraight -37
2015-09-26 09:47:43 volume_old -44.5
Helper:
ADDRESS 192.168.x.xx
AVAILABLE 1
CURRENT_INPUT_TAG NET RADIO
DISABLED 0
DSP_MODES Hall in Munich|Hall in Vienna|Chamber|Cellar Club|The Roxy Theatre|The Bottom Line|Sports|Action Game|Roleplaying Game|Music Video|Standard|Spectacle|Sci-Fi|Adventure|Drama|Mono Movie|Surround Decoder|2ch Stereo|7ch Stereo
INPUTS AUDIO1|AUDIO2|AV5|AV6|AirPlay|NET RADIO|Napster|PHONO|SERVER|TUNER|USB|iPod (USB)
OFF_INTERVAL 30
ON_INTERVAL 10
SELECTED_ZONE zone2
USE_SHORT_VOL_CMD 0
XML /YamahaRemoteControl/desc.xml
ZONES Main_Zone|Zone_2
Attributes:
devStateIcon .*on:remotecontrol/black_btn_GREEN .*off:remotecontrol/black_btn_POWEROFF2
event-on-change-reading input,state,currentAlbum,currentArtist,currentChannel,currentStation,currentTitle
icon audio_loudness
model RX-V773
room Bad
volume-smooth-change 1
volumeSteps 3
webCmd on:off:input:volume
Nutze die Version: "9365 2015-10-04 11:26:22"
Der Log ist voll mit:
2015.10.16 21:06:18 3: YAMAHA_AVR (AV_Receiver_Zone2) - Could not execute "statusRequest toneStatus": received return code 2
2015.10.16 21:06:18 3: YAMAHA_AVR (AV_Receiver_Zone2) - Could not execute "statusRequest toneStatus": received return code 2
2015.10.16 21:05:48 3: YAMAHA_AVR (AV_Receiver_Zone2) - Could not execute "statusRequest toneStatus": received return code 2
2015.10.16 21:05:48 3: YAMAHA_AVR (AV_Receiver_Zone2) - Could not execute "statusRequest toneStatus": received return code 2
Gruß Schlimbo
Die Version, welche ich als letztes gepostet habe ist bei dir nicht aktiv. Hast du FHEM neugestartet oder ein Reload des Moduls durchgeführt?
Am einfachsten das Modul in den Modul-Ordner kopieren und anschließend FHEM neustarten.
Viele Grüße
Markus
Hall Markus,
Du meinst doch die Version von diesem Beitrag, oder?
Zitat von: Markus Bloch am 15 Oktober 2015, 11:19:49
Hallo zusammen,
könnt ihr bitte mal die angehangene Version testen. Hier habe ich den toneStatus wie in meinem letzten Beitrag beschrieben verändert.
Ich würde mich freuen, wenn ihr das testen könntet und mir Feedback geben könnt, ob es funktioniert.
Vielen Dank
Gruß
Markus
Kann es sein, dass du eine falsche Version hoch geladen hast? Habe die Version noch einmal geladen aber es ist die "9365 2015-10-04 11:26:22"
Gruß Schlimbo
edit:
Habe gerde gemerkt, dass die von Dier hochgeladene Version doch nicht die normale "9365 2015-10-04 11:26:22" ist, beim vegleich sind Unterschiede vorhanden, da hat mich nur die gleiche Versionsnummer verwirrt.
Aber der fehler ist immernoch vorhanden. Reload habe ich natürlich gemacht.
Gruß Schlimbo
Version wird von svn erst beim check in angepasst.
Ich hab den Fehler mit dieser Version hier aber auch noch
Hallo zusammen,
hatte noch was vergessen 8)
Da es bei meinem Receiver generell klappt, kann ich den Schlechtfall leider nicht testen.
Jetzt nochmal bitte ausprobieren.
Vielen Dank
Gruß
Markus
Danke, feedback morgen
Danke für die neue Version.
Fehler ist damit behoben.
Allerding habe ich jetzt bei Zone2 in dem "SET" Dropdown-Menü einen Eintrag "000statusRequest"
Beim Ausführen erhalte ich:
Unknown argument 000statusRequest, choose one of on off volumeStraight volume volumeUp volumeDown input mute remoteControl play pause stop skip sleep 000statusRequest
In der Main Zone ist dieser Eintrag nicht vorhanden.
Gruß Schlimbo
Hi Markus,
beim DSP-Z7 funktioniert die Tonsteuerung, mit der angehefteten Verison, weiterhin in allen Zonen korrekt. Ein "000statusRequest" erscheint bei mir nicht.
Btw: Danke fürs kümmern, schließlich ist der Patch ja auf meinem Mist gewachsen ;)
/Uli
Zitat von: Schlimbo am 17 Oktober 2015, 21:50:55
Danke für die neue Version.
Fehler ist damit behoben.
Allerding habe ich jetzt bei Zone2 in dem "SET" Dropdown-Menü einen Eintrag "000statusRequest"
Beim Ausführen erhalte ich:
Unknown argument 000statusRequest, choose one of on off volumeStraight volume volumeUp volumeDown input mute remoteControl play pause stop skip sleep 000statusRequest
In der Main Zone ist dieser Eintrag nicht vorhanden.
Gruß Schlimbo
Bei mir identisches verhalten
Das ist schön zu hören, den 000statusRequest konnte ich bei mir nachstellen und habe ich gefixt. Die fertige Version habe ich bereits eingecheckt, so dass diese ab morgen via update zur Verfügung steht.
Wer ansonsten direkt testen will, kann sich hier die Datei runterladen: http://sourceforge.net/p/fhem/code/9509/tree//trunk/fhem/FHEM/71_YAMAHA_AVR.pm?format=raw
Viele Grüße
Markus
Hallo,
ich hänge mich hier mal an.
Da ich zu der aussterbenden Species gehöre, die noch mp3s hören und nicht alles aus der cloud streamen, suche ich nach einer Möglichkeit, dies über FHEM zu steuern. Ich besitze einen Yamaha AVR, den ich auch schon eingebunden habe. Speziell würde mich hierbei interessieren, ob man theoretisch direkt Alben anwählen kann, falls der Inhalt des angeschlossenen mp3-USB-sticks bekannt ist. Beim netradio geht es ja nur mit einer "simulierten" Navigation durchs Menü. Wie könnte ich das mit mp3's machen?
Gibt es eine Alternative? Also z.B. den Yamaha auf Server stellen und dann die Musik anderswie drauf schieben? Wie habt Ihr das erledigt? Ich habe kein Interesse an Sonos oder anderen Geräten, bei denen ich weitere hardware an den Receiver anschließen müsste (wie z.B. plex, wenn ich das richtig verstanden habe).
schöne Grüße
Jo
Zitat von: Jojo11 am 29 Oktober 2015, 09:05:17
Wie habt Ihr das erledigt?
Ich benutze zusätzliche Hardware und bin sehr zufrieden damit. Neuere Yamaha Modelle haben Airplay oder MusicCast integriert, vielleicht ist das etwas für dich?
Welche zusätzliche hardware nutzt Du denn wenn ich fragen darf?
Airplay hat meiner auch schon, aber ich habe kein einziges Apple-Gerät und möchte eigentlich auch nicht von Mobilgeräten streamen, sondern eher von einem im LAN befindlichen Gerät.
Ok wäre auch, auf dem FHEM cubietruck die Sammlung abzulegen und dann irgendwie auf den Yamaha zu schieben. Ich stelle mir das recht aufwendig vor, einen plex-Server aufzusetzen, mindestens einen plex-client in der Nähe des AVR und das alles, nur um Musik zu hören. Für HD-Filme dürfte so ein Raspberry-Client wohl nicht reichen.
Aber ich fange auch gerade erst an, mich mit der Thematik zu beschäftigen.
schöne Grüße
Jo
Sonos und Airplay, je nachdem ;)
Für Airplay habe ich ein iTunes laufen, geht unter OS X oder Windows, auch in einer VM. Die Musik selbst liegt auf einem NAS. iTunes/AirPlay hat aus meiner Sicht im Moment den Nachteil, dass das FHEM Modul von Andre nicht weiter entwickelt wird und noch eine sehr rudimentäre Version ist. Das Sonos Modul ist hingegen sehr ausgereift, allerdings hat Sonos selbst die eine oder andere Designmacke.
Sonst gibt es noch xmbc, etc... es gibt hier irgendwo auch einen Multiroom Audio Thread...
Bei mir läuft mpd und minidlna. Ersteres bevorzugt und auch per fhem über yamaha avrx
Danke für die Infos. Itunes kommt für mich nicht in Frage. Den Rest schaue ich mir mal an. Scheint ja, als gäbe es nicht DAS eine System, sondern viele Systeme, die ihre Vor- und Nachteile haben ::)
schöne Grüße
Jo
Hallo zusammen,
bei YAMAHA bleibt nur der Umweg ähnlich dem Netradio Menü. Man müsste den Eingang auf "SERVER" stellen und ab da die Fernbedienungskommandos nachbilden um sich durch das Menü zu hangeln.
Alternativ sollte man den Ansatz versuchen die Abspielsoftware/-maschine zu steuern um den Stream in Richtung YAMAHA Receiver durch eine Applikation wie Kodi oder dergleichen zu initiieren. Dafür gibt es bereits entsprechende Forumthreads zu dem Thema.
Viele Grüße
Markus
Alles klar, danke!
schöne Grüße
Jo
Wird an dieser App noch gearbeitet?
Ich habe mir einen Receiver mit DAB+ zugelegt. Menü technisch gibt es diese Funktion gar nicht.
ich habe gerade gelernt, dass man per HTTP/IP-Interface bei Yamaha die Surround Decoder gezielt auswählen kann.
zumindest bei den neueren Geräten ist das per FB etwas kompliziert, die Taste liegt hinter einer Klappe und man kann eben nur round-robin da durch schalten. Und mit einer Scene kann man das auch nicht verknüpfen.
per YAMAHA_AVR FHEM Modul lässt sich nur das "DSP-Programm" Surround-Decoder auswählen, aber eben nicht welcher Decoder (DSU, Neural-X usw.), es wird dann immer auf den zuletzt verwendeten geschaltet.
hat schonmal jemand darüber nachgedacht das einzubauen? Möglich? Unmöglich? Nutzen/Aufwand uninteressant?
Hallo,
es ist generell möglich. Laut Schnittstellenbeschreibung kann man den Decoder wählen:
"Off"
"Dolby PL"
"Dolby PLII Movie"
"Dolby PLII Music"
"Dolby PLII Game"
"Dolby PLIIx Movie"
"Dolby PLIIx Music"
"Dolby PLIIx Game"
"Dolby PLII z"
"DTS NEO:6 Cinema"
"DTS NEO:6 Music"
"Neural-THX"
"Neural-THX Music"
"CSII Cinema"
"CSII Music"
Je nach Modellreihe sind wohl nicht alle Werte möglich, wobei ich selber nur einen RX-V473 habe.
Mir stellt sich nur die Frage, wozu brauch man sowas? In welchem Fall willst du konkret den Decoder verändern?
Gruß
Markus
Moin, moin,
ich würde gerne FHEM/Light-Manager-Pro/Harmony dazu "missbrauchen" per FB einen Decoder/Upmixer (z.B. Dolby Surround Upmixer oder dts Neural-X) direkt mit EINER Taste umschalten zu können, ohne mich erst durch die Tiefen des Menüs zu kämpfen.
bisher habe ich zwei bzw. 2 1/2 Lösungen, die aber beide irgendwie "von hinten durch die Brust ins Auge" sind:
a) ich kann mit einem speziellen EX-IR Befehl (muss mit den HEX Daten aus einer Excel Tabelle an der Harmony angelernt werden) Dolby Surround gezielt auswählen. Ich kann also in einem Harmony Makro erst den DSP Modus "Surround Decode" auswählen (springt immer zu dem zuletzt genutzten, ist also "zufällig"), dann den Befehl für Dolby Surround senden und von da an mit entsprechend vielen "next Decoder" Befehlen bis zu dem schalten den ich haben möchte
b) statt dem Makro mit dem "next" den Decoder direkt per http Kommando setzen, dafür muss aber auch vorher auf Surround Decode umgeschaltet werden.
ich muss ganz ehrlich sagen, dass mir die Geschichte mit dem httpmod Blockig/Non-Blocking etwas ungeheuer vorkommt. Daher sende ich diese http Befehle jetzt von der habridge
also ich bekomme auch so hin was ich haben möchte, aber ein (oder zwei, erst Surround Decode auswählen) set Befehl wäre ja wesentlich eleganter...
mit der habridge Methode (http POST) stelle ich jetzt auch die Display Helligkeit je nach Uhrzeit und anderen Bedingungen (Beamer/TV/Beleuchtung/usw.) ein, das ist (für mich) ein riesiger Gewinn!
Hallo,
kannst Du mir bitte mal deine desc.xml von deinem Receiver zur Verfügung stellen?
Einfach im Browser http: //<IP-Adresse>/YamahaRemoteControl/desc.xml aufrufen und bitte als XML-Datei abspeichern.
Mein Receiver unterstützt das auslesen/setzen des Surround Decoders nicht, obwohl der Decoder selbst funktioniert. :-/
Vielen Dank
Gruß
Markus
hier sind die DESC XML Files für die Yamaha CX-A5000&51000
Hi,
bei Dir ist es genauso wie bei meinem Receiver. Das Datenmodell unterstützt theoretisch das Auslesen und Setzen des Surround Decoders, aber in der Praxis unterstützen unsere Modelle das nicht.
Wenn ich bei meinem Receiver den Surround Decoder per Yamaha-App setze und wechsle, versucht die App es zunächst den aktuellen Decoder auszulesen:
<YAMAHA_AV cmd="GET"><Main_Zone><Surround><Sound_Program_Param><SUR_DECODE>GetParam</SUR_DECODE></Sound_Program_Param></Surround></Main_Zone></YAMAHA_AV>
Darauf antwortet der Receiver mit Return-Code "2". Dies bedeutet, dass die Anfrage grundsätzlich korrekt ist, aber das Model diesen Parameter nicht unterstützt.
Daher sendet die App nur den Tastencode:
<YAMAHA_AV cmd="PUT"><System><Misc><Remote_Signal><Receive><Code>7A858D72</Code></Receive></Remote_Signal></Misc></System></YAMAHA_AV>
Durch mehrmaliges tippen muss man dann am Receiver-Display schauen, bis man den gewünschten Decoder erwischt.
Ich vermute, dass das Auslesen & Setzen nur in den höheren Modellen möglich ist V6xx, V7xx, da auch in den aktuelleren Modellreihen die Schnittstelle nur in diesen Modellen verfügbar ist. Evtl. kann jemand mit einem solchen Modell hier weiterhelfen und berichten, ob er über die Yamaha-App den Decoder gezielt setzen kann und falls ja, evtl. einen TCP-Dump erzeugen kann.
Tut mir Leid. Viel mehr kann ich da aktuell nicht tun.
Viele Grüße
Markus
ich habe das System des Moduls noch nicht richtig verstanden.
ich kann auf jeden Fall z.B. ein:
<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><Main_Zone><Surround><Sound_Program_Param><SUR_DECODE><Decoder_Type>Dolby Surround</Decoder_Type></SUR_DECODE></Sound_Program_Param></Surround></Main_Zone></YAMAHA_AV>
oder
<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><Main_Zone><Surround><Sound_Program_Param><SUR_DECODE><Decoder_Type>DTS Neural:X</Decoder_Type></SUR_DECODE></Sound_Program_Param></Surround></Main_Zone></YAMAHA_AV>
senden und das wird auch eingestellt!
wenn allerdings z.Z. gerade ein anderes DSP Programm als "Surround Decode" läuft, dann wird das nur "im Hintergrund" umgeschaltet, stelle ich anschließend auf "Surround Decode" um, dann ist auch der Decoder ausgewählt den ich vorher gesetzt habe.
auf Surround Decode schalte ich mit:
<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><Main_Zone><Surround><Program_Sel><Current><Sound_Program>Surround Decoder</Sound_Program></Current></Program_Sel></Surround></Main_Zone></YAMAHA_AV>
um.
wie gesagt, im Moment habe ich alle benötigten Decoder wie o.g. als XML Posts in der ha-bridge hinterlegt und schicke von FHEM eben das entsprechende HUE Kommando.
das "bescheuerte" an der Sache ist: ich kann von der Harmony keine HUE Befehle von den normalen Tasten senden. Also sende ich Light-Manager-Pro Befehle von der Harmony, der sendet FS20 Befehle an ein Dummy Gerät in FHEM und FHEM sendet HUE Befehle an die ha-bridge und die ha-bridge sendet dann die XML Posts an den Yamaha.
es funktioniert wunderbar, genauso wie ich es gerne hätte, aber ist doch reichlich von hinten durch die Brust ins Auge...
Das kann ich gut nachvollziehen, dass sowas eine totale Krücke ist.
Da man bei dir den Decoder setzen kann, muss man ihn theoretisch auch auslesen können. Kannst Du bitte mal folgenden Aufruf via cURL machen:
curl -d '<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="GET"><Main_Zone><Surround><Sound_Program_Param><SUR_DECODE>GetParam</SUR_DECODE></Sound_Program_Param></Surround></Main_Zone></YAMAHA_AV>' "http://192.168.XXX.X/YamahaRemoteControl/ctrl"
Als Antwort müsste hier der aktuell gesetzte Decoder kommen. Kannst Du das bitte mal bei deinem Receiver prüfen?.
Normalerweise enthält die desc.xml eine Auflistung aller möglichen Werte (Scenes, DSP Modes,...). Auch in diesem Fall hätte ich erwartet, dass die möglichen Decoder in der XML gelistet sind. Jede Modellreihe unterstützt verschiedene Decoder die nicht immer dieselben sind. Hier müsste ich für jede Modellreihe schauen, welche Decoder zur Verfügung stellen und diese direkt im Modul verankern, was ich für sehr unflexibel halte in Bezug auf neue Modellreihen.
Kannst Du denn über die Yamaha-App den Decoder auch gezielt setzen?
Vielen Dank
Gruß
Markus
das scheint zu klappen:
<YAMAHA_AV rsp="GET" RC="0"><Main_Zone><Surround><Sound_Program_Param><SUR_DECODE><Decoder_Type>Dolby Surround</Decoder_Type><Panorama>Off</Panorama><Center_Width><Val>3</Val><Exp>0</Exp><Unit></Unit></Center_Width><Dimension><Val>0</Val><Exp>0</Exp><Unit></Unit></Dimension><Center_Spread>Off</Center_Spread><Center_Image><Val>3</Val><Exp>1</Exp><Unit></Unit></Center_Image></SUR_DECODE></Sound_Program_Param></Surround></Main_Zone></YAMAHA_AV>
<YAMAHA_AV rsp="GET" RC="0"><Main_Zone><Surround><Sound_Program_Param><SUR_DECODE><Decoder_Type>DTS Neural:X</Decoder_Type><Panorama>Off</Panorama><Center_Width><Val>3</Val><Exp>0</Exp><Unit></Unit></Center_Width><Dimension><Val>0</Val><Exp>0</Exp><Unit></Unit></Dimension><Center_Spread>Off</Center_Spread><Center_Image><Val>3</Val><Exp>1</Exp><Unit></Unit></Center_Image></SUR_DECODE></Sound_Program_Param></Surround></Main_Zone></YAMAHA_AV>
wobei da auch Infos zurück kommen, die für den aktuellen Decoder gar keine Bedeutung haben. Center Width gibt es z.B. nur für PLII Music und Center Image bei Neo:6.
ach ja, das funktioniert auch wenn aktuell gar nicht "Surround Decode" als DSP Programm ausgewählt ist.
Hi,
bitte probier mal die angehangene Version von 71_YAMAHA_AVR.pm!
Ich habe dort die Erkennung und Steuerung nach deinen Erkenntnissen blind eingebaut. Ich kann es leider nicht testen, da mein Receiver die Befehle nicht unterstützt.
Im Erfolgsfall solltest du ein Reading "sounddecoder" haben, sowie ein Set-Befehl "sounddecoder" zum setzen. Falls nicht, bitte mal das Attribut verbose auf "4" stellen und einen Status-Request ausführen und anschließend die Logs hier posten.
Vielen Dank
Gruß
Markus
erstmal vielen Dank für deine Mühen!
das Reading "surrounddecoder" habe/hatte ich auch mit der ursprünglichen Version schon!
oder anders gesagt: die neue Version hat nichts geändert, das Reading ist weiterhin da, aber einen Set Befehl gibt es nicht.
ich hoffe ich habe eine ganzen Zyklus aus dem Log erwischt.
ich habe heute nicht die Zeit, werde mir aber wohl morgen mal die Änderungen der neuen Version ansehen.
Kannst du mir bitte einmal die Ausgabe von "list CXA5100" in der FHEM Befehlszeile hier posten?
Danke
Gruß
Markus
hier hast du... ;)
Sieht in deinem List-Output aber alles gut aus. Das Modul hat den Surround-Decoder erkannt und er hat sich eine Liste der verfügbaren Sound Decoders gebaut. Diese müsste nun als set-Kommando zur Verfügung stehen.
Ich sehe gerade ich habe das set kommando fälschlicherweise "sounddecoder" genannt. müsste eigentlich "surrounddecoder" heißen, schaltet aber dennoch den Surround Decoder. Das ist ein Tippfehler meinerseits. Müsste damit aber dennoch funktionieren.
Zitat von: Mickey Mouse am 30 April 2017, 19:12:27
das Reading "surrounddecoder" habe/hatte ich auch mit der ursprünglichen Version schon!
oder anders gesagt: die neue Version hat nichts geändert, das Reading ist weiterhin da, aber einen Set Befehl gibt es nicht.
Das kann ich mir nicht vorstellen, da in der Version, so wie sie aktuell im SVN enthalten ist, das Modul kein Reading "surrounddecoder" generiert.
Probier es bitte nochmal mit der angehangenen Version. Jetzt heist das set Kommando richtigerweise "surrounddecoder".
Danke
Gruß
Markus
vielen, vielen Dank!!!
in der Decoder Liste die u.a. für die CX-A5100 zuständig ist fehlte der "DTS Neural:X" Eintrag, den habe ich noch ergänzt.
das funktioniert bei mir mit der CX-A5100 und der alten CX-A5000 (noch ohne Atmos und dts:X).
ich habe mich heute nochmal dran gesetzt und auch noch:
- YPAO-Volume (adaptive Loudness seit der RX-Vx77/RX-Axx40/CX-A5xxx Generation)
- Extra-Bass (haben soviel ich weiß alle Yamaha AVR, nur die Wirkungsweise hat sich geändert)
dazu "gebastelt" (im wahrsten Sinne des Wortes) aber zumindest die elementaren Ansätze habe ich jetzt verstanden, glaube ich 8)
wenn ADRC bedient wird, dann gehören diese beiden Dinge meiner Meinung nach auch dazu. Bei den neueren Yamaha wird z.B. das ADRC erst wirksam wenn auch YPAO-Volume eingeschaltet ist. Ist es aus, dann kann man zwar ADRC einschalten, aber es hat dann keine Wirkung.
etwas "krumm" sind die Einstellungen/Readings, Yamaha ist sich ja wohl selber nicht so ganz sicher wie es die nennen soll. In den Kommandos heißt "Auto" und so wird es auch ausgelesen, aber z.B. in der iOS App wird es Ein/Aus und nicht Auto/Aus genannt. Wohlgemerkt bei Extra_Bass und YPAO-Volume, bei ADRC nennt es auch die App Auto/Aus, muss ich nicht verstehen...
edit: so, jetzt ist auch noch die Display Helligkeit eingebaut und ich bin rundum wunschlos glücklich :)
Zitat von: Mickey Mouse am 01 Mai 2017, 14:14:24
in der Decoder Liste die u.a. für die CX-A5100 zuständig ist fehlte der "DTS Neural:X" Eintrag, den habe ich noch ergänzt.
das funktioniert bei mir mit der CX-A5100 und der alten CX-A5000 (noch ohne Atmos und dts:X).
Lustigerweise sagen meine Schnittstellenbeschreibungen was anderes :o siehe Anhang
Zitat von: Mickey Mouse am 01 Mai 2017, 16:38:00
ich habe mich heute nochmal dran gesetzt und auch noch:
- YPAO-Volume (adaptive Loudness seit der RX-Vx77/RX-Axx40/CX-A5xxx Generation)
- Extra-Bass (haben soviel ich weiß alle Yamaha AVR, nur die Wirkungsweise hat sich geändert)
dazu "gebastelt"
edit: so, jetzt ist auch noch die Display Helligkeit eingebaut und ich bin rundum wunschlos glücklich :)
Das muss ich später nochmal in Ruhe durchgehen, da es auch hier wieder Unterschiede in den einzelnen Modellreihen gibt.
Viele Grüße
Markus
dts:X und damit der Neural:X Decoder sind erst per FW Update/Upgrade nachgereicht worden, ich denke mal damit wird das zusammen hängen (hatte ich aber auch schon wieder ausgeblendet).
ich kann mir kaum vorstellen, wie man so ein Projekt auf die Beine stellen kann, wenn man das nicht "mal eben live" ausprobieren kann, das stelle ich mir extrem "fusselig" vor.
meine Änderungen funktionieren halt soweit für meinen AVR. Sehr gut möglich, dass das bei einem anderen AVR zum Totalabsturz führt...
btw.: wird die FW Geschichte nur angezeigt wenn tatsächlich eine neue FW vorhanden ist?
Nachtrag:
gerade die Display Helligkeit finde ich persönlich für FHEM interessant/relevant.
die kann man nicht mal eben so einfach per FB umstellen, das versteckt sich in den Tiefen des System Menüs. Mit einer Scene kann man das auch nicht verknüpfen. Keine Ahnung was sich Yamaha dabei gedacht hat, vermutlich gar nichts, weil man kann das Display ja auch nicht komplett abschalten (nur im Pure-Direct Modus ist es ganz aus, dafür leuchtet dann eine blaue LED wie ein FLAK Scheinwerfer).
ich als Beamer Nutzer finde es sehr interessant die Display Helligkeit abhängig von der "Umgebung" einzustellen. Wenn der Beamer läuft, dann gibt es gar keine andere Wahl als -4, ist er aus, dann wird abhängig von der Uhrzeit (Sonnen Auf/Untergang) und den rundherum eingeschalteten Lampen die passende Helligkeit geraten, genau dafür ist doch FHEM da.
-4 stört in einem komplett abgedunkeltem Zimmer immer noch, aber am Tag wenn die Sonne scheint, dann kann man bei -4 nicht einmal erkennen ob die Kiste überhaupt eingeschaltet ist oder nicht.
EX-IR Codes gibt es nicht, wie gesagt die ansonsten recht mächtigen Scenes patzen hier -> FHEM ist die Rettung!
Ich habe mal deine Änderungen in meine Form überführt und eingepflegt. Leider unterstützt mein Receiver keinen dieser neuen Befehle. Bitte prüfe daher mal, ob die neuen Befehle/Readings bei deinem Receiver funktionieren.
Neue Befehle/Readings:
- ypaoVolume
- extraBass
- displayBrightness
Vielen Dank
Gruß
Markus
das nenne ich mal Service :)
sieht sowohl auf der CX-A5100 als auch 5000 sehr gut aus und funktioniert wie erwartet!
auf der CX-A5000 gibt es den Extra Bass nicht, aber da hatte ich wohl wieder mal einen Denkfehler. Die hat zwar prinzipiell auch "Extra Bass" aber dort ist es eine Einstellung innerhalb der "LS-Konfiguration" und kein Punkt im "Option Menü".
Ich denke mal, dass man das i.d.R. eh nur einmal beim Basis Setup einstellt und nicht per FHEM ändern muss.
perfekt, jetzt muss ich nur noch meine Scripts auf displayBrighness statt Dimmer umschreiben.
btw.: hast du einen Tipp wie ich einfach die alten Readings von meinen Stümper Versuchen los werde? Obwohl die mich auch nicht wirklich stören.
Vielen Dank :-)
Für deine Readings gibt es den FHEM-Befehl "deletereading":
deletereading CXA5100 meinStuemperhaftesReading
Alternativ auch mit Regexp:
deletereading CX.* meinStuemperhaftesR.*
Dann checke ich diese Version ein.
Vielen Dank für deine Unterstützung und viele Grüße
Markus
Ich habe das Modul nun eingecheckt. Ich habe dabei nochmal den Befehl "sounddecoder" geändert in "soundDecoder" damits vom Schema her gleich bleibt zum Rest ;-)
Gibts offiziell morgen via update.
Gruß
Markus
mir ist gerade beim Löschen "meiner Readings" aufgefallen, dass das Reading "presence" wohl nicht mehr aktualisiert wird, ob das jetzt gewollt ist oder nicht, kann ich nicht beurteilen?!?
Das wird beim Start und bei Änderungen gesetzt
Hallo Markus,
Danke für das Update, das neue Feature mit der Display Helligkeit finde ich echt genial.
(Danke auch an Mickey Mouse für die Inspiration)
Weiß nicht ob du meinen Beitrag in dem anderen Thread gelesen hast, deswegen wollte ich das Thema noch mal hoch holen:
https://forum.fhem.de/index.php/topic,60902.msg553091.html#msg553091 (https://forum.fhem.de/index.php/topic,60902.msg553091.html#msg553091)
Bei mehren Zonen ist es momentan so, dass wenn in einer Zone eine Netzwerk Quelle gespielt wird und die andere Zone ausgeschaltet ist, bei einem currentAlbum/currentArtist/currentTitle/currentStation Wechsel, Events für beide Zonen erzeugt werden.
Gruß
Schlimbo
Hallo hab hier einen R-N402D, und bekomme wenn ich Verbose auf 5 stelle nur Fehler 404, und wenn ich die Seite im Browser eingebe auch nix zurück ...
Muss ich da noch wo was einschalten damit das funktioniert, oder geht das mit dem R-N402D nicht?
HTTP Error 404 sieht nicht gut aus. Ohne Markus vorgreifen zu wollen, gehe ich davon aus, dass nur Amps unterstützt werden, die auch von der Yamaha App AV CONTROLLER (http://jp.yamaha.com/sp/apps/av/av-controller/en/) unterstützt werden.
Hallo zusammen,
der Receiver R-N402D stammt aus der MusicCast-Reihe. Dafür gibt es eine andere App, welche ein anderes Steuerungsprotokoll verwendet: https://de.yamaha.com/de/products/audio_visual/apps/musiccast_controller/index.html
Für FHEM wird ein entsprechendes Modul für MusicCast-Modelle aktuell entwickelt: https://forum.fhem.de/index.php/topic,54798.0.html
Mit YAMAHA_AVR sind MusicCast-Modelle nicht kompatibel. Nur Modelle, welche per AV Controller App gesteuert werden können, sind kompatibel.
Viele Grüße
Markus
Oh danke werde ich probieren :D
Zitat von: Markus Bloch am 02 Mai 2017, 19:57:07
Neue Befehle/Readings:
- ypaoVolume
- extraBass
- displayBrightness
Hallo Markus,
zunächst vielen Dank für dieses tolle Modul! Es lief von Anfang an problemlos.
Mittlerweile habe ich in der aktuellsten Version auch die Unterstützung für einige Features gefunden, die zuvor nicht dabei waren.
Leider kann ich bei meinem Modell
RX-V779 nicht alle Werte wie gewünscht setzen:
direct (aus|ein) gibt es bei meinem Modell nur als Pure Direct (aus|ein). Oder ist hier
straight zu wählen?
Ich habe noch eine Subwooferanpassung. Dafür fehlt leider noch die Unterstützung (nice to have, aber ohne Priorität)
Schließlich noch eine Frage:
Die Yamaha-eigene App zeigt die Informationen aus
currentTitle zweizeilig mit einem korrekten Umbruch an, sofern das vom Sender so übermittelt wird.
Ich glaube, dass der Sender einen Zeilenumbruch mitschickt, der in
currentTitle gelöscht wird.
Das führt im Frontend (z.B. FTUI) zu schlecht bzw. unformatierten Ausgaben.
EDIT: Zur Verdeutlichung habe ich zwei Screenshots der Darstellung in der Yamaha-App bzw in der FHEM-FTUI gegenübergestellt.
Glaubst du, dass du diese kleinen Extras noch einbauen bzw ändern kannst? Wäre jedenfalls super.
Gruß
Klaus
P.S.
Falls erforderlich, hier noch ein paar Details:
Internals:
ACTIVE_ZONE mainzone
DEF 192.168.178.27
FIRMWARE 2.05/3.70
MODEL RX-V779
NAME avr
NR 1159
STATE on
SYSTEM_ID 0A167B73
TYPE YAMAHA_AVR
ZONES_AVAILABLE mainzone,zone2
Readings:
2017-08-20 15:20:22 3dCinemaDsp off
2017-08-20 15:20:22 adaptiveDrc off
2017-08-20 15:20:22 bass 3
2017-08-20 15:20:22 currentStation WDR 2
2017-08-20 15:20:22 currentStationFrequency 100.80 MHz
2017-08-20 15:20:22 currentTitle Gleich geht es los - 1. Spieltag 1. Wir
2017-08-20 15:20:22 direct off
2017-08-20 15:20:22 displayBrightness 0
2017-08-20 15:20:22 dsp 7chstereo
2017-08-20 15:20:22 enhancer on
2017-08-20 15:20:22 extraBass auto
2017-08-20 15:20:22 hdmiOut1 on
2017-08-20 15:20:22 hdmiOut2 on
2017-08-20 15:20:22 input tuner
2017-08-20 15:20:22 inputName TUNER
2017-08-20 15:20:22 mute off
2017-08-20 15:20:22 partyMode off
2017-08-20 15:20:22 playStatus playing
2017-08-20 15:20:22 power on
2017-08-20 13:39:48 presence present
2017-08-20 15:20:22 sleep off
2017-08-20 15:20:22 state on
2017-08-20 15:20:22 straight off
2017-08-20 15:20:22 surroundDecoder dolbypliimovie
2017-08-20 15:20:22 treble 0
2017-08-20 15:20:22 tunerFrequency 100.80
2017-08-20 15:20:22 tunerFrequencyBand FM
2017-08-20 15:20:22 volume 41
2017-08-20 15:20:22 volumeStraight -40.5
2017-08-20 15:20:22 ypaoVolume auto
Helper:
ADDRESS 192.168.178.27
AVAILABLE 1
CURRENT_INPUT_TAG Tuner
DIRECT_TAG Pure_Direct
DSP_MODES Hall in Munich|Hall in Vienna|Chamber|Cellar Club|The Roxy Theatre|The Bottom Line|Sports|Action Game|Roleplaying Game|Music Video|Standard|Spectacle|Sci-Fi|Adventure|Drama|Mono Movie|Surround Decoder|2ch Stereo|7ch Stereo
INPUTS AUDIO1|AUDIO2|AV1|AV2|AV3|AV4|AV5|AV6|AirPlay|Bluetooth|HDMI1|HDMI2|HDMI3|HDMI4|HDMI5|JUKE|MusicCast Link|NET RADIO|Napster|PHONO|SERVER|Spotify|TUNER|USB|V-AUX|iPod (USB)
LAST_INPUT_TAG Tuner
OFF_INTERVAL 30
ON_INTERVAL 30
RUNNING_REQUEST 0
SCENES Scene 1|Scene 2|Scene 3|Scene 4
SELECTED_ZONE mainzone
SUPPORT_DISPLAY_BRIGHTNESS 1
SUPPORT_EXTRA_BASS 1
SUPPORT_HDMI_OUT 1
SUPPORT_PARTY_MODE 1
SUPPORT_SHUFFLE_REPEAT 0
SUPPORT_SURROUND_DECODER 1
SUPPORT_TONE_STATUS 1
SUPPORT_YPAO_VOLUME 1
SURROUND_DECODERS Dolby PLII Movie|Dolby PLII Music|Dolby PLII Game|Dolby PLIIx Movie|Dolby PLIIx Music|Dolby PLIIx Game|DTS NEO:6 Cinema|DTS NEO:6 Music
XML /YamahaRemoteControl/desc.xml
ZONES Main_Zone|Zone_2
CMD_QUEUE:
Attributes:
event-on-change-reading .*
model RX-V779
room 10_Multimedia
Ich hänge auch noch meine desc.xml an.
Hallo Klaus,
das Problem mit dem direct-Befehl bei deinem Modell konnte ich nachvollziehen. Hier muss ich mal in Ruhe schauen, welche Modelle das evtl. noch betrifft um dann eine Behandlung einzubauen. Ist aber an sich kein Problem.
EDIT: Das Modul erkennt, ob dein Receiver das Tag <Direct> oder <Pure_Direct> verwendet und nutzt das entsprechende. Von daher sollte direct bei dir ganz normal funktionieren.
Bezgl. currentTitle: Ich habe den Zeilenumbruch bewusst entfernt, da Zeilenumbrüche in Readings in FHEM aktuell nicht durchgängig funktionieren und supportet sind. Wenn ich meine AV-Receiver Detailseite aufrufe wird der Zeilenumbruch nicht angezeigt, wenn per Longpoll der currentTitle aktualisiert wird, wird der Zeilenumbruch berücksichtigt (mit entsprechender Änderung in YAMAHA_AVR um den Zeilenumbruch zu erzeugen). Daher habe ich die beiden Zeilen nur mit einem Leerzeichen verbunden.
Ich habe das gerade bei mir nochmal explizit getestet. Daher bin ich aktuell nicht geneigt den Zeilenumbruch da einzufügen.
Gruß
Markus
Hallo Markus,
danke für deine Antwort.
Zitat von: Markus Bloch am 23 August 2017, 20:31:29
Von daher sollte direct bei dir ganz normal funktionieren.
Stimmt! Ich war mit meiner Frage wohl etwas zu voreilig!
Zitat
... Ich habe den Zeilenumbruch bewusst entfernt, da Zeilenumbrüche in Readings in FHEM aktuell nicht durchgängig funktionieren ...
Daher bin ich aktuell nicht geneigt den Zeilenumbruch da einzufügen.
Das ist zunächst nachvollziehbar.
Aber es gibt nach meiner Meinung noch die Möglichkeit, dies etwas flexibler zu gestalten.
Ich könnte mir z.B. ein neues Attribut namens
lineBreak vorstellen.
Dessen Vorgabe wäre dann
lineBreak=<Leerzeichen> und würde genau das abbilden, was du momentan impliziert hast.
Der Benutzer (zum Beispiel ich ;) ) könnte bei Bedarf aber auch z.B. eine Tilde (~) oder zwei Hütchen (^^) oder ähnliches für
lineBreak einsetzen.
Für die Darstellung im Frontend müsste der Benutzer dann den individuell gesetzten Wert von
lineBreak z.B. durch <br> ersetzen (Perl), so dass wieder ein Zeilenumbruch an der Originalstelle erscheint.
Wäre das eine Option?
Gruß
Klaus
Hallo,
im Yamaha-Modul habe ich eine kleine Ungenauigkeit gefunden.
Die Funktion extraBass kann nicht mit on eingeschaltet werden, sondern mit auto.
Ausschalten funktioniert mit off.
Gruß
Apollon
die Ungenauigkeit hast du aber nicht in dem FHEM Modul hier gefunden, sondern in der App von Yamaha ;)
Yamaha nennt das allgemein selber "auto" und "off", so steht es z.B. im Web-Setup und in der API. Nur die App für Tablets nennt es on/off (also "on" statt "auto").