Alexa als Sprchausgabe im ioBroker

  • Vor ein paar Tagen wurde ein neuer Adapter im ioBroker veröffentlicht der langsam den Kreis der Geräte schließt:

    https://forum.iobroker.net/viewtopic.php?f=37&t=15547

    Über den Alexa2 Adapter lässt sich jetzt am Echo ein beliebiger Text ausgeben. Dadurch können aus der Haussteuerung recht komfortabel mit 2 Zeilen Script Status- und Fehlermeldungen ausgegeben werden.

    Ich habe mir ganz schnell mal eine Anruferansage und eine Erweiterung der Türklingel gezimmert. Statusmeldung für Alarmanlage folgen noch.

  • Sehr coole Sache... hast du ja selber gebastelt... :thumbup:

    Sag mal, gibts eine Möglichkeit, die Ausgabelautstärke nur füe die Ansage zu erhöhen?

    Unsere Echos sind auf recht leise eingestellt und das Telefonklingeln übertönt ihn total.

    --- Signaturen werden völlig überbewertet --- X/

  • Selber gebastelt ist übertrieben.

    Ich habe mir von überall die Codeschnipsel zusammengeklaubt.

    Die Lautstärke temporär erhöhen könnte theoretisch über den Datenpunkt "Player - volume" gehen.

    Ich denke das könnte klappen das Script so zu ändern das er den Level auf 80 setzt, dann die Ansage macht und danach wieder auf 20 (oder was auch immer) zurückschreibt.

    Ich habe leider jetzt keine Zeit das zu testen, aber vielleicht findet sich ja jemand der das mal schnell zusammenklopfen kann und das Resultat hier einstellt.

    Bei mir ist das Klingeln auch lauter als die Ansage, aber ich habe einen kleinen Trick angewendet:

    Code
     on({id: 'tr-064.0.callmonitor.ringing', val: true, ack: true}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      setStateDelayed("alexa2.0.Echo-Devices.G2A0P3077****LLE.Commands.speak"/*speak*/, (String('Anruf von ') + String(getState("tr-064.0.callmonitor.inbound.callerName").val)), 2000, false);
    });

    In der Zeile "setStateDelayed" steht am Ende die Zahl 2000. das sind 2000 ms Verzögerung in der Ansage. Damit landet die Sprachansage genau nach dem ersten Klingelton.

    Wenn du die Verzögerung für dich variierst sollte das eigentlich auch klappen.

    Zum Nachrechnen:

    https://www.unitjuggler.com/time-umwandeln…s.html?val=2000

  • Das mit der Lautstärke werd ich die Tage mal ausprobieren, wenn meine Frau nicht da ist... die ist sonst leicht genervt, wenn ständig das Telefon klingelt... ;)

    Ich habs mit Blockly umgesetzt... als Code kommt, erstaunlicherweise, genau das gleiche raus... :)

    Wir haben mehrere Telefone, die leider alle unterschiedlich klingeln.... :D

    deswegen wird das mit dem Delay wohl nix...

    (Du hast jetzt nicht ernsthaft einen Sekunden in Millisekunden Umrechner verlinkt? :D :D :D :D )

    Spoiler anzeigen

    Das kann übrigens auch der Windows Taschenrechner ;)

    --- Signaturen werden völlig überbewertet --- X/

  • Ja gesehen... ich fand das nur lustig.. :D

    Das mit der Lautstärke funktioniert!!! :thumbup:

    Damit gibts jetzt endlich auch ne praktikabele Lösung, Alexas Lautstärke zeitgesteuert zu ändern...

    Nachts leiser, Tags lauter... oder wenn der Fernseher läuft dann lauter...

    Ich glaub da bastel ich gleich mal rum

    --- Signaturen werden völlig überbewertet --- X/

  • Achso... bei meinem Screenshot ist zu beachten...

    Die Lautstärke lässt sich nur für jedes Gerät einzeln einstellen.

    Ich lass die Ansage zwar auf allen Geräten ausgeben, aber ändere nur die Lautstärke im Wohnzimmer...

    Wenn mehr Geräte geändert werden sollen, müssten entsprechend mehr "Volume"-Blöcke eingefügt werden.


    Ich überlege grade noch, die Lautstärke vorher auszulesen und hinterher wieder auf den vorherigen Wert zurückzustellen.

    --- Signaturen werden völlig überbewertet --- X/

  • Muss ich mal nachschauen.

    Mir ist das noch gar nicht bewusst aufgefallen oder mein Echo macht das nicht.

    Bei mir sind beispielsweise in der Alexa App die Benachrichtigungstöne deaktiviert.

    Wie ist da eure Einstellung?

    Eventuell ist das irgendwo darüber einzustellen.

  • Gerade nochmal probiert:

    Meine Echos geben einen leisen Ton von sich wenn ich eine der Tasten am Gerät drücke.

    Allerdings nur am Gerät selbst.

    Die Echos sind mit einem BT-System verbunden und dort wird der Ton nicht übertragen.

    Deshalb habe ich vermutlich das nie so richtig wahrgenommen.

  • Chaot heute ist uns aufgefallen, das wir das gleiche Problem haben, was auch im ioBroker Forum mit der Anruferansage beschieben wurde... also das immer der letzte Anrufer angesagt wird und nicht der aktuelle..

    Das Problem sollte ja behoben sein, wenn man hinten am Script einen false-Wert entfernt... so einen Wert hab ich aber bei nicht...

    Komisch ist auch.. wenn ich im ioBroker bei Objekte mir inbound.callerName angucke, dann steht da der aktuelle... gucke ich mir den gleichen DP aus dem Scripteditor an... steht da der letzte Anrufer...

    --- Signaturen werden völlig überbewertet --- X/

  • Kannst du das Script mal hier posten?

    Ich verstehe nicht warum im Scripteditor ein anderer Wert steht? Das Script holt doch den aktuellen Wert bei der Ausführung aus dem Datenpunkt. Eventuell greifst du auf einen falschen Datenpunkt zu.

    Hast du schon mal versucht den Adapter komplett zu löschen, die Objekte (des Adapters) komplett zu löschen und dann den Adapter neu installiert? Eventuell ist da irgendwas durcheinandergeraten.

  • also das ist das Script...


    Spoiler anzeigen

    var WZ;


    on({id: 'tr-064.0.callmonitor.ringing', val: true}, function (obj) {

    var value = obj.state.val;

    var oldValue = obj.oldState.val;

    WZ = getState("alexa2.0.Echo-Devices.G090LF0971540JCP.Player.volume").val;

    setState("alexa2.0.Echo-Devices.G090LF0971540JCP.Player.volume"/*volume*/, 100);

    setState("alexa2.0.Echo-Devices.07a14f662e3845f9b5111e9939d2460c.Commands.speak"/*speak Überall*/, (String('Anruf von ') + String(getState("tr-064.0.callmonitor.inbound.callerName").val)));

    setStateDelayed("alexa2.0.Echo-Devices.G090LF0971540JCP.Player.volume"/*volume*/, WZ, 3000, false);

    });

    das hier ist der aktuelle Eintrag aus der Objekts-Übersicht... der stimmt auch... und wird im VIS auch korrekt angezeigt.

    wenn ich das ganze aus dem Script aufrufe, sieht es aber so aus...

    --- Signaturen werden völlig überbewertet --- X/