MPD Player Steuerung im FTUI

Begonnen von setstate, 27 Mai 2016, 00:02:46

Vorheriges Thema - Nächstes Thema

Shadow3561

#60
moin,
im Bereich Server ist die Playlist auswahl vom Modul MediaList.

Die Radioauswahl ist vom Modul MPD und ist quasi die Playlistauswahl vom MPD-Player.

<div data-type="select" data-device="MPD1" data-list="playlistcollection" data-get="playlistname" data-set="playlist" class="col-1-2" ></div>
Ich hoffe es reicht dir als Antwort.

MfG

Gunther

Danke! Das sieht spannend aus!
Ich muss mich mal tiefer in MDP einlesen. Mopify zum Abspielen von Spotify klingt interessant.
Mal schauen, ob es da eine Möglichkeit gibt die Spotifyapp zum Suchen und Bestücken von Playlisten nicht mehr öffnen zu müssen.

Stellst Du die Definition (Code) Deines Onkyoreceivers (FHEM/ Tablet UI) zur Verfügung?
Was hat es mit dem Listening Mode auf sich?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Shadow3561

Zitat von: Gunther am 27 Oktober 2017, 11:32:30
Stellst Du die Definition (Code) Deines Onkyoreceivers (FHEM/ Tablet UI) zur Verfügung?
Was hat es mit dem Listening Mode auf sich?

   <header><div data-type="label" class="medium orange">Onkyo AVR</div></header>
       
              <div data-type="label" class="darker" data-device="AVR"
                               data-get="presence">
                               </div>
        <div class="cell">
                         
                               
            <div data-type="switch" data-device="AVR"
            data-get="stateAV"
                data-icon="fa-power-off"
                data-on-color="green"
                data-on-background-color="#555"
                data-off-color="red"
                data-background-icon="fa-square-o"
                class="wider"></div>
        <div data-type="label" class="darker top-space-2x">Eingang</div>
           <div data-type="select" data-device="AVR" data-items='["usb","music-server","internet-radio","cbl-sat","bd/dvd","video4"]' data-get="input" data-set="input" data-alias='["USB-Front","Music-Server","Internet-Radio","Sky-Receiver","Media-Player","HDMI-Front"]' class="" ></div>
                                        </div>
                                    <div class="cell">
                                   <div data-type="label" class="darker top-space-2x">Listening-Mode</div>       
                                 <div data-type="select" data-device="AVR" data-get="listening-mode" data-set="listening-mode"
              data-items='["stereo","all-ch-stereo","pure-audio","direct","audyssey-dsx"]'
                data-alias='["Stereo","all-Ch-Stereo","Pure-Audio","Direct","Audyssey-DSX"]'
              class="" ></div>
        </div>
          <div class="cell">
          <div data-type="label" class="darker top-space-2x">Volume</div>
        <div data-type="knob" data-device='AVR' data-get="volume" data-step="1" data-inputcolor="green" data-fgcolor="green" data-set="volume" class="">
                    </div>
                   
                  <div class="cell"> 
                   <div data-type="label" class="darker top-space-2x">Subwoofer</div>
                    <div data-type="switch" data-device="Subwoofer"
                    data-icon="oa-audio_loudness" data-backround-color="#505050" data-on-color="green"
                    class="invert"></div>
                   
                    <div data-type="label" class="darker top-space-2x">Woofer-Level</div>
                    <div data-type="circlemenu" data-direction="vertical-top" class="noshade">
                   
              <ul>
                <li><div data-type="push" data-icon="fa-wrench"></div></li>
                <li><div data-type="push" data-device="AVR" data-set="subwoofer-temporary-level" data-get="subwoofer-temporary-level" data-on-color="green" data-off-color="grey" data-get-on="-12" data-set-on="-12" data-icon="">-12</div></li>
                <li><div data-type="push" data-device="AVR" data-set="subwoofer-temporary-level" data-get="subwoofer-temporary-level" data-on-color="green" data-off-color="grey" data-get-on="-6" data-set-on="-6" data-icon="">-6</div></li>
                <li><div data-type="push" data-device="AVR" data-set="subwoofer-temporary-level" data-get="subwoofer-temporary-level" data-on-color="green" data-off-color="grey" data-get-on="0" data-set-on="0" data-icon="">0</div></li>
                <li><div data-type="push" data-device="AVR" data-set="subwoofer-temporary-level" data-get="subwoofer-temporary-level" data-on-color="green" data-off-color="grey" data-get-on="2",data-set-on="2" data-icon="">2</div></li>
                <li><div data-type="push" data-device="AVR" data-set="subwoofer-temporary-level" data-get="subwoofer-temporary-level" data-on-color="green" data-off-color="grey" data-get-on="9" data-set-on="9" data-icon="">9</div></li>
                <li><div data-type="push" data-device="AVR" data-set="subwoofer-temporary-level" data-get="subwoofer-temporary-level" data-on-color="green" data-off-color="grey" data-get-on="12" data-set-on="12" data-icon="">12</div></li>
                    </ul>   
                     
                   </div>
                   </div>


Listening-Mode ist der Wiedergabe-Modus des Verstärkers. Ich denke der o.A. Code erklärt es von selbst.

MfG

Gunther

FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Wasserwerk33

Hi ich hätte da mal noch eine fragen.

Ich bin zwar noch nicht im FTUI mit meinem Radio angelangt, aber ihr könnt mir doch bestimmt helfen.
Ich habe das Programm Medialist soweit nach Wiki installiert.
defmod meineMusik MediaList /media/music/
attr meineMusik MediaList_CacheFileDir /var/lib/mpd/playlists/
attr meineMusik MediaList_PathReplaceFrom /media/pi/68FA-40DE 68FA-40DE/PUR
attr meineMusik MediaList_PlayerDevice StreamRadio
attr meineMusik MediaList_mkTempCopy symlink
attr meineMusik room Radio

