Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. MPD-Client steuern mit Telegram

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.5k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.7k

MPD-Client steuern mit Telegram

Geplant Angeheftet Gesperrt Verschoben JavaScript
11 Beiträge 2 Kommentatoren 483 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • J Offline
    J Offline
    jwerlsdf
    schrieb am zuletzt editiert von
    #1

    Hallo,
    ich möchte den MPD-Clienten über Telegram steuern:
    Dazu habe ich folgendes Skript angelegt:

    sendTo('telegram.0', {
        text:   'Welche Aktion des MPD-Clienten soll ausgeführt werden?',
        reply_markup: {
            keyboard: [
                ['Lautstärke ' + getState("mpd.0.volume").val],
                ['Starte Lied ' + getState("mpd.0.play").val],
                ['Stoppe Lied ' + getState("mpd.0.stop").val],
                ['Pausiere Lied ' + getState("mpd.0.pause").val],
                ['Vorheriges Lied ' + getState("mpd.0.previous").val],            
                ['Nächstes Lied ' + getState("mpd.0.next").val],            
                ['Menü', ''],
            ],
            resize_keyboard:   true,
            one_time_keyboard: true
        }
    });
    

    Das ganze habe ich dann mit text2command verknüpft.
    Die Lautstärke funktioniert ohne Probleme. Kann direkt die Prozentzahl eingeben und er schreibt auch den Wert rein.
    Bei den anderen Befehlen habe ich aber das Problem, dass hinter z.B. "Starte Lied true" oder "Starte Lied null" steht anstatt "Starte Lied".
    Kann mir diesbezüglich jemand helfen?
    Gäbe es noch die Möglichkeit, die aktuelle Playlist anzuzeigen und ein Lied direkt daraus zu starten?
    Vielen Dank für eure Hilfe.

    T 1 Antwort Letzte Antwort
    0
    • J Offline
      J Offline
      jwerlsdf
      schrieb am zuletzt editiert von
      #2

      Ich muss noch einmal nachfragen: Hat keiner einer Idee?

      1 Antwort Letzte Antwort
      0
      • J jwerlsdf

        Hallo,
        ich möchte den MPD-Clienten über Telegram steuern:
        Dazu habe ich folgendes Skript angelegt:

        sendTo('telegram.0', {
            text:   'Welche Aktion des MPD-Clienten soll ausgeführt werden?',
            reply_markup: {
                keyboard: [
                    ['Lautstärke ' + getState("mpd.0.volume").val],
                    ['Starte Lied ' + getState("mpd.0.play").val],
                    ['Stoppe Lied ' + getState("mpd.0.stop").val],
                    ['Pausiere Lied ' + getState("mpd.0.pause").val],
                    ['Vorheriges Lied ' + getState("mpd.0.previous").val],            
                    ['Nächstes Lied ' + getState("mpd.0.next").val],            
                    ['Menü', ''],
                ],
                resize_keyboard:   true,
                one_time_keyboard: true
            }
        });
        

        Das ganze habe ich dann mit text2command verknüpft.
        Die Lautstärke funktioniert ohne Probleme. Kann direkt die Prozentzahl eingeben und er schreibt auch den Wert rein.
        Bei den anderen Befehlen habe ich aber das Problem, dass hinter z.B. "Starte Lied true" oder "Starte Lied null" steht anstatt "Starte Lied".
        Kann mir diesbezüglich jemand helfen?
        Gäbe es noch die Möglichkeit, die aktuelle Playlist anzuzeigen und ein Lied direkt daraus zu starten?
        Vielen Dank für eure Hilfe.

        T Nicht stören
        T Nicht stören
        ticaki
        schrieb am zuletzt editiert von ticaki
        #3

        @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?

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        J 1 Antwort Letzte Antwort
        0
        • T ticaki

          @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?

          J Offline
          J Offline
          jwerlsdf
          schrieb am zuletzt editiert von jwerlsdf
          #4

          @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' ],
          
          1. Warum kommt da ein Fragezeichen rein?
          2. 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.
          1113d83a-229c-422c-b24d-a5e2c6d25118-grafik.png
          b8f2e46a-57a3-4cb8-9f64-3aff9429b682-grafik.png

          Folgender Fehler wird angezeigt:

          (2754) client.sendCommand {"pause": ""} ERROR - Error: [2@0] {} Boolean (0/1) expected:

          1 Antwort Letzte Antwort
          0
          • T Nicht stören
            T Nicht stören
            ticaki
            schrieb am zuletzt editiert von ticaki
            #5

            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. :)

            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

            Spenden

            J 1 Antwort Letzte Antwort
            0
            • T ticaki

              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. :)

              J Offline
              J Offline
              jwerlsdf
              schrieb am zuletzt editiert von
              #6

              @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?

              T 1 Antwort Letzte Antwort
              0
              • J jwerlsdf

                @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?

                T Nicht stören
                T Nicht stören
                ticaki
                schrieb am zuletzt editiert von ticaki
                #7

                @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.

                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                Spenden

                J 1 Antwort Letzte Antwort
                0
                • T ticaki

                  @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.

                  J Offline
                  J Offline
                  jwerlsdf
                  schrieb am zuletzt editiert von
                  #8

                  @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?

                  T 1 Antwort Letzte Antwort
                  0
                  • J jwerlsdf

                    @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?

                    T Nicht stören
                    T Nicht stören
                    ticaki
                    schrieb am zuletzt editiert von
                    #9

                    @jwerlsdf
                    Was passiert wenn du Pause in der Objektübersicht nochmal klickst, beendet das vielleicht die Pause?

                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                    Spenden

                    J 1 Antwort Letzte Antwort
                    0
                    • T ticaki

                      @jwerlsdf
                      Was passiert wenn du Pause in der Objektübersicht nochmal klickst, beendet das vielleicht die Pause?

                      J Offline
                      J Offline
                      jwerlsdf
                      schrieb am zuletzt editiert von
                      #10

                      @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.pause

                      Kann ich im t2c auch true/ false in einem Befehl unterbringen oder muss ich so wie oben beschrieben die Werte in 2 Befehle trennen?

                      T 1 Antwort Letzte Antwort
                      0
                      • J jwerlsdf

                        @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.pause

                        Kann ich im t2c auch true/ false in einem Befehl unterbringen oder muss ich so wie oben beschrieben die Werte in 2 Befehle trennen?

                        T Nicht stören
                        T Nicht stören
                        ticaki
                        schrieb am zuletzt editiert von
                        #11

                        @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.

                        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                        Spenden

                        1 Antwort Letzte Antwort
                        1
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        765

                        Online

                        32.4k

                        Benutzer

                        81.4k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe