[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

BjoernC

Zitat von: laurello am 25 Januar 2021, 01:11:25
Hab grad nochmal bei mir geschaut und weiß nicht genau, ob dich das weiter bringt, da ich kein Deezer hab, hab ich mal mit Amazon Music probiert:
...
Soweit zu Amazon Music - u. U. bei Deezer ähnlich ?!?
:D :D :D :D :D :D :D :D

Mit diesem Aufruf (und meiner "xxx" PID) klappt es tatsächlich auf Amazon Music :)

Mit purem telnet ging es - irgendwie liegt es wohl an dem telnet "Ersatz" den ich genutzt habe - also eine andere Baustelle und hier nicht relevant.

Auch mein u.a. Befehl für Deezer war korrekt und spielt das Lied jetzt ab:
heos://browse/add_to_queue?pid=1067696780&sid=5&mid=910171762&aid=1

SEHR SEHR GEIL und VIELEN DANK!!!

Aber wie bist du auf diesen HEOS cid gekommen? Mittels "get_now_playing_media"? Ich habe noch nichts gefunden womit ich Amazon Music durchsuchen kann (der "search" Befehl ist ja in der CLI explizit als nicht nutzbar gekennzeichnet) - daher nutze ich Deezer, da kann ich schön suchen.

laurello

Wie du sagst - das Suchen wird bei Amazon nicht unterstützt, d. h. ich hangele mich von oben nach unten durch - ist lästig, aber nicht anders machbar - glaub ich zumindest :-) :

Beispiel:
Und dann könnte man eben das Album mit der cid übergeben und starten (geht ja nicht von Seiten HEOS bei Amazon) oder eben die mid übergeben und starten - wobei wie schon beschrieben zuvor - das ganze Album gespielt wird auch wenn du nur einen Track mit der mid aus einem Album adressierst. Etwas sehr holprig und seltsam und leider nicht wirklich gut zu gebrauchen.

Viele Grüße,
laurello

CoolTux

Zitat von: CoolTux am 23 Januar 2021, 09:52:01
Hallo Laurello,

Vielen lieben Dank für Deine Arbeit. Das schaue ich mir die Tage sehr gerne an und werde es sicherlich auch übernehmen. Ist ja eine nette Flexibilität.


Grüße
Marko

Hallo laurello,

Kannst Du bitte einmal testen

https://git.cooltux.net/FHEM/mod-HEOS/raw/branch/testing/21_HEOSPlayer.pm

Wenn es bei Dir immer noch geht dann würde ich das so ins SVN kippen.
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

laurello

Hallo CoolTux,
läuft bombig! Hab alle möglichen Fälle durchprobiert und es hat alles geklappt. Ich habe auch gesehen, daß du das ganze Modul einem "Code-Redesign" unterzogen hast :-)
Tolle Arbeit, danke vielmals dafür!


2 Dinge sind mir während des Testens aufgefallen, die aber nichts mit den letzten Änderungen zu tun haben und vorher auch schon drin waren:

  • Beim set HEOS_device playPlaylist {Name der Playlist} steigt er aus, wenn die Playlist Leerzeichen im Namen hat, da wird wahrscheinlich der übergebene String nicht zusammen gehalten übergeben und entweder als weitere Parameter interpretiert oder kann dem Index für die Playlists per Name nicht mehr zugeordnet werden - hier kommt daher als Konsequenz die Meldung usage: playPlaylist name zurück beim Absetzen des Befehls
  • Beim Browsen über ein get HEOS_device ls werden ja die Treffer/Ergebnisse zurück geliefert - hier wird, wenn der Rückgabestring ein & enthält, dieses immer als %26 angezeigt. Man mag gar nicht glauben, wie oft & in Namen von Titeln und Bands vorkommt :-) - dies ist aber wirklich nur ein Anzeigeproblem zum Anwender hin, die Funktionalität ist nicht beeinträchtigt.

Ich hab selbst noch nicht tiefer reingeschaut oder mir die Stellen im Code gesucht um zu verstehen, was da nicht ganz paßt. Ich schau aber nochmal, ob ich das Verstehen und Weiterhelfen kann.

Aber ganz vielen, lieben Dank nochmal für das Aufnehmen und Umsetzen der aid Funktionalität im Modul - ich find's klasse!!!

Viele Grüße,
laurello

CoolTux

Was das & oder Lehr-Zeichen angeht so gibt es in FHEM eine kleine Routine die hilfreich sein kann. Ich muss da noch mal schauen wie genau die hieß. Irgendwas mit url
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

ahlermi

Hallo zusammen,

Gibt es eigentlich eine Möglichkeit die Musik von Amazon auch über FHEM zu bewerten?
Muss das aktuell immer über die Fernbedienung vom Denon machen? :-)

Gruß Michael
PI4 FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, Siri, SNIPS auf PI3 mit Samson UB1, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisMax, SolvisClient, HUE, ESPEasy für Bayernlüfter, Harmony, Tasmota, JKBMS, EASUN

isy

