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. Alexa Sprachausgabe Temperatur und sonstiges

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Alexa Sprachausgabe Temperatur und sonstiges

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

      Hallo,
      ich habe Node Red im IO Broker laufen und möchte gerne Alexa fragen können wie z.B. die Temperatur im Büro ist.

      Mein Ansatz war jetzt wie folgt:

      1. IO Brocker IN als Angabe der tatsächlichen Temperatur.
        Unter dem Node wird mir grün angezeigt, dass er verbunden ist
        und zusätzlich steht dort die richtige Temperatur.

      2. vsh-virtual-device Node (dort habe ich die Pro Variante, 12€/Jahr)
        Alexa can retrieve device state ist aktiviert

      Beide verbunde passiert folgendes:
      Alexa, wie ist die Temperatur im Büro?
      Antwort von Alexa: Die Temperatur im Büro ist 0 grad

      Prinzipiell funktioniert es schon mal.
      Screenshot 2022-10-30 191519.jpg
      Wenn ich einen Debug an den IO Brocker IN hänge wird mir statt der richtigen Temperatur 1 angezeigt.

      Habe dann mit einem Change Node versucht den richtigen Wert zu bekommen.
      Screenshot 2022-10-30 191021.jpg

      Der Change Node gibt mir nun die richtige Temperatur aus. Wenn ich diesen an den vsh-virtual-device anschließe funktioniert es leider immer noch nicht. Ansage weiterhin 0 grad.
      Was muss ich im change angeben, damit der VSH dies lesen und umsetzen kann.

      IO Broker ist so eingestellt:
      Screenshot 2022-10-30 191647.jpg

      vsh ist so eingestellt:
      Screenshot 2022-10-30 191732.jpg
      Hier habe ich nur zum schicken schnell meinen Account rausgenommen, der ist natürlich drinnen und funktioniert auch.

      Herzlichen Dank für Eure Hilfe schon mal.

      haselchen DJMarc75 mickym Wannseesprinter 4 Replies Last reply Reply Quote 0
      • haselchen
        haselchen Most Active @Heinloth last edited by

        @mickym 👈

        1 Reply Last reply Reply Quote 0
        • DJMarc75
          DJMarc75 @Heinloth last edited by

          @heinloth und was kommt bei dem "debug 4" als Ergebnis ?

          H 1 Reply Last reply Reply Quote 0
          • H
            Heinloth @DJMarc75 last edited by

            @djmarc75 bei Debug 4 kommt 1 als Ergebnis

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

              @heinloth Screenshot 2022-10-30 195031.jpg

              DJMarc75 1 Reply Last reply Reply Quote 0
              • DJMarc75
                DJMarc75 @Heinloth last edited by

                @heinloth ich kann das leider nicht sehen... andere Auflösung bitte - und die Ausgabe vom debug4 ist da nicht zu sehen - oder ich sehe es nicht

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

                  @heinloth Ja das ist verkehrt - die Node erwartet ein Objekt mit der Temperatur und dort musst Du auch noch angeben, dass es sich um das device rauskommt.

                  Auch was @DJMarc75 schreibt ist richtig - ist komisch, was da rauskommt.

                  Schau erst mal das aus der iobroker-IN Node rauskommt. Wenn da nur eine Zahl rauskommt (ich hoffe Du hast Deine Adapterkonfiguration angepasst ) .
                  08c5b98e-ba92-438c-a5ef-5d2728124023-image.png

                  Poste doch bitte mal das Debug-Fenster des kompletten Nachrichtenobjektes.

                  981a445b-b12d-4e9e-a203-d4cc4b1afc3f-image.png

                  Die Systemkonsole kannst Du von mir aus angehakt lassen.

                  Im Prinzip musst du die Node aber mit einem Objekt speisen.

                  84ed3949-fab9-405b-8e44-5d0354c53723-image.png

                  Wichtig ist auch - zu posten was aus der Alexa Node rauskommt - also auch mal eine Debug Node reinmachen.

                  f2aff425-688e-4384-a47c-ee75ebbe764d-image.png

                  Die Temperatur ist eine Eigenschaft der payload. Du musst der Node auf jedenfall ein Objekt übergeben.

                  b77df717-13ae-4236-8c09-fb33a902285b-image.png

                  Und wie ich aus den Bilder ersehe, hast Du wohl Deinen Adapterkonfig nicht umgestellt - deshalb musst Du den String vorher noch in Zahl konvertieren.

                  92075d5a-ab50-4cd6-ac6a-b899447ccefb-image.png

                  [
                     {
                         "id": "6fcfed5ca205d1a7",
                         "type": "inject",
                         "z": "acc143ecc3f0a75a",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "",
                         "payload": "22.37",
                         "payloadType": "num",
                         "x": 270,
                         "y": 540,
                         "wires": [
                             [
                                 "8ca91575f8a8b4cd"
                             ]
                         ]
                     },
                     {
                         "id": "8ca91575f8a8b4cd",
                         "type": "change",
                         "z": "acc143ecc3f0a75a",
                         "name": "in Zahl konvertieren",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "$number(payload)\t",
                                 "tot": "jsonata"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 470,
                         "y": 540,
                         "wires": [
                             [
                                 "4946db6ce6ce5ccd"
                             ]
                         ]
                     },
                     {
                         "id": "4946db6ce6ce5ccd",
                         "type": "change",
                         "z": "acc143ecc3f0a75a",
                         "name": "erstelle Objekt",
                         "rules": [
                             {
                                 "t": "move",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "payload.temperature",
                                 "tot": "msg"
                             },
                             {
                                 "t": "set",
                                 "p": "payload.source",
                                 "pt": "msg",
                                 "to": "device",
                                 "tot": "str"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 680,
                         "y": 540,
                         "wires": [
                             [
                                 "f366ebe6221139f9"
                             ]
                         ]
                     },
                     {
                         "id": "f366ebe6221139f9",
                         "type": "debug",
                         "z": "acc143ecc3f0a75a",
                         "name": "debug 45",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "false",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 920,
                         "y": 540,
                         "wires": []
                     }
                  ]
                  

                  H 1 Reply Last reply Reply Quote 2
                  • mickym
                    mickym Most Active last edited by

                    Wichtig ist auch den output der Node.

                    Eventuell musst Du in das Objekt auch den Sensortyp angeben.

                    Also setze:

                    msg.payload.type auf Zeichenkette: Temperature Sensor (weiß aber nicht, ob das notwendig ist - da das in der Node ja festgelegt ist).

                    Wichtig ist aber die source anzugeben.

                    29c33ea0-10b3-435f-9765-7c89c18e7ed8-image.png

                    Über die source in der Ausgabe der Node ist bei "Nicht Sensoren" für Dich wichtig, die Nachrichten vom Typ device auszufiltern, damit Du erkennst ob die Nachricht von Dir kommt oder von Alexa selbst.

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

                      @mickym Hallo, bei ioBroker-Werte in Zeichenkette konvertieren war der Haken gesetzt, diesen habe ich jetzt rausgenommen.

                      Habe jetzt dann deinen Change "erstelle Objekte" erstellt und so eingesetzt und meinen Change rausgeschmissen.
                      Schon funktioniert es, jetzt sagt mir Alexa wie die Temperatur im Büro ist.

                      Herzlichen Dank an alle Helfer.
                      Sorry, ich bin hier noch richtiger Anfänger.

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

                        @heinloth sagte in Alexa Sprachausgabe Temperatur und sonstiges:

                        Hallo, bei ioBroker-Werte in Zeichenkette konvertieren war der Haken gesetzt, diesen habe ich jetzt rausgenommen.

                        Na nun musst halt bei Deinen anderen Flows noch aufpassen, dass die damit zurecht kommen, wenn nicht mehr in Zeichenkette umgewandelt wird.
                        Aber je früher du das umgestellt hast, desto geringer ist der Umstellungsaufwand.

                        Freut mich, dass es funktioniert. 🙂

                        1 Reply Last reply Reply Quote 0
                        • Wannseesprinter
                          Wannseesprinter @Heinloth last edited by Wannseesprinter

                          @heinloth

                          Ich habe es so gelöst und es läuft sehr gut:

                          6c622bcc-a873-4b72-82d4-9921301b9d5f-grafik.png

                          • Verzögerung von 2000ms, damit bei mehreren Amazon Echos der richtige reagiert und nicht alle durcheinander quatschen
                          • serialNumber, damit der Amazon Echo antwortet, den du angesprochen hast und nicht irgendeiner. Relevant bei mehreren Echos im Haus:

                          410f59e0-d3c7-48f0-b168-813bdf653a08-grafik.png

                          -Lese Temperatur Warmwasser = Ein Wert meines Viessmann Adapters:

                          ba292e2e-b5fa-4c63-a638-fd52aa912fbd-grafik.png

                          • Join, um alle Werte zu einem "Klumpen" zusammenzufassen.
                          • Dann noch die Function. Ist das Komplizierte von allem:

                          b780db75-9894-43b8-8926-6b1e4a202be7-grafik.png

                          var device = msg.payload[0]
                          var str = msg.payload[1];
                          var res = str.substr(0, 5);
                          msg.payload = Math.round(res);
                          msg.payload = "Das Warmwasser ist " + msg.payload + " °C warm";
                          msg.url = "";
                          var command = "alexa2.0.Echo-Devices." + device + ".Commands.speak"
                          msg.topic = command;
                          return msg;
                          
                          
                          • Am Ende noch der "Speak"-Block, fertig 😉
                          S 1 Reply Last reply Reply Quote 0
                          • S
                            Strobel @Wannseesprinter last edited by

                            @wannseesprinter
                            Danke!
                            Könntest du evtl. den ganzen Flow einmal hier einstellen?

                            Im Grund müsste das ja auch so mit einer Haustürklingel funktionieren, oder?
                            Also wenn ich das Klingelsignal abfange und dann eine Sprachausgabe bekomme wie z.B. "Jemand hat an der Haustür geklingelt!"
                            Hat das jemand so umgesetzt und hat eine Idee?

                            Danke und Gruß

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

                              @strobel Hi, wenn du das Klingelsignal im Iobroker hast, ist das kein Problem. Über ne Iobroker In Node den Status des Klingeldatenpunkts überwachen (bei Änderung) dann über nen Switch schauen ob das Signal wahr ist, bzw. was du als Ausgabe hast, dann den passenden Text per Change Node ins payload schreiben und dann per Iobroker Out auf den Speak Command Datenpunkt des Echos geben der es sagen soll, bzw. mehrere anhängen oder ne Gruppe erstellen und den Speak Command nehmen,
                              So ungefähr.
                              Speak.jpg

                              [
                                  {
                                      "id": "4330db7a9b818880",
                                      "type": "ioBroker in",
                                      "z": "9e1c0edb.e6d2d",
                                      "name": "Klingelsignal",
                                      "topic": "*",
                                      "payloadType": "value",
                                      "onlyack": "",
                                      "func": "rbe",
                                      "gap": "",
                                      "fireOnStart": "false",
                                      "outFormat": "MQTT",
                                      "x": 190,
                                      "y": 1480,
                                      "wires": [
                                          [
                                              "d5c1511b7b623e08"
                                          ]
                                      ]
                                  },
                                  {
                                      "id": "8610433cdd85d9b4",
                                      "type": "change",
                                      "z": "9e1c0edb.e6d2d",
                                      "name": "",
                                      "rules": [
                                          {
                                              "t": "set",
                                              "p": "payload",
                                              "pt": "msg",
                                              "to": "Hallo, es ist jemand an der Haustür",
                                              "tot": "str"
                                          }
                                      ],
                                      "action": "",
                                      "property": "",
                                      "from": "",
                                      "to": "",
                                      "reg": false,
                                      "x": 530,
                                      "y": 1480,
                                      "wires": [
                                          [
                                              "62bce7f956e61d03"
                                          ]
                                      ]
                                  },
                                  {
                                      "id": "d5c1511b7b623e08",
                                      "type": "switch",
                                      "z": "9e1c0edb.e6d2d",
                                      "name": "",
                                      "property": "payload",
                                      "propertyType": "msg",
                                      "rules": [
                                          {
                                              "t": "true"
                                          }
                                      ],
                                      "checkall": "true",
                                      "repair": false,
                                      "outputs": 1,
                                      "x": 350,
                                      "y": 1480,
                                      "wires": [
                                          [
                                              "8610433cdd85d9b4"
                                          ]
                                      ]
                                  },
                                  {
                                      "id": "62bce7f956e61d03",
                                      "type": "ioBroker out",
                                      "z": "9e1c0edb.e6d2d",
                                      "name": "speak",
                                      "topic": "",
                                      "ack": "false",
                                      "autoCreate": "false",
                                      "stateName": "",
                                      "role": "",
                                      "payloadType": "",
                                      "readonly": "",
                                      "stateUnit": "",
                                      "stateMin": "",
                                      "stateMax": "",
                                      "x": 710,
                                      "y": 1480,
                                      "wires": []
                                  }
                              ]
                              

                              Edit: Du solltest noch ne Nachrichtenbegrenzung mit einbauen, damit bei Sturmklingeln nicht haufenweise Nachrichten kommen. Geht mit der delay Node.
                              speak2.jpg

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              1.1k
                              Online

                              31.7k
                              Users

                              79.7k
                              Topics

                              1.3m
                              Posts

                              7
                              13
                              706
                              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