Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Skriptsammlung für den neuen ALEXA2.0 Adapter

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Skriptsammlung für den neuen ALEXA2.0 Adapter

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

      ja genau hab auch keine.

      War der Meinung dann nimmt er die allgemeine Lautstärke auf die der Echo gerade eingestellt ist?!

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

        nee, dann wahrscheinlich die, die er zuletzt verwendet hat.

        Dann solltest Du einbauen, das wenn die Ansage beendet, die Lautstärke wieder auf xy gestellt wird

        1 Reply Last reply Reply Quote 0
        • B
          Belei last edited by

          Macht er ja automatisch.

          Also im Blockly 1 aktuell eingestellte Lautstärke 20, Ansage wird gemacht mit aufgezwungender Lautstärke 60.

          Und wenn ich dann Alexa was anderes Frage ist wieder die eingestellte Lautstärke 20.

          Nur bei den Script Anfragen übernimt er wieder die "letzte" aufgezwungende Lautstärke.

          1 Reply Last reply Reply Quote 0
          • B
            Belei last edited by

            Gibts denn den Datenpunkt: aktuelle Alexa Lautstärke?

            Wie machst du/ihr das denn wenn ihr die "speak" Funktion benutzt, immer eine Lautstärke mitgeben?

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

              Bei mir gehen mal wieder keine Antworten des Scriptes für Licht und für Fenster.

              Im Log steht:

              alexa2.0	2018-10-05 20:47:22.471	info	Smarthome-Device Capability Alexa.PlaybackStateReporter unknown. Report to developer this and next log line from logfile on disk!
              alexa2.0	2018-10-05 20:47:22.471	info	{"applianceId":"SKILL_"für_Anzeige_hier_ein_paar_Buchstaben_entfernt"_WE3LTE5ZGEtNNGMdkkMDlmIjoibGl2ZSJ9_RINCON_B8E937AB1801400","endpointTypeId":"SonosTestMDODevice","driv
              alexa2.0	2018-10-05 20:47:22.470	info	Smarthome-Device Capability Alexa.PlaybackStateReporter unknown. Report to developer this and next log line from logfile on disk!
              javascript.0	2018-10-05 20:47:15.155	info	script.js.Eigene.Alexa_antwortet_Fensterabfrage: registered 0 subscriptions and 0 schedules
              javascript.0	2018-10-05 20:47:15.138	info	Start javascript script.js.Eigene.Alexa_antwortet_Fensterabfrage
              

              Seltsam, geändert wurde nichts wissentlich. Selbst ein Updaten der Adapter erfolgte nicht.

              PS: nach iobroker stop und iobroker start funktioniert es wieder.

              1 Reply Last reply Reply Quote 0
              • B
                Belei last edited by

                @dslraser:

                @sissiwup:

                @haselchen:

                Hab auf die Version 1.0.0 upgedatet vorhin.

                Mag sein , dass es deswegen jetzt funktioniert 😄

                Was sind denn so Gründe , warum Alexa einfach so mal die offenen Fenster ansagt, ohne gefragt zu werden? `

                Hallo,

                ich habe das auch. Die einzige Variante (die ich gefunden habe) das zu umgehen ist eine Variable dazwischen zu schalten.

                D.h. Alexa setzt die Variable Trigger… auf an und das Skript lauscht auf Änderungen an der Variablen.

                Ansonsten erzählt die andauern etwas und wenn du wirklich etwas damit steuerst wird es doof.

                Ich meine jedes Skript starte beim Neustart des Adapters und beim Speichern neu. `

                Kannst Du das bitte mal bissl genauer beschreiben.

                (mich stört es auch das manche Sripte beim Neustart bzw. beim aktualisieren loslaufen. (Ich denke da immer so drann wenn keiner zu Hause ist, oder Urlaub und es gibt einen Fehler bzw. Neustart und der Staubsauger oder der Rasenmäher würde los fahren…)

                Ein Beispiel Deiner Lösung wäre gut, da ich für mich auch noch keine Lösung gefunden habe.

                Edit: Hat sich erledigt, ich habe es für mich nun auch gelöst, wollte ich schon längst mal machen.

                Ich habe jetzt eigene Datenpunkte als Logikwert angelegt und schalte bzw. triggere in den Scripten damit. `

                Kannst du das mal erklären bzw zeigen?

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

                  Hallo Zusammen,

                  ich habe mir das Skript auch für meine Bedürfnisse angepasst. Es funktioniert auch, aber der Name der aktuell genutzten bzw. angefragten Alexa wird in der History/Name nicht immer aktualisiert. Also bekomme ich nur die Ansage, wenn ich die Alexa zuvor schon genutzt habe, bzw. der Name entsprechend aktualisiert wurde.

                  Woran liegt das bzw. wie kann ich das ändern?

                  Gruß

                  Spike

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

                    @Spike08122:

                    Hallo Zusammen,

                    ich habe mir das Skript auch für meine Bedürfnisse angepasst. Es funktioniert auch, aber der Name der aktuell genutzten bzw. angefragten Alexa wird in der History/Name nicht immer aktualisiert. Also bekomme ich nur die Ansage, wenn ich die Alexa zuvor schon genutzt habe, bzw. der Name entsprechend aktualisiert wurde.

                    Woran liegt das bzw. wie kann ich das ändern?

                    Gruß

                    Spike ` Hast Du im Alexa2 Adapter auf Push gestellt ?

                    Sonst kannst Du auch die Zeit etwas erhöhen, also die Millisekunden…

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

                      @tadek:

                      Hallo zusammen,

                      ich möchte meinen Briefkasten dazu bringen mir eine Nachricht an Alexa zu schicken mittels HM Fensterkontakt.

                      Ich möchte aber nicht, dass die Nachricht sofort ausgegeben wird, das habe ich schon hinbekommen, sondern dass

                      der Echo leuchtet und mir signalisiert, dass eine Nachricht zum abrufen bereit ist.

                      Ähnlich, wie es der Abfallkalender Skill macht.

                      Mit "Alexa, welche Benachrichtigung habe ich" wird dann erst die Ausgabe gemacht.

                      Geht das mit dem Alexa 2 Adapter? `

                      Hast Du das hinbekommen bzw. eine Lösung gefunden?

                      Gruss

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

                        @dslraser:

                        @Spike08122:

                        Hallo Zusammen,

                        ich habe mir das Skript auch für meine Bedürfnisse angepasst. Es funktioniert auch, aber der Name der aktuell genutzten bzw. angefragten Alexa wird in der History/Name nicht immer aktualisiert. Also bekomme ich nur die Ansage, wenn ich die Alexa zuvor schon genutzt habe, bzw. der Name entsprechend aktualisiert wurde.

                        Woran liegt das bzw. wie kann ich das ändern?

                        Gruß

                        Spike ` Hast Du im Alexa2 Adapter auf Push gestellt ?

                        Sonst kannst Du auch die Zeit etwas erhöhen, also die Millisekunden… `

                        Super Danke, das war´s

                        Spike

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

                          @Belei:

                          @dslraser:

                          @sissiwup:

                          Hallo,

                          ich habe das auch. Die einzige Variante (die ich gefunden habe) das zu umgehen ist eine Variable dazwischen zu schalten.

                          D.h. Alexa setzt die Variable Trigger… auf an und das Skript lauscht auf Änderungen an der Variablen.

                          Ansonsten erzählt die andauern etwas und wenn du wirklich etwas damit steuerst wird es doof.

                          Ich meine jedes Skript starte beim Neustart des Adapters und beim Speichern neu. `

                          Kannst Du das bitte mal bissl genauer beschreiben.

                          (mich stört es auch das manche Sripte beim Neustart bzw. beim aktualisieren loslaufen. (Ich denke da immer so drann wenn keiner zu Hause ist, oder Urlaub und es gibt einen Fehler bzw. Neustart und der Staubsauger oder der Rasenmäher würde los fahren…)

                          Ein Beispiel Deiner Lösung wäre gut, da ich für mich auch noch keine Lösung gefunden habe.

                          Edit: Hat sich erledigt, ich habe es für mich nun auch gelöst, wollte ich schon längst mal machen.

                          Ich habe jetzt eigene Datenpunkte als Logikwert angelegt und schalte bzw. triggere in den Scripten damit. `

                          Kannst du das mal erklären bzw zeigen? `
                          Falls Du mich bzw. das mit den Datenpunkten meinst ? hier mal einige Beispiele…

                          Datenpunkte erstelle ich nun immer mit JS neu, hat auch den Vorteil, falls mal was weg ist kann man die immer schnell mit JS erstellen.

                          Hier mal z.B. Lautstärke ohne Smartnamen für Alexa

                          //Denon AVR 4520 Lautstärke regeln
                          createState('Eigene_Datenpunkte.Denon.Denon_Lautstärke', { 
                              type:  'number', 
                              name:  'Denon-Lautstärke', 
                              min:    0, 
                              max:    100, 
                              def:    30, 
                              read:   true, 
                              write:  true, 
                              role:  'level.volume',
                              "smartName": {
                                "de": "Verstärker",
                                "smartType": "",
                                "byON": "30"
                          }});
                          

                          oder hier als Steckdose mit Smartnamen für Alexa als Switch

                          //Steckdose Geschirrspueler
                          createState("Eigene_Datenpunkte.Geschirrspueler.Geschirrspueler", {
                              name: 'Geschirrspueler', 
                              role: 'switch',
                              type: 'boolean', 
                              read:  true, 
                              write: true, 
                              def:   false,
                              "smartName": {
                              "de": "Geschirrspüler",
                              "smartType": "SMARTPLUG"
                          }});
                          

                          oder hier einen Button für meinen Sat Receiver

                          //VU Mute
                          //Datenpunkt Mute
                          createState("Eigene_Datenpunkte.Fernsehen.Mute", {
                              name: 'Mute', 
                              role: 'button',
                              type: 'object', 
                              read:  true, 
                              write: true, 
                              def:   false,
                              "smartName": {
                              "de": "Alexa Mute",
                              "smartType": "SWITCH"
                          }});
                          

                          oder hier einen Sender

                          //TV Sender oder Menü VU
                          //Datenpunkt Fernsehen mit VU Wohnzimmer ARD - Kanal 2
                          createState("Eigene_Datenpunkte.Fernsehen.02ARD", {
                              name: '02ARD', 
                              role: 'button',
                              type: 'object', 
                              read:  true, 
                              write: true, 
                              def:   false,
                              "smartName": {
                              "de": "02 Kanal A.R.D.",
                              "smartType": "SWITCH"
                          }});
                          

                          Hier triggere ich dann Quasi den erstellten Datenpunkt
                          3822_bildschirmfoto_2018-11-01_um_15.35.36.png

                          Und diese Datenpunkte verwurste ich dann in den Blocklys. Wenn Du JS benutzt kannst Du die auch direkt ins Script packen.

                          Diese Datenpunkte schalte ich dann meistens über Routinen in der Alexa App, dann ist es auch egal wie die heissen.

                          1 Reply Last reply Reply Quote 0
                          • B
                            Belei last edited by

                            Super Danke, muss ich auch nochmal einbauen damit sie nicht beim iobroker neustart so viel sabbelt…

                            Wozu ist eigentlich das "steuere Trigger/rescan mit wahr" im Blockly?

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

                              @Belei:

                              Wozu ist eigentlich das "steuere Trigger/rescan mit wahr" im Blockly? `

                              Damit wird Alexa2 quasi aktualisiert und nachgeschaut welcher Echo den letzten Befehl bekommen hat.

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

                                @Belei:

                                Super Danke, muss ich auch nochmal einbauen damit sie nicht beim iobroker neustart so viel sabbelt…

                                Wozu ist eigentlich das "steuere Trigger/rescan mit wahr" im Blockly? `

                                PS: Wenn Du den Haken im Alexa2 Adapter bei Push gesetzt hast brauchst Du Trigger/rescan nicht.

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

                                  @Chaot:

                                  • Am Sonoff DHT22 und Taster angeschlossen `

                                  Hallo

                                  Wird der DHT22 zwingend benötigt? Das ist doch nur ein Temperatursensor und Luftfeuchtigkeitssensor. Oder täusch ich mich da?

                                  Da ich keine Fritzbox habe, reicht es mir, wenn ein drücken an der Glocke bei Alexa angesagt wird!

                                  Danke für deine Hilfe!

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

                                    Oh nein, der Temperatursensor wird dort nicht benötigt.

                                    Das hat alleine den Grund das ich, wenn ich dort sowieso einen Sonoff einbaue auch gleich die Außentemperatur für meine VIS machen kann. Der DHT22 ist übrigens mittlerweile ein BME280 geworden 😄

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      Mr.X last edited by

                                      kurze Hilfeanfrage: Nachdem ich mein Amazon PW geändert habe habe ich den Adapter neu istalliert.

                                      Jetzt wird der auch grün und alle Geräte werden angezeigt.

                                      Aber weder weder bekomme ich ein update der History noch funktioniert Speech für die Sprachausgabe.

                                      Hat jemand eine Idee, woran das liegen könnte?

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

                                        @tadek:

                                        kurze Hilfeanfrage: Nachdem ich mein Amazon PW geändert habe habe ich den Adapter neu istalliert.

                                        Jetzt wird der auch grün und alle Geräte werden angezeigt.

                                        Aber weder weder bekomme ich ein update der History noch funktioniert Speech für die Sprachausgabe.

                                        Hat jemand eine Idee, woran das liegen könnte? ` Haken bei Pushverbindung gesetzt ?

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          Mr.X last edited by

                                          ja, der war standardmäßig an.

                                          Auch kommt kein Update, wenn ich den manuel über History –> #trigger anstoße

                                          1 Reply Last reply Reply Quote 0
                                          • Rene.Home
                                            Rene.Home last edited by

                                            Hallo,

                                            ich habe da mit dem triggern des Fensterskriptes ein Logik-Problem. Es werden die Fenster gezählt aber ich bekomme es gedanklich nicht auf die Reihe wie die Zählung angetriggert wird

                                            Die Einrichtung habe ich wie folgt gemacht:

                                            1. das Skript "Fensterstatus" mit dem folgenden Inhalt angelegt und laufen gelassen.

                                            ! ````
                                            // Status Fenster. Das Script zählt alle Fenster im Gewerk Verschluss mit der id=*.STATE
                                            !
                                            ! var logging = false;
                                            !
                                            ! var
                                            ! idAnzahlAuf = 'javascript.0.Status.Fenster.Anzahl_auf',
                                            ! idAnzahl = 'javascript.0.Status.Fenster.Anzahl',
                                            ! idText = 'javascript.0.Status.Fenster.Text',
                                            ! idRaum = 'javascript.0.Status.Fenster.Raum',
                                            ! idAnsage = 'javascript.0.Status.Fenster.Ansage';
                                            !
                                            ! // Ab hier nix mehr ändern
                                            ! createState(idAnzahl, { // Anzahl der vorhandenen Fenster
                                            ! type: 'number',
                                            ! name: 'Anzahl aller Fenster',
                                            ! min: 0,
                                            ! def: 0,
                                            ! role: 'value'
                                            ! });
                                            ! createState(idAnzahlAuf, { // Anzahl der Fenster, die auf sind
                                            ! type: 'number',
                                            ! name: 'Anzahl der geoeffneten Fenster',
                                            ! min: 0,
                                            ! def: 0,
                                            ! role: 'value'
                                            ! });
                                            ! createState(idText, { // Anzahl der geoeffneten Fenster und deren Namen
                                            ! type: 'string',
                                            ! name: 'geoeffnete Fenster',
                                            ! desc: 'Namen der geoeffneten Fenster',
                                            ! def: ' ',
                                            ! role: 'value'
                                            ! });
                                            ! createState(idAnsage, {
                                            ! type: 'string',
                                            ! name: 'geoeffnete Fenster (Ansage)',
                                            ! desc: 'Namen der geoeffneten Fenster (für Ansage aufbereitet)',
                                            ! def: ' ',
                                            ! role: 'value'
                                            ! });
                                            ! createState(idRaum, { // Räume, in denen Fenster geoeffnet sind
                                            ! type: 'string',
                                            ! name: 'Räume mit geoeffneten Fenster',
                                            ! desc: 'Namen der Räume, in denen Fenster geoeffnet sind',
                                            ! def: ' ',
                                            ! role: 'value'
                                            ! });
                                            !
                                            ! var cacheSelectorState = $('channelstate.id=*.STATE'); // Gewerk Verschluss
                                            ! function checkDevices(obj) {
                                            ! // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Verschluss auf 0
                                            ! var anzahlFensterAuf = 0;
                                            ! var anzahlFenster = 0;
                                            ! var textFensterAuf = [];
                                            ! var textRaum = [];
                                            ! if (logging) {
                                            ! log('++++++ Fenster Anzahl ++++ ');
                                            ! log('#### SCHALTER ##### ');
                                            ! }
                                            ! cacheSelectorState.each(function(id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Verschluss
                                            ! var obj = getObject(id);
                                            ! var name = getObject(id).common.name;
                                            ! var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element)
                                            ! var devicename = name.substring(0, name.indexOf(".STATE")); //.STATE aus Text entfernen
                                            ! var raumname = getObject(id, "rooms");
                                            !
                                            ! if (logging) {
                                            ! log('-------');
                                            ! log('Kanal: ' + name);
                                            ! log('Status: ' + status);
                                            ! }
                                            ! if (status) { // wenn Zustand = true, dann wird die Anzahl der Fenster hochgezählt
                                            ! ++anzahlFensterAuf;
                                            ! textFensterAuf.push(devicename); // Zu Array hinzufügen
                                            ! textRaum.push(raumname.enumNames); //
                                            ! }
                                            ! ++anzahlFenster; // Zählt die Anzahl der vorhandenen Fenster unabhängig vom Status
                                            ! });
                                            ! textRaum = deleteDuplicates(textRaum);
                                            !
                                            ! // Array mit Fensternamen sortieren
                                            ! textFensterAuf.sort();
                                            ! textRaum.sort();
                                            ! // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon auf) ausgegeben
                                            ! if (logging) log("Text: " + textFensterAuf);
                                            ! if (logging) log("Anzahl Fenster: " + anzahlFenster + " # davon Fenster auf: " + anzahlFensterAuf);
                                            ! // die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
                                            ! setState(idText, textFensterAuf.join(',\nund\n')); // Schreibt die aktuelle Namen der geoeffneten Fenster
                                            ! setState(idAnzahlAuf, textFensterAuf.length); // Schreibt die aktuelle Anzahl der geoeffneten Fenster
                                            ! setState(idAnzahl, anzahlFenster); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Verschluss
                                            ! // setState(idRaum, textRaum.join(',
                                            ')); // Räume, in denen Fenster geoeffnet sind
                                            ! setState(idRaum, textRaum.join(',\nund\n')); // Räume, in denen Fenster geoeffnet sind
                                            ! }
                                            !
                                            ! // Trigger
                                            ! cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk Verschluss
                                            ! if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
                                            ! checkDevices();
                                            ! });
                                            !
                                            ! function main() {
                                            ! setTimeout(function() {
                                            ! if (logging) log('Auslöser Skriptstart');
                                            ! checkDevices();
                                            ! }, 2000);
                                            ! }
                                            !
                                            ! main(); // Skriptstart-Auslöser
                                            !
                                            ! // Aufbereitung für Ansage
                                            ! function strip_tags(data) {
                                            ! var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " ");
                                            ! return (rueckgabe);
                                            ! }
                                            !
                                            ! on(idText, function(obj) {
                                            ! var text = obj.state.val;
                                            ! text = (text.length > 1) ? ' ' + strip_tags(text) : 'Alle Fenster geschlossen';
                                            ! setState(idAnsage, text);
                                            ! });

                                            
                                            das Ergebnis war dann die richtige Anzahl an Fenster
                                            
                                            2\. das Skript "deleteDuplicates" unter Global gepackt
                                            
                                            3\. das Blocky Skript mit dem Namen "Fensterabfrage" eingerichtet und entsprechend an den Echo angepasst. Die Ausgabe funktioniert.
                                            
                                            4\. in der Cloud das Skript "scriptEnabled.rules.Alexa_sagt.Fensterabfrage" als Smart Gerät eingefügt.
                                            
                                            Jetzt kommt mein Verständnisproblem. Das Fensterabfrage-Blocky-Skript macht ja nur eine Ausgabe. Die Ermittlung der offenen und geschlossenen Fenster erfolgt ja in dem Skript unter Punkt 1\. Müsste ich dieses dann nicht als Smart Gerät einbinden? Wenn ich das aber mache, wie wird dann das Blocky aufgerufen um die Ausgabe an den Speak vom Echo zu geben?
                                            
                                            Kann mir das bitte einer erklären. Wo liegt mein Fehler in der Logik.Für mich ist das interessant da ich noch andere Themen umsetzen will und entsprechende Skripte entwickeln und implementieren möchte.
                                            
                                            Vielen Dank schon mal im Vorfeld
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            606
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            45
                                            184
                                            40483
                                            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