Hallo zusammen,
Ich habe 2 Fragen /Wünsche zum Modul.
- Wahl der Audioqualität beim TuneIn Sender wie in der HEOS App. Das wurde schon mal angesprochen,  aber in der SuFu gibt es keine weiteren Treffer dazu
- Die Lautstärke lässt sich im Standard in 5er Schritten ändern. Mir persönlich wären 2er Schritte, wie in der App, oft lieber. Wäre dazu ein neues Attr möglich?

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

CoolTux

Ersteres wird wohl eher nicht gehen da dies von der HEOS API abhängt. Da habe ich noch nichts zu gefunden.
Das zweite kann ich mir sehr gerne anschauen.
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

isy

Ja, das Thema "Wahl Audioqualität" bei TuneIn ist auch in der HEOS App etwas komplizierter. Nach Start des Streams muss man einen Menüpunkt "i" aufrufen, dort "Stream wählen". Dann dauert es 1/2 Sekunde bis die angebotenen Streams angezeigt werden. Auswahl des Streams, bestätigen mit "Jetzt wiedergeben".

Ich könnte mir vorstellen, dass diese Abfrage zur Streamqualität direkt auf einer oder mehreren TuneIn URL ausgeführt wird. Das würde bedeuten, dass dieser Prozess im Modul nachgebaut werden müsste und mit der HEOS API nichts zu tun hat.
Hier müsste man per Wireshark o.ä. mitschreiben, was genau abläuft.

Ein Einbau eines Attributes für die Lautstärke-Steps würde mich wirklich sehr freuen. Danke im Voraus!
Ein Weg wird erst zu einem Weg, wenn man ihn geht

CoolTux

Ich möchte gerne die ganze Modulfamilie einem codereview und rewrite unterziehen. Traust Du Dir zu mich beim testen zu unterstützen?

Du müsstest die alten Module umbenennen z.B. 21_HEOSPlayer.pm nach 21_HEOSPlayer.pm.safe und dann eine zusätzliche Updatequelle hinzufügen.
Danach am besten mittels tail -f FHEMLOGFILE das Log live mitlaufen lassen und dann neustart von FHEM machen.
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

isy

Ja, das kann ich versuchen, du musst mir allerdings genau sagen, was ich wo und wie machen soll. OK?

Wird es eine Art Ko-Existenz geben? Ich meine damit, dein Review startet mit dem HEOSMaster und die anderen HEOS Module bleiben uvä.?
HEOSGroup haben ich im Moment nicht in Betrieb, dazu fehlt Hardware.
Ein Weg wird erst zu einem Weg, wenn man ihn geht

CoolTux

Zitat von: isy am 09 Januar 2022, 13:18:44
Ja, das kann ich versuchen, du musst mir allerdings genau sagen, was ich wo und wie machen soll. OK?

Wird es eine Art Ko-Existenz geben? Ich meine damit, dein Review startet mit dem HEOSMaster und die anderen HEOS Module bleiben uvä.?
HEOSGroup haben ich im Moment nicht in Betrieb, dazu fehlt Hardware.

Nein eine Ko-Existenz wird es nicht geben. Aber wir starten auch langsam und vorsichtig.

Erstmal kopierst Du die aktuellen Module in Sicherheit

cd /opt/fhem/FHEM
sudo cp -va 21_HEOSMaster.pm 21_HEOSMaster.pm.safe
sudo cp -va 21_HEOSGroup.pm 21_HEOSGroup.pm.safe
sudo cp -va 21_HEOSPlayer.pm 21_HEOSPlayer.pm.safe


Kurze Erklärung, nicht das Du denkst ich bin zu fault  ;D , ich selbst habe das System nicht. Es war damals eine Anfrage eines Users ob ich dafür laut API ein Modul entwickeln kann.

So weiter. Dann machst Du in der FHEMWEB Kommandozeile
update add https://git.cooltux.net/FHEM/mod-HEOS/raw/branch/patch-codereview/controls_HEOS.txt
dann
update
und dann am besten direkt auf dem Raspi in der Konsole
sudo tail -f /var/log/syslog
und dann wieder in der FHEMWEB Kommandozeile
shutdown restart
und dann auf der Konsole schauen ob es Fehlermeldungen seitens HEOS gibt.


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

isy

Nein, ich denke nicht du seiest faul. Ich bin seit Beginn der Entwicklung dabei!
Alles prima!

Ich werde erst mal eine Box ins Testsystem übernehmen, da können wir besser testen. OK?

Melde mich hier wieder.

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

isy

