Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Cloud Dienste
    4. Alexa-Gerät in IoT mit variablen Funktionen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Alexa-Gerät in IoT mit variablen Funktionen

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

      Hallo,

      da der Harmony-Hub nur an einem Fernseher die Programme umschalten kann, ich aber einen Zweiten steuern möchte, habe ich eine entsprechende Routine in Blockly zusammengebastelt. Nun versuche ich ein entsprechendes, manuell erstelltes Gerät im IoT als Alexa-Gerät einzufügen. Das funktioniert soweit, nur das alle Versuche ein Gerät ergeben, dass nur An/Aus geschaltet werden kann. Das Script tut, was es soll, nur das eben von Alexa eine Fehlermeldung kommt, wenn ich z.B. das Programm umschalten lasse.
      Wie kann ich ein Gerät erzeugen, dass keine Fehlermeldung erzeugt, egal was ich damit anstelle?

      Gruß Udo

      dslraser 1 Reply Last reply Reply Quote 0
      • dslraser
        dslraser Forum Testing Most Active @UdoG last edited by

        @UdoG sagte in Alexa-Gerät in IoT mit variablen Funktionen:

        Nun versuche ich ein entsprechendes, manuell erstelltes Gerät im IoT als Alexa-Gerät einzufügen. Das funktioniert soweit, nur das alle Versuche ein Gerät ergeben, dass nur An/Aus geschaltet werden kann.

        wie sieht denn das manuelle Gerät aus und als was ist das in iot eingefügt(switch, oder Light, oder.... ? )
        (RAW vom erstellten Gerät bzw. Datenpunkt ?)
        Und welche Fehlermeldung bekommst Du ?

        1 Reply Last reply Reply Quote 0
        • U
          UdoG last edited by

          ich lege unter 0_userdata.0 ein neues Objekt an. Wenn ich den Typ device angebe findet IoT den Datenpunkt nicht, also state und Rolle media.device. IoT findet den Datenpunkt, aber egal welchen Typ ich auswähle, es gibt immer nur An/Aus.
          Alexa sagt: "Darauf habe ich leider keine Antwort", oder "Das weiß ich leider nicht"
          Wie gesagt, das Script tut trotzdem, was es soll

          dslraser 1 Reply Last reply Reply Quote 0
          • dslraser
            dslraser Forum Testing Most Active @UdoG last edited by

            @UdoG sagte in Alexa-Gerät in IoT mit variablen Funktionen:

            es gibt immer nur An/Aus.

            und welche brauchst Du ?

            1 Reply Last reply Reply Quote 0
            • U
              UdoG last edited by

              na z.B.: 'Alexa, schalte den Küchenfernseher auf Pro Sieben' oder 'Alexa, mach den Küchenfernseher leiser'.
              Mit dem Script klappt das auch, nur eben das 'Gemecker' von Alexa stört.

              dslraser 1 Reply Last reply Reply Quote 0
              • dslraser
                dslraser Forum Testing Most Active @UdoG last edited by dslraser

                @UdoG sagte in Alexa-Gerät in IoT mit variablen Funktionen:

                na z.B.: 'Alexa, schalte den Küchenfernseher auf Pro Sieben' oder 'Alexa, mach den Küchenfernseher leiser'.
                Mit dem Script klappt das auch, nur eben das 'Gemecker' von Alexa stört.

                Ich habe eine VU und regel das etwas anders. Ich prüfe nur welcher Echo angesprochen wurde und das Blockly schaltet dann den Sender am passenden Gerät, mit dem gleichen Befehl.

                Beispiel
                Bildschirmfoto 2020-07-17 um 09.57.49.png

                der erstellte Datenpunkt ist ein Button und das SmartGerät ein Switch (so gibt es im iot nur an, kein aus. Das erkennst Du auch am Symbol im iot, es gibt nur das an Symbol)

                Bildschirmfoto 2020-07-17 um 10.05.02.png

                Bildschirmfoto 2020-07-17 um 10.04.11.png

                Alexa, z. d. f. an (oder schalte z. d. f. an)

                Alexa ist im Kurzmodus eingestellt (dann kommt kein okay, nur ein kurzer Ton)
                Alexa, schalte Kurzmodus ein

                1 Reply Last reply Reply Quote 1
                • U
                  UdoG last edited by

                  für deine Situation eine clevere Idee. Ich hab allerdings eine offene Küche, also stehen der kleine Küchenfernseher und der große Wohnzimmerfernseher quasi im gleichen Raum, und werden vom gleichen Alexa (theoretisch über den Harmony-Skill) bedient. Dachte nur es gibt eine Möglichkeit ein IoT-Gerät zu erschaffen, dass wie ein Fernseher bedient werden kann, also neben An/Aus auch Kanal rauf/runter lauter/leiser usw.

                  dslraser 2 Replies Last reply Reply Quote 0
                  • dslraser
                    dslraser Forum Testing Most Active @UdoG last edited by dslraser

                    @UdoG sagte in Alexa-Gerät in IoT mit variablen Funktionen:

                    Dachte nur es gibt eine Möglichkeit ein IoT-Gerät zu erschaffen, dass wie ein Fernseher bedient werden kann, also neben An/Aus auch Kanal rauf/runter lauter/leiser usw.

                    Ich glaube (bin mir aber nicht sicher) das ist ein iot/alexa Skill V3 Thema, das ist schon länger im Gespräch.

                    Edit: siehe hier

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

                    1 Reply Last reply Reply Quote 0
                    • dslraser
                      dslraser Forum Testing Most Active @UdoG last edited by dslraser

                      @UdoG sagte in Alexa-Gerät in IoT mit variablen Funktionen:

                      Ich hab allerdings eine offene Küche, also stehen der kleine Küchenfernseher und der große Wohnzimmerfernseher quasi im gleichen Raum

                      wenn Dich beide ECHOS hören können wird es schwierig, bzw. wenn im gleichen Raum nur ein ECHO ist auch.
                      Den Harmony Skill habe ich nicht aktiv, ich nutze den Harmony Adapter.
                      Wenn Du zwei verschiedene Namen vergibst, müsste es doch auch funktionieren.

                      Alexa, schalte z. d. f. am Küchenfernseher an (als SmartNamen z. d. f. am Küchenfernseher)

                      und

                      Alexa, schalte z. d. f. am Wohnzimmerfernseher an (als SmartNamen z. d. f. am Wohnzimmerfernseher)

                      Jeweils dann auf den richtigen Datenpunkt vom Harmony Adapter ?

                      Probiert habe ich das aber nicht, aber im Harmony Adapter kann man doch auch Kanäle an den Geräten schalten.

                      Edit: im Harmony Adapter sind die einzelnen Geräte zu finden, also die, die Du selbst vergeben hast.

                      Screenshot_20200717-132040_Chrome.jpg

                      Und wenn Du im Harmony Adapter nur Kanalnummern schalten kannst, dann kann das ja ein Blockly/Script erledigen, oder ?

                      1 Reply Last reply Reply Quote 0
                      • U
                        UdoG last edited by

                        ich frage bei Änderung des summary-Datenpunktes von Alexa ab, ob einer der beiden Fernseher angesprochen wurde. Dann werte ich den Text weiter aus ob z.B. an/aus/ein/ab gesagt wurde, oder Lauter/leiser usw. Abhängig davon setze ich den Datenpunkt im Harmony-Adapter. Wie gesagt, funktioniert alles zuverlässig.
                        Das mit dem IoT/Alexa V3 bzw. Device-Adapter hört sich gut an, und scheint ja in die Richtung zu gehen.
                        Mein Problem wird sich aber wahrscheinlich zu Weihnachten erledigen, da es für das Wohnzimmer einen neuen OLED geben soll, und der kann dann selbst mit Alexa kommunizieren.

                        dslraser 1 Reply Last reply Reply Quote 0
                        • dslraser
                          dslraser Forum Testing Most Active @UdoG last edited by dslraser

                          @UdoG sagte in Alexa-Gerät in IoT mit variablen Funktionen:

                          ich frage bei Änderung des summary-Datenpunktes von Alexa ab, ob einer der beiden Fernseher angesprochen wurde. Dann werte ich den Text weiter aus ob z.B. an/aus/ein/ab gesagt wurde, oder Lauter/leiser usw.

                          und genau das ist das Problem.
                          Alexa selbst hat dann keinen Datenpunkt der geschaltet wird und gibt Dir dann blöde Fragen, wie kann ich nicht, oder gibt es nicht...., geschaltet wird aber trotzdem, weil das Dein Script macht.
                          Dann solltest Du wenigstens einen Dummy in der Alexa App schalten lassen, dann kommt auch keine "blöde Rückfrage", aber dann könntest Du auch gleich einen richtigen Button schalten lassen.

                          1 Reply Last reply Reply Quote 0
                          • U
                            UdoG last edited by

                            Ja, ja, und genau dieser Dummy ist mein Problem! Der kann nämlich nur An/Aus. Dachte es gibt eine Trick, aber offensichtlich ja (noch) nicht.

                            dslraser 1 Reply Last reply Reply Quote 0
                            • dslraser
                              dslraser Forum Testing Most Active @UdoG last edited by

                              @UdoG sagte in Alexa-Gerät in IoT mit variablen Funktionen:

                              Ja, ja, und genau dieser Dummy ist mein Problem! Der kann nämlich nur An/Aus. Dachte es gibt eine Trick, aber offensichtlich ja (noch) nicht.

                              ich habe Dir doch oben geschrieben wie man einen Button mit nur an erstellt...?

                              1 Reply Last reply Reply Quote 0
                              • U
                                UdoG last edited by

                                Das würde aber, soweit ich es verstehe, für jeden Fernseher, für jede erdenkliche Aktion ein IoT-Alexa-Gerät (Button) bedeuten. Macht bei 2 Fernsehern und 20 zu schaltenden Programmen plus An/Aus usw. ca 50 Geräte!

                                dslraser 2 Replies Last reply Reply Quote 0
                                • dslraser
                                  dslraser Forum Testing Most Active @UdoG last edited by dslraser

                                  @UdoG
                                  jo, und ? Wenn die Namen eindeutig sind ist das doch Wurscht. Ich habe ca 250 iot Geräte.
                                  Ich stelle gleich mal ein kurzes Beispiel rein. Damit könntest Du per Script die Datenpunkte erstellen. iot Geräte werden dann automatisch erzeugt.

                                  1 Reply Last reply Reply Quote 0
                                  • dslraser
                                    dslraser Forum Testing Most Active @UdoG last edited by dslraser

                                    @UdoG

                                    Hier mal ein " nicht getesteter Vorschlag"

                                    Bildschirmfoto 2020-07-17 um 14.48.27.png

                                    Das wird erstellt

                                    Bildschirmfoto 2020-07-17 um 14.25.43.png

                                    Beispiel RAW

                                    Bildschirmfoto 2020-07-17 um 14.43.24.png
                                    In der Funktion Datenpunkte_erstellen in den Zeilen 132/133 siehst Du wie die Datenpunkte erstellt werden.

                                    Für diese Funktion muss im Javascript Adapter der Haken bei setObject gesetzt sein.

                                    Bildschirmfoto 2020-07-17 um 14.37.53.png

                                    Edit: Export geändert am 17.07.2020 15:04 Uhr

                                    <xml xmlns="https://developers.google.com/blockly/xml">
                                      <variables>
                                        <variable id="6.Ie+,O^_9;a+%t[+=66">Alexa_verwenden</variable>
                                        <variable id="X{YCwT6)UO~XY`Vc}2I4">anlegen_in</variable>
                                        <variable id="@dfi39Koz.GLoDlWKLpn">01_ARD_Kuche</variable>
                                        <variable id="ru0(_Dim1wF4joGWSU1R">Alexa_SmartName_ard_Kueche</variable>
                                        <variable id="{^xyc.S,O80nk39h+|Q@">01_ARD_Wohnzimmer</variable>
                                        <variable id="K+xmJ]W]70ond6tKJDp7">Alexa_SmartName_ard_Wohnzimmer</variable>
                                        <variable type="timeout" id="start">start</variable>
                                      </variables>
                                      <block type="procedures_defcustomnoreturn" id="D:0E=~0D8*EFnn8f|sd." x="13" y="13">
                                        <mutation statements="false"></mutation>
                                        <field name="NAME">Datenpunkte_erstellen</field>
                                        <field name="SCRIPT">LyoqCiAqIENyZWF0ZSBzdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wIG9yIGphdmFzY3JpcHQueAogKiBDdXJyZW50IFZlcnNpb246ICAgICBodHRwczovL2dpdGh1Yi5jb20vTWljLU0vaW9icm9rZXIuY3JlYXRlVXNlclN0YXRlcwogKiBTdXBwb3J0OiAgICAgICAgICAgICBodHRwczovL2ZvcnVtLmlvYnJva2VyLm5ldC90b3BpYy8yNjgzOS8KICogQXV0b3I6ICAgICAgICAgICAgICAgTWljIChpb0Jyb2tlcikgfCBNaWMtTSAoZ2l0aHViKQogKiBWZXJzaW9uOiAgICAgICAgICAgICAxLjEgKDI2IEphbnVhcnkgMjAyMCkKICogRXhhbXBsZTogICAgICAgICAgICAgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWMtTS9pb2Jyb2tlci5jcmVhdGVVc2VyU3RhdGVzI2JlaXNwaWVsCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIFBMRUFTRSBOT1RFOiBQZXIgaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgCiAqICAgICAgICAgICAgICBleGVjdXRlcyB0aGUgY2FsbGJhY2sgUFJJT1IgdG8gY29tcGxldGluZyB0aGUgc3RhdGUgY3JlYXRpb24uIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlci4gCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIEBwYXJhbSB7c3RyaW5nfSB3aGVyZSAgICAgICAgICBXaGVyZSB0byBjcmVhdGUgdGhlIHN0YXRlOiAnMF91c2VyZGF0YS4wJyBvciAnamF2YXNjcmlwdC54Jy4KICogQHBhcmFtIHtib29sZWFufSBmb3JjZSAgICAgICAgIEZvcmNlIHN0YXRlIGNyZWF0aW9uIChvdmVyd3JpdGUpLCBpZiBzdGF0ZSBpcyBleGlzdGluZy4KICogQHBhcmFtIHthcnJheX0gc3RhdGVzVG9DcmVhdGUgIFN0YXRlKHMpIHRvIGNyZWF0ZS4gc2luZ2xlIGFycmF5IG9yIGFycmF5IG9mIGFycmF5cwogKiBAcGFyYW0ge29iamVjdH0gW2NhbGxiYWNrXSAgICAgT3B0aW9uYWw6IGEgY2FsbGJhY2sgZnVuY3Rpb24gLS0gVGhpcyBwcm92aWRlZCBmdW5jdGlvbiB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIGFsbCBzdGF0ZXMgYXJlIGNyZWF0ZWQuCiAqLwpmdW5jdGlvbiBjcmVhdGVVc2VyU3RhdGVzKHdoZXJlLCBmb3JjZSwgc3RhdGVzVG9DcmVhdGUsIGNhbGxiYWNrID0gdW5kZWZpbmVkKSB7CiAKICAgIGNvbnN0IFdBUk4gPSBmYWxzZTsgLy8gT25seSBmb3IgMF91c2VyZGF0YS4wOiBUaHJvd3Mgd2FybmluZyBpbiBsb2csIGlmIHN0YXRlIGlzIGFscmVhZHkgZXhpc3RpbmcgYW5kIGZvcmNlPWZhbHNlLiBEZWZhdWx0IGlzIGZhbHNlLCBzbyBubyB3YXJuaW5nIGluIGxvZywgaWYgc3RhdGUgZXhpc3RzLgogICAgY29uc3QgTE9HX0RFQlVHID0gZmFsc2U7IC8vIFRvIGRlYnVnIHRoaXMgZnVuY3Rpb24sIHNldCB0byB0cnVlCiAgICAvLyBQZXIgaXNzdWUgIzQ3NCAoaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCksIHRoZSB1c2VkIGZ1bmN0aW9uIHNldE9iamVjdCgpIGV4ZWN1dGVzIHRoZSBjYWxsYmFjayAKICAgIC8vIGJlZm9yZSB0aGUgc3RhdGUgaXMgYWN0dWFsIGNyZWF0ZWQuIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlciBhcyBhIHdvcmthcm91bmQuCiAgICBjb25zdCBERUxBWSA9IDUwOyAvLyBEZWxheSBpbiBtaWxsaXNlY29uZHMgKG1zKS4gSW5jcmVhc2UgdGhpcyB0byAxMDAsIGlmIGl0IGlzIG5vdCB3b3JraW5nLgoKICAgIC8vIFZhbGlkYXRlICJ3aGVyZSIKICAgIGlmICh3aGVyZS5lbmRzV2l0aCgnLicpKSB3aGVyZSA9IHdoZXJlLnNsaWNlKDAsIC0xKTsgLy8gUmVtb3ZlIHRyYWlsaW5nIGRvdAogICAgaWYgKCAod2hlcmUubWF0Y2goL14oKGphdmFzY3JpcHRcLihbMS05XVswLTldfFswLTldKSkkfDBfdXNlcmRhdGFcLjAkKS8pID09IG51bGwpICkgewogICAgICAgIGxvZygnVGhpcyBzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCB0byBjcmVhdGUgc3RhdGVzIHVuZGVyIFsnICsgd2hlcmUgKyAnXScsICdlcnJvcicpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyBQcmVwYXJlICJzdGF0ZXNUb0NyZWF0ZSIgc2luY2Ugd2UgYWxzbyBhbGxvdyBhIHNpbmdsZSBzdGF0ZSB0byBjcmVhdGUKICAgIGlmKCFBcnJheS5pc0FycmF5KHN0YXRlc1RvQ3JlYXRlWzBdKSkgc3RhdGVzVG9DcmVhdGUgPSBbc3RhdGVzVG9DcmVhdGVdOyAvLyB3cmFwIGludG8gYXJyYXksIGlmIGp1c3Qgb25lIGFycmF5IGFuZCBub3QgaW5zaWRlIGFuIGFycmF5CgogICAgLy8gQWRkICJ3aGVyZSIgdG8gU1RBVEVTX1RPX0NSRUFURQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGF0ZXNUb0NyZWF0ZS5sZW5ndGg7IGkrKykgewogICAgICAgIGxldCBscFBhdGggPSBzdGF0ZXNUb0NyZWF0ZVtpXVswXS5yZXBsYWNlKC9cLipcLi9nLCAnLicpOyAvLyByZXBsYWNlIGFsbCBtdWx0aXBsZSBkb3RzIGxpa2UgJy4uJywgJy4uLicgd2l0aCBhIHNpbmdsZSAnLicKICAgICAgICBscFBhdGggPSBscFBhdGgucmVwbGFjZSgvXigoamF2YXNjcmlwdFwuKFsxLTldWzAtOV18WzAtOV0pXC4pfDBfdXNlcmRhdGFcLjBcLikvLCcnKSAvLyByZW1vdmUgYW55IGphdmFzY3JpcHQueC4gLyAwX3VzZXJkYXRhLjAuIGZyb20gYmVnaW5uaW5nCiAgICAgICAgbHBQYXRoID0gd2hlcmUgKyAnLicgKyBscFBhdGg7IC8vIGFkZCB3aGVyZSB0byBiZWdpbm5pbmcgb2Ygc3RyaW5nCiAgICAgICAgc3RhdGVzVG9DcmVhdGVbaV1bMF0gPSBscFBhdGg7CiAgICB9CgogICAgaWYgKHdoZXJlICE9ICcwX3VzZXJkYXRhLjAnKSB7CiAgICAgICAgLy8gQ3JlYXRlIFN0YXRlcyB1bmRlciBqYXZhc2NyaXB0LngKICAgICAgICBsZXQgbnVtU3RhdGVzID0gc3RhdGVzVG9DcmVhdGUubGVuZ3RoOwogICAgICAgIHN0YXRlc1RvQ3JlYXRlLmZvckVhY2goZnVuY3Rpb24obG9vcFBhcmFtKSB7CiAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBOb3cgd2UgYXJlIGNyZWF0aW5nIG5ldyBzdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddJyk7CiAgICAgICAgICAgIGxldCBsb29wSW5pdCA9IChsb29wUGFyYW1bMV1bJ2RlZiddID09IHVuZGVmaW5lZCkgPyBudWxsIDogbG9vcFBhcmFtWzFdWydkZWYnXTsgLy8gbWltaWMgc2FtZSBiZWhhdmlvciBhcyBjcmVhdGVTdGF0ZSBpZiBubyBpbml0IHZhbHVlIGlzIHByb3ZpZGVkCiAgICAgICAgICAgIGNyZWF0ZVN0YXRlKGxvb3BQYXJhbVswXSwgbG9vcEluaXQsIGZvcmNlLCBsb29wUGFyYW1bMV0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICBpZiAobnVtU3RhdGVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgcHJvY2Vzc2VkLicpOwogICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHsgLy8gZXhlY3V0ZSBpZiBhIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCB0byBwYXJhbWV0ZXIgY2FsbGJhY2sKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEZ1bmN0aW9uIHRvIGNhbGxiYWNrIHBhcmFtZXRlciB3YXMgcHJvdmlkZWQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICB9IGVsc2UgewogICAgICAgIC8vIENyZWF0ZSBTdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wCiAgICAgICAgbGV0IG51bVN0YXRlcyA9IHN0YXRlc1RvQ3JlYXRlLmxlbmd0aDsKICAgICAgICBsZXQgY291bnRlciA9IC0xOwogICAgICAgIHN0YXRlc1RvQ3JlYXRlLmZvckVhY2goZnVuY3Rpb24obG9vcFBhcmFtKSB7CiAgICAgICAgICAgIGNvdW50ZXIgKz0gMTsKICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nICgnW0RlYnVnXSBDdXJyZW50bHkgcHJvY2Vzc2luZyBmb2xsb3dpbmcgc3RhdGU6IFsnICsgbG9vcFBhcmFtWzBdICsgJ10nKTsKICAgICAgICAgICAgaWYoICgkKGxvb3BQYXJhbVswXSkubGVuZ3RoID4gMCkgJiYgKGV4aXN0c1N0YXRlKGxvb3BQYXJhbVswXSkpICkgeyAvLyBXb3JrYXJvdW5kIGR1ZSB0byBodHRwczovL2dpdGh1Yi5jb20vaW9Ccm9rZXIvaW9Ccm9rZXIuamF2YXNjcmlwdC9pc3N1ZXMvNDc4CiAgICAgICAgICAgICAgICAvLyBTdGF0ZSBpcyBleGlzdGluZy4KICAgICAgICAgICAgICAgIGlmIChXQVJOICYmICFmb3JjZSkgbG9nKCdTdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddIGlzIGFscmVhZHkgZXhpc3RpbmcgYW5kIHdpbGwgbm8gbG9uZ2VyIGJlIGNyZWF0ZWQuJywgJ3dhcm4nKTsKICAgICAgICAgICAgICAgIGlmICghV0FSTiAmJiBMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBTdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddIGlzIGFscmVhZHkgZXhpc3RpbmcuIE9wdGlvbiBmb3JjZSAoPW92ZXJ3cml0ZSkgaXMgc2V0IHRvIFsnICsgZm9yY2UgKyAnXS4nKTsKICAgICAgICAgICAgICAgIGlmKCFmb3JjZSkgewogICAgICAgICAgICAgICAgICAgIC8vIFN0YXRlIGV4aXN0cyBhbmQgc2hhbGwgbm90IGJlIG92ZXJ3cml0dGVuIHNpbmNlIGZvcmNlPWZhbHNlCiAgICAgICAgICAgICAgICAgICAgLy8gU28sIHdlIGRvIG5vdCBwcm9jZWVkLgogICAgICAgICAgICAgICAgICAgIG51bVN0YXRlcy0tOwogICAgICAgICAgICAgICAgICAgIGlmIChudW1TdGF0ZXMgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCEnKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgeyAvLyBleGVjdXRlIGlmIGEgZnVuY3Rpb24gd2FzIHByb3ZpZGVkIHRvIHBhcmFtZXRlciBjYWxsYmFjawogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFuIG9wdGlvbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCwgd2hpY2ggd2UgYXJlIGdvaW5nIHRvIGV4ZWN1dGUgbm93LicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGdvIG91dCBhbmQgY29udGludWUgd2l0aCBuZXh0IGVsZW1lbnQgaW4gbG9vcC4KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xODQ1MjkyMC9jb250aW51ZS1pbi1jdXJzb3ItZm9yZWFjaAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gLy8gaWYoIWZvcmNlKQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBTdGF0ZSBpcyBub3QgZXhpc3Rpbmcgb3IgZm9yY2UgPSB0cnVlLCBzbyB3ZSBhcmUgY29udGludWluZyB0byBjcmVhdGUgdGhlIHN0YXRlIHRocm91Z2ggc2V0T2JqZWN0KCkuCiAgICAgICAgICAgIGxldCBvYmogPSB7fTsKICAgICAgICAgICAgb2JqLnR5cGUgPSAnc3RhdGUnOwogICAgICAgICAgICBvYmoubmF0aXZlID0ge307CiAgICAgICAgICAgIG9iai5jb21tb24gPSBsb29wUGFyYW1bMV07CiAgICAgICAgICAgIHNldE9iamVjdChsb29wUGFyYW1bMF0sIG9iaiwgZnVuY3Rpb24gKGVycikgewogICAgICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgICAgICAgIGxvZygnQ2Fubm90IHdyaXRlIG9iamVjdCBmb3Igc3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXTogJyArIGVycik7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBOb3cgd2UgYXJlIGNyZWF0aW5nIG5ldyBzdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddJykKICAgICAgICAgICAgICAgICAgICBsZXQgaW5pdCA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgaWYobG9vcFBhcmFtWzFdLmRlZiA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxvb3BQYXJhbVsxXS50eXBlID09PSAnbnVtYmVyJykgaW5pdCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxvb3BQYXJhbVsxXS50eXBlID09PSAnYm9vbGVhbicpIGluaXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYobG9vcFBhcmFtWzFdLnR5cGUgPT09ICdzdHJpbmcnKSBpbml0ID0gJyc7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW5pdCA9IGxvb3BQYXJhbVsxXS5kZWY7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXRlKGxvb3BQYXJhbVswXSwgaW5pdCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gc2V0U3RhdGUgZHVyY2hnZWbDvGhydDogJyArIGxvb3BQYXJhbVswXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1TdGF0ZXMtLTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudW1TdGF0ZXMgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gQWxsIHN0YXRlcyBwcm9jZXNzZWQuJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgeyAvLyBleGVjdXRlIGlmIGEgZnVuY3Rpb24gd2FzIHByb3ZpZGVkIHRvIHBhcmFtZXRlciBjYWxsYmFjawogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gRnVuY3Rpb24gdG8gY2FsbGJhY2sgcGFyYW1ldGVyIHdhcyBwcm92aWRlZCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0sIERFTEFZICsgKDIwICogY291bnRlcikgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICB9Cn0KCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgovL0RhdGVucHVua3RlIGbDvHIgU2VuZGVyIGVyc3RlbGxlbiBtaXQgU21hcnROYW1lbiBmw7xyIGlvdAppZiAoQWxleGFfdmVyd2VuZGVuID09IHRydWUpewpsZXQgc3RhdGVzVG9DcmVhdGUgPSBbCiAgICBbJ1RWLlNlbmRlci4wMUFSRF9LdWVjaGUnLCB7J25hbWUnOidBUkQgS8O8Y2hlJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOididXR0b24nLCdkZWYnOnRydWUsInNtYXJ0TmFtZSI6IHsiZGUiOiBBbGV4YV9TbWFydE5hbWVfYXJkX0t1ZWNoZSwic21hcnRUeXBlIjogIlNXSVRDSCJ9IH1dLAogICAgWydUVi5TZW5kZXIuMDFBUkRfV29obnppbW1lcicsIHsnbmFtZSc6J0FSRCBXb2huemltbWVyJywgJ3R5cGUnOidib29sZWFuJywgJ3JlYWQnOnRydWUsICd3cml0ZSc6dHJ1ZSwgJ3JvbGUnOididXR0b24nLCdkZWYnOnRydWUsInNtYXJ0TmFtZSI6IHsiZGUiOiBBbGV4YV9TbWFydE5hbWVfYXJkX1dvaG56aW1tZXIsInNtYXJ0VHlwZSI6ICJTV0lUQ0gifSB9XSwKCl07CmNyZWF0ZVVzZXJTdGF0ZXMoYW5sZWdlbl9pbix0cnVlLCBzdGF0ZXNUb0NyZWF0ZSl9OwoKLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi8vRGF0ZW5wdW5rdGUgZsO8ciBTZW5kZXIgZXJzdGVsbGVuIG9obmUgU21hcnROYW1lbiBmw7xyIGlvdAppZiAoQWxleGFfdmVyd2VuZGVuID09IGZhbHNlKXsKbGV0IHN0YXRlc1RvQ3JlYXRlID0gWwogICAgWydUVi5TZW5kZXIuMDFBUkRfS3VlY2hlJywgeyduYW1lJzonQVJEIEvDvGNoZScsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonYnV0dG9uJywnZGVmJzp0cnVlLCJzbWFydE5hbWUiOiBmYWxzZSB9XSwKICAgIFsnVFYuU2VuZGVyLjAxQVJEX1dvaG56aW1tZXInLCB7J25hbWUnOidBUkQgV29obnppbW1lcicsICd0eXBlJzonYm9vbGVhbicsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonYnV0dG9uJywnZGVmJzp0cnVlLCJzbWFydE5hbWUiOiBmYWxzZSB9XSwKCl07CmNyZWF0ZVVzZXJTdGF0ZXMoYW5sZWdlbl9pbix0cnVlLCBzdGF0ZXNUb0NyZWF0ZSl9OwoKCi8vRnVua3Rpb24gbWFpbiBtaXQgVmVyesO2Z2VydW5nIGF1ZnJ1ZmVuCnRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKIC8vIG1haW4oKTsKfSwgNTAwMCk7Cm1haW4oKTsKCg==</field>
                                        <comment pinned="false" h="80" w="160">Datenpunkte erstellen</comment>
                                      </block>
                                      <block type="variables_set" id="-}0zHt+l]S;,hHTbYxLo" x="13" y="62">
                                        <field name="VAR" id="6.Ie+,O^_9;a+%t[+=66">Alexa_verwenden</field>
                                        <value name="VALUE">
                                          <block type="logic_boolean" id="bscLe5m#^~iX;Sg.p@or">
                                            <field name="BOOL">TRUE</field>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="variables_set" id=";?fMsQ~nMP,W:*R,z,hL">
                                            <field name="VAR" id="X{YCwT6)UO~XY`Vc}2I4">anlegen_in</field>
                                            <value name="VALUE">
                                              <block type="text" id="TZDVFCHb+7p4,v#~lC!*">
                                                <field name="TEXT">javascript.0</field>
                                              </block>
                                            </value>
                                            <next>
                                              <block type="variables_set" id="C?p|h2cd|bu.3mh7lsvy">
                                                <field name="VAR" id="ru0(_Dim1wF4joGWSU1R">Alexa_SmartName_ard_Kueche</field>
                                                <value name="VALUE">
                                                  <block type="text" id="7;plX_/D?sv1[teu5=]t">
                                                    <field name="TEXT">a. r. d. am Küchenfernseher</field>
                                                  </block>
                                                </value>
                                                <next>
                                                  <block type="variables_set" id="ZPY[FBz1yhp}E/xe)uC/">
                                                    <field name="VAR" id="K+xmJ]W]70ond6tKJDp7">Alexa_SmartName_ard_Wohnzimmer</field>
                                                    <value name="VALUE">
                                                      <block type="text" id="vn+BpXMs/e+e}Y#G+$F`">
                                                        <field name="TEXT">a. r. d. am Wohnzimmerfernseher</field>
                                                      </block>
                                                    </value>
                                                    <next>
                                                      <block type="timeouts_settimeout" id="8FQd(trxfKDt`(FG0(?=" collapsed="true">
                                                        <field name="NAME">start</field>
                                                        <field name="DELAY">1000</field>
                                                        <field name="UNIT">ms</field>
                                                        <statement name="STATEMENT">
                                                          <block type="procedures_callcustomnoreturn" id="}{A#y;jy-Pl_)n6[of`b">
                                                            <mutation name="Datenpunkte_erstellen"></mutation>
                                                          </block>
                                                        </statement>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                      <block type="procedures_defnoreturn" id="|r?w}:z)r=!T3O=4ydx]" x="12" y="212">
                                        <field name="NAME">main</field>
                                        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                        <statement name="STACK">
                                          <block type="variables_set" id="ag_bO7$^e3+#+uyJ/xIK">
                                            <field name="VAR" id="@dfi39Koz.GLoDlWKLpn">01_ARD_Kuche</field>
                                            <value name="VALUE">
                                              <block type="text_join" id="zX:u`t:el19#8Gx#I$/r">
                                                <mutation items="2"></mutation>
                                                <value name="ADD0">
                                                  <block type="variables_get" id=";vF*ad+$QX1J9)W9Y{[x">
                                                    <field name="VAR" id="X{YCwT6)UO~XY`Vc}2I4">anlegen_in</field>
                                                  </block>
                                                </value>
                                                <value name="ADD1">
                                                  <block type="text" id="gUZ[0$uF}}r+ZipH*rJ}">
                                                    <field name="TEXT">.TV.Sender.01ARD_Kueche</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <next>
                                              <block type="variables_set" id="^KbkF$2YZhdU`lGIJl-.">
                                                <field name="VAR" id="{^xyc.S,O80nk39h+|Q@">01_ARD_Wohnzimmer</field>
                                                <value name="VALUE">
                                                  <block type="text_join" id=",afo:T.i?(F4=_mhXAxQ">
                                                    <mutation items="2"></mutation>
                                                    <value name="ADD0">
                                                      <block type="variables_get" id="@J8Z}R|l_VVu%:|J0(6O">
                                                        <field name="VAR" id="X{YCwT6)UO~XY`Vc}2I4">anlegen_in</field>
                                                      </block>
                                                    </value>
                                                    <value name="ADD1">
                                                      <block type="text" id="7UO!,mpF;o98`PT=q0`$">
                                                        <field name="TEXT">.TV.Sender.01ARD_Wohnzimmer</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <next>
                                                  <block type="comment" id="nh{M%TItU-A5r@8tJYM5">
                                                    <field name="COMMENT">hier werden dann die Sender geschaltet</field>
                                                    <next>
                                                      <block type="debug" id="4itSTAg7)iFi|9(v!I)l">
                                                        <field name="Severity">log</field>
                                                        <value name="TEXT">
                                                          <shadow type="text" id="(2aP6ku-6Lr{p]cvmJ]y">
                                                            <field name="TEXT"></field>
                                                          </shadow>
                                                          <block type="text" id="@-T,wm%6r:E5EA]{*x,T">
                                                            <field name="TEXT"> Das Blockly ist jetzt in main.</field>
                                                          </block>
                                                        </value>
                                                        <next>
                                                          <block type="on_ext" id="D?NcL*fH:ST$rbjpojqY">
                                                            <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                                            <field name="CONDITION">any</field>
                                                            <field name="ACK_CONDITION"></field>
                                                            <value name="OID0">
                                                              <shadow type="field_oid" id="I9/DvVSEK]p:S.2Now{A">
                                                                <field name="oid">default</field>
                                                              </shadow>
                                                              <block type="variables_get" id="]H2Q!sbM6{v7N]@%/~B3">
                                                                <field name="VAR" id="@dfi39Koz.GLoDlWKLpn">01_ARD_Kuche</field>
                                                              </block>
                                                            </value>
                                                            <statement name="STATEMENT">
                                                              <block type="comment" id="L`}(D0/wD_2aSJTnv#jz">
                                                                <field name="COMMENT">hier die Harmony Aktion</field>
                                                              </block>
                                                            </statement>
                                                            <next>
                                                              <block type="on_ext" id="?fCu=$)Bj|4P$s(f,p}0">
                                                                <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                                                <field name="CONDITION">any</field>
                                                                <field name="ACK_CONDITION"></field>
                                                                <value name="OID0">
                                                                  <shadow type="field_oid" id="fi^ogu~$#Md0J/w4k9k{">
                                                                    <field name="oid">default</field>
                                                                  </shadow>
                                                                  <block type="variables_get" id="N[+zST]p!UPv[$T*Su?N">
                                                                    <field name="VAR" id="{^xyc.S,O80nk39h+|Q@">01_ARD_Wohnzimmer</field>
                                                                  </block>
                                                                </value>
                                                                <statement name="STATEMENT">
                                                                  <block type="comment" id="]Hb;XZ3Fb}Lp6$rt#Kr2">
                                                                    <field name="COMMENT">hier die Harmony Aktion</field>
                                                                  </block>
                                                                </statement>
                                                              </block>
                                                            </next>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </next>
                                          </block>
                                        </statement>
                                      </block>
                                    </xml>
                                    

                                    1 Reply Last reply Reply Quote 0
                                    • U
                                      UdoG last edited by

                                      das ist mir etwas zu sehr 'von hinten durch die Brust ins Auge', wie man so schön sagt. Was machst du, wenn sich die Programmbelegung ändert?
                                      Ich habe einen Datenpunkt 'TVProgramme', in dem schön durch Komma getrennt die Programmnamen und die dazugehörige Kanalnummer stehen. Diesen Datenpunkt benutze ich im Script. Sollte sich an der Programmbelegung was ändern, muss ich nur diesen einen Datenpunkt ändern.
                                      Aber es gibt ja immer viele Wege …
                                      Ich warte also auf V3, oder Weihnachten!
                                      Trotzdem vielen Dank

                                      Gruß Udo

                                      dslraser 1 Reply Last reply Reply Quote 0
                                      • dslraser
                                        dslraser Forum Testing Most Active @UdoG last edited by

                                        @UdoG sagte in Alexa-Gerät in IoT mit variablen Funktionen:

                                        Was machst du, wenn sich die Programmbelegung ändert?

                                        habe ich schon ewig nicht geändert. Und ich selbst schalte ja über die VU (ZAP reference)

                                        Ich wollte Dir nur helfen und eine Lösung finden.
                                        Alles Gut, wenn Du das so nicht willst ist das für mich auch okay.

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate
                                        FAQ Cloud / IOT
                                        HowTo: Node.js-Update
                                        HowTo: Backup/Restore
                                        Downloads
                                        BLOG

                                        926
                                        Online

                                        31.9k
                                        Users

                                        80.2k
                                        Topics

                                        1.3m
                                        Posts

                                        alexa cloud iot
                                        2
                                        18
                                        857
                                        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