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.
    • 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

                        924
                        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