Hat funktioniert.
Ergebnis nach Update:
2022.01.09 13:49:16 1 : Downloading https://git.cooltux.net/FHEM/mod-HEOS/raw/branch/patch-codereview/controls_HEOS.txt
2022.01.09 13:49:16 1 :
2022.01.09 13:49:16 1 : HEOS
2022.01.09 13:49:16 1 : UPD FHEM/21_HEOSGroup.pm
2022.01.09 13:49:16 1 : UPD FHEM/21_HEOSMaster.pm
2022.01.09 13:49:17 1 : UPD FHEM/21_HEOSPlayer.pm
2022.01.09 13:49:17 1 : saving fhem.cfg
2022.01.09 13:49:17 1 : saving ./log/fhem.save
2022.01.09 13:49:17 1 :
2022.01.09 13:49:17 1 : New entries in the CHANGED file:
2022.01.09 13:49:17 1 : <!DOCTYPE html>
2022.01.09 13:49:17 1 : <html lang="en-US" class="theme-">
2022.01.09 13:49:17 1 : <head data-suburl="">
2022.01.09 13:49:17 1 :  <meta charset="utf-8">
2022.01.09 13:49:17 1 :  <meta name="viewport" content="width=device-width, initial-scale=1">
2022.01.09 13:49:17 1 :  <title>Page Not Found -  mod-HEOS - Gitea: Git with a cup of tea </title>
2022.01.09 13:49:17 1 :  <link rel="manifest" href="data:application/json;base64,eyJuYW1lIjoiR2l0ZWE6IEdpdCB3aXRoIGEgY3VwIG9mIHRlYSIsInNob3J0X25hbWUiOiJHaXRlYTogR2l0IHdpdGggYSBjdXAgb2YgdGVhIiwic3RhcnRfdXJsIjoiaHR0cHM6Ly9naXQuY29vbHR1eC5uZXQvIiwiaWNvbnMiOlt7InNyYyI6Imh0dHBzOi8vZ2l0LmNvb2x0dXgubmV0L2Fzc2V0cy9pbWcvbG9nby5wbmciLCJ0eXBlIjoiaW1hZ2UvcG5nIiwic2l6ZXMiOiI1MTJ4NTEyIn0seyJzcmMiOiJodHRwczovL2dpdC5jb29sdHV4Lm5ldC9hc3NldHMvaW1nL2xvZ28uc3ZnIiwidHlwZSI6ImltYWdlL3N2Zyt4bWwiLCJzaXplcyI6IjUxMng1MTIifV19"/>
2022.01.09 13:49:17 1 :  <meta name="theme-color" content="#6cc644">
2022.01.09 13:49:17 1 :  <meta name="default-theme" content="gitea" />
2022.01.09 13:49:17 1 :  <meta name="author" content="FHEM" />
2022.01.09 13:49:17 1 :  <meta name="description" content="mod-HEOS - FHEM Modul for Denon Multiroom HEOS" />
2022.01.09 13:49:17 1 :  <meta name="keywords" content="go,git,self-hosted,gitea">
2022.01.09 13:49:17 1 :  <meta name="referrer" content="no-referrer" />
2022.01.09 13:49:17 1 :  <meta name="_csrf" content="hm5FpsD2W37Irb14NYJlSh_ZFC46MTY0MTczMjU1NjgyNjI3Nzk5OQ" />
2022.01.09 13:49:17 1 :
2022.01.09 13:49:17 1 :
2022.01.09 13:49:17 1 :
2022.01.09 13:49:17 1 : Calling /usr/bin/perl ./contrib/commandref_modular.pl, this may take a while
2022.01.09 13:49:17 1 :
2022.01.09 13:49:17 1 : update finished, "shutdown restart" is needed to activate the changes.


Ergebnis nach shutdown/restart

2022.01.09 13:50:40 3: MyMQTT: port 1883 opened
2022.01.09 13:50:40 1: reload: Error:Modul 21_HEOSMaster deactivated:
Bareword "retun" not allowed while "strict subs" in use at ./FHEM/21_HEOSMaster.pm line 1348, <$fh> line 200.

2022.01.09 13:50:40 0: Bareword "retun" not allowed while "strict subs" in use at ./FHEM/21_HEOSMaster.pm line 1348, <$fh> line 200.

2022.01.09 13:50:40 1: HEOSPlayer (HEOSPlayer1139211256) - no I/O device
2022.01.09 13:50:40 3: HEOSPlayer (HEOSPlayer1139211256) - defined with Code: 1139211256
2022.01.09 13:50:40 1: HEOSPlayer (HEOSPlayer1171374310) - no I/O device
2022.01.09 13:50:40 3: HEOSPlayer (HEOSPlayer1171374310) - defined with Code: 1171374310
2022.01.09 13:50:40 1: HEOSPlayer (HEOSPlayer466138327) - no I/O device
2022.01.09 13:50:40 3: HEOSPlayer (HEOSPlayer466138327) - defined with Code: 466138327
2022.01.09 13:50:40 1: Including ./log/fhem.save
2022.01.09 13:50:40 1: Messages collected while initializing FHEM:configfile: Cannot load module HEOSMaster
setuuid: Please define MyMasterBox first

Autosave deactivated
2022.01.09 13:50:40 0: Featurelevel: 6.1


Tippfehler vermute ich
Ein Weg wird erst zu einem Weg, wenn man ihn geht

CoolTux

sehr schön. Noch mal update bitte durchführen und neustart.

Also nur

update
dann
shutdown restart
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