Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Klingel auf mehreren Alexas

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Klingel auf mehreren Alexas

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

      @mbm1982
      Hallo,

      Sieh dir das Video an: https://youtu.be/r7rFjTq3ReE
      Und passe die Alexa Befehle deinen Ansprüchen an.

      Ich hb mir so eine Ansage gebastelt wenn in einem Zimmer die Temperatur unter 17 Grad gefallenist (quasi Fenster offen im Winter und vergessen)

      M 1 Reply Last reply Reply Quote 1
      • Chaot
        Chaot @MBM1982 last edited by

        @mbm1982 Bei mir klingeln drei Echos über Routinen.
        Ich habe zwischen den Befehlen keinen Delay und ich habe zwischen den Ausführungen keine Verzögerungen festgestellt.

        Meine Routinen laufen auch so ab.
        Lautstärke 9
        Klingel 3 abspielen
        Lautstärke 5

        Eventuell ist da der Unterschied, weil ich keine Sprachansage sondern einen Klingelton nutze.

        M 1 Reply Last reply Reply Quote 1
        • Michael Fischer
          Michael Fischer @MBM1982 last edited by

          @mbm1982

          Hi,

          Versuch es mal mit dem Befehl Announcement. So funktioniert es bei mir ohne Verzögerung und sogar mit Gong auf mehreren Echo Geräten.

          Michi

          M 2 Replies Last reply Reply Quote 1
          • M
            MBM1982 @Chaot last edited by

            @chaot kommt der Befehl für die Routinen vom Iobroker?
            Ich hatte einen alten WLAN Kontaktsensor, der als SmartHome-Gerät in Alexa war. Da ging das auch genauso, aber es dauert 7-15 Sekunden bis das Signal aus der China-Cloud kam...

            Chaot 1 Reply Last reply Reply Quote 0
            • M
              MBM1982 @Michael Fischer last edited by MBM1982

              @michael-fischer Danke dir, das hört sich sehr vielversprechend an!
              Aber jetzt pennen die Kiddies schon 😉

              1 Reply Last reply Reply Quote 0
              • M
                MBM1982 @blue231181 last edited by

                @blue231181 Danke dir, schau ich mir gleich mal an

                1 Reply Last reply Reply Quote 0
                • Chaot
                  Chaot @MBM1982 last edited by

                  @mbm1982 Der Befehl kommt aus dem ioBroker. Der Gong wird über einen Taster am Wemos ausgelöst und an den ioBroker gesendet. Dort werden dann per Script ein paar Aufgaben abgearbeitet. Unter anderem eben auch den Gong auslösen.
                  Eine Verzögerung ist zwar manchmal da, aber höchstens 2 Sekunden. Deshalb habe ich das auch nicht weiter verfeinert.

                  M 2 Replies Last reply Reply Quote 1
                  • M
                    MBM1982 @Chaot last edited by

                    @chaot
                    Na 2 Sekunden hatten manche Funk-Klingeln bei mir auch schon... Aber bei über 10 Sekunden ist der Postbote ja schon wieder am Auto, bevor ich überhaupt den Gong gehört habe 😉

                    1 Reply Last reply Reply Quote 0
                    • M
                      MBM1982 @Chaot last edited by

                      @chaot Wie bekommst du denn den "Gong" in das Announcement? Ich kann nur einen Text ausgeben lassen.

                      Chaot 1 Reply Last reply Reply Quote 0
                      • Chaot
                        Chaot @MBM1982 last edited by

                        @mbm1982 Unter "Töne - Glocken....-"
                        musst du in der App etwas runterscrollen damit das zu sehen ist.

                        1 Reply Last reply Reply Quote 1
                        • M
                          MBM1982 @Michael Fischer last edited by

                          @michael-fischer
                          Hi!

                          Kannst du mir noch sagen wie du einen Gong über die Announcements auslöst?
                          Oder meinst du den "Standard-Gong", der bei den Announcements kommt bevor sie den Text vorliest?

                          Chaot 1 Reply Last reply Reply Quote 0
                          • Chaot
                            Chaot @MBM1982 last edited by

                            @mbm1982
                            Ich erstelle eine Routine

                            • Namen erstellen (beliebig)
                            • wenn folgendes passiert: Auslösewort (beispielsweise "Klingel") erstellen
                            • Als Aktion hinzufügen:
                              Lautstärke auf 9
                              Türklingel 3 abspielen (Töne -Glocken und Summer - Türklingel3)
                              Lautstärke auf 4

                            Das erstelle ich für verschiedene Echos die ich benötige. Der Name der Routine muss allerdings unterschiedlich sein.
                            Ich verwende dafür dann "Echo Bad, Echo Theke, usw."
                            Dann erscheinen die Routinen bei mir im ioBroker.
                            Ab hier kommt ein Script zum Einsatz das durch den Wemos ausgelöst wird:

                            // Klingelscript
                            // Entworfen durch LoxDUS
                            // mit Alexa Routinenaufruf, Bilder erfassen, Versand an 2 Empfänger
                            // Stand 01-2021
                            
                            const debug = false;
                            const cam_img = "http://192.168.8.95:8765/picture/1/current/?_username=****&_signature=**********";
                            const img_path = '/opt/iobroker/iobroker-data/files/0_userdata.0';
                            
                            const fs = require('fs');
                            
                            var BildSequenz = 0;        // Sequenznummer 0:Bereit, 1: (0s) Bild1+Mail, 2: (+5s) Bild2+Mail, 3: (+10s) Bild3, 4: (+10s) Bild4
                            var TBildsequenz = null;    // Timer-Objekt für die Bildsequenz
                            var TVis = null;            // Timer um VIS umzuschalten
                            
                            
                            on({id: 'sonoff.0.Eingang.POWER2', val: true}, function (obj) {
                                
                                // Benachrichtigung über Alexa das es geklingelt hat
                                setState("alexa2.0.Echo-Devices.G091EU**********K6W.Routines.519a9af4-c186-4715-9e5d-cb4ac65c0c67", true); //Klingelt auf Echo Theke
                                setState("alexa2.0.Echo-Devices.G2A0P**********LLE.Routines.11242dac-bf4b-4ab1-9521-37fdf5dae51d", true); //Klingelt auf Dot Anrichte
                            
                                // Soll jedesmal eine Bildsequenz neu gestartet werden, egal ob die vorherige Sequenz abgeschlossen ist, dann diesen Code:
                                //BildSequenz = 0;
                                //ErstelleBildsequenz();
                                //
                                // ...ODER soll das Speichern der Bildersequenz komplett abgeschlossen werden und auch ein erneuter Klingeldruck vorher keine neue
                                // Sequenz auslösen dann diesen Code:
                                if(debug) log("Bildsequenz: " + BildSequenz);
                                if(BildSequenz == 0) ErstelleBildsequenz(); // Die Bildsequenz wird nur erstellt wenn vorherige Bildsequenz abgeschlossen ist
                            });
                            
                            function ErstelleBildsequenz()
                            {   if(BildSequenz == 0) BildSequenz=1;  // Bildsequenz
                                if(debug) log("Bildsequenz: " + BildSequenz);
                                // Bild von Cam holen
                                request.get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
                                    if(err) {
                                        // Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten
                                        log('Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten: ' + err);
                                        BildSequenz = 0; // Die Bildsequenz zurück setzen
                                    } else
                                    {   // Bild wurde von der Kamera geladen. Jetzt speichern wir das Bild 
                                        fs.writeFile(img_path+'/alarm' + BildSequenz + '.jpg', body, 'binary', function(err) {
                                            if (err) {
                                                // Beim Speichern des Bildes ist ein Fehler aufgetreten
                                                log('Fehler beim Speichern von Bild ' + img_path + '/alarm' + BildSequenz + '.jpg   Fehler:' + err, 'warn');
                                                BildSequenz = 0; // Die Bildsequenz zurück setzen
                                            } else {
                            
                                                 // Bild wurde jetzt gespeichert wir können das Bild jetzt weiterverarbeiten
                                                switch(BildSequenz)
                                                {   case 1: // Bild 1 direkt nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                                                        // Vis umschalten: Setze View auf Kamerabild
                                                        if(debug) log(" 1 Bildsequenz: " + BildSequenz);
                                                        setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Tuer"}'); 
                                                        if(TVis) clearTimeout(TVis); // Falls noch ein Timer läuft, diesen beenden.
                                                        TVis = setTimeout(function () {
                                                                    setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Info"}');
                            				                    }, 60000); // Nach 60 Sekunden, zeige wieder Start View
                                                        
                                                        // Nächstes Bild soll nach 5s aufgenommen werden
                                                        BildSequenz = 2;                          
                                                        if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                                        TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 5000);
                                                        break;                            
                                                    case 2: // Bild 2, 5s nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                                                        // Bild per Mail verschicken
                                                        if(debug) log(" 2 Bildsequenz: " + BildSequenz);
                                                        
                                                        // Nächstes Bild soll nach 10s aufgenommen werden                            
                                                        BildSequenz = 3;
                                                        if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen                           
                                                        TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                                                        break;                         
                                                    case 3: // Bild 3 soll nach weiteren 10s gespeichert werden
                                                        
                                                        // Nächstes Bild soll nach 10s aufgenommen werden
                                                        if(debug) log(" 3 Bildsequenz: " + BildSequenz);                                                  
                                                        BildSequenz = 4;
                                                        if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                                        TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                                                        break;                                                    
                                                    case 4: // Bild 4 soll nach weiteren 10s gespeichert werden
                                                        
                                                        // Damit ist die Sequenz beendet und die Klingel ist wieder bereit
                                                        if(debug) log(" 4 Bildsequenz: " + BildSequenz);
                                                        sendTo("email", "send", {
                                                                text: '',
                                                                to: '**********@gmail.com',
                                                                subject: 'Klingel',
                                                                attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                                                        sendTo("email", "send", {
                                                                text: '',
                                                                to: '**********@gmail.com',
                                                                subject: 'Klingel',
                                                                attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                                                        
                                                        BildSequenz = 0;
                                                        if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                                     break;
                                                    default:
                                                        // Nicht bekannter Sequenzschritt bzw. es gab einen Fehler beim holen oder speichern 
                                                    break;
                                                };
                                            };
                                        });
                                    };
                                });
                            }
                            

                            Dank Loxdus habe ich das Script sehr weit abgespeckt als Sequenz am Laufen.
                            Hier wird im Grunde folgendes gemacht:
                            Wenn die Klingel gedrückt wird:

                            • werden 4 Bilder mit ein paar Sekunden Abstand aufgenommen
                            • Die Routinen bei den Echos werden ausgelöst (Zeile 20 und 21 derzeit, weil ein Echo derzeit weg ist)
                            • Die Bilder werden per mail an zwei verschieden Empfänger versendet
                            • Die VIS wird für ein paar Sekunden auf das live Kamerabild umgeschaltet und danach auf die Startseite zurück
                            • Es wird verhindert dass durch ein erneutes Klingeln die Sequenz unterbrochen wird. Wenn die Nachbarkids 30 mal den Taster drücken hat das System so seine Problemchen bekommen)

                            Dir reichen vermutlich de Zeilen 20 und 21 um deine Klingel umzusetzen.

                            M 1 Reply Last reply Reply Quote 1
                            • M
                              MBM1982 @Chaot last edited by MBM1982

                              @chaot Danke!
                              Reicht denn nicht eine Routine? Unten dann auswählen "Das Gerät zu dem Sie sprechen"?
                              Oder macht es mehr Sinn, für jedes Gerät eine Routine zu erstellen?

                              Chaot 1 Reply Last reply Reply Quote 0
                              • Chaot
                                Chaot @MBM1982 last edited by

                                @mbm1982 Das habe ich ehrlich gesagt noch nicht probiert. Ich habe mehrere Routinen, weil ich das Script im Sommer anders nutze und daher einen Echo mehr aktiviere. Da war das für mich einfacher zu handhaben den betreffenden Echo zu- und abzuschalten.

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                1.1k
                                Online

                                31.7k
                                Users

                                79.7k
                                Topics

                                1.3m
                                Posts

                                4
                                15
                                837
                                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