[Neues Modul] Spotify

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

Vorheriges Thema - Nächstes Thema

Kohle77

Hallo,
ich bin bald verzweifelt. Das Spotify Modul konnte keine devices finden obwohl ich Echo Dot usw. in FHEM eingebunden habe.
Letztendlich habe ich, nachdem Spotify in FHEM konfiguriert war (inclusive des Fix vom « Antwort #213 am: 16 September 2019, 15:55:08 » in diesem Thema und reload 37_Spotify.pm aus FHEM heraus), die App Spotify in der Alexa App deaktiviert und wieder aktiviert (mit neu anmelden) und schon waren Alexa & Co mit device ID in der Spotify App vorhanden.

FHEM läuft auf einem PI.

Nur falls nochmal jemand danach sucht.

Gruß
Kohle


Superposchi

Hallo, ich wollte das Spotify-Modul und ein passendes device erstellen.
Habe die App im Developer erstellt und auch die Redirect-url eingetragen.

doch beim Anlegen des Device bekomme ich immer die Rückmeldung "Cannot load module Spotify"

Hat jemand einen Ansatz woran das liegen kann?

Hier das was im Log dazu steht:
2020.12.22 23:11:29.513 1: reload: Error:Modul 37_Spotify deactivated:
Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 368, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 368, near "0)"
Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 376, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 376, near "0)"

2020.12.22 23:11:29.513 0: Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 368, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 368, near "0)"
Too many arguments for Cpanel::JSON::XS::encode_json at ./FHEM/37_Spotify.pm line 376, near "0)"
Not enough arguments for main::Spotify_apiRequest at ./FHEM/37_Spotify.pm line 376, near "0)"


List gibt es ja ohne Device nicht.

AndreM

Zitat von: webdandy am 05 Mai 2020, 09:00:39
Hallo Oskar,

die Einrichtung von Deinem Spotify Modul hat auf Anhieb funktioniert und läuft gut, vielen Dank.

Allerdings habe ich ein komisches Phänomen, dass mein Sonos One nicht in der Liste der Devices auftaucht.
Wenn ich jedoch auf dem Sonos One etwas abspiele, taucht das Sonos System temporär als "active Device" auf, jedoch ohne ID.
Kennst Du dieses Problem eventuell schon und kannst mir helfen?
Oder hast vielleicht eine Idee, wonach ich noch schauen kann.

Ein neues Thema hatte ich bereits schon angefangen, aber leider noch keine Antwort bekommen.
Dort sind auch noch mehr Infos zu den Devices.
https://forum.fhem.de/index.php/topic,110696.0.html

Hat jemand Ideen für mich?

Danke & Grüße
Fabian

Hallo zusammen,
ich habe das gleiche Problem wie webdandy. Gibt es dafür bereits eine Erklärung bzw. Abhilfe?

Schönen Gruß
Andre

Kohle77

Hallo,
also das mit der Zeile 368 bzw. 376 gab es in diesem Thread schon. Ist bei mir auf Seite 15.
Dort wurde geschrieben:
ZitatBesserer fix:
Zeile 368:
Spotify_apiRequest($hash, 'me/player/next', '{}', 'POST', 0);

Zeile 376:
Spotify_apiRequest($hash, 'me/player/previous', '{}', 'POST', 0);

und natürlich ein "attr global exclude_from_update 37_Spotify.pm" solange das Modul nicht aktualisiert wurde.

Das laden des Moduls hängt meist damit zusammen das eben nicht der RAW text kopiert und eingefügt wurde.
Link zum RAW:
https://github.com/mhop/fhem-mirror/raw/master/fhem/FHEM/37_Spotify.pm

Regards
Christian

Superposchi

#244
Also ich komme mit deinem Zitat nicht klar. Ich habe gestern Abend doch Fhem upgedatet, da müsste das Modul doch mit upgedatet worden sein, oder nicht?
Seit dem sind die Probleme ja erst aufgetreten.

Wo sol denn der RAW-Text eingefügt werden?
Über edit Files komme ich nicht an die Datei ran. Geht es mit Notepad++?

Superposchi

#245
Also ich habe jetzt ein Device für das Spotify-Modul angelegt bekommen nachdem ich deinen RAW-Text in die 37_Spotify.pm gegen den alten Text getauscht und die zwei Zeilen ersetzt habe.

Hier das List zum Device:
Internals:
   A1_INSTRUCTIONS Open AUTHORIZATION_URL in your browser and set the code afterwards. Make sure to specify REDIRECT_URI as a redirect_uri in your API application. It is safe to rely on https://oskar.pw/ as redirect_uri because your code is worthless without the client secret and only valid for a few minutes.
    However, feel free to specify any other redirect_uri in the definition and extract the code after being redirected yourself.
   AUTHORIZATION_URL https://accounts.spotify.com/authorize/?client_id=c0b419c2f0b549a09578a1daee79e16f&response_type=code&scope=playlist-read-private%20playlist-read-collaborative%20streaming%20user-library-read%20user-read-private%20user-read-playback-state&redirect_uri=https%3a%2f%2foskar%2epw%2f
   CFGFN     
   CLIENT_ID  c0b419c2f0b549a09578a1daee79e16f
   CLIENT_SECRET 4ab460d521ce4d63adb10917630ce155
   DEF        c0b419c2f0b549a09578a1daee79e16f 4ab460d521ce4d63adb10917630ce155
   FUUID      5ff03f34-f33f-793a-9231-74a57f739b0dca66
   NAME       SpotifyMusic
   NR         390
   NTFY_ORDER 50-SpotifyMusic
   REDIRECT_URI https://oskar.pw/
   STATE      authorization pending (see instructions)
   TYPE       Spotify
   helper:
     access_token
     authorization_url https://accounts.spotify.com/authorize/?client_id=c0b419c2f0b549a09578a1daee79e16f&response_type=code&scope=playlist-read-private%20playlist-read-collaborative%20streaming%20user-library-read%20user-read-private%20user-read-playback-state&redirect_uri=https%3a%2f%2foskar%2epw%2f
     custom_redirect
     expires   
     refresh_token
Attributes:
   room       Test


Allerdings wird der state noch mit "authorization pending (see instructions)" angezeigt.

Superposchi

Also das Device funktioniert jetzt, aber ich kann nichts hören was ausgegeben wird. Im STATE wird "playing" angezeigt, aber es ist keine Audio hörbar

uclara

Hallo, wenn ich Hörbücher für Kinder abspiele erscheinen folgende Fehler in den Readings:

error_code: 400
error_description: Unsupported uri kind: album


Nachdem die Hörbücher in Kapitel aufgeteilt sind wäre es schön die Anzahl der Kapitel und die Gesamtdauer des Hörbuchs als Readings auslesen zu können.

Gruß
Ulli


Treibhaus

Hallo,

das Modul funktioniert wunderbar.
Mit den Funktionen komme ich soweit klar.

Mir ist allerdings aufgefallen, da ich Bose Soundtouch-Geräte benutze diese nicht alle angezeigtwerden. (es sind mehr als 5)
Per BoseSt-Module werden alle gelistet - muss dazu auch erwähnen das ich diese im Tagesverlauf mal abschalte (je nachdem wer so anwesend ist)
Per App (Handy) oder Spotify (Webfrontend) tauchen oder etwas später im BoseSt-Modul(Fhem) tauchen diese dann aber wieder alle auf.
Nicht aber in diesem Modul(30-Spotify).

Kann mir kurz jemand das erklären? Ist das Modul ggf begrenzt <6?
Muss ich mir die IDs (fehlender Geräte) anders vermerken ?
Gruß Jörg
Signatur:
Raspberry 5 & NVMe + HM-Module für 3 Etagen (inkl  Garage/Garten) 
+BSC EnOcean TCM310 -Fensterkontakt,-Bewegungsmelder
+ 1-wired Temp-Sensoren + RHASSPY-Spracherkennung

riker1

Hi,

eine Frage zu einem Fehler im Log.

PERL ERROR: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/37_Spotify.pm line 777.

kennt das jemand?

Danke VG T
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

masl

Wie kann man eine Playlist und die Titel darin zufällig abspielen?
randomPlayPlaylistbyUri geht einfach nicht...
Egal ob
set randomPlayPlaylistByURI spotify:playlist:37i9dQZF1DWXeOurMWUII5
oder
randomPlayPlaylistByURI 37i9dQZF1DWXeOurMWUII5
Fehler: invalid playlist_uri

mi.ke

Zitat von: masl am 30 Juni 2021, 13:18:31
Wie kann man eine Playlist und die Titel darin zufällig abspielen?


Moin,
ich mach das so:
set <DEVICE> playPlaylistByName <NAMEderPLAYLIST>;set <DEVICE> shuffle on
cheers
mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

masl

Mh...das ist nicht die schönste Lösung. Aber ok

Gibt es eine Möglichkeit Spotify ohne die App zu starten?
Das mit der DefaultID funktioniert ja leider nicht.

mi.ke

#253
Zitat von: masl am 30 Juni 2021, 20:00:01
Mh...das ist nicht die schönste Lösung.

naja, alles relativ, war ja nur ein Hinweis.

So steuer ich (aus RAW kopiert):

attr Spotify webCmd volume:shuffle:transferPlayback:playArtistByName:playPlaylistByName
attr Spotify webCmdLabel Volume\
:Shuffle\
:Source\
:Artist\
:Playlist


Das bekommt ich angezeigt  (aus RAW kopiert):

attr Spotify stateFormat { if( ReadingsVal($name,"is_playing",999) == 1){ \
"<div style=\"width: 280px;;\"> ".ReadingsVal($name,"track_artist_name",999)." <br> ".ReadingsVal($name,"track_nameSolo",999)." <br> ".ReadingsVal($name,"device_active_name",999)." <br> ".substr(ReadingsVal($name,"progress",999),3,5)." | ".substr(ReadingsVal($name,"track_duration",999),3,5)." <br> ".ReadingsVal($name,"track_album_nameSolo",999)."</div>" } \
else {"S T O P"} }


Das ist die Coveranzeige (aus RAW kopiert):

defmod Spotify_Cover weblink htmlCode {\
my $cover = ReadingsVal("Spotify","track_album_cover_medium",0);;\
my $bild = ReadingsVal("Spotify","user_profile_pic_url",0);;\
\
if (ReadingsVal("Spotify","is_playing",0 == 1)) {return "<a href=http://192.168.1.2:8083/fhem?detail=Spotify><image src=$cover width=330 height=330></a>"}\
else {return "<a href=http://192.168.1.2:8083/fhem?detail=Spotify><image src=$bild width=77 height=77></a>"};;\
}
attr Spotify_Cover group Spotify
attr Spotify_Cover htmlattr width="500" height="500"
attr Spotify_Cover nodetaillink 0
attr Spotify_Cover room Test


und das die "Fernbedienung":

defmod Spotify_RC remotecontrol
attr Spotify_RC alias Spotify
attr Spotify_RC group Spotify
attr Spotify_RC rc_iconpath icons/remotecontrol
attr Spotify_RC rc_iconprefix black_btn_
attr Spotify_RC row00 toggle:PLAY,pause:PAUSE,/seekToPosition 0/:SHUFFLE,prev:REWIND,next:FF,volumeDown:VOLDOWN,volumeUp:VOLUP


Zitat von: masl am 30 Juni 2021, 20:00:01
Gibt es eine Möglichkeit Spotify ohne die App zu starten?

Ich verstehe die Frage nicht?!
Wenn ich auf "play" klicke oder eine Playliste auswähle, startet Spotify auf der FHEM-Instanz ohne APP.
Und natürlich über notify oder DOIF, auch ohne APP.

cheers
mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

KlausT

Hallo,

ich komme genau bis zum Punkt AUTHORIZATION_URL, wenn ich die in den Brwoser eingebe und mich mit meine Spotify User anmelde lande ich direkt auf der redirect_uri. Ich hab es auf drei Rechnern, mit unterschiedlichen redirect_uri ausprobiert um Cache-Effekte zu vermeiden.

Wann und wo bitte soll der Code auftauchen?

Klaus