Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Cloud Dienste
    4. Alexa per Telegram sprechen lassen

    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 per Telegram sprechen lassen

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

      @dslraser:

      @Negalein:

      Jetzt geht dann noch das nächste Projekt an, wie ich mit Telegram den ioBroker steuern kann, bzw. Statusmeldungen auf Telegram bekomme. Kannst ja mal damit spielen….(aktivierungswort ist MENÜ (menü geht auch)

      Danke

      Ist das ein Blockly?

      Ich schreib quasi in Telegram dann zB "Menü Fernseher an" und dann wird über den Harmony-adapter der Fernseher eingeschaltet.

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

        das ist kein Blockly, das ist Javascript.

        Es kommt dann ein Telegram Menü was Du beliebig erweitern kannst…

        1 Reply Last reply Reply Quote 0
        • Negalein
          Negalein Global Moderator last edited by

          @dslraser:

          das ist kein Blockly, das ist Javascript.

          Es kommt dann ein Telegram Menü was Du beliebig erweitern kannst… `

          Danke

          Habs als JS gespeichert!

          Aber es schein unter "Objekte" - "Javascript.0" nicht auf!

          Hier der Log dazu:

          javascript.0	2019-01-23 17:57:33.989	info	script.js.common.Telegram-Befehle: registered 1 subscription and 0 schedules
          javascript.0	2019-01-23 17:57:33.985	info	Start javascript script.js.common.Telegram-Befehle
          

          @dslraser:

          Es kommt dann ein Telegram Menü was Du beliebig erweitern kannst… `

          Wo finde ich das Menü?

          Im Telegram-Adapter?

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

            @Negalein:

            @dslraser:

            das ist kein Blockly, das ist Javascript.

            Es kommt dann ein Telegram Menü was Du beliebig erweitern kannst… `

            Danke

            Habs als JS gespeichert!

            Aber es schein unter "Objekte" - "Javascript.0" nicht auf!

            Hier der Log dazu:

            javascript.0	2019-01-23 17:57:33.989	info	script.js.common.Telegram-Befehle: registered 1 subscription and 0 schedules
            javascript.0	2019-01-23 17:57:33.985	info	Start javascript script.js.common.Telegram-Befehle
            

            @dslraser:

            Es kommt dann ein Telegram Menü was Du beliebig erweitern kannst… `

            Wo finde ich das Menü?

            Im Telegram-Adapter? ` Du startest das Script und dann gibst Du bei Telegram das Wort menü ein und sendest es ab.

            Du kannst das Script um beliebig viele Räume und Geräte erweitern.

            Einfach mal den oberen Teil im Script ansehen, das sollte selbsterklärend sein.

            Ein Menü sollte bei Telegram auch mit diesem Script schon kommen, nur schalten kannst Du Deine Geräte erst wenn Du die im Script eingefügt hast.

            Sieht dann so aus…![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201901 ... 3748b5.jpg">https://uploads.tapatalk-cdn.com/20190123/98462dfc5a8ae9172819b9ad4d3748b5.jpg</link_text>" />![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201901 ... d2ca5f.jpg">https://uploads.tapatalk-cdn.com/20190123/64589157df54256760a3554cf3d2ca5f.jpg</link_text>" />![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201901 ... 2c2da9.jpg">https://uploads.tapatalk-cdn.com/20190123/046da7d7a8971f76223724c3f82c2da9.jpg</link_text>" />~~~~

            1 Reply Last reply Reply Quote 0
            • Negalein
              Negalein Global Moderator last edited by

              @dslraser:

              Du startest das Script und dann gibst Du bei Telegram das Wort menü ein und sendest es ab. `

              Ah, jetzt hab ich es verstanden!

              Danke dir!

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

                @dslraser:

                @Negalein:

                Jetzt geht dann noch das nächste Projekt an, wie ich mit Telegram den ioBroker steuern kann, bzw. Statusmeldungen auf Telegram bekomme. `

                Kannst ja mal damit spielen….(aktivierungswort ist MENÜ (menü geht auch)

                `var Devices = [
                    { Name: 'Kaminlampe',      Ort: "Wohnzimmer",     an: true, aus: false, Objekt: "hm-rpc.0.xxx.3.STATE",            Beschreibung: "Steckdose an der die Kaminlampe im Wohnzimmer angeschlossen ist"},
                    { Name: 'Fensterlampe',    Ort: "Wohnzimmer",     an: true, aus: false, Objekt: "hue.0.Philips_hue.Fensterlampe.on",          Beschreibung: "Fensterlampe Wohnzimmer"},
                    { Name: 'Tischlampe',      Ort: "Wohnzimmer",     an: true, aus: false, Objekt: "hm-rpc.0.xxx.3.STATE",            Beschreibung: "Steckdose an der die Tischlampe im Wohnzimmer angeschlossen ist"},
                    { Name: 'Schranklampe',    Ort: "Wohnzimmer",     an: true, aus: false, Objekt: "hm-rpc.xxx.3.STATE",            Beschreibung: "Steckdose an der die Schranklampe im Wohnzimmer angeschlossen ist"},
                    { Name: 'Deckenlampe',     Ort: "Wohnzimmer",     an: true, aus: false, Objekt: "hue.0.Philips_hue.Deckenlampe.on",           Beschreibung: "Deckenlampe Wohnzimmer"},
                    { Name: 'Licht komplett',  Ort: "Wohnzimmer",     an: true, aus: false, Objekt: "hue.0.Philips_hue.Wohnzimmer.on",            Beschreibung: "Licht Wohnzimmer komplett"},
                    { Name: 'Fernseher',       Ort: "Wohnzimmer",     an: 2,    aus: 0,     Objekt: "harmony.0.Wohnzimmer.activities.Fernsehen",  Beschreibung: "Fernseher Wohnzimmer über Harmony"},
                    { Name: 'Flurlicht',       Ort: "Flur",           an: true, aus: false, Objekt: "hue.0.Philips_hue.Flur-Kellertreppe.on",     Beschreibung: "Flur Treppenlicht"},
                
                ];
                
                function DistinctKeyValues(Array, Key) {
                    var unique = {};
                    var distinct = [];
                
                    for( var i in Array ){
                        if (!Array[i].selection) { continue; }
                        if( typeof(unique[Array[i][Key]]) == "undefined"){
                            distinct.push(Array[i][Key]);
                        }
                        unique[Array[i][Key]] = 0;
                    }
                return distinct;
                }
                
                function ArrayDeselectKeyValues(Array, Key, Value) {
                    for( var i in Array ) {
                        if (Array[i][Key] != Value) {
                            Array[i].selection = false;
                        }
                    }    
                return Array;
                }
                
                function Array2ID(Array, Key, Value) {
                    for( var i in Array ) {
                        if (Array[i][Key] == Value) {
                            break;
                        }
                    }
                return i;
                }
                
                function Key2Keyboard(Array, Key) {
                    Distinct = [], OuterArray = []; 
                    Distinct = DistinctKeyValues(Array, Key);
                
                    for( var i in Distinct ){
                        InnerArray = [];
                        item = {};
                        item.text          = Distinct[i];
                        item.callback_data = "___" + Key + ","+ Distinct[i];
                        InnerArray.push(item);
                        OuterArray.push(InnerArray);
                    }
                return OuterArray;    
                }
                
                function SwitchKeyboard(Array, Key, Value) {
                    Distinct = [], OuterArray = []; 
                    Distinct = ['an', 'aus'];
                
                    for( var i in Distinct ){
                        InnerArray = [];
                        item = {};
                        item.text          = Distinct[i];
                        item.callback_data = "___" + Key + ","+ Distinct[i];
                        InnerArray.push(item);
                        OuterArray.push(InnerArray);
                    }
                return OuterArray;    
                }
                
                function MenuFrageKey(Frage, Key, Array) {
                    MenuFrage(Frage, Array, Key2Keyboard(Array, Key));
                }
                
                function MenuFrageDevice(ID, Array) {
                    Objekt = Array[ID].Objekt;
                    Status=getState(Objekt).val;
                    if (Status === Array[ID].an) {
                        MenuFrage("Status von " + Array[ID].Name + ": eingeschaltet.\nWas wollen Sie tun?",Array, SwitchKeyboard(Array, '*'+Array[ID].Name, Array[ID].Name));
                    } 
                    else {
                        MenuFrage("Status von " + Array[ID].Name + ": ausgeschaltet.\nWas wollen Sie tun?",Array, SwitchKeyboard(Array, '*'+Array[ID].Name, Array[ID].Name));
                    }
                }
                
                function MenuFrage(Frage, Array, KeyboardArray) {
                    sendTo('telegram.0', {
                        chatId: getState("telegram.0.communicate.requestChatId").val,
                        text:   Frage,
                        reply_markup: {
                            inline_keyboard: KeyboardArray,
                            resize_keyboard:   false, 
                            one_time_keyboard: true
                        }
                    });
                return;    
                }
                
                function MenuAntwortDeselect(Array, Key, Value) {
                    MenuAntwort(Array, Key, Value);
                    ArrayDeselectKeyValues(Array, Key, Value);
                }
                
                function MenuAntwort(Array, Key, Value) {
                    sendTo('telegram.0', {
                        chatId: getState("telegram.0.communicate.requestChatId").val,
                        text: Key + ': ' + Value,
                        editMessageText: {
                            options: {
                                chat_id: getState("telegram.0.communicate.requestChatId").val,
                                message_id: getState("telegram.0.communicate.requestMessageId").val,
                            }
                        }
                    });
                return Array;
                }
                
                on({id: "telegram.0.communicate.request", ack: false, change: 'any'}, function (obj) {
                    command = obj.state.val.substring(obj.state.val.indexOf(']')+1);
                    console.log("Received: " + command);
                
                    // Menü beginnen
                    if (command.toUpperCase() ==="MENÜ") {
                        //Reset previous selections
                        for( var i in Devices ){
                            Devices[i].selection=true;
                        }
                        MenuFrageKey('Wo willst du etwas tun?', 'Ort', Devices);
                    }
                    // Antwort verarbeiten
                    else if (command.startsWith("___")) {
                            command = command.slice(3,command.length); 
                        var KeyVal = command.split(",");
                        var Key   = KeyVal[0];
                        var Value = KeyVal[1];
                
                        if (Key == 'Ort') {
                            MenuAntwortDeselect(Devices, Key, Value);
                            MenuFrageKey('Welches Gerät willst du steuern', 'Name', Devices);
                        }
                        else if (Key == 'Name') {
                            MenuAntwortDeselect(Devices, Key, Value);
                            ID=Array2ID(Devices, Key, Value);
                            MenuFrageDevice(ID, Devices);
                        }
                        else if (Key.startsWith("*")) {
                            Key=Key.slice(1,Key.length);
                            ID=Array2ID(Devices, 'Name', Key);
                            setState(Devices[ID].Objekt, Devices[ID][Value]);
                            MenuAntwort(Devices, Devices[ID].Name, Value);
                        }
                        else {
                            console.log("Else: ___" + command);
                        }
                    }
                    else {
                            console.log("Else: " + command);
                    }
                 });` 
                
                Das Funktioniert bei mir überhaupt nicht. Es öffnet sich keinerlei Menu in Telegram.[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
                ``` ` 
                1 Reply Last reply Reply Quote 0
                • Digi-Kai
                  Digi-Kai last edited by

                  > gibt es die Möglichkeit Alexa per Telegram anzutriggern. Und dann einen Text zu schicken den Alexa dann vorspricht?
                  Die Aufgabenstellung läßt sich doch recht elegant per IFTTT und dem Alexa Adaperter 2.0 lösen:

                  Per Telegramm eine Nachricht mit z.B. "Telegram_Alexa" und Inhalt "Lies diesen Satz vor" an @Ifttt senden.

                  Dann per Webhook den Datenpunkt im iobroker mit dem String "Lies diesen Satz vor" füllen.

                  Und abschließend den Datenpunkt auf Änderung überwachen und bei Änderung den Wert vorlesen lassen.

                  Ist eigentlich ganz easy und schnell zu realisieren.

                  Grüße

                  1 Reply Last reply Reply Quote 0
                  • T
                    Treep77 @dslraser last edited by

                    @dslraser
                    Ich hab das blockly heute auch mal ausprobiert, leider läuft es bei mir nicht. Das aktivierungs Wort nimmt er an, wenn ich dann aber das schreibe was der Dot sagen soll, kommt immer "ich verstehe xy nicht ".
                    Mit welchen Command2text Befehl wird das Script gestartet? Ich verwende schalte an/aus und setze es auf True.....liegt da der Fehler?
                    Gruß Peter

                    Negalein dslraser 2 Replies Last reply Reply Quote 0
                    • Negalein
                      Negalein Global Moderator @Treep77 last edited by Negalein

                      @Treep77 sagte in Alexa per Telegram sprechen lassen:

                      @dslraser
                      Ich hab das blockly heute auch mal ausprobiert, leider läuft es bei mir nicht. Das aktivierungs Wort nimmt er an, wenn ich dann aber das schreibe was der Dot sagen soll, kommt immer "ich verstehe xy nicht ".
                      Mit welchen Command2text Befehl wird das Script gestartet? Ich verwende schalte an/aus und setze es auf True.....liegt da der Fehler?
                      Gruß Peter

                      meinst du das Blockly von dslraser vom 23. Jänner?

                      Da wird mMn kein Command2Text verwendet.

                      Ich hab das nichteinmal installiert.

                      Hier noch das Blockly
                      Alexa-Speak.txt

                      T 1 Reply Last reply Reply Quote 0
                      • T
                        Treep77 @Negalein last edited by

                        @Negalein ja genau das meinte ich. Hab wohl den falschen Button erwischt, wollte eigentlich auf seinen Post antworten.
                        Hmm ohne Text2command...dann muss ich nachher mal schauen.

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

                          @Treep77 sagte in Alexa per Telegram sprechen lassen:

                          @dslraser
                          Ich hab das blockly heute auch mal ausprobiert, leider läuft es bei mir nicht. Das aktivierungs Wort nimmt er an, wenn ich dann aber das schreibe was der Dot sagen soll, kommt immer "ich verstehe xy nicht ".

                          wo kommt das, auf der Tastatur in Telegram ? (da kommt das bei mir auch) Oder kommt so eine Ansage von Alexa ?

                          Mit welchen Command2text Befehl wird das Script gestartet? Ich verwende schalte an/aus und setze es auf True.....liegt da der Fehler?
                          Gruß Peter

                          ohne extra text2command (das wird für das Blockly nicht benötigt. (Wenn Du dieses Blockly meinst ?)

                          Oder meinst Du dieses Script hier ?

                          Starte mal den Alexa2 Adapter neu, das kann auch helfen...

                          T 1 Reply Last reply Reply Quote 1
                          • dslraser
                            dslraser Forum Testing Most Active @Treep77 last edited by dslraser

                            @Negalein
                            @Treep77

                            Ich habe das Blockly mal auf einen Echo reduziert und alles aufgeklappt, dann sieht man die Funktionsweise besser. Dieses Aktivierungswort ist hier Wohnzimmer, dieses sendest Du per Telegram, dann erscheint das auch im Telegram Adapter in den Objekten, damit kann Telegram erstmal nix anfangen und es kommt diese Meldung "ich verstehe xyz nicht" auf dem Display.
                            Dieses Wort wird in eine Variable geschrieben und mit den Datenpunkten vom Telegram Adapter abgeglichen. Da dort aber noch Zeichen in eckigen Klammern stehen werden diese entfernt. Wenn in diesem Beispiel das Wort Wohnzimmer gefunden wird, wird es mit dem Text Wohnzimmer ganz rechts im Blockly verglichen und wenn es übereinstimmt wird die Variable auf wahr gesetzt.

                            Der zweite Teil arbeitet dann mit dieser Variablen weiter und sendet über speak (hier den Echo dazu auswählen) den Text, den Du als zweites in Telegam sendest an den ausgewählten ECHO. Anschließend wird die Variable wieder auf falsch gesetzt und das Spiel kann von vorn beginnen.
                            Weil es übersichtlicher ist habe ich die Variablen so wie die Echos genannt und auch den Namen so gewählt wo sie stehen.
                            Wenn Du mehrere Echos hast, und diese Beiden dicht beieinander stehen und sich gegenseitig "hören" können, kannst Du den anderen Echo unter Umständen sogar damit steuern. Z.B. wenn Du den einen anschreibst und dann z.B. schreibst, Alexa, mach dies und das (Befehl). Bei mir steht einer im Wohnzimmer und einer in der Küche (es gibt nur einen Durchgang und keine Tür zwischen den Räumen), dann hören die sich gegenseitig.

                            Hier mal als Beispiel über speak

                            Bildschirmfoto 2019-03-24 um 09.33.33.png

                            Und hier mal über ssml (Alexa2 Adapter 2.2.0), mit z.B. Vicki als Stimme

                            Bildschirmfoto 2019-03-24 um 09.33.33.png

                            T 1 Reply Last reply Reply Quote 2
                            • T
                              Treep77 @dslraser last edited by

                              @dslraser genau das blockly mein ich.
                              Mittlerweile läuft es. Ich hab das T2C weggelassen, dann geht es. Es hat mich anfangs nur etwas irritiert das er im telegram immer sagt "ich verstehe "wohnzimmer" nicht" ....scheint aber normal zu sein.

                              1 Reply Last reply Reply Quote 0
                              • T
                                Treep77 @dslraser last edited by

                                @dslraser Ich seh Grad du hattest nochmal geantwortet und es erklärt. Vielen Dank für die Beschreibung.
                                Meine Küche ist auch direkt neben dem Wohnzimmer, das muss ich nachher gleich mal testen. Danke für den Tipp.

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

                                  @Treep77

                                  Falls Du HUE Lampen hast bzw. eine HUE Bridge und den HUE Adapter installiert hast (bei mir HUE Adapter 0.6.9), dann kannst Du zusätzlich in dem Raum, in dem der ECHO spricht, noch eine Lampe, oder auch alle Lampen im ganzen Raum blinken lassen, oder eben jede andere HUE Lampe die Du ins Blockly schreibst. Hier blinkt die Lampe rot, vorher wird der alte Zustand der Lampe abgespeichert und wenn das blinken beendet ist wieder hergestellt.

                                  Bildschirmfoto 2019-03-24 um 11.15.57.png

                                  1 Reply Last reply Reply Quote 0
                                  • Negalein
                                    Negalein Global Moderator last edited by

                                    @dslraser
                                    Ich verwend dein Blockly schon sehr lange.
                                    Funktioniert perfekt.

                                    Bei mir kommt auch keine Meldung mit "ich verstehe ...... nicht".

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

                                      @Negalein sagte in Alexa per Telegram sprechen lassen:

                                      Bei mir kommt auch keine Meldung mit "ich verstehe ...... nicht".

                                      Das kam bei mir sonst auch nicht, keine Ahnung warum das jetzt kommt 🙄🙈

                                      Negalein 1 Reply Last reply Reply Quote 0
                                      • Negalein
                                        Negalein Global Moderator @dslraser last edited by

                                        @dslraser sagte in Alexa per Telegram sprechen lassen:

                                        Das kam bei mir sonst auch nicht, keine Ahnung warum das jetzt kommt 🙄🙈

                                        gerade nochmals getestet!
                                        Es kommt bei mir keine Meldung mit "ich verstehe ...... nicht".

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

                                          @Negalein sagte in Alexa per Telegram sprechen lassen:

                                          @dslraser sagte in Alexa per Telegram sprechen lassen:

                                          Das kam bei mir sonst auch nicht, keine Ahnung warum das jetzt kommt 🙄🙈

                                          gerade nochmals getestet!
                                          Es kommt bei mir keine Meldung mit "ich verstehe ...... nicht".

                                          Habe es gefunden, das kommt vom text2command Adapter. Wenn ich den ausschalte kommt der Satz nicht. Ein par Sachen habe ich da aber noch drin die ich noch umstellen will, dann brauche ich den aktuell nicht mehr.

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

                                            @Negalein

                                            ich habe jetzt noch mal etwas in dem Script gebastelt. Die Grundfunktion ist die gleiche wie sonst auch, als Ansage habe ich ssml im Alexa2 Adapter 2.2.0 verwendet.
                                            Eingebaut habe ich folgendes. Es wird bei der Eingabe und absenden des Triggerwortes bereits am angeschriebenen ECHO angekündigt das gleich eine Nachricht kommt. Dem Nachricht schreibenden wird sofort ein Telegram gesendet das er nun eine Minute Zeit hat (änderbar im Blockly) seine Nachricht zu senden. Falls man vergisst die Nachricht zu schicken, oder was dazwischen kommt wird die Ansage auf dem ECHO beendet (und auch so angesagt) und der Nachricht schreibende bekommt ein Telegram das die Zeit abgelaufen ist. Wird die Nachricht in der vorgegebenen Zeit versendet, kommt die natürlich auch als Ansage am Echo an und der Nachricht schreibende bekommt eine Telegram Rückmeldung.
                                            Zusätzlich habe ich eine HUE Lampe mit eingebunden die während dieser Nachrichten Anfrage/Ansage blinkt (in der vorher verwendeten Farbe).
                                            Wer Telegram Bestätigungen oder blinkende Lampen nicht will, kann diese Bausteine einfach deaktivieren oder löschen.
                                            Vielleicht kann es ja Jemand gebrauchen.


                                            Bildschirmfoto 2019-03-25 um 12.26.04.png


                                            50.000 Zeichen überschritten, daher hier als Textdatei.
                                            Alexa Spricht Telegram Nachricht.txt

                                            Negalein 2 Replies Last reply Reply Quote 2
                                            • First post
                                              Last post

                                            Support us

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

                                            917
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            12
                                            49
                                            7510
                                            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