NEWS
[Vorlage] Spotify Skript
-
Wenn du mit States aktualisieren das kleine "Aktualisieren Symbol" bei de Objekten meinst, das hat keine Veränderung gebracht
Im Reiter "Zustände" kann ich leider nichts aktualisieren und dort sind noch alte Zeiten bei "Zeit" und "geändert" eingetragen.
Wie kann ich das dort aktualisieren?
Lieben Gruß, Karim.
-
Hi,
Vielen Dank! Probiere ich heute Abend aus!
@Karim: Ich musste iobroker komplett neu starten (hab den pi durchgestartet) damit das bei mir lief. Erst danach konnte ich die Listen laden etc..
Grüße Ben
-
Den Raspi habe ich bereits neu gestartet, was auch zu keiner Veränderung geführt hat
Habe es auch eben noch ein weiteres mal getestet, leider wieder ohne Erfolg.
Andere Ideen woran es noch liegen könnte? Kann ich euch irgendwas posten, was euch weitere Informationen geben kann?
Lieben Gruß, Karim.
-
Hi,
oh man ist das genial :)! Ich bin happy, es läuft! Ich habe noch STATES für shuffle hinzugefügt. Problem war, dass ich mit einer Szene "Guten Morgen" direkt eine Spotify Playliste starte, diese aber leider immer mit Shuffle OFF startete, egal was vorher in Spotify aktiviert war. Resultat war dann, dass die Playlist immer mit dem gleichen Song gestartet hat. Dann würde ich also morgens immer die gleichen 2-3 Lieder hören. Mit Shuffle aktiviert und einem Button-Klick auf Skip (plus oder minus) hab ich dann einen Random-Song aus der Playlist.
Im Code ergänzt:
Anfang bei den States:
createState('javascript.0.Spotify.Player.ShuffleOn', false,{type: "boolean", role: "button"}); createState('javascript.0.Spotify.Player.ShuffleOff', false,{type: "boolean", role: "button"});
Weiter unten bei den Event-Handlern:
on({id:'javascript.0.Spotify.Player.ShuffleOn',val:true}, function (obj){ SendRequest('/v1/me/player/shuffle?state=true','PUT','',function(){}); }); on({id:'javascript.0.Spotify.Player.ShuffleOff',val:true}, function (obj){ SendRequest('/v1/me/player/shuffle?state=false','PUT','',function(){}); });
@Luck: Ich bin Lucky! Würde dir gerne ein Bier ausgeben! Sehr coole Sache… sehr cool.
Grüße
Ben
-
Hi,
@Karim: Du könntest mal schauen, ob bei der App bei Spotify überhaupt was ankommt. Da gibt es so ein Dashboard. Möglicherweise geht sonst irgendwas nicht raus/rein? Ansonsten ggf. alles rausschmeißen und nochmal neu starten?
Grüße
Ben
-
@Luck: Ich bin Lucky! Würde dir gerne ein Bier ausgeben! Sehr coole Sache… sehr cool.
Ben `
ich trinke Herry
-
Danke, nun klappt es.
Ich glaube es lag daran, dass ich die URL nicht in der erstellten App eingetragen hatte.
Vielen dank für eure Hilfe
Jetzt geht es an die Visualisierung. Mal sehen wie es damit voran geht
Lieben Gruß, Karim.
-
-
Ich habe mal wieder ein Problem.
Nach ein paar Stunden / Tagen aktualisieren sich manche Werte in den Objekten nicht mehr, womit es auch nicht mehr möglich ist, die Steuerung per Vis zu übernehmen.
Wenn ich allerdings in den Objekten direkt einen Button nutze, klappt es komischerweise von dort aus wieder.
Über die Vis kommt beim Drücken eines Buttons auch folgendes:
javascript.0 2017-12-26 15:41:14.562 error script.js.Skripte.Spotify: FEHLER BEIM ERNEUTEN DATEN ANFORDERN !
Hat jemand eine Idee, woran es liegen könnte?
Lieben Gruß, Karim.
-
PERFEKT! Funktioniert super. Bis auf eine Kleinigkeit. Das Auslesen der Playlist …
Drücke ich den Button kommt nichts an.
Habe im Script diesen Fehler entdeckt:
Hat der vielleicht was damit zu tun?
SG
Mario
-
du meinst das Ausrufezeichen ? das ist soweit ich weis ein Fehler im Editor und kommt bei allen Skripten vor ab einer bestimmten Zeilenanzahl..
Zu deinem Problem, wenn du die Playlists abgerufen hast, aktualisiere mal deine States
-
Ich habe mal wieder ein Problem.
Nach ein paar Stunden / Tagen aktualisieren sich manche Werte in den Objekten nicht mehr, womit es auch nicht mehr möglich ist, die Steuerung per Vis zu übernehmen.
Wenn ich allerdings in den Objekten direkt einen Button nutze, klappt es komischerweise von dort aus wieder.
Über die Vis kommt beim Drücken eines Buttons auch folgendes:
javascript.0 2017-12-26 15:41:14.562 error script.js.Skripte.Spotify: FEHLER BEIM ERNEUTEN DATEN ANFORDERN !
Hat jemand eine Idee, woran es liegen könnte?
Lieben Gruß, Karim. `
benutzt du die letzte Version ?
sollte eigentlich nicht mehr vorkommen, mein Skript lief jetzt eine mind. eine Woche ohne einen Benutzereingriff, und hat heute auf Anhieb wider funktioniert
Ich denke nicht das es mit VIS zutun hat,hast du vielleicht den Javascript Adapter zwischendurch neu gestartet, oder ist er abgestürzt ?
-
Hallo Lucky,
Ja, ich nutze die Version 0.35.
Jetzt gerade ging es die Musik aus ioBroker direkt zu starten, aber über die Vis. hat es dann nicht mehr geklappt.
Zurück am Computer hat es dann auch nicht mehr mit den Buttons geklappt
Etwas verwirrend alles.
Lieben Gruß und guten Rutsch ins neue Jahr,
Karim.
-
hm, ich kann das leider nicht rekonstruieren, bei mir geht es
-
du meinst das Ausrufezeichen ? das ist soweit ich weis ein Fehler im Editor und kommt bei allen Skripten vor ab einer bestimmten Zeilenanzahl..
Zu deinem Problem, wenn du die Playlists abgerufen hast, aktualisiere mal deine States `
… hat geklappt, danke.
SG
Mario
-
Hallo Lucky,
super Skript, vielen Dank dafür!
Bis auf die Aktualisierung der Playlists scheint alles zu funzen. Er bekommt irgendwie von Spotify ungefragt die DiscoverWeekly Playlist zusätzlich zu den eigentlichen zurück und hängt sich daran auf. (das vermute ich jedenfalls)
javascript.0 2018-01-02 18:26:38.043 warn Object "javascript.0.Spotify.Playlists.DiscoverWeekly" does not exist
Any Ideas?
Hab schon versucht, ob ich das bei Spotify abstellen kann, aber leider nichts gefunden.
–---
einen Typo hab ich beim Fehlersuchen in Gegend der Zeile 542 gefunden: offest = offset nehme ich an
on({id:'javascript.0.Spotify.Get_User_Playlists'}, function (obj){ if(Application.User_ID!==''){ var query ={ limit:40, --> offset:0 <-- };
-
ich habe gerade bemerkt das immer und bei jeder Playlist vorkommt wenn man die Playlists ein zweites mal abruft, allerdings kommt bei mir dann nur die Warnung, aber es hängt sich nichts auf.. :?
ich mach mich mal dran…! danke für den Hinweis
Wenn man bei offset einen wert größer 0 angibt, werden Playlist die Indexmäßig davor liegen nicht abgerufen
Nachtrag: Habe den Fehler gefunden, es liegt an einem GetObject
-
Hmmm ich bekomme beim Versuch es zu starten folgendes Log:
javascript.0 2018-01-03 18:09:56.804 error at Object. (script.js.common.Spotify.Spotify_Skript:437:36) javascript.0 2018-01-03 18:09:56.803 error Error in callback: TypeError: Cannot read property 'parse' of undefined javascript.0 2018-01-03 18:09:55.625 info script.js.common.Spotify.Spotify_Skript: Error: ENOENT: no such file or directory, open 'SpotifyAccessToken.txt' javascript.0 2018-01-03 18:09:55.620 info script.js.common.Spotify.Spotify_Skript: registered 20 subscriptions and 0 schedules javascript.0 2018-01-03 18:09:55.616 error at ContextifyScript.Script.runInContext (vm.js:35:29) javascript.0 2018-01-03 18:09:55.616 error at script.js.common.Spotify.Spotify_Skript:49:19 javascript.0 2018-01-03 18:09:55.615 error script.js.common.Spotify.Spotify_Skript: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/node_modules/querystring'
muss ich das querystring noch irgendwo im Adapter eintragen?
Edit: gemacht, nun ging es. Allerdings reagiert Chrome gar nicht auf die generierte URL und FF sagt, dass es invalid ist?
-
ich habe in der letzten Version oben ein paar Änderungen vorgenommen
Allerdings ist die Warnung nicht ganz weg zu bekommen, Sie kommt allerdings nur wenn ein Playlist abgerufen wird die vorher noch nicht angelegt war.
Grund ist, das getObject die Warnung ausgibt wenn nach einem nicht vorhandenen State gesucht wird, das hat aber sonst keine nachteile und für nicht zu Störungen.
Sonstige Änderungen:
-
Anzahl der Tracks in einer Playlist wird jetzt angezeigt
-
Shuffle hinzugefügt
-
-
Edit: gemacht, nun ging es. Allerdings reagiert Chrome gar nicht auf die generierte URL und FF sagt, dass es invalid ist? `
es ist korrekt das im Browser keine Webseite angezeigt wird weil es unter 'example' keine gibt, da ist eine Dummy, es wird aber trotzdem in der Adresszeile eine URL zurück gegeben, diese mußt du kopieren
https://example.com/callback/?code=xxxxxxxxxxxxxxxxxxxxxxxxxx&state=xxxxxxxxxxxxxxxxxxxxx