[Neues Modul] Spotify

Begonnen von neumann, 28 Mai 2017, 15:58:19

Vorheriges Thema - Nächstes Thema

Elbwurm

Also ich versuche es jetzt einfach mal mit diesen paar Codezeilen...

2017.08.09 16:45:40 4: Spotifhem: checking access code
2017.08.09 16:45:40 4: HttpUtils url=https://accounts.spotify.com/api/token
2017.08.09 16:45:41 4: https://accounts.spotify.com:443: Can't load 'H:/fhem/perl/site/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at H:/fhem/perl/lib/DynaLoader.pm line 193.
at H:/fhem/perl/site/lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at H:/fhem/perl/site/lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at H:/fhem/perl/site/lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at (eval 34) line 2.
BEGIN failed--compilation aborted at (eval 34) line 2.

2017.08.09 16:45:41 1: PERL WARNING: Use of uninitialized value in subroutine entry at ./FHEM/37_Spotify.pm line 189.



Vielleicht kann damit jemand etwas anfangen, ich werde nicht schlau daraus.
Ich habe eher die Vermutung das es sich hier evtl. um ein Problem mit meiner Pearl-Installation handelt, kann mich aber auch Täuschen, manchmal ist es mir einfach zu hoch das Thema.

Ich bin dankbar für jeden Rat.

VG Elbwurm
Nimm dir Zeit freundlich zu sein, dass ist der Weg zum Glück.

neumann

Versuch mal folgendes:
apt-get install libcrypt-ssleay-perl

LG
Modulentwickler
- Spotify #72490
- Nello #75127

Elbwurm

Sorry, ich hätte ja auch mal erwähnen sollen das das ganze bei mir in einer WIN10-Umgebung mit aktuellem Strawberry-Pearl portable läuft. Hat mich schon einiges an Nerven gekostet aber am Ende habe ich alles umgesetzt bekommen was ich gebraucht habe.
Nimm dir Zeit freundlich zu sein, dass ist der Weg zum Glück.

neumann

Wie du dem Log entnehmen kannst fehlt auf jeden Fall der Handler für SSL Requests SSLeay...
Modulentwickler
- Spotify #72490
- Nello #75127

Elbwurm

Leider fehlt mir da das nötige Knowhow

Folgendes habe ich jetzt gemacht.

https://picload.org/view/rwapplwi/perl.jpg.html

In wie weit das Sinn macht... Ich habe keine Ahnung.
Nimm dir Zeit freundlich zu sein, dass ist der Weg zum Glück.

hillbicks

Kurze Verstaendnisfrage.

ZitatDeswegen habe ich nun ein umfangreiches Spotify-Modul geschrieben, welches einen großen Teil der Spotify WEB API abbildet. Aktuell werden entsprechend nur Geräte unterstützt, die über den Web Player auffindbar sind.

Gibt es eine Uebersicht welche Player das genau sind? Hintergrund der Frage ist das ich ueberlege wie ich am besten Multiroom Audio abbilden kann und hatte ueberlegt ob ich da auf die Chromecast Audio Devices setzen kann (per TOSLINK an die beiden Verstaerker angeschlossen). Ein User schrieb jetzt allerdings hier schon das er seine Chromecast Devices nicht findet.

Kann mir jemand sagen ob die Chromecast Devices von dem Modul unterstuetzt werden und wenn ja, kann auch eine Gruppe von Chromecast Devices angesprochen werden? Das waere dann eine ziemlich gute Multiroom Audio Loesung.

Danke euch schonmal

Elbwurm

Zitat von: Elbwurm am 09 August 2017, 17:51:10
Leider fehlt mir da das nötige Knowhow

Folgendes habe ich jetzt gemacht.

https://picload.org/view/rwapplwi/perl.jpg.html

In wie weit das Sinn macht... Ich habe keine Ahnung.

So, ich hake da jetzt nochmals ein...

Vorab, es läuft.

Ich habe einen neuen Server aufgesetzt und einfach mal activeperl für Windows versucht.
Siehe da, keinerlei Probleme.

Auslöser war letztendlich ein weiteres Problem bei der Installation beim 38_Broadlink.pm Modul.
Da hat es auch gehakt. Ich habe es auf den Versuch ankommen lassen.

Keine Ahnung ob es jetzt am Strawberry oder an der Portable-Version lag, auf jeden Fall läuft das Spotify-Modul jetzt.
Dann sehe ich mir die Möglichkeiten mal in aller Ruhe an.

Danke vorerst für dieses Modul.
Nimm dir Zeit freundlich zu sein, dass ist der Weg zum Glück.

dominik