setstate meineMusik 2018-01-02 19:24:12 playlist []
setstate meineMusik 2018-01-02 19:24:12 playlistduration
setstate meineMusik 2018-01-02 19:24:12 playlistname PUR

Habe ich noch irgendwas vergessen oder falsch installiert??
Den leider klappt dieses nicht bei mir.

danke schon mal

Tobias

1. Die generierte Playlist "meineMusik.m3u" enthält die mp3-dateien ohne Pfadangabe?
2. die MP3 Dateien befinden sich alle im angegebenen cachefiledir?
3. MPD ist wie im Wiki konfigirierte das er allen Symlinks folgt?
4. MPD hat Zugriffsrechte auf die verlinkten "echten" Files?
5. Fehlermeldung des MPD wenn du die Playlist manuell in den MPD lädst?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

ulli

#66
Hallo zusammen,

ich habe gerade das Module bei mir integriert mit Mopidy....funktioniert soweit.
Leider werden aber die Mustiktitel nicht aktualisiert....erst wenn ich immer wieder ein "get device statusRequest" händisch ausführe.

Was ist dabei das Problem? Ich habe es auch mit einem waits 10 versucht...ohne Erfolg

Update:
Die einzigen Werte die nach einem "set device play 0" aktualisiert werden sind Title, rawTitle, volume.
In Title und rawTitle steht dann der name des Playlisteintrages.

Tobias

das ist leider ein Problem, ich halte bei mir eine alte Verson des Moduls wo es noch sauber funktioniert.
73_MPD.pm                             13247 2017-01-26 20:20:08Z Wzut
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Wzut

Könnt ihr bitte mal die angehängte Version testen ?
Falls das Problem damit erledigt ist checke ich sie ein.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

xasher

Hallo zusammen,

ich finde das Projekt sehr interessant. Ich komme mit einigen Punkten allerdings noch nicht klar.
Ich habe mopidy mit spotify installiert. Auf der grafischen Übersicht Iris bekomme ich soweit auch alles angezeigt.

In Fhem sehe ich allerdings meine Playlists nicht - siehe Screenshot. Habe ich was bei der Installation übersehen? Oder geht die Funktion gerade nicht mehr?

Für einen Tipp wäre ich euch dankbar.

Grüße,
Alex

Wzut

Bilder /Screenshots sind immer schlecht, was helfen könnte wäre ein list ( in Code Tags ! ) vom Device
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

xasher

Hallo Wzut,

vielen Dank für die Antwort. Hier mal ein list auf das Device:


Internals:
   CFGFN      ./FHEM/01_spotify.cfg
   CHANGED   
   FUUID      5da5b4c4-f33f-2077-7caa-fe890cb54dee4b57
   HOST       localhost
   INTERVAL   30
   MUTE       off
   NAME       MPD1
   NR         596
   PORT       6600
   PRESENT    1
   STATE      play
   TYPE       MPD
   VERSION    MPD 0.19.0
   VOLUME     100
   READINGS:
     2019-10-15 20:38:42   Album           +
     2019-10-15 17:35:09   AlbumArtist     Ed Sheeran
     2019-10-15 17:35:09   Artist          Ed Sheeran
     2019-10-15 13:57:57   Cover           
     2019-10-15 20:38:42   Date            2011
     2019-10-15 11:47:31   Disc            1
     2019-10-15 13:57:57   Genre           
     2019-10-15 20:38:42   Id              77
     2019-10-15 13:57:57   Last-Modified   
     2019-10-15 13:57:57   Name           
     2019-10-15 20:38:42   Pos             4
     2019-10-15 20:38:42   Time            258
     2019-10-15 20:38:42   Title           The A Team
     2019-10-15 20:38:42   Track           1
     2019-10-15 20:38:42   X-AlbumUri      spotify:album:0W5GGnapMz0VwemQvJDqa7
     2019-10-15 11:47:31   albums          0
     2019-10-15 12:04:04   artist         
     2019-10-15 11:47:31   artists         0
     2019-10-15 11:47:31   bitrate         160
     2019-10-15 11:47:31   consume         0
     2019-10-15 20:38:45   cover           https://i.scdn.co/image/ab67616d00001e02f0e911d0e5aadefc431bf34a
     2019-10-15 11:47:31   currentTrackProvider Bibliothek
     2019-10-15 11:47:31   db_playtime     0
     2019-10-15 11:47:31   db_update       0
     2019-10-16 07:10:20   elapsed         101.713
     2019-10-15 14:00:25   error1          connect: Connection refused
     2019-10-15 17:35:07   error2          socketclose: Bad file descriptor
     2019-10-15 20:38:42   file            spotify:track:1VdZ0vKfR5jneCmWIUAMxK
     2019-10-15 13:59:03   last_error      IdleStart: Connection refused
     2019-10-15 11:29:49   mpd_event       player
     2019-10-15 09:44:24   mute            off
     2019-10-15 12:04:04   name            0
     2019-10-15 20:38:42   nextsong        5
     2019-10-15 20:38:42   nextsongid      78
     2019-10-15 11:45:57   outputenabled0  0
     2019-10-15 11:45:57   outputname0     Mute
     2019-10-15 17:36:20   playlist        22
     2019-10-15 11:29:49   playlist_crc    62105
     2019-10-15 13:57:57   playlist_json   
     2019-10-15 13:57:57   playlist_num    -1
     2019-10-15 17:36:20   playlistcollection
     2019-10-15 17:36:55   playlistinfo    [{"Artist":"Ed Sheeran","Title":"Happier","Album":"÷ (Deluxe)","Time":"208","File":"spotify:track:2RttW7RAu5nOAfq6YFvApB","Track":"7","Cover":"https://i.scdn.co/image/ab67616d00001e02ba5db46f4b838ef6027e6f96"},{"Artist":"Ed Sheeran","Title":"Thinking out Loud","Album":"x (Deluxe Edition)","Time":"282","File":"spotify:track:34gCuhDGsG4bRPIf9bb02f","Track":"11","Cover":"https://i.scdn.co/image/ab67616d00001e0213b3e37318a0c247b550bccd"},{"Artist":"Ed Sheeran","Title":"Galway Girl","Album":"÷ (Deluxe)","Time":"171","File":"spotify:track:0afhq8XCExXpqazXczTSve","Track":"6","Cover":"https://i.scdn.co/image/ab67616d00001e02ba5db46f4b838ef6027e6f96"},{"Artist":"Ed Sheeran","Title":"Dive","Album":"÷ (Deluxe)","Time":"238","File":"spotify:track:51ChrwmUPDJvedPQnIU8Ls","Track":"3","Cover":"https://i.scdn.co/image/ab67616d00001e02ba5db46f4b838ef6027e6f96"},{"Artist":"Ed Sheeran","Title":"The A Team","Album":"+","Time":"258","File":"spotify:track:1VdZ0vKfR5jneCmWIUAMxK","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e02f0e911d0e5aadefc431bf34a"},{"Artist":"Ed Sheeran","Title":"Shape of You","Album":"÷ (Deluxe)","Time":"234","File":"spotify:track:7qiZfU4dY1lWllzX7mPBI3","Track":"4","Cover":"https://i.scdn.co/image/ab67616d00001e02ba5db46f4b838ef6027e6f96"},{"Artist":"Ed Sheeran","Title":"Castle on the Hill","Album":"÷ (Deluxe)","Time":"261","File":"spotify:track:6PCUP3dWmTjcTtXY02oFdT","Track":"2","Cover":"https://i.scdn.co/image/ab67616d00001e02ba5db46f4b838ef6027e6f96"},{"Artist":"Ed Sheeran","Title":"Perfect","Album":"÷ (Deluxe)","Time":"263","File":"spotify:track:0tgVpDi06FyKpA1z0VMD4v","Track":"5","Cover":"https://i.scdn.co/image/ab67616d00001e02ba5db46f4b838ef6027e6f96"},{"Artist":"Ed Sheeran","Title":"What Do I Know?","Album":"÷ (Deluxe)","Time":"237","File":"spotify:track:2pJZ1v8HezrAoZ0Fhzby92","Track":"10","Cover":"https://i.scdn.co/image/ab67616d00001e02ba5db46f4b838ef6027e6f96"},{"Artist":"Ed Sheeran","Title":"Don't","Album":"x (Deluxe Edition)","Time":"220","File":"spotify:track:1huvTbEYtgltjQRXzrNKGi","Track":"4","Cover":"https://i.scdn.co/image/ab67616d00001e0213b3e37318a0c247b550bccd"},{"Artist":"Ed Sheeran","Title":"I See Fire - From \"The Hobbit - The Desolation Of Smaug\"","Album":"The Hobbit - The Desolation Of Smaug (Original Motion Picture Soundtrack / Special Edition)","Time":"301","File":"spotify:track:3B7udSGy2PfgoCniMSb523","Track":"28","Cover":"https://i.scdn.co/image/6fcd5648de0faf3a40c9ddbed9e9e9d7e0d278f4"},{"Artist":"Ed Sheeran","Title":"Bloodstream","Album":"x (Deluxe Edition)","Time":"300","File":"spotify:track:5v4sZRuvWDcisoOk1PFv6T","Track":"7","Cover":"https://i.scdn.co/image/ab67616d00001e0213b3e37318a0c247b550bccd"},{"Artist":"Ed Sheeran","Title":"Nancy Mulligan","Album":"÷ (Deluxe)","Time":"180","File":"spotify:track:35QZaWQRkmnAVqBF1TLCxQ","Track":"15","Cover":"https://i.scdn.co/image/ab67616d00001e02ba5db46f4b838ef6027e6f96"},{"Artist":"Ed Sheeran","Title":"New Man","Album":"÷ (Deluxe)","Time":"189","File":"spotify:track:5HDPtsnyb3maFmPL8LLUTG","Track":"8","Cover":"https://i.scdn.co/image/ab67616d00001e02ba5db46f4b838ef6027e6f96"},{"Artist":"Ed Sheeran","Title":"I'm a Mess","Album":"x (Deluxe Edition)","Time":"245","File":"spotify:track:0xCA70t1ZA4fa9UOE0lIJm","Track":"2","Cover":"https://i.scdn.co/image/ab67616d00001e0213b3e37318a0c247b550bccd"},{"Artist":"Ed Sheeran","Title":"Sing","Album":"x (Deluxe Edition)","Time":"235","File":"spotify:track:6K8qKeWo5MsFED7wCR6Kop","Track":"3","Cover":"https://i.scdn.co/image/ab67616d00001e0213b3e37318a0c247b550bccd"},{"Artist":"Ed Sheeran","Title":"You Need Me, I Don't Need You","Album":"+","Time":"220","File":"spotify:track:5KL4iZkCTZyXl7KnHgfVDj","Track":"10","Cover":"https://i.scdn.co/image/ab67616d00001e02ed139c2e0e3681cc2d35e256"},{"Artist":"Ed Sheeran","Title":"Eraser","Album":"÷ (Deluxe)","Time":"227","File":"spotify:track:7oolFzHipTMg2nL7shhdz2","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e02ba5db46f4b838ef6027e6f96"},{"Artist":"Ed Sheeran","Title":"Supermarket Flowers","Album":"÷ (Deluxe)","Time":"221","File":"spotify:track:4VuS959DSpr82t3qBqCrWG","Track":"12","Cover":"https://i.scdn.co/image/ab67616d00001e02ba5db46f4b838ef6027e6f96"},{"Artist":"Ed Sheeran","Title":"Photograph","Album":"x (Deluxe Edition)","Time":"259","File":"spotify:track:1HNkqx9Ahdgi1Ixy2xkKkL","Track":"6","Cover":"https://i.scdn.co/image/ab67616d00001e0213b3e37318a0c247b550bccd"},{"Artist":"Ed Sheeran","Title":"Shape of You","Album":"÷ (Deluxe)","Time":"234","File":"spotify:track:7qiZfU4dY1lWllzX7mPBI3","Track":"4","Cover":"https://i.scdn.co/image/ab67616d00001e02ba5db46f4b838ef6027e6f96"},{"Artist":"Imagine Dragons","Title":"Thunder","Album":"Evolve","Time":"187","File":"spotify:track:1zB4vmk8tFRmM9UULNzbLB","Track":"10","Cover":"https://i.scdn.co/image/b7dd9a6acef8183c090e705e4572f5bdbef3e31c"},{"Artist":"Backstreet Boys","Title":"Everybody (Backstreet's Back) - Extended Version","Album":"The Hits--Chapter One","Time":"286","File":"spotify:track:3tH03v5SIWaglfE3rzXzeB","Track":"2","Cover":"https://i.scdn.co/image/ab67616d00001e02c2f0d820b1113f9a243fb973"},{"Artist":"*NSYNC","Title":"Bye Bye Bye","Album":"No Strings Attached","Time":"201","File":"spotify:track:4r8lRYnoOGdEi6YyI5OC1o","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e02fceb9d92981970dbeea23257"},{"Artist":"Louane","Title":"On était beau","Album":"Louane","Time":"206","File":"spotify:track:10ZrEcxWcD9vOSUVhUH33O","Track":"2","Cover":"https://i.scdn.co/image/ab67616d00001e02c0b3a7a9a2bd9ca47471e3c9"},{"Artist":"Sia","Title":"Bird Set Free","Album":"This Is Acting","Time":"252","File":"spotify:track:1LsH71NteRF29VdSkXoF4Y","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e02fc36b265066a58e205ecbd5c"},{"Artist":"Welshly Arms","Title":"Legendary","Album":"No Place Is Home","Time":"232","File":"spotify:track:2bDENJyfbxj0neGiXUFvIX","Track":"9","Cover":"https://i.scdn.co/image/ab67616d00001e02605fea88497f83c4881df0da"},{"Artist":"Taylor Swift","Title":"I Knew You Were Trouble.","Album":"Red (Big Machine Radio Release Special)","Time":"220","File":"spotify:track:6FB3v4YcR57y4tXFcdxI1E","Track":"8","Cover":"https://i.scdn.co/image/8e76cca4edfc4780b4bc86062e8808534d067e52"},{"Artist":"Alessia Cara","Title":"Scars To Your Beautiful","Album":"Know-It-All (Deluxe)","Time":"230","File":"spotify:track:42ydLwx4i5V49RXHOozJZq","Track":"10","Cover":"https://i.scdn.co/image/6dea260c2c37abfd9a034e758a047481f68b4c85"},{"Artist":"KALEO","Title":"Way Down We Go","Album":"A/B","Time":"214","File":"spotify:track:0y1QJc3SJVPKJ1OvFmFqe6","Track":"2","Cover":"https://i.scdn.co/image/ab67616d00001e02f793a842c1642b09a768a63b"},{"Artist":"Imagine Dragons","Title":"Whatever It Takes","Album":"Evolve","Time":"201","File":"spotify:track:6Qn5zhYkTa37e91HC1D7lb","Track":"3","Cover":"https://i.scdn.co/image/b7dd9a6acef8183c090e705e4572f5bdbef3e31c"},{"Artist":"Jess GlynneClean Bandit","Title":"Rather Be (feat. Jess Glynne)","Album":"Rather Be (feat. Jess Glynne)","Time":"228","File":"spotify:track:3s4U7OHV7gnj42VV72eSZ6","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e027e519297d9876b6afff2ab7b"},{"Artist":"Peter Fox","Title":"Schwarz zu blau","Album":"Stadtaffe","Time":"216","File":"spotify:track:1Fjz0ME9pzk553wH86m3ZZ","Track":"2","Cover":"https://i.scdn.co/image/ab67616d00001e029061a4e47413aff8f58a3c9c"},{"Artist":"Seeed","Title":"Augenbling","Album":"SEEED","Time":"217","File":"spotify:track:4eT8TcG3KKlprFcYePA9gw","Track":"4","Cover":"https://i.scdn.co/image/ab67616d00001e024ee35a7450f3c8476654a256"},{"Artist":"Die Orsons","Title":"Schwung in die Kiste","Album":"What's Goes?","Time":"243","File":"spotify:track:1d0LKskvREPlQfBanvabh8","Track":"6","Cover":"https://i.scdn.co/image/ab67616d00001e02b995f9f8ee282d935198a072"},{"Artist":"Die Orsons","Title":"Rosa, Blau, Grün","Album":"Das Chaos und Die Ordnung","Time":"246","File":"spotify:track:4qC0H1RHG3EnHw3qIyyxYb","Track":"10","Cover":"https://i.scdn.co/image/ab67616d00001e025865d1de03a7feab31191ca1"},{"Artist":"Gianna Nannini","Title":"Bello e impossibile","Album":"Profumo","Time":"283","File":"spotify:track:3dZHWv3IsAQLzAr7FLJoJA","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e025ee0276a8cb48fff5608bea0"},{"Artist":"Udo Jürgens","Title":"Ich war noch niemals in New York","Album":"Aber bitte mit Sahne - Jubiläumsedition","Time":"283","File":"spotify:track:18q9XvWQgY1iO3PLGMit8l","Track":"13","Cover":"https://i.scdn.co/image/ab67616d00001e0226f3c1f6966e591fe3d64e5b"},{"Artist":"Dieter Thomas Kuhn & Band","Title":"Willst Du Mit Mir Geh'n","Album":"Wer Liebe Sucht","Time":"192","File":"spotify:track:06UxOBMpXvXj5glumCFXSF","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e028a004e257197b627eeaa3ab0"},{"Artist":"P!nk","Title":"Beautiful Trauma","Album":"Beautiful Trauma","Time":"250","File":"spotify:track:2DlIwu1iDTILEMXA7MUotn","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e0200164c96548a622d34b39828"},{"Artist":"Ricchi E Poveri","Title":"Mamma Maria","Album":"The Collection","Time":"176","File":"spotify:track:7tVEeTbzEJkHP0EqUu6rmf","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e02e46c669e434e80209396680b"},{"Artist":"OneRepublic","Title":"Kids","Album":"Oh My My (Deluxe)","Time":"238","File":"spotify:track:4IG7IRfkbeLBGaQLGWwNPS","Track":"4","Cover":"https://i.scdn.co/image/612fd0cb8724ba18187c4f90c0c556e057db18ad"},{"Artist":"MKTO","Title":"Classic","Album":"Classic","Time":"175","File":"spotify:track:5x9VIW2fS21JMswOt6AORI","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e023468ab7160ba573bf7ff59ed"},{"Artist":"CluesoDie Fantastischen Vier","Title":"Zusammen feat. Clueso","Album":"Captain Fantastic","Time":"225","File":"spotify:track:35Ma4j9sPWhUAJ471naHV3","Track":"3","Cover":"https://i.scdn.co/image/ab67616d00001e026712dc332b14708db08cddce"},{"Artist":"Netta","Title":"Toy","Album":"Toy","Time":"180","File":"spotify:track:6n2eIfLj0wOOUkUfNmYzlh","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e02c78e0ef9967093485f00ea13"},{"Artist":"Mikolas Josef","Title":"Lie to Me","Album":"Lie to Me","Time":"171","File":"spotify:track:6zBdVVksaTQeAzwfszbovz","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e0241d33a9ea79736306e902589"},{"Artist":"Rita OraLiam Payne","Title":"For You (Fifty Shades Freed) (& Rita Ora)","Album":"FIFTY SHADES OF GREY - Befreite Lust (Original Motion Picture Soundtrack)","Time":"245","File":"spotify:track:6GKkczxg0QqLUqrhsic1Ut","Track":"2","Cover":"https://i.scdn.co/image/2db339f0f62e0bb118ff4c9a67320cecfdb35031"},{"Artist":"K.A.S.T.A","Title":"Vokrug Shum","Album":"Vokrug Shum","Time":"214","File":"spotify:track:0dSeAQtXHjXROIIyjAGKTf","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e0291a08c84ac80ae8ab41a03cb"},{"Artist":"P!nk","Title":"Just Like Fire (From the Original Motion Picture \"Alice Through The Looking Glass\")","Album":"Just Like Fire (From the Original Motion Picture \"Alice Through The Looking Glass\")","Time":"215","File":"spotify:track:7K5dzhGda2vRTaAWYI3hrb","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e022002a63b1572e5cd031ab78f"},{"Artist":"Sara Bareilles","Title":"Love Song","Album":"Little Voice","Time":"259","File":"spotify:track:4E6cwWJWZw2zWf7VFbH7wf","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e021c3e0a58f3ee28af2922e351"},{"Artist":"Ingrid Michaelson","Title":"Afterlife","Album":"Lights Out","Time":"245","File":"spotify:track:13iycH8hoDh5116sUTZXsD","Track":"12","Cover":"https://i.scdn.co/image/ab67616d00001e027939d39424c0cfcc321415ab"},{"Artist":"Alvaro Soler","Title":"La Cintura","Album":"Mar De Colores (Versión Extendida)","Time":"205","File":"spotify:track:6VUJQqyeQhAZHkQbSDqLtI","Track":"3","Cover":"https://i.scdn.co/image/ab67616d00001e025767e044062c6d03256397e5"},{"Artist":"Bruno Mars","Title":"Young Girls","Album":"Unorthodox Jukebox","Time":"229","File":"spotify:track:3G5iN5QBqMeXx3uZPy8tgB","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e02926f43e7cce571e62720fd46"},{"Artist":"Jess Glynne","Title":"I'll Be There","Album":"I'll Be There","Time":"194","File":"spotify:track:083Qf6hn6sFL6xiOHlZUyn","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e0277179b6ddeb4b4f4757e7a10"},{"Artist":"DisclosureFlumeEliza Doolittle","Title":"You & Me - Flume Remix","Album":"Settle (Special Edition)","Time":"283","File":"spotify:track:3W2ZcrRsInZbjWylOi6KhZ","Track":"34","Cover":"https://i.scdn.co/image/ab67616d00001e0209f5242f9d639ee5669afa45"},{"Artist":"Wincent Weiss","Title":"Feuerwerk","Album":"Irgendwas gegen die Stille","Time":"209","File":"spotify:track:3GRoxbBauU8Ui1zUJwn9aD","Track":"2","Cover":"https://i.scdn.co/image/b344392c64d9e23baf75d705e21e2b09321b750b"},{"Artist":"Wincent Weiss","Title":"Musik sein","Album":"Irgendwas gegen die Stille","Time":"194","File":"spotify:track:00ZoztotP7jEoezTPNMjvm","Track":"1","Cover":"https://i.scdn.co/image/b344392c64d9e23baf75d705e21e2b09321b750b"},{"Artist":"Beyoncé","Title":"Halo","Album":"I AM...SASHA FIERCE","Time":"262","File":"spotify:track:2MfOcbtgz2yTsiznFmVZUN","Track":"2","Cover":"https://i.scdn.co/image/ab67616d00001e022fd16e69054586f25be54f49"},{"Artist":"Texas","Title":"Inner Smile","Album":"The Greatest Hits","Time":"231","File":"spotify:track:6X6ljHP0LlsdUILsGwfQ40","Track":"5","Cover":"https://i.scdn.co/image/1f0366a3b54d274ad7af98c2f0546395d7fc309c"},{"Artist":"Panic! At The Disco","Title":"High Hopes","Album":"Pray for the Wicked","Time":"191","File":"spotify:track:1rqqCSm0Qe4I9rUvWncaom","Track":"4","Cover":"https://i.scdn.co/image/ab67616d00001e02c5148520a59be191eea16989"},{"Artist":"Christina Perri","Title":"sea of lovers","Album":"head or heart","Time":"215","File":"spotify:track:4EisHKHtmZ2Sa5z2e1kYEp","Track":"7","Cover":"https://i.scdn.co/image/ab67616d00001e02891b5348358ee43343077db2"},{"Artist":"Marco Frisina","Title":"Pacem In Terris","Album":"The Best Of Marco Frisina","Time":"264","File":"spotify:track:64gXE26DHs96jsPz7zciMI","Track":"6","Cover":"https://i.scdn.co/image/ab67616d00001e020c580758f7fdfc8c3b865d03"},{"Artist":"Sasha","Title":"If You Believe","Album":"Greatest Hits","Time":"240","File":"spotify:track:4AstOWewI6yGeMh6ysWFCW","Track":"2","Cover":"https://i.scdn.co/image/ab67616d00001e028c2724dcf12ce01b4c7d916c"},{"Artist":"Loud LuxuryBrando","Title":"Body","Album":"Body","Time":"163","File":"spotify:track:3jvpPbTJqfyKvEOtOsn83m","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e02c85a86599e5e237504221b1f"},{"Artist":"B.o.B","Title":"So Good","Album":"Strange Clouds","Time":"213","File":"spotify:track:28GUjBGqZVcAV4PHSYzkj2","Track":"6","Cover":"https://i.scdn.co/image/ab67616d00001e02a191830c8b300bc71c2faac7"},{"Artist":"Ava Max","Title":"Sweet but Psycho","Album":"Sweet but Psycho","Time":"187","File":"spotify:track:25sgk305KZfyuqVBQIahim","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e02c5015d2a9270865a5979f56b"},{"Artist":"Sia","Title":"I'm Still Here","Album":"I'm Still Here","Time":"242","File":"spotify:track:5KGTKwOePys7aH4o6EzXEP","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e0288aec414e2ddc035d7f66104"},{"Artist":"Drupi","Title":"Piccola e fragile","Album":"Drupi","Time":"268","File":"spotify:track:5MsOJoGpCAqdTf90mHzISd","Track":"9","Cover":"https://i.scdn.co/image/ab67616d00001e028ca951f14ecf9e78030d191e"},{"Artist":"Udo Jürgens","Title":"Immer wieder geht die Sonne auf","Album":"Was ich Dir sagen will","Time":"185","File":"spotify:track:4NE71zloHC3tV0YZAo1HXr","Track":"5","Cover":"https://i.scdn.co/image/ab67616d00001e024672ce8568d045a0ad409226"},{"Artist":"MEUTE","Title":"You & Me","Album":"You & Me","Time":"306","File":"spotify:track:1MdbDBwEEecnlLiyWChJFh","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e021e4b57f1cfb61e9bfef1e8ca"},{"Artist":"Robin SchulzErika Sirola","Title":"Speechless (feat. Erika Sirola)","Album":"Speechless (feat. Erika Sirola)","Time":"215","File":"spotify:track:1rCcsYnmqbMYdkG7kS9GC5","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e02318e24185fcbd27faeeef55c"},{"Artist":"Rita Ora","Title":"Let You Love Me","Album":"Phoenix (Deluxe)","Time":"191","File":"spotify:track:5Fla3zyOCcIRqrDoKLU0DP","Track":"2","Cover":"https://i.scdn.co/image/ab67616d00001e02f1b136eb0388414a8225a348"},{"Artist":"Ellie GouldingSwae LeeDiplo","Title":"Close To Me (with Diplo) (feat. Swae Lee)","Album":"Close To Me (feat. Swae Lee)","Time":"183","File":"spotify:track:5JEx7HbmvHQQswJCsoo9rA","Track":"1","Cover":"https://i.scdn.co/image/d2fc265553b67cc1e79958a531a0b5f8ae23fbd9"},{"Artist":"Marteria","Title":"Endboss","Album":"Zum Glück in die Zukunft","Time":"224","File":"spotify:track:2JGloz8S7kkUi57c892mnv","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e021873e2932eadced388135837"},{"Artist":"Marteria","Title":"Scotty beam mich hoch","Album":"Roswell","Time":"249","File":"spotify:track:6zuUWT2b1cFs9NMVHuDLdY","Track":"3","Cover":"https://i.scdn.co/image/ab67616d00001e0263a0d158ea0c02b24749da06"},{"Artist":"Ava Max","Title":"So Am I","Album":"So Am I","Time":"183","File":"spotify:track:0uUNN1nSoUx1A4fkDCWDQ7","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e02b8dcf98474721fe404ad780d"},{"Artist":"Matt Simons","Title":"Open Up","Album":"Open Up","Time":"168","File":"spotify:track:3ENfrioOpwovY3HrIAX3UC","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e02c4898b5e598158b3725e1bfd"},{"Artist":"Wincent Weiss","Title":"Hier mit dir","Album":"Hier mit dir","Time":"185","File":"spotify:track:3fqmx4fMxm2GPCrYe1TPOB","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e0263e2ae77b985df1179f41439"},{"Artist":"Fettes Brot","Title":"Für immer immer","Album":"3 is ne Party","Time":"202","File":"spotify:track:5ofIisXnT7e7klW4K9w7Lh","Track":"2","Cover":"https://i.scdn.co/image/ab67616d00001e028cc0c3fe4f025b1e7df758d4"},{"Artist":"Michel Sardou","Title":"La maladie d'amour","Album":"La Maladie D'Amour","Time":"210","File":"spotify:track:2flivK5ivlprHRE7YNcRrj","Track":"11","Cover":"https://i.scdn.co/image/dd36e11f71e0a35e49b47d79164fa4cdadfdffec"},{"Artist":"Laith Al-Deen","Title":"Bilder von Dir","Album":"2000 - 2008: Best Of","Time":"296","File":"spotify:track:5JEenaFSoOuZgtat8bhwg1","Track":"4","Cover":"https://i.scdn.co/image/ab67616d00001e021e2e9d850c26ad31aecb4f0f"},{"Artist":"Sido","Title":"Tausend Tattoos","Album":"Kronjuwelen","Time":"205","File":"spotify:track:2PAYSgrVOBz8RJqp9B7QLu","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e0213160387f081dbf84f98a4d4"},{"Artist":"EAV","Title":"Samurai","Album":"100 Jahre EAV","Time":"237","File":"spotify:track:5hjO4HQ02cX2VJLcINshtr","Track":"3","Cover":"https://i.scdn.co/image/ab67616d00001e027733f4a485ac9ff7bc0c7f6f"},{"Artist":"Lena","Title":"thank you","Album":"thank you","Time":"195","File":"spotify:track:3uCZ4IqMY54A0jxRkyPGPl","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e02d09daaf2a06c91dbc4ffdd04"},{"Artist":"Pietro Lombardi","Title":"Bella Donna","Album":"Bella Donna","Time":"196","File":"spotify:track:3v9OYjvyB1tJ9sMrZIlfcz","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e02aaa3177b2b3cc0b01a532028"},{"Artist":"Ellie Goulding","Title":"Anything Could Happen","Album":"Halcyon","Time":"286","File":"spotify:track:6bKetqXF3g4UgaXQlAYdgz","Track":"3","Cover":"https://i.scdn.co/image/c8a558841b91fd182549ca82f8faf6e2a93dd027"},{"Artist":"Clean BanditDemi Lovato","Title":"Solo (feat. Demi Lovato)","Album":"What Is Love? (Deluxe Edition)","Time":"223","File":"spotify:track:3NuK5xMlSlB6K2Qp16zf3h","Track":"3","Cover":"https://i.scdn.co/image/ab67616d00001e0237fb0680110fbb107740de5d"},{"Artist":"Troye SivanLauv","Title":"i'm so tired...","Album":"i'm so tired...","Time":"163","File":"spotify:track:7COXchtUOMd6uIT6HvmRaI","Track":"1","Cover":"https://i.scdn.co/image/ab67616d00001e02923d879fb957411a7504fa57"},{"Artist":"Dieter Thomas Kuhn","Title":"Sag Mir Quando, Sag Mir Wann","Album":"Wer Liebe Sucht","Time":"188","File":"spotify:track:3wx5BXdMwTECAQXoturLvF","Track":"2","Cover":"https://i.scdn.co/image/ab67616d00001e028a004e257197b627eeaa3ab0"},{"Artist":"Dieter Thomas Kuhn","Title":"Eine neue Liebe ist wie ein neues Leben","Album":"Mein Leben Für Die Musik","Time":"193","File":"spotify:track:3Wv3ISOIeSRtZSJHuHu5s1","Track":"8","Cover":"https://i.scdn.co/image/ab67616d00001e02c93eb8d0b620479a6239896c"},{"Artist":"Dieter Thomas Kuhn","Title":"Über den Wolken - Live","Album":"Im Auftrag der Liebe (Live)","Time":"253","File":"spotify:track:03cwW6MW7qEd7czbPj6tdG","Track":"7","Cover":"https://i.scdn.co/image/ab67616d00001e02c9e1741fde8949ebb7547e8c"},{"Artist":"Dieter Thomas Kuhn","Title":"Heute So, Morgen So","Album":"Gold (Party Edition)","Time":"139","File":"spotify:track:4CRYvxMZzb10dxTkCBzVSO","Track":"4","Cover":"https://i.scdn.co/image/ab67616d00001e02ecb9cd779f2e4b1b835e5bfa"}]
     2019-10-15 17:36:20   playlistlength  92
     2019-10-15 17:36:20   playlistname   
     2019-10-15 11:47:31   playtime        0
     2019-10-15 13:59:03   presence        absent
     2019-10-15 11:47:31   random          0
     2019-10-15 11:47:31   rawTitle        Orchestral Suite No. 4 in D Major, BWV 1069: I. Overture
     2019-10-15 14:33:39   repeat          0
     2019-10-15 14:33:39   single          0
     2019-10-15 20:38:42   song            4
     2019-10-15 20:38:42   songid          77
     2019-10-15 11:47:31   songs           0
     2019-10-16 07:09:20   state           play
     2019-10-16 07:10:20   time            101:258
     2019-10-15 12:04:04   title           
     2019-10-15 11:47:31   updating_db     0
     2019-10-15 11:47:31   uptime          0
     2019-10-15 14:33:39   volume          100
     2019-10-15 11:47:31   xfade           0
