NEWS
Alexa Playlist per Script
-
Hallo zusammen,
ich möchte eine Alexa Playlist per Script starten.
Dazu habe ich einen neuen DP angelegt und wollte über eine Funktion, in der mein
Script liegt, die Ausführung des Scrip triggern.
Bekomme ich aber irgendwie nicht hin.
Folgende Vorlage wollte ich verwenden:function script1() { Hier das bisherige Skript rein } on({id: 'javascript.0.VisDatenpunkt', val: 1}, script1); // Triggert auf Wert 1
So sieht dann mein Script aus: (DeviceID ersetzt):
function script1() {</pre> <div> <div>setState('alexa2.0.Echo-Devices.<DeviceId>.Music-Provider.Amazon-Music-Playlist', 'Spiele Playlist Thorsten' );</div> <div>setState('alexa2.0.Echo-Devices.<DeviceId>.Player.volume', 30 );</div> </div> <pre> } on({id: '0_userdata.0.Datenpunkte.ScriptPlaylistThorsten', val: 1}, script1); // Triggert auf Wert 1
Läuft immer auf Fehler...
Wo habe ich meinen Fehler?Bestimmt irgend etwas doofes, aber habt Nachsicht, bin Anfänger...
Danke
Thorsten
-
@lucajordi hi was sollen denn die HTML Tags im Javascript?
Was genau ist denn der Fehler? -
@ronny-gerndt
Hi Ronny,ich habe dieses Script gefunden, um eine Amazon Playlist zu starten.
{</pre> <div> <div>setState('alexa2.0.Echo-Devices.<DeviceId>.Music-Provider.Amazon-Music-Playlist', 'Spiele Playlist Thorsten' );</div> <div>setState('alexa2.0.Echo-Devices.<DeviceId>.Player.volume', 30 );</div> </div> <pre>
Das Script alleine funktioniert auch, aber da ja empfohlen wird, Scripte über einen Datenpunkt zu triggern, wollte
ich dieses Script in eine Funktion packen und die Ausführung triggern.Vielleicht wähle ich auch den vollkommen falschen Ansatz oder ein falsches Script...
Bin für jeden schubs in die richtige Richtung dankbar...
Mod-Edit: Code in </> Code-Tag gepackt!
-
@lucajordi Du schreibst das es immer auf Fehler läuft, was genau für einen Fehler bekommst du denn?
-
-
@lucajordi schmeiß Mal die HTML Tags raus. Also die Dinger in den <>.
-
So dann:
function script1() { setState('alexa2.0.Echo-Devices.<DeviceId>.Music-Provider.Amazon-Music-Playlist', 'Spiele Playlist Thorsten' ); setState('alexa2.0.Echo-Devices.<DeviceId>.Player.volume', 30 ); } on({id: '0_userdata.0.Datenpunkte.ScriptPlaylistThorsten', val: 1}, script1); // Triggert auf Wert 1
-
Und bei <deviceid> musste natürlich aus dem AlexaAdapter die GeräteID abschreiben und für <deviceid> einfügen
-
@haselchen
Das ist klar... -
@ronny-gerndt
Script läuft, kann auch manuell gestartet werden.
Aber die Funktion schaffts irgendwie nicht...
Wert des DP wird von false auf true gesetzt, aber keine Playlist startet... -
@lucajordi Versuch Mal in dem on statt Val: 1 auf Val: true zu warten.
-
@ronny-gerndt
Das ist das script welches läuft:setState('alexa2.0.Echo-Devices.G090LF1180360GTN.Music-Provider.Amazon-Music-Playlist', 'Spiele Playlist Thorsten' ); setState('alexa2.0.Echo-Devices.G090LF1180360GTN.Player.volume', 25 );
Und hier die Funktion: (geändert in true)
function script1() { setState('alexa2.0.Echo-Devices.G090LF1180360GTN.Music-Provider.Amazon-Music-Playlist', 'Spiele Playlist Thorsten' ); setState('alexa2.0.Echo-Devices.G090LF1180360GTN.Player.volume', 30 );} on({id: '0_userdata.0.Datenpunkte.ScriptPlaylistThorsten', val: true}, script1); // Triggert auf Wert 1
Aber geht noch nicht...
-
Warum löst du das Ganze nicht über ein Blockly?
Vermutlich auch einfacher , auch visuell.Ich sehe in deinem Script auch irgendwie keinen Auslöser (Trigger) ?!
Quasi wenn dies .....dann passiert das.... -
Kommando zurück:
Doofheit wird bestraft:
Der Datenpunkt stand noch auf false!
Danke für deine Hilfe und Geduld!
-
Ende gut, Alles gut
-
@lucajordi Das on triggert auch nur auf Zustandsänderungen. Also wenn dein Script startet und der Wert bereits true ist dann passiert nichts. Je nachdem wie der Wert gesetzt wird solltest du in deiner Funktion noch ein setstate für deinen trigger zurück auf false machen.
-
@ronny-gerndt
Danke, das ist jetzt der nächste Schritt... -
@ronny-gerndt
kann ich da einfach noch ein zweites State Kommando einfügen, oder muss ich eine "wait time" oder
so etwas definieren? -
@lucajordi normal sollte das gehen. Was willst du denn setzen?
-
@ronny-gerndt
Möchte den State wieder auf False zurück setzen, damit ein erneuter Aufruf funktioniert...