Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. ioBroker Allgemein
  4. Mehrfachauslösung von Schalter: wo kommt's her?

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    793

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    6.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Mehrfachauslösung von Schalter: wo kommt's her?

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
zigbeetriggermehrfachdoppeltblocklyjavascriptexec
9 Beiträge 3 Kommentatoren 632 Aufrufe 3 Beobachtet
  • Ä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.
  • I Offline
    I Offline
    IobNordlicht
    schrieb am zuletzt editiert von
    #1

    Hi zusammen,

    ich hab hier einen vierfach Schalter mittels Zigbee, der an sich gut funktioniert.
    44322f27-e4cd-40bc-b024-925f01e0ac33-image.png
    Diesen möchte ich nutzen, um bestimmte MP3s lokal abzuspielen, um nicht mehr in's OG
    brüllen zu müssen 😁

    Leider löst aber irgendetwas mehrfach aus. Ich vermute, dass daher die Audioausgabe nicht geht?
    Außerdem bekomme ich vom Shellcommando den Output vermittels Variable result nicht geliefert, warum auch immer?

    Im folgenden Log habe ich Knopf#1 und #2 je einmal und dann doppelt gedrückt. Wie man sieht, wird es aber alles doppelt ausgelöst:

    2024-01-25 14:59:42.792  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/nice-alida.mp3
    2024-01-25 14:59:42.823  - warn: javascript.0 (101442) script.js.common.Schalter:
    2024-01-25 14:59:42.792  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/nice-alida.mp3
    2024-01-25 14:59:42.823  - warn: javascript.0 (101442) script.js.common.Schalter:
    2024-01-25 14:59:45.084  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/ang-alida.mp3
    2024-01-25 14:59:45.120  - warn: javascript.0 (101442) script.js.common.Schalter:
    2024-01-25 14:59:45.084  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/ang-alida.mp3
    2024-01-25 14:59:45.120  - warn: javascript.0 (101442) script.js.common.Schalter:
    2024-01-25 14:59:47.204  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/nice-mj.mp3
    2024-01-25 14:59:47.244  - warn: javascript.0 (101442) script.js.common.Schalter:
    2024-01-25 14:59:47.204  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/nice-mj.mp3
    2024-01-25 14:59:47.244  - warn: javascript.0 (101442) script.js.common.Schalter:
    2024-01-25 14:59:50.407  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/ang-mj.mp3
    2024-01-25 14:59:50.451  - warn: javascript.0 (101442) script.js.common.Schalter:
    2024-01-25 14:59:50.407  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/ang-mj.mp3
    2024-01-25 14:59:50.451  - warn: javascript.0 (101442) script.js.common.Schalter:
    

    Nach einiger Recherche habe ich ein paar Fehlerquellen ausgemerzt:

    • send_payload am Objekt ist "true"
    • Ich "höre" auf "true"

    Folgend das javascript aus blockly. Bitte nicht am überflüssigen "if" in Zeile 7 aufhalten, das ist nur der Optik im blockly halber:

    var arLinks, iIndex, sUrl, result;
    
    arLinks = ['nice-alida', 'nice-mj', 'nice-mama', 'nice-papa', 'ang-alida', 'ang-mj', 'einkaufen', 'fahren', 'essen', 'schlafen', 'gehen', 'maedels'];
    
    on({ id: [].concat(['alias.0.4fach_#1.1_single']).concat(['alias.0.4fach_#1.1_double']).concat(['alias.0.4fach_#1.1_hold']).concat(['alias.0.4fach_#1.2_single']).concat(['alias.0.4fach_#1.2_double']).concat(['alias.0.4fach_#1.2_hold']).concat(['alias.0.4fach_#1.3_single']).concat(['alias.0.4fach_#1.3_double']).concat(['alias.0.4fach_#1.3_hold']).concat(['alias.0.4fach_#1.4_single']).concat(['alias.0.4fach_#1.4_double']).concat(['alias.0.4fach_#1.4_hold']), val: true }, async (obj) => {
      iIndex = 0;
      if (true) {
        switch (true) {
          case (obj.common ? obj.common.name : "") == '1_single': iIndex = 1;break;
          case (obj.common ? obj.common.name : "") == '2_single': iIndex = 2;break;
          case (obj.common ? obj.common.name : "") == '3_single': iIndex = 3;break;
          case (obj.common ? obj.common.name : "") == '4_single': iIndex = 4;break;
          case (obj.common ? obj.common.name : "") == '1_double': iIndex = 5;break;
          case (obj.common ? obj.common.name : "") == '2_double': iIndex = 6;break;
          case (obj.common ? obj.common.name : "") == '3_double': iIndex = 7;break;
          case (obj.common ? obj.common.name : "") == '4_double': iIndex = 8;break;
          case (obj.common ? obj.common.name : "") == '1_hold': iIndex = 9;break;
          case (obj.common ? obj.common.name : "") == '2_hold': iIndex = 10;break;
          case (obj.common ? obj.common.name : "") == '3_hold': iIndex = 11;break;
          case (obj.common ? obj.common.name : "") == '4_hold': iIndex = 12;break;
        }
      }
      sUrl = ['/usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/',arLinks[(iIndex - 1)],'.mp3'].join('');
      exec(sUrl, async (error, result, stderr) => {
        console.warn(result);
      });
      console.warn("exec: " + sUrl);
    });
    

    b8066b10-7573-455a-a81c-42036e6436af-image.png

    Das ganze Thema Payload verstehe ich noch nicht, was ist das? Ein Rückgabewert bei Klick?

    Neugierige Grüße
    nordlicht

    CodierknechtC I 2 Antworten Letzte Antwort
    0
    • I IobNordlicht

      Hi zusammen,

      ich hab hier einen vierfach Schalter mittels Zigbee, der an sich gut funktioniert.
      44322f27-e4cd-40bc-b024-925f01e0ac33-image.png
      Diesen möchte ich nutzen, um bestimmte MP3s lokal abzuspielen, um nicht mehr in's OG
      brüllen zu müssen 😁

      Leider löst aber irgendetwas mehrfach aus. Ich vermute, dass daher die Audioausgabe nicht geht?
      Außerdem bekomme ich vom Shellcommando den Output vermittels Variable result nicht geliefert, warum auch immer?

      Im folgenden Log habe ich Knopf#1 und #2 je einmal und dann doppelt gedrückt. Wie man sieht, wird es aber alles doppelt ausgelöst:

      2024-01-25 14:59:42.792  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/nice-alida.mp3
      2024-01-25 14:59:42.823  - warn: javascript.0 (101442) script.js.common.Schalter:
      2024-01-25 14:59:42.792  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/nice-alida.mp3
      2024-01-25 14:59:42.823  - warn: javascript.0 (101442) script.js.common.Schalter:
      2024-01-25 14:59:45.084  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/ang-alida.mp3
      2024-01-25 14:59:45.120  - warn: javascript.0 (101442) script.js.common.Schalter:
      2024-01-25 14:59:45.084  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/ang-alida.mp3
      2024-01-25 14:59:45.120  - warn: javascript.0 (101442) script.js.common.Schalter:
      2024-01-25 14:59:47.204  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/nice-mj.mp3
      2024-01-25 14:59:47.244  - warn: javascript.0 (101442) script.js.common.Schalter:
      2024-01-25 14:59:47.204  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/nice-mj.mp3
      2024-01-25 14:59:47.244  - warn: javascript.0 (101442) script.js.common.Schalter:
      2024-01-25 14:59:50.407  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/ang-mj.mp3
      2024-01-25 14:59:50.451  - warn: javascript.0 (101442) script.js.common.Schalter:
      2024-01-25 14:59:50.407  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/ang-mj.mp3
      2024-01-25 14:59:50.451  - warn: javascript.0 (101442) script.js.common.Schalter:
      

      Nach einiger Recherche habe ich ein paar Fehlerquellen ausgemerzt:

      • send_payload am Objekt ist "true"
      • Ich "höre" auf "true"

      Folgend das javascript aus blockly. Bitte nicht am überflüssigen "if" in Zeile 7 aufhalten, das ist nur der Optik im blockly halber:

      var arLinks, iIndex, sUrl, result;
      
      arLinks = ['nice-alida', 'nice-mj', 'nice-mama', 'nice-papa', 'ang-alida', 'ang-mj', 'einkaufen', 'fahren', 'essen', 'schlafen', 'gehen', 'maedels'];
      
      on({ id: [].concat(['alias.0.4fach_#1.1_single']).concat(['alias.0.4fach_#1.1_double']).concat(['alias.0.4fach_#1.1_hold']).concat(['alias.0.4fach_#1.2_single']).concat(['alias.0.4fach_#1.2_double']).concat(['alias.0.4fach_#1.2_hold']).concat(['alias.0.4fach_#1.3_single']).concat(['alias.0.4fach_#1.3_double']).concat(['alias.0.4fach_#1.3_hold']).concat(['alias.0.4fach_#1.4_single']).concat(['alias.0.4fach_#1.4_double']).concat(['alias.0.4fach_#1.4_hold']), val: true }, async (obj) => {
        iIndex = 0;
        if (true) {
          switch (true) {
            case (obj.common ? obj.common.name : "") == '1_single': iIndex = 1;break;
            case (obj.common ? obj.common.name : "") == '2_single': iIndex = 2;break;
            case (obj.common ? obj.common.name : "") == '3_single': iIndex = 3;break;
            case (obj.common ? obj.common.name : "") == '4_single': iIndex = 4;break;
            case (obj.common ? obj.common.name : "") == '1_double': iIndex = 5;break;
            case (obj.common ? obj.common.name : "") == '2_double': iIndex = 6;break;
            case (obj.common ? obj.common.name : "") == '3_double': iIndex = 7;break;
            case (obj.common ? obj.common.name : "") == '4_double': iIndex = 8;break;
            case (obj.common ? obj.common.name : "") == '1_hold': iIndex = 9;break;
            case (obj.common ? obj.common.name : "") == '2_hold': iIndex = 10;break;
            case (obj.common ? obj.common.name : "") == '3_hold': iIndex = 11;break;
            case (obj.common ? obj.common.name : "") == '4_hold': iIndex = 12;break;
          }
        }
        sUrl = ['/usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/',arLinks[(iIndex - 1)],'.mp3'].join('');
        exec(sUrl, async (error, result, stderr) => {
          console.warn(result);
        });
        console.warn("exec: " + sUrl);
      });
      

      b8066b10-7573-455a-a81c-42036e6436af-image.png

      Das ganze Thema Payload verstehe ich noch nicht, was ist das? Ein Rückgabewert bei Klick?

      Neugierige Grüße
      nordlicht

      CodierknechtC Online
      CodierknechtC Online
      Codierknecht
      Developer Most Active
      schrieb am zuletzt editiert von Codierknecht
      #2

      @iobnordlicht
      Super - den interessanten Teil hast Du weggeschnitten.

      Was soll ein switch(true) machen?
      true ist und bleibt true - da switcht nix.

      Kann man zwar auch so einsetzen, liest sich aber kacke.

      Versuch's mal so:

      308f90c6-fe22-4b49-b594-efd4894a7c45-image.png

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      I 1 Antwort Letzte Antwort
      0
      • CodierknechtC Codierknecht

        @iobnordlicht
        Super - den interessanten Teil hast Du weggeschnitten.

        Was soll ein switch(true) machen?
        true ist und bleibt true - da switcht nix.

        Kann man zwar auch so einsetzen, liest sich aber kacke.

        Versuch's mal so:

        308f90c6-fe22-4b49-b594-efd4894a7c45-image.png

        I Offline
        I Offline
        IobNordlicht
        schrieb am zuletzt editiert von
        #3

        @codierknecht sagte in Mehrfachauslösung von Schalter: wo kommt's her?:

        @iobnordlicht
        Super - den interessanten Teil hast Du weggeschnitten.

        Was soll ein switch(true) machen?
        true ist und bleibt true - da switcht nix.

        Kann man zwar auch so einsetzen, liest sich aber kacke.

        Versuch's mal so:

        308f90c6-fe22-4b49-b594-efd4894a7c45-image.png

        Stimmt, das habe ich zu kompliziert gedacht. Sollte aber trotzdem gehen, oder nicht?
        Ich teste das gleich mal morgen und mach es clean...

        1 Antwort Letzte Antwort
        0
        • I IobNordlicht

          Hi zusammen,

          ich hab hier einen vierfach Schalter mittels Zigbee, der an sich gut funktioniert.
          44322f27-e4cd-40bc-b024-925f01e0ac33-image.png
          Diesen möchte ich nutzen, um bestimmte MP3s lokal abzuspielen, um nicht mehr in's OG
          brüllen zu müssen 😁

          Leider löst aber irgendetwas mehrfach aus. Ich vermute, dass daher die Audioausgabe nicht geht?
          Außerdem bekomme ich vom Shellcommando den Output vermittels Variable result nicht geliefert, warum auch immer?

          Im folgenden Log habe ich Knopf#1 und #2 je einmal und dann doppelt gedrückt. Wie man sieht, wird es aber alles doppelt ausgelöst:

          2024-01-25 14:59:42.792  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/nice-alida.mp3
          2024-01-25 14:59:42.823  - warn: javascript.0 (101442) script.js.common.Schalter:
          2024-01-25 14:59:42.792  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/nice-alida.mp3
          2024-01-25 14:59:42.823  - warn: javascript.0 (101442) script.js.common.Schalter:
          2024-01-25 14:59:45.084  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/ang-alida.mp3
          2024-01-25 14:59:45.120  - warn: javascript.0 (101442) script.js.common.Schalter:
          2024-01-25 14:59:45.084  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/ang-alida.mp3
          2024-01-25 14:59:45.120  - warn: javascript.0 (101442) script.js.common.Schalter:
          2024-01-25 14:59:47.204  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/nice-mj.mp3
          2024-01-25 14:59:47.244  - warn: javascript.0 (101442) script.js.common.Schalter:
          2024-01-25 14:59:47.204  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/nice-mj.mp3
          2024-01-25 14:59:47.244  - warn: javascript.0 (101442) script.js.common.Schalter:
          2024-01-25 14:59:50.407  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/ang-mj.mp3
          2024-01-25 14:59:50.451  - warn: javascript.0 (101442) script.js.common.Schalter:
          2024-01-25 14:59:50.407  - info: javascript.0 (101442) script.js.common.Schalter: exec: /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/ang-mj.mp3
          2024-01-25 14:59:50.451  - warn: javascript.0 (101442) script.js.common.Schalter:
          

          Nach einiger Recherche habe ich ein paar Fehlerquellen ausgemerzt:

          • send_payload am Objekt ist "true"
          • Ich "höre" auf "true"

          Folgend das javascript aus blockly. Bitte nicht am überflüssigen "if" in Zeile 7 aufhalten, das ist nur der Optik im blockly halber:

          var arLinks, iIndex, sUrl, result;
          
          arLinks = ['nice-alida', 'nice-mj', 'nice-mama', 'nice-papa', 'ang-alida', 'ang-mj', 'einkaufen', 'fahren', 'essen', 'schlafen', 'gehen', 'maedels'];
          
          on({ id: [].concat(['alias.0.4fach_#1.1_single']).concat(['alias.0.4fach_#1.1_double']).concat(['alias.0.4fach_#1.1_hold']).concat(['alias.0.4fach_#1.2_single']).concat(['alias.0.4fach_#1.2_double']).concat(['alias.0.4fach_#1.2_hold']).concat(['alias.0.4fach_#1.3_single']).concat(['alias.0.4fach_#1.3_double']).concat(['alias.0.4fach_#1.3_hold']).concat(['alias.0.4fach_#1.4_single']).concat(['alias.0.4fach_#1.4_double']).concat(['alias.0.4fach_#1.4_hold']), val: true }, async (obj) => {
            iIndex = 0;
            if (true) {
              switch (true) {
                case (obj.common ? obj.common.name : "") == '1_single': iIndex = 1;break;
                case (obj.common ? obj.common.name : "") == '2_single': iIndex = 2;break;
                case (obj.common ? obj.common.name : "") == '3_single': iIndex = 3;break;
                case (obj.common ? obj.common.name : "") == '4_single': iIndex = 4;break;
                case (obj.common ? obj.common.name : "") == '1_double': iIndex = 5;break;
                case (obj.common ? obj.common.name : "") == '2_double': iIndex = 6;break;
                case (obj.common ? obj.common.name : "") == '3_double': iIndex = 7;break;
                case (obj.common ? obj.common.name : "") == '4_double': iIndex = 8;break;
                case (obj.common ? obj.common.name : "") == '1_hold': iIndex = 9;break;
                case (obj.common ? obj.common.name : "") == '2_hold': iIndex = 10;break;
                case (obj.common ? obj.common.name : "") == '3_hold': iIndex = 11;break;
                case (obj.common ? obj.common.name : "") == '4_hold': iIndex = 12;break;
              }
            }
            sUrl = ['/usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/',arLinks[(iIndex - 1)],'.mp3'].join('');
            exec(sUrl, async (error, result, stderr) => {
              console.warn(result);
            });
            console.warn("exec: " + sUrl);
          });
          

          b8066b10-7573-455a-a81c-42036e6436af-image.png

          Das ganze Thema Payload verstehe ich noch nicht, was ist das? Ein Rückgabewert bei Klick?

          Neugierige Grüße
          nordlicht

          I Offline
          I Offline
          IobNordlicht
          schrieb am zuletzt editiert von
          #4

          Wie zu erwarten, die Verzweigungslogik war umständlich, aber funktionierte ja bereits.
          Interessanterweise ist dadurch aber trotzdem mein erstes Problem gelöst, keine Doppelauslösung, warum auch immer...

          Also zurück zu den weiteren Fragen:

          @iobnordlicht sagte in Mehrfachauslösung von Schalter: wo kommt's her?:

          Außerdem bekomme ich vom Shellcommando den Output vermittels Variable result nicht geliefert, warum auch immer?
          [..]
          Das ganze Thema Payload verstehe ich noch nicht, was ist das? Ein Rückgabewert bei Klick?

          Könnt ihr mir hier bittte weiterhelfen?

          CodierknechtC 1 Antwort Letzte Antwort
          0
          • I IobNordlicht

            Wie zu erwarten, die Verzweigungslogik war umständlich, aber funktionierte ja bereits.
            Interessanterweise ist dadurch aber trotzdem mein erstes Problem gelöst, keine Doppelauslösung, warum auch immer...

            Also zurück zu den weiteren Fragen:

            @iobnordlicht sagte in Mehrfachauslösung von Schalter: wo kommt's her?:

            Außerdem bekomme ich vom Shellcommando den Output vermittels Variable result nicht geliefert, warum auch immer?
            [..]
            Das ganze Thema Payload verstehe ich noch nicht, was ist das? Ein Rückgabewert bei Klick?

            Könnt ihr mir hier bittte weiterhelfen?

            CodierknechtC Online
            CodierknechtC Online
            Codierknecht
            Developer Most Active
            schrieb am zuletzt editiert von
            #5

            @iobnordlicht sagte in Mehrfachauslösung von Schalter: wo kommt's her?:

            Das ganze Thema Payload verstehe ich noch nicht, was ist das? Ein Rückgabewert bei Klick?

            Das kommt auf das jeweilige Gerät an.
            Das kann etwas sein was das Gerät Dir mitteilen will oder auch etwas, was an das Gerät gesendet wird.
            Oft als JSON. Wie das dann genau aufzubauen ist, ist von Gerät zu Gerät unterschiedlich.

            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
            HmIP|ZigBee|Tasmota|Unifi
            Zabbix Certified Specialist
            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

            I 1 Antwort Letzte Antwort
            0
            • CodierknechtC Codierknecht

              @iobnordlicht sagte in Mehrfachauslösung von Schalter: wo kommt's her?:

              Das ganze Thema Payload verstehe ich noch nicht, was ist das? Ein Rückgabewert bei Klick?

              Das kommt auf das jeweilige Gerät an.
              Das kann etwas sein was das Gerät Dir mitteilen will oder auch etwas, was an das Gerät gesendet wird.
              Oft als JSON. Wie das dann genau aufzubauen ist, ist von Gerät zu Gerät unterschiedlich.

              I Offline
              I Offline
              IobNordlicht
              schrieb am zuletzt editiert von
              #6

              Ok, also doch nicht so einfach 😄

              Verbleibt noch das eigentliche Problem:
              Warum löst das Kommando nicht aus und warum bekomme ich kein Output von der Ausführung, bzw. einen Fehler?

              AsgothianA 1 Antwort Letzte Antwort
              0
              • I IobNordlicht

                Ok, also doch nicht so einfach 😄

                Verbleibt noch das eigentliche Problem:
                Warum löst das Kommando nicht aus und warum bekomme ich kein Output von der Ausführung, bzw. einen Fehler?

                AsgothianA Offline
                AsgothianA Offline
                Asgothian
                Developer
                schrieb am zuletzt editiert von Asgothian
                #7

                @iobnordlicht sagte in Mehrfachauslösung von Schalter: wo kommt's her?:

                Verbleibt noch das eigentliche Problem:
                Warum löst das Kommando nicht aus und warum bekomme ich kein Output von der Ausführung, bzw. einen Fehler?

                Hast du mal geschaut ob am Zigbee Adapter (davon ist anscheinend die Kachel in deinem 1. Post) eine Reaktion kommt, so das der Trigger überhaupt aktiv wird ?

                Das mit dem Payload wird nur erklärbar wenn du mal mehr dazu zeigst.

                A.

                Nachtrag: Du lässt dir nur den "result" ausgeben. ggf. hat der Befehl aber gar keine text-ausgebe als result, oder bringt sogar einen Fehler ?

                Was passiert wenn du z.Bsp. /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/ang-mj.mp3 in der Konsole des ioBroker Rechners ausführst ?

                Ansonsten solltest du ggf. auch die variable error und stderr mal mit loggen.

                ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                I 1 Antwort Letzte Antwort
                0
                • AsgothianA Asgothian

                  @iobnordlicht sagte in Mehrfachauslösung von Schalter: wo kommt's her?:

                  Verbleibt noch das eigentliche Problem:
                  Warum löst das Kommando nicht aus und warum bekomme ich kein Output von der Ausführung, bzw. einen Fehler?

                  Hast du mal geschaut ob am Zigbee Adapter (davon ist anscheinend die Kachel in deinem 1. Post) eine Reaktion kommt, so das der Trigger überhaupt aktiv wird ?

                  Das mit dem Payload wird nur erklärbar wenn du mal mehr dazu zeigst.

                  A.

                  Nachtrag: Du lässt dir nur den "result" ausgeben. ggf. hat der Befehl aber gar keine text-ausgebe als result, oder bringt sogar einen Fehler ?

                  Was passiert wenn du z.Bsp. /usr/bin/mpg321 http://iobroker:8082/vis.0/FR/Audio/ang-mj.mp3 in der Konsole des ioBroker Rechners ausführst ?

                  Ansonsten solltest du ggf. auch die variable error und stderr mal mit loggen.

                  I Offline
                  I Offline
                  IobNordlicht
                  schrieb am zuletzt editiert von
                  #8

                  @asgothian
                  Danke dir, bin jetzt heute noch mal sehr viel weiter gekommen:

                  Ich habe nun mplayer verwendet, um mehr Ausgaben zu provozieren. ICh kann nun sehen, dass der Befehl aufgerufen wird, jedoch scheitert er, weil angeblich das Ausgabegerät belegt sei:

                  CommandLine: '-vo' 'null' '-v' '/opt/iobroker/vis.0/FR/Audio/gehen.mp3'
                  
                  Playing /opt/iobroker/vis.0/FR/Audio/gehen.mp3. get_path('sub/') -> '/opt/iobroker/.mplayer/sub/' [file] File size is 45292 bytes 
                  
                  STREAM: [file] /opt/iobroker/vis.0/FR/Audio/gehen.mp3
                  STREAM: Description: File
                  STREAM: Author: Albeu
                  libavformat version 58.76.100 (external)
                  Trying demuxer 17 based on filename extension ==> Found audio stream: 0 demux_audio: seeking from 0xB0E6 to start pos 0xAC demux_audio: audio data 0xAC - 0xB0EC Audio only file format detected.
                  Load subtitles in /opt/iobroker/vis.0/FR/Audio/ get_path('sub/') -> '/opt/iobroker/.mplayer/sub/'
                  ==========================================================================
                  Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III dec_audio: Allocating 8192 + 131072 = 139264 bytes for output buffer. MPEG 1.0 layer III, VBR, 48000 Hz joint-stereo AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000) Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III) ==========================================================================
                  Building audio filter chain for 48000Hz/2ch/s16le -> 0Hz/0ch/??... 
                  [libaf] Adding filter dummy 
                  [dummy] Was reinitialized: 48000Hz/2ch/s16le 
                  [dummy] Was reinitialized: 48000Hz/2ch/s16le 
                  Trying preferred audio driver 'pulse', options '[none]'
                  Trying preferred audio driver 'alsa', options '[none]'
                    alsa-init: requested format: 48000 Hz, 2 channels, 9
                    alsa-init: using ALSA 1.2.6.1 
                    alsa-init: setup for 1/2 channel(s) 
                    alsa-init: using device default 
                    alsa-init: opening device in blocking mode 
                  Trying preferred audio driver 'sdl', options 'aalib' 
                    [AO SDL] Samplerate: 48000Hz Channels: Stereo Format s16le 
                    [AO SDL] using aalib audio driver. Uninit audio filters... 
                  [libaf] Removing filter dummy Uninit 
                  audio: mpg123 
                  Audio: no sound Freeing 0 unused audio chunks. 
                  Video: no video Freeing 0 unused video chunks. 
                  vo: x11 uninit called but X11 not initialized.. Exiting... (End of file) 
                  
                  stderr=
                    do_connect: could not connect to socket 
                    connect: No such file or directory Failed to open LIRC support. You will not be able to use your remote control. 
                    AO: 
                    [pulse] Init failed: Connection refused Failed to initialize audio driver 'pulse' 
                    [AO_ALSA] alsa-lib: pcm_hw.c:1716:(snd_pcm_hw_open) open '/dev/snd/pcmC0D0p' failed (-16): Device or resource busy 
                    [AO_ALSA] alsa-lib: pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave 
                    [AO_ALSA] Playback open error: Device or resource busy Failed to initialize audio driver 'alsa' 
                    [AO SDL] Unable to open audio: No available audio device Failed to initialize audio driver 'sdl:aalib' Could not open/initialize audio device -> no sound.
                  

                  Lustig ist, dass ich als eingeloggter User iobroker überhaupt keine Schwierigkeiten mit exakt dem gleichen Befehl habe?

                  Der User und die Gruppen passt auch:
                  aa8d7204-a2c7-4b99-b808-185c67e086cd-image.png

                  Und bitte geflissentlich jetztet die Gruppe sudo ignorieren, hat wohlüberlegte debugging Gründe, wie z.B. genau jetzt.

                  Warum gibt es einen Unterschied zwischen der Ausführung in exec und lokaler user shell? Beide laufen unter dem gleichen User, den gleichen Gruppen...

                  I 1 Antwort Letzte Antwort
                  0
                  • I IobNordlicht

                    @asgothian
                    Danke dir, bin jetzt heute noch mal sehr viel weiter gekommen:

                    Ich habe nun mplayer verwendet, um mehr Ausgaben zu provozieren. ICh kann nun sehen, dass der Befehl aufgerufen wird, jedoch scheitert er, weil angeblich das Ausgabegerät belegt sei:

                    CommandLine: '-vo' 'null' '-v' '/opt/iobroker/vis.0/FR/Audio/gehen.mp3'
                    
                    Playing /opt/iobroker/vis.0/FR/Audio/gehen.mp3. get_path('sub/') -> '/opt/iobroker/.mplayer/sub/' [file] File size is 45292 bytes 
                    
                    STREAM: [file] /opt/iobroker/vis.0/FR/Audio/gehen.mp3
                    STREAM: Description: File
                    STREAM: Author: Albeu
                    libavformat version 58.76.100 (external)
                    Trying demuxer 17 based on filename extension ==> Found audio stream: 0 demux_audio: seeking from 0xB0E6 to start pos 0xAC demux_audio: audio data 0xAC - 0xB0EC Audio only file format detected.
                    Load subtitles in /opt/iobroker/vis.0/FR/Audio/ get_path('sub/') -> '/opt/iobroker/.mplayer/sub/'
                    ==========================================================================
                    Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III dec_audio: Allocating 8192 + 131072 = 139264 bytes for output buffer. MPEG 1.0 layer III, VBR, 48000 Hz joint-stereo AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000) Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III) ==========================================================================
                    Building audio filter chain for 48000Hz/2ch/s16le -> 0Hz/0ch/??... 
                    [libaf] Adding filter dummy 
                    [dummy] Was reinitialized: 48000Hz/2ch/s16le 
                    [dummy] Was reinitialized: 48000Hz/2ch/s16le 
                    Trying preferred audio driver 'pulse', options '[none]'
                    Trying preferred audio driver 'alsa', options '[none]'
                      alsa-init: requested format: 48000 Hz, 2 channels, 9
                      alsa-init: using ALSA 1.2.6.1 
                      alsa-init: setup for 1/2 channel(s) 
                      alsa-init: using device default 
                      alsa-init: opening device in blocking mode 
                    Trying preferred audio driver 'sdl', options 'aalib' 
                      [AO SDL] Samplerate: 48000Hz Channels: Stereo Format s16le 
                      [AO SDL] using aalib audio driver. Uninit audio filters... 
                    [libaf] Removing filter dummy Uninit 
                    audio: mpg123 
                    Audio: no sound Freeing 0 unused audio chunks. 
                    Video: no video Freeing 0 unused video chunks. 
                    vo: x11 uninit called but X11 not initialized.. Exiting... (End of file) 
                    
                    stderr=
                      do_connect: could not connect to socket 
                      connect: No such file or directory Failed to open LIRC support. You will not be able to use your remote control. 
                      AO: 
                      [pulse] Init failed: Connection refused Failed to initialize audio driver 'pulse' 
                      [AO_ALSA] alsa-lib: pcm_hw.c:1716:(snd_pcm_hw_open) open '/dev/snd/pcmC0D0p' failed (-16): Device or resource busy 
                      [AO_ALSA] alsa-lib: pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave 
                      [AO_ALSA] Playback open error: Device or resource busy Failed to initialize audio driver 'alsa' 
                      [AO SDL] Unable to open audio: No available audio device Failed to initialize audio driver 'sdl:aalib' Could not open/initialize audio device -> no sound.
                    

                    Lustig ist, dass ich als eingeloggter User iobroker überhaupt keine Schwierigkeiten mit exakt dem gleichen Befehl habe?

                    Der User und die Gruppen passt auch:
                    aa8d7204-a2c7-4b99-b808-185c67e086cd-image.png

                    Und bitte geflissentlich jetztet die Gruppe sudo ignorieren, hat wohlüberlegte debugging Gründe, wie z.B. genau jetzt.

                    Warum gibt es einen Unterschied zwischen der Ausführung in exec und lokaler user shell? Beide laufen unter dem gleichen User, den gleichen Gruppen...

                    I Offline
                    I Offline
                    IobNordlicht
                    schrieb am zuletzt editiert von
                    #9

                    ..und wieder etwas gelernt, irgendwie kommen sich ALSA und Pulseaudio server in die Quere... Ok, ich denke, damit ist es zwar nicht gelöst, aber das Thema des Threads passt nimmer.

                    1 Antwort Letzte Antwort
                    0

                    Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                    Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                    Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                    Registrieren Anmelden
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate
                    FAQ Cloud / IOT
                    HowTo: Node.js-Update
                    HowTo: Backup/Restore
                    Downloads
                    BLOG

                    554

                    Online

                    32.8k

                    Benutzer

                    82.7k

                    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