NEWS
MPD-Client steuern mit Telegram
-
Ich muss noch einmal nachfragen: Hat keiner einer Idee?
-
@jwerlsdf
getState("mpd.0.play").val wird wohl immer "true", "false", oder "null" sein.Du baust in deinem Code eine Zeichenkette zusammen und es macht keinen Sinn den Status eines "Knopfes" da anzuhängen.
sendTo('telegram.0', { text: 'Welche Aktion des MPD-Clienten soll ausgeführt werden?', reply_markup: { keyboard: [ ['Lautstärke ' + getState("mpd.0.volume").val], [getState("mpd.0.play").val ? 'Stoppe Lied' : 'Starte Lied' ], ['Pausiere Lied'], ['Vorheriges Lied'], ['Nächstes Lied'], ['Menü', ''], ], resize_keyboard: true, one_time_keyboard: true } });
Das hier könnte eher praktikabel sein. Playlist hab ich keine Ahnung von
Ich gehe davon aus, das "mpd.0.play" true ist, wenn ein lied läuft und false wenn nicht.
EDIT: ich muß mir wohl mal den Adapter text2command installieren, wird das skript jedesmal ausgelöst wenn der adapter einen Befehl ausgeführt hat? -
@ticaki
vielen Dank. Damit werden schon einmal keine "null", "False" oder "true" angezeigt. Ich habe noch eine Frage zu folgender Zeile um den code verstehen zu können:[getState("mpd.0.play").val ? 'Stoppe Lied' : 'Starte Lied' ],
- Warum kommt da ein Fragezeichen rein?
- bezieht sich getState dann auch auf Stoppe Lied, Starte Lied? Ist der Doppelpunkt dann eine Aufzählung?
Ich habe noch ein Problem: "Pausiere Lied" hat keine Funktion. Habe mal ein screenshot von t2c und den Objekten eingefügt.
Folgender Fehler wird angezeigt:
(2754) client.sendCommand {"pause": ""} ERROR - Error: [2@0] {} Boolean (0/1) expected:
-
Wie schon geschrieben, ich benutzen den Adapter nicht, ich baue mir das bisher immer selbst, wenn ich es denn brauche.
[getState("mpd.0.play").val ? 'Stoppe Lied' : 'Starte Lied' ],
Das ? ist wie eine If funktion.
Also falls getState("play").val wahr ist, nutze 'Stoppe Lied' :(sonst) 'Starte Lied'.
Ich bin davon ausgegangen das dieses Script nach jeder Nutzung aufgerufen wird und mpd.0.play anzeigt ob gerade ein Lied läuft. Bei einem Button siehst du das nicht. Wenn es nicht funktioniert nutze['Starte Lied'], ['Stoppe Lied'],
zu dem 2. Punkt: ersetzt das %s in Pause mal durch true oder 1 eines von beiden sollte funktionieren. Im ersten Bild wären die Überschriften für mich hilfreich gewesen.
-
@ticaki
konnte erst jetzt testen. Leider bringt keiner der Eingaben Abhilfe. Telegram sagt: "Ich verstehe 'pausiere Lied' nicht"... Noch eine Idee, was ich anders einstellen könnte? -
@jwerlsdf
Ja.Volumen geht ja, das liegt daran das du einen Wert schreibst. Bei allem anderen Schreibst du aber keine "string" sondern schaltest etwas an oder aus. Versuche mal im text2command adapter play auf "schalte an/aus" und anstatt %s verwendest du true.
-
@ticaki
Pausiere Lied geht. Aber das Problem besteht, dass ich dann die Pause wieder aufheben muss. Wenn ich auf Play drücke, fängt er in der Playliste von vorne an. Wie kann ich also die Pause wieder aufheben? -
@jwerlsdf
Was passiert wenn du Pause in der Objektübersicht nochmal klickst, beendet das vielleicht die Pause? -
@ticaki
Kam jetzt erst zum testen.
Habe noch mal ein bisschen rumgespielt.
Wenn ich das Lied pausieren will muss ich folgende Einstellungen im t2c vornehmen:
Pausiere Lied: schalte Zustand (true)
Lied weiter: Schalte Zustand (false)
Geräte ID bei beiden: mpd.0.pauseKann ich im t2c auch true/ false in einem Befehl unterbringen oder muss ich so wie oben beschrieben die Werte in 2 Befehle trennen?
-
@jwerlsdf
Soweit ich weiß nicht direkt, dafür mußt du einen eigenen Datenpunkt erstellen und ein Blockly bauen das auf diesen Datenpunkt triggert und den Pause Datenpunkt umschaltet.