Danke auch für das tolle Modul! Ein Punkt irritiert mich noch etwas. Die Devices ändern sich bei mir immer wieder. In der Spotify App habe ich ca. 6 Geräte angezeigt (BOSE, Chromecast, Google Home, etc.). Im Modul habe ich aber meistens nur 2-3 Geräte. Sobald ich auf einem unbekannten Device abspiele, erscheint es dann aber auch als Device.
Etwas umständlich finde ich, dass sich die Device Nummer immer ändert. Daher bringt das Ansteuern per Device Id wenig, weil man nie sicher sein kann welche es ist. Vielleicht gibt es hier eine bessere Lösung?

@hillbicks, ja, auch Google Cast Devices werden angezeigt - bei mir aber nicht immer. Du kannst Cast Devices (inkl. Multiroom) auch über 98_GOOGLECAST.pm steuern - hab ich gestern veröffentlicht. In Kombination mit dem Spotify Modul hier ist das genial.

Gruß
Dominik
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

hillbicks

@Dominik: Meine Chromecast Audio sind grade angekommen und in Betrieb. Ich stelle aber das gleiche Phaenomen fest wie Du, die verfuegbaren Devices aendern sich. Ueber die Spoitify Android App sehe ich sowohl alle drei Chromecast Audio Devices als auch die beiden Gruppen die ich angelegt habe. Wenn ich darueber die Gruppe ansteuer taucht diese auch im Reading auf. Wenn ich dann auf einzelnes Geraet wechsel und dann ein transferplayback auf die vorherige Gruppe anstosse, dann bekomme ich leider ein "SPOTIFY: request failed: Device not found"

Woher kriegt das Modul eigentlich die verfuegbaren Devices? Direkt von Spotify selbst? Muss eigentlich da sich der fhem Server und meine Chromecast Devices und Smartphone in komplett unterschiedlichen Subnetzen befinden, das Smartphone aber gefunden wird.

Wenn wir hier etwas zum debuggen beitragen koennen, ich stehe bereit :)

@Nochmal Dominik: Ja, das ist das naechste was ich mir ansehen werde. Das wird aber sicher etwas tricky werden die Devices richtig in fhem einzubinden weil sie eben in einem anderen subnetz sind.   

neumann

Hallo zusammen,

wie bereits erwähnt nutzt das Modul die Spotify Web API und nicht die deutlich aufwändigere Multicast Erkennung im lokalen Netzwerk.
Dementsprechend werden nur Geräte gefunden, die eine bestehende Login-Verbindung zu Spotify haben - manche Geräte wie der Echo Dot sind dauerhaft angemeldet, andere melden sich ab, sobald sie nicht mehr aktiv sind.

Falls jemand Interesse hat, die Multicast Steuerung zu implementieren, kann dieser sich gerne das Projekt hier anschauen: https://github.com/badfortrains/spotcontrol

LG
Oskar
Modulentwickler
- Spotify #72490
- Nello #75127

bjoernbo

kurze Frage: Funktioniert das ganz auch mit einem Spotify-Free Acount oder muss man den Premium Account besitzen?
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

Esjay

Zitat von: bjoernbo am 04 September 2017, 10:07:05
kurze Frage: Funktioniert das ganz auch mit einem Spotify-Free Acount oder muss man den Premium Account besitzen?
Zitat von: neumann am 25 Juni 2017, 13:04:44
Hey Jürgen,

leider funktionieren die meisten Funktionen tatsächlich nur mit einem Spotify Premium Account...
Fast die gesamte API ist darauf beschränkt.

Liebe Grüße
Oskar

Ich bin mal so frei.
Gruß

Esjay

Hey Oskar,
kurze Frage. Wäre es möglich, dem Play Befehl noch eine Lautstärke mit zu geben?

So nach dem Motto :

set Spotify playPlaylistByName 30 Good Vibes aa73b249aaf808822d2b45c183c261d3cd939672

Man achte auf die 30 vor Good Vibes!

Danke nochmal für dein Modul!

Grüße

Macx

Hey, das mit der Lautstärke hab ich bei mir so geregelt :)

Zitat([ZWave_WALL_CONTROLLER_7:"cSceneSet: 6"]) (set Spotify playContextByURI https://open.spotify.com/user/xxxx xxxxxx) (set Kinderzimmer.chromecast volume 7)

Esjay

Zitat von: Macx am 13 September 2017, 08:54:21
Hey, das mit der Lautstärke hab ich bei mir so geregelt :)

Vom Prinzip halte ich das für eine eher unpraktische Lösung. Gerade heute morgen so passiert. Habe gestern Abend beim Duschen die Musik etwas lauter aufgedreht, und dann vergessen sie wieder leiser zu machen. Hätte heute morgen beinahe nen Salto aus dem Bett gemacht. Sprich, wie ist denn die Verzögerung vom Abspielen bis zum Leiser werden?

Gruß