[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

hanseis

Das mit der Gruppenerzeugung finde ich ne gute Idee. Vom Player aus erzeugen und die Gruppe dann über ein Gruppendevice steuern und evtl auflösen.

CoolTux

So werde ich es auch machen. Setze mich am WE nun hin und pflege Deinen Code ein, dann werde ich das erzeugen einer Gruppe so machen das man sich ein Playerdevice nimmt welches der Leader sein soll und da dann einen weiteren Player sich aussucht. Alles andere kommt dann über die Gruppe.
Hoffentlich stimmt die API Beschreibung wenigstens dahingehend das wenn man alle Player ausser den Leader aus der Gruppe entfernt hat das dann die Gruppe weg ist.
Das Gruppendevice lasse ich dann aber stehen in FHEM, da ich davon ausgehe das man eh immer den selben Player als Leader nimmt.
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

CoolTux

Auch hier noch mal ganz ganz dollen Dank für Deine Arbeit.
Der Hans hat in den letzten 2 Wochen die komplette browsen und history Integration geschrieben und ich habe es dann eingepflegt. Da wir Probleme mit der Größe der Änderungen hatten, das es über PM nicht mehr ging, hat Hans es mal hier angehangen.

Ich werde die Dateien sofort ins Git übernehmen.



Grüße
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


Depechem

Sehr geil!!!!

"groupWithMember" geht aber noch nicht?
(Also Gruppieren muss man im Moment noch in der APP)
"clearGroup" sowie Gruppensteuerung funktioniert super.

Gruß Thomas
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

CoolTux

Also groupWithMember sollte eigentlich gehen. Mach das bitte noch mal und wenn nichts passiert dann mach mal ein getGroup im Master..
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

Hallo zusammen,

ich hab jetzt mal die Version von Hans vom 24.02. installiert, alles komplett neu aufgebaut. Der Master lässt sich installieren, aber die Player werden bei mir mit getPlayers nicht mehr gefunden ???   

Grüße, Dieter
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, ...

CoolTux

Zitat von: grappa24 am 26 Februar 2017, 11:43:56
Hallo zusammen,

ich hab jetzt mal die Version von Hans vom 24.02. installiert, alles komplett neu aufgebaut. Der Master lässt sich installieren, aber die Player werden bei mir mit getPlayers nicht mehr gefunden ???   

Grüße, Dieter

Schaue ich mir an. Danke fürs testen.
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

hanseis

Hallo  Depechem

Ein clearGroup löst ein getGroups aus. Das erkennt dann das keine Mitglieder in der Gruppe sind und löscht die Mitglieder. Der Status wird auf off gesetzt(roter Kreis hinter Gruppenname). Die Gruppe selbst wird in fhem nie gelöscht. Wenn du dann aus einem Player heraus ein groupWithMember machst, wird eine Gruppe mit diesem Player als Leader erzeugt wenn diese noch nicht existiert. Der gewählte Player hinter groupWithMember wird Mitglied der Gruppe. Existiert die Gruppe schon wird der gewählte Player hinter groupWithMember einfach der Gruppe hinzugefügt. Ist dieser Player, bei dem du groupWithMember machst, schon in einer Gruppe, passiert nichts. Du musst die bestehende Gruppe erst auflösen. Ist in der App praktisch auch so oder kann ich da ein Mitglied einer Gruppe direkt auf einen anderen Player ziehen und es entsteht eine neue Gruppe? Das habe ich noch nicht probiert.
Fange mal auf der grünen Wiese an, soll heißen lösche mal alle HEOS Devices und definiere einen neuen Master. Der erkennt dann alle Player und Gruppen (wenn du schon welche über die App angelegt hast).

hanseis

Hallo grappa24,

ich kann mir das leider erst morgen richtig anschauen. Du könntest beim Master mal das verbose auf 5 setzen und das log hier einstellen nachdem du ein getPlayers gemacht hast.

grappa24

hier das LOG mit verbose 5 nach GetPlayers: 2017.02.26 12:32:42 4: HEOSMaster (HEOS_Wohnzimmer) - WriteFn called
2017.02.26 12:32:42 5: HEOSMaster (HEOS_Wohnzimmer) - heos://player/get_players

2017.02.26 12:32:43 4: HEOSMaster (HEOS_Wohnzimmer) - ReadFn gestartet
2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - received buffer data, start HEOSMaster_ProcessRead: {"heos": {"command": "player/get_players", "result": "success", "message": "command under process"}}

2017.02.26 12:32:43 4: HEOSMaster (HEOS_Wohnzimmer) - process read
2017.02.26 12:32:43 4: HEOSMaster (HEOS_Wohnzimmer) - No PARTIAL buffer
2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - Incoming data: {"heos": {"command": "player/get_players", "result": "success", "message": "command under process"}}

2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - Current processing buffer (PARTIAL + incoming data): {"heos": {"command": "player/get_players", "result": "success", "message": "command under process"}}

2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - return msg: {"heos": {"command": "player/get_players", "result": "success", "message": "command under process"}} and tail:

2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - Decoding JSON message. Length: 100 Content: {"heos": {"command": "player/get_players", "result": "success", "message": "command under process"}}
2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - JSON String: {"heos": {"command": "player/get_players", "result": "success", "message": "command under process"}}
2017.02.26 12:32:43 4: HEOSMaster (HEOS_Wohnzimmer) - JSON detected!
2017.02.26 12:32:43 4: HEOSMaster (HEOS_Wohnzimmer) - heos worked
2017.02.26 12:32:43 4: HEOSMaster (HEOS_Wohnzimmer) - starte HEOSMaster_ResponseProcessing
2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - Garbage character before message:
2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - Garbage character before message:

2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - return msg:  and tail:
2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - Tail:
2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - PARTIAL:
2017.02.26 12:32:43 4: HEOSMaster (HEOS_Wohnzimmer) - ReadFn gestartet
2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - received buffer data, start HEOSMaster_ProcessRead: {"heos": {"command": "player/get_players", "result": "success", "message": ""}, "payload": []}

2017.02.26 12:32:43 4: HEOSMaster (HEOS_Wohnzimmer) - process read
2017.02.26 12:32:43 4: HEOSMaster (HEOS_Wohnzimmer) - No PARTIAL buffer
2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - Incoming data: {"heos": {"command": "player/get_players", "result": "success", "message": ""}, "payload": []}

2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - Current processing buffer (PARTIAL + incoming data): {"heos": {"command": "player/get_players", "result": "success", "message": ""}, "payload": []}

2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - return msg: {"heos": {"command": "player/get_players", "result": "success", "message": ""}, "payload": []} and tail:

2017.02.26 12:32:43 5: HEOSMaster (HEOS_Wohnzimmer) - Decoding JSON message. Length: 94 Content: {"heos": {"command": "player/get_players", "result": "success", "message": ""}, "payload": []}
2017.02.26 12:32:44 5: HEOSMaster (HEOS_Wohnzimmer) - JSON String: {"heos": {"command": "player/get_players", "result": "success", "message": ""}, "payload": []}
2017.02.26 12:32:44 4: HEOSMaster (HEOS_Wohnzimmer) - JSON detected!
2017.02.26 12:32:44 4: HEOSMaster (HEOS_Wohnzimmer) - call Sub HEOSMaster_WriteReadings
2017.02.26 12:32:44 4: HEOSMaster (HEOS_Wohnzimmer) - empty ARRAY received
2017.02.26 12:32:44 4: HEOSMaster (HEOS_Wohnzimmer) - starte HEOSMaster_ResponseProcessing
2017.02.26 12:32:44 5: HEOSMaster (HEOS_Wohnzimmer) - Garbage character before message:
2017.02.26 12:32:44 5: HEOSMaster (HEOS_Wohnzimmer) - Garbage character before message:

2017.02.26 12:32:44 5: HEOSMaster (HEOS_Wohnzimmer) - return msg:  and tail:
2017.02.26 12:32:44 5: HEOSMaster (HEOS_Wohnzimmer) - Tail:
2017.02.26 12:32:44 5: HEOSMaster (HEOS_Wohnzimmer) - PARTIAL:
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, ...

hanseis

Die Abfrage an den HEOS Master über getPlayers liefert wirklich ein leeres Array zurück.  "command": "player/get_players", "result": "success", "message": ""}, "payload": []} Sind die Lautsprecher eingeschaltet? ;) Der Master erkennt keine Lautsprecher.

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

hanseis

Ich habe momentan keine Idee wie das sein kann. Mach mal ein Reboot im Master.

grappa24

Zitat von: hanseis am 26 Februar 2017, 12:47:27
Die Abfrage an den HEOS Master über getPlayers liefert wirklich ein leeres Array zurück.  "command": "player/get_players", "result": "success", "message": ""}, "payload": []} Sind die Lautsprecher eingeschaltet? ;) Der Master erkennt keine Lautsprecher.
ja - habs gerade noch einmal komplett neu gemacht: Alle LS eingeschaltet (steuerbar über die app, Master definiert, getMaster - gleicher Effekt ...

Als Master hab ich meinen LINK definiert, der immer an ist und am LAN hängt, als Player hab ich zwei HEOS 1 via WLAN dran
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, ...