Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Alexa Wecker schaltet Beleuchtung an

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Alexa Wecker schaltet Beleuchtung an

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

      Aus ein Javascript ein "Wert" in einer Blockly Variable schreiben. Geht das?


      Es gibt in Blockly ja die Javascript Funktion.
      Dort kann ich ja ein Script erstellen.
      In Blockly selber kann ich ja Variablen erstellen.

      In der Javascript Funktion ist ein Script geschrieben, der ein "Wert" von einem Datenpunkt ermittelt. Diesen "Wert" muss ich jetzt irgendwie in Blockly selber übertragen/übermitteln.

      Im Moment wird der Wert in ein anderen Datenpunkt geschrieben. Und dann von Blockly wieder ausgelesen.
      Das würde ich gerne umgehen, ohne das ich ein "extra" Datenpunkt haben muss.

      Hoffe man versteht das 🙂

      Nach erfolgreicher Lösung hier der Blockly Code mit Erklärung:
      https://www.elzershark.com/forum/index.php?thread/66-amazon-echo-alexa-wecker-beleuchtung-an

      Der Block "RegExp" gibt es erst ab der Javascript Adapter Version 4.1.13
      Wer den Block nicht hat bitte den Adapter Upgraden auf min. 4.1.13

      Zwischenablage-1.jpg

      Danke an paul53 und sveni_lee

      paul53 Homoran 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @Elzershark last edited by

        @Elzershark sagte:

        Aus ein Javascript ein "Wert" in einer Blockly Variable schreiben. Geht das?

        Dazu benötigt man nicht die Javascript-Funktion in Blockly.

        Blockly_temp.JPG

        1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @Elzershark last edited by

          @Elzershark sagte in Aus Javascript ein "Wert" in Blockly übertragen:

          Hoffe man versteht das

          Leider nein.

          Schon der Einleitungssatz ergibt für mich keinen Sinn:

          @Elzershark sagte in Aus Javascript ein "Wert" in Blockly übertragen:

          Aus ein Javascript ein "Wert" in einer Blockly Variable schreiben.

          Dann diese Formulierung:

          @Elzershark sagte in Aus Javascript ein "Wert" in Blockly übertragen:

          Es gibt in Blockly ja die Javascript Funktion.

          Meinst du, dass man in Blockly Funktionen nutzen kann?
          SOnst ergibt diese Aussage ebenfalls keinen Sinn, da Blockly eine Version von Javascript ist und nicht umgekehrt

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

            Darum geht es ja.
            Es soll kein Datenpunkt erstellt werden.
            Über Blockly selber den Wert zu ermitteln, geht leider nicht.
            Da sich der Name des Datenpunktes sich laufend ändert.

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

              Alexa2 Adapter.
              Über Alexa ein Wecker erstellen.
              Dadurch werden Datenpunkte erstellt im Alexa2 Adapter.
              Das auszulesen geht nur über ein Java Script. Aber nicht durch Blockly selber.

              Daher die Frage, ob es eine Möglichkeit gibt, das quasy aus dem erstellten Script ein Wert direkt an Blockly weitergeleitet wird.

              paul53 1 Reply Last reply Reply Quote 0
              • Elzershark
                Elzershark last edited by

                Das ist der Code:

                var timeout;
                  var wecker;
                var neu;
                
                timeout = setTimeout(function () {
                
                //  const enables = $('alexa2.0.Echo-Devices.G090U50991150QCB.Alarm.*.enabled');
                const enables = $('alexa2.0.Echo-Devices.*.Alarm.*.enabled');
                enables.each(function(id, i) {
                  
                if (getState(id).val == true) {
                      
                neu = id.slice(0, -8);   
                neu = neu + '.time';       
                
                setStateDelayed('Meine_Geräte.0.test', getState(neu).val, false, parseInt(0, 10), false);
                
                } 
                
                });
                }, 5);
                

                Dort wird ja in Meine_Geräte.0.test ein wert geschrieben.
                Das würde ich gerne umgehen, so das der Wert nicht in den Datenpunkt geschrieben wird, sondern irgendwie direkt an Blockly.

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @Elzershark last edited by

                  @Elzershark sagte:

                  Das auszulesen geht nur über ein Java Script. Aber nicht durch Blockly selber.

                  Das geht auch mit Blockly.

                  Elzershark 1 Reply Last reply Reply Quote 0
                  • Elzershark
                    Elzershark @paul53 last edited by

                    @paul53 sagte in Aus Javascript ein "Wert" in Blockly übertragen:

                    @Elzershark sagte:

                    Das auszulesen geht nur über ein Java Script. Aber nicht durch Blockly selber.

                    Das geht auch mit Blockly.

                    Das man Werte von laufend sich ändernden Datenpunkte auslesen kann? Wie?

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @Elzershark last edited by paul53

                      @Elzershark sagte:

                      Das ist der Code:

                      Das Blockly mit gleichem Javascript-Code, außer dass die Werte in ein Array statt in einen Datenpunkt geschrieben werden:

                      Blockly_temp.JPG

                      Wie damit Wecker realisiert werden sollen, ist mir unklar, da das Skript nur einmal ausgeführt wird, denn es fehlt ein Trigger.

                      Elzershark 1 Reply Last reply Reply Quote 1
                      • Elzershark
                        Elzershark @paul53 last edited by Elzershark

                        @paul53
                        Hammer.
                        Danke schön..
                        Sehr cool. 🙂

                        Trigger hab ich im Moment durch Aktivierungswort "Wecker" von Alexa.
                        Aber so kann ich das komplett anders machen... Nice.. 😁👍

                        Wenn Wecker klingelt = Licht an 😁

                        J 1 Reply Last reply Reply Quote 0
                        • J
                          Jan1 @Elzershark last edited by

                          @Elzershark
                          Genau das Problem wollte ich auch mal angehen. Den beschissenen Wecker in Alexa durch ein Script in IOBroker dazu bringen vernünftig Geräte zu steuern und nicht nur stupide ein Weckton ausgeben.
                          Das Problem war genau die Auswertung des sich bei jedem über Alexa erstellten Wecker anderem DP.
                          Wenn Du das Script für die DP Auswertung fertig hast, könntest das bitte hier posten. Dann bastle ich mir auch ein schönen Wecker.

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

                            Hier mein Vorläufiges Script.
                            Es funktioniert mit einem ausgesuchten Echo.
                            Ich werde es noch weiter entwickeln, so das es mit mehreren eingestellten Weckern für 1 Echo funktioniert.

                            Pro Echo muss 1 Blockly erstellt werden und eingerichtet werden.

                            https://www.elzershark.com/forum/index.php?thread/66-amazon-echo-alexa-wecker-beleuchtung-an

                            ostseereiter J 2 Replies Last reply Reply Quote 0
                            • ostseereiter
                              ostseereiter @Elzershark last edited by

                              @Elzershark Na da hast ja wieder Futter für deine Videos.

                              1 Reply Last reply Reply Quote 0
                              • J
                                Jan1 @Elzershark last edited by

                                @Elzershark
                                Das einzige was hier noch fehlt ist das Ausschalten des Wecktones, da ich hier Musik über den Dot wiedergebe. Der Rest kann so stehen bleiben.

                                1 Reply Last reply Reply Quote 0
                                • S
                                  sveni_lee last edited by

                                  eventuell ahbe ich das ja falsch verstanden, aber warum triggert ihr nicht einfach die Wecker von Alexa?
                                  Bei mir ist es so, wenn der Wecker von Alexa klingelt gehen die Rolläden im Schlafzimmer hoch. Und dabei ist es
                                  egal welche Weckzeit (Wochenende oder Arbeitswoche) gerade aktuell ist.
                                  Mann muß doch den DP der getriggert werden soll nicht konkret bestimmen, man kann doch auch eine RegExp verwenden.

                                  on(/^alexa2.0\.Echo-Devices\.G070xxx\.Alarm\..+triggered$/, function(dp) {}); 
                                  

                                  das triggert jeden Wecker eines bestimmten Echo-Devices.

                                  J 1 Reply Last reply Reply Quote 0
                                  • J
                                    Jan1 @sveni_lee last edited by

                                    @sveni_lee
                                    Hast flasch verstanden.
                                    Ich möchte bequem ein Wecker stellen über Alexa, aber nicht den blöden Weckton hören sondern ein Script starten, so wie Du auch. Jetzt kommt der Unterschied, wenn ich per Sprache ein neuen Wecker anlege, wird jedes mal ein neuer DP dafür generiert und auf was soll ich mein Script triggern, wenn jedes mal ein anderer DP der Wecker ist?
                                    Wenn Du feste Wecker hast, die Du nur ein und ausschaltest, ist da kein Problem, da der DP der selbe bleibt und Du dann auch darauf triggern kannst.

                                    Ich versteh eh nicht warum man mit dem Alexa eigenen Wecker nichts schalten und nur diese beschissenen Töne wählen kann. Da kann mein alter Radiowecker aufm Nachtisch mehr und der ist alles andere als smart.

                                    Ich habe das Script noch nicht getestet, aber es wertet die "summery" aus, welche sich beim Erstelle des Wecker ändert und baut darauf auf. Ich wollte das Problem vor einiger Zeit selber angehen, hatte aber kein Ansatz wo ich hier anfangen soll, deshalb hatte ich mir selber einen Wecker gebastelt den ich nur aus und anschalte. Das hier ist ne Spielerei für den Fall, dass man mal schnell ein Wecker stellen möchte der eben bisschen mehr kann als nur nenn dummen Ton plärren.

                                    S 1 Reply Last reply Reply Quote 0
                                    • S
                                      sveni_lee @Jan1 last edited by

                                      @Jan1 sagte in Alexa Wecker schaltet Beleuchtung an:

                                      Jetzt kommt der Unterschied, wenn ich per Sprache ein neuen Wecker anlege, wird jedes mal ein neuer DP dafür generiert und auf was soll ich mein Script triggern, wenn jedes mal ein anderer DP der Wecker ist?
                                      Wenn Du feste Wecker hast, die Du nur ein und ausschaltest, ist da kein Problem, da der DP der selbe bleibt und Du dann auch darauf triggern kannst.

                                      natürlich ändern sich die Wecker-DP. in meinem Beispiel wird auf einen Datenpunkt getriggert der mit
                                      *alexa2.0.Echo-Devices.G070xxx.Alarm* beginnt und auf triggerd endet was dazwischen steht ist egal.
                                      Somit können auch immer neue Wecker angelegt werden. es wird auf jeden x-beliebigen Wecker getriggert der auf "true" geht.
                                      Du kannst doch aber Alexa auch als Radio-wecker verwenden und musst nicht unbedingt den Weckton nehmen soviel ich weiß.

                                      J 1 Reply Last reply Reply Quote 0
                                      • J
                                        Jan1 @sveni_lee last edited by

                                        @sveni_lee
                                        Das wäre mir neu, mit Radio, wobei mir das auch nicht reicht.

                                        Wenn ich einen Wecker per Sprache anlege, dann wird ein komplett neuer DP generiert und auf den kann ich nicht triggern, da der ja vorher nicht da war und so auch in kein Script integriert werden kann.

                                        Zeig doch bitte mal von welchem DP Du sprichst, damit ich mir das mal anschauen kann, bin kein Fan von fertigen Scripten und würde schon gern mein eigenes Ding hier verwenden.

                                        S 1 Reply Last reply Reply Quote 0
                                        • S
                                          sveni_lee @Jan1 last edited by

                                          @Jan1

                                          es wird ein neuer Wecker-DP unter

                                          alexa2.0.Echo-Devices.G070RQxxxx.Alarm.dd7efe51-049d-4b26-8ff2-xxxxxx
                                          

                                          angelegt mit den den DP
                                          enabled, time und triggered

                                          triggered geht auf true wenn der "Wecker klingelt" und das wird mit

                                          on(/^alexa2.0\.Echo-Devices\.G070xxx\.Alarm\..+triggered$/, function(dp) {}); 
                                          

                                          getriggered.
                                          Mir it sogar aufgefallen, das es ca. 2-3 Sekunden braucht bis der Weckton zu hören ist, da haben sich die Rolläsen schon in gange gesetzt.
                                          Du könntest also auch ein "Stop" an den Echo senden, dann würde erst gar kein ton zu hören sein sondern nur deine gewünschen Aktionen abgearbeitet werden.

                                          J 1 Reply Last reply Reply Quote 1
                                          • J
                                            Jan1 @sveni_lee last edited by

                                            @sveni_lee sagte in Alexa Wecker schaltet Beleuchtung an:

                                            on(/^alexa2.0.Echo-Devices.G070xxx.Alarm..+triggered$/, function(dp) {});

                                            OK, und wie baue ich das in ein Blockly ein? Java Script kann ich nicht
                                            Wobei ich auch nicht verstehe, wie man ein DP in ein Script einbauen kann, den es zu dem Zeitpunkt noch nicht gibt, da der ja erst beim Erstellen des Wecker angelegt wird.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            916
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly javascript
                                            13
                                            60
                                            4841
                                            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