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. Temperaturen über Node RED und Alexa abfragen!

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Temperaturen über Node RED und Alexa abfragen!

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      Apropo @LaBamba last edited by

      @LaBamba Bei mir antwortet damit die Alexa die ich auch anspreche. Habe eine Verzögerung von 1000 eingestellt.

      L 1 Reply Last reply Reply Quote 0
      • L
        LaBamba @Apropo last edited by

        @Apropo
        Ich habe es schon mit verschiedenen Verzögerungen probiert. Jedoch antwortet immer nur eine Alexa.

        1 Reply Last reply Reply Quote 0
        • T
          TorbenNW @LaBamba last edited by

          @LaBamba
          Nachkommastellen: Die Zeile mit Math.round löschen und mit "msg.payload = msg.payload.replace('.', ',');" ersetzen.

          Fenian 1 Reply Last reply Reply Quote 0
          • Fenian
            Fenian @TorbenNW last edited by

            Wenn du wirklich die ID fest eingetragen hast, kann ja auch nur dieses Gerät antworten.

            Vielen, Vielen danke, es funktioniert! Für das xxxxxxx in alexa2.0.Echo-Devices.XXXXXXX.Commands.speak habe ich die Alexa ID Nummer eingesetzt.

            @TorbenNW sagte in Temperaturen über Node RED und Alexa abfragen!:

            @LaBamba
            Nachkommastellen: Die Zeile mit Math.round löschen und mit "msg.payload = msg.payload.replace('.', ',');" ersetzen.

            @LaBamba sagte in Temperaturen über Node RED und Alexa abfragen!:

            Die Genauigkeit mit einer Nachkommastelle aufrufen?

            Ich verstehe das eher so, dass er nur eine Nachkommastelle möchte.

            Hier ist ein aktualisierter Flow, die Temperatur wird auf eine Nachkommastelle gerundet, In der Funktion "Temperatur auslesen" kannst die Nachkommastellen ändern, in dem du den Wert in den Klammern von "toFixed" änderst.

            [
                {
                    "id": "ec7f4314.1eedc8",
                    "type": "tab",
                    "label": "Temperaturansagen",
                    "disabled": false,
                    "info": ""
                },
                {
                    "id": "65deed5.6cc5594",
                    "type": "amazon-echo-hub",
                    "z": "ec7f4314.1eedc8",
                    "port": "80",
                    "enableinput": false,
                    "x": 101,
                    "y": 32,
                    "wires": [
                        [
                            "80bb9b8e.7a2f"
                        ]
                    ]
                },
                {
                    "id": "80bb9b8e.7a2f",
                    "type": "amazon-echo-device",
                    "z": "ec7f4314.1eedc8",
                    "name": "Temperatur Schlafzimmer",
                    "topic": "",
                    "x": 317,
                    "y": 32,
                    "wires": [
                        [
                            "bdf3fc4.797e08"
                        ]
                    ]
                },
                {
                    "id": "bdf3fc4.797e08",
                    "type": "delay",
                    "z": "ec7f4314.1eedc8",
                    "name": "",
                    "pauseType": "delay",
                    "timeout": "1000",
                    "timeoutUnits": "milliseconds",
                    "rate": "1",
                    "nbRateUnits": "1",
                    "rateUnits": "second",
                    "randomFirst": "1",
                    "randomLast": "5",
                    "randomUnits": "seconds",
                    "drop": false,
                    "x": 544,
                    "y": 32,
                    "wires": [
                        [
                            "d2824f5f.c71228",
                            "6c8128bc.8f56f"
                        ]
                    ]
                },
                {
                    "id": "d2824f5f.c71228",
                    "type": "ioBroker get",
                    "z": "ec7f4314.1eedc8",
                    "name": "serialNumber",
                    "topic": "alexa2.0.History.serialNumber",
                    "attrname": "payload",
                    "payloadType": "value",
                    "x": 765,
                    "y": 33,
                    "wires": [
                        [
                            "e6f6d7b0.3c86d8"
                        ]
                    ]
                },
                {
                    "id": "6c8128bc.8f56f",
                    "type": "ioBroker get",
                    "z": "ec7f4314.1eedc8",
                    "name": "temperature",
                    "topic": "deconz.0.Sensors.39.temperature",
                    "attrname": "payload",
                    "payloadType": "value",
                    "x": 753.5,
                    "y": 80,
                    "wires": [
                        [
                            "e6f6d7b0.3c86d8"
                        ]
                    ]
                },
                {
                    "id": "e6f6d7b0.3c86d8",
                    "type": "join",
                    "z": "ec7f4314.1eedc8",
                    "name": "",
                    "mode": "custom",
                    "build": "array",
                    "property": "payload",
                    "propertyType": "msg",
                    "key": "topic",
                    "joiner": "\\n",
                    "joinerType": "str",
                    "accumulate": false,
                    "timeout": "",
                    "count": "2",
                    "reduceRight": false,
                    "reduceExp": "",
                    "reduceInit": "",
                    "reduceInitType": "",
                    "reduceFixup": "",
                    "x": 1097,
                    "y": 34,
                    "wires": [
                        [
                            "dcda6519.e5d8"
                        ]
                    ]
                },
                {
                    "id": "dcda6519.e5d8",
                    "type": "function",
                    "z": "ec7f4314.1eedc8",
                    "name": "Temperatur auslesen",
                    "func": "var device = msg.payload[0]\nvar str = msg.payload[1];\ntemperature = parseFloat(str).toFixed(1);\nmsg.payload = \"Es sind \" + temperature + \" Grad im Schlafzimmer\";\nmsg.url = \"\";\nvar command = \"alexa2.0.Echo-Devices.\" + device + \".Commands.speak\"\nmsg.topic = command;\nreturn msg;\n",
                    "outputs": 1,
                    "noerr": 0,
                    "x": 1270,
                    "y": 34,
                    "wires": [
                        [
                            "e004e70b.81ef58",
                            "3618a2a9.f1e2a6"
                        ]
                    ]
                },
                {
                    "id": "e004e70b.81ef58",
                    "type": "ioBroker out",
                    "z": "ec7f4314.1eedc8",
                    "name": "speak",
                    "topic": "",
                    "ack": "false",
                    "autoCreate": "false",
                    "x": 1441.5,
                    "y": 34,
                    "wires": []
                },
                {
                    "id": "3618a2a9.f1e2a6",
                    "type": "debug",
                    "z": "ec7f4314.1eedc8",
                    "name": "",
                    "active": true,
                    "tosidebar": true,
                    "console": false,
                    "tostatus": false,
                    "complete": "false",
                    "x": 1425,
                    "y": 138,
                    "wires": []
                }
            ]
            
            L 1 Reply Last reply Reply Quote 1
            • L
              LaBamba @Fenian last edited by

              @Fenian

              Danke, es hat ein paar Tage gedauert aber nun läuft es. Irgendwie habe ich aber anscheinend immer wieder Aussetzer mit der DB Verbindung bei Node-Red.
              Darf ich dich mal Fragen wie du deine Schaltvorgänge in Node RED verknüpfst.
              Ich hatte ca. 250 mit Alexa Local Node gemacht.
              1.JPG
              Es funktioniert generell. Jedoch seit einiger Zeit findet die Gerätesuche auf Alexa keine neuen Geräte mehr. Das ist echt nervig!

              ostseereiter 1 Reply Last reply Reply Quote 0
              • ostseereiter
                ostseereiter @LaBamba last edited by

                @LaBamba
                Wenn du in Node Red was an Alexa übergeben willst am besten erst den Adapter neu starten und dann die Geräte suchen lassen.

                1 Reply Last reply Reply Quote 0
                • D3ltoroxp
                  D3ltoroxp last edited by

                  So der Flow zum abfragen läuft schon mal 1a, könnte ich hier kombinieren ? Wenn ich Frage, Alexa wie ist die Temperatur das sie dann die Temp sagt und anschließen die Luftfeuchte ? Hab den Code von @Fenian

                  [
                      {
                          "id": "3ff22dd8.7fec9a",
                          "type": "tab",
                          "label": "Temperaturansagen",
                          "disabled": false,
                          "info": ""
                      },
                      {
                          "id": "ffc59ffe.a9a58",
                          "type": "amazon-echo-hub",
                          "z": "3ff22dd8.7fec9a",
                          "port": "80",
                          "enableinput": false,
                          "x": 100,
                          "y": 64,
                          "wires": [
                              [
                                  "60cd043e.a012ec"
                              ]
                          ]
                      },
                      {
                          "id": "60cd043e.a012ec",
                          "type": "amazon-echo-device",
                          "z": "3ff22dd8.7fec9a",
                          "name": "Temperatur Schlafzimmer",
                          "topic": "",
                          "x": 330,
                          "y": 64,
                          "wires": [
                              [
                                  "880ed474.c7dfb8",
                                  "7cb2ff99.6c53d"
                              ]
                          ]
                      },
                      {
                          "id": "880ed474.c7dfb8",
                          "type": "ioBroker get",
                          "z": "3ff22dd8.7fec9a",
                          "name": "serialNumber",
                          "topic": "alexa2.0.History.serialNumber",
                          "attrname": "payload",
                          "payloadType": "value",
                          "x": 565,
                          "y": 64,
                          "wires": [
                              [
                                  "af872fed.2e36d"
                              ]
                          ]
                      },
                      {
                          "id": "7cb2ff99.6c53d",
                          "type": "ioBroker get",
                          "z": "3ff22dd8.7fec9a",
                          "name": "Raumklima Schlafzimmer temperature",
                          "topic": "deconz.0.Sensors.39.temperature",
                          "attrname": "payload",
                          "payloadType": "value",
                          "x": 633.5,
                          "y": 111,
                          "wires": [
                              [
                                  "af872fed.2e36d"
                              ]
                          ]
                      },
                      {
                          "id": "af872fed.2e36d",
                          "type": "join",
                          "z": "3ff22dd8.7fec9a",
                          "name": "",
                          "mode": "custom",
                          "build": "array",
                          "property": "payload",
                          "propertyType": "msg",
                          "key": "topic",
                          "joiner": "\\n",
                          "joinerType": "str",
                          "accumulate": false,
                          "timeout": "",
                          "count": "2",
                          "reduceRight": false,
                          "reduceExp": "",
                          "reduceInit": "",
                          "reduceInitType": "",
                          "reduceFixup": "",
                          "x": 880,
                          "y": 65,
                          "wires": [
                              [
                                  "5517ab3.6b2e7d4"
                              ]
                          ]
                      },
                      {
                          "id": "5517ab3.6b2e7d4",
                          "type": "function",
                          "z": "3ff22dd8.7fec9a",
                          "name": "Temperatur auslesen",
                          "func": "var device = msg.payload[0]\nvar str = msg.payload[1];\nvar res = str.substr(0, 5);\nmsg.payload = Math.round(res);\nmsg.payload = \"Es sind \" + msg.payload + \" Grad im Schlafzimmer\";\nmsg.url = \"\";\nvar command = \"alexa2.0.Echo-Devices.\" + device + \".Commands.speak\"\nmsg.topic = command;\nreturn msg;\n",
                          "outputs": 1,
                          "noerr": 0,
                          "x": 1053,
                          "y": 65,
                          "wires": [
                              [
                                  "90bca55d.0d3348"
                              ]
                          ]
                      },
                      {
                          "id": "90bca55d.0d3348",
                          "type": "ioBroker out",
                          "z": "3ff22dd8.7fec9a",
                          "name": "speak",
                          "topic": "",
                          "ack": "false",
                          "autoCreate": "false",
                          "x": 1224.5,
                          "y": 65,
                          "wires": []
                      }
                  ]
                  
                  
                  F 1 Reply Last reply Reply Quote 0
                  • F
                    frankyboy73 @D3ltoroxp last edited by

                    @D3ltoroxp
                    Ja, das geht, einfach noch mit ner Get Node die Luftfeuchte abfragen, dann aber bei Atribute was anderes als payload eintragen und das dann als Variable mit in den Text eintragen.
                    Meine Lösung sieht so aus.

                    [
                        {
                            "id": "a4b2c539.1cc178",
                            "type": "ioBroker get",
                            "z": "f4971799.ec9a88",
                            "name": "Temperatur Schalfen",
                            "topic": "0_userdata.0.Korrektur.Temperatur_Schlafen",
                            "attrname": "payload",
                            "payloadType": "value",
                            "x": 220,
                            "y": 420,
                            "wires": [
                                [
                                    "355a80e9.515da"
                                ]
                            ]
                        },
                        {
                            "id": "e5ab3971.1bd0d8",
                            "type": "function",
                            "z": "f4971799.ec9a88",
                            "name": "speak",
                            "func": "msg.payload = Math.round(msg.payload * 10) / 10;\nmsg.hue = Math.round(msg.hue);\nvar temp = msg.payload;\nvar hue = msg.hue\nmsg.payload = ' Die Temperatur im Schlafzimmer beträgt ' + temp + ' Grad;' + ' Die Luftfeuchtigkeit liegt bei' + hue + ' Prozent';\nreturn msg;",
                            "outputs": 1,
                            "noerr": 0,
                            "x": 630,
                            "y": 420,
                            "wires": [
                                [
                                    "a23ad8e5.f3d738"
                                ]
                            ]
                        },
                        {
                            "id": "355a80e9.515da",
                            "type": "ioBroker get",
                            "z": "f4971799.ec9a88",
                            "name": "Feuchte Schlafen",
                            "topic": "deconz.0.Sensors.22.humidity",
                            "attrname": "hue",
                            "payloadType": "value",
                            "x": 450,
                            "y": 420,
                            "wires": [
                                [
                                    "e5ab3971.1bd0d8"
                                ]
                            ]
                        },
                        {
                            "id": "a23ad8e5.f3d738",
                            "type": "ioBroker get",
                            "z": "f4971799.ec9a88",
                            "name": "serialNumber",
                            "topic": "alexa2.0.History.serialNumber",
                            "attrname": "topic",
                            "payloadType": "value",
                            "x": 800,
                            "y": 420,
                            "wires": [
                                [
                                    "efbeb8f1.cd9808"
                                ]
                            ]
                        },
                        {
                            "id": "efbeb8f1.cd9808",
                            "type": "function",
                            "z": "f4971799.ec9a88",
                            "name": "Echo Ausgabe",
                            "func": "\n\nmsg.topic = 'alexa2.0.Echo-Devices.' + \n\n    msg.topic + '.Commands.speak';\n\nreturn msg;\n",
                            "outputs": 1,
                            "noerr": 0,
                            "x": 980,
                            "y": 420,
                            "wires": [
                                [
                                    "3e5d48e8.73bec8"
                                ]
                            ]
                        },
                        {
                            "id": "3e5d48e8.73bec8",
                            "type": "ioBroker out",
                            "z": "f4971799.ec9a88",
                            "name": "",
                            "topic": "",
                            "ack": "false",
                            "autoCreate": "false",
                            "x": 1140,
                            "y": 420,
                            "wires": []
                        }
                    ]
                    
                    1 Reply Last reply Reply Quote 0
                    • D3ltoroxp
                      D3ltoroxp last edited by D3ltoroxp

                      Vielen Dank,
                      ich hatte das jetzt über ioBroker und Alexa gelöst, mit NodeRed als Trigger. Das klappt soweit auch wunderbar. Dennoch vielen Dank.

                      Basti97 1 Reply Last reply Reply Quote 0
                      • Basti97
                        Basti97 Most Active @D3ltoroxp last edited by

                        @d3ltoroxp Ich hänge gerade auch bei node red. Wie muss ich das Programmieren wenn ich Frage wie hoch ist die Temperatur und sie sagt 23Grad zum Beispiel.

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

                          @basti97 Na Du hast einen Trigger - der DEinen Flow startet - wohl eine Alexa Node.
                          Dann fragst Du Deinen Datenpunkt ab und schickst es an den DAtenpunkt als Text der die Sprachausgabe macht. So was ähnliches habe ich gerade in dem Thread gemacht. Allerdings weiß ich ja nicht, ob ihr hier die gleichen Nodes verwendet.

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

                            @mickym Mhh ich wollte das auch über Blockly machen aber dort sagt Alexa "das weiß ich leider nicht".
                            4c4dd0dd-8626-4892-84d5-cbb6ae418d12-grafik.png

                            A 1 Reply Last reply Reply Quote 0
                            • A
                              Apropo @Basti97 last edited by

                              @basti97 Du musst dazu noch in Alexa eine Routine erstellen mit Aktion 5 Sekunden warten. Dann sollte die Meldung nicht kommen.

                              Basti97 1 Reply Last reply Reply Quote 0
                              • Basti97
                                Basti97 Most Active @Apropo last edited by

                                @apropo okay da muss ich mal gucken. Daher dachte ich wenn ich das über node red mache das es einfacher ist.

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

                                  @mickym So hier

                                  42417fc8-99af-461a-8cf6-58dac37591b0-grafik.png

                                  In der mitte ist die Temperatur

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

                                    @basti97 Ja das ist es doch schon fast - oder weist Du nicht, wie Du den Text erstellst den Du in die textCommand schicken willst?

                                    Falls es das ist - dann nimm eine Template Node, schreibe den Text da rein, den Du ausgeben willst und für die geholte Temperatur gibtst {{payload}} an der entsprechenden Stelle ein. Das wars.

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

                                      @mickym Was wäre das für ein Symbol/ Baustein was ich nehmen müsste? Die Alexa hat das "Gerät Temperatur Aquarium" auch schon erkannt. Aber das wird in der App als Lampe angezeigt ist das richtig? Ich dachte in der Alexa App wird das auch als Temperatur angezeigt oderso.
                                      Bis jetzt habe ich nur digitale Befehle von meiner Alexa entgegen genommen. Aber noch nie Analoge, deshalb stelle ich die Fragen 🙂

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

                                        @basti97 Ich kann Dir leider was Alexa und deren Nodes betrifft nicht weiterhelfen, weil ich weder die Nodes noch die Alexa benutze.

                                        Wenn ich mir das anschaue werden alle Geräte von Alexa nur als Licht erkannt und deshalb auch nur diese Befehle kennt.

                                        Alexa, turn on/off {device}
                                        Alexa, switch on/off {device}
                                        Alexa, set {device} to 50%
                                        Alexa, turn my {device} light green
                                        Alexa, set the {device} light to orange
                                        Alexa, make the {device} warmer
                                        Alexa, brighten {device} to 60 percent
                                        Alexa, dim the {device} lights

                                        Was Du dann aber im NodeRed Flow machst kann ja dann was ganz anderes sein, das bekommt Alexa nicht mit.

                                        Wenn Du also sagst: Mache Aquarium Info ein - und Du dann Text in Deine Speach Node schickt - dann wird Alexa trotzdem denken, dass Du Licht einschaltest.

                                        Aber wie gesagt, dass ist nur eine Vermutung wie das funktioniert.

                                        Ansonsten muss man wahrscheinliche ganz anderen Anbindungen suchen - aber ich bin was Alexa betrifft raus. Ich kann Dir innerhalb eines Flows helfen - aber nicht was die Alexa Nodes betrifft.

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

                                          @mickym Ok Danke für den Tipp bisher habe ich mit nodered noch nicht so viel am Hut gehabt. Was kann man eigentlich alles damit machen.
                                          Naja das ist mein erster Versuch mit Alexa. Eigentlich müsste ich ja nur das virtuelle Gerät in Alexa bringen. Und danach müsste sie eigentlich selbst auslesen was dort steht und mir das sagen. So die Theorie 🙂
                                          Andere Variante die ich hatte war über ein Blockly oder so das ganze auszuwerten. Da über den Alexa Adapter das was man gesprochen hat abgespeichert wird. Mit Hilfe diesen könnte man auf den Text reagieren und zb die Aquarium Infos wieder zurück geben. Aber das funktioniert nicht da Alexa sagt "das sie das Gerät nicht kennt".

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

                                            @basti97 NodeRed ist im Prinzip genauso eine Logikmaschine wie Blockly und wenn Du lieber mit Blockly arbeitest ist das ja in Ordnung, dann musst Du Dich auch nicht groß mit NodeRed beschäftigen.

                                            Nun gibts in NodeRed einige Nodes - für die es im iobroker keine Adapter gibt oder nicht mehr so gepflegt werden (ich persönlich wollte erst kürzlich den SNMP Adapter nutzen - bin dann aber sehr schnell davon abgekommen. ). So willst Du nun halt im Node Red die Alexa Nodes nutzen.

                                            Du kannst doch einfach einen Datenpunkt im iobroker erstellen und darin speicherst Du 1:1 was aus Deine Temperatur Aquarium Alexa Node rauskommt.
                                            Dann brauchst Dich nicht mehr mit NodeRed nicht weiter zu beschäftigen, sondern verarbeitest den Output direkt mit Blockly weiter.

                                            Das ist doch das Schöne am ioBroker das man alles miteinander kombinieren kann. Nutze einfach NodeREd als Adapter und verarbeite den Output mit Blockly weiter.

                                            Das in Deinem Fall die Alexa Nodes weder die Fähigkeiten noch die Zustände Deiner Geräte selbst kennen, da kann ich wenig dazu sagen. Genauso wenig warum die Geräte aus dem iobroker Adapter das der Alexa nicht begreiflich machen können.

                                            Deshalb geht diese Herangehensweise halt davon aus, das man für Alexa eine Sprachausgabe nutzt und dieser mitteilt, was sie zum Beispiel zum Aquarium sagen soll. Das kannst Du aber mit Blockly genauso realisieren.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            976
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            15
                                            109
                                            12640
                                            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