Attributes:
   devStateIcon play:rc_PLAY:stop stop:rc_STOP:play pause:rc_PAUSE:pause
   event-on-update-reading state,Title,Track,playlistinfo,Album,Artist,playlistcollection,file,cover,playlist,Pos,Time,elapsed
   icon       it_radio
   loadPlaylists 1
   room       Spotify
   useIdle    0
   webCmd     previous:stop:play:pause:next


Grüße,
Alex

Wzut

#72
ok, Attribut loadPlaylists ist auf 1
Gibt "mpc lsplaylists" denn die Listen auf der Konsole aus ?
Bzw in der FHEM Webansicht get <name> playlists ?

BTW: du verlierst einiges an Komfort mit useIdle = 0 , da dann der MPD nur im Intervall abgefragt wird und die Readings nicht Event basierend getzt werden.
Edit :
Ich sehe gerade :
Zitat von: xasher am 15 Oktober 2019, 17:42:34
Ich habe mopidy mit spotify installiert.
Setz das Attribut player auch bitte auf mopidy , dann gibt es richtige Fehlermeldungen. U.a. unterstützt der mopidy einige Befehle nicht die der echte mpd kann,
betrifft auch das Laden von Playlisten.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Meisterull

Hi,
Ich habe diesen Code mal bei mir in die 99_myUtils.pm reinkopiert. Soweit würde das auch funktionieren.
Wo ich Hilfe bräuchte wäre, das ich nicht nur die Cover von Spotify bekomme sondern auch die von Tunein.
Ich peil des ganze mit Perl irgendwie nicht. :'(


