NEWS
Blockly Spotify Playlist abspielen
-
@badsnoopy667 Das hat schon mal besser funktioniert. Nun habe ich das Skript ein bisschen vereinfacht, (zunächst ohne Unterscheidung, ob Wochenende oder Wochentag) und ein anderer Playlist genommen und siehe da es funktioniert jetzt. Sowohl auf dem Handy als auch auf der Alexa.
Nun weiß ich nicht, wo der Fehler war aber Hauptsache es funktioniert.
Vielen Lieben Dank für deine Geduld
PS: zu früh gefreut, es funktioniert wieder nicht. Selbst der Timeout funktioniert nicht. Bei jeder Bewegung, wird das Lied immer wieder von Anfang an gespielt und das bestehende Problem, dass immer wieder das gleiche Lied abgespielt wird, besteht immer noch. Bin langsam verzweifelt
-
@masterg-23
Ist das untere "stop timeout" nicht falsch? ich glaube das muss raus, sonst läuft der timeout ja nie los, oder? -
@badsnoopy667 hat leider keine Auswirkung.
Edit: Hab das Stop ein bisschen umgebaut, funktioniert trotzdem nicht. Bei jeder Bewegung, wird neu getriggert.
-
Du solltest auf jeden fall schon mal in Betracht ziehen, auf geändert zu triggern, und nicht auf aktualisiert.
Und falls aktuelle Zeit nicht zwischen 6 und 0:45 wird immer wieder der Timer gestartet, deine erste falls Abfrage sollte besser der Zustand des trigger sein, dann erst Zeit.
-
@cinimod Habe ich gemacht leider ohne Erfolg. Ich versteh wirklich nicht wo das Problem ist. Das ist doch ein einfaches Skript.
Hab extra alle Datenpunkte kontrolliert, ob ich die richtigen ausgewählt habe. Bei jeder Bewegung, wird es neu getriggert und er spielt immer wieder mit wenigen Ausnahmen, das gleiche Lied.
Neudings skippt er einfach nach 30 Sekunden willkürlich!
Ich habe die Verzögerungen ein wenig erhöht, ohne Erfolg. -
@masterg-23 Wie schnell wechselt der Bewegungsmelder denn wieder von "Bewegung erkannt" auf "keine Bewegung"? Ist das schneller als 180 Sekunden? Dann würde er ja wieder auslösen sobald sich was bewegt. Bei meinen Homematic Bewegungsmeldern kann man meine ich einstellen, wie oft die zurück gesetzt werden.
Sonst musst du hier eine Variable einbauen die bei der 1. Bewegung auf true geht und erst nach 180 sekunden wieder auf false. Und die fragst Du dann immer ab, ob sie false ist bevor du wieder auslöst. Damit kannst Du die Ruhezeit des Bewegunsmelders dann selbst bestimmen. -
@badsnoopy667 Es handelt sich um einen Philips Hue BWM. Ich glaube nach 5 Sekunden wird auf "keine Bewegung" umgeschaltet, aber ich habe ja extra eingestellt, dass solange Current Status True ist, eine Bewegung erkannt wurde, dann soll er ja 180 Sekunden abwarten und erneut abfragen. Genau das funktioniert ja nicht.
-
@masterg-23
Versuch mal statt "Wert" = wahr direkt die Occupancy zu nehmen. Also Wert von Object ID als Block. Vielleicht stimmt da was nicht... -
Wer oder was stellt denn den current state wieder auf false ? das passiert ja nirgendwo.
-
@badsnoopy667 das habe ich auch versucht, leider ohne Erfolg. Irgendwas stimmt mit dem Skript oder ähnliches nicht. Nun ist es so, dass wenn eine Bewegung erkannt wurde, erst nach 15-20 Sekunden der Playlist abgespielt wird und immer wieder das gleiche Lied.
@Cinimod
Doch, nach 180 Sekunden wenn keine Bewegung erkannt wurde, wird ja "controlPause" auf wahr gesetzt und somit wird automatisch current state auf falsch gesetzt, wenn nichts mehr abgespielt wird.PS: Was ich auch festgestellt habe. Ich höre mit dem iPhone ein Podcast auf Spotify, dann geh ich ins Bad, nach 20 Sekunden wird der Pocast auf dem iPhone gestoppt und der Playlist den ich im Skript ausgewählt habe, wird auf dem iPhone gespielt. Das macht irgendwie gar keinen Sinn, da ich im Skript explizit eingestellt habe, dass bei Bewegung im Bad der Alexa im Bad aktiviert werden soll.
PPS: Hab gerade den "currentState" übrprüft. Der bleibt immer auf false auch wenn gerade ein Lied im Bad läuft. Wenn ich den currentState von z.b. einem anderen Alexa z. b.: im Wohnzimmer nehme, dann wechselt er auf true wenn ein Lied im Wohnzimmer läuft.
-
Dann weißt du ja jetzt wieso deine Playlist immer wieder angestoßen wird, dann schau mal wieso der State sich nicht ändert. im zweifel kannst du mit eine Variablen Arbeiten, die auf true geht wenn BM wahr ist, und nach 180 wieder false wird.
-
@cinimod Danke für deine Nachricht. Ich habe versucht, mit einem anderen Dot der im Schlafzimmer steht auszuprobieren, da hier der Wert current State korrekt ausgegeben wird. Irgendwie ist der Wurm drin. Wenn die BWM eine Bewegung erkennt, wird die Lautstärke korrekt angepasst, dann passiert 60 Sekunden nichts dann meldet Alexa "dieser Befehl wird Momentan nicht unterstützt". Sowas hatte ich auch noch nie
Weiß langsam nicht mehr weiter.Edit: Ich bin einen Schritt weiter. Der Spotify Adapter hatte Probleme mit den verbundenen Geräten. Man muss in den Adapter Einstellungen den Hacken reinmachen "nicht verbundene Geräte löschen" meine Geräte waren doppelt und dreifach aufgelistet.
-
Dann drucke ich mal die Daumen, das es jetzt läuft. Berichte gern mal.
Wie gesagt, ich hätte direkt eine Variable benutzt zum Sperren, würde mich garnicht an dem currentState orientieren.
-
@cinimod es funktioniert jetzt wie es soll nur nicht im Bad, da dort wie gesagt der Wert vom current State immer auf false bleibt. Wie kann ich es genau mit den Variablen umsetzen damit ich nicht auf current State angewiesen bin?
-
-
@cinimod vielen lieben Dank. Ich teste es gerade mit einem Radio Sender statt mit Spotify und es funktioniert. Ich werde nachher das gleiche mit Spotify testen und schauen, ob es funktioniert.
Könntest du vielleicht kurz die Funktionsweise mit der Variablen erklären? Ich habs zwar nachgebaut aber ich steige nicht ganz dahinter.
-
Die Variable wird ganz oben beim Starten bzw. wenn du eine änderung speicherst mit "false" beschrieben.
Deine Aktion startet nur wenn der trigger Datenpunkt "Wahr" ist und die variable "false" ist.Sobald diese Kriterien erfüllt sind startet deine Aktion, und die Variable wird mit "true" beschrieben solange bis keine Bewegung mehr erkannt wird und dein "Timer" abgelaufen ist, welcher die Variable ja wieder auf "false" setzt.
Sollte also nur kurzzeitig der BM false melden, geht ja erstmal dein "timer" los. Sollte aber vor Ablauf der Zeit wieder ein "True" kommen vom BM, stoppt ja der Timer direkt (also wird die variable dann nicht wieder auf false gehen), und da die Variable dann noch mit "true" beschrieben ist, erfüllst du deine Kriterien zum starten nicht, und die PL wird nicht immer wieder erneut gestartet, sondern tatsächlich erst wenn nach einem "false" vom BM der Timer bis zum ende durch läuft und die Variable wieder mit "false" beschreibt.
Phu .... ganzen Roman geschrieben
-
Gerade selbst noch nen fehler entdeckt. Ändere mal das "SONST" auf "SONST FALLS" "nich WERT"
Sonst führt er den Timer auch aus wenn BM wahr, und die Variable wahr ist.
-
@cinimod super vielen herzlichen Dank für die ausführliche Erklärung und für den Bugfix
-
Kurze Frage... Bin hier schon am verzweifeln.
Wie kann ich per Befehl der Alexa sagen das sie meine "Lieblingssongs aus Spotify" abspielen soll?
Wenn ich es sage macht sie es. Nur weiß ich nicht wie ich den Trigger setzen kann.Mit "Your liked songs", "Lieblingssongs" sagt sie immer das sie die Playlist nicht finden kann.
Wenn ich den Befehl sende "Discover Weekly" beispielsweise funktioniert es einwandfrei.