Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Cloud Dienste
    4. Stati bzw. Werte auslesen mit Alexa

    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

    Stati bzw. Werte auslesen mit Alexa

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

      Moin,

      Auch wenn ich es hier schon mal gelesen habe, das es angeblich nicht geht …

      Kann man die Datenpunkte nicht anderweitig zwischenspeichern bzw. ändern, sodaß man mit Alexa drau zugriff erhält.

      Bzw.

      Kann man nicht über Alexa via JS SayIt ansprechen, so das diese einen bestimmten Wert vorzuliest?

      Jemand schon eine Lösung gefunden hierzu?

      Grüße an die Nerds :lol:

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

        Kann man.

        Ich schalte über Alexa einen JS Datenpunkt mit den Worten "schalte Wetterbericht ein".

        Es erfolgt dann folgende Ausgabe:

        • Unwetterwarnung, wenn vorhanden

        • aktuelle Außentemperatur

        • aktuelle Wetterlage

        • und ich hatte noch den Weg zur Arbeit in Minuten ausgegeben

        Alle Texte über sayIt und einem kleinen Skript (schlecht von mir gemacht g).

        1 Reply Last reply Reply Quote 0
        • Meistertr
          Meistertr Developer last edited by

          So habe ich bei es auch

          Gesendet von meinem E5823 mit Tapatalk

          1 Reply Last reply Reply Quote 0
          • G
            galferiz last edited by

            Klingt doch super,

            Wäre es möglich das Script hier mal zu zeigen.

            Bin halt was Scripten anbelangt noch absoluter Newbie, da wäre es cool, wenn Ihr mir mal ein Beispiel zeigen könntet 🙂

            @ruhr - Ob schlecht oder nicht ist doch egal wenns funktioniert, wäre nett, wenn du es mal posten würdest - Dank dir.

            Grüße

            1 Reply Last reply Reply Quote 0
            • M
              mariohbs last edited by

              @ruhr70:

              Alle Texte über sayIt und einem kleinen Skript (schlecht von mir gemacht g). `

              Da melde ich auch mal Interesse an. Würdest das Script vielleicht mal vorstellen wollen und kurz Beschreiben was man machen muss damit es läuft?

              Danke schon mal im vorab!

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

                Das ist nur ein Miniskript. Und die Lösung mehrere Ansagen hintereinander (Wartezeit, asynchron) ist nicht schön gelöst.

                Skript:

                ! ````
                // Ausgabe von Infos über Sayit, gesteuert durch Alexa
                // Der Datenpunkt idAnsageTriggerWetter muss in ALexa hinzugefügt werden
                // und mit einem Smartnamen versehen werden
                ! // Beispiel: "Alexa, schalte Wetterbericht ein"
                ! // Skript verwendet ein globales Skrit:
                // sayit();
                ! var vol = 40; // Lautstärke der Ansagen
                var sayitInstanz = 2; // Instanz 2 = Sonios Wohnzimmer
                ! // Datenpunkt zum Ansteuern der ANsage über Alexa:
                var idAnsageTriggerWetter = "javascript."+instance+".Ansagen_Trigger.Wetter_aktuell_Wohnzimmer";
                ! createState(idAnsageTriggerWetter,false, {
                name: 'Ansage aktuelle Wettersituation im Wohnzimmer',
                desc: 'Ansage aktuelle Wettersituation im Wohnzimmer',
                type: 'boolean'
                });
                ! function ansageWetterwarnung(vol,sayitInstanz) {
                var severity = getState('dwd.0.warning.severity').val;
                var meldung = getState('dwd.0.warning.text').val.toLowerCase();
                text = "Aktuelle Unwetterwarnung. Stufe " + severity + " " + meldung;
                sayit(text,vol,sayitInstanz);
                }
                ! function ansageWetterlage(vol,sayitInstanz) {
                text = "Wetterlage " + getState('yr.0.forecast.day0.text').val;
                sayit(text,vol,sayitInstanz);
                }
                ! function ansageAktuelleTemperatur(vol,sayitInstanz) {
                text = "Die aktuelle Temperatur beträgt " + getState('yr.0.forecast.day0.temperature_actual').val + " Grad Celsius.";
                sayit(text,vol,sayitInstanz);
                }
                ! function ansage(vol,sayitInstanz) {
                var severity = getState('dwd.0.warning.severity').val;
                var delay = 0;
                ! if (severity > 0) {
                setTimeout(ansageWetterwarnung(vol,sayitInstanz),delay);
                delay = delay + 9000;
                }

                setTimeout(ansageWetterlage(vol,sayitInstanz),delay);
                delay = delay + 9000;
                
                setTimeout(ansageAktuelleTemperatur(vol,sayitInstanz),delay);
                

                }

                ! on({id:idAnsageTriggerWetter,change:'any'}, function (obj) {
                if(obj.state.val) {
                ansage(vol,sayitInstanz);
                }
                });
                ! //ansage(vol,sayitInstanz); // Zum Test des Skripts beim Skriptstart, Kommentar entfernen

                
                Folgendes Skript wird als globales Skript benötigt:
                
                >! ````
                >! function sayit(text,vol,instanz) {
                    var IDLastSay = 'javascript.0.globalVar.lastSay';
                
                    var sayit_defaultVol          = 50;
                    var sayit_defaultSayItInstanz =  0;
                >!     if (typeof instanz == "undefined")  instanz = sayit_defaultSayItInstanz;
                    if (!isNaN(instanz))                instanz = parseInt(instanz);
                    if (isNaN(instanz))                 instanz = sayit_defaultSayItInstanz;
                >!     if (typeof vol == "undefined")      vol = sayit_defaultVol;
                    if (!isNaN(vol))                    vol = parseInt(vol);
                    if (isNaN(vol))                     vol = sayit_defaultVol;
                >!     var idSayIt =           "sayit." + instanz + ".tts.text";
                    text = "de;" + vol.toString() + ";" + text;
                    var lastSay   = getState(IDLastSay).val;
                    //if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) {
                        //lastSay = setState(IDLastSay,(new Date()).getTime());
                        setState (idSayIt, text);
                    //}
                    log(vol);
                    log(text);
                >! }
                >! ````
                1 Reply Last reply Reply Quote 0
                • M
                  mariohbs last edited by

                  Hi und vielen Dank erst einmal.

                  Muss aber noch einmal fragen, damit ich da nicht auf dem falschen Gleis lande: Die Antwort kommt dann über Alexa direkt? Also nicht per Blauzahn oder Tablett?

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

                    Nein, über Alexa kannst Du die Infos (noch) nicht ausgeben. Hat nichts mit ioBroker zu tun. Alexa kann das noch nicht über die Schnittstelle zur Haussteuerung.

                    Über einen Custom-Skill funktioniert das. Da will Bluefox wohl einen schreiben. Dann würden solche Sachen gehen, wie "Alexa, frag ioBroker, wie die Temperatur im Schlafzimmer ist".

                    Das Skript triggert einen Datenpunkt in ioBroker, welcher dann die Ausgabe über SayIt steuert.

                    Bei mir sind das meine Sonos Lautsprecher.

                    D.h. ich frage Alexa und über Sonos kommt die Antwort.

                    Du kannst auch die Alexa Lautsprecher über Bluetooth nutzen. Hier im Forum gibt es dazu ein Beispiel, wie das über einen Raspberry Pi funktioniert.

                    Dann kommt die Antwort zwar auch nicht von Alexa, aber über die Echo Lautsprecher 😉

                    Zusammenfassung der Syntax diverser Sprachanweisungen:

                    "Alexa, wie ist die Temperatur im Schlafzimmer?"

                    -> müsste die Haussteuerungs-API unterstützen. Wird derzeit von Amazon nicht unterstützt.

                    "Alexa, schalte Wetterbericht ein."

                    -> wird von Alexa/ioBroker unterstützt. Was passieren soll, bestimmt ioBroker, z.B. Ausgabe über Sayit.

                    -> "schalte … ein" oder "einschalten" sind Kennwörter, nach denen Alexa nach Namen in der Integration von Haussteuerungen sucht

                    "Alexa, frage ioBroker nach der Temperatur im Schlafzimmer."

                    -> Geht über einen Zustrom-Skill. Derzeit in Entwicklung.

                    -> "frage xyz" ist eine Möglichkeit einen Custom-Skill zu nutzen

                    1 Reply Last reply Reply Quote 0
                    • M
                      mariohbs last edited by

                      Ahh OK. Danke für die Klarstellung.

                      Ja Alexa über Bluetooth habe ich schon überlegt aber da würde es nur bei Alexa 1 ankommen. Da ich aber 3 in verschiedenen Räumen habe wird das wohl erst einmal nichts werden. Aber ich schaue mal optimistisch in die Zukunft und versuche derweil erst einmal die Visualisierung richtig zum laufen zu bekommen 😄

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

                        3 Pi 😉

                        Einen in jedem Raum :lol:

                        1 Reply Last reply Reply Quote 0
                        • G
                          galferiz last edited by

                          Hey Ruhr,

                          Danke fürs Feedback.

                          Dann hab ich einen guten Ansatz zum Testen.

                          Vielen dank und schönen Rest-Sonntag 😉

                          1 Reply Last reply Reply Quote 0
                          • M
                            Marko79 last edited by

                            Hi zusammen, bin neu in dem Thema und versuche mich durch Videos langsam einzuarbeiten.

                            Ich versuche gerade mit JS eine Sprachausgabe auf anfrage bei Alexa.

                            Will mir die Temp vom Raspberry ansagen lassen. Bekomms aber leider nicht hin.

                            Ich habe das Blocky-Script mal als Datei angehängt.

                            abfrage_ = Datenpunkt den ich triggern kann(funktioniert)

                            rpi2.0.temperature.soc_temp= ausgelesener Wert im Rpi2.0 Adapter

                            Vlt kann mir von den erfahreneren Anwendern jemand meinen Fehler aufzeigen.

                            Danke
                            5810_blocky.png

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

                              Was hast Du denn für Thermostate?

                              Gibt es bei denen eventuell einen Datenpunkt vom Typ "ACTUAL_TEMPERATURE"?

                              (so einen habe ich z.B. beim HomeMatic Thermostat (non-IP))

                              [EDIT] Hintergrund meiner Frage: Ein Datenpunkt "ACTUAL_TEMPERATURE" kann als Smart Gerät im Cloud Adapter direkt von Alexa Abgefragt werden.

                              z.B. Smart Gerät im Cloud Adapter = "Schlafzimmer"

                              Verlinkung zum Datenpunkt vom Typ "ACTUAL_TEMPERATURE"

                              Abfrage: "Alexa, wie ist die Temperatur im Schlafzimmer"

                              Antwort: "Die Temperatur von Schlafzimmer ist 20,1 Grad"

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

                                @Marko79:

                                Vlt kann mir von den erfahreneren Anwendern jemand meinen Fehler aufzeigen. ` Was mit gerade auffällt, ich bin der Meinung Du benutzt den "erstelle Text aus" Baustein nicht korrekt.

                                Schau dir mal alternativ mein angefügtes Beispiel an
                                1917_sayit_text.jpg

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

                                Support us

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

                                651
                                Online

                                31.9k
                                Users

                                80.1k
                                Topics

                                1.3m
                                Posts

                                6
                                14
                                4144
                                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