Anbindung von Pioneer AVR

Begonnen von Erasor, 29 April 2013, 11:07:24

Vorheriges Thema - Nächstes Thema

50watt

#120
Zitat von: grywnn am 27 April 2014, 22:39:39
Nur kurz zur Info: Ich bin wieder zurück aus dem Osterurlaub :)
Welcome back!

Zitat von: grywnn am 27 April 2014, 22:39:39
Hab mal kurz in den Code geschaut:
if ( substr($response,0,3) eq sprintf "SSC%02d0301",$i )
...ohne das jetzt getestet zu haben glaube ich das wird nie ausgeführt
Jaaaaaaaa - sollte
if ( $response eq sprintf "SSC%02d0301",$i )
lauten....
Danke für's nachlesen!
Zitat von: grywnn am 27 April 2014, 22:39:39
Werde die Tage mal ausführlich testen.
Hab grad nur kurz in den Code geschaut und mal flott den SSC per Telnet getestet - der ?SSC Befehl funktioniert auf jedem Fall auch bei meinem VSX-921.
Perfekt!
RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x

50watt

#121
Ist es ein Ziel, die Kommunikation Pioneer AVR <---> FHEM auf die DevIo.pm (im FHEM Verzeichnis) umzustellen?

Warum?
  • Es wird von rudolfkoenig empfohlen: http://forum.fhem.de/index.php/topic,21303.msg148012.html#msg148012
  • Das Modul würde dann automatisch auch die RS232 Schnittstelle der Pioneer AVR unterstützen
  • würde gut zur Erweiterung auf eine ständige Datenverbindung (wenn z.B. ?SUM keinen Fehler liefert) passen
  • Abhängigkeit von Net::Telnet würde wegfallen

DevIO.pm kann heute:
DevIo_CloseDev($@);
DevIo_Disconnected($);
DevIo_Expect($$$);
DevIo_OpenDev($$$);
DevIo_SetHwHandshake($);
DevIo_SimpleRead($);
DevIo_SimpleReadWithTimeout($$);
DevIo_SimpleWrite($$$);
DevIo_TimeoutRead($$);

Siehe dazu auch http://www.fhemwiki.de/wiki/DevelopmentModuleIntro#X_Read
RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x

P.A.Trick

Das hört sich spannend an!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

matze81

#123
Hallo Leute,

ich finde euer Modul echt spannend. Ich selber habe den VSX-920 und würde den gern mit eurem Modul nutzen. Dank der Links im Text konnte ich zumindest per  den AVR ohne Probleme steuern. Nur über das Modul will es noch nicht so recht. Das erste was mich wundert ist, dass das Modell in FHEM nicht angezeigt wird. Sende ich z.B. ein Mute On über FHEM ab, wird dies auch korrekt unter Readings angezeigt. Der AVR führt den Befehl aber nicht aus. Sende ich jetzt einen statusRequest wird bei Readings auch wieder Mute off angezeigt. Dafür kommen auf der Konsole folgende Meldungen:

substr outside of string at ./FHEM/70_PIONEER_AVR.pm line 567.
Use of uninitialized value in string ne at ./FHEM/70_PIONEER_AVR.pm line 567.
substr outside of string at ./FHEM/70_PIONEER_AVR.pm line 603.
Use of uninitialized value in string eq at ./FHEM/70_PIONEER_AVR.pm line 603.
substr outside of string at ./FHEM/70_PIONEER_AVR.pm line 620.
Use of uninitialized value in string eq at ./FHEM/70_PIONEER_AVR.pm line 620.
substr outside of string at ./FHEM/70_PIONEER_AVR.pm line 603.
Use of uninitialized value in string eq at ./FHEM/70_PIONEER_AVR.pm line 603.
substr outside of string at ./FHEM/70_PIONEER_AVR.pm line 620.
Use of uninitialized value in string eq at ./FHEM/70_PIONEER_AVR.pm line 620.


Ändere ich Mute per Fernbedienung wird dies auch korrekt durch den statusRequest angezeigt.

Habt ihr einen Tipp für mich woran das liegen könnte?


