Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Bräuchte Hilfe bei Alexa - Tasmota Integration

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Bräuchte Hilfe bei Alexa - Tasmota Integration

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      hahne last edited by

      Guten Tag,
      Ich bräuchte mal ein wenig Hilfe.
      Ich wollte meine Wohnzimmerbeleuchtung (Shelly Dimmer 2 mit Tasmota) über den Alexa und Tasmota Node einbinden.

      Leider wird nur An/Aus geändert aber Dimmwerte werden nicht übermittelt.
      Wenn ich im ioBroker die Werte im MQTT Adapter ändere sehe ich diese auch in Node Red.( Sieht man ja unter dem Tasmota Node)

      Ich habe den Debug Node mal mit ins Bild genommen. Dort kommt ja aus dem Alexa Node ein "Percentage" -Wert raus aber dieser kann anscheinend nicht Tasmota Node Verwendet werden.
      wohnzimmer.jpg

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @hahne last edited by

        @hahne Der Dimmwert ist doch unter Percentage. Setze die payload Eigenschaft auf die percentage Eigenschaft:

        copy path.gif

        Manchmal ist es auch sinnvoll, mal die Nachbarthreads anzuschauen, selbst wenn man die Suche nicht benutzen will:

        https://forum.iobroker.net/post/996978

        Also einfach die Change Node hinter Deine Alexa Node klemmen und msg.payload auf msg.percentage setzen.

        H 1 Reply Last reply Reply Quote 0
        • H
          hahne @mickym last edited by

          @mickym
          Genau den Thread hatte ich mir vorher angeschaut und das Versucht was du dort beschreibst. Leider bringt das bei mir einen Fehler.
          Habe auch schon die suche benutzt aber leider bin ich kein Stück weiter gekommen.
          fmnd.jpg
          wdwwddwdddwd.png

          Das licht geht dann weder An/Aus noch lässt es sich Dimmen.

          mickym 2 Replies Last reply Reply Quote 0
          • mickym
            mickym Most Active @hahne last edited by mickym

            @hahne na dann musst dir halt die Beschreibung zu der zielnode anschauen. Ich kenne die auch nicht. Wenn man damit nur das Licht ein und ausschalten kann, dann musst du die msg.payload halt auf msg.on setzen. Deswegen hab ich dir ja auch die Grafik anschauen, wie man durch das kopieren des Pfades eine bestimmte Eigenschaft extrahiert.. ob man mit der Node auch Dimmen kann, schau den Hilfetext zu der Node an bzw. Woher stammt denn die? Entweder gibts zum Dimmen eine andere Node oder man muss ein anderes Objekt übergeben.wie gesagt zum Ein- und Ausschalten die msg.payload auf msg.on setzen.

            1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @hahne last edited by mickym

              @hahne Na ich hab schon gesehen, welche Nodes du verwendest:
              https://flows.nodered.org/node/node-red-contrib-tasmota

              so und da steht alles drin - man muss sich bisschen mit Objekten auskennen -

              Also Du hast die Licht - Node auf 3 verschiedene Arten steuern.

              1. Simple Mode: Mit einer simplen payload dann geht on/off, true/false etc.

              8177de51-3936-4b86-8334-4fb5d3e9d1aa-image.png

              das heißt Du setzt einfach die payload Eigenschaft auf die on Eigenschaft:
              2cd2f518-8e00-48ec-b378-3ebeb3b92b12-image.png

              2. Topic Mode: Wenn man nur dimmen will - dann kann man das extra senden bzw. muss vielleicht auch erst einschalten und dann nur dimmen.
              also erst wie 1 einschalten und anschliessend den Dimmwert setzen:
              Welchen Wert Du setzen willst, also Farbe, Dimmen, Ein und Aus ergibt sich aus der Beschreibung:

              d782b733-f4a4-4679-ae99-efd9860da9de-image.png

              So um also zu Dimmen setzt Du eine eingeschaltete Lampe wie gehabt auf msg.percentage, MUSST aber noch das topic dazu setzen.

              Also hier zusätzlich noch topic Eigenschaft des Nachrichtenobjektes definieren.

              0c50b0cd-2be7-465c-9378-214333fbe1cf-image.png

              3. Object Mode: Im Objektmode kannst Du alles in einem Befehl absetzen in dem Du wieder ein ganzes Objekt schickst. Da versteht das Ding ja das komplette Array - aber Du musst das topic löschen. Willst Du also nicht nur den Dimmwert, sondern auch gleichzeitig mit einem Befehl Dimmen, Farbesetzen und Aus- und Einschalten dann schickst Du Objekte OHNE topic in die Tasmota Node.

              122b32b6-63e6-462a-ac95-4c5f62b069e7-image.png

              bf1cc318-6d8d-4358-9905-ded894460104-image.png

              Um zu mappen musst Du halt erst mal schauen, welche Eigenschaft welcher entspricht:
              Ein- und Ausschalten:
              Alexa: on heißt auch auf Tasmota: on (aber in payload)
              Dimmen
              Alexa: percentage heißt auf Tamota: bright (aber in payload)
              Farbe:
              ist in beiden Fällen zum Bespiel ein RGB - Array. (aber in payload)

              Wenn die zusätzlichen Parameter nicht stören, kannst Du also bis auf das Dimmen die Eigenschaften des Alex einfach belassen und die payload neu aufbauen. Hier hast Du wieder 2 Möglichkeiten:

              1. Herkömmliche Methode:
                fed4c1c8-851d-4882-9fa8-774df812ec6f-image.png

              oder

              1. mit JSONATA:

              108f4d63-cc26-4b4b-9c3e-065b1b4ba209-image.png

              falls die alten Eigenschaften die Tasmota Node stören müsste man die wiederum löschen - was dann den Aufwand wieder erhöht, so dass man auch bei der 1. Methode bleiben kann.

              e37bb19c-cdde-4ec7-b4fc-aa118655298e-image.png

              Hier mal der Flow zum Import - um zu testen - mit der Inject Node kann man ja direkt testen:

              [
                 {
                     "id": "de2e354abda650d8",
                     "type": "change",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "rules": [
                         {
                             "t": "delete",
                             "p": "topic",
                             "pt": "msg"
                         },
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "{}",
                             "tot": "json"
                         },
                         {
                             "t": "move",
                             "p": "on",
                             "pt": "msg",
                             "to": "payload.on",
                             "tot": "msg"
                         },
                         {
                             "t": "move",
                             "p": "percentage",
                             "pt": "msg",
                             "to": "payload.bright",
                             "tot": "msg"
                         },
                         {
                             "t": "move",
                             "p": "rgb",
                             "pt": "msg",
                             "to": "payload.rgb",
                             "tot": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 430,
                     "y": 3580,
                     "wires": [
                         [
                             "715ea2abd689315b"
                         ]
                     ]
                 },
                 {
                     "id": "f7bf0e46d5f65464",
                     "type": "inject",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "props": [
                         {
                             "p": "topic",
                             "vt": "str"
                         },
                         {
                             "p": "on",
                             "v": "true",
                             "vt": "bool"
                         },
                         {
                             "p": "percentage",
                             "v": "5",
                             "vt": "num"
                         },
                         {
                             "p": "rgb",
                             "v": "[255,0,0]",
                             "vt": "json"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "Alexa",
                     "x": 210,
                     "y": 3580,
                     "wires": [
                         [
                             "cf524c84bc1434f4",
                             "de2e354abda650d8"
                         ]
                     ]
                 },
                 {
                     "id": "cf524c84bc1434f4",
                     "type": "debug",
                     "z": "7e6af0015415146d",
                     "name": "Alexa Objekt",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "true",
                     "targetType": "full",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 430,
                     "y": 3520,
                     "wires": []
                 },
                 {
                     "id": "715ea2abd689315b",
                     "type": "debug",
                     "z": "7e6af0015415146d",
                     "name": "Für Tasmota gewandelt",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "true",
                     "targetType": "full",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 710,
                     "y": 3520,
                     "wires": []
                 },
                 {
                     "id": "a06f2fdd38113a6b",
                     "type": "change",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "rules": [
                         {
                             "t": "delete",
                             "p": "topic",
                             "pt": "msg"
                         },
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "{\t    \"on\": on,\t    \"bright\": percentage,\t    \"rgb\": rgb\t    }",
                             "tot": "jsonata"
                         },
                         {
                             "t": "delete",
                             "p": "on",
                             "pt": "msg"
                         },
                         {
                             "t": "delete",
                             "p": "rgb",
                             "pt": "msg"
                         },
                         {
                             "t": "delete",
                             "p": "percentage",
                             "pt": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 410,
                     "y": 3700,
                     "wires": [
                         [
                             "0563b36e4e0d40e0"
                         ]
                     ]
                 },
                 {
                     "id": "e4bd6e04ef920f9b",
                     "type": "inject",
                     "z": "7e6af0015415146d",
                     "name": "",
                     "props": [
                         {
                             "p": "topic",
                             "vt": "str"
                         },
                         {
                             "p": "on",
                             "v": "true",
                             "vt": "bool"
                         },
                         {
                             "p": "percentage",
                             "v": "5",
                             "vt": "num"
                         },
                         {
                             "p": "rgb",
                             "v": "[255,0,0]",
                             "vt": "json"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "Alexa",
                     "x": 190,
                     "y": 3700,
                     "wires": [
                         [
                             "8753a0b2c0695e36",
                             "a06f2fdd38113a6b"
                         ]
                     ]
                 },
                 {
                     "id": "8753a0b2c0695e36",
                     "type": "debug",
                     "z": "7e6af0015415146d",
                     "name": "Alexa Objekt",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "true",
                     "targetType": "full",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 410,
                     "y": 3640,
                     "wires": []
                 },
                 {
                     "id": "0563b36e4e0d40e0",
                     "type": "debug",
                     "z": "7e6af0015415146d",
                     "name": "Für Tasmota gewandelt mit JSONATA",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "true",
                     "targetType": "full",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 730,
                     "y": 3640,
                     "wires": []
                 }
              ]
              

              Beschäftigt Euch damit wie ein JSON Objekt aufgebaut ist - das ist das A und O.

              https://www.w3bai.com/de/js/js_json.html#gsc.tab=0

              Es ist wirklich nicht schwer. Ein Objekt wird immer durch geschweifte Klammern definiert und die Eigentschaftsnamen in Anführungszeichen gesetzt, gefolgt von einem Doppelpunkt mit dem entsprechenden Wert. Mehrere Eigenschaften innerhalb eines Objektes werden durch Komma getrennt:

              6920f9db-a3f1-4bf5-a51d-65e62b0f6d0c-image.png

              Und zum Schluß - schaut Euch immer bitte die Hilfe und die Beschreibung zu einer Node an - das ist einer der Riesenvorteile gegenüber Blockly wo ihr Euch alles aus den Fingern saugen müsst, weil zu den Puzzleteilen keine Beschreibung existiert:
              45e5b5fc-73fa-4f8e-9499-7d46362c307c-image.png

              Klickt die Node an - über die ihr was wissen wollt, dann den Hilfetab öffnen. In den meisten Fällen steht in dieser Hilfe, wie die Node funktioniert.

              H 1 Reply Last reply Reply Quote 0
              • H
                hahne @mickym last edited by

                @mickym
                Danke für die Sehr ausführliche Erklärung. Setze mich nach dem Feierabend gleich dran.
                Ich hab auch versucht es selber hinzukriegen, wenn ich dann aber 2h sitze und dann immer noch nichts geht, gebe ich auf.
                Mir fehlen die Grundlagen bzw. das Grundverständnis.
                Ich hatte z.B. auch versucht einfach mit einem Change node "bri" in "bright" zu ändern. Dann hätte er ja theoretisch im 2 Stellingen Bereich den Wert weiter geben müssen. Aber hat nicht funktioniert. Wie gesagt da fehlen mir Komplett die Grundlagen.

                mickym 1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @hahne last edited by

                  @hahne verstehe. Deshalb habe ich ja versucht etwas Grundlagenwissen zu vermitteln und auch auf andere Quellen verlinkt. Ich kann Dir nur jetzt den Rat geben, falls Dir an meinen Erklärungen was nicht klar sein sollte, solange zu fragen, bis es klar ist. Wenn du nur die Lösung verwendest wirst du beim nächsten Problem wieder Stunden brauchen. Lieber einmal Zuviel gefragt, als gefrustet zu sein. Also scheu Dich nicht Fragen zu stellen, es wird ein Haufen Leser geben, die mitlenken und ggf. Um jede Deiner Fragen froh sind.

                  H 1 Reply Last reply Reply Quote 0
                  • H
                    hahne @mickym last edited by

                    @mickym
                    habe es so nachgebaut. Funktioniert auch jetzt mit dem Dimmen.
                    Leider ist nun das Problem wenn ich einen "Aus" Befehl Sende er ja als Payload :

                    {"on":false,"bright":50,"rgb":[254,0,0]} ausgibt.

                    Er schickt in dieser Payload dann das Kommando das die Lampe ausgehen soll ("on":false) und gleichzeitig wieder ein Kommando das sie wieder angeht da der Dimmwert wieder mit übermittelt wird. Daraus resultiert das die Lampe kurz ausgeht und dann wieder angeht.

                    Bekomme ich ihn dazu das er bei einem "false" wert einfach den Dimmwert weg lässst.

                    mickym 1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @hahne last edited by mickym

                      @hahne Du überprüfst einfach vorher mit einer Switch Node -ob on = false ist und dann sendest Du nur false.

                      0ef0611b-4727-443d-a753-355acc4a3d22-image.png

                      [
                         {
                             "id": "1d441aa613b0baec",
                             "type": "switch",
                             "z": "7e6af0015415146d",
                             "name": "",
                             "property": "on",
                             "propertyType": "msg",
                             "rules": [
                                 {
                                     "t": "false"
                                 },
                                 {
                                     "t": "true"
                                 }
                             ],
                             "checkall": "true",
                             "repair": false,
                             "outputs": 2,
                             "x": 410,
                             "y": 3880,
                             "wires": [
                                 [
                                     "30510d54668405b5"
                                 ],
                                 [
                                     "29ab25991df1a45a"
                                 ]
                             ]
                         },
                         {
                             "id": "1f408b56f2bb8f6a",
                             "type": "inject",
                             "z": "7e6af0015415146d",
                             "name": "Alexa ON",
                             "props": [
                                 {
                                     "p": "topic",
                                     "vt": "str"
                                 },
                                 {
                                     "p": "on",
                                     "v": "true",
                                     "vt": "bool"
                                 },
                                 {
                                     "p": "percentage",
                                     "v": "5",
                                     "vt": "num"
                                 },
                                 {
                                     "p": "rgb",
                                     "v": "[255,0,0]",
                                     "vt": "json"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "Alexa",
                             "x": 240,
                             "y": 3860,
                             "wires": [
                                 [
                                     "1d441aa613b0baec"
                                 ]
                             ]
                         },
                         {
                             "id": "30510d54668405b5",
                             "type": "change",
                             "z": "7e6af0015415146d",
                             "name": "",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "false",
                                     "tot": "bool"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 590,
                             "y": 3860,
                             "wires": [
                                 [
                                     "075761c56460e29c"
                                 ]
                             ]
                         },
                         {
                             "id": "f898fdee4277ca29",
                             "type": "inject",
                             "z": "7e6af0015415146d",
                             "name": "Alexa OFF",
                             "props": [
                                 {
                                     "p": "topic",
                                     "vt": "str"
                                 },
                                 {
                                     "p": "on",
                                     "v": "false",
                                     "vt": "bool"
                                 },
                                 {
                                     "p": "percentage",
                                     "v": "5",
                                     "vt": "num"
                                 },
                                 {
                                     "p": "rgb",
                                     "v": "[255,0,0]",
                                     "vt": "json"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "Alexa",
                             "x": 240,
                             "y": 3900,
                             "wires": [
                                 [
                                     "1d441aa613b0baec"
                                 ]
                             ]
                         },
                         {
                             "id": "29ab25991df1a45a",
                             "type": "change",
                             "z": "7e6af0015415146d",
                             "name": "",
                             "rules": [
                                 {
                                     "t": "delete",
                                     "p": "topic",
                                     "pt": "msg"
                                 },
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "{}",
                                     "tot": "json"
                                 },
                                 {
                                     "t": "move",
                                     "p": "on",
                                     "pt": "msg",
                                     "to": "payload.on",
                                     "tot": "msg"
                                 },
                                 {
                                     "t": "move",
                                     "p": "percentage",
                                     "pt": "msg",
                                     "to": "payload.bright",
                                     "tot": "msg"
                                 },
                                 {
                                     "t": "move",
                                     "p": "rgb",
                                     "pt": "msg",
                                     "to": "payload.rgb",
                                     "tot": "msg"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 590,
                             "y": 3900,
                             "wires": [
                                 [
                                     "075761c56460e29c"
                                 ]
                             ]
                         },
                         {
                             "id": "075761c56460e29c",
                             "type": "debug",
                             "z": "7e6af0015415146d",
                             "name": "Für Tasmota gewandelt mit JSONATA",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "payload",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 870,
                             "y": 3880,
                             "wires": []
                         }
                      ]
                      

                      H 1 Reply Last reply Reply Quote 1
                      • H
                        hahne @mickym last edited by

                        @mickym vielen Dank
                        Funktioniert.
                        Muss ich mich mehr mit beschäftigen. Finde NodeRed im ersten Moment bisschen schwerer zu verstehen wie Blockly . Mit den verschiedenen Nachrichten Typen usw. Aber das wird schon.
                        Vielen Dank nochmal .

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @hahne last edited by

                          @hahne Das ist eigentlich einfacher. Es ist nur EIN Nachrichtenobjekt, das verschiedene Eigenschaften haben kann. 😉 Du kannst ja mal ein Blockly nehmen und das versuchen in NodeRed umzusetzen.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          603
                          Online

                          31.7k
                          Users

                          79.7k
                          Topics

                          1.3m
                          Posts

                          2
                          11
                          347
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo