[21_HEOSMaster,21_HEOSPlayer,21_HEOSGroup] Module für das Denon Multiroomsystem

Begonnen von CoolTux, 21 Januar 2017, 21:47:52

Vorheriges Thema - Nächstes Thema

Depechem

Zitat von: CoolTux am 08 Dezember 2022, 16:54:40
Hi,

Den größeren Anteil an dem Code der Module hat jemand anderes. Ich müsste mich da erst einlesen. Aber das größere Problem ist das ich kein HOES System habe.


Grüße

ja das weis ich, ich habe mir auch schon den 21_HEOSPlayer.pm Code angeschaut. Nur leider komme ich da nicht weiter.
Die Hauptfrage von all meinen Fragen ist, wie man an die Bilder (links) kommt wenn man ein get Player ls 1028 auslöst.

Dachte das findet sich alles im .pm Code wieder.
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

grappa24

Ich hätte da auch Interesse dran, hab das aktuell ziemlich plump mit einer SUB gelöst.

Wobei ich nicht mit den tunein-Images arbeite sondern mit lokal abgelegten Icons, weil die tunein-Images im webp-Format vorliegen, die mein Dolphin-Browser nicht anzeigen möchte  >:(

######## HEOS - Senderlogo aus aktuellem Sender generieren ############

sub getChannelUrlHEOS($)
{
        my ($Device) = @_;

        my $link = sprintf('<img src="');
 
my $channel = ReadingsVal("$Device", "channel", "1");

if ($channel eq "1") {
   $link .= sprintf('/fhem/icons/hr3');
}   
if ($channel eq "2") {
   $link .= sprintf('/fhem/icons/you-fm');
}   
if ($channel eq "3") {
   $link .= sprintf('/fhem/icons/ffh');

        $link .= sprintf('">');
       
return $link;
}
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

isy

Zitat von: grappa24 am 09 Dezember 2022, 09:59:54
Ich hätte da auch Interesse dran, hab das aktuell ziemlich plump mit einer SUB gelöst.

Wobei ich nicht mit den tunein-Images arbeite sondern mit lokal abgelegten Icons, weil die tunein-Images im webp-Format vorliegen, die mein Dolphin-Browser nicht anzeigen möchte  >:(

######## HEOS - Senderlogo aus aktuellem Sender generieren ############

sub getChannelUrlHEOS($)
{
        my ($Device) = @_;

        my $link = sprintf('<img src="');
 
my $channel = ReadingsVal("$Device", "channel", "1");

if ($channel eq "1") {
   $link .= sprintf('/fhem/icons/hr3');
}   
if ($channel eq "2") {
   $link .= sprintf('/fhem/icons/you-fm');
}   
if ($channel eq "3") {
   $link .= sprintf('/fhem/icons/ffh');

        $link .= sprintf('">');
       
return $link;
}


Deine Lösung hatte ich seinerzeit kopiert (Danke dafür!).
Leider muss man für jeden Channel eine neue Zeile einfügen.
OK, aber funktioniert super!
Ein Weg wird erst zu einem Weg, wenn man ihn geht

Depechem

Zitat von: grappa24 am 09 Dezember 2022, 09:59:54
Ich hätte da auch Interesse dran, hab das aktuell ziemlich plump mit einer SUB gelöst.

Wobei ich nicht mit den tunein-Images arbeite sondern mit lokal abgelegten Icons, weil die tunein-Images im webp-Format vorliegen, die mein Dolphin-Browser nicht anzeigen möchte  >:(

######## HEOS - Senderlogo aus aktuellem Sender generieren ############

sub getChannelUrlHEOS($)
{
        my ($Device) = @_;

        my $link = sprintf('<img src="');
 
my $channel = ReadingsVal("$Device", "channel", "1");

if ($channel eq "1") {
   $link .= sprintf('/fhem/icons/hr3');
}   
if ($channel eq "2") {
   $link .= sprintf('/fhem/icons/you-fm');
}   
if ($channel eq "3") {
   $link .= sprintf('/fhem/icons/ffh');

        $link .= sprintf('">');
       
return $link;
}


mein Problem daran ist, das "Frau" ab und an neue Sender möchte und dann auch die Fav.-Reinfolge ändert.
Somit muss jeglicher Code sowie alle Icons neu umbenannt und neu zugeortnet werden.
Und ich habe immerhin 6 HEOS Geräte, muss bei allen geändert werden.

Noch dazu gibt die HEOS .pm wie oben beschrieben ja bereits schon alles so aus, wie benötigt.
Ich denke das wäre für alle die optimalste Lösung denn Heos arbeitet bei den Sendern immer mit den Favoriten und bis auf diese Icons sowie die aktuellen Favoriten  wird ja schon alles wunderbar als Readings in dem Modul angezeigt. 

Ich besitzte HEOS von Anfang an, kam mit der Bitte eines FHEM-Moduls an Marko ran, es läuft super nur diese Funktionen fehlen mir noch.
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

TheAbalone

Hallo!

Bei mir haben sich jetzt die  Boxen auf 2.71.510 upgedated und jetzt funktioniert gar nichts mehr. Der Master ist zwar connected, aber die Player kommen nicht mehr und bleiben initialzed. Was kann ich da machen?

isy

Hallo,
Das ist komisch.
Ich nutze schon einige Zeit Heos 1,  Denon Home und Sub sowie einen AVR mit der 2.71.510.
Keine Probleme.

Hast du den HEOSMaster mal mit "reopen" bedacht?
Ein Weg wird erst zu einem Weg, wenn man ihn geht

TheAbalone

Ja, habe ich. Auch beides neu gestartet. Einen Player habe ich auch schon gelöscht. Wird nicht neu angelegt.

Bei lastResult kommt immer fail. Ich dreh mal das loglevel hoch. Vielleicht sehe ich da etwas.

Aber danke, jetzt weiß ich dass es funktionieren sollte.

isy

Mach auch mal ein List vom deinem HEOSMaster.
Den User bitte aus-x-en.
Hier meine Version:

Internals:
   DEF        192.168.178.49
   FD         76
   FUUID      5c42e846-f33f-27cb-56cb-8fd43512d4870935
   HOST       192.168.178.49
   LAST_RECV  1677139900.8354
   NAME       MasterHEOS
   NR         584
   PARTIAL   
   STATE      connected
   TYPE       HEOSMaster
   VERSION    1.0.3
   eventCount 543
   READINGS:
     2023-02-22 08:36:55   enableChangeEvents on
     2023-02-22 08:36:55   heosAccount     signed_in as xxxxx
     2023-02-23 09:10:28   lastCommand     player/get_now_playing_media
     2023-02-23 07:25:42   lastPlayerId    -1171374310
     2023-02-23 07:25:42   lastPlayerName  HEOS L
     2023-02-23 09:10:28   lastResult      success
     2023-02-22 08:36:54   state           connected
Ein Weg wird erst zu einem Weg, wenn man ihn geht

TheAbalone

Internals:
   DEF        10.1.0.30
   FD         12
   FUUID      5ef73f0a-f33f-7170-0a14-a7d53197937396eb
   HOST       10.1.0.30
   LAST_RECV  1677147729.6956
   NAME       KucheMaster
   NR         96
   PARTIAL   
   STATE      connected
   TYPE       HEOSMaster
   VERSION    1.0.3
   eventCount 4346
   READINGS:
     2023-02-23 07:23:25   enableChangeEvents off
     2023-02-23 06:59:46   heosAccount     signed_in as xxx
     2023-02-23 11:22:09   lastCommand     
     2023-02-23 07:10:04   lastPlayerId    1179980219
     2023-02-23 07:10:04   lastPlayerName  Badezimmer
     2023-02-23 11:22:09   lastResult      fail
     2023-02-23 11:22:06   state           connected
Attributes:
   heosUsername xxx
   room       HEOS



Im Logfile kommt immer (vor und nach dem Neuanlegen vom Master):
2023-02-23 11:29:25 HEOSMaster MasterHEOS lastCommand:
2023-02-23 11:29:25 HEOSMaster MasterHEOS lastResult: fail

isy

Bei mir sind alle Player IDs negativ und enableChangeEvents ist auf on.
Sonst sieht alles gleich aus.

Meine Heosplayer Version ist 1.04. Bei dir auch?

Ein Weg wird erst zu einem Weg, wenn man ihn geht

TheAbalone

Ja, alles up-to-date. lastCommand ist immer leer und result isz fail. Nur wenn ich set reboot mache, kommt bei lastResult success.
Ich habe noch den Master resetted, keine Besserung.

Liegts vielleicht am IPBereich?

TheAbalone

Bin einen Schritt weitergekommen: In den Logdaten steht:
2023.02.23 19:44:34 5: HEOSMaster (MasterHEOS) - received buffer data, start HEOSMaster_ProcessRead: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - Read password from file
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - Build socket connection
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - Socket Connected
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - WriteFn called
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - heos://system/register_for_change_events?enable=off

2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - set enableChangeEvents off
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - WriteFn called
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - heos://system/sign_in?un=xxx&pw=xxx

2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - sign in
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - WriteFn called
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - heos://player/get_players

2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - getPlayers
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - ReadFn gestartet
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - received buffer data, start HEOSMaster_ProcessRead: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - process read
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - No PARTIAL buffer
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - Incoming data: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - Current processing buffer (PARTIAL + incoming data): {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - Decoding JSON message. Length: 87 Content: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - JSON String: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - JSON detected!
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - call Sub HEOSMaster_WriteReadings
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - general error ID 7 - no proxy device provided
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - starte HEOSMaster_ResponseProcessing
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - Garbage character before message:
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - Garbage character before message:

2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - Tail:
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - PARTIAL:
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - ReadFn gestartet
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - received buffer data, start HEOSMaster_ProcessRead: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}
{"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - process read
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - No PARTIAL buffer
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - Incoming data: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}
{"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - Current processing buffer (PARTIAL + incoming data): {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}
{"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - Decoding JSON message. Length: 87 Content: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - JSON String: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - JSON detected!
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - call Sub HEOSMaster_WriteReadings
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - general error ID 7 - no proxy device provided
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - starte HEOSMaster_ResponseProcessing
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - Garbage character before message:
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - Garbage character before message:

2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - Decoding JSON message. Length: 87 Content: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - JSON String: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - JSON detected!
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - call Sub HEOSMaster_WriteReadings
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - general error ID 7 - no proxy device provided
2023.02.23 20:05:42 4: HEOSMaster (MasterHEOS) - starte HEOSMaster_ResponseProcessing
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - Garbage character before message:
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - Garbage character before message:

2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - Tail:
2023.02.23 20:05:42 5: HEOSMaster (MasterHEOS) - PARTIAL:
2023.02.23 20:05:43 4: HEOSMaster (MasterHEOS) - WriteFn called
2023.02.23 20:05:43 5: HEOSMaster (MasterHEOS) - heos://system/register_for_change_events?enable=on

2023.02.23 20:05:43 4: HEOSMaster (MasterHEOS) - set enableChangeEvents on
2023.02.23 20:05:43 4: HEOSMaster (MasterHEOS) - ReadFn gestartet
2023.02.23 20:05:43 5: HEOSMaster (MasterHEOS) - received buffer data, start HEOSMaster_ProcessRead: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:43 4: HEOSMaster (MasterHEOS) - process read
2023.02.23 20:05:43 4: HEOSMaster (MasterHEOS) - No PARTIAL buffer
2023.02.23 20:05:43 5: HEOSMaster (MasterHEOS) - Incoming data: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:43 5: HEOSMaster (MasterHEOS) - Current processing buffer (PARTIAL + incoming data): {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:43 5: HEOSMaster (MasterHEOS) - Decoding JSON message. Length: 87 Content: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}
2023.02.23 20:05:43 5: HEOSMaster (MasterHEOS) - JSON String: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}
2023.02.23 20:05:43 4: HEOSMaster (MasterHEOS) - JSON detected!
2023.02.23 20:05:43 4: HEOSMaster (MasterHEOS) - call Sub HEOSMaster_WriteReadings
2023.02.23 20:05:43 4: HEOSMaster (MasterHEOS) - general error ID 7 - no proxy device provided
2023.02.23 20:05:43 4: HEOSMaster (MasterHEOS) - starte HEOSMaster_ResponseProcessing
2023.02.23 20:05:43 5: HEOSMaster (MasterHEOS) - Garbage character before message:
2023.02.23 20:05:43 5: HEOSMaster (MasterHEOS) - Garbage character before message:

2023.02.23 20:05:43 5: HEOSMaster (MasterHEOS) - Tail:
2023.02.23 20:05:43 5: HEOSMaster (MasterHEOS) - PARTIAL:
2023.02.23 20:05:44 4: HEOSMaster (MasterHEOS) - WriteFn called
2023.02.23 20:05:44 5: HEOSMaster (MasterHEOS) - heos://browse/get_music_sources

2023.02.23 20:05:44 4: HEOSMaster (MasterHEOS) - getMusicSources
2023.02.23 20:05:44 4: HEOSMaster (MasterHEOS) - ReadFn gestartet
2023.02.23 20:05:44 5: HEOSMaster (MasterHEOS) - received buffer data, start HEOSMaster_ProcessRead: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:44 4: HEOSMaster (MasterHEOS) - process read
2023.02.23 20:05:44 4: HEOSMaster (MasterHEOS) - No PARTIAL buffer
2023.02.23 20:05:44 5: HEOSMaster (MasterHEOS) - Incoming data: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:44 5: HEOSMaster (MasterHEOS) - Current processing buffer (PARTIAL + incoming data): {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:44 5: HEOSMaster (MasterHEOS) - Decoding JSON message. Length: 87 Content: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}
2023.02.23 20:05:44 5: HEOSMaster (MasterHEOS) - JSON String: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}
2023.02.23 20:05:44 4: HEOSMaster (MasterHEOS) - JSON detected!
2023.02.23 20:05:44 4: HEOSMaster (MasterHEOS) - call Sub HEOSMaster_WriteReadings
2023.02.23 20:05:44 4: HEOSMaster (MasterHEOS) - general error ID 7 - no proxy device provided
2023.02.23 20:05:44 4: HEOSMaster (MasterHEOS) - starte HEOSMaster_ResponseProcessing
2023.02.23 20:05:44 5: HEOSMaster (MasterHEOS) - Garbage character before message:
2023.02.23 20:05:44 5: HEOSMaster (MasterHEOS) - Garbage character before message:

2023.02.23 20:05:44 5: HEOSMaster (MasterHEOS) - Tail:
2023.02.23 20:05:44 5: HEOSMaster (MasterHEOS) - PARTIAL:
2023.02.23 20:05:45 4: HEOSMaster (MasterHEOS) - WriteFn called
2023.02.23 20:05:45 5: HEOSMaster (MasterHEOS) - heos://group/get_groups

2023.02.23 20:05:45 4: HEOSMaster (MasterHEOS) - getGroups
2023.02.23 20:05:45 4: HEOSMaster (MasterHEOS) - ReadFn gestartet
2023.02.23 20:05:45 5: HEOSMaster (MasterHEOS) - received buffer data, start HEOSMaster_ProcessRead: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:45 4: HEOSMaster (MasterHEOS) - process read
2023.02.23 20:05:45 4: HEOSMaster (MasterHEOS) - No PARTIAL buffer
2023.02.23 20:05:45 5: HEOSMaster (MasterHEOS) - Incoming data: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:45 5: HEOSMaster (MasterHEOS) - Current processing buffer (PARTIAL + incoming data): {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

2023.02.23 20:05:45 5: HEOSMaster (MasterHEOS) - Decoding JSON message. Length: 87 Content: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}
2023.02.23 20:05:45 5: HEOSMaster (MasterHEOS) - JSON String: {"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}
2023.02.23 20:05:45 4: HEOSMaster (MasterHEOS) - JSON detected!
2023.02.23 20:05:45 4: HEOSMaster (MasterHEOS) - call Sub HEOSMaster_WriteReadings
2023.02.23 20:05:45 4: HEOSMaster (MasterHEOS) - general error ID 7 - no proxy device provided
2023.02.23 20:05:45 4: HEOSMaster (MasterHEOS) - starte HEOSMaster_ResponseProcessing
2023.02.23 20:05:45 5: HEOSMaster (MasterHEOS) - Garbage character before message:
2023.02.23 20:05:45 5: HEOSMaster (MasterHEOS) - Garbage character before message:

2023.02.23 20:05:45 5: HEOSMaster (MasterHEOS) - Tail:
2023.02.23 20:05:45 5: HEOSMaster (MasterHEOS) - PARTIAL:


Ich bekomme die Meldung auch, wenn ich direkt mit Putty eine Telnet Verbindung herstelle:
heos://player/get_players
{"heos":{"command":"","result":"fail","message":"eid=7&text=no proxy device provided"}}

Liegt also an den Boxen und nicht an Fhem.

TheAbalone


isy

Mein Master ist eine Denon Home 150. Die Box läuft wegen des sehr geringen Stromverbrauchs durch.

Kannst du mal am Master diesen Befehl absetzen:
set <deinmaster> enableChangeEvents on
Das Reading steht bei dir auf off.
Evtl. Ist der Master der Proxy? Keine Ahnung auf dem Level.

Ich denke, nur Cooltux kann weiterhelfen.

VG Helmut
Ein Weg wird erst zu einem Weg, wenn man ihn geht