Update: Der Reciever brauch scheinbar einen Befehl zum Aufwecken. Wenn ich im Modul vor dem eigentlichen Befehl ein "VU" sende gehen fast alle Kommandos auch aus FHEM heraus. Nur MO und MF wollen noch nicht. Was mich wundert warum das ganze auch nur funktioniert wenn ich das "VU" in einer eigenen telnet Verbindung sende. Aber ich komm schon noch dahinter ;)

Update2: Ganz so einfach scheint es doch nicht zu sein. Mal geht es, mal nicht. Sehr eigenartig.

VG
matze

matze81

Hab es hinbekommen den VSX-920 komplett über euer Modul anzusteuern. Ich musste nur in 'sub PIONEER_AVR_SendCommand($$;$)' ein 'usleep' zusätzlich einfügen. Ich teste das mal noch eine Weile, wenn es geht wäre es cool wenn ihr das das mit aufnehmen könntet.

...
                $tel->print("\n".$command);
                usleep(100000);
                if ( substr($command,0,1) eq "?" ) {
...

Paul

Zitat von: matze81 am 21 Mai 2014, 10:01:54
Hab es hinbekommen den VSX-920 komplett über euer Modul anzusteuern.

Danke ich bin vorher verzweifelt jetzt klappt es auch bei mir
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

50watt

#126
Anbei ein asynchrones Modul für Pioneer AVR.
Es verwendet IOdev und sollte dadurch neben der Möglichkeit, den Pioneer AVR via Ethernet Verbindung zu steuern auch(theoretisch) mit rs232 Verbindungen klar kommen (von mir nicht getestet!).

Die Verbindung von FHEM zum Pioneer AVR bleibt bei diesem Modul ständig aufrecht - FHEM lauscht also ständig, ob es Änderungen am Pioneer AVR gab und wertet diese aus.
Es gibt ein reading "display" das die aktuelle Anzeige des Displays des Pioneer Avr enthält.

Name des Modules: PIONEERAVR
Das Modul PIONEERAVR bedient nur die Zone "main"
Für die anderen Zonen gibt es zusätzlich das Modul PIONEERAVRZONE (siehe unten).

define:
    define <name> PIONEERAVR telnet <IPAddress:Port>
    oder
    define <name> PIONEERAVR serial <SerialDevice>[<@BaudRate>]
Beispiel:
      define VSX923 PIONEERAVR telnet 192.168.0.91:8102

set:

       
  • reopen: Versucht die Datenverbindung Fhem <-> Pioneer AVR wiederherzustellen
  • statusRequest: führt alle "get" Befehle aus, um einen aktuellen Status des Pioneer AVR zu erhalten
  • off: Pioneer AVR ausschalten
  • on: Pioneer AVR enschalten
  • toggle: Ein bzw. ausschalten
  • volume <0 ... 100>: Lautstärke in % für die "main zone"
  • volumeUp: Lautstärke um 0,5dB erhöhen
  • volumeDown: Lautstärke um 0,5dB verkleinern
  • volumeStraight<-80.5 ... 12>: Lautstärke wie am Pioneer AVR angezeigt setzten
  • mute <on|off|toggle>
  • input <nicht deaktivierter Engang>: die Liste der nicht deaktivierten Eingänge wird beim Start eingelesen
  • inputUp: nächsten Eingang wählen
  • inputDown: vorherigen Eingang wählen
  • listeningMode
  • play: nur für de Eingänge: AdapterPort, Ipod, Favorites, InternetRadio, MediaServer, Mhl
  • pause: nur für de Eingänge: AdapterPort, Ipod, Favorites, InternetRadio, MediaServer, Mhl
  • stop: nur für de Eingänge: AdapterPort, Ipod, Favorites, InternetRadio, MediaServer, Mhl
  • repeat: nur für die Eingänge: AdapterPort, Ipod, Favorites, InternetRadio, MediaServer
  • shuffle: nur für die Eingänge: AdapterPort, Ipod, Favorites, InternetRadio, MediaServer
  • channel <1...9>: nur für den Tuner-Eingang: setzt den Tuner Channel auf Kanal 1...9
  • channelUp: Nächster Kanal (nur für den Tuner-Eingang)
  • channelDown: Vorheriger Kanal (nur für den Tuner-Eingang)
  • channelStraight <A1...G9>Setzt den Tuner-Kanal auf den Preset  A1...G9

Für die Zonen gibt es das Modul
PIONEERAVRZONE
define <name> PIONEERAVRZONE <zone>
<zone> kann aktuell

  • zone2
  • zone3
  • hdZone
sein.

Beispiel:
define myPioneerAvrZone2 PIONEERAVRZONE zone2
PIONEERAVRZONE verwendet die gleiche Datenverbindung wie PIONEERAVR (Genauer: PIONEERAVR reicht die Informationen, die auf der Datenverbindung einlangen und für Zonen bestimmt sind, weiter).

set gibts hier nur für

  • volume
  • volumeUp
  • volumeDown
  • mute
  • on
  • off
  • toggle
  • input
  • inputUp
  • inputDown

Freue mich über Feedback
RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x

P.A.Trick

Habe heute versucht das Modul zu laden. Ich bekomme folgende Meldung:

Type of arg 1 to values must be hash (not private array) at ./FHEM/70_PIONEERAVR.pm line 825, near "@listInputNames)"
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

50watt

@P.A.Trick:
Danke für die Fehlermeldung!
Wie kann ich die Fehlermeldung nachvollziehen (ich sehe die Fehlermeldung auf meinem Raspberry Pi nicht)?
Ich habe die Zeile 825 geändert:
join(',', sort @listInputNames)

Ist damit die Fehlermeldung weg?

(anbei die korrigierte Version).
RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x

P.A.Trick

#129
Ich hatte ein reload 70_PIONEERAVR.pm durchgeführt! Ich teste das Modul mal eben!

Ok immer lädt er es!
Folgendes kam beim Start:

2014.06.01 20:44:20 3: AVR: Unknown code Z2F05, help me!
2014.06.01 20:44:20 3: AVR: Unknown code Z2MUT1, help me!
2014.06.01 20:44:20 3: AVR: Unknown code ZV21, help me!
2014.06.01 20:44:20 3: AVR: Unknown code APR1, help me!


PS: Hast du das Model-Reading entfernt? Ich denke das ist zum debuggen ganz nett, wenn es drin ist oder?
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

P.A.Trick

Noch etwas: Warum kann ich den AVR nicht mehr einschalten?
Ein "set AVR on" klappt nicht mehr!?
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

50watt

#131
@P.A.Trick:
Danke für's rasche Testen und die Fehlermeldung!

Mein vsx-923 lies sich mit set AVR on starten.
Ich habe nun den Code für "set <name> on" dokumentationskonform umgebaut (<cr> --- 100ms warten --- PO --- 100ms warten)
Das Reading "model" gibt es auch wieder (das dazu notwendige Kommando "?RGD" konnte ich in der Dokumentation nicht finden).

ZitatFolgendes kam beim Start:

Code: [Auswählen]
2014.06.01 20:44:20 3: AVR: Unknown code Z2F05, help me!
2014.06.01 20:44:20 3: AVR: Unknown code Z2MUT1, help me!
2014.06.01 20:44:20 3: AVR: Unknown code ZV21, help me!
2014.06.01 20:44:20 3: AVR: Unknown code APR1, help me!
Das sind Informationen für die Zone 2 - Hast du ein device für die zone2 in fhem.cfg?
z.B.:
define AVRzone2 PIONEERAVRZONE zone2

Anbei die aktualisierten Versionen für die Main Zone (70_PIONEERAVR.pm) und die weiteren Zonen  (71_PIONEERAVRZONE.pm)

PS: Wenn es ein Beispiel gibt, wie man Devices automatisch anlegt, dann baue ich das für die Zonen gerne ein (sollten Informationen zu Zonen vom Pioneer AVR kommen und noch kein Zonen-device existieren)
RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x

P.A.Trick

#132
Zitat von: 50watt am 01 Juni 2014, 22:52:47
@P.A.Trick:
Danke für's rasche Testen und die Fehlermeldung!

Mein vsx-923 lies sich mit set AVR on starten.
Ich habe nun den Code für "set <name> on" dokumentationskonform umgebaut (<cr> --- 100ms warten --- PO --- 100ms warten)
Das Reading "model" gibt es auch wieder (das dazu notwendige Kommando "?RGD" konnte ich in der Dokumentation nicht finden).
Das sind Informationen für die Zone 2 - Hast du ein device für die zone2 in fhem.cfg?
z.B.:
define AVRzone2 PIONEERAVRZONE zone2

Anbei die aktualisierten Versionen für die Main Zone (70_PIONEERAVR.pm) und die weiteren Zonen  (71_PIONEERAVRZONE.pm)

PS: Wenn es ein Beispiel gibt, wie man Devices automatisch anlegt, dann baue ich das für die Zonen gerne ein (sollten Informationen zu Zonen vom Pioneer AVR kommen und noch kein Zonen-device existieren)

Ok die Meldungen sind durch das Zone2 Modul weg....das hatte ich nicht definiert, da ich die Zone2 nicht nutze!
Was mir noch aufgefallen ist? Warum unterstützt das Modul das Kommando blink?
Ich denke das ist ein Standard Erweiterungsmodul, oder? Das sollte aber deaktiviert werden!

Weiterhin klappt das einschalten von meinem VSX-922 immer noch nicht. Hier mal ein Auszug vom Logfile:

2014.06.04 21:01:28 5: PIONEERAVR AVR: called function PIONEERAVR_Set( ? )
2014.06.04 21:04:00 5: SW: 3f50520d
2014.06.04 21:04:00 5: PIONEERAVR AVR: called function PIONEERAVR_Set( ? )
2014.06.04 21:04:02 5: PIONEERAVR AVR: called function PIONEERAVR_Set( ? )
2014.06.04 21:04:24 5: PIONEERAVR AVR: called function PIONEERAVR_Set( on )
2014.06.04 21:04:24 5: PIONEERAVR AVR: Set on
2014.06.04 21:04:24 5: PIONEERAVR AVR: Set on
2014.06.04 21:04:24 5: SW: 0d
2014.06.04 21:04:24 5: SW: 504f0d
2014.06.04 21:04:24 5: PIONEERAVR AVR: Set_IOwrite: PO
2014.06.04 21:04:28 5: PIONEERAVR AVR: called function PIONEERAVR_Set( ? )


Edit
Was mich noch stört, ist das meine Pioneer App nicht mehr funktioniert?!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

50watt

Vielen Dank für's Testen und die Kommentare!
"blink" ist Teil der "set extensions" (siehe commandref - ist bei einem AVR wohl entbehrlich - werde versuchen, "blink" zu entfernen.

@app geht nicht mehr: dieses Modul belegt ständig einen tcp Port des Pioneer AVR -wenn der Pioneer AVR nur einen tcp Port hat bzw. nur ein Port am Pioneer AVR geöffnet ist, ist dieser Port vom Fhem Modul belegt und die app kann sich nicht zum Pioneer AVR verbinden.
Wenn dein Pioneer AVR mehrere Tcp Ports unterstützt, kannst du mit diesem Fhem Modul auf einen anderen Port ausweichen (z.B. 23 - klassischer Telnet Port, beim vsx923 lassen sich die Ports per Webinterface konfigurieren). Oder wenn er eine rs232 Schnittstelle hat, so kannst du auch diese verwenden.

Kannst du dir vorstellen, das Fhem die App ersetzt? Was fehlt dazu noch?

RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x

P.A.Trick

Zum blink: klasse Danke

Zur App: mein 922er unterstützt leider keine weiteren Ports, jedenfalls finde ich keinen Punkt im Webmenu!

Ja ich könnte mir vorstellen das die FHEM DIE App ersetzt, wenn es einen aehnlich Sex Frontend hat :-) Scherz beiseite, das klappt jetzt schon fuer die üblichen Funktionen! Wo genau besteht denn genau der Vorteil einer ständig aufgebauten Verbindung? Die Aktualisierung des Displays finde ich persönlich mit fhem nicht wirklich wichtig oder übersehe ich etwas?
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn