Alexa.sh v5.11 (stable) - Sprachausgabe und Fernsteuerung für Amazon Echo

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
blackhole
Beiträge: 3718
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 586 Mal

Re: Alexa.sh v4.84 (stable) - Sprachausgabe und Fernsteuerung für Amazon Echo

Beitrag von blackhole » 08.01.2023, 11:03

Shawn26 hat geschrieben:
08.01.2023, 10:11
Wenn ich statt der System.exec lieber den CUx-Daemon nutzen wollen würde

Es ist nicht schlau die Komplexität des Aufrufs zu erhöhen. Du machst dich unnötigerweise abhängig von einem Addon -von welchem ich meine CCU übrigens bereits vor 6 Jahren befreit habe- und Du erhöhst damit lediglich die Anzahl möglicher Fehlerquellen. Der addon-freie Aufruf mittels system.Exec, wie in der Anleitung angewandt, ist die deutlich sinnvollere und weniger fehleranfällige Variante (KISS-Prinzip).

Das soll es zu diesem Thema hier aber auch gewesen sein.

In diesem Thread geht es um das Alexa.sh-Paket und dessen zugehörige Anleitung. Davon abweichende Dinge bitte künftig woanders erfragen/diskutieren.

Danke.

majacom
Beiträge: 44
Registriert: 13.06.2018, 16:22
Hat sich bedankt: 4 Mal
Danksagung erhalten: 3 Mal

Re: Alexa.sh v4.84 (stable) - Sprachausgabe und Fernsteuerung für Amazon Echo

Beitrag von majacom » 08.01.2023, 19:42

Hi, eine Frage.

Kann ich mit nur einem Befehl eine Routine starten und gleichzeitig die Lautstärke verändern?

Code: Alles auswählen

system.Exec("/usr/local/addons/alexa/alexa.sh -d 'Echo Studio' -e automation:'Audio' -e vol:40")
...funktioniert nicht.

Wie müsste der Befehl aussehen?
Oder funktioniert das grundsätzlich nicht gleichzeitig mit einem Aufruf?

Markus

Kiamtdnew
Beiträge: 113
Registriert: 10.10.2012, 15:51
Hat sich bedankt: 15 Mal
Danksagung erhalten: 8 Mal

Re: Alexa.sh v4.84 (stable) - Sprachausgabe und Fernsteuerung für Amazon Echo

Beitrag von Kiamtdnew » 08.01.2023, 20:04

Hallo Markus,

Einfach mal den Thread von Anfang lesen. Z.B. den Teil hier:
blackhole hat geschrieben:
24.01.2019, 12:25

Code: Alles auswählen

