Neues Modul: YAMAHA_AVR zur Steuerung von Yamaha AV Receivern per Netzwerk

Begonnen von Guest, 05 November 2012, 23:48:54

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo zusammen,

mit diesem Thread möchte ich euch mein erstes Modul was nun den Weg in das
FHEM Projekt geschafft hat vorstellen. Es handelt sich hierbei um das Modul
YAMAHA_AVR. Es dient im Grundlegenden zum steuern von AV-Receivern der
Marke Yamaha, welche über einen Netzwerkanschluss verfügen.

Auf Grund einer Yamaha-intern standardisierten Schnittstelle (für die
iOS/Android-App) kann damit eingentlich jeder AV-Receiver von Yamaha
gesteuert werden, sofern ein Netzwerkanschluss vorhanden ist. Ich
persönlich habe in meinen bescheidenen vier Wänden einen RX-V473 im
Einsatz. Ich habe aber im Rahmen der Entwicklungsphasen das selbe Modul
auch schon mit einem  RX-V3067 (Danke an den User Hausautomat für die
durchgeführten Tests) im Einsatz gesehen.

Aktuelle Features sind:

   - An- und Ausschalten (state: on | off)
   - Auswählen aller tatsächlich vorhandenen Inputs (variert stark, je nach
   Modell; es werden nur die tatsächlich verfügbaren Inputs angeboten)
   - Setzen der Lautstärke (sowohl direkt, als auch gleitende Anpassung)
   - Stummschaltung an/aus

Natürlich kann man hier noch viel, viel mehr an Befehlen und Optionen
hineinbauen, aber ich denke dies sind die wichtigsten Befehle im
Zusammenhang mit FHEM.

Als kleines Beispiel:
 

Bei mir wird die Lautstärke des Receivers durch FHEM heruntergefahren,
sobald mein Festnetztelefon klingelt (gelöst mit dem Modul FB_CALLMONITOR,
was ich direkt im Anschluss ebenfalls noch vorstelle). Sobald ich das
Gespräch geführt habe und auflege, wird die Lautstärke wieder auf den
vorherigen Wert hochgeregelt, sofern dies erforderlich ist.


Ich denke hier gibt es noch eine Menge mehr an Ideen was man damit machen
kann.

Wichtig um dieses Modul zu nutzen ist, dass die Option *Network Standby* am
Receiver *aktiviert *sein muss, sonst funktioniert das Modul nicht.

Falls ihr Fragen zu dem Modul habt, kommt gerne auf mich zu.

Viele Grüße

Markus

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Ich hoffe du hast auch den Network Standby an deinem Receiver aktiviert.

BTW: Die Idee mit Master of Puppets gefällt mir  ;-)

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Ist aktiviert ;-) Nutze die Android-App seit längerem..

Wenns an meiner Tür klingelt, läuft For whom the bell tolls ;-)

Am Dienstag, 6. November 2012 17:51:50 UTC+1 schrieb Markus Bloch:
>
> Ich hoffe du hast auch den Network Standby an deinem Receiver aktiviert.
>
> BTW: Die Idee mit Master of Puppets gefällt mir  ;-)
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Supper !

es funktioniert
in der fhem.conf
einfach ein
define avr YAMAHA_AVR 192.168.178.82
eingefügt

mein RX-V771
wurde direkt erkannt und ist bediehnbar :-)
vielen Dank
MfG carl

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Whow, das hört sich ja Alles sehr gut an.
Wäre Folgendes möglich: Power on und Abspielen eines bestimmten MP3 von der
NAS?
Oder muesste man NAS seitig auch was machen? Airplay, streaming etc.?
Wie seid Ihr denn mit den RX-Vx73 Series zufrieden?
Es liest sich ja toll, um 300€ für den 373 5.1 Sound, Integration via HDMI,
app, Netzwerk, Upgradebar über Firmware, eco mode, einmessbar etc.

Gruss Joachim

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Also ich bin mit meinem V473 (309€) voll zufrieden. Nutz den zurzeit nur reinweg zum Musik hören und bin voll begeistert.

Zu deiner Frage: Möglich währe das durchaus, hatte ich nur nicht einprogrammiert, da ich es nicht brauch. Wer genau dabei den Stream initieren müsste, muss ich mal testen.

Wenn man via FHEM den Receiver auf Server schaltet sollte das direkt klappen. Ich nutze nur AirPlay ausschließlich (allerdings nicht over the Air, sondern direkt Kabel)

Hoffe ich konnte helfen

Viele Grüße

Markus

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo,

nach vielen Bemühungen und Versuchen meinen Yamaha zeitgesteuert über den
Router ein und auszuschalten bin ich nun auf FHEM gestoßen.
Ich bin begeistert von den Möglichkeiten die sich dadurch ergeben.
Mittlerweile habe ich FHEM auf einer Fb 7390 laufen und meinen AVR auch
schon in der config definiert.
Nun meine Frage ist es möglich die Zone 2 über das jetzige Modul
anzusteuern oder ist das bis jetzt noch nicht gegeben?
Mir geht es eigentlich nur darum meine Zone 2 Werktags als "Wecker" zu
nutzen...

Grüße

Am Montag, 5. November 2012 23:48:54 UTC+1 schrieb Markus Bloch:
>
> Hallo zusammen,
>
> mit diesem Thread möchte ich euch mein erstes Modul was nun den Weg in das
> FHEM Projekt geschafft hat vorstellen. Es handelt sich hierbei um das Modul
> YAMAHA_AVR. Es dient im Grundlegenden zum steuern von AV-Receivern der
> Marke Yamaha, welche über einen Netzwerkanschluss verfügen.
>
> Auf Grund einer Yamaha-intern standardisierten Schnittstelle (für die
> iOS/Android-App) kann damit eingentlich jeder AV-Receiver von Yamaha
> gesteuert werden, sofern ein Netzwerkanschluss vorhanden ist. Ich
> persönlich habe in meinen bescheidenen vier Wänden einen RX-V473 im
> Einsatz. Ich habe aber im Rahmen der Entwicklungsphasen das selbe Modul
> auch schon mit einem  RX-V3067 (Danke an den User Hausautomat für die
> durchgeführten Tests) im Einsatz gesehen.
>
> Aktuelle Features sind:
>
>    - An- und Ausschalten (state: on | off)
>    - Auswählen aller tatsächlich vorhandenen Inputs (variert stark, je
>    nach Modell; es werden nur die tatsächlich verfügbaren Inputs angeboten)
>    - Setzen der Lautstärke (sowohl direkt, als auch gleitende Anpassung)
>    - Stummschaltung an/aus
>
> Natürlich kann man hier noch viel, viel mehr an Befehlen und Optionen
> hineinbauen, aber ich denke dies sind die wichtigsten Befehle im
> Zusammenhang mit FHEM.
>
> Als kleines Beispiel:
>  
>
> Bei mir wird die Lautstärke des Receivers durch FHEM heruntergefahren,
> sobald mein Festnetztelefon klingelt (gelöst mit dem Modul FB_CALLMONITOR,
> was ich direkt im Anschluss ebenfalls noch vorstelle). Sobald ich das
> Gespräch geführt habe und auflege, wird die Lautstärke wieder auf den
> vorherigen Wert hochgeregelt, sofern dies erforderlich ist.
>
>
> Ich denke hier gibt es noch eine Menge mehr an Ideen was man damit machen
> kann.
>
> Wichtig um dieses Modul zu nutzen ist, dass die Option *Network Standby*am Receiver
> *aktiviert *sein muss, sonst funktioniert das Modul nicht.
>
> Falls ihr Fragen zu dem Modul habt, kommt gerne auf mich zu.
>
> Viele Grüße
>
> Markus
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo,

nach vielen Bemühungen und Versuchen meinen Yamaha zeitgesteuert über den
Router ein und auszuschalten bin ich nun auf FHEM gestoßen.
Ich bin begeistert von den Möglichkeiten die sich dadurch ergeben.
Mittlerweile habe ich FHEM auf einer Fb 7390 laufen und meinen AVR auch
schon in der config definiert.
Nun meine Frage ist es möglich die Zone 2 über das jetzige Modul
anzusteuern oder ist das bis jetzt noch nicht gegeben?
Mir geht es eigentlich nur darum meine Zone 2 Werktags als "Wecker" zu
nutzen...

Grüße

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Fidel,

generell ist das natürlich möglich. Da ich aber zuhause nur einen RX-V473
habe, welcher nur eine Main-Zone hat, konnt ich die dafür nötigen Befehle
nicht in Erfahrung bringen.
l
Am einfachsten ist es, wenn du via Smartphone mal das umschalten via Yamaha
App durchführst und das dabei auf der FritzBox mit-tracen tust. Ist ganz
einfach:

1. geh auf http://fritz.box/html/capture.html
2. Drücke bei der Netzwerkschnittstelle "ath0" auf start (es startet ein
Download mit unbekannter größe)
3. Geh in deinem Smartphone auf die Yamaha-App und schalte mal die Zone 2
an und wähle einen Input aus
4. spiel etwas mit der Lautstärke und Mute in der App herum
5. Drücke in der FritzBox auf der Capture Seite auf Stopp

Das resultierende File aus dem Download mir bitte schicken, dann kann ich
die ganzen Befehle für die zweite Zone (und auch theoretisch die 3. Zone
bei anderen Modellen) mit einpfegen.

Bitte häng mal noch das ergebniss des folgenden Aufrufs an deinem
AV-Receiver mit an:
 http:///YamahaRemoteControl/desc.xml

Vielen Dank

Gruß
Markus

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hi Markus,
nun habe ich doch mal einige Fragen. :D

Meinen RX-A2010 habe ich so definiert:
*    define AVR1 YAMAHA_AVR 192.168.0.40 15
    attr AVR1 event-on-change-reading power,volume,input
    attr AVR1 room (a)OG_Wohnzimmer*

