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. Nodered Alexa Logik

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Nodered Alexa Logik

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

      Hallo ich habe die Alexa im ioBroker integriert und würde gerne über notered die Lautstärke erhöhen bzw verringern mit step+ und step-. Ich kann zwar im ioBroker direkt sagen 50%, 70% usw aber dies nützt mir nix. Wie würde die Logik in nodered aussehen um dies zu realisieren?

      F 1 Reply Last reply Reply Quote 0
      • F
        frankyboy73 @TimoWald last edited by

        @timowald Hi, das könnte man so machen: Über Get Node (Player.volume) aktuelle Lautstärke auslesen, dann den Wert zum erhöhen oder veringern dazu rechnen/abziehen (in meinem Fall +/- 5) und das wieder an den Echo übergeben (Player.volume) Dazwischen habe ich noch einen Switch, damit ich nicht unter 0 oder über 100 steuere.
        Lautstärke1.jpg

        [
           {
               "id": "64d1ff22.75d51",
               "type": "ioBroker get",
               "z": "42e1e0df.44b9f",
               "name": "Volume",
               "topic": "alexa2.0.Echo-Devices.EchoAuswählen.Player.volume",
               "attrname": "payload",
               "payloadType": "value",
               "x": 400,
               "y": 1820,
               "wires": [
                   [
                       "babcb22e.3b2cf"
                   ]
               ]
           },
           {
               "id": "babcb22e.3b2cf",
               "type": "function",
               "z": "42e1e0df.44b9f",
               "name": "Berechnen",
               "func": "msg.payload = msg.payload + 5;\nreturn msg;",
               "outputs": 1,
               "noerr": 0,
               "initialize": "",
               "finalize": "",
               "libs": [],
               "x": 590,
               "y": 1820,
               "wires": [
                   [
                       "e8aa90e8.6cd2b"
                   ]
               ]
           },
           {
               "id": "d9dd560f.870ad8",
               "type": "function",
               "z": "42e1e0df.44b9f",
               "name": "Berechnen",
               "func": "msg.payload = msg.payload - 5;\nreturn msg;",
               "outputs": 1,
               "noerr": 0,
               "initialize": "",
               "finalize": "",
               "libs": [],
               "x": 590,
               "y": 1880,
               "wires": [
                   [
                       "e8aa90e8.6cd2b"
                   ]
               ]
           },
           {
               "id": "362d16ab.6358fa",
               "type": "ioBroker get",
               "z": "42e1e0df.44b9f",
               "name": "Volume",
               "topic": "alexa2.0.Echo-Devices.EchoAuswählen.Player.volume",
               "attrname": "payload",
               "payloadType": "value",
               "x": 400,
               "y": 1880,
               "wires": [
                   [
                       "d9dd560f.870ad8"
                   ]
               ]
           },
           {
               "id": "aaad768b.0fd638",
               "type": "ioBroker out",
               "z": "42e1e0df.44b9f",
               "name": "volume",
               "topic": "alexa2.0.Echo-Devices.EchoAuswählen.Player.volume",
               "ack": "false",
               "autoCreate": "false",
               "stateName": "",
               "role": "",
               "stateUnit": "",
               "stateMin": "",
               "stateMax": "",
               "x": 940,
               "y": 1840,
               "wires": []
           },
           {
               "id": "e8aa90e8.6cd2b",
               "type": "switch",
               "z": "42e1e0df.44b9f",
               "name": "",
               "property": "payload",
               "propertyType": "msg",
               "rules": [
                   {
                       "t": "btwn",
                       "v": "0",
                       "vt": "num",
                       "v2": "100",
                       "v2t": "num"
                   }
               ],
               "checkall": "true",
               "repair": false,
               "outputs": 1,
               "x": 790,
               "y": 1840,
               "wires": [
                   [
                       "aaad768b.0fd638"
                   ]
               ]
           },
           {
               "id": "39c3bcf8.4f3394",
               "type": "inject",
               "z": "42e1e0df.44b9f",
               "name": "+",
               "props": [
                   {
                       "p": "payload"
                   },
                   {
                       "p": "topic",
                       "vt": "str"
                   }
               ],
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "true",
               "payloadType": "bool",
               "x": 210,
               "y": 1820,
               "wires": [
                   [
                       "64d1ff22.75d51"
                   ]
               ]
           },
           {
               "id": "cfa32f38.74a79",
               "type": "inject",
               "z": "42e1e0df.44b9f",
               "name": "-",
               "props": [
                   {
                       "p": "payload"
                   },
                   {
                       "p": "topic",
                       "vt": "str"
                   }
               ],
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "true",
               "payloadType": "bool",
               "x": 210,
               "y": 1880,
               "wires": [
                   [
                       "362d16ab.6358fa"
                   ]
               ]
           }
        ]
        

        T 1 Reply Last reply Reply Quote 0
        • T
          TimoWald @frankyboy73 last edited by TimoWald

          @frankyboy73 Habe es jetzt bei mir eingefügt. Es geht aber nur Lautstärke -.

          Bei Volume + kommt im ioBroker die Fehlermeldung: Datatype for Echo-Devices.G091AA08052424JH.Player.volume differs from expected, ignore state change! Please write correct datatype (number)

          F 1 Reply Last reply Reply Quote 0
          • F
            frankyboy73 @TimoWald last edited by frankyboy73

            @timowald Hi, kann es sein das du dir die Iobrker Eingangswerte in String, Zeichenkette reinholst? Einstellung bei Node Red Instanz Haken gesetzt? Dann bekommst du keine Nummer sondern nen String aus der Get Node. Wenn ja würde ich das deaktivieren, dann muss du deine anderen Flows aber auch darauf anpassen.
            NodeRed1.jpg
            Oder du änderst in der Funktion den String vorm Berechnen in Nummer um. Das in die Funktion:

            msg.payload = Number(msg.payload) + 5;
            return msg;
            

            bzw.

            msg.payload = Number(msg.payload) - 5;
            return msg;
            

            Obwohl es mich wundert das es bei minus funktioniert und bei plus nicht.

            T 1 Reply Last reply Reply Quote 0
            • T
              TimoWald @frankyboy73 last edited by

              @frankyboy73 Hi, mit der änderung der Funktion funktioniert es. Danke. Das einzige was noch ist was mich aber nicht weiter stört ist:
              Wenn ich die Lautstärke erhhöhe 25, 30, 35, 40 und dann verringer kommt erst 45, 40, 35, 30 andersrum genau so. Also immer noch mal eine Stufe höher. Stört mich aber nicht weiter.

              F 1 Reply Last reply Reply Quote 0
              • F
                frankyboy73 @TimoWald last edited by frankyboy73

                @timowald Hi, mit was steuerst du denn die Lautstärke ? Bei mir funktioniert das Problemlos. Du könntest sonst mal deinen Flow zeigen, vielleicht muss da vorher noch was abfangen werden. Du könntest eventuell mal selber mit Debug Nodes schauen, warum erst in die andere Richtung gesteuert wird. Irgendwo durch muss das ja getriggert werden.
                Debug3.jpg

                Auch möchte ich noch mal auf die Einstellung Ausgabe als Zeichenkette / String hinweisen, wenn das deaktiviert ist, ist es für die meisten Anwendungen wesentlich einfacher, da ich die Ausgabe der In und Get Nodes dann meistens als Bool bzw. Zahl habe und nicht als Text und man muss nicht mehr so viel umwandeln.
                Nur als Beispiel, wenn ich mit nem Schalter/Datenpunkt ne Lampe/Datenpunkt Ein/Aus schalten will, wenn ich also mit ner Iobroker In Node ne Iobroker Out steuern will, also wenn die In Node true ist soll auch die Out true sein und wenn die in false ist soll auch die Out Node false sein, dann würde das bei der String konvertierung so ausgehen:
                In Node, dann Switch zu abfrage ob Zeichenkette/String ist true oder false und danach noch Change Node um den String in ein Bool zu wandeln.
                String1.jpg
                Wenn die String Konvertierung aus ist sieht das so aus:
                Aus der In Node kommt direkt Bool true/false und kann direkt auf die Out Node.
                String2.jpg
                Ist nur ein Beispiel und jeder muss für sich wissen womit er besser klar kommt. Kann natürlich auch ganz schön Arbeit sein wenn man das erst ändert wenn man schon viel umgesetzt hat.

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

                Support us

                ioBroker
                Community Adapters
                Donate

                971
                Online

                31.7k
                Users

                79.7k
                Topics

                1.3m
                Posts

                2
                6
                485
                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