alexa-remote-control | Alexa per Shell fernsteuern - Alexa Sprachausgabe Text-to-Speech über Homebridge in HomeKit

  • pi@raspberrypi:~ $ ls -la /tmp

    total 60

    drwxrwxrwt 10 root root 4096 Dec 26 11:34 .

    drwxr-xr-x 22 root root 4096 Dec 1 22:13 ..

    -rw-r--r-- 1 root root 1684 Dec 26 10:57 .alexa.cookie

    -rw-r--r-- 1 root root 12621 Dec 26 10:57 .alexa.devicelist.json

    drwxrwxrwt 2 root root 4096 Dec 26 10:37 .font-unix

    drwxrwxrwt 2 root root 4096 Dec 26 10:37 .ICE-unix

    drwx------ 3 root root 4096 Dec 26 10:37 systemd-private-100162d07043439a959286ec3830075e-systemd-timesyncd.service-yIrMpq

    drwxrwxrwt 2 root root 4096 Dec 26 10:37 .Test-unix

    drwxrwxrwt 2 root root 4096 Dec 26 10:37 .vncserver-license

    drwx------ 2 root root 4096 Dec 26 10:37 .vnc-vncservice

    drwxrwxrwt 2 root root 4096 Dec 26 10:37 .X11-unix

    drwxrwxrwt 2 root root 4096 Dec 26 10:37 .XIM-unix

  • Manchmal hilft dann auch einfach die Zeit und warten.


    Auf einmal spricht die Akexa wieder mit mir nach Befehlseingabe 🤷‍♂️🤷‍♂️🤷‍♂️

    sschuste


    Dir auf jeden Fall vielen Dank für deine Tipps und schnelles Antworten trotz 2. Weihnachtsfeiertag


    Ich wünsche dir noch nen schönen Rest-Feiertag

  • rw-r--r-- 1 root root 1684 Dec 26 10:57 .alexa.cookie

    -rw-r--r-- 1 root root 12621 Dec 26 10:57 .alexa.devicelist.json

    Die gehören root. Warum?

  • Die gehören root. Warum?

    Ganz ehrlich: Ich habe keine Ahnung weshalb....


    Evtl. habe ich da evtl. mal zu großzügig Berechtigungen erteilt, als ich beim Neuaufsetzen mit buster Probleme mit FileZilla hatte 😬😬😬

  • Guten Tag.. :)

    Ich habe mich nach langer Zeit mal wieder an alexa-remote-control versucht, da ich es einige Monate gar nicht mehr im Einsatz hatte.


    Mein "Lautsprecher" im Badezimmer, ist ein Lenovo Tab, wird als Echo Show interpretiert. Also Display.

    Das hat zur Folge, dass wenn ich den Radiosender starte, nicht nur Audio gestreamt wird, sondern sich die Show App öffnet und TuneIn angezeigt wird. Das möchte ich aber nicht. 8) Sondern die aktuelle App "Weather Live" soll auf dem Display weiterhin angezeigt werden.


    Hat jemand eine Idee, oder so etwas schonmal gemacht, ob das irgendwie geht mit dem entsprechenden Befehl? :/


    Lieben Gruß

    Code
                "accessory": "Script2",
                "name": "Bad LuluFM Alexa Control",
                "on": "/home/pi/.homebridge/alexa_remote_control.sh -d Badezimmer -r s241391 -e vol:15 -e play",
                "off": "/home/pi/.homebridge/alexa_remote_control.sh -d Badezimmer -e pause",
                "on_value": "true"
            },

    Hilfreich?

  • sschuste


    Hi Stephan,


    ich verwende deinen sogenannten „dirty hack“ seit der ersten Minute ohne irgendwelche Probleme.


    Seit knapp 2 Wochen liest mir Alexa die einzelnen Sätze zwar vor, jedoch jedes Leerzeichen wird neuerdings mit „Unterstrich“ gelesen.


    Eine zufällige Wiedergabe, wenn meine Küchentüre geöffnet wird, hört sich dann wie folgt an:


    Ich unterstrich bin unterstrich Batman.


    Nutzt du dies auch noch und läuft es bei dir noch?


    Ich hatte dies schon ein, zwei mal, aber nach einem reboot des RasPis oder spätestens nach stromlos machen und dann Neustart, lief es wieder.


    Nun habe ich alles Mögliche versucht und ich bekomme es nicht weg.

  • Ich unterstrich bin unterstrich Batman.


    Nutzt du dies auch noch und läuft es bei dir noch?

    Ja, was hab ich gelacht. Neuerdings kann Alexa mit den Leerzeichen in einem Satz umgehen, die wir bislang mit Unterstrichen ersetzen mussten. Mein Hack erzeugt nun Kauderwelsch.


    Wie gut, dass man das ändern kann. Ersetze die Zeile

    echo "${messages[$randomVal]}" | tr '[:blank:]' _


    durch

    echo "${messages[$randomVal]}"


    Das war's, Homebridge muss nicht neu gestartet werden.

  • sschuste


    hab ichs mir doch gedacht 😜 und auch, dass du mir vermutlich direkt die Lösung dazu hast 👍


    Werd ich natürlich direkt heut Abend so umsetzen.


    Ich wollte gestern dann alternativ versuchen, die Kommandos über Kurzbefehle zu übermitteln und bin wieder auf ein alt bekanntes Problem gestoßen, dass „Skript ausführen per“ SSH wegen der manuellen Bestätigung nicht per Automation geht.


    Konisch nur, dass es bei mir nach dem letzten iOS Update schon funktionierte.


    Das einzigste, was ich geändert habe, ist am RasPi das WLAN zu deaktivieren und mich nun wieder mit ner anderen IP einlogge 🤔🤔🤔

  • Das einzigste, was ich geändert habe, ist am RasPi das WLAN zu deaktivieren und mich nun wieder mit ner anderen IP einlogge

    Genau das ist das Problem. Das ssh-Protokoll stellt fest, dass da offenbar ein anderer Rechner als vorher am Netz hängt und verweigert nun die Connection - das könnte ja jetzt ein Rechner sein, den dir russische Hacker untergeschoben haben.


    Wie du das auf iOS behebst: keine Ahnung.

  • Klappt irgendwie nicht so ganz.


    Aktuell sieht meine Datei wie folgt aus:


    #!/bin/bash


    messages=("Ich bin Batman" "Iron Man nervt" "Hey Digger" "Guten Tacho" "Jippi ei jeah Schweinebacke" "Was geht ab" "Super Mario Time" "Eins zwei, let it rip!" "Du schon wieder" "Ich bin Gruut")


    randomMax=$(echo ${#messages[@]})

    randomVal=$((RANDOM % randomMax))

    echo "${messages[$randomVal]}"

  • Klappt irgendwie nicht so ganz.

    Was genau geht nicht?

  • Was genau geht nicht?

    sorry, meine unpräzise Aussage hilft natürlich nicht.


    Die ursprüngliche Datei mit dem Zusatz wegen den Leerzeichen wird gesprochen mit der Aussprache „Unterstrich“.


    Bei der oben genannte Version erfolgt gar keine Aussprache......


    Wenn ich den gelöschten Teil wieder anfüge, dann wird wieder gesprochen mit Unterstrich......


    Der Dateiname ist unverändert geblieben.....

  • Nee, in dem $now war das Datum drin. Das ist deine Speziallösung.

  • Bei der oben genannte Version erfolgt gar keine Aussprache......

    Auch ma schön, wenn Alexa die Klappe hält^^


    Ich habe dein Script oben genommen und bei mir ausprobiert. Es funktioniert. Du kannst das nachvollziehen, indem du es einfach selbst im Terminal aufrufst:


    /usr/local/bin/random_message.sh


    Ansonsten hat das vielleicht was mit config.json zu tun. Kann ich da mal einen Blick reinwerfen? Bei mir sieht der Part etwas kompliziert aus:

    Code
    {
                "accessory": "CmdTrigger",
                "name": "Nicht vergessen",
                "command": "/usr/local/bin/alexa_remote_control.sh -d $(/usr/local/bin/alexa_remote_control.sh -lastalexa) -e speak:\"$(/home/homebridge/bin/dontforget.sh)\"",
                "delay": "1000"
            },

    Wie sieht er bei dir aus?

  • sschuste


    Anbei das Schnipsel meiner config bzgl. des Kommandos:


    "accessories": [{

    "accessory": "CmdTrigger",

    "name": "Ansage Wohnzimmer",

    "command": "alexa_remote_control.sh -d Wohnzimmer -e speak:$(/usr/local/bin/random_message_wohnzimmer.sh)",

    "delay": "1000"

    },

  • Das baue ich mal ein bisschen um:


    "command": "alexa_remote_control.sh -d Wohnzimmer -e speak:\"$(/usr/local/bin/random_message_wohnzimmer.sh)\"",


    Soll heißen, ich habe ein paar Anführungszeichen eingebaut.

  • Das baue ich mal ein bisschen um:


    "command": "alexa_remote_control.sh -d Wohnzimmer -e speak:\"$(/usr/local/bin/random_message_wohnzimmer.sh)\"",


    Soll heißen, ich habe ein paar Anführungszeichen eingebaut.

    werd ich morgen gleich mal testen. Vorab schon mal vielen Dank für deine Unterstützung 👍


    Meine Jungs fahren voll auf diese Sprüche von Lego-Movies ab 😜 Und der eine oder andere gute Spruch hab ich dann noch ergänzt 😆

  • Juhuu, Alexa spricht wieder normal. Danke sschuste 👍

  • Hallo sschuste,

    ich gehe mal davon aus, das der Befehl:

    Code
    "/usr/local/bin/alexa_remote_control.sh -d $(/usr/local/bin/alexa_remote_control.sh -lastalexa) -e speak:\"$(/home/homebridge/bin/dontforget.sh)\""

    eine Ansage auf dem Echogerät ausgibt der als letztes eine Sprachansage ausgegeben hat.

    Nun meine Frage: was steht in der Datei:

    Code
    dontforget.sh

    Dank schon mal..!