! Sprachausgabe auf Echo Hallenbad (Lautstärke 70)
! -----------------------------------------------------------------------------------------------------------------------
string echodevice = "Hallenbad";
string message = dom.GetObject(ID_SYSTEM_VARIABLES).Get("TTS Echo").Value();
system.Exec("export SPEAKVOL='70';/usr/local/addons/alexa/alexa.sh -d '" #echodevice.ToUTF8() #"' -e speak:'" #message.ToUTF8() #"' &");
Das "Umbasteln" auf eine Routine kann man dort auch sehr gut nachlesen.
Maik
--------------------------------------------
Man wird im Alter nicht gelassener — man schafft es nur nicht mehr bis an die Decke.
--------------------------------------------

majacom
Beiträge: 44
Registriert: 13.06.2018, 16:22
Hat sich bedankt: 4 Mal
Danksagung erhalten: 3 Mal

Re: Alexa.sh v4.84 (stable) - Sprachausgabe und Fernsteuerung für Amazon Echo

Beitrag von majacom » 08.01.2023, 20:31

Das mit der Routine war nur ein Beispiel.
Den "export SPEAKVOL=XX" Befehl betrifft nur die Sprachausgabe und nicht die Lautstärke beim Abspielen von Musik.
Ändere ich den Befehl in z.B. "export NORMALVOL=XX" passiert nichts.

In der Config steht

# If no current playing volume can be determined, fall back to normal volume
#
# Example:
# NORMALVOL='10'
#--------------------------------------------------------------------------------------

NORMALVOL='30'

Wie kann ich die "playing Volume" nur für einen Befehl verändern und danach fällt er wieder auf die in der Config eingetragene Standardlautstärke zurück?

Code: Alles auswählen

system.Exec("/usr/local/addons/alexa/alexa.sh -d 'Echo Studio' -r s84487")
Wenn ich

Code: Alles auswählen

system.Exec("/usr/local/addons/alexa/alexa.sh -d 'Echo Studio' -e vol:70")
verwende, dann ändert sich die Lautstärke dauerhaft.
Mein Wunsch wäre, dass die Lautstärke nach dem Abspielen, bzw. stoppen des Senders wieder auf die Grundeinstellung von 30 fällt.

Kiamtdnew
Beiträge: 113
Registriert: 10.10.2012, 15:51
Hat sich bedankt: 15 Mal
Danksagung erhalten: 8 Mal

Re: Alexa.sh v4.84 (stable) - Sprachausgabe und Fernsteuerung für Amazon Echo

Beitrag von Kiamtdnew » 08.01.2023, 21:23

Ich habe meine Config so angepasst und bei mir funktioniert es:

#--------------------------------------------------------------------------------------
# Volume for speak commands (a SPEAKVOL of 0 leaves the volume settings untouched)
#
# Example:
# SPEAKVOL='0'
#--------------------------------------------------------------------------------------

SPEAKVOL='40'

#--------------------------------------------------------------------------------------
# If no current playing volume can be determined, fall back to normal volume
#
# Example:
# NORMALVOL='10'
#--------------------------------------------------------------------------------------

NORMALVOL='20'

#--------------------------------------------------------------------------------------
# Device specific volumes (overriding the above)
#
# Example:
# DEVICEVOLNAME='EchoDot2ndGen Echo1stGen'
# DEVICEVOLSPEAK='100 50'
# DEVICEVOLNORMAL='100 30'
#--------------------------------------------------------------------------------------

DEVICEVOLNAME='Terrasse Wohnzimmer Flur Küche Badezimmer'
DEVICEVOLSPEAK='60 40 30 30 30'
DEVICEVOLNORMAL='40 30 20 20 20'

Je nachdem was man möchte, kann man auch einzelne Einstellungen auf Standard oder "weg lassen"...
Allerdings habe ich mich an die Beschreibung von blackhole gehalten. Und da steht die Volumenerhöhung vor der Sprachausgabe. In Deinem Beispiel dahinter. Evtl. reicht es schon, wenn dies geändert wird.
Maik
--------------------------------------------
Man wird im Alter nicht gelassener — man schafft es nur nicht mehr bis an die Decke.
--------------------------------------------

majacom
Beiträge: 44
Registriert: 13.06.2018, 16:22
Hat sich bedankt: 4 Mal
Danksagung erhalten: 3 Mal

Re: Alexa.sh v4.84 (stable) - Sprachausgabe und Fernsteuerung für Amazon Echo

Beitrag von majacom » 08.01.2023, 21:39

Nein das reicht leider nicht. Egal ob davor oder danach.
Sprachlautstärke und Musiklautstärke sind 2 verschiedene Werte.
Beim Speak-Befehl funktioniert ja Alles über den export-Befehl.

Mir geht es um die Musiklautstärke.

Sobald ich beide Anweisungen in einer Zeile schreibe, funktioniert der Befehl nicht.
Ich muss für jede Anweisung einen separaten Befehl senden.

Code: Alles auswählen

system.Exec("/usr/local/addons/alexa/alexa.sh -d 'Echo Studio' -e vol:70");
system.Exec("/usr/local/addons/alexa/alexa.sh -d 'Echo Studio' -r s84487")
Wobei dann nach stoppen der Musik der Pegel bei "70" bleibt und nicht auf Standardwerte zurück fällt.

Wie wäre die richtige Formatierung der Befehlszeile, wenn man beide Anweisungen in einer Zeile möchte?
Also Lautstärke auf 70 und -r s84487 (play tunein radio)

Das ändert nur die Lautstärke, aber spielt den Sender nicht ab.

Code: Alles auswählen

system.Exec("/usr/local/addons/alexa/alexa.sh -d 'Echo Studio' -e vol:20 -r s84487")

Benutzeravatar
blackhole
Beiträge: 3718
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 586 Mal

Re: Alexa.sh v4.84 (stable) - Sprachausgabe und Fernsteuerung für Amazon Echo

Beitrag von blackhole » 08.01.2023, 22:26

majacom hat geschrieben:
08.01.2023, 19:42
Kann ich mit nur einem Befehl eine Routine starten und gleichzeitig die Lautstärke verändern? (...)

Das geht so -wie in deinem Beispiel gezeigt- nicht. Die Option -e kann nur einmal pro Aufruf verwendet werden.
Es spricht aber nichts dagegen zwei Skriptaufrufe mit einer kleinen Verzögerung nacheinander auszuführen.

majacom
Beiträge: 44
Registriert: 13.06.2018, 16:22
Hat sich bedankt: 4 Mal
Danksagung erhalten: 3 Mal

Re: Alexa.sh v4.84 (stable) - Sprachausgabe und Fernsteuerung für Amazon Echo

Beitrag von majacom » 09.01.2023, 11:47

ok
Aber wieso wird die Lautstärke nach beenden des Streams nicht auf Standard zurückgesetzt?
# If no current playing volume can be determined, fall back to normal volume
#
# Example:
# NORMALVOL='10'
#--------------------------------------------------------------------------------------

NORMALVOL='30'
Ich verstehe das so, wenn man keine extra Lautstärkenänderung anweist, dass dann wieder mit "30" abgespielt wird.
Das ist allerdings nicht der Fall.

Bei Sprache mit
export SPEAKVOL='30'
geht es ja auch wunderbar

Kiamtdnew
Beiträge: 113
Registriert: 10.10.2012, 15:51
Hat sich bedankt: 15 Mal
Danksagung erhalten: 8 Mal

Re: Alexa.sh v4.84 (stable) - Sprachausgabe und Fernsteuerung für Amazon Echo

Beitrag von Kiamtdnew » 09.01.2023, 12:15

majacom hat geschrieben:
09.01.2023, 11:47

Aber wieso wird die Lautstärke nach beenden des Streams nicht auf Standard zurückgesetzt?
Evtl. bekommt man es hin, wenn man die Zeit, bis die Lautstärke ermittelt wird verlängert. Ich kann gerade nicht nachschauen, aber in der config steht nach den o.g. Einstellungen eine weitere Zeile, die das "Alter", also die Zeit bis die Lautstärke als Standard übernommen wird, festgelegt werden kann. Standardmäßig steht dort (glaube ich) 1min. drin. Evtl. muss die Zeit verlängert werden, damit das Lied (oder was auch immer) nicht mit in die Zeitspannne fällt. Allerdings kann es auch sein, dass dies nur für Sprachansagen eine Rolle spielt.
Alternativ geht es vielleicht über mit einer Routine, die man entsprechend anpasst...
Maik
--------------------------------------------
Man wird im Alter nicht gelassener — man schafft es nur nicht mehr bis an die Decke.
--------------------------------------------

Benutzeravatar
blackhole
Beiträge: 3718
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 586 Mal

Re: Alexa.sh v4.84 (stable) - Sprachausgabe und Fernsteuerung für Amazon Echo

Beitrag von blackhole » 09.01.2023, 15:19

majacom hat geschrieben:
09.01.2023, 11:47
Bei Sprache mit
export SPEAKVOL='30'
geht es ja auch wunderbar

Sequence-Kommandos (wie z.B. speak) werden ja auch gesondert behandelt.
Siehe hierzu den Abschnitt "Update 2021-05-27" im Lötzimmer-Blog.

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“