Viele Grüße
Sebastian

99_myUtils.pm Funktionen

sub call_mpd1_getcover() {
    Log 1, "call_mpd1_getcover";
    BlockingCall("mpd_getcover","MPD1","done_mpd1_getcover",60);
}

sub done_mpd1_getcover($) {
    my $url = shift;
    Log 1, "done_mpd1_getcover";
    fhem ("setreading MPD1 cover ".$url);
}

sub call_mpd1_playlistinfo() {
    Log 1, "call_mpd1_playlistinfo";
    BlockingCall("mpd_playlistinfo","MPD1","done_mpd1_playlistinfo",120);
}

sub done_mpd1_playlistinfo($) {
    my $playlist = shift;
    Log 1, "done_mpd1_playlistinfo";
    fhem ("setreading MPD1 playlistinfo ".$playlist);
}

sub mpd_playlistinfo($) {
  my $device = shift;
  my ($all) = fhem("get $device mpdCMD playlistinfo");
  $all =~ s/"/\\"/g; 
  my @artist = ($all=~/\nArtist:\s(.*)\n/g);
  my @title = ($all=~/\nTitle:\s(.*)\n/g);
  my @album = ($all=~/\nAlbum:\s(.*)\n/g);
  my @time = ($all=~/\nTime:\s(.*)\n/g);
  my @file = ($all=~/\nfile:\s(.*)\n/g);
  my @track = ($all=~/\nTrack:\s(.*)\n/g);
  my @albumUri = ($all=~/\nX-AlbumUri:\s(.*)\n/g);

  my $ret = '[';
  my $ua = LWP::UserAgent->new( ssl_opts => { verify_hostname => 1 } );
  my $lastUri = '';
  my $url;

  for my $i (0 .. $#artist)
  {
     if ( $lastUri ne $albumUri[$i]) {
       my $response = $ua->get("https://embed.spotify.com/oembed/?url=".$albumUri[$i]);
       my $data = '';
       if ( $response->is_success ) {
         $data = $response->decoded_content;
         $url = decode_json( $data );
         $lastUri = $albumUri[$i];
       }
     }

      $ret=$ret.'{"Artist":"'.$artist[$i].'",';
      $ret=$ret.'"Title":"'.$title[$i].'",';
      $ret=$ret.'"Album":"'.$album[$i].'",';
      $ret=$ret.'"Time":"'.$time[$i].'",';
      $ret=$ret.'"File":"'.$file[$i].'",';
      $ret=$ret.'"Track":"'.$track[$i].'",';
      $ret=$ret.'"Cover":"'.$url->{'thumbnail_url'}.'"}';

      if ($i<$#artist) {$ret=$ret.',';}
  }
  $ret =~ s/;//g;
  $ret =~ s/\\n//g;
  return $ret.']';
}

sub mpd_getcover($) {
  my $device = shift;
  my $file = ReadingsVal($device, 'file', '');
  my $url = 'na';
  my $ua = LWP::UserAgent->new( ssl_opts => { verify_hostname => 1 } );
  my $response = $ua->get("https://embed.spotify.com/oembed/?url=".$file);
  my $data = '';
  if ( $response->is_success ) {
     $data = $response->decoded_content;
     $url = decode_json( $data )->{'thumbnail_url'};
  }
  return $url;
}

sub
OnMpdPlayPressed()
{
my $val=ReadingsVal('AvReceiver', 'input', 'Webradio');
if(($val ne 'SAT') && ($val ne 'BD/DVD') && ($val ne 'Game')) {
  fhem "set AvReceiver input Airplay";
}
fhem "get MPD1 playlists";
}