So wie ich das verstanden habe, wird doch wenn ein anderer Input gewählt
wird, oder ich das Gerät ausschalte, bzw. die Lautstärke ändere, doch das
Notify ausgelöst:
*define n_AVR notify AVR1 {
...
}*

Bei mir ist es so, dass es nur bei Power und Input auslöst. Volume wird
ignoriert. Da ich volume bei event-on-change-reading angegeben habe, sollte
das doch gehen, oder?


Des weiteren verstehe ich noch nicht so ganz die GET - Syntax.
Mit *my $AVRv = get AVR1 volume* bekomme ich die Fehlermeldung: *n_AVR
return value: Bareword "volume" not allowed while "strict subs" in use at
(eval 21) line 1.

*Wenn ich nun in dem Notify *my $AVRv = get AVR1 'volume' *eintrage,
bekomme ich *n_AVR return value: Can't locate object method "get" via
package "AVR1" (perhaps you forgot to load "AVR1"?) at (eval 21) line 1.

*Wie sieht das denn nun richtig aus?


LG Jörg

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Jörg,

das ist ganz einfach:


So wie ich das verstanden habe, wird doch wenn ein anderer Input gewählt
> wird, oder ich das Gerät ausschalte, bzw. die Lautstärke ändere, doch das
> Notify ausgelöst:
> *define n_AVR notify AVR1 {
> ...
> }*
>
> Bei mir ist es so, dass es nur bei Power und Input auslöst. Volume wird
> ignoriert. Da ich volume bei event-on-change-reading angegeben habe, sollte
> das doch gehen, oder?
>


Ja das geht auch. Setze event-on-change-reading auf "power,volume*_level*,input"
;-)


 

>
> Des weiteren verstehe ich noch nicht so ganz die GET - Syntax.
> Mit *my $AVRv = get AVR1 volume* bekomme ich die Fehlermeldung: *n_AVR
> return value: Bareword "volume" not allowed while "strict subs" in use at
> (eval 21) line 1.
>
> *Wenn ich nun in dem Notify *my $AVRv = get AVR1 'volume' *eintrage,
> bekomme ich *n_AVR return value: Can't locate object method "get" via
> package "AVR1" (perhaps you forgot to load "AVR1"?) at (eval 21) line 1.
>
> *Wie sieht das denn nun richtig aus?


Der GET Befehl ist ein rein FHEM interner Befehl und kann so direkt nicht
in FHEM verwendet werden. In einer Perl-Funktion würde das so aussehen:

my $AVRv = fhem("get AVR1 volume*_level*");      <= die Funktion fhem führt
einen FHEM-Befehl aus und gibt das Ergebnis zurück

oder

my $AVRv = ReadingsVal("AVR1","volume_level","");      <= meinte bevorzugte
Variante


Ich habe gerade noch bezüglich des "get AVR1 volume_level" noch etwas
gefixet, da der Befehl aktuell nur volume akzeptiert und dann anschließen "no
such reading: volume" als Fehler zurück gibt.

Das habe ich bereits gefixed. Ist bereits im SVN drin und wird ab morgen
via update verfügbar sein.

Viele Grüße

Markus

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Bin ein Stück weiter gekommen. Mit *my $AVRv = {("get AVR1 volume")}* gibt
es keine Fehlermeldung mehr. Der Inhalt von *$AVRv *ist *HASH(0xa690e0c)*.*
*

Damit komme ich aber auch nicht weiter. :-D

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hi Jörg,

Bin ein Stück weiter gekommen. Mit *my $AVRv = {("get AVR1 volume")}* gibt
> es keine Fehlermeldung mehr. Der Inhalt von *$AVRv *ist *HASH(0xa690e0c)*.
> * *
>
> Damit komme ich aber auch nicht weiter. :-D
>

Mit Klammern hast du auch gerade ein Hash (ein Array mit Wörtern als Index)
erzeugt, welches quasi die zeichenfolge "get AVR1 volume beinhaltet. Nutze
einfach die Funktion ReadingsVal:

my $AVRv = ReadingsVal("AVR1","volume_level","");

Damit klappt es auf jedenfall ;-)

Viele Grüße

Markus

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Danke Markus, es funktioniert nun. :-)))

Werde morgen ein Update ausführen!

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Wie ich den Beitrag geschrieben habe, hatte ich nicht gesehen, dass Du
schon geantwortet hast. :)

Noch einmal danke für Deine Hilfe und auch für das Modul !!!!


LG Jörg




Mit Klammern hast du auch gerade ein Hash (ein Array mit Wörtern als Index)
erzeugt, welches quasi die zeichenfolge "get AVR1 volume beinhaltet. Nutze
einfach die Funktion ReadingsVal:

>
> my $AVRv = ReadingsVal("AVR1","volume_level","");
>
> Damit klappt es auf jedenfall ;-)
>
> Viele Grüße
>
> Markus
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com