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. Node-Red
  5. [gelöst] Elgato Stream-Deck mit Node-Red auswerten

NEWS

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

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

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

[gelöst] Elgato Stream-Deck mit Node-Red auswerten

Geplant Angeheftet Gesperrt Verschoben Node-Red
7 Beiträge 3 Kommentatoren 654 Aufrufe 2 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.
  • DolomitiD Offline
    DolomitiD Offline
    Dolomiti
    schrieb am zuletzt editiert von Dolomiti
    #1

    Hallo Zusammen,

    ich habe mein Stream-Deck an eine VM durchgereicht, da das USB durchreichen in einen LXC nicht funktioniert hat. Das ist aber ein anderes Thema.
    Jetzt versuche ich in Node-Red meine ersten Gehversuche und habe folgendes Problem:

    In Node-Red habe ich das zusätzliche Modul "node-red-contrib-streamdeck" installiert und ich habe zwei neue Nodes "Streamdeck in" und "Streamdeck out". Jetzt wollte ich das ganze an meinen MQTT schicken. und habe dazu einen MQTT-in-Node verwendet.
    flow.png "Streamdeck in" stellt folgendes zur Verfügung was man auch an der Debug-Ausgabe sehen kann. Topic ist die Taste, Payload 1=gedrückt, 0=losgelassen.
    Streamdeckinhelp.png debug1.png
    Leider beschwert sich MQTT über ein fehlendes Topic. Ich habe das so verstanden, dass das Topic vom Streamdeck einfach als Topic an MQTT weitergericht wird wenn man das Topic bei MQTT leer läßt.topicleer.png

    Kann ich das Topic aus der Meldung irgendwie extrahieren, da hier drin die gedrückte Taste enthalten ist. Dann würde ich diese gerne zu einem MQTT-Topic zusammen bauen um so etwas zu haben: "Streamdeck/Taste/Tastennummer", wobei Tastenummer dann das ursprüngliche Stream-Deck-Topic sein soll und der Payload der ursprüngliche.

    Gruß

    Dolomiti

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
    Intel N100 (32GB,256GB SSD), Proxmox -> Debian 12 in VM (Master) + Debian 12 in CT (Test) + Debmatic, HM-Aktoren, Wago 750-880, Shelly, Zigbee

    BananaJoeB 1 Antwort Letzte Antwort
    0
    • BananaJoeB Online
      BananaJoeB Online
      BananaJoe
      Most Active
      schrieb am zuletzt editiert von
      #2

      Um das Pferd mal anders herum aufzuzäumen: Also ich habe bei mir die Stream-Deck Software installiert und "sende" die Tastdrücke per SimpleAPI-Aufrufe, z.B. um Geräte ein oder auszuschalten oder um mir die Live-Daten von Datenpunkten auf den Buttons anzuzeigen.
      Der Weg wäre jetzt vermutlich keine Option?

      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

      1 Antwort Letzte Antwort
      1
      • DolomitiD Dolomiti

        Hallo Zusammen,

        ich habe mein Stream-Deck an eine VM durchgereicht, da das USB durchreichen in einen LXC nicht funktioniert hat. Das ist aber ein anderes Thema.
        Jetzt versuche ich in Node-Red meine ersten Gehversuche und habe folgendes Problem:

        In Node-Red habe ich das zusätzliche Modul "node-red-contrib-streamdeck" installiert und ich habe zwei neue Nodes "Streamdeck in" und "Streamdeck out". Jetzt wollte ich das ganze an meinen MQTT schicken. und habe dazu einen MQTT-in-Node verwendet.
        flow.png "Streamdeck in" stellt folgendes zur Verfügung was man auch an der Debug-Ausgabe sehen kann. Topic ist die Taste, Payload 1=gedrückt, 0=losgelassen.
        Streamdeckinhelp.png debug1.png
        Leider beschwert sich MQTT über ein fehlendes Topic. Ich habe das so verstanden, dass das Topic vom Streamdeck einfach als Topic an MQTT weitergericht wird wenn man das Topic bei MQTT leer läßt.topicleer.png

        Kann ich das Topic aus der Meldung irgendwie extrahieren, da hier drin die gedrückte Taste enthalten ist. Dann würde ich diese gerne zu einem MQTT-Topic zusammen bauen um so etwas zu haben: "Streamdeck/Taste/Tastennummer", wobei Tastenummer dann das ursprüngliche Stream-Deck-Topic sein soll und der Payload der ursprüngliche.

        Gruß

        Dolomiti

        BananaJoeB Online
        BananaJoeB Online
        BananaJoe
        Most Active
        schrieb am zuletzt editiert von
        #3

        @dolomiti Nachtrag: Topic ist "Datenpunkt" in MQTT wohin die Daten sollen. Wie im gelben Kasten steht musst du entweder eines angeben (tipp einfach ein Wort ein oder - wenn du Ordner verwenden willst, wort1/wort2 usw.)

        Oder du musst es die msg-Eigenschaften festlegen

        ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

        1 Antwort Letzte Antwort
        1
        • mickymM Offline
          mickymM Offline
          mickym
          Most Active
          schrieb am zuletzt editiert von mickym
          #4

          das ist eine mqtt-out node und keine mqtt-in node. und topic ist das mqtt-topic wohin es gepublished werden soll.

          sprich du musst halt in das topic feld eintragen:
          Streamdeck/Taste/Tastennummer

          das jetzige topic heißt 5 und ist eine zahl und keine zeichenkette. also trage einfach das topic korrekt ein.

          du kannst auch mit einer Change-node das topic dynamisch festlegen. in dem du das topic dynamisch festlegst, also mit JSONATA.

          "Streamdeck/Taste/" & topic
          

          damit wird die Zahl 5 als String an das Topic angehängt. in diesem Fall lässt du das topic Feld tatsächlich frei und erszeugst das mqtt-topic dynamisch.
          Das geht natürlich auch mit der iobroker-out Node so. Im nächsten Post mache ich aus Deinem geposteten Nachrichtenobjekt einen Flow mit dem topic 5 und einer payload 1.

          @BananaJoe du willst doch nicht die simpleAPI mit den Möglichkeiten von NodeRed als Alternative vorschlagen?

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          1 Antwort Letzte Antwort
          1
          • mickymM Offline
            mickymM Offline
            mickym
            Most Active
            schrieb am zuletzt editiert von mickym
            #5

            Hier mal zur Veranschaulichung:

            d7effeb8-f16b-4fcc-a5ef-2815f057b832-image.png

            Im ersten Debug siehst Du das Nachrichtenobjekt, sowie es Deine Node ausspukt also topic=5 und die payload=1.

            Nun verwandelst Du das topic mit der Zahl 5 mit einer Change Node entweder in ein gültiges mqtt topic (2. Debug ausgabe)

            ac12ee0f-0c22-4829-b1f7-d53f02dfc38b-image.png
            Im ersten Fall bekommst Du also die Ausgabe auch in Deinem mqtt (bei Dir ist es halt ggf. die Instanz 0):

            fee94a60-fd99-4a07-beda-6b04423ca598-image.png

            oder in einen korrekten Pfad für die iobroker-Out Node zum direkten Schreiben in den iobroker:

            23f597a4-1077-41c0-a06c-5bf0f0c14955-image.png

            Im Fall das direkt in den iobroker zu schreiben:

            78d5c073-af1f-42af-80c2-cfe989e3467a-image.png

            Um das zu ermöglichen solltest Du in Deiner iobroker Out Node ebenfalls das topic freilassen und folgendes beachten:

            1. Du musst den Datenpunkt bereits vorher anlegen
              oder
            2. Du lässt ihn vom NodeRed Adapter dynamisch anlegen, dafür musst Du die Option erstellen, falls der Datenpunkt nicht existiert wählen:
              62b8650d-1f23-4801-a7a4-2adc648b95ae-image.png

            In beiden Fällen musst Du noch als type Value (also ACK=true) eingeben, weil Du ja nichts schaltest, sondern eine Information beschreibst.

            Damit das dynamische Erstellen von Objekten funktioniert, musst Du im iobroker Adapter die Option Fremdobjekte erstellen, auch zulassen.

            Hier der ganze Beispielflow zum Import:

            [{"id":"9eee51cfe62f6abe","type":"inject","z":"289f539dcc33814e","name":"","props":[{"p":"payload"},{"p":"topic","v":"5","vt":"num"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"1","payloadType":"num","x":230,"y":6340,"wires":[["85afada1fe3a12ef","c26b2e5841c946d4","da62145e5340a1eb"]]},{"id":"85afada1fe3a12ef","type":"debug","z":"289f539dcc33814e","name":"Eingangsobjekt","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":420,"y":6280,"wires":[]},{"id":"f824bda1a655a269","type":"mqtt out","z":"289f539dcc33814e","name":"","topic":"","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"be6c1eaab0dff4fe","x":650,"y":6340,"wires":[]},{"id":"c26b2e5841c946d4","type":"change","z":"289f539dcc33814e","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"\"Streamdeck/Taste/\" & topic","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":420,"y":6340,"wires":[["f824bda1a655a269","e110cfccd7ad029f"]]},{"id":"e110cfccd7ad029f","type":"debug","z":"289f539dcc33814e","name":"mqtt-topic","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":660,"y":6280,"wires":[]},{"id":"da62145e5340a1eb","type":"change","z":"289f539dcc33814e","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"\"0_userdata.0.Test.Streamdeck.Taste.\" & topic","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":420,"y":6400,"wires":[["0b635e34f1fd1844","9189a2083cd762cb"]]},{"id":"0b635e34f1fd1844","type":"debug","z":"289f539dcc33814e","name":"iobroker-topic","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":640,"y":6460,"wires":[]},{"id":"9189a2083cd762cb","type":"ioBroker out","z":"289f539dcc33814e","name":"","topic":"","ack":"true","autoCreate":"true","stateName":"","role":"","payloadType":"","readonly":"","stateUnit":"","stateMin":"","stateMax":"","x":680,"y":6400,"wires":[]},{"id":"be6c1eaab0dff4fe","type":"mqtt-broker","name":"","broker":"192.168.178.104","port":"1883","clientid":"mqttClientNodeRedTest","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]
            

            PS: Wenn Du nicht weißt, wie Du diesen Flow importierst, dann sag Bescheid.

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            1 Antwort Letzte Antwort
            2
            • mickymM Offline
              mickymM Offline
              mickym
              Most Active
              schrieb am zuletzt editiert von
              #6

              Du kannst natürlich die payload auch noch ändern, wenn Du willst (z. Bsp. in einen Boolean) oder die Ausgabe ggf. modifizieren, womit ein SimpleApi Adapter natürlich überfordert ist. Da brauchst Du dann JS oder Blockly und das ist ja nun wirklich keine Alternative zu NodeRed.

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              1 Antwort Letzte Antwort
              0
              • DolomitiD Offline
                DolomitiD Offline
                Dolomiti
                schrieb am zuletzt editiert von Dolomiti
                #7

                @BananaJoe
                So hatte ich das auch zuerst. Das Deck steht an meiner PC-Ecke. Hatte die Software auch auf dem PC installiert, da der aber nur zum zocken läuft habe ich eine Linux-Kiste dort stehen an dem ich sonst arbeite. Deshalb habe ich das Deck an meinen Proxmox-Host angeschlossen und versucht das ganze an einen LXC durchzureichen. Erschwerend kommt hinzu, dass der Proxmox-Host woanders steht als das Deck. Deshalb habe ich von Wiesemann&Theis einen USB-Server installiert der im LAN hängt, an dem das Deck angeschlossen ist.

                @mickym
                Super. Das war der Schubs in die richtige Richtung. Der Topic vom Deck ist eine Zahl, MQTT erwartet aber einen String. Ich habe deinen Flow importiert und das jetzt folgendermaßen gebaut um das ganze zu verstehen:
                flow2.png

                [{"id":"cb1209d75a81569e","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"d47e6d6f1eb0cca2","type":"streamdeck-in","z":"cb1209d75a81569e","name":"Test","x":150,"y":40,"wires":[["5bcf88ca607fd773","16f3b8339f1c9759","39b41d34d2613e37","28c604885bcf55ae"]]},{"id":"5bcf88ca607fd773","type":"debug","z":"cb1209d75a81569e","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":860,"y":40,"wires":[]},{"id":"609315025dff50f6","type":"mqtt out","z":"cb1209d75a81569e","name":"","topic":"","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"4bbc8e927819f88d","x":890,"y":120,"wires":[],"inputLabels":["qwe"]},{"id":"16f3b8339f1c9759","type":"change","z":"cb1209d75a81569e","name":"Change 1","rules":[{"t":"set","p":"topic","pt":"msg","to":"\"Streamdeck/Taste/\" & topic","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":440,"y":160,"wires":[["af0836bfe62752bf","609315025dff50f6"]]},{"id":"af0836bfe62752bf","type":"debug","z":"cb1209d75a81569e","name":"debug 36","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":900,"y":180,"wires":[]},{"id":"39b41d34d2613e37","type":"change","z":"cb1209d75a81569e","name":"Change 2","rules":[{"t":"set","p":"payload","pt":"msg","to":"topic","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"Streamdeck/Taster","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":440,"y":200,"wires":[["24d1e66e3435137d","ec8a0ca01943ad9c","cc685092e66f092c"]]},{"id":"24d1e66e3435137d","type":"mqtt out","z":"cb1209d75a81569e","name":"","topic":"","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"4bbc8e927819f88d","x":690,"y":200,"wires":[],"inputLabels":["qwe"]},{"id":"ec8a0ca01943ad9c","type":"debug","z":"cb1209d75a81569e","name":"debug 37","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":720,"y":260,"wires":[]},{"id":"cc685092e66f092c","type":"debug","z":"cb1209d75a81569e","name":"debug 38","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"topic","targetType":"msg","statusVal":"","statusType":"auto","x":720,"y":300,"wires":[]},{"id":"28c604885bcf55ae","type":"switch","z":"cb1209d75a81569e","name":"","property":"topic","propertyType":"msg","rules":[{"t":"eq","v":"5","vt":"num"},{"t":"eq","v":"10","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":270,"y":340,"wires":[["a71ca0a6f4f0244c"],["73bad0d84f40b808"]]},{"id":"adfc89f8f94b60d6","type":"mqtt out","z":"cb1209d75a81569e","name":"","topic":"shellies/LichtFlur/relay/0/command","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"4bbc8e927819f88d","x":860,"y":360,"wires":[],"inputLabels":["qwe"]},{"id":"a71ca0a6f4f0244c","type":"change","z":"cb1209d75a81569e","name":"Taste 5 Licht an","rules":[{"t":"set","p":"payload","pt":"msg","to":"on","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":480,"y":320,"wires":[["adfc89f8f94b60d6"]]},{"id":"73bad0d84f40b808","type":"change","z":"cb1209d75a81569e","name":"Taste 10 Licht aus","rules":[{"t":"set","p":"payload","pt":"msg","to":"off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":360,"wires":[["adfc89f8f94b60d6"]]},{"id":"4bbc8e927819f88d","type":"mqtt-broker","name":"","broker":"localhost","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"autoUnsubscribe":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]
                

                Im Change 1 habe ich das so gemacht wie von dir beschrieben. Bei Change 2 wird nur die Tastennummer gesendet
                Objekte.png

                Vielen Dank für die Hilfe

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                Intel N100 (32GB,256GB SSD), Proxmox -> Debian 12 in VM (Master) + Debian 12 in CT (Test) + Debmatic, HM-Aktoren, Wago 750-880, Shelly, Zigbee

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


                Support us

                ioBroker
                Community Adapters
                Donate

                936

                Online

                32.4k

                Benutzer

